Привет всем!
Помогите разобраться с знаками в модуле pathauto.
Переношу сайт на друпал и хочу сохранить старые адреса(материл - архив). Для добавляемых новых материалов использую этот модуль и транслитерацию.
Старые адреса выглядят так сайт/page.php?id=12&year=2010
В настройке пути материала прописываю page.php?id=[nid]&year=[yyyy].
В списке синонимов отображается как нужно page.php?id=12&year=2010, но при клике на ссылку посмотреть или подробнее, получаю адрес такого вида page.php%3Fid%3D12%2526year%3D2011 и выдает - доступ запрещен.
В настройках модуля на вкладке "Настройки знаков препинания", для этих знаков поставил нет действия(не заменять), только толку нет.
Подскажите где смотреть, что править.
Комментарии
Смотреть в поиск.
Пиши в скайп, подскажу варианты, но решения так и нет.
Айдар, спасибо за помощь!
Решил не использовать решение http://www.drupal.ru/node/21669, так как сайт не мой и хукать ядро опасно, могут снести все при обновлении.
Нужно, чтобы адрес выглядел САЙТ/page.php?id=12&year=2010
Сделал так (мне нужен вывод адреса только для full отображения):
<h2 class="title"> <a href="<?php print "/page.php??id=".$node->nid."&year=".format_date($node->created, 'custom','Y');?> ">
<?php print $title?>
</a>
</h2><?php endif; ?>
P.S. Можно еще и $links переписать.
Михаил, огромное Спасибо за решение! Только у меня теперь почему-то не видны материалы, созданные таким образом, под анонимом и зарегистрированным пользователем - просто открывается страница со всеми блоками, но в поле содержимого белым-бело. Проверил права - там все в порядке. Термины видны, но ассоциированные с ними ноды - нет.Решено с помощью Валеры перестроением кеша прав доступа.
А что подставить вместо
<?php if($_GET['ID']) return $_GET['ID']; else return drupal_not_found(); ?>
чтобы возвращало другую вьюху с адресом 'newst/news/' или просто, чтобы показывалась страница термина с алиасом 'newst/news/'?
Т.е. я по твоему примеру сделал страницы импортированных нод 'newst/news/?ID=nid'
Требуется, чтобы на странице 'newst/news/' показывался список тизеров этих нод.
Пробовал разные функции вместо drupal_not_found() прописывать, но всегда пустая страница открывается.
Не помню, как точно работает, но есть модуль подтягивания другой вьюхи views_field_view
Проверить существование аргумента и нахождение на нужной странице arg(), попробовать перенаправить на другую страницу. Если в самом поле аргумента не пойдет, можно темизировать вывод виевса и там прописать.
Полностью решено благодаря ydv. Решение тут.