Новости Joomla

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

titansword

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Задача состоит в том, чтобы добавить в блог категорий возможность фильтровать статьи по их дате снятия с публикации.
Начать решил с разбора модели category.php и нашел там функцию getItems() отвечающую (как я полагаю) за то, какие статьи подгружать.
Решил проверить своё предположение. Если заменить к примеру
Код: php
$model->setState('filter.category_id', $category->id);
на
Код: php
$model->setState('filter.category_id', 23);
Выводиться только материалы из  категории с id= 23.

Результат меня сильно воодушевил и чисто ради эксперимента, я  на радостях леплю в общий список фильтров
Код: php
$model->setState('filter.created_by', 43);

и... Ничего не происходит. :( По идеи должны выводиться только статьи  с полем created_by равным 43, но выводятся почему то все.
Друзья, очень прошу помочь разобраться с этой проблемой. Заказчик уже брызжит слюной, а у меня никаких идей как решить эту проблему.

Здесь код функции если кому поможет.
Код: php
function getItems()
{
$params = $this->getState()->get('params');
$limit = $this->getState('list.limit');

if ($this->_articles === null && $category = $this->getCategory()) {
$model = JModel::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
$model->setState('params', JFactory::getApplication()->getParams());
$model->setState('filter.category_id', $category->id);
$model->setState('filter.published', $this->getState('filter.published'));
$model->setState('filter.access', $this->getState('filter.access'));
$model->setState('filter.language', $this->getState('filter.language'));
$model->setState('list.ordering', $this->_buildContentOrderBy());
$model->setState('list.start', $this->getState('list.start'));
$model->setState('list.limit', $limit);
$model->setState('list.direction', $this->getState('list.direction'));
$model->setState('list.filter', $this->getState('list.filter'));
// filter.subcategories indicates whether to include articles from subcategories in the list or blog
$model->setState('filter.subcategories', $this->getState('filter.subcategories'));
$model->setState('filter.max_category_levels', $this->setState('filter.max_category_levels'));
$model->setState('list.links', $this->getState('list.links'));

if ($limit >= 0) {
$this->_articles = $model->getItems();

if ($this->_articles === false) {
$this->setError($model->getError());
}
}
else {
$this->_articles=array();
}

$this->_pagination = $model->getPagination();
}

return $this->_articles;
}
« Последнее редактирование: 14.09.2011, 00:36:48 от titansword »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Результат меня сильно воодушевил и чисто ради эксперимента, я  на радостях леплю в общий список фильтров
Код: php
$model->setState('filter.created_by', 43);
что-бы это работало надо еще в формирование запроса к базе данных добавить условие выбора по автору
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[решено] Использование model - setState для фильтра по дате

Автор effrit

Ответов: 8
Просмотров: 1734
Последний ответ 13.10.2018, 19:13:49
от effrit
Передача поля формы во view в другую модель по кнопке контроллера

Автор tm2010

Ответов: 28
Просмотров: 1897
Последний ответ 18.02.2016, 17:27:06
от tm2010
Добавление сортировки по второй таблице

Автор ninth

Ответов: 6
Просмотров: 1218
Последний ответ 30.09.2014, 12:37:55
от b2z
addStyleDeclaration() - добавление стилей в цикле

Автор olf

Ответов: 5
Просмотров: 1979
Последний ответ 07.08.2014, 17:38:15
от Fedor Vlasenko
Добавление параметра в редактирование пункта меню Joomla

Автор olf

Ответов: 5
Просмотров: 1352
Последний ответ 07.07.2014, 22:23:55
от Shustry