Добавление дополнительных данных в сообщение модуля "Автопостинг в социальные сети"

Данное решение предназначено для модуля "Автопостинг в социальные сети", и позволяет добавлять дополнительную информацию в публикуемое сообщение этого модуля.

Для примера добавим в публикуемое сообщение текст из дополнительного свойства информационного элемента и теги информационного элемента.

Для начала добавим дополнительное свойство у нужной информационной системы и запомним 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%.

comments powered by Disqus


Следующий "Автодобавление редиректов в модуль "Управление редиректами"" К списку Предыдущий "Ускорить индексирование сайта в поисковых системах"