Возможно ли отображение pager в двух разных видах.
Даже не самого пейджера, а его ссылок.
тобишь есть функция [ru-api=theme_pager_link]theme_pager_link[/ru-api]();
Я ее к себе в tempalate.php и настраиваю как хочу. Но.
Эти настройки применяются для всего сайта. И на нодах и во views.
А мне надо чтоб во views был один, а на всем остальном другой.
Попробую объяснить вообще изначально различия которых хочется добиться.
На сайте использую модуль popups /для popup окошек с текстом ноды/. Т.е. каждая нода открывается в popup окошке и имеет листалку(pager). Но тогда ссылки в листалке должны имень класс popups, тогда все следующие страницы тоже будут открываться в popup.
И есть страницы построенные на views /списки нод по категориям/. Эти страницы открывают без popup`oв - стандартно.
И на этих страницах тоже есть листалка (pager)/ и она должна листать так же стандартно.
Но уж нас уже листалка изменена /имеет доп класс popups/ и соответственно следующая страница views открывается в popup.
Может кто помочь.
Комментарии
Мне конечно кажется что можно переопределить почти все функции pager.
Тобишь сделать как то так:
для страниц views определить пейджер например conti_partner_pager__news_overiew()
далее его заставить вызывать не theme('pager_first'...), а некую другую theme('pager_views_first'...).
Которая в свою очередь будет вызывать не theme('pager_link',...) а theme('pager_views_link',....)
Но это какое-то очень странное решение.
Или может кто-нибудь знает как опеределить внутри функции theme_pager_...
из какого модуля (типа старицы, views, и др инфу) он вызывается?
чтоб можно было поставить условие...
если views то class=one
иначе class=two
?
Создаете свою функцию theme_pager_which_i_want_for_views. Копируете в нее код theme_pager. Убираете/добавляете что вам нужно. В теме создаете функцию function phptemlate_preprocess_views_view(&$vars) {}
$view = $vars['view'];
if ($view->display_handler->render_pager()) {
$pager_type = ($view->pager['use_pager'] === 'mini' ? 'views_mini_pager' : 'pager_which_i_want_for_views');
$pager_theme = views_theme_functions($pager_type, $view, $view->display_handler->display);
$vars['pager'] = theme($pager_theme, $exposed_input, $view->pager['items_per_page'], $view->pager['element']);
}
}
К сожалению что то у меня не выходит
Перепробовал различные названия: "theme_pager_which_i_want_for_views", но в эту функцию вход не выполняется
В функцию phptemlate_preprocess_views_view вход выполняется.
если заменить в "phptemlate_preprocess_views_view()" $vars['pager'] на $vars->pager
то pager появляется на странице но стандартный.
и функция "theme_pager_which_i_want_for_views" так и не отрабатывает
Решил проблему. /хотя не совсем так как планировал/
Исправил для своих целей theme_views_mini_pager();