private:koding:hostcms:modules:avtoposting_v_socialnye_seti:pereopredelenie_massiva_podmen

Расширение массива подмен

Необходимо расширить массив подмен, чтобы в пост попадали дополнительные данные, а именно:

  1. Текст из доп. свойства информационного элемента;
  2. Теги информационного элемента.

Создаём доп. свойство у нужной информационной системы, запоминаем XML-тег.

Создаем файл для наблюдателя /modules/social/observer/observer/addreplaces.php со следующим содержимым:

<?php
defined('HOSTCMS') || exit('HostCMS: access denied.');
 
class Social_Observer_Observer_AddReplaces
{
	/**
	 * 
	 * @return array
	 */
	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('вставляем XML-тег созданного доп свойства')
  • Меняем имена переменных
  • %SOC_TEXT%
  • %TAGS%

В корне сайта изменить файл bootstrap.php, добавить в конце следующий код:

 Core_Event::attach('Social_Observer.onAfterBuildInformationsystemData', array('Social_Observer_Observer_AddReplaces', 'onAfterBuildInformationsystemData'));

Перейти в ЦА в раздел «Экспорт в социальные сети», и в шаблон текста публикуемого информационного элемента добавить:

  • %SOC_TEXT%
  • %TAGS%

Результат:

Страницу создал Константин Сериков 31.03.17 в 12:37

private/koding/hostcms/modules/avtoposting_v_socialnye_seti/pereopredelenie_massiva_podmen.txt · Last modified: 27.06.17 в 14:45 by maximzasorin_gmail.com