...а вы не могли бы подробнее объяснить что-куда писать?
Если вставить этот код например в продукс.пхп, то просто слетает шаблон, но плагины не включаются.
Объясню, как у меня сделано через template override. Можно, конечно, и оригинал шаблона JS покоцать, но с каждым обновлением есть опасность потерять изменения, я в "ядреную" функциональность лезть не люблю очень.
1) Создаем template override для компонента JS. Копируем все, что лежит в
_корень вашего сайта_/components/com_jshopping/templates/default в
_корень вашего сайта_/templates/_ваш темплейт_/html/com_jshopping2) Далее издеваемся над файлами, лежащими в
_корень вашего сайта_/templates/_ваш темплейт_/html/com_jshopping. Заходим в эту директорию.
3) Допустим, вам нужно, чтобы все, что выводится в вид "товар", было обработано плагинами контента. Открываем файл /product/product_default.php - это "корень" вида "товар" - остальные файлы там - подключаемые куски отображения. В файле видим:
В начале:
<?php
defined( '_JEXEC' ) or die();
$product = $this->product;
?>
<?php include(dirname(__FILE__)."/load.js.php");?>
<div class="jshop productfull">
// ........ the rest of the body .....
В конце:
echo $this->_tmp_product_html_before_review;
include(dirname(__FILE__)."/review.php");
echo $this->_tmp_product_html_end;?>
</div>
Нам нужно вывод перенаправить не в страницу, а в буфер:
В начале:
<?php
defined( '_JEXEC' ) or die();
$product = $this->product;
/// start buffered output
ob_start();
?>
<?php include(dirname(__FILE__)."/load.js.php");?>
<div class="jshop productfull">
// ........ the rest of the body .....
В конце:
echo $this->_tmp_product_html_before_review;
include(dirname(__FILE__)."/review.php");
echo $this->_tmp_product_html_end;?>
</div>
<?php
// end buffered output, get buffer contents, clean buffer
$tmp = ob_get_clean();
// process generated content with J! plugins in the context of an article, and render it
echo JHtml::_('content.prepare', $tmp, '', 'com_content.article');
?>
Должно заработать.
Параллельно - пока писал - заметил у себя ошибку в предыдущем примере -
не ob_get_start(), конечно, а
ob_start();