Шорткоды
Для подстановки в тексте данных текущего региона/города используются шорткоды, их можно посмотреть в разделе «Шорткоды»
// Екатеринбург
[mregionmorphos entity="multiregion" case="предложный"]
// Екатеринбургу*
[mregionmorphos entity="ASMP_City" field="city" case="дательный"]
// [email protected] - вывод Email текущего региона через функцию getEmail(1)
[mregionmorphos entity="multiregion" field="getEmail,1"]
*выводится название города определенного по GeoIP, оно может отличаться от названия текущего региона, т.к. регион может быть привязан к области или нескольким городам
Для подстановки в тексте данных регионов, данные выводятся с помощью XSL-шаблона где можно задать свою верстку (название, описание региона, телефоны, email, адреса и др)
[multiregion regionsMode="all" directory="TRUE" xsl="МультирегиональностьКонтакты"]
regionsMode — режим показа регионов, может принимать следующие значения:
none - не показывать регионы (по умолчанию), в XML остается только текущий
all - все регионы
directory — (TRUE|FALSE) режим показа данных региона (телефоны, email, адреса), по умолчанию FALSE
xsl — XSL-шаблон
Полный код шорткодов
$args += array(
'entity' => 'multiregion',
'field' => 'name',
);
ob_start();
if (Core::moduleIsActive('multiregion'))
{
$value = NULL;
$entity = $args['entity'];
$aFields = explode(',', $args['field']);
$field = $aFields[0];
array_shift($aFields);
if(isset(Core_Page::instance()->$entity->$field))
{
$value = Core_Page::instance()->$entity->$field;
}
elseif(isset(Core_Page::instance()->$entity) && method_exists(Core_Page::instance()->$entity, $field))
{
$value = call_user_func_array(array(Core_Page::instance()->$entity, $field), $aFields);
}
elseif(isset($_SESSION) && Core_Array::get(Core_Array::getSession($entity, array()), $field))
{
$value = Core_Array::get(Core_Array::getSession($entity, array()), $field);
}
if($value && isset($args['case']))
{
$value = Morphos_Geographical::getCase($value, $args['case']);
}
echo $value;
}
return ob_get_clean();
Last updated