Joomla « Доступ к переменным Joomla из стороннего приложения

Есть стороннее приложение, которому нужно получить доступ к переменным Joomla, например узнать userid текущего залогиненного пользователя. Есть ли способы сделать это не создавая компонентов или плагинов в Joomla?

1 ответов


можно попробывать сделать как сделал я )
делал для вордпресса и оскоммерса...

написал внешний скрипт на пхп и просто подключил туда функции из ВП и оскоммерса соответсвенно ) и уже на их основе писал приложение полностью совместимое с этими системами .

у многих опенсурс фри цмс ) есть что то типа function.php ) его и подключаем и юзаем.


Решение удалось найти показывая свое приложение в iframe и передавая Joomla session id через УРЛ. Для показа в iframe можно использовать Wrapper component.


// получить session id
$session =& JFactory::getSession();
$sid = $session->getId();

// передать его через УРЛ
src="<?php echo $this->wrapper->url . "?sessionid=$sid"; ?>"
 


В своем приложении можно использовать что-то такое:


$jconn=db_connect();

// Get sessionvariable of Joomla-Session over the URL which passes the Joomla-Wrapper to the iframe
$sessionid = @$_GET["sessionid"];

//Get the values out of the jos-session-table:

$rs=db_query("select * from `jos_session` where session_id='$sessionid'",$jconn);
$data=db_fetch_array($rs);
if($data)
{
        $_SESSION["UserID"] = $data["username"];
        $_SESSION["GroupID"] = $data["usertype"];
}
 

Подробнее вот здесь .



А сторонее приложение каким образом обращается к файлу в котором необходимо получить переменые Joomla?
Можно сделать так: в папке с Вашим шаблоном создаём файл допустим test.php, далее в файле который отправляет запрос, адрес к файлу прописываем следующий: www.вашсайт.ru?tmpl=test
и если допустим Вам нужна какая либо информация о пользователе тогда используем JFactory::getUser и т.д
и echо'м выводим нужную информацию
Фишка в том что обращаясь к файлу по адресу www.вашсайт.ru?tmpl=test подругажается фреймворк Joomla что и позволит использовать его для передачи данных