+0.42
Рейтинг
1.20
Сила

Добавление блока ко всем страницам из плагина

Создал простой плагин

BlockCloud.class.php
class PluginCloud_BlockCloud extends Block {
    public function Exec() {
        $this->Viewer_Assign('aSimilarTopics', 'bla');
    }
}
И шаблон block.cloud.tpl с текстом «тест».

По хуку работает, а когда добавляю в конфинг
'blocks'  => array(
	'right' => array('stream'=>array('priority'=>100),
            'tags'=>array('priority'=>50),
            'cloud'=>array('priority'=>20),
            'blogs'=>array('params'=>array(),'priority'=>1))
	),
то получаю следующее
Fatal error: Uncaught exception 'Exception' with message 'Can not find the block`s template: cloud' in D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php:514 Stack trace: #0 D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php(429): ModuleViewer->DefineTypeBlock('cloud', NULL) #1 D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php(624): ModuleViewer->AddBlock('right', 'cloud', Array, 20) #2 D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php(204): ModuleViewer->BuildBlocks() #3 D:\php\sites\livestreet\engine\classes\Engine.class.php(164): ModuleViewer->Init() #4 D:\php\sites\livestreet\engine\classes\Engine.class.php(394): Engine->LoadModule('ModuleViewer', true) #5 D:\php\sites\livestreet\engine\classes\Engine.class.php(326): Engine->GetModule('Viewer_Assign') #6 D:\php\sites\livestreet\engine\classes\Module.class.php(49): Engine->_CallModule('Viewer_Assign', Array) #7 [internal function]: Module->__call('Viewer_Assign', Array) #8 D:\php\sites\livestreet\engine\modules\lang\Lan in D:\php\sites\livestreet\engine\modules\viewer\Viewer.class.php on line 514

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

Привет,

столкнулся с несколькими непонятными вещами в 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 только для того, «делегировать» шаблон, можно ли обойтись без этого?

Подключение js файлов из конфига плагина

Всем привет

Создал директорию плагина, в ней файл config/config.php
Config::set('head.rules.crop',array(
    'path' => Config::get('path.root.web').'/settings/profile/',
    'js' => array(
        'include' => array(
            Config::get('path.plugins').'/crop/external/cwcrop/ysr-crop.js'
        )
    ),
));
return $config;

Файл не подключается
И как можно подключить файл для всех страниц с использованием конфига плагина?

Переопределение стандартного метода (плагин)

Привет.
Хочу сделать плагин для аватаров, не получается переопределить стандартный метод.
Последовательность действий:
1) в паке MyPlugin создал файл MyPlugin.class.php
class PluginMyPlugin extends Plugin {
   protected $aDelegates=array(
      'entity' => array('UserEntity_User'=>'PluginMyPlugin_UserEntity_User')
   );
}
2) в папке плагина создал файл classes/module/user/entity/User.entity.class.php
require_once(Config::Get('path.root.server').'/classes/modules/user/entity/User.entity.class.php');

class PluginMyPlugin_UserEntity_User extends UserEntity_User {
    protected function getProfileAvatarPath() {
        echo 'test';
        }
    }
}