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ů');
}
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ů');
}
}
Na konec souboru přidejte:
Kód: Vybrat vše
webdeal_auctions_controller_bids:
path: /bids
defaults: { _controller: webdeal.auctions.controller:bids}
- 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
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).
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 -->
Nyní nezapomeňte smazat mezipaměť (cache), aby se změny projevily a adresa nové podstránky začala fungovat.