+1.66
Рейтинг
4.06
Сила

Алексей

Значит пока только через шаблон можно переопределить?
Максим, а может быть такое, что некоторые компоненты нельзя переопределить в плагине?
Компонент «Auth» я до этого переопределил, как видно по комментариям ниже, но сейчас пытаюсь проделать тоже самое с компонентом «Poll» и не выходит.
Здесь лежит переопределяющий файл:
/application/plugins/owls/frontend/skin/default/components/poll/result.tpl
В плагине пишу так:
protected $aInherits = array(
        'template' => array(
            'component.poll.result' => '_components/poll/result.tpl',
        ),
    );

Делал все по аналогии с Auth, но не получается.
Получается переопределить только через скин, при чем копировать нужно всю папку компонента со всеми файлами, а если в папку скина скопировать только 1 файл (poll.result.tpl), то ничего не происходит.
Что я делаю не так?
Если еще актуально, то я получал текущий топик в блоке через роутер:
$oTopic = $this->Topic_GetTopicById(Router::GetParam(0));
$this->Viewer_Assign("oTopic", $oTopic);

Но если урл заканчивается на .html, то нужно парсить параметр роутера чтобы получить из него только цифры. Я у себя в экшене просто убрал .html из регистрации ивента.
Пришлось переопределить метод EventAjaxAdd экшена Content.
Подниму старую тему чтобы не создавать идентичную. Вопрос тот же самый, но для LS 2.0 Решение предложенное в комментариях не работает, топик сохраняется с blog_id = 1
Спасибо Максим :)
Здравствуйте, почему не получается получить конкретное поле по его коду?
Список полей получить удается
{$aProperties = $topic->getPropertyList()}
{foreach $aProperties as $oProperty}
	{$oProperty->getTitle()}: {$oProperty->getValue()->getValueForDisplay()}
{/foreach}

А вот получить поле по его коду не удается, почему-то возвращает NULL
{$topic->getProperty('pin')->getValue()->getValueForDisplay()}
Да, я хочу просто добавить кнопки, наверное не по тому пути пошёл, весь файл заменять ни к чему :)
А до меня разве никто не делал плагинов, расширяющих функционал MarkitUp? :) Как эту задачу решали другие?
Просмотрел много разных плагинов, но ни в одном не нашел данной реализации.
И через хук пробовал так же подключать JS тоже безрезультатно.
С третьим параметром тоже пробовал, сейчас попробовал в Init()
так:
$this->Viewer_AppendScript(
    Plugin::GetTemplateWebPath(__CLASS__) . "components/editor/js/editor.markup.js",
    array('name'=>'editor_markup_options'), true);

и так
$this->Viewer_AppendScript(
    Plugin::GetTemplateWebPath(__CLASS__) . "components/editor/js/editor.markup.js",
    array('file'=>'Component@editor.markup'), true);

не хочет…
Через хук тоже не получилось, опять что-то не так делаю.
Создал в папке плагина хук:
application/plugins/editor/classes/hooks/HookEditor.class.php
с таким содержанием:
class PluginEditor_HookEditor extends Hook
{
    public function RegisterHook()
    {
        $this->AddHook('engine_shutdown_complete', 'replaceJs');
    }

    public function replaceJs()
    {
        $this->Viewer_AppendScript(
            Plugin::GetTemplateWebPath(__CLASS__) . "components/editor/js/editor.markup.js",
            array('name'=>'component.editor.markup'));
    }
}
Спасибо, попробую через хук :)
Я правильно понял?
В методе плагина Init() добавляю скрипт с заменой оригинального
public function Init()
{
    $this->Viewer_AppendScript(Plugin::GetTemplateWebPath(__CLASS__) . "components/editor/js/editor.markup.js", array('name'=>'component.editor.markup'), true);
}
я в плагине так переопределил:
 protected $aInherits = array(
        'template' => array(
            'component.auth.login' => '_components/auth/login.tpl',
        ),

переопределяющий файл лежит тут:
application/plugins/ulogin/frontend/skin/default/components/auth/login.tpl
Максим, а скрипты компонента переопределяются так же как шаблоны? Я ниже про это спрашивал, не переопределяется скрипт таким образом:
protected $aInherits = array(
        'template' => array(
            'component.editor.markup' => '_components/editor/js/editor.markup.js',
        )
    );
Максим, подскажите еще как правильно переопределить скрипт компонента. Пробовал так:
'template' => array(
            'component.editor.markup' => '_components/editor/js/editor.markup.js',
        ),

и так
'script' => array(
            'component.editor.markup' => '_components/editor/js/editor.markup.js',
        ),
Спасибо :)
Ого, я подключил блок через задницу ))) Максим спасибо большое за помощь!
через конфиг плагина:
$config['$root$']['block']['my_rule'] = array(
    'action' => array('index'),
    'blocks' => array(
        'left' => array(
            'my/frontend/skin/default/blocks/block.my.tpl' => array('priority' => 300)
        ),