Сделал двухсторонний login/logout
Как:
Проблема была только со стороны форума, т.к. со стороны Joomla все работало и так.
Поэтому:
Выпилил все ссылки на авторизацию/разлогинивание на форуме
Добавил свою форму со ссылкой на com_user и перенаправлением обратно на форум после авторизации (переменная $return).
<?php
$return=dase64_encode('forum');
?>
<form action="<?php echo JRoute::_( '../../index.php', true); ?>" method="post" name="login" >
<input type="text" name="username" alt="username" />
<input type="password" name="passwd" alt="password" />
<input type="submit" name="Submit" value="<?php echo JText::_('LOGIN')?>" />
<input type="hidden" name="option" value="com_user" />
<input type="hidden" name="task" value="login" />
<input type="hidden" name="return" value="<?php echo $return;?>" />
<?php echo JHTML::_( 'form.token' ); ?>
</form>
Возникла проблема: стандартный компонент Joomla com_user требует токен, также желательно чтобы JText работал и т.п.. а фреймворк подрубать геморно.
Написал простенький компонент с одним дефолтом, в котором лежала форма, вытягивал ее аяксом на форуме, через index2 (только компонент, без шаблона, модулей и прочей хрени):
function load(){
var data="option=com_ajax";
var success=function(html){_$(".ajax").html(html);}
ajax(data,"GET",success);
};
function ajax(data,type,success){
_$.ajax({
url:'../../index2.php', //Папка с форумом лежит в корне сайта.
type:type,
data:data,
success:success
});
}
Авторизация заработала, проблема с logout.
Решил почти так же:
Своя форма logout"а, но уже на форуме:
<?php
$return=base64_encode('forum/index.php?action=logout&sesc='.$context['session_id']);
?>
<form action="../../index.php" name="login" >
<input type="submit" value="logout" />
<input type="hidden" name="option" value="com_user" />
<input type="hidden" name="task" value="logout" />
<input type="hidden" name="return" value="<?php echo $return;?>" />
</form>
Здесь обратная ссылка после разлогинивания в Joomla ($return) - разлогинивание на форуме.
Таким образом можно логиниться где хочешь и, соответственно, разлогиниваться тоже)
Только заменить все стандартные формы smf на модернизированные, а со стороны Joomla все сделает jfusion))