Блог
Добавление дополнительных данных в сообщение модуля "Автопостинг в социальные сети"
Данное решение предназначено для модуля "Автопостинг в социальные сети", и позволяет добавлять дополнительную информацию в публикуемое сообщение этого модуля.
Для примера добавим в публикуемое сообщение текст из дополнительного свойства информационного элемента и теги информационного элемента.
Для начала добавим дополнительное свойство у нужной информационной системы и запомним XML тег. Создаём файл наблюдателя /modules/social/observer/observer/addreplaces.php со следующим содержимым:
<?php
defined('HOSTCMS') || exit('HostCMS: access denied.');
class Social_Observer_Observer_AddReplaces
{
static public function onAfterBuildInformationsystemData($null, $args)
{
list($aReplace, $object) = $args;
$oInformationsystemItemPropertyList = Core_Entity::factory('Informationsystem_Item_Property_List', $object->informationsystem_id);
$oSocTextProperty = $oInformationsystemItemPropertyList->Properties->getByTagName('soc_text');
$aReplace['%SOC_TEXT%'] = '';
if($oSocTextProperty)
{
$aoPropertyValues = $oSocTextProperty->getValues($object->id, false);
if(count($aoPropertyValues))
{
$aReplace['%SOC_TEXT%'] = $aoPropertyValues[0]->value;
}
}
$aoTags = $object->Tags->findAll();
$aTags = array();
foreach ($aoTags as $oTag)
{
$aTags[] = '#' . $oTag->name;
}
$aReplace['%TAGS%'] = implode(' ', $aTags);
return $aReplace;
}
}
В метод getByTagName вместо soc_text передаём XML тег созданного вами дополнительного свойства.
%SOC_TEXT% и %TAGS% при желании можно изменить.
В конец файла bootstrap.php добавить следующий код:
Core_Event::attach('Social_Observer.onAfterBuildInformationsystemData', array('Social_Observer_Observer_AddReplaces', 'onAfterBuildInformationsystemData'));
Переходим в ЦА в раздел "Экспорт в социальные сети", и в шаблон текста публикуемого информационного элемента добавляем %SOC_TEXT% и %TAGS%.