Всем привет, бьюсь с Views.
Настроил вид для заглавной страницы - 10 последних новостей без пейджера, теперь хочу сделать табличный вид "архив новостей".
Можно ли каким-либо образом настроить фильтр, чтобы выводил все ноды, кроме первых 10 (по порядку убывания по дате)?
Комментарии
Могу предложить страшно некрасивый вариант, но рабочий. Не красивость заключается в том, что нужно лезть в код.
Файл views.module
Функция views_build_view
Строка:
$view->offset = $offset;
Заменить на:
if ($view->name == 'your-view-name') {
$view->offset = $offset + 1;
}
else {
$view->offset = $offset;
}
Зачем менять $offset в модуле, когда его можно ему же передать?
Где и как это сделать?
Копец! Вы морите.
А как насчет стандартных функций?
$view = views_get_view('news_block');
//где news_block имя твоего вида.
print views_build_view('embed', $view, $args, $view->use_pager, $num, $offset);
/* $view->use_pager - выводить ссылки на страницы, $num -число материалов, а теперь ВНИМАНИЕ $offset -сколько нод пропустить.
вместо $view->use_pager можешь поставить 0 или 1.
И еще, $offset у меня глючил, когда был включен $view->use_pager .
*/
?>
Попробуй расскажи как получилось.
Сорри, дубль ...
Сделал:
$view = views_get_view('news_arch');
print views_build_view('embed', $view, $args, 1, 100, 10);
?>
Оффсет не работает, всё равно вываливает все ноды начиная с последней.
Определение общего количества элементов и какую страницу отображать происходит здесь:
pager.inc -> function pager_query
... а как нужные изменения делать грамотно пока не знаю ... :/