SetLimit не работает

  • 15 Ответов
  • 187 Просмотров

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

*

alpha_ru

SetLimit не работает
« : 10.08.2017, 14:20:20 »
В хелпере модуля не работает setLimit - ограничение кол-ва записей.
Спойлер
[свернуть]
echo $komlim в тесте выводит.
Подскажите в чем ошибка.

*

Septdir

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: SetLimit не работает
« Ответ #1 : 10.08.2017, 14:21:38 »
$db->setQuery('запрос', 'оффсет', 'лимит')
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

alpha_ru

Re: SetLimit не работает
« Ответ #2 : 10.08.2017, 14:39:56 »
Спойлер
[свернуть]
Так тоже не работает.

*

Septdir

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: SetLimit не работает
« Ответ #3 : 10.08.2017, 15:52:17 »
Спойлер
[свернуть]
Так тоже не работает.

$komlim - это что?
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

alpha_ru

Re: SetLimit не работает
« Ответ #4 : 10.08.2017, 16:03:18 »
В админке модуля задается кол-во выводимых записей.
$komlim = $params['komlim'];
Спойлер
[свернуть]

*

NewUsers

Re: SetLimit не работает
« Ответ #5 : 10.08.2017, 16:14:30 »
В админке модуля задается кол-во выводимых записей.
$komlim = $params['komlim'];

Не так выводишь...
Код: php
<?php $params->get('komlim', 20); ?>

*

SmokerMan

Re: SetLimit не работает
« Ответ #6 : 10.08.2017, 16:21:56 »
$db->setQuery('запрос', 'оффсет', 'лимит')
Код
$db->setQuery($query, 0, $komlim);

*

alpha_ru

Re: SetLimit не работает
« Ответ #7 : 10.08.2017, 16:43:52 »
Любой вариант через эхо выводится
$komlim = $params['komlim'];
$komlim = 3;
$komlim = $params->get('komlim', 20);

Значение не передается в функцию. Работает только явное указание:
Цитировать
public static function getOrd($komlim)  {
$db = JFactory::getDbo();
$query = $db->getQuery(true)
         .........
         ->setLimit('3')
         .........
   
 $db->setQuery($query, 0, $komlim);

*

robert

Re: SetLimit не работает
« Ответ #8 : 10.08.2017, 16:58:46 »
Значение не передается в функцию.
А как оно передается?
Что выводит
Код: php-brief
public static function getOrd($komlim)
{
exit($komlim);
blahblahblah
}
?
« Последнее редактирование: 10.08.2017, 17:03:31 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

alpha_ru

Re: SetLimit не работает
« Ответ #9 : 10.08.2017, 17:06:40 »
вход
Спойлер
[свернуть]
хелпер
Код
public static function getOrd($komlim)  {

*

Septdir

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: SetLimit не работает
« Ответ #10 : 10.08.2017, 17:08:43 »
Стоит в функции так или иначе указать дефолт
public static function getOrd($komlim = 20)  {

И проверяйте что предеаете и что функции получает.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

robert

Re: SetLimit не работает
« Ответ #11 : 10.08.2017, 17:10:51 »
Код: php-brief
JLoader::register('ModKomNewHelper', __DIR__ . '/helper.php');
$komlim = $params['komlim'];//$komlim должна быть определена перед тем, как ее куда-то передавать!
$ord = modKomNewHelper::getOrd($komlim);
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Septdir

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: SetLimit не работает
« Ответ #12 : 10.08.2017, 17:12:16 »
Код: php-brief
JLoader::register('ModKomNewHelper', __DIR__ . '/helper.php');
$komlim = $params['komlim'];
$ord = modKomNewHelper::getOrd($komlim);
Насколько я помню $params это Jobject
Код: php-brief
JLoader::register('ModKomNewHelper', __DIR__ . '/helper.php');
$komlim = $params->get('komlim', 20);
$ord = modKomNewHelper::getOrd($komlim);
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

robert

Re: SetLimit не работает
« Ответ #13 : 10.08.2017, 17:14:31 »
Насколько я помню $params это Jobject
Возможно, не помню, еще не проверял. Но как можно передавать то, чего еще не существует?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

alpha_ru

Re: SetLimit не работает
« Ответ #14 : 10.08.2017, 17:26:04 »
Код: php-brief
JLoader::register('ModKomNewHelper', __DIR__ . '/helper.php');
$komlim = $params['komlim'];//$komlim должна быть определена перед тем, как ее куда-то передавать!
$ord = modKomNewHelper::getOrd($komlim);
robert , + спасибо, заработало! Последовательность оказалась важна.
Подвох в том, что на другом модуле вариант почему-то сработал, пойду проверю.

Также всем спасибо за подсказку - должно быть:
$db->setQuery($query, 0, $komlim);

А объектный вариант наверное будет предпочтительней:
$komlim = $params->get('komlim', 3);
« Последнее редактирование: 10.08.2017, 17:44:18 от alpha_ru »

*

Septdir

  • *******
  • 2099
  • [+]106 / [-]0
  • JoomlaZen
Re: SetLimit не работает
« Ответ #15 : 11.08.2017, 00:04:09 »
robert , + спасибо, заработало! Последовательность оказалась важна.
Подвох в том, что на другом модуле вариант почему-то сработал, пойду проверю.

Также всем спасибо за подсказку - должно быть:
$db->setQuery($query, 0, $komlim);

А объектный вариант наверное будет предпочтительней:
$komlim = $params->get('komlim', 3);

Ну я обычно вообще все параметры целиком в функцию передаю, малоли что понадобиться или же потом добавить нужно.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen