Заметки об Amiro.CMS

API и многоязычность

02.07.12 16:17

Если на сайте используется многоязычность, а стало быть все ссылки содержат /ru/ (или /en/, /de/), и сессия хранится в куке session_ru. То следующий код не будет работать, как то ожидается:

$oSession = AMI::getSingleton('env/session'))
if(!$oSession->isStarted()){
$res = $oSession->start();
} $session_id = $oSession->getId();

Мы обратились с вопросом в СТП Amiro.CMS

Как это исправить?

И нам предложили следующее решение: необходимо передавать локализацию в запросе к самому скрипту (актуально, если вышеуказанный код используется в файле, который подключается как самостоятельный JS скрипт) и использовать следующий код (скрипт ожидает параметр locale в HTTP-запросе):

<?php
require 'ami_env.php';

/**
* @var AMI_RequestHTTP
*/
$oRequest = AMI::getSingleton('env/request');

$locale = $oRequest->get('locale', 'en');

/**
* @var AMI_Session
*/
$oSession = AMI::getSingleton('env/session', array('locale' => $locale));
if(!$oSession->isStarted()){
    $oSession->start();
}
$session_id = $oSession->getId();
?>

Внимание! Требуется отдельная проверка включена ли многоязычность, т.к. при выключенной многоязычности второй вариант работать не будет. Но об этом в другой раз.



Рубрики: PHPкодим API Разработка плагинов Многоязычность


« Как получить ID пользователя в плагине  | В начало |  Получение содержимого корзины (обходной способ) »



При перепечатке, копировании материалов с сайта прямая и активная ссылка, разрешенная для индексации поисковыми роботами, на источник www.amirocmspro.ru обязательна!

Поиск по сайту

Loading

Облако тегов

5.10.x 5.12.0.4 5.14.x.x 6.0.x AMI AMI::getOption Amiro.CMS AMI_Registry AMI_RequestHTTP API CSS DBD MySQL DB_Query ErrorDocument getPluginOption HTML https INSERT jQuery modId mod_rewrite MySQL Perl PHP PHPкодим pluginId sm_tree.tpl SSL subs_send_single Tools



Купить Amiro CMS

Хотите купить платную редакцию Amiro.CMS? Напишите нам!




Почему коммерческие CMSПочему Amiro.CMSПоискПартнеры и друзьяКарта сайта
2010-2014 © AmiroCMSPro.ru | Amiro.CMS глазами администратора системы. - проект nsk21.ru
Лучший хостинг для сайтов на Амиро.CMS». Учебе время - потехе час!
Работает на Amiro CMS - Free