Как к синониму пути ноды добавить get параметры со значениями из полей этой ноды?

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

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 31 июля 2014 в 16:17

Снова вы за своё...
Передайте все свои поля одним аргументом, а потом парсите его и редиректь хоть с get, хоть с шмет...

Аватар пользователя DD 85 DD 85 31 июля 2014 в 17:14

"Chyvakoff" wrote:
Передайте все свои поля одним аргументом, а потом парсите его и редиректь хоть с get, хоть с шмет...

Можно конкретнее приведите примеры кода.
Это требуется для одного типа содержимого.

Неужели нет модульного решения этой задачи?

Или подскажите, как отключить экранирование спецсимволов.

Аватар пользователя Chyvakoff Chyvakoff 1 августа 2014 в 12:25

Создаешь модуль
Создаешь в нём свой токен. В формировании токена склеиваешь значения нужных тебе полей через знак подчеркивания.
Далее в hook_node_view можешь брать данные с урла, функцией arg().
Расклеиваешь свой токен. Формируешь из него GET строку.
Делаешь drupal_goto
Профит.
Всё это друпалвейно.

Аватар пользователя Chyvakoff Chyvakoff 1 августа 2014 в 12:26

Хотя похоже это не решит твою задачу. А может и решит. Будет лучше, если ты объяснишь зачем тебе всё это надо.

Аватар пользователя DD 85 DD 85 1 августа 2014 в 13:25

Есть тип материала Товар, на нём с помощью Block reference выводится блок Webform. С передачей названия из ноды Товар в скрытое поле Webform проблем нет, потому что есть токен [current-page:title]. А с передачей значений полей, например, поля Цена, всё несколько сложней. Поэтому решил использовать токен [current-page:url:args:last] в ещё одном скрытом поле Webform. А шаблон пути для типа материала Товар сделать таким [node:content-type:machine-name]/[node:title]/[node:field-price]. В этом случае всё работает значения поля Цена и название ноды типа материала Товар передаются в скрытые поля Webform блока и затем успешно отправляются на e-mail. Недостаток такого решения только один адреса нод типа материала Товар получаются такими /product/title-node/1000. Если цену поменять, то поменяется и ссылка на ноду, страничке придётся переиндексироваться, чего не хотелось бы. Вот поэтому и хочу сделать так, чтобы ссылка была такой /product/title-node?price=1000

Аватар пользователя Chyvakoff Chyvakoff 1 августа 2014 в 16:04

"DD 85" wrote:
Если цену поменять, то поменяется и ссылка на ноду, страничке придётся переиндексироваться, чего не хотелось бы. Вот поэтому и хочу сделать так, чтобы ссылка была такой /product/title-node?price=1000

Кто вам сказал, что /product/title-node?price=1000 и /product/title-node?price=2000 - это одна и та же страница для поисковиков? Для поисковика что /product/title-node?price=1000 и /product/title-node?price=2000, что /product/title-node/1000 и /product/title-node/2000 - разницы никакой. и там, и там 2 разных урла.
Ваша ошибка в том, что в урле вообще присутствует стоимость товара. её никогда туда не ставят, ведь стоимость может измениться.
"DD 85" wrote:
потому что есть токен [current-page:title]

А нет токена типа [node:field-price] ? Нельзя его в вебформу подставить?

Аватар пользователя DD 85 DD 85 1 августа 2014 в 17:25

"Chyvakoff" wrote:
Кто вам сказал, что /product/title-node?price=1000 и /product/title-node?price=2000 - это одна и та же страница для поисковиков?

http://help.yandex.ru/webmaster/controlling-robot/robots-txt.xml#clean-param




"Chyvakoff" wrote:
А нет токена типа [node:field-price] ? Нельзя его в вебформу подставить?

Нет, нельзя, работать не будет.