как изменить оформление pager?

Главные вкладки

Аватар пользователя Anfernee Anfernee 15 июля 2009 в 12:16

подскажите пожалуйста, как изменить оформление pager? я имею ввиду часть вида "* 1 * 2 * следующая › * последняя »"

Комментарии

Аватар пользователя jeweller jeweller 15 июля 2009 в 14:55

Ручками.

1. В браузер Firefox ставите дополнение Firebug.
2. Открываете Firebug, жмёте Inspect, наводите на pager и смотрите свойства CSS в файле system.css
3. Переопределяете эти свойства в CSS файле вашей темы так, как вам надо.

например,

.pager {
clear:both;
font-size:80%;
text-align:center;
}

.pager-current, .pager-first, .pager-previous, .pager-next, .pager-last {
background-color:#ваш цвет фона;
border:1px solid #ваш цвет рамки;
margin:2px 1px 10px;
}

и т.д.

Аватар пользователя vox vox 16 июля 2009 в 13:28

Подскажите, пожалуйста вот что.
1. Мне нужно изменить текст
"следующая ›" на "› "
"последняя »" на " » "
"‹ предыдущая" на " ‹ "
"« первая" на " « "
На сайте есть русский язык, далее предполагается и английский. Хотелось бы, чтобы такие изменения были для каждого языка свои.
Как это сделать?

И еще:
2. Как изменить "следующая ›", "последняя »", "‹ предыдущая", "« первая" на картинки с соответствующими рисунками.
Буду очень признателен.
Спасибо.

Аватар пользователя vox vox 16 июля 2009 в 14:31

спасибо, но мне нужно пошаговое руководство.

попробую написать, как я это понимаю. Поправьте меня, если ошибусь.

в template.php добавляю функцию:


<?php
function theme_pager($tags = array(), $limit 6$element 0$parameters = array(), $quantity 5) {
  global 
$pager_page_array$pager_total;
.
.
.
  
$li_first theme('pager_first', (isset($tags[0]) ? $tags[0] : t(' « ')), $limit$element$parameters);
  
$li_previous theme('pager_previous', (isset($tags[1]) ? $tags[1] : t(' ‹ ')), $limit$element1$parameters);
  
$li_next theme('pager_next', (isset($tags[3]) ? $tags[3] : t(' › ')), $limit$element1$parameters);
  
$li_last theme('pager_last', (isset($tags[4]) ? $tags[4] : t(' » ')), $limit$element$parameters);

.
.

    

// End generation.
    
if ($li_next) {
      
$items[] = array(
        
'class' => 'pager-next',
        
'data' => $li_next,
      );
    }
    if (
$li_last) {
      
$items[] = array(
        
'class' => 'pager-last',
        
'data' => $li_last,
      );
    }
    return 
theme('item_list'$itemsNULL'ul', array('class' => 'pager'));
  }
}
?>

Я правильно сделал?

function theme_pager($tags = array(), $limit = 6, $element = 0, $parameters = array(), $quantity = 5)

Устанавливаю
$limit = 6 и $quantity = 5
для того чтобы вывести 5 страниц вместо 9.
Правильно?

А как сделать вместо текстовой ссылки картинку - я не знаю. Подскажите...

Аватар пользователя glu2006 glu2006 16 июля 2009 в 15:08

функцию theme_pager которую скопировали в template.php темы переименовываете в phptemplate_pager иначе получите ошибку.

теперь определяем вместо какой или каких текстовой ссылки надо сделать картинку?

Аватар пользователя vox vox 16 июля 2009 в 15:41

"следующая ›", "последняя »", "‹ предыдущая", "« первая"

Эти ссылки хотелось бы сделать картинками.

Аватар пользователя jeweller jeweller 16 июля 2009 в 18:43

"vox" wrote:
все так просто... спасибо! понял

однако тогда при отключенных в браузере изображениях пользователь не будет видеть навигации...

Аватар пользователя glu2006 glu2006 17 июля 2009 в 9:05

jeweller wrote:
однако тогда при отключенных в браузере изображениях пользователь не будет видеть навигации...

А при отключенном JS он вообще сайта может не увидеть как такового. И что теперь подстраиваться под каждого юзера жаждущего сэкономить трафик?

Ютуб уже вообще отказался от поддержки ИЕ-6 хоть кто-то начал борьбу с этим злом. Smile

Аватар пользователя vox vox 17 июля 2009 в 11:44

Кстати, если использовать приведенный выше код - стрелочки пропадают совсем,
работает так:

<?php
.
.
.
  
$li_first theme('pager_first', (isset($tags[0]) ? $tags[0] : t('В«')), $limit$element$parameters);
  
$li_previous theme('pager_previous', (isset($tags[1]) ? $tags[1] : t('‹')), $limit$element1$parameters);
  
$li_next theme('pager_next', (isset($tags[3]) ? $tags[3] : t('›')), $limit$element1$parameters);
  
$li_last theme('pager_last', (isset($tags[4]) ? $tags[4] : t('В»')), $limit$element$parameters);
.
.
.
?>

и еще. в файле pager.inc

есть такая часть

/**
 * name Pager pieces
 * @{
 * Use these pieces to construct your own custom pagers in your theme. Note that
 * you should NOT modify this file to customize your pager.
 */

/**
 * Format a "first page" link.
 *
 * param $text
 *   The name (or image) of the link.
 * param $limit
 *   The number of query results to display per page.
 * param $element
 *   An optional integer to distinguish between multiple pagers on one page.
 * param $parameters
 *   An associative array of query string parameters to append to the pager links.
 * return
 *   An HTML string that generates this piece of the query pager.
 *
 * ingroup themeable
 */

.
.
.

наверное этой частью можно менять оформление пейджера. только я не понимаю как это применить...