Как правильно сделать наследование экшена?

Требуется сделать ActionVideo для своего типа топика, который будет почти полностью повторять ActionTopic.
Логично сделать от него наследование. Но тогда, если другие плагины переопределят методы ActionTopic, эти изменения не коснутся наследуемого ActionVideo. Есть идеи, как реализовать наследование с учетом изменений от плагинов?

Как правильно переопределить Action

Вопрос отчасти продолжение
этого вопроса, но появились некоторые нюансы.
К примеру у меня есть 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();, который вызывает оригинальный метод.
Вопрос. Как преодолеть этот конфуз?

Решено: "Упаковка" изменений в плагин. Замена экшенов и переопределения

Помогите, пожалуйста, разобраться в следующем вопросе:

Пытаюсь упаковать изменения в плагин:
основной функционал — изменение вывода топиков на главной странице.
Читать дальше →

В топик (тип ссылка) добавить элементы фотоссета

Вообщем название за себя все говорит, неподскажите как сделать чтобы пользователь смог добовлять фотографии как в фотоссете, только что бы это происходило в создание ссылки, неспрашивайте меня зачем мне этот бред, просто надо…

Впринципе я понимаю всею систему примерно как это сделать но сам дойти не могу до этого…

Вообщем ваши старания окупяться вам в размере 100 wmr, тому кто сможем мне помочью.

action для блоков для tpl в конфиге

всем привет. читаю мануал для новичков, натыкаюсь на то, что нужно и возникает вопрос… проблема возникала со следующей строкой кода:

'action'  => array( 'index', 'new', /* ... где еще показывать ...*/),


а как, собственно, узнать, где ещё МОЖНО показывать? какие есть ещё параметры кроме 'index', 'new'? где о них можно почитать? неужели нет списка с названием параметров и их описанием?

Переопределение некоторых методов в Action

Здравствуйте, назрел у меня вот такой вопрос:
хочу через плагин переопределить один из методов класса ActionComment.class.php
Если это делать через $aInherits и переопределить только тот метод который мне нужен, то тогда вылазит ошибка об абстрактных методах Init и RegisterEvents если же я заменяю весь ActionComments (т.е. просто копипастну все методы и изменю только тот который мне надо), то возможно в будущем будет конфликт с другими плагинами которые тоже будут переопределять какие-то методы ActionComments.
Пробовал черпать информацию отсюда: http://livestreet.ru/blog/dev_documentation/4499.html, но там про перопределение Action ничего не сказано (только вскольз упомянуто в комментах).
Подскажите в какую сторону копать

Вопрос про грамотный роутинг!

Итак, я снова ударился в изучение уже новой версии LS и пишу некоторые плагины.
И вот возник такой вопрос по роутингу.
Буду очень благодарен за подсказки.

Например, в конфиге я указал такую конструкцию

Config::Set('router.page.countries', 'PluginGeo_ActionCountry');


таким образом все что будет в браузере набрано domain.com/countries/ пойдет в экшн ActionCountry
урлы будут вида /countries/Ukraine/ или /countries/Ukraine/Kiev/ и так далее.

Можно ли как-то прописать так, чтобы /countries/Ukraine/ шло в экш ActionCountry
а /countries/Ukraine/Kiev/ в ActionCity а /countries/Ukraine/Kiev/Hotels/ в ActionHotel и так далее.

И еще, в экшене ActionCountry я написал так

protected function RegisterEvent()
    {        
        $this->AddEventPreg('/^[\w\-\_]*$/i','actions');       
    }


но когда я пытаюсь сделать вот так:

print_r($this->GetParams())


то при адресах вида /countries/ и /countries/Belarus/ ничего не выдает, пустой массив т.е. НО зато когда есть урл вида /countries/Belarus/Minsk то в него попадает уже Minsk и так далее, а как мне собственно получить все вхождения в урл )

есть вариант такой

$sUrlFull=join('/',$this->GetParams());
        if ($sUrlFull!='') {
            $sUrlFull=$this->sCurrentEvent.'/'.$sUrlFull;
        } else {
            $sUrlFull=$this->sCurrentEvent;
        }


но он не очень красивый мне кажется.

Спасибо всем отозвавшимся )

Екшины, евенты и пр

Исходя из тех знаний что у меня есть запрос в движок формируется следующим образом:
my-site.ru/action/event
Т.е. первый параметр это экшин второй эвент.
Если я загружаю аватар то user.js, из ядра движка, формирует следующий запрос:
my-site.ru/settings/profile/upload-avatar/
В ActionSettings я нашел и EventProfile и EventUploadAvatar. Как это работает, ведь случай явно выходящий за рамки техинструкций по ЛС.

Система блоков - расставляем точки...

Была потребность разобраться с системой блоков. Очень много чего перечитал с сайта. Например, Система блоков. Ниже будет краткое изложение полученных знаний. Попытаюсь рассказать про систему блоков простым языком, чтобы и новички поняли.

Самое главное, что я выяснил:
1. Блоки можно создавать самостоятельно.
2. Блоки можно размещать в произвольном месте страницы (нужно заранее указать эти места)
3. Блоки могут отображаться в зависимости от Action'ов и Event'ов
4. Блоки могут отображаться в зависимости от адреса страницы. Адрес страницы можно задать с помощью регулярных выражений.
Итак, основные моменты.
Читать дальше →