oocms
oocms » в действии » свойства с параметрами На первую страницуОбратная связьКарта сайта
object-oriented content management system
oocms
о системе | преимущества | модули | примеры | в действии | заказать | контактная информация

Свойства с параметрами

Как облегчить себе правку сайта, если на странице перечислен список записей однотипной структуры? Можно, конечно, использовать метод «copy/paste», но при необходимости изменить шаблон вывода записей, придется вносить одни и те же изменения столько раз, сколько записей перечислено на странице.

Удобно вынести оформление вывода одной записи в отдельное свойство, а данные передавать с помощью ассоциативного массива, который попадет в свойство в виде переменной $params.

Предположим, требуется вывести список сайтов на страницу /sites. Определим свойство „site“ для этой страницы, в котором обработаем параметры $params:

site
<h2><a href="<?=$params['url']?>"><?=$params['name']?></a></h2>
<p><?=$params['info']?></p>

...

Вывод элемента списка будет выглядеть так:

content
...
<?=getItem('site', array(
  'name' => 'Система управления сайтом oocms',
  'url' => 'http://oocms.com.ru/',
  'info' => '...',
  ...
))?>
...

Поскольку второй параметр в функции getItem является необязательным, то желательно проверять внутри свойства, переданы ли параметры, и в случае их отсутствия сообщать об ошибке или прекращать вывод на страницу. Например, в самом начале свойства „site“ можно написать следующий код для проверки передачи параметров:

<? if (!$params) return; ?>

В таком случае вызов свойства без параметров не приведет к появлению ошибок.

Другой способ предотвращения ошибок при обработке параметров — использование значений по умолчанию. Этот способ гарантирует, что все параметры будут иметь какие-то значения, даже в случае, когда при вызове getItem() мы передали массив параметров, но забыли указать значение одного или нескольких элементов.

<?
$params += array(
  'name' => 'Ошибка',
  'url' => '#',
  'info' => ''
);?>
В действии

немного теории
первый сайт
взаимодействие свойств
наследование свойств
правила наследования
визуальный редактор
кэширование свойств
• свойства с параметрами
К началу страницы © Alexander Petrushev | 2oo4–2oo9 | Powered by oocms