0.00
Рейтинг
1.13
Сила

Проблемы при создании плагинов

Привет,

столкнулся с несколькими непонятными вещами в LS

1) плагин должен добавлять js к некоторым страницам
Config::set('head.rules.myplugin', array(
    'path' => Config::get('path.root.web') . '/settings/profile',
    'js' => array(
        'include' => array(
            Config::get('path.plugins') . '/myplugin/custom.js'
        )
    )
));
Таким образом добавил для одной, а как сделать для нескольких?

2) Два разных плагина наследуют сущность User, но при этом переопределяют разные методы
Если активировать оба, то возникает ошибка:
Fatal error: Class 'PluginMyPlugin_ModuleUser_EntityUser' not found in D:/web/sites/livestreet/engine/include/function.php(412) : eval()'d code on line 1

3) Переопределил ActionSettings, положил шаблон profile.tpl в соответствующую папку плагина, рядом с profile.tpl создал еще один доп. шаблон custom.tpl. При попытке его заинклудить методом тыка обнаружил, что ls пытается это сделать из директории с дефолтовым скином, причем из корня. Можно ли как-то изменить такое поведение?

p.s. по пункту 3, я переопределял ActionSettings только для того, «делегировать» шаблон, можно ли обойтись без этого?

Новые возможности по переопределению/наследованию классов LiveStreet

В LS появилась новая возможность для разработчиков плагинов — наследование классов. Идея была высказана еще avadim'ом здесь.
Эта возможность позволит удобно переопределять различные методы одного класса (модуля, экшена, сущности, маппера) разными плагинами без конфликтов.
Главное отличие от делегирование — не происходит блокировки переопределения класса для других плагинов. Также есть возможность переопределения одного метода разными плагинами, но здесь разработчикам нужно быть очень осторожными и делать так, чтоб свести вероятность конфликта к минимуму.

Как использовать.
Например, нужно переопределить метод получения пути до аватара у сущности пользователя в плагине Test. В плагине необходимо объявить те классы, которые будут наследоваться. Объявление происходит в свойстве $aInherits:
<?php
class PluginTest extends Plugin {
    
    protected $aInherits=array(
       'entity'  =>array('ModuleUser_EntityUser'=>'_ModuleSide_EntityUser')
    );

    public function Activate() {        
        return true;
    }
    
    public function Init() {        
    }
}
?>

Читать дальше →

Плагин aceAdminPanel – новые возможности для разработчиков плагинов

Прямо так и хочется начать: «Кролики – это не только ценный мех, но и три-четыре килограмма легкоусвояемого мяса» :)

А все потому, что плагин админки (aceAdminPanel) – это не только облегчение работы администратора сайта, но и новые возможности для разработчиков, пишущих различные расширения для движка. Здесь я расскажу об одной интересной фиче, которую я смог реализовать в плагине, и которая дает гораздо больше возможностей при создании плагинов, чем стандартные средства.
Читать дальше →

Руководство по созданию плагина для v.0.4 на примере "Лента друзей"

Предисловие

Что такое плагины — читайте здесь.
По мотивам этого, выполняю обещание — привожу руководство как подобное сделать в виде плагина. Всех тонкостей в одной заметке не расскажешь, но основное постараюсь изложить.

Примечание. Долго не публиковал этот материал, держал в черновиках — на случай «мало-ли-что-измениться». Но думаю, кардинальных изменений в механизме плагинов в ближайшем релизе уже не будет.

Пошаговая схема:

Читать дальше →

Дополнительные поля при создании топика

Поискал по сайту, везде речь идёт о дополнительных полях в профиле.
Мне же нужно добавить одно простое поле в форму создания топика и при выводе топике простенько отпарсить.
Никак не пойму, как это сделать по феншую…

Может кто-то уже сталкивался с подобным?