Как узнать ID конкретной формы? В сети все разбросано и нет конкретной инструкции. Сам весь вечер искал решение. Поэтому я попробую просто привести конкретный пример извлечения ID формы.
Сразу уточню, что будем извлекать ID всей формы, а не отдельного ее элемента. Идентификатор отдельного элемента формы можно извлечь с помощью Firebug (плагин к Firefox).
Материал взят с: http://api.drupal.ru/api/function/hook_form_FORM_ID_alter/6 первый комментарий. Если установлен модуль Devel, то можно и по второму комментарию.
Создаем свой модуль, а это всего два файла: extract_id_forms.info и extract_id_forms.module.
В первом файле прописывем:
; $Id$
name = Extract ID forms
description = "Retrieves and displays the ID of an entire form"
package = Custom
core = 6.x
Во втором файле (extract_id_forms.module):
Оба файла ложим в папку custom. Эту папку размещаем там, где лежат все модули вашего сайта. Как правило это: /sites/all/modules. Далее включаем наш модуль на странице администрирования /admin/build/modules. Это будет группа «Собственная» («Custom»). Активируем модуль. После чего открываем нужную нам форму и смотрим в самом вверху появившуюся запись типа: Form ID: «здесь id формы». Например, если зайти в /node/add/page («Создать page»), то сразу под заголовком «Создать page» увидим запись Form ID: page_node_form. Это и есть идентификатор всей формы. Узнали идентификатор, и теперь можно удалить наш кастомный модуль, т.к. больше он не нужен.
На истину не претендую. Удачи в делах!
Комментарии
drupalforfirebug
И id и массив формы показывает
А я вот всегда просто файрбугом смотрел
Для таких вещей достаточно давно существует модуль devel, это раз.
А еще есть firefox + firebug в котором тоже можно посмотреть form_id.
В хтмл это выглядит примерно так:
<--! FORM ID как раз и есть ID user-login-form только надо вместо - писать _ -->
<div><div id="edit-name-wrapper" class="form-item">
<label for="edit-name">Имя пользователя: <span title="Обязательное поле" class="form-required">*</span></label>
<input type="text" class="form-text required" value="" size="15" id="edit-name" name="name" maxlength="60">
</div>
<div id="edit-pass-wrapper" class="form-item">
<label for="edit-pass">Пароль: <span title="Обязательное поле" class="form-required">*</span></label>
<input type="password" class="form-text required" size="15" maxlength="60" id="edit-pass" name="pass">
</div>
<input type="submit" class="form-submit" value="Вход" id="edit-submit" name="op">
<div class="item-list"><ul><li class="first"><a title="Создать новую учетную запись пользователя." href="/user/register">Регистрация</a></li>
<li class="last"><a title="Получить новый пароль на e-mail." href="/user/password">Забыли пароль?</a></li>
</ul></div><input type="hidden" value="form-83ef6d809263ddff2fe76c76c1c8293a" id="form-83ef6d809263ddff2fe76c76c1c8293a" name="form_build_id"> <--! FORM BUILD ID значение VALUE -->
<input type="hidden" value="user_login_block" id="edit-user-login-block" name="form_id"> <--! FORM ID значение VALUE -->
</div></form>
Просто в firebug ID всей формы (с полями CCK) не узнать, по крайней мере я не смог найти. ID конкретного элемента, да. Во-вторых, если просто задать вопрос "как узнать ID всей формы?", ничего конкретного кроме "насмешили и т .п." - не увидишь. Не все ставят Devel и firebug, верно? А в нашем случае спровоцировано много конкретных и дельных вариантов Значит есть из чего выбирать.
1. Плохо искали. в друпале у любой формы построенной через formAPI есть скрытые поля в которых хранится информация об ID формы и не только.
2. Разработчики сайтов которые не пользуются девелом или фаербагом ассоциируются у меня с автослесарем без инструментов.
Какой же он тогда на хрен автослесарь? Вы бы подпустили такого к своей машине? Я лично выгнал бы его в зашей.
+1
Devel
Form Builder
Module Builder
наше всё
открываете html код странички, ищите скрытое поле form_id, значение поля и будет id вашей формы. profit
хм, интересное, нужно попробовать
Попробуй, говоришь ему:
мне нужен node-модуль, с кроном, с такими-то ништяками, он хуки тебе по модулю раскидывает, вписываешь своё и всё
из веб интерфейса или только из drush?
мышкой с галочками
А я ищу проще:
HTML > поиск:
accept-charset="UTF-8"
Чуть далее заветный ID
Остаётся только заменить "-" на "_"
P.S. Хотя можно и залезть в .tpl и там глянуть как работает код.
И сделать вывод его на страницу в процессе сборки\наладки\отладки.