Перейти к содержимому


Фотография
- - - - -

ZOOlandar - calendar


Лучший Ответ CB9TOIIIA , 29 April 2015 - 07:42

sT0Wqwc.gif

Извините :) да... каюсь, верней было бы разработчику отписать - но подписка закончилась давно)

 

В общем я сделал так:

$items_per_page == 0;

Т.к. если читать код... то

$pagination->setShowAll($items_per_page == 0);

Поэтому считаю, если забить на пагинацию - то так верней будет :)

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 9

#1 CB9TOIIIA

CB9TOIIIA

Отправлено 27 April 2015 - 14:49

Всем привет. В общем с календарем беда, не все материалы выводит - выводит около 4 статей.

Проблема думаю в плагине zoolendar.php:

/plugins/system/zoolendar/controllers

Есть вот такой код:

public function view() {
		// get request vars
		$this->_getRequestVars();
		$page   = $this->app->request->getInt('page', 1);

		// init vars
		$layout 		= 'frontpage';
		$view 			= $this->getView($layout);
		$categories     = $this->application->getCategoryTree(true, $this->app->user->get(), true);
		$params	    	= $this->application->getParams('frontpage');
		$item_order 	= $params->get('config.item_order');
		$items_per_page = $params->get('config.items_per_page', 15);
		$offset			= max(($page - 1) * $items_per_page, 0);
		$menu_item      = $this->module->params->get('menu_item', 0);
		$itemid         = $menu_item ? $menu_item : $this->app->menu->getActive()->id;

		// get items
		$items = $this->app->zoolendar->getItems($this->module, $this->date, $offset, $items_per_page);
		$item_count	= $this->app->zoolendar->getItemCount($this->module, $this->date);
		$view->assign('items', $items);

		// raise 404 if items does not exist or is not published
		if (empty($items)) {
			return $this->app->error->raiseError(404, JText::_('Items not found'));
		}
		// get items pagination
		$pagination = $this->app->pagination->create($item_count, $page, $items_per_page, 'page', 'app');
		$pagination->setShowAll($items_per_page == 0);
		$pagination_link = $this->app->link(
								array('controller' => 'zoolendar',
								'app_id' => $this->application->id,
								'mod_id' => $this->module->id,
								'Itemid' => $itemid,
								'date' => $this->date));
		$view->assign('pagination', $pagination);
		$view->assign('pagination_link', $pagination_link);

		// set pathway
		if(!$this->app->request->getCmd('Itemid')) $this->pathway->addItem($this->application->name, $this->app->route->frontpage($this->application->id));
		$this->pathway->addItem(JText::_('Calendar'));

Если я меняю строку:        

		$items_per_page = $params->get('config.items_per_page', 15);

например на:

		$items_per_page = $params->get(50);

То выводит <=50 статей, значит что-то бажит :) можете посмотреть?

Прикрепленные файлы


Сообщение отредактировал CB9TOIIIA: 27 April 2015 - 14:49

  • 0

#2 SmetDenis

SmetDenis

Отправлено 27 April 2015 - 21:16

Покажите пожалуйста текст запроса

7ruj_200x0.png

 

В файле /plugins/system/zoolendar/helpers/zoolendar.php

        echo '<pre>';
        print_r($options);
        echo '</pre>';

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 CB9TOIIIA

CB9TOIIIA

Отправлено 28 April 2015 - 06:43

Array
(
    [select] => a.*
    [from] => #__zoo_item AS a LEFT JOIN #__zoo_search_index AS b ON a.id = b.item_id
    [conditions] => a.access IN (1) AND a.state = 1 AND a.searchable = 1 AND a.application_id = '1' AND a.type = 'news' AND (STR_TO_DATE(a.created, GET_FORMAT(DATE,'ISO')) = STR_TO_DATE('2015-4-27', GET_FORMAT(DATE,'ISO')))
    [order] => a.priority DESC
    [offset] => 0
    [limit] => 18
)

Если в лоб:

$items_per_page = $params->get(50);

То вот так:

Array
(
    [select] => a.*
    [from] => #__zoo_item AS a LEFT JOIN #__zoo_search_index AS b ON a.id = b.item_id
    [conditions] => a.access IN (1) AND a.state = 1 AND a.searchable = 1 AND a.application_id = '1' AND a.type = 'news' AND (STR_TO_DATE(a.created, GET_FORMAT(DATE,'ISO')) = STR_TO_DATE('2015-4-10', GET_FORMAT(DATE,'ISO')))
    [order] => a.priority DESC
)


Сообщение отредактировал CB9TOIIIA: 28 April 2015 - 06:45

  • 0

#4 SmetDenis

SmetDenis

Отправлено 28 April 2015 - 06:53

В запросе все правильно, правда не учитывается дата начала и окончания публикации. Тем не менее это не повлияет на поиск.
Похоже что дело в контенте на сайте - просто подходящих статей меньше 50.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 CB9TOIIIA

CB9TOIIIA

Отправлено 28 April 2015 - 06:59

не совсем, я не понимаю где пагинация (limit) настраивается.
 
Т.е. вот:
XnYkPig.png
https://www.dropbox.com/s/jzlpqnjmb11boaq/zoolendar.wmv?dl=0

 
Вот такой календарь, по клику новости за сутки:
JSD2RZI.png

Сообщение отредактировал CB9TOIIIA: 29 April 2015 - 06:48

  • 0

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 29 April 2015 - 06:49

up! :)


  • 0

#7 SmetDenis

SmetDenis

Отправлено 29 April 2015 - 07:14

Похоже что лимит берется из настроек главной страницы каталога.
Каталог определяется из текущего пункта меню.
97d1_200x0.png
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 CB9TOIIIA

CB9TOIIIA

Отправлено 29 April 2015 - 07:18

что-то нигде нет количества, т.е. без явно указания отображается около 4-5 материалов.

Настройки такие:

UDjEueV.png

VqX5LQo.png
 

Ну и просто вопрос, так:

$items_per_page = $params->get(50);

ничему плохому не приведет?


  • 0

#9 SmetDenis

SmetDenis

Отправлено 29 April 2015 - 07:24

$items_per_page = $params->get(50);


Это попытка взять параметр с именем "50". Такого конечно же не существует.
В каталоге есть параметр вида "config.items_per_page" (т.е группа + параметр).

Лучше захардкодить параметр, если сомневаетесь либо оно глючит. Т.е указать явное число
$items_per_page = 50;
PS Немного странно, что на эти вопросы отвечаю я а не автор расширения :)
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 CB9TOIIIA

CB9TOIIIA

Отправлено 29 April 2015 - 07:42   Лучший Ответ

sT0Wqwc.gif

Извините :) да... каюсь, верней было бы разработчику отписать - но подписка закончилась давно)

 

В общем я сделал так:

$items_per_page == 0;

Т.к. если читать код... то

$pagination->setShowAll($items_per_page == 0);

Поэтому считаю, если забить на пагинацию - то так верней будет :)


  • 0




Click to return to top of page in style!