0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 72 Просмотров
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Есть маленький модуль выборки из таблицы и вывод значений.
В "mod_joomshopping_childscat.xml":
Код
...
<field name="enable_cat" type="textarea" default="0" label="Show only category ID" description="Show only category ID. Сomma separated categories. Еxample for several categories: '1,2,3,...' or '1, 2, 3, ...' " />
...

В "mod_joomshopping_childscat.php":
Код
[code]defined('_JEXEC') or die;
require_once dirname(__FILE__). '/helper.php';
$enable_cat = $params->get('enable_cat', 0);
$categories = modJoomshoppingChildscatHelper::getParentcategory($params);
require JModuleHelper::getLayoutPath('mod_joomshopping_childscat', $params->get('layout', 'default'));

В "helper.php":
Код
defined('_JEXEC') or die;

class modJoomshoppingChildscatHelper
{
public static function getParentcategory(&$params)
{

$module = JModuleHelper::getModule('mod_joomshopping_childscat');
$moduleParams = new JRegistry();
$moduleParams->loadString($module->params);
$enable_cat = $moduleParams->get('enable_cat', 0);

$cid   = JRequest::getInt('category_id');
$lang  = JSFactory::getLang();
$db    = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('`category_id` AS id, `' . $lang->get('name'). '` AS name,`short_description_ru-RU` AS descript');
$query->select('`category_image` AS image');
$query->from('#__jshopping_categories');
$query->where('category_parent_id > 0');
$query->where('category_publish = 1');
$query->where('category_parent_id =' . $cid);

if($enable_cat!=0) {
$query->where('category_id IN ('.$enable_cat.')');
}

$query->order('ordering ASC');
$db->setQuery($query);

$categories = $db->loadObjectList();

return $categories;
}

}

Ну и "default.php" - в котором выводится результат выборки из базы:
Код
<ul id="js_ccmenu" class="art-vmenu">
<?php
defined('_JEXEC') or die;
foreach ($categories as $category)
{
$link = SEFLink('index.php?option=com_jshopping&controller=category&task=view&category_id=' . $category->id, 1);
echo '<li class="js_childscat"><a class="js_childscat_a" href="' . $link . '">' . $category->name . '</a></li>';
}
?>
</ul>

================
Проблема в том что если модуль опубликован 1 на странице то все работает нормально, НО если таких модулей опубликовано больше 1 (посредством создания нового либо дублирования уже существующего) и у каждого свои параметры вывода "Show only category ID" то ничего не работает.

Если я правильно понимаю не работает из за того что "class modJoomshoppingChildscatHelper" обрабатывается 1 раз для первого модуля и все.

Как тогда в "helper.php" можно прописать "class modJoomshoppingChildscatHelper" для каждого модуля свой, к примеру что бы это было привязано к id модуля, к примеру "class modJoomshoppingChildscatHelperId111" и так для каждого модуля что бы свой класс формировался?

Возможно есть другой вариант решения проблемы, тогда подскажите в какую сторону смотреть?!
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Сам решил проблему.
Пишу, если вдруг кому то пригодится.
В "mod_joomshopping_childscat.php":
Код
вместо
require_once dirname(__FILE__). '/helper.php';

прописал
JLoader::register('modJoomshoppingChildscatHelper', __DIR__ . '/helper.php');

В "helper.php":
Код
вместо
$module = JModuleHelper::getModule('mod_joomshopping_childscat');
$moduleParams = new JRegistry();
$moduleParams->loadString($module->params);
$enable_cat = $moduleParams->get('enable_cat', 0);

прописал
$enable_cat = $params->get('enable_cat', 0);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с модулями

Автор Серёг@

Ответов: 13
Просмотров: 94
Последний ответ 09.12.2017, 14:01:14
от Серёг@
Помогите найти код модуля

Автор Serg34

Ответов: 3
Просмотров: 46
Последний ответ 03.12.2017, 20:17:13
от effrit
При создании модуля - белый экран

Автор SuschnosT

Ответов: 9
Просмотров: 154
Последний ответ 24.11.2017, 16:08:31
от robert
Добавление модуля на страницах категорий/статей

Автор froggi3

Ответов: 3
Просмотров: 101
Последний ответ 24.11.2017, 09:36:12
от khan-alex
Добавления нового материла через фронтэнд

Автор RexNebular

Ответов: 1
Просмотров: 44
Последний ответ 23.11.2017, 11:11:20
от RexNebular