96 lines
1.8 KiB
PHP
96 lines
1.8 KiB
PHP
<?php
|
|
/**
|
|
* @package Octoleo CMS
|
|
*
|
|
* @created 18th April 2022
|
|
* @author Llewellyn van der Merwe <https://git.vdm.dev/Llewellyn>
|
|
* @git WEBD-325-45 <https://git.vdm.dev/Llewellyn/WEBD-325-45>
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
namespace Octoleo\CMS\View\Admin;
|
|
|
|
use Octoleo\CMS\Model\MenuModel;
|
|
use Joomla\Renderer\RendererInterface;
|
|
use Joomla\View\HtmlView;
|
|
use Octoleo\CMS\Model\Util\MenuInterface;
|
|
|
|
/**
|
|
* HTML view class for the application
|
|
*/
|
|
class MenuHtmlView extends HtmlView
|
|
{
|
|
/**
|
|
* The id
|
|
*
|
|
* @var int
|
|
*/
|
|
private $id;
|
|
|
|
/**
|
|
* The model object.
|
|
*
|
|
* @var MenuModel
|
|
*/
|
|
private $model;
|
|
|
|
/**
|
|
* Instantiate the view.
|
|
*
|
|
* @param MenuModel $model The model object.
|
|
* @param RendererInterface $renderer The renderer object.
|
|
*/
|
|
public function __construct(MenuModel $model, RendererInterface $renderer)
|
|
{
|
|
parent::__construct($renderer);
|
|
|
|
$this->model = $model;
|
|
}
|
|
|
|
/**
|
|
* Method to render the view
|
|
*
|
|
* @return string The rendered view
|
|
* @throws \Exception
|
|
*/
|
|
public function render(): string
|
|
{
|
|
// set the active menus if possible
|
|
$menus = [];
|
|
if ($this->model instanceof MenuInterface)
|
|
{
|
|
$menus = $this->model->getMenus($this->id);
|
|
}
|
|
$this->setData([
|
|
'form' => $this->model->getItem($this->id),
|
|
'items' => $this->model->getItems(),
|
|
'menus' => $menus
|
|
]);
|
|
return parent::render();
|
|
}
|
|
|
|
/**
|
|
* Set the active view
|
|
*
|
|
* @param string $name The active view name
|
|
*
|
|
* @return void
|
|
*/
|
|
public function setActiveView(string $name): void
|
|
{
|
|
$this->setLayout($this->model->setLayout($name));
|
|
}
|
|
|
|
/**
|
|
* Set the active id
|
|
*
|
|
* @param int $id The active id
|
|
*
|
|
* @return void
|
|
*/
|
|
public function setActiveId(int $id): void
|
|
{
|
|
$this->id = $id;
|
|
}
|
|
}
|