ЧПУ и слэш
Прислано: 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. Со слэшем на конце - чпу выглядит более целеобразно.
- cascad's blog
- Для комментирования войдите или зарегистрируйтесь
Прошу прощения, но чем слэш на конце выглядит более целесообразно?
- Для комментирования войдите или зарегистрируйтесь
Если есть раздел /sport/, то слэш на конце говорит о том, что в этом разделе ещё есть какие-то страницы, и они там есть. /sport/football/, и дальше есть раздел. А если без слэша на конце, то означает, что это конечный файл на сайте. /sport/football/goal.html или sport/football/goal
Конечно всё это не критично и дело вкуса. Но вот мне нужен этот слэш как второе пришествие Христа.
- Для комментирования войдите или зарегистрируйтесь
в сторону mod_rewrite попробуй покопать
в сторону mod_rewrite попробуй - рыть, разрыхлять землю или другую плотную субстанцию с целью сделать в ней углубление, яму отверстие :)
- Для комментирования войдите или зарегистрируйтесь
bodro, mod_rewrite в данном случае не причём, так как ссылки формируются в движке. Тем более проблема в том, что при добавлении слэша в 'href' => taxonomy_term_path($term).'/', перестало показываться /slovar/termin/, и стало /taxonomy/term/4/.
- Для комментирования войдите или зарегистрируйтесь
думаю в Pathauto настроить все стоит, а в taxonomy.module вернуть все как было
UPD
или добавь в шаблон:
<script type="text/javascript">$(document).ready(function(){$("a[rel=teg]").attr("href", $(this).attr("href") + "/");});</script>
- Для комментирования войдите или зарегистрируйтесь
думаю в Pathauto настроить все стоит, а в taxonomy.module вернуть все как было
Если в pathauto поставить слэш в конце, то ноды не будут работать. Надо именно в обход. Да, спасибо за скрипт, но это не решение, хотя бы потому, что поисковик парсит без яваскрипта.
p.s. На этом сайте пару раз поднимался вопрос о том, как сделать слэш на конце, но решения так никто и не нашел.
- Для комментирования войдите или зарегистрируйтесь
$(document).ready(function(){$("a[rel=teg]").attr("href", $(this).attr("href") + "/");});
не помогло?
- Для комментирования войдите или зарегистрируйтесь
Не помогло *((
Тут надо что-то в движке поменять. Думаю,что даже в taxonomy.module достаточно.
- Для комментирования войдите или зарегистрируйтесь
drupal_add_js( '$(document).ready(function(){$("a[rel=teg]").attr("href", $(this).attr("href") + "/");});' , 'inline', 'header');
- Для комментирования войдите или зарегистрируйтесь
Работает, но только для node. Для таксномии - не работает. К тому же яваскрипт - точно не выход.
- Для комментирования войдите или зарегистрируйтесь
К тому же яваскрипт - точно не выход.
почему... лучше править ядро?
если без JS то можно так (нужно вставить в node.tpl.php):
<?php print str_replace('" rel','/" rel',$terms) ?>
- Для комментирования войдите или зарегистрируйтесь
Custom_url_rewrite_inbound для входящих URL (или mod_rewrite как советовали) и custom_url_rewrite_outbound для формирования отображаемых ссылок решат проблему. Pathauto здесь не нужен.
- Для комментирования войдите или зарегистрируйтесь
bodro, wow, вот это помогло. Спасибо БОЛЬШОЕ! С яваскриптом не подходило, потому что не у всех он включён, многие поисковики индексируют без яваскрипт, к тому же не стоит перегружать явскр. страницу.
axel, нашел эти переменные, но что-то не соображу что там наколдовать, чтобы всё получилось :/. Интересно, как именно там можно реализовать "/", такой способ может быть лучше, т.к. он будет всем ссылкам добавлять сразу, а я сейчас для node отдельно добавляю, для таксномии отдельно. Вот сейчас ищу как добавить слэш для ссылок, которые создал через Node reference, пока не нашел.
Чтобы делать всё через mod_rewrite, то надо сначало менять custom_url_rewrite_outbound видимо.
- Для комментирования войдите или зарегистрируйтесь
Это функции, не переменные.
http://api.drupal.ru/api/function/custom_url_rewrite_inbound/6
http://api.drupal.ru/api/function/custom_url_rewrite_outbound/6
- Для комментирования войдите или зарегистрируйтесь
axel, да, не переменные. Я в программирование совсем лузер. Больше по дизайну,вёрстке.
- Для комментирования войдите или зарегистрируйтесь




Комментарии