Вопрос отчасти продолжение
этого вопроса, но появились некоторые нюансы.
К примеру у меня есть 2 РАЗНЫХ типа топика которые должны отображаться по разному.
Пример если я реализовую отображение топика так:
protected function EventShowTopic() {
if (!($oTopic=$this->Topic_GetTopicById($iTopicId))) {
return parent::EventNotFound();
}
if($oTopic->getType() != 'mytopic') {
return parent::EventShowTopic();
}
То этот метод будет отрабатывать ДЛЯ ВСЕХ топиков независимо от типа. Соответственно я и делаю проверку на тип топика:
if($oTopic->getType() != 'mytopic') {
return parent::EventShowTopic();
}
И вроде бы все хорошо.
НО. Теперь если я добавлю еще один новый тип топика с таким же кодом:
protected function EventShowTopic() {
if (!($oTopic=$this->Topic_GetTopicById($iTopicId))) {
return parent::EventNotFound();
}
if($oTopic->getType() != 'myNEWtopic') {
return parent::EventShowTopic();
}
то здесь происходит конфуз. А конкретно, этот переопределенный метод не будет выполняться никогда. Потому что в предыдущем вызывается
return parent::EventShowTopic();, который вызывает оригинальный метод.
Вопрос. Как преодолеть этот конфуз?