+10.35
Рейтинг
25.74
Сила
так лучше, наверное

if (preg_match('/^\/+([^\/]*)/si',str_replace(Config::Get('path.root.web'),'',Router::GetPathWebCurrent()),$aMatches)) {
	$sLogin = $aMatches[1];				
	if ($this->User_GetUserByLogin($sLogin)) {
		return Router::Action('profile',$sLogin,array());
	}
}
можно вставить в classes/actions/Init.class.php

после

$this->Hook_Run('init_action');


if (preg_match('/^\/+([^\/]+)/si',str_replace(Config::Get('path.root.web'),'',Router::GetPathWebCurrent()),$aMatches)) {
	$sLogin = $aMatches[1];
}		
if ($this->User_GetUserByLogin($sLogin)) {
        return Router::Action('profile',$sLogin,array());
}
только каюсь,
return Router::Action('profile',$sLogin,array());

будет работать вроде только в экшене.
Надо просто редирект:
header ('Location: '.Router::GetPath('profile').$sLogin);
Есть вариант вырезать все возможные урлы в регулярке, либо проверять на существование имя пользователя, а потом редиректить например хуком на engine_init_complete:

$oEngine=Engine::getInstance();
$sLogin = Router::GetAction();
if ($oEngine->User_GetUserByLogin($sLogin)) {
   return Router::Action('profile',$sLogin,array());
}
  • avatar kpoxas
  • 0
написал вам в личку
  • avatar kpoxas
  • 0
Там в эвентах стоит
$this->SetTemplateAction('index');

И, например, если у меня не проходит авторизация через твиттер, то выбивает:

Fatal error: Uncaught exception 'Exception' with message 'Can not find the template: index.tpl' in /var/www/*****/engine/modules/viewer/Viewer.class.php:321 Stack trace: #0 [internal function]: ModuleViewer->Display('index.tpl') #1 /var/www/*****/engine/classes/Engine.class.php(481): call_user_func_array(Array, Array) #2 /var/www/*****/engine/classes/Router.class.php(368): Engine->_CallModule('Viewer_Display', Array) #3 /var/www/*****/engine/classes/Router.class.php(70): Router->__call('Viewer_Display', Array) #4 /var/www/*****/engine/classes/Router.class.php(70): Router->Viewer_Display('index.tpl') #5 /var/www/*****/index.php(34): Router->Exec() #6 {main} thrown in /var/www/*****/engine/modules/viewer/Viewer.class.php on line 321
  • avatar kpoxas
  • 0
впишите в index.php вверху

error_reporting(0);

либо поменяйте вашу функцию на

public function getblog_generator() { 
   return isset($this->_aData['blog_generator'])?$this->_aData['blog_generator']:false; 
} 
  • avatar kpoxas
  • 0
Запустите при включенном Firebug и посмотрите, что в консоле выдало при ответе на AJAX запрос. Возможно ошибка где-то в ActionAjax.php
  • avatar kpoxas
  • 0
  • avatar kpoxas
  • 0
Когда кстати планируется подвязать кэширование?
  • avatar kpoxas
  • 0
Создал такой хук
class HookAdminSkin extends Hook {
	public function RegisterHook() {
		$this->AddHook('viewer_init_start','SetSkin',__CLASS__,-1000);
	}

	public function SetSkin() {
		//$oEngine=Engine::getInstance();
		/**
		 * У админа свой шаблон
		 */
		if(Router::GetAction()=='admin')	Config::Set('view.skin', 'admin');	
		
	}
}


Работает
  • avatar kpoxas
  • 0
для каждого ж шаблона папка компиляции и кэширования своя
  • avatar kpoxas
  • 0
попробуй скачать через svn программой tortoisesvn
  • avatar kpoxas
  • 0
Если зайти в БЛОГИ, то там есть «Список» и «MBLOG_CATEGORIES», при клике на второе вылезаетт ошибка 404
  • avatar kpoxas
  • 1
В файле config\config.php надо долистать до сюда:

/**
 * Настройки кеширования
 */
// Устанавливаем настройки кеширования
$config['sys']['cache']['use']    = true;               // использовать кеширование или нет
  • avatar kpoxas
  • 0
После модерации плагин будет доступен здесь: livestreet.ru/addons/139/
что-то пока «не модерируется» ссылка
  • avatar kpoxas
  • 0
Просто вопрос, как получить данные о принадлежности к модераторам блога comment.tpl?

{assign var="oBlog" value=$oTopic->getBlog()}                     
  {$oBlog->getUserIsModerator()}

не работает
  • avatar kpoxas
  • 0
Оно действительно работает…
А так как поле в БД остутствует, то в файле Blog.entity.class функции
public function getUserIsAdministrator() {
        return $this->_aData['user_is_administrator'];
    }
public function getUserIsModerator() {
        return $this->_aData['user_is_moderator'];
    }

возвращают пустой результат, так как они берут данные (насколько я понимаю) из SQL запроса к таблице blog_user
  • avatar kpoxas
  • 0
В patch.sql есть строки

ALTER TABLE `prefix_blog_user`
  DROP `is_moderator`,
  DROP `is_administrator`;


Соответственно классы $oBlog->getUserIsAdministrator() и $oBlog->getUserIsModerator()
ничего не выводят.

Теперь, чтобы определить принадлежность юзера к группе модераторов блога, надо делать следующие манипуляции, например в comment.tpl:
{assign var="oBlog" value=$oTopic->getBlog()}
{assign var="oBlogUser" value=$oBlog->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(),$oUser->getId())};
      {if $oBlogUser->getIsModerator()}...код...{/if} 

Или я не так понял?
  • avatar kpoxas
  • 0
Версия какая? Я на 0.4 тестил, наверное, у вас 0.31, там классы объектов, кажись по-другому вызывались