ЧПУ и слэш

Прислано: cascad

пт, 03/10/2008 - 10:45

Другие статьи по теме:

Очень нужен слэш на конце. Везде поправил, работает, а вот с таксономией никак не выходит.
Открываю modules\taxonomy\taxonomy.module, находим строчку 'href' => taxonomy_term_path($term), и заменяем её на 'href' => taxonomy_term_path($term).'/',. Слэш на конце появился, но вот чпу таксономии перестало работать, т.е. вместо /slovar/termin/ стало /taxonomy/term/4/ (слэш появился). Может быть ещё где-то надо что-то добавить? Может не так / добавил?
p.s. Со слэшем на конце - чпу выглядит более целеобразно.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано SolarWind в пт, 03/10/2008 - 11:28.

Прошу прощения, но чем слэш на конце выглядит более целесообразно?


Опубликовано cascad в пт, 03/10/2008 - 11:51.

Если есть раздел /sport/, то слэш на конце говорит о том, что в этом разделе ещё есть какие-то страницы, и они там есть. /sport/football/, и дальше есть раздел. А если без слэша на конце, то означает, что это конечный файл на сайте. /sport/football/goal.html или sport/football/goal
Конечно всё это не критично и дело вкуса. Но вот мне нужен этот слэш как второе пришествие Христа.


Опубликовано bodro в пт, 03/10/2008 - 12:26.

в сторону mod_rewrite попробуй покопать

в сторону mod_rewrite попробуй - рыть, разрыхлять землю или другую плотную субстанцию с целью сделать в ней углубление, яму отверстие :)


Опубликовано cascad в пт, 03/10/2008 - 12:38.

bodro, mod_rewrite в данном случае не причём, так как ссылки формируются в движке. Тем более проблема в том, что при добавлении слэша в 'href' => taxonomy_term_path($term).'/', перестало показываться /slovar/termin/, и стало /taxonomy/term/4/.


Опубликовано bodro в пт, 03/10/2008 - 13:47.

думаю в Pathauto настроить все стоит, а в taxonomy.module вернуть все как было

UPD
или добавь в шаблон:

<script type="text/javascript">$(document).ready(function(){$("a[rel=teg]").attr("href", $(this).attr("href") + "/");});</script>


Опубликовано cascad в пт, 03/10/2008 - 14:33.

"bodro" написал(а):

думаю в Pathauto настроить все стоит, а в taxonomy.module вернуть все как было

Если в pathauto поставить слэш в конце, то ноды не будут работать. Надо именно в обход. Да, спасибо за скрипт, но это не решение, хотя бы потому, что поисковик парсит без яваскрипта.

p.s. На этом сайте пару раз поднимался вопрос о том, как сделать слэш на конце, но решения так никто и не нашел.


Опубликовано bodro в пт, 03/10/2008 - 14:40.

$(document).ready(function(){$("a[rel=teg]").attr("href", $(this).attr("href") + "/");});

не помогло?


Опубликовано cascad в пт, 03/10/2008 - 15:02.

Не помогло *((

Тут надо что-то в движке поменять. Думаю,что даже в taxonomy.module достаточно.


Опубликовано bodro в пт, 03/10/2008 - 15:19.

drupal_add_js(
'$(document).ready(function(){$("a[rel=teg]").attr("href", $(this).attr("href") + "/");});'
, 'inline', 'header');
а так?


Опубликовано cascad в пт, 03/10/2008 - 15:50.

Работает, но только для node. Для таксномии - не работает. К тому же яваскрипт - точно не выход.


Опубликовано bodro в пт, 03/10/2008 - 16:19.

"cascad" написал(а):

К тому же яваскрипт - точно не выход.

почему... лучше править ядро?

если без JS то можно так (нужно вставить в node.tpl.php):

<?php print str_replace('" rel','/" rel',$terms) ?>


Опубликовано axel в пт, 03/10/2008 - 16:32.

Custom_url_rewrite_inbound для входящих URL (или mod_rewrite как советовали) и custom_url_rewrite_outbound для формирования отображаемых ссылок решат проблему. Pathauto здесь не нужен.


Опубликовано cascad в пт, 03/10/2008 - 17:19.

bodro, wow, вот это помогло. Спасибо БОЛЬШОЕ! С яваскриптом не подходило, потому что не у всех он включён, многие поисковики индексируют без яваскрипт, к тому же не стоит перегружать явскр. страницу.

axel, нашел эти переменные, но что-то не соображу что там наколдовать, чтобы всё получилось :/. Интересно, как именно там можно реализовать "/", такой способ может быть лучше, т.к. он будет всем ссылкам добавлять сразу, а я сейчас для node отдельно добавляю, для таксномии отдельно. Вот сейчас ищу как добавить слэш для ссылок, которые создал через Node reference, пока не нашел.
Чтобы делать всё через mod_rewrite, то надо сначало менять custom_url_rewrite_outbound видимо.


Опубликовано axel в пт, 03/10/2008 - 17:29.

Это функции, не переменные.
http://api.drupal.ru/api/function/custom_url_rewrite_inbound/6
http://api.drupal.ru/api/function/custom_url_rewrite_outbound/6


Опубликовано cascad в вс, 05/10/2008 - 10:01.

axel, да, не переменные. Я в программирование совсем лузер. Больше по дизайну,вёрстке.