Шорткоды
Для подстановки в тексте региона/города используются шорткоды, их можно посмотреть в разделе «Шорткоды»
[mregionmorphos entity="multiregion" case="предложный"]
// Екатеринбург
[mregionmorphos entity="ASMP_City" field="city" case="дательный"]
// Екатеринбургу*
*выводится название города определенного по GeoIP, оно может отличаться от названия текущего региона, т.к. регион может быть привязан к области или нескольким городам
Для подстановки в тексте данных текущего региона, данные выводятся с помощью XSL-шаблона где можно задать свою верстку (название, описание региона, телефоны, email, адреса и др)
[multiregion regionsMode="current" directory="TRUE" xsl="МультирегиональностьКонтакты"]
- regionsMode — режим показа регионов, может принимать следующие значения:
- none - не показывать регионы (по умолчанию)
- current - текущий регион
- all - все регионы
- directory — (TRUE|FALSE) режим показа данных региона (телефоны, email, адреса), по умолчанию FALSE
- xsl — XSL-шаблон
mregionmorphos
multiregion
1
$args += array(
2
'entity' => 'multiregion',
3
'field' => 'name',
4
);
5
6
ob_start();
7
8
if (Core::moduleIsActive('multiregion'))
9
{
10
$value = NULL;
11
12
$entity = $args['entity'];
13
$aFields = explode(',', $args['field']);
14
$field = $aFields[0];
15
array_shift($aFields);
16
17
if(isset(Core_Page::instance()->$entity->$field))
18
{
19
$value = Core_Page::instance()->$entity->$field;
20
}
21
elseif(isset(Core_Page::instance()->$entity) && method_exists(Core_Page::instance()->$entity, $field))
22
{
23
$value = call_user_func_array(array(Core_Page::instance()->$entity, $field), $aFields);
24
}
25
elseif(isset($_SESSION) && Core_Array::get(Core_Array::getSession($entity, array()), $field))
26
{
27
$value = Core_Array::get(Core_Array::getSession($entity, array()), $field);
28
}
29
30
if($value && isset($args['case']))
31
{
32
$value = Morphos_Geographical::getCase($value, $args['case']);
33
}
34
35
echo $value;
36
}
37
38
return ob_get_clean();
$args += array(
'regionsMode' => 'current',
'xsl' => 'МультирегиональностьКонтакты',
'directory' => TRUE,
);
ob_start();
if (Core::moduleIsActive('multiregion'))
{
$MultiRegion_Controller_Show = new MultiRegion_Controller_Show(
Core_Entity::factory('Site', CURRENT_SITE)
);
$oXsl = Core_Entity::factory('Xsl')->getByName($args['xsl']);
if ($oXsl)
{
$MultiRegion_Controller_Show
->regionsMode($args['regionsMode'])
->directory($args['directory'])
->xsl($oXsl);
$MultiRegion_Controller_Show->show();
}
else
{
?>Ошибка, XSL не найден!<?php
}
}
return ob_get_clean();
Last modified 8mo ago