Замена поля таксономии в редакторе ноды в Drupal 6

Потому то я и не люблю таксономию в шестерке drupal, что возможностей ею управлять хуками почти что нет. В 7-ке ситуация лучше. У меня была задача выводить не все термины словаря, а только их часть. При этом у админа и редакторов оставался полный набор терминов, а простые пользователи должны были пользоваться усеченным списком. Отметку «особенности» терминов я делал в поле описания термина.

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

Судите сами — поле из формы убрать не удаётся, т.к. оно связано с типом публикации и рендерится уже в шаблон формы. Делается это вопреки всему, чтобы бы вы не удаляли из самого определения формы, к примеру, через hook_form_alter.

Мое решение заключается в следующем:

  • Прячем поле таксономии от пользователя, добавляя в hook_form_alter что то вроде (если словарь имеет код vid (vocalabury_id) == 1):

  • К форме в hook_form_alter добавляем поле типа select, которое для пользователя заменяет ввод данных спрятанного поля таксономии.

  • После отправки данных нужно подхватить значение из фальшивого списка и заполнить им таксономию. Делаем это в hook_nodeapi.

Ужасное, не красивое решение, но у меня оставался лишь вариант вообще отказаться от таксономии, а это означало масштабную перепись уже отлаженного кода.

Мало букафф? Читайте есчо !

Acana.ru - сайт дистрибьютора кормов для животных

Июнь 6, 2017 г.

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

Читать

Загрузка файла в один клик в Drupal формах

Сентябрь 19, 2020 г.

Раздражающая многих особенность друпальных форм, когда пользователь видит избыточное количество элементов формы, связанных с загрузкой файла, может быть ...

Читать

Подключаем fancybox в Drupal 6

Сентябрь 1, 2013 г.

Fancybox - известный плагин jQuery для создания эффекта "просмотра в окошке". Давайте подключим его в 6-ю версию Drupal. Ряд "деятелей" предлагают поставить для этой цели, кроме самой библиотеки, ещё два плагина - jquery_update и fancybox. Определенный ...

Читать

Фиксим "Mismatched entity and/or field definitions" ошибку в Drupal

Октябрь 10, 2023 г.

Советы, которые дают по решению этой проблемы немного устарели, относятся обычно к 8й версии друпала и не работают в более новых версиях. Проблема ...

Читать
 

Комментарии к «Замена поля таксономии в редакторе ноды в Drupal 6»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Один комментарий в “Замена поля таксономии в редакторе ноды в Drupal 6”

  1. Дмитрий:

    А не подскажете как сделать вот такое? http://xandeadx.ru/blog/drupal/18#comment-14562
    Для Drupal 6 необходимо