v minulém díle jsme si ukázali jak vytvořit šablony a eventy. To první ale pro naše účely zůstávalo nevyužité (naco tvořit šablonu, když nešla zobrazit), nyní tomu dáme smysl a ukážeme si jak to celé propojit. Dnešní díl bude o nastavení vlastní stránky, kdy si vytvoříme podstránku /auctions, kde budeme v budoucnu vypisovat seznam aukcí.
Najedeme si do složky našeho rozšíření (v mém případě ext/webdeal/auctions) a vytvoříme složky config a controller.
Config
Složka config se bude skládat ze 2 souborů:
- services.yml - slouží k nastavení proměnných a funkcí, ke kterým má mít stránka přístup
- routing.yml - slouží pro tvorbu adresy podstránky
Kód: Vybrat vše
services:
webdeal.auctions.controller:
class: webdeal\auctions\controller\auctions
arguments:
- '@config'
- '@dbal.conn'
- '@controller.helper'
- '@request'
- '@template'
- '@user'
- '%core.root_path%'
V rychlosti si to vysvětlíme. Tento soubor říká phpBB, že k souboru, který si umístíte do složky ext/webdeal/auctions/controller/auctions.php má umožnit přístup proměnným $config, $db, $request a dalším. Samozřejmě nemusí být nutné všechny, ale tyto se téměř vždy hodí.
routing.yml
Kód: Vybrat vše
webdeal_auctions_controller:
path: /auctions
defaults: { _controller: webdeal.auctions.controller:handle}
Controller
Nyní vytvoříme ve složce controller soubor auctions.php a vložíme do něj následující obsah:
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í');
}
}
Nyní už s pomocí tohoto a 2 předchozích dílů umíte vytvořit vlastní stránku. Přidat další stránku už bude hračka, ale o tom až příště.
Na závěr přidávám zdrojové kódy ve stavu v jakém jsou na konci tohoto dílu.