Сократить код для получения доп. свойства

#
Сократить код для получения доп. свойства
Получаю доп. свойства раздела структуры (тип свойства  - строка) в макете (нужно для формирования мета-тегов для фейсбука для некоторых страниц)  таким образом:
$oProperty = Core_Entity::factory('Property', 33);
$aPropertyValues = $oProperty->getValues(CURRENT_STRUCTURE_ID);
echo $aPropertyValues[0]->value;

Не нашел в простынях, как сократить код, если этих свойств будет под сотню?
Лучше бы конечно функцией выводить, но тут наверное не тот случай...
Модератор
#
Re: Сократить код для получения доп. свойства
Свойств сотня или значений сотня? Здесь и так три строчки, можно сократить до двух.
#
Re: Сократить код для получения доп. свойства
Свойств сотня. У каждого свойства по одному значению (свойство не множественное).
Кстати, не нашел, как вызвать свойство по xml-тегу (подобно тому, как в XSL-шаблонах идет вызов).
Модератор
#
Re: Сократить код для получения доп. свойства
Так выберите свойства и пройдитесь по ним в цикле.
http://www.hostcms.ru/documentation/modules/properties/introduction/
Получение всех значений свойств объекта через getPropertyValues()

Дополнительно модели групп и элементов информационных систем, групп и товаров магазина, структуры сайта и пользователей сайта имеют метод getPropertyValues(), возвращающий все значения дополнительных свойств этого объекта.

$oStructure = Core_Entity::factory('Structure',  777);
$aPropertyValues = $oStructure->getPropertyValues();
foreach($aPropertyValues as $oPropertyValue)
{
    echo '<br />Property ', htmlspecialchars($oPropertyValue->Property->name), ', value = ', htmlspecialchars($oPropertyValue->Property->type == 2
       ? $oPropertyValue->file
       : $oPropertyValue->value);
}

то же самое можно делать для модели товара вместо структуры. Как получить текущий товар см. http://www.hostcms.ru/forums/2/11595/
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Shop_Controller_Show'
&& Core_Page::instance()->object->item)
{
// в Core_Page::instance()->object->item будет ID товара
}
#
Re: Сократить код для получения доп. свойства
У меня свойства имеют РАЗНЫЕ ID. Этих ID набегает сотню.
Ваш пример мне кажется совсем про другое...

Кстати, нашел, как вызвать в макете доп.свойство по тегу, нашел на этом же форуме, но увы через гугл)))
$oProperty = Core_Entity::factory('Structure_Property_List', $site_id)->Properties->getByTag_name('имя_тега');
$aPropertyValues = $oProperty->getValues(CURRENT_STRUCTURE_ID);
echo $aPropertyValues[0]->value;

Модератор
#
Re: Сократить код для получения доп. свойства
volgastar писал(а):
У меня свойства имеют РАЗНЫЕ ID. Этих ID набегает сотню.
Ваш пример мне кажется совсем про другое...

я не буду вас убеждать, совет дан, а пользоваться им или нет уже ваше дело.
Авторизация