nattreid / web-manager
Web Manager for CMS
1.7.17
2023-08-09 08:21 UTC
Requires
- php: >= 7.1
- nattreid/cms: ~1.0
- nattreid/gallery: ~2.0
Requires (Dev)
- nette/tester: ~2.2
- tracy/tracy: ~2.6
This package is auto-updated.
Last update: 2026-06-09 14:50:05 UTC
README
Nastavení
Přidat extension do config.neon
extensions: webManager: NAttreid\WebManager\DI\WebManagerExtension webManager: homepage: 'Homepage:default' page: 'Homepage:page' onePage: 'Homepage:onePage' module: 'Front' gallery: # nastaveni galerie maxFileSize: 5 #MB maxFiles: 20
Pages
Nastavte HomepagePresenter
class HomepagePresenter extendes Presenter { public $locale; /** @var \NAttreid\WebManager\Services\PageService @inject */ public $pageService; public function actionPage($url) { $page = $this->pageService->getPage($url, $this->locale); // stranku date do template pro zobrazeni $this->template->page = $page; }
a upravte router
class FrontRouter extends Router { /** @var \NAttreid\WebManager\Services\PageService */ private $pageService; public function __construct($url, \NAttreid\WebManager\Services\PageService $pageService) { parent::__construct($url); $this->pageService = $pageService; } public function createRoutes() { $routes = $this->getRouter('Front'); $this->pageService->createRoute($routes, $this->getUrl()); // nebo pokud je treba vlozit route mezi routy stranky a defaultni strankou $this->pageService->createPageRoute($routes, $this->getUrl()); $routes[] = new Route(...); $this->pageService->createDefaultPageRoutes($routes, $this->getUrl()); } }
Content
class HomepagePresenter extendes Presenter { public $locale; /** @var \NAttreid\WebManager\Service @inject */ public $webManager; public function actionPage($url) { $content = $this->webManager->getContent('main', $this->locale); // stranku date do template pro zobrazeni $this->template->content = $content; }
Hooks
class SomeHook extends \NAttreid\WebManager\Services\Hooks\HookFactory { /** @var IConfigurator */ protected $configurator; public function create(): Component { $form = $this->formFactory->create(); $form->setAjaxRequest(); $form->addText('id', 'webManager.web.hooks.some.clientId') ->setDefaultValue($this->configurator->someId); $form->addSubmit('save', 'form.save'); $form->onSuccess[] = [$this, 'someFormSucceeded']; return $form; } public function someFormSucceeded(Form $form, $values) { $this->configurator->someId = $values->id; $this->flashNotifier->success('default.dataSaved'); } // nebo DataGrid public function create(): Component { $form = $this->formFactory->create(); $form->setAjaxRequest(); $form->addText('id', 'webManager.web.hooks.some.clientId') ->setDefaultValue($this->configurator->someId); $form->addSubmit('save', 'form.save'); $form->onSuccess[] = [$this, 'someFormSucceeded']; return $form; } public function someFormSucceeded(Form $form, $values) { $this->configurator->someId = $values->id; $this->flashNotifier->success('default.dataSaved'); } }
A třídu zaregistrovat jako službu a načte se automaticky do CMS