[ROZŠÍŘENÍ] Díl 1.: Základy

Odpovědět
Uživatelský avatar
Otakar Pěnkava
Administrátor
Administrátor
Příspěvky: 581
Registrován: sob 25. říj 2008 16:17:14
Kontaktovat uživatele:

[ROZŠÍŘENÍ] Díl 1.: Základy

Příspěvek od Otakar Pěnkava » úte 23. led 2018 17:41:35

Ahoj,
vítejte na prvním seriálu tvorby vlastního phpBB rozšíření. V tomto seriálu si ukážeme jak si vytvořit vlastní rozšíření a jak jím obohatit už tak bohaté funkce phpBB. phpBB totiž od verze 3.1 přepracovalo tehdejší módy (které se "instalovaly" ruční úpravou souborů) v modernější rozšíření, které nainstalujete na pár kliknutí.

V tomto seriálu budeme tvořit rozšíření pro aukce, vlastní aukční systém. Takové rozšíření phpBB v současné chvíli chybí, tak jej rovnou vytvoříme.

Náročnost:
Tento návod předpokládá, že víte co to je FTP a umíte s ním pracovat. Dále, že znáte alespoň základy programování v PHP a máte nainstalovaný program ve kterém budete programovat (stačí PSPad).
Veškeré úpravy dělejte na testovacím fóru, nikoliv na produkčním serveru. V případě chyby si totiž můžete vyřadit funkční projekt z provozu.

Začátek
  • přihlásíme se na FTP našeho testovacího fóra
  • otevřete složku ext
  • vytvořte si vlastní složku (používám webdeal, jde o složku autora; složka je pak uvedena i v dalších souborech, tak v začátcích můžete použít stejnou)
  • jděte do Vámi vytvořené složky (u mě již zmíněno webdeal) a vytvořte další složku. Tentokrát půjde o složku rozšíření. Nahoře jsem zmínil, že budeme tvořit aukci, proto ji pojmenujeme auctions
Nyní máme vytvořenou složku rozšíření, celá cesta tedy je ext/webdeal/auctions. Daná složka je prázdná a v administraci phpBB ji mezi rozšířeními neuvidíte. Abyste ji uviděli, musíme do ní přidat soubory níže:

composer.json
Daný soubor má strukturu níže, pokud jste složku autora pojmenovali webdeal, pak můžete obsah souboru zkopírovat do souboru composer.json.

Kód: Vybrat vše

{
	"name": "webdeal/auctions",
	"type": "phpbb-extension",
	"description": "Popisek rozšíření",
	"homepage": "https://www.vase-webova-stranka.cz",
	"version": "1.0.0",
	"keywords": ["phpbb", "auctions", "webdeal"],
	"license": "GPL-2.0",
	"authors": [
		{
			"name": "Jméno vývojáře",
			"username": "Vaše uživatelské jméno na phpBB.com",
			"email": "vas@email.cz",
			"role": "Developer"
		}
	],
	"require": {
		"php": ">=5.3"
	},
}
ext.php
Při kopírování nezapomeňte změnit řádek namespace, kde je uvedena SLOŽKA AUTORA a SLOŽKA ROZŠÍŘENÍ, podle Vašeho nastavení.

Kód: Vybrat vše

<?php
/**
*
* phpBB Add list page with links with topics in viewforum page extension for the phpBB Forum Software package.
*
* @copyright (c) 2014 phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
*/
namespace webdeal\auctions;
/**
* Extension class for custom enable/disable/purge actions
*
* NOTE TO EXTENSION DEVELOPERS:
* Normally it is not necessary to define any functions inside the ext class below.
* The ext class may contain special (un)installation commands in the methods
* enable_step(), disable_step() and purge_step(). As it is, these methods are defined
* in phpbb_extension_base, which this class extends, but you can overwrite them to
* give special instructions for those cases.
*/
class ext extends \phpbb\extension\base
{
}
Oba soubory umístěte do ext/webdeal/auctions.

Na závěr přikládám aktuální podobu rozšíření na konci dílu. Můžete tak porovnat s vlastním řešením, kde se třeba stala chyba.
Přílohy
dil_1.zip
(1.65 KiB) Staženo 214 x
Starám se o projekt phpBB.cz od doby, kdy jsem jej zachránil před zaniknutím. Pomůžete mi a dostaneme jej zase nahoru?
Přes soukromé zprávy neposkytuji podporu. Napište do fóra, kde vyřešení problému může pomoci ostatním.

Odpovědět