Работа с объектами ORM
Вывести перевод для текущего языка элемента определённого поля можно так (если перевода нет, то вернет значения дефолтного языка)
$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item', 123);
echo $oInformationsystem_Item->multiLng('name'); // About
// для доп. свойства
$oProperty = Core_Entity::factory('Property', 123);
$aPropertyValues = $oProperty->getValues($shop_item_id);
echo $aPropertyValues[0]->multiLng('value')
Получить все переводы всех полей для элемента в виде объектов
/*
* Получение маасива объектов, $bCache = TRUE
* @param string $entity model name
* @param int $entity_id
* @param boolean $type FALSE|TRUE
* @param boolean $bCache cache mode
* @return array
*/
Core_Entity::factory('MultiLanguage_Field')->getAFields('shop_item', 123);
// Результат
//Array (
// [0] => MultiLanguage_Field_Model Object
// [1] => MultiLanguage_Field_Model Object
//)
/*
* Получение массива объектов с ключами полей
*/
Core_Entity::factory('MultiLanguage_Field')->getAFields('shop_item', 123, TRUE);
// Результат
//Array (
// [name] => MultiLanguage_Field_Model Object
// [description] => MultiLanguage_Field_Model Object
//)
/*
* Получение объекта по полю
* @param string $entity model name
* @param int $entity_id
* @param string $field field name
* @param boolean $bCache cache mode
* @return self|NULL
*/
Core_Entity::factory('MultiLanguage_Field')->getByField('shop_item', 123, 'name');
Сохранение перевода для элемента
Сохранение происходит через параметр datalng_{lng}_{field}
, где {lng} это код языка, а {field} имя поля элемента
$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item', 123);
$oInformationsystem_Item->datalng_en_name = 'My name';
$oInformationsystem_Item->save();
// получаем текущий язык
// получение
Вывести домен текущего языка, для типа [site]
$oMultiLanguage = Core_Entity::factory('MultiLanguage')->getByLng(Core::getLng());
if(!is_null($oMultiLanguage)
echo $oMultiRegion->Site_Alias->name; // msk.site.ru
Вывести путь текущего языка, для типа [url]
<?php
$lngPath = '';
$oMultiLanguage = Core_Entity::factory('MultiLanguage')->getByLng(Core::getLng());
!is_null($oMultiLanguage) && $lngPath = $oMultiLanguage->getPath();
?>
<a href="/<?php echo $lngPath ?>politics/">Политика конфиденциальности
Last updated