Помогите плз.
Как добавить ссылку в педжинге "показать все"?
т.е. обычно пейджер разбивает на страницы и имеет вид:
< первая 2 3 4 5 6 следующая> последняя>>
так хочется сделать
< первая 2 3 4 5 6 следующая> последняя>> <ПОКАЗАТЬ ВСЕ>
чтобы все материалы отобразить на одной странице без разбивки по страницам
Так думаю что-то добавить в theme_pager ( http://api.drupal.ru/api/function/theme_pager/6 )
только вот что?
или может как-то по нажатии на ссылку менять количество материалов на странице во views?
Комментарии
Ну по идее можно же сделать страницу Views, количество материалов на странице выставить неограниченное, задать ссылку для нее. Ну и попробовать уже добавлять эту ссылку в пэйджер.
да, но неужели нет другого решения? Drupal - мощный движек, а такой простой функции не реализовано.
Попробуйте тут посмотреть, кажется то что нужно.. http://drupal.org/node/393524
да,вроде то. Вот только куда это вставлять?
<?php
$items[] = array(
'class' => 'pager-all',
'data' => l(t('Show all'), $_GET['q'], array('query' => array('page' => 'full'))),
);
?>
Пробовал вставить в /includes/pager.inc (чего делать нельзя) - ссылка появилясь, но не работает. Наверное views не подхватывает.
А вот как переопределить theme_pager в template.php я не знаю.
Помогите пожалуйста...
После долгих экспериментов вставил после:
$items[] = array(
'class' => array('pager-last'),
'data' => $li_last,
);
}
Следующий код:
'class' => array('pager-all'),
'data' => l(t('Show All'), $_GET['q'], array('query' => array('items_per_page' => 'All'))),
);
Вроде все работает. На другие ссылки пейджера тоже никак отрицательно не повлияло.
Встала подобная задача. Нашли решение ?
Вьюху делать же надо будет
views ; Постранично: Нет ;Ссылка "Ещё": Да;слово еще(more) можно поменять на любую надпись .
views сделал, а вот как заставить работать это решение http://drupal.org/node/393524 ?
Как заставить ссылку подхватывать views ?
<?php
/**
* Implements hook_views_pre_execute().
*/
function modulename_views_pre_execute(&$view) {
if ($view->name == 'your-view-name' && $view->current_display == 'your-display-name' && isset($_GET['page']) && $_GET['page'] == 'full') {
$view->pager['use_pager'] = false;
$view->pager['items_per_page'] = 0;
}
}
?>
так че - модуль свой писать? или в template.php писать?
для начала почитать документацию
А как переключить пейджер для Drupal 7 во Views 3, подскажите пожалуйста. По 6му в сети есть несколько вариантов, а для семерки - увы.
Попробовал разные варианты, ничего не срабатывает )) :
<?php
// 4
function mymodule_views_pre_execute(&$view) {
$full = (isset($_GET['page']) && $_GET['page'] == 'full')? 1 : 0;
if ($full) switch($view->name) {
case 'news_view':
case 'taxonomy_term':
switch($view->current_display) {
case 'page':
// 1
$view->query->pager->options['items_per_page'] = 0;
// 2
$view->display['page']->display_options['pager']['options']['items_per_page'] = '0';
// 3
$view->items_per_page = '0';
$id = $view->current_display;
$handler = &$view->display[$id]->handler;
$handler->set_option('use_pager', FALSE);
$handler->set_option('items_per_page', 0);
// 5
$handler->display->display_options['pager']['type'] = 'none';
break;
?>}
}
}
Посоветуйте плз модули, который изменяют pager во Views 3.x под Drupal 7
Здравствуйте. У меня такая же задачка. Переопределил в tamplate.php theme_pager и вставил код:
$items[] = array(
'class' => array('pager-all'),
'data' => l(t('Show All'), $_GET['q'], array('query' => array('items_per_page' => 'All'))),
);
Но ссылка не работает. В чем может быть проблема? Куда копать? Возможно есть другой способ?
есть ли решения для 7ки?
Для 7ки
<?php
function modulename_views_pre_execute(&$view) {
if ($view->name == 'name' && $view->current_display == 'page' && isset($_GET['page']) && $_GET['page'] == 'full') {
$view->init_pager();
$view->set_items_per_page('0');
}
}
?>