Форум русской поддержки Joomla!® CMS
09.12.2016, 02:10:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Параметры модуля

 (Прочитано 239 раз)
0 Пользователей и 1 Гость смотрят эту тему.
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« : 17.11.2015, 11:05:30 »

Здравствуйте, в модуле ест параметр count- выводит количество записей. Этот модуль используется на главной в двух позициях. Но в обоих позициях выводится одинаковое количество.
Параметры модуля получаю
Код:
$module = JModuleHelper::getModule('mod_last');
        $params = new JRegistry($module->params);
        $count = $params->get('count');
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #1 : 17.11.2015, 11:19:12 »

Но в обоих позициях выводится одинаковое количество.

А чего ты ожидал? Что будет выводиться везде по разному...

Если выводишь это в самом модуле, то этот код там не надо...
Просто выводи...
Код:
        echo $params->get('count');
Записан
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« Ответ #2 : 17.11.2015, 12:23:11 »

Этот код у меня в helper'e модуля
Код:
$module = JModuleHelper::getModule('mod_last');
        $params = new JRegistry($module->params);
        $count = $params->get('count');
если я напишу просто
Код:
        $count = $params->get('count');
то выдает ошибку 500
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #3 : 17.11.2015, 12:50:16 »

если я напишу просто
Код:
        $count = $params->get('count');
то выдает ошибку 500

Тогда сделай вот так...

Это у нас к примеру будет helper.php
Код:
public static function getPrimerFunction(&$params)
{
return $params->get('count');
}

Классу него будет - modPrimerHelper

В файле mod_name.php выводим...
Код:
echo modPrimerHelper::getPrimerFunction($params);
Записан
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« Ответ #4 : 17.11.2015, 15:31:38 »

КОд хелпера
Код:
       $module = JModuleHelper::getModule('mod_lastprofiles');
        $params = new JRegistry($module->params);
        $count = $params->get('count');
        
        if ($count!="")
        {
          $col=" LIMIT 0,".$count;  
        }
        else
        {
          $col="";  
        }    
        
$query = "SELECT * FROM  #__users  ".$col;
$db->setQuery($query);
$last = $db->loadObjectList();
везде выводи количество юзеров столько сколько указано в первом опубликованном модуле, таких модулей два и у них разное количество выводить надо, если убрать первые две строки то выдает ошибку 500
Код:
$module = JModuleHelper::getModule('mod_lastprofiles');
        $params = new JRegistry($module->params);
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #5 : 17.11.2015, 16:59:33 »

если убрать первые две строки то выдает ошибку 500
Код:
$module = JModuleHelper::getModule('mod_lastprofiles');
        $params = new JRegistry($module->params);

Тогда значение
Код:
$count = $params->get('count');

Отправляй в метод хелпера...


Сделай вот так... Файл helper.php
Код:
public static function allUserCount($count)
{
if ($count!="")
        {
          $col=" LIMIT 0,".$count; 
        }
        else
        {
          $col=""; 
        }   
       
    $query = "SELECT * FROM  #__users  ".$count;
    $db->setQuery($query);
    $last = $db->loadObjectList();

return $last;
}
где, переменная $count - уже будет содержать значение параметра count

Выполняй метод таким образом...
Код:
modPrimerHelper::allUserCount($params->get('count'));(
Этот код надо указать в файле mod_name.php
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #6 : 17.11.2015, 17:26:04 »

$module = JModuleHelper::getModule('mod_last'); получит первый модуль с этим названием, а не все!
Перебирайте в позиции, или берите по тайтлу модуль!
$module = JModuleHelper::getModule('mod_last', 'тут Title модуля что вы написал в админке');
тогда вы можете взять два разных модуля с разными именами (если они с разными именами)

Если имя одно то получайте по модульной позиции:

Код
function getModuleParams( $position, $type )
{
$modules = JModuleHelper::getModules( $position );
foreach ( $modules as $module ) {
if ( $module->module === $type ) {
return new JRegistry( $module->params );
}
}
}
$params1 = getModuleParams( 'тут имя первой позиции модуля', 'mod_last' );
$params2 = getModuleParams( 'тут имя второй позиции модуля', 'mod_last' );
 
Записан
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« Ответ #7 : 17.11.2015, 20:55:10 »

Тогда значение
Код:
$count = $params->get('count');

Отправляй в метод хелпера...


Сделай вот так... Файл helper.php
Код:
public static function allUserCount($count)
{
if ($count!="")
        {
          $col=" LIMIT 0,".$count; 
        }
        else
        {
          $col=""; 
        }   
       
    $query = "SELECT * FROM  #__users  ".$count;
    $db->setQuery($query);
    $last = $db->loadObjectList();

return $last;
}
где, переменная $count - уже будет содержать значение параметра count

Выполняй метод таким образом...
Код:
modPrimerHelper::allUserCount($params->get('count'));(
Этот код надо указать в файле mod_name.php
Спасибо помогло +
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet