[ROZŠÍŘENÍ] Díl 4.: Další podstránka

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 4.: Další podstránka

Příspěvek od Otakar Pěnkava » sob 10. úno 2018 22:19:27

Ahoj uživatelé,
v minulém díle jsme se naučili přidávat podstránku. První podstránka má tu nevýhodu, že musíte vytvořit celé rozšíření, abyste získali jednu stránku. Nicméně, pokud už máte rozšíření hotové, pak je přidání druhé podstránky várazně jednodušší a dnes si ukážeme jak na to.

Řekněme, že chceme udělat podstránku, kde bude seznam posledních příhozů a adresa bude www.vaseforum.cz/bids (bids = anglicky příhoz).

controller
Otevřete soubor auctions.php ve složce controller, najděte funkci handle a přidejte za ni (nebo před ni) funkci:

Kód: Vybrat vše

public function bids() {
	return $this->helper->render('bids_body.html', 'Seznam příhozů');
}
Výsledný kód celého souboru auctions.php tak bude:

Kód: Vybrat vše

<?php
/**
*
* @package phpBB Extension - WebDeal s.r.o.
* @copyright (c) 2016-2018 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

namespace webdeal\auctions\controller;

class auctions
{
	/* @var \phpbb\config\config */
	protected $config;
	/* @var \phpbb\controller\helper */
	protected $helper;
	/* @var \phpbb\template\template */
	protected $template;
	/* @var \phpbb\user */
	protected $user;
	protected $request;
	protected $root_path;

	/**
	* Constructor
	*
	* @param \phpbb\config\config		$config
	* @param \phpbb\controller\helper	$helper
	* @param \phpbb\template\template	$template
	* @param \phpbb\user				$user
	*/

	public function __construct(\phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\controller\helper $helper, \phpbb\request\request $request, \phpbb\template\template $template, \phpbb\user $user, $root_path)
	{
		global $table_prefix;

		$this->config = $config;
		$this->db = $db;
		$this->helper = $helper;
		$this->request = $request;
		$this->template = $template;
		$this->user = $user;
		$this->root_path = $root_path;
	}

	public function handle() {
		return $this->helper->render('auctions_body.html', 'Seznam aukcí');
	}

  public function bids() {
    return $this->helper->render('bids_body.html', 'Seznam příhozů');
  }
}
config/routing.yml
Na konec souboru přidejte:

Kód: Vybrat vše

webdeal_auctions_controller_bids:
    path: /bids
    defaults: { _controller: webdeal.auctions.controller:bids}
Nyní si to vysvětlíme po řádcích:
  • zde volte unikátní název, fungovalo by to i kdyby tam bylo webdeal_auctions_blabla
  • na druhém řádku volíme cestu, tedy to co bude za www.vaseforum.cz (uvádíte včetně lomítka)
  • na posledním řádku najdeme odkaz na controller, vzpomeňte si, že jsme tu funkci pojmenovali bids, proto za dvojtečkou na konci uvedeme tuto funkci
styles
Nezapomeňte dosadit šablonu stylu, jinak by Vám vyskočila chyba:

Kód: Vybrat vše

Unable to find template "bids_body.html" (looked into: /var/www/hosting/xxx/phpBB3/ext/webdeal/auctions/styles/all/template, /var/www/hosting/xxx/phpBB3/styles/prosilver/template, /var/www/hosting/xxx/phpBB3/styles/prosilver/theme, /var/www/hosting/xxx/phpBB3/styles/all/template).
Vytvoříme proto soubor bids_body.html ve složce /ext/webdeal/auctions/styles/all/template (celá cesta z rootu).
Obsah souboru můžeme dát zatím:

Kód: Vybrat vše

<!-- INCLUDE overall_header.html -->

Zde budou naše příhozy

<!-- INCLUDE overall_footer.html -->
Takto zapsané tagy znamenají, že phpBB při zpracování této šablony vloží hlavičku s patičkou vzhledu.

Nyní nezapomeňte smazat mezipaměť (cache), aby se změny projevily a adresa nové podstránky začala fungovat.
Přílohy
dil_4.zip
(4.54 KiB) Staženo 211 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