Делегирование шаблона плагина в другом плагине

Вот никак не могу найти информацию. Можно ли в одном плагине делегировать шаблон другого плагина? И если да, то как это указать в $aDelegates?

9 комментариев

avatar
Можно через указание полного пути до шаблона с использованием Plugin::GetTemplatePath('target_plugin')
  • ort
  • 0
avatar
Ммм. Что-то не работает. Пробовал в Init плагина ставить что-то типа

$this->aDelegates = array(
            Plugin::GetTemplatePath('mainpreview').'inject.topic.form.tpl'=>'test.tpl'
        );


пытался прямо в классе
protected $aDelegates = array(
        '/home/xxx/plugins/mainpreview/templates/skin/prestige/inject.topic.form.tpl' => 'test.tpl'
    );


и
protected $aDelegates = array(
        '/plugins/mainpreview/templates/skin/prestige/inject.topic.form.tpl' => 'test.tpl'
    );


и
protected $aDelegates = array(
        'plugins/mainpreview/templates/skin/prestige/inject.topic.form.tpl' => 'test.tpl'
    );


Что-то никак…
avatar
Тьфу, забыл массив 'template'…

Тогда такой вариант срабатывает:
protected $aDelegates = array(
        'template' => array(
            '/home/xxx/plugins/mainpreview/templates/skin/prestige/inject.topic.form.tpl' => '_test.tpl'
        )
    );


Но в инициализации функции нельзя указывать. Как определить путь к шаблону плагина с учетом текущего плагина.

В Init

$this->aDelegates = array(
            'template' => array(
                Plugin::GetTemplatePath('mainpreview') . 'inject.topic.form.tpl' => '_test.tpl'
            )
        );
Не срабатывает
avatar
avatar
увидел, это другая ситуация, не подойдет
avatar
Да, делегирование шаблонов из плагина в плагин через массив делегатов может не срабатывать, тоже встречался с этим. У меня работает такой вариант:
В Init() нового плагина добавь
$this->Plugin_Delegate('template',
      Plugin::GetTemplatePath('mainpreview').'inject.topic.form.tpl',
      Plugin::GetTemplatePath('newplugin').'inject.topic.form.tpl',
      'PluginNewplugin'
);
avatar
Спасибо, будем пробовать.
avatar
Еще так можно
	public function __construct() {
		$this->aDelegates=array(
			'template' =>array(
				Plugin::GetTemplatePath('article').'actions/ActionArticle/index.tpl'=>'_test.tpl'
			),
		);
	}
  • ort
  • +1
avatar
Спасибо
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.