Задача:
реализовать вывод выборки товаров из JoomShopping 4.2 в модуль Pop Image Slider, далее - PIS.
Решение:
Модуль PIS ожидает на входе массив параметров, содержащий изображения, заголовки, описания, ссылки на материалы. Массив получается в файле helper.php, путем разбора входного текстового параметра, формируемого вручную в конфигурационной форме модуля. Дорабатываем процедуру загрузки текста из формы так, чтобы она "понимала" не только текстовый параметр, но и php код, который, выполняясь при загрузке модуля, через вызов eval, формировал бы массив с нужным содержимым.
В примере ниже показан такой код. Загружаются полные изображения товара. Для оптимизации "веса" страницы, вполне можно грузить только превьюшки, сгенеренные самим JoomShopping (передаем параметр 'thumb' вместо 'full').
require_once(JPATH_ROOT.'/components/com_jshopping/lib/factory.php');
$ia = array();
$catid = 2;
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_jshopping/models');
$pm = JModelLegacy::getInstance('Products', 'JShoppingModel');
$prods = $pm->getAllProducts(array('category_id' => $catid), 0, 20);
foreach($prods as $idx => $p)
{
$ia[$idx]['source'] = getPatchProductImage($p->image, 'full', 1);
$ia[$idx]['link'] = SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id='.$catid.'&product_id='.$p->product_id, 0);
$ia[$idx]['title'] = addcslashes($p->name, "\\\'\"&\n\r");
$ia[$idx]['description'] = addcslashes($p->short_description, "\\\'\"&\n\r");
}
return $ia;