Персональная страница shra, блог фриленсера, веб-разработчика на PHP. Здесь я делюсь своим опытом и мыслями, провожу опыты над людьми, собираю нематериальные свидетельства собственной глупости. Используя примеры программного кода с данного сайта, вы принимаете всю ответственность за возможные последствия их использования, включая ваше психическое здоровье и интересы третьих лиц.
Браузер сообщает об ошибке всплывающим окном вроде того, что на скриншоте. Сообщается, что AJAX завершен неправильно. Но основной симптом — что не работают вообще какие либо транзакции, связанные с работой с формами.
А в логах Drupal вы видите загадочное сообщение — «неверные POST данные формы».
Причины могут быть различные и решения соответственно тоже.
Если не работает форма, связанная с каким то одним объектом, например, редактор недавно созданного представления (объекта модуля views), или редактора нового типа публикации, то поможет удаление и создание объекта с нуля.
Если проблема связана с ошибкой генерации URL сайта — инициализации глобальной переменной $base_url, то можно попытаться установить значение этой переменной в settings.php. Там есть соответствующий блок, посвященный этой переменной.
Если не работают вообще все формы (отправка данных, взаимодействие компонентов через ajax, загрузка картинок, новых элементов формы и т.п.), то проблема скорее всего связана с таблицей кеша форм. Очистите таблицу и/или почините её через доступный вам инструмент работы с базой данных.
Изучение API удобно начинать с шаблонов кода, которые демонстрируют технику использования.
Пример логики использования/создания элемента кеша
[crayon-69657f0eef52b980877223/]
Обратите внимание на дополнительные скобки вокруг $cache = cache_get($cache_id). ...
Можно использовать анализ адреса хранимый Drupal в $_GET['q'] и/или анализ частей адреса, получаемых функцией arg(N).
Оба варианта по сути делают одно и тоже - анализ внутреннего адреса, который для публикации имеет вид: node/%NID%.
Я использую функцию ...
Столкнулся со следующим неприятным багом, при использовании модуля pathauto, совместно с модулем транслитерации: Drupal генерирует "обрезанные" синонимы адресов страниц.
Длина получаемого синонима плавала от 40-70 символов, и я никак не мог понять ...
Если вы решили вывести блок, реализованный в каком либо модуле, программно, то следующие примеры кода помогут вам.
Используя block API
Запрашиваем данные блока через API, готовим массив для последующего рендеринга:
[crayon-69657f0eef943195008668/] ...