Administrace webové aplikace
Zaregistrujte a nastavete extension v config.neon. Od namespace je odvozen název modulu pro další rozšíření administrace a to tak, že se k namespace přidá 'Ext'
extensions:
cms: NAttreid\Cms\DI\CmsExtension
cms:
namespace: 'Cms'
url: '/cms/'
sender: 'Odesilatel <[email protected]>'
front: ':Front:Homepage:'
disabled: false # vypnuti CRM
configurator:
defaultPromenna: 'hodnota' # nastaveni vychozich hodnot v configuratoru
fileManagerDir: %appDir%/../
infoRefresh: 15 # vteriny
minPasswordLength: 8
passwordChars: '0-9a-zA-Z'
loginExpiration: '20 minutes'
sessionExpiration: '14 days'
tracy:
cookie: nejakyHash
layout: '%appDir%/cms/templates/cms.latte' # hlavní šablona
a přidejte model do ORM. V příkladu je extension orm pod nazvem orm
orm:
add:
- NAttreid\Cms\Model\Orm
Pro přidání assets použijte
cms:
assets:
- %wwwDir%/js/example.js
- %wwwDir%/css/example.css
- {%wwwDir%/js/cs.js, locale: cs} # localizace pro cs
- http://someUrt/scritp.js # remote
- //someUrt/scritp.js # remote
- {%wwwDir%/js/example.js, remote: true} # remote
- {files: ["*.js", "*.css", "*.less"], from: %appDir%/cms}
Přídání dalších modulů
cms:
menu:
Example:
link: 'Homepage:'
web:
test:
link: action # pokud je null, provede se default action
arguments: {name: value} # argumenty
toBlank: TRUE # otevre do noveho okna
count: 5 # pocet za linkem
# nebo
count: @SomeClass::countUnapproved() # pocet za linkem
# nebo
count: {5, info} # muze byt info, warning (info je default)
Presenter musí dědit z třídy \NAttreid\Cms\Control\ModulePresenter. Příklad presenteru test z ukázky menu
namespace App\Cms\Example\Presenters;
class TestPresenter extends \NAttreid\Cms\Control\ModulePresenter {
public function renderDefault() {
// pro zobrazeni menu v mobilu (defaultne je skryto)
$this->viewMobileMenu();
// pridani tlacitka do Dockbaru
$this['dockbar']->addLeftLink('tlacitko', 'link!');
// nebo
$this['dockbar']->addLeftLink('tlacitko')
->addClass('trida'); // spusteni pomoci javascriptu
// tlacitko vpravo
$this['dockbar']->addRightLink('tlacitko')
}
}
cms.latte
{extends $layout}
Šablona @layout.latte pro modul musí dědit z cms.latte
Třída extension musí dědit z \NAttreid\Cms\DI\ModuleExtension
class ExampleExtension extends \NAttreid\Cms\DI\ModuleExtension {
protected $namespace = 'example';
protected $dir = __DIR__;
protected $package = 'Package\\';
public function beforeCompile() {
parent::beforeCompile();
$this->addLoaderFile('cestaKCssNeboJs');
$this->addLoaderFile('cestaKLocalizovanemuJs','cs');
}
}
a v složce musí být soubor default.neon
link: 'Homepage:'
position: 1
menu:
group:
test:
link:
Presenter musí dědit z třídy \NAttreid\Cms\Control\ModulePresenter
namespace Package\Example\Presenters;
class TestPresenter extends \NAttreid\Cms\Control\ModulePresenter {
}
Zaregistrujte službu, která bude implementovat z \NAttreid\Cms\ISettings
class CmsSettings implements ISettings {
public function init(\Nette\Application\UI\ITemplate $template, \NAttreid\Cms\Control\AbstractPresenter $presenter)
{
// php kod ...
}
}
Přesměrování při AJAXovém volání v presenteru
$this->ajaxRedirect('link', ['args']);