A Joomla!предоставляет метод loadTemplate
для просмотра.
Так что, если вы в данный момент tmpl
файл загружен для макета edit
(т.е. tmpl/edit.php
), вы можете вызвать $this->loadTemplate('tab1');
и Joomla!загрузит файл tmpl/edit_tab1.php
в том же виде, что и ваш edit.php
.
В том же представлении, если вы хотите включить, скажем, tmpl/other_tab1.php
, вам придется временно установить макет на other , напримерв одном из наших компонентов во время шаблона Run нам нужна вкладка из шаблона Edit , поэтому мы используем:
<?php $this->setLayout('edit'); // This is ugly
echo $this->loadTemplate('plan');
$this->setLayout('run'); ?>
Чтобы загрузить шаблон из другого представленияВ целом, я думаю, вам придется временно переопределить значение view
, загрузить шаблон и восстановить представление.например.
$jinput = JFactory::getApplication()->input;
$jinput->set('view', 'other');
$this->loadTemplate('tab2');
$jinput->set('view', 'original');
Примечание: последний бит, который я не успел проверить, но он должен работать.