The problem is semi-solved when the requested method ( ActionSearch_() ) exists like :
public function missingAction($missingActionId)
{
$this->setAction($this->createAction($missingActionId.'_'));
$this->render('forum',array('page'=>$missingActionId));
}
public function ActionSearch_() {}
In this case, Yii will render the ‘forum’ view flawlessly.
The bug is here :
Yii tries to define a page title via CController::getPageTitle() and a route via CController::getRoute() in the case of a missingAction() context in :
public function getRoute()
{
return $this->getUniqueId().'/'.$this->getAction()->getId(); // $this->getAction() is NULL when using missingAction();
}
public function getPageTitle()
{
if($this->_pageTitle!==null)
return $this->_pageTitle;
else
{
$name=ucfirst(basename($this->getId()));
if($this->getAction()!==null && strcasecmp($this->getAction()->getId(),$this->defaultAction)) // $this->getAction() is NULL here too.
In other words : $this->render() into a missingAction() method doesn’t work.