Эта тема давнишняя и вопрос я этот поднял ещё с начала ознакомления с Друпал (07/04/2007), больше двух лет назад. Мне подумалось. почему ЧПУ не работает для пейджера нод (трекера и всего остального) в Друпале? Неужели так сложно было сделать? Как оказалось, не сложно. jason32 сделал это фактически на спор, желая посмотреть, заплатят ли ему 30$ за это или нет... Всё работает отлично. В трекере, на главной и везде где надо. Ниже я даю два кода, то, что у меня и тот, что был опубликован на Друпал.Ру.
Если кто попробовал в работе и ему всё понравилось, тот может перечислить денег ("сколько не жалко ™") на счёт разработчика. Его реквизиты можно найти здесь. Лично я за такую хорошую реализацию не пожалею 15$, а если это сделают несколько человек, то сами понимаете, работа наверняка окупится. Код, который ниже, нужно вставить в файл template.php вашей темы:
-
<?php
-
/** Убрать ? в pager, реализация jason32 http://drupal.ru/node/4875
-
*/
-
$parameters['page'] = $new_page;
-
}
-
}
-
$querystring = pager_get_querystring();
-
-
if ($querystring != '') {
-
$query[] = $querystring;
-
}
-
-
// Set each pager link title
-
static $titles = NULL;
-
t('|←') => t('Go to first page'),
-
t('←') => t('Go to previous page'),
-
t('→') => t('Go to next page'),
-
t('→|') => t('Go to last page'),
-
);
-
}
-
$attributes['title'] = $titles[$text];
-
}
-
}
-
}
-
if(is_clear_url())
-
{
-
$new_q=drupal_get_path_alias($_GET['q']); // использование псевдонимов
-
return l($text, $new_q, $attributes,NULL , NULL,FALSE,TRUE);
-
//return l($text, $new_q, $attributes, count($query) ? implode('&', $query) : NULL, NULL,FALSE,TRUE);
-
}
-
else
-
}
-
-
function is_clear_url() {
-
return true;
-
}
-
/** Конец реализации pager
-
*/
-
?>
И код с Друпал.Ру (с дополнениями), это нужно, если pager вам надо изменять не везде, а только там, где вы указали. Замените ссылки ниже на свои и вставьте код, в дополнение к тому, что я указал выше, вместо второй одноимённой функции:
-
<?php function is_clear_url() {
-
$dinamic_q[]='^blogs/groups(/(.*))?';
-
$dinamic_q[]='^blogs/projects(/(.*))?';
-
$dinamic_q[]='^blogs/private(/(.*))?';
-
$dinamic_q[]='^blogs/talk(/(.*))?';
-
$dinamic_q[]='^all(/(.*))?';
-
$dinamic_q[]='^blogs(/(.*))?';
-
$dinamic_q[]='^groups(/(.*))?';
-
$dinamic_q[]='^projects(/(.*))?';
-
foreach ($dinamic_q as $v ) {
-
}
-
return false;
-
} ?>
А этот код, нужно вставить в файл .htaccess в обоих (вышеуказанных) случаях:
-
# сразу после RewriteEngine on
-
RewriteCond %{REQUEST_FILENAME} !-f
-
RewriteCond %{REQUEST_FILENAME} !-d
-
RewriteRule ^((.*)/page/([0-9]+))$ index.php?q=$2&page=$3 [L,QSA]
Комментарии
Здравствуйте! Я не очень разбираюсь в пхп. Прошу помощи. Подска
Здравствуйте!
Я не очень разбираюсь в пхп. Прошу помощи.
Подскажите, пожалуйста вот что.
1. Мне нужно изменить текст "следующая ›" на "› "
"последняя »" на " » "
"‹ предыдущая" на " ‹ "
"« первая" на " « "
На сайте есть русский язык, далее предполагается и английский. Хотелось бы, чтобы такие изменения были для каждого языка свои.
2. Хотелось бы изменить "следующая ›", "последняя »", "‹ предыдущая", "« первая" на картинки с соответствующими рисунками.
Буду очень признателен.
Спасибо.
http://forum.drupal.ru/node/31699 Вот здесь объясняется, как эт
http://forum.drupal.ru/node/31699
Вот здесь объясняется, как это сделать... просто установите специальный модуль, который можно скачать со страницы проекта.
Интересный модуль, спасибо, хотя он истользует javascript. Все
Интересный модуль, спасибо, хотя он истользует javascript.
Все таки я хочу переопределить стандартную функцию.
кроме того выводит какие-то двоеточия под стрелками :( http://
кроме того выводит какие-то двоеточия под стрелками :(
http://zen.hddigitalworks.com/drpager?page=0%2C154%2C4
так в этом модуле и есть переопределение стандартной функции...
так в этом модуле и есть переопределение стандартной функции... сделайте по аналогии, да и всё...
поменяйте то, что вам не нравится, на своё... двоеточия можно убрать с помощью css...
вообще же, то что вы хотите, можно сделать с помощью css, добавить классам соответствующий рисунок, убрать текст, и нет проблемы...
с помощью цсс я знаю как добавить фоновый рисунок, изменить суще
с помощью цсс я знаю как добавить фоновый рисунок, изменить существующий текст, но не знаю как убрать текст. Подскажите, пож, как это сделать?
display:none; - если для выделения ссылок присутствует какой-ниб
display:none; - если для выделения ссылок присутствует какой-нибудь идентификатор или класс...
или просто измените цвет ссылки, чтобы он был таким же, как цвет фона...
Спасибо, хотя спорно... цвет ссылки на однородном фоне - да, но
Спасибо, хотя спорно...
цвет ссылки на однородном фоне - да, но там же рисунок!
на какой цвет попадут точки - неизвестно...
ну и что, что рисунок? цвет ссылок задаётся a:hover, a:link и fo
ну и что, что рисунок? цвет ссылок задаётся a:hover, a:link и font для точек...
а рисунок, как картинка, будет выглядеть обычным образом...
можно и font size сделать в 1px.
да, пожалуй, если размер текста сделать 1px, это поможет. тогда,
да, пожалуй, если размер текста сделать 1px, это поможет. тогда, может сделать уже 0?
А display:none; разве не уберет все, включая и нужный фоновый рисунок?
0, скорее всего, не подойдёт, будут просто шрифты по-умолчанию..
0, скорее всего, не подойдёт, будут просто шрифты по-умолчанию...
если описание шрифтов отнести к классу ниже, чем рисунок, то шрифт пропадёт, а рисунок - нет... впрочем, это слишком сложно... проще поиграть с настройками шрифтов...
вот учебник хороший, я им всё время пользуюсь: http://www.htmlbook.ru/css/
да, классы выше-ниже, это уже копать шаблон надо... учебник-клас
да, классы выше-ниже, это уже копать шаблон надо...
учебник-класс, уже оценил.
Спасибо за ответы. Удачи!
не за что... хех... всегда рад помочь...
не за что... хех...
всегда рад помочь...
О а я тут видел хороший сайт по этой статье Хакер сайт
О а я тут видел хороший сайт по этой статье (...)
B.X:
Ну это же просто прекрасно...