Вы здесь

Как предотвратить изменение delta значения у multi-value поля?

0

У ноды есть поле типа "Ссылка на термин". Ранее было только одно значение для поля. Теперь необходимо добавлять несколько значений.
На основе значения этого поля генерировались синонимы pathauto и хлебные крошки(breadcrumbs). Сейчас сделал по дельте 0.

Собственно, сабж. Сейчас при выборе новых значений для прежнего значения ставится порядковый номер (поле delta в таблице) на последний, как его оставить = 0? Так как на основе его токена генерируется путь pathauto, например [node:field-taxonomy:0:url:path]

Версия Drupal: 
7.x
Категория: 
Field API
Вопрос задан 23.08.2017 - 15:29
Аватар пользователя VVS
VVS
31

путь pathauto для чего конкретно генерируется? если для термина, то он должен генерироваться из токена [term:..], а если генерируется путь для хлебной крошки ноды, которая ссылается на термин то почему он не может быть благополучно взят отсюда [node:field-taxonomy:0:url:path] ? - путь ноды формируется с частью пути термина?

почему delta должна измениться если термин остается на первой позиции?

Комментарий оставлен 23.08.2017 - 23:58

Я посмотрел в таблице field_data_field_taxonomy, после добавления нового значения поля, delta у предыдущего увеличивается на 1.
То есть так.
Первое значение:
delta 0
field_taxonomy_tid 18

Добавляю следующее:
delta 0
field_taxonomy_tid 42
delta 1
field_taxonomy_tid 18

Почему delta движется? То есть она становится в таком порядке, какой вес у терминов в словаре.

Комментарий оставлен 24.08.2017 - 10:16

Ты как делаешь выбор через select?
Сделай hook presave, и меняй там порядок, также как тебе надо.

Новое и старое значение никак не связана, а порядок скорее всего завасит от способа ввода.
По идее если ты через autocomplete делаешь, то порядок не будет меняться, а если через другие виджеты (select, checkbox) то он может меняться, зависит от порядка вывода, в виджете.

Кстати идея пришла, можно hook form alter сделать, и сделать сортировку options, выбранные значение показывать сверху.

Комментарий оставлен 27.08.2017 - 10:00

Пробовал и checkbox и select - порядок меняется. Автодополнение вот не ставил ещё - попробую.
Да, порядок скорее всего строится из веса термина в словаре.

Комментарий оставлен 04.09.2017 - 22:10

Ответы