Задача. У сайта есть слоган. Текст слогана находится в поле introtext главной страницы сайта. Нужно отображать этот слоган на всех страницах сайта.Создадим новый сниппет getValue:
$res = $modx->getObject('modResource',$id); $output = $res->get($val); return $output;
И вызывать его будем так:
[[getValue? &id=`[[++site_start]]` &val=`introtext`]]
Все параметры, которые мы передали в сниппет (id и val) внутри сниппета превращаются в переменные ($id и $val) и мы можем их использовать.
Кроме того наш сниппет может работать не только с главной страницей и показывать не только introtext — в другом месте страницы вы можете показать, например, заголовок родительского документа:
[[getValue? &id=`[[*parent]]` &val=`pagetitle`]]
Думаю, теперь большему количеству людей понятно, что такое xPDO и как его можно применять на практике. Дальше будем рассматривать более сложные случаи, так как xPDO позволяет манипулировать абсолютно всеми объектами, а не только ресурсами, что открывает перед нами большие возможности. G+
Создал спинет getValue
В нем:
Вызвал снипит в основном шаблоне. Отдал следующую ошибку:
Fatal error: Call to a member function get() on a non-object in /var/www/altauto.ru/core/cache/includes/elements/modsnippet/24.include.cache.php on line 5
Подскажите пожалуйста в чем может быть причина. Интернет и в частности google не помог решить данную проблему. Слышал что косвенно может быть виновата старая версия php, но у меня 5.3.3-7.
Создание дочернего ресурса в определенном каталоге