Можно ли отобразить вид компонента без iframe и плагина?
(То есть, если возможно, с несколькими строками PHP и, возможно, SQL-запросами?)
РЕДАКТИРОВАТЬ:
Чтобы быть более понятным: я хотел бы сделать это прямо в PHP-шаблон!
(Было бы хорошо сделать это в статье, так как я написал
PHP-функция showArticle(mixed $ident)
)
(Я использую Joomla 3.5)
Я хотел бы сделать что-то вроде
<jdoc:include type="component" view="example" name="position-x" />
или же
<?php
show_component('component-name', 'view-name');
?>
Вы можете использовать этот компонент http://extensions.joomla.org/extension/components-anywhere
Установите плагин и включите его.
Затем вы можете вызвать компонент следующим образом: {URL-адрес компонента / из / компонента /}
{component index.php? component = com_example&Форма = 1}
Попробуйте использовать URL-адреса не-sef, но sef-URL все равно будет работать.
Есть еще один способ добиться этого, вызвав модель в файл контроллера таким образом
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_example/models', 'ExampleModel');
Что он делает, так это ищет класс модели, начиная с ExampleModel в указанной папке. здесь вы можете ввести только строку пути или массив каталогов в качестве первого параметра. Затем вы должны вызвать метод внутри файла представлений таким образом
$exmodel = JModelLegacy::getInstance('Something', 'ExampleModel', array('ignore_request' => true));
Итак, здесь вы создаете экземпляр объекта класса, который можно использовать для получения элементов из модели таким образом
$items = $exmodel->getitem();
$this->assignRef('items', $items);
Затем вы можете скопировать файл default.php в папку tmpl этого компонента и поместить его в любое место внутри вашего файла макета. По сути, вместо копирования всего компонента вы вызываете модель и получаете данные, которые вы можете использовать в своих макетах.
Других решений пока нет …