Добрый день! Хочу на своем сайте сделать вывод материалов за указанный год, если, например, пользователь перешел по адресу /2011. Как я понимаю, для этого нужно использовать хук module_menu. Попробовал сделать таким образом тестовую страницу и выяснил, что работают адреса, у которых есть текст, например, a2011 - работает, а при обращении к 2011 - выдает 404 страницу. Собственно вопрос в том, как мне сделать страницу(ы) с числовыми адресами?
Комментарии
как вариант.. Создаете тип материала 2011. ставите pathauto и в настройках прописываете /2011/[title]
Не поможет, это жумловод.
ему список тизеров нужен
в pathauto есть
жетонтокен [yyyy] - 4 цифры года создания материалапочему жумлавод?
pathauto только для новых нод подойдет. остается сниппет или views, или другие модули...
Раз уж зашла речь о pathauto, то он создает у меня ссылки вида: YYYY/m/node-title
Вот и хочу, чтобы можно было в адресе указав год либо год/месяц выводить соответствующие материалы на странице
надо другие токены в настройках поставить
В настройках чего? Можно подробнее?
нет, это не так
Материалы за период времени - это архив, правильно? Вот и сделайте вьюв, а в качестве параметра используйте год. Например, ссылка будет вида arсhive/2011. Сразу понятно, о чем идет речь - архив за 2011 год
так если для существующих нод поменять, они или по старым адресам перестанут работать, или получатся дубли, если по 2 синонима оставить. хотя архив и так в ноиндекс должен быть...
синоним на то и синоним.. дублей самих материалов не будет
алиасы, созданные автоматом - удаляются автоматом из админки /admin/build/path/delete_bulk
созданные вручную - таки да, придется удалить вручную при необходимости
но если хватило сил их насоздавать - удалить тоже хватит сил
В общем так и не вижу здесь решения моего вопроса. Я хочу именно такую адресацию. Если бы мне нужна была адресация вида: archive/yyyy или archive/yyyy/m - думаю вопросов бы у меня не возникло.
создать термин таксономии "2011" и вносить туда ноды при создании))
url_alter и подумать
В таком случае url будет выглядеть taxonomy(или что-то другое)/2011, что не удовлетворяет условию моей задачи
Имеется в виду модуль для 6-го Drupal'a?
И я таки не понимаю, кто не даёт сделать автору вьюху с каким-нить адресом, а потом нафигачить к ней алиасов вручную или автоматом
сам отче наш)))
При задании вопроса не забывайте указывать версию Друпала.
Drupal 6 - custom_url_rewrite_inbound + custom_url_rewrite_outbound
Drupal 7 - hook_url_inbound_alter + hook_url_outbound_alter
Данная парочка хуков способна творить чудеса с путями
а кто мешает убрать "taxonomy/"?
Спасибо, как раз сейчас разбираюсь с этими хуками
Не знаю, возможно друпал )
Я пробовал через view создавать страницу с адресом 2011, но на выходе все равно получал 404
Так и не получается сделать, как мне хочется. Нужны еще идеи и советы.
Если сделать так:
function my_categories_menu() {
$items['2011'] = array(
...
);
$items['test/2011'] = array(
...
);
return $items;
}
То страница по адресу test/2011 - срабатывает, а вот адрес 2011 - не хочет работать
А если использовать это:
function my_categories_url_inbound_alter(&$path, $original_path, $path_language) {
if ($path == '2011') {
$path = 'test/2011';
}
}
То при попытке перейти по адресу 2011 происходит изменение адреса в адресной строке на test/2011
Только что сделал так:
<?php
function my_module_url_inbound_alter(&$path, $original_path, $path_language){
if ($path == '2011') {
$user = $GLOBALS['user'];
$path = 'user/' . $user->uid . '/edit';
}
}
?>
Все работает, по адресу /2011 работает страница редактирования профиля.
Может вы с меню намудрили?
Думаю, если подключить к задаче еще и mod_rewrite, то должно сработать
У меня так и написано, что этот вариант работает, но когда вводишь 2011, то адрес меняется на user/1/edit (в вашем случае). А я имел в виду, что адрес 2011 должен остаться.
А у меня адрес не меняется.
Похоже у меня какой-то модуль делает редирект. Проверил на другом сайте, там адрес не менялся.
Выяснил, что редирект делает модуль Global Redirect
Задача решена. Всем спасибо.