Как я могу отредактировать форму поиска?


У меня установлен дистрибутив OpenAtrium на Drupal 6. Как вы, возможно, уже знаете, OpenAtrium уже реализует функцию поиска. Что я хотел бы сделать, так это изменить следующую форму:

enter image description here

Добавив еще одну кнопку рядом с кнопкой поиска (есть и другие изменения, которые я хотел бы сделать, но это не имеет значения, это просто конечная цель).

Проблема в том, что я не знаю, какая страница PHP создает эту форму. Все, что я знаю, это то, что page.header.inc печатает содержимое этой формы:

 ...
 <div id='space-tools'><div class='dropdown-blocks toggle-blocks clear-block'><?php print $space_tools ?></div></div>
 ...

Как вы можете себе представить, $space_tools содержит все меню, а также форму. Но кто тот, кто создает переменную $space_tools? Есть ли API OpenAtrium, который я могу где-нибудь прочитать?

Это результат HTML, который я хотел бы изменить:

<div id="space-tools"><div class="dropdown-blocks toggle-blocks clear-block processed">  
<form action="/openatrium/XXXXXX/" accept-charset="UTF-8" method="post" id="atrium-search-form">
<div>
    <div class="form-item form-item-labeled" id="edit-search-wrapper">
        <label for="edit-search">Search XXXXXXX: <span class="form-required" title="This field is required.">*</span></label>
        <input type="text" maxlength="128" name="search" id="edit-search" value="" class="form-text required fluid">
    </div>
    <input type="submit" name="op" id="edit-submit" value="Search" class="form-submit">
    <input type="hidden" name="form_build_id" id="form-31ea0a19166f0619050f7ac923ebf331" value="form-31ea0a19166f0619050f7ac923ebf331">
    <input type="hidden" name="form_token" id="edit-atrium-search-form-form-token" value="aaf2e5374720acee5769fcafb6421e35">
    <input type="hidden" name="form_id" id="edit-atrium-search-form" value="atrium_search_form">
</div>
</form>

Спасибо. Чуть не забыл, здесь, где я работаю, imgur заблокирован прокси-сервером, поэтому я не могу сказать, было ли загружено изображение или нет.

РЕДАКТИРОВАТЬ: Это сводя меня с ума, я просмотрел всю папку OpenAtrium в поисках слова "атриум-форма поиска", но внутри файлов не было никакого результата. Как это вообще возможно, лол? Если идентификатор не построен на разных переменных, в этом случае я не знаю, что делать...

Author: smokris, 2013-01-08

1 answers

Он отображается с помощью модуля Контекста. Я нашел это так:

  • Перейдите к admin/build/context и выберите контекст global
    • Нажмите Blocks реакция
    • В области Space tools отображается блок Atrium: Search form

Затем я искал имя Atrium: Search form и обнаружил, что блок определен в модуле atrium_features, в функциях atrium_block и atrium_search_form файла atrium/atrium.module.

Вы можете изменить форму поиска с помощью крючка hook_form_FORM_ID_alter, например hook_form_atrium_search_form_alter.

 1
Author: smokris, 2013-01-08 14:16:22