Токен не возвращает nid при добавлении нового значения (конфликт с ajax)

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

Аватар пользователя Anodo Anodo 22 марта 2022 в 15:59

Помогите решить проблему, не знаю, с какой стороны подступиться.

У себя в проекте использую для группировки полей модуль field_collection
В коллекции полей для ноды есть поле "Изображение" для которого я не могу настроить путь сохранения картинок.

Путь для сохранения картинок выглядит как на первом скриншоте
Там я использую собственный токен , код его прост:


<?php
$nid 
arg(1);
return 
$nid;
?>

Он просто возвращает nid

Все хорошо отрабатывает на первой картинке, а вот вторая и следующая загружаются по пути
programma-day-foto/ajax

Понятно, что поле для первой картинки уже создано в форме редактирование материала, и nid возвращается правильный, следующее поле под картинку подгружается по ajax и аргумент 1 становится ajax.

Как мне переписать токен, чтобы он всегда возвращал nid?

Комментарии

Аватар пользователя yaro yaro 23 марта 2022 в 7:45

Дело в том, что когда вызывается функция arg(), получается не ID, а элемент из строки запроса
А когда делается ajax запрос, то строка запроса меняется.

Чтобы получать nid во всех случаях, надо брать его не из аргументов, а из $form_state массива, там должна быть ссылка на сущность, которая редактируется.
Точнее я сказать не могу, так как нужно смотреть на конкретную реализацию.