Отображение в пути страницы с аргументами символов ?, =, &.

Главные вкладки

Аватар пользователя DD 85 DD 85 21 июля 2014 в 15:27

Создаю на странице /admin/config/search/path/patterns аргументы для определённого типа содержимого. На странице /admin/config/search/path/settings разрешил ?, =, &. Аргументы мне необходимы для взаимодействия с формой.
Проблема в следующем. Если навести курсор на ссылку, ведущую на страницу, содержащую в пути аргументы, то Firefox отображает в нижнем левом углу путь с символами ?, =, &. А если перейти по этой ссылке, то в адресной строке вместо ?, =, & отображаются знак процентов и прочие символы. Например, вместо ? отображается %3F.
В чём проблема?

Комментарии

Аватар пользователя DD 85 DD 85 21 июля 2014 в 16:45

Господа я задаю вопрос с целью получить ответ, а не ради того чтобы разнообразить свою жизнь загадками.

Аватар пользователя DD 85 DD 85 21 июля 2014 в 20:40

"ХулиGUN" wrote:
Вы по ходу путаете аргументы с параметрами.

Прошу прощения с терминологией мог ошибиться, но Вы меня правильно поняли.

"ХулиGUN" wrote:
Друпал экранирует ваши спец.символы

Как сделать, чтобы спецсимволы не экранировались?

Аватар пользователя drupby drupby 21 июля 2014 в 20:48

то есть ты хочешь прописать в алиасы шаблоны с гет параметрами и ждешь, что это будет работать?
в алиасы не нужно "искусственно" добавлять параметры, параметры добавляй потом к уже существующему урлу-алиасу

Аватар пользователя DD 85 DD 85 21 июля 2014 в 21:15

Шаблон у меня выглядит так:
[node:content-type:machine-name]/[node:title]/[node:field-price]
Хочу, чтобы было так:
[node:content-type:machine-name]/[node:title]?price=[node:field-price]

С первым вариантом всё отлично работает. Хочется оформить соответствующим образом, чтобы правильно настроить robots.txt.

Аватар пользователя dashiwa dashiwa 21 июля 2014 в 21:34

Попробуйте такое.
Делайте модуль и редактируйте под свои данные
На свой страх и риск Smile

<?php

function path_fix_pathauto_alias_alter(&$alias, array &$context) {
// replace alias to add ampersand
  $alias =  str_replace("%26","and", $alias );
  $alias =  str_replace("&","and", $alias );
 
}

Аватар пользователя DD 85 DD 85 21 июля 2014 в 21:52

ХулиGUN заканчивайте лечить. Я же знаю, что Вы знаете решение. А что я должен прочитать о передаче get параметров я не знаю.

Аватар пользователя Chyvakoff Chyvakoff 22 июля 2014 в 9:40

"DD 85" wrote:
Шаблон у меня выглядит так:
[node:content-type:machine-name]/[node:title]/[node:field-price]
Хочу, чтобы было так:
[node:content-type:machine-name]/[node:title]?price=[node:field-price]

Тогда делай паттерн таким [node:content-type:machine-name]/[node:title] , а потом в хуке уже смотри на гет(точнее его отсутствие) и редиректь.
"DD 85" wrote:
Аргументы мне необходимы для взаимодействия с формой.

С формой могут взаимодействовать как аргументы, так и гетовские переменные. Разницы никакой.

Аватар пользователя DD 85 DD 85 23 июля 2014 в 13:00

"Chyvakoff" wrote:
Тогда делай паттерн таким [node:content-type:machine-name]/[node:title] , а потом в хуке уже смотри на гет(точнее его отсутствие) и редиректь.

Я понимаю, что можно сделать через hook. Но если бы я знал, как это сделать, то не делал бы через шаблон пути.
Если можете, дайте примеры решений.