Вам нужно будет создать компонент для обработки входа.
Фактический код входа очень прост. Вот пример из компонента, который мы разработали для Joomla 1.5.
/**
* Log into Joomla
* @return Bool Login Status
* @param $username String
* @param $password String
*/
function login($username, $password, $remember = false) {
if ($username && $password) {
$mainframe =& JFactory::getApplication();
return $mainframe->login(
array('username'=>$username, 'password'=>$password),
array('remember'=> $remember, 'silent'=>true)
);
}
return false;
}
Если вы не хотите, чтобы создать полный компонент, то вы можете использовать PHP компонент с этой страницы: http://www.fijiwebdesign.com/products/joomla-php-pages.html
Который когда-либо вы используете, важно то, как генерировать URL для войдите в Joomla. Это будет выглядеть так:
example.com/index.php?option={com_component}&template=component&no_html=1
где {com_component} - это имя вашего компонента.
В случае использования Joomla PHP компонента это будет выглядеть следующим образом:
example.com/index.php?option=com_php&Itemid={itemid}&template=component&no_html=1
Где Itemid находится меню Itemid страницы, которую вы создаете для вашего PHP-компоненты. Он создается после создания элемента меню для компонента PHP для вашей страницы PHP.
& template = component & no_html = 1 гарантирует, что загружен только компонент HTML, а no_html означает, что он не будет загружать какое-либо объявление HTML.
Таким образом, у вас может быть код, который, например, возвращает ответ JSON или XML, который приложение Flex может использовать с помощью URLLoader или аналогичного запроса. Или просто строка TRUE, или FALSE.
Update:
Упс, извините, что не хочу, я хочу. I хотите, если пользователь вошел в систему на Joomla, , они будут автоматически зарегистрированы в Flash-приложении. То же самое и наоборот.
Я предполагаю, что вы хотите сохранить свою учетную запись пользователя в базе данных Joomla, но вы должны быть конкретными, если вы планируете хранить данные пользователя в другом месте.
Вот как проверить, если пользователь уже зарегистрирован на Joomla:
$User =& JFactory::getUser();
if (!$User->guest) {
// user is logged in
} else {
// user is not logged in
}
Вот как получить пользователей сеанса ID:
$Session =& JFactory::getSession();
$sessid = $Session->getId();
Чтобы получить имя сеанса:
session_name();
Пример отправки данных пользователя и сеанса из Joomla во Flash:
$User =& JFactory::getUser();
$Session =& JFactory::getSession();
// for example use JSON which Flex undertands
echo json_encode((object) array('user'=>$User, 'session'=>$Session, 'name'=>session_name());
Как вы реализуете поиск данных пользователя и сеанса, зависит от вас. Вы могли бы отправить Flash-запросы Flash в Joomla, или вы могли бы использовать flash-файлы или ExternalInterface (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html).
Более важной частью является передача имени сессии и идентификатора между Flex и браузером. Вам нужно имя сеанса, чтобы вы могли установить cookie сеанса в браузере. Файл cookie должен быть назван так же, как имя сеанса, и его значение должно быть идентификатором сеанса.
Вы можете использовать ExternalInterface для установки cookie с помощью JavaScript браузера.
После того, как печенье установлено, как Flex и браузер используют один сеанс пользователя и покажут пользователь авторизован.
Вы также можете сделать то же самое между BlazeDS и Joomla, а затем есть флэш поговорить BlazeDS, чтобы получить информацию о сеансе.
На другом конце, если пользователь входит в систему через Joomla, вы передаете этот сеанс во Flash, используя flashvars, когда вы вставляете флеш или используете ExternalInterface.
Извините, что я не очень хорошо знаком с Joomla. Является ли пользователь, вошедший в систему в Joomla, будет автоматически зарегистрирован на Flash, запросив URL? Не нужно передавать имя пользователя/pw? –
Вам необходимо передать имя пользователя и пароль через HTTP, а затем передать это функции login().например: '$ result = login ($ _ POST ['username'], $ _POST ['password']);' – bucabay
Ooops, извините, что я этого не хочу. Я хочу, чтобы пользователь вошел в систему на Joomla, они будут автоматически зарегистрированы в приложении Flash. То же самое и наоборот. –