3 комментария

avatar
в роутере сделать проверку на экшен, если он число, то переопределять экшен/евент/параметры на необходимые
  • ort
  • +3
avatar
Пасиба. Подумал в парсинге url'a перехватить, но получу то только id. Как экшен и евент определить?
avatar
Можно так: в конструкторе роутера после

self::$sAction=array_shift($aRequestUrl);
self::$sActionEvent=array_shift($aRequestUrl);
self::$aParams=$aRequestUrl;


Добавьте что-нибудь на подобие этого:

if((int)self::$sAction!=0) {
	$oTopic=Engine::getInstance()->Topic_GetTopicById(self::$sAction);
	if($oTopic) {
		self::$sAction='blog';
		if ($oTopic->getBlogType()=='personal') {
	    		self::$sActionEvent=$oTopic->getId().'.html';
	    		self::$aParams=array();
	    	} else {
	    		self::$sActionEvent=$oTopic->getBlogUrl();
	    		self::$aParams=array($oTopic->getId().'.html');
	    	}		
	}
}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.