На примере вывода динамических иерархических меню покажем, как использовать участки готового кода в приложениях, построенных с использованием инструментов PHP-платформы Wad-er. Во всех последующих подразделах раздела Примеры кода рекомендуется использовать примеры аналогичным образом.
При использовании механизма MVC-1 для формирования динамического меню применяется 2 способа:
$this->parser->runSnippet('sys_sitemenu');
Например, формируем меню в контроллере:
class test_controllers_index extends common_controller { public function index($pars = '') { $this->data = $this->parser->runSnippet('sys_sitemenu'); } }
Тогда в представлении пишем следующее (уберите лишние пробелы возле тегов):
< ? php print($data); ? >
print $this->parser->runSnippet('sys_sitemenu');
Например, формируем меню в модели:
class test_models_index { public function __construct($parser) { $this->parser = $parser; } function getData() { return $this->parser->runSnippet('sys_sitemenu'); }
В контроллере сделать вызов модели и получить данные:
class test_controllers_index extends common_controller { public function index($pars = '') { $model = new test_models_index($this->parser); $this->data = $model->getData(); } }
Код представления аналогичен первому способу:
< ? php print($data); ? >
При использовании механизма MVC-2 в любое место страницы, шаблона необходимо вставить вызов сниппета (уберите лишние пробелы возле тегов):
{ ! sys_sitemenu ! }
Примечание. В меню Элементы сайта-Сниппеты в карточке сниппета на вкладке Описание подробно описываются параметры сниппета и дается пример использования.
Вывод одной ветви меню. При выводе определенной ветви из древовидного списка меню необходимо указать параметр startId. В значении параметра необходимо указать Код (Id) страницы, начиная с которой будут выводиться ссылки меню. Например, выведем только ветвь меню, которая будет показывать страницы, подчиненные странице Органайзер:
$this->parser->runSnippet(' sys_sitemenu ', array('startId'=>'sys_pages_organizer'));
Внимание. В карточке страницы, ссылка на которую будет использоваться в меню, необходимо установить поля следующим образом: