как создать пользовательскую форму Drupal 6, которая отображает результаты на странице? - PullRequest
2 голосов
/ 02 октября 2009

Я хочу создать сайт с поисковой формой слева и РЕЗУЛЬТАТЫ в содержательной (центральной) части.

Я знаю, как создавать модули ... но как мне назначить их расположение? ИЛИ я должен поместить ФОРМУ ПОИСКА как БЛОК и назначить их ЛЕВОЙ в build / block /.

ФОРМА ПОИСКА имеет 3 текстовых поля, ни одно из них не требуется. "Имя", "фамилия", "возраст"

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

очевидно, форма будет отправлять переменную как $_POST

но затем на странице результатов, если есть более 5 результатов, я хочу добавить нумерацию страниц.

ТАК, как мне создавать ссылки для <a href="?"

Я бы хотел, чтобы cleanURL вроде /search//Smith/24 или search/John//15 или search/John/Smith/40 для ответа "имя, фамилия, возраст" а затем при использовании нумерации страниц добавив /search/john/smith/40/page/3?

Ответы [ 2 ]

5 голосов
/ 02 октября 2009

Хорошо, сначала вверх, Второе предложение от googletorps - сначала взглянуть на решение views на основе , так как оно может сэкономить вам довольно много пользовательского кода. Тем не менее, я часто оказываюсь в положении, когда решение на основе представлений предлагает только 80% того, что мне нужно, и добавление недостающих 20% с представлениями может быть более трудоемким, чем выборочное решение с самого начала. Проверьте представления с помощью выставьте фильтры и посмотрите, подходит ли он.

Если это не так, вот несколько советов, которые должны помочь вам приступить к индивидуальному решению:

  • Что касается формы поиска, блок - правильный путь. Взгляните на hook_block(), чтобы узнать, как его создать (для этого вам нужно реализовать как минимум операции 'list' и 'view')
  • Размещение будет происходить через сборку / блок, как вы сказали
  • В операции «просмотр» вы должны построить свою форму. Посмотрите на API форм Quickstart и справочник для обработки форм в Drupal (не создавайте свои собственные формы вручную - API форм Drupal нужно только немного привыкнуть и сэкономить кучу времени в будущем)
  • Для страниц результатов вы должны зарегистрировать собственную функцию обратного вызова страницы для нужных путей, см. hook_menu() для этого.
    • Предупреждение: Ваш предложенный путь 'search / ...' будет конфликтовать со сборкой Drupals в пути поиска, так что вы можете рассмотреть выбор небольшой вариации (например, 'search / people / ...' или 'peoplesearch /' или тому подобное)
  • Для создания ссылок в Drupal используйте функцию l ()
  • Для разбивки на страницы вы можете использовать theme_pager, но это зависит от того, насколько прямым будет ваш фактический поисковый запрос, так как он ожидает, что массив параметров строки запроса построить запрос
1 голос
/ 02 октября 2009

Вы можете сделать это так, как вы описываете. Вам нужно будет использовать hook_menu, чтобы построить URL, hook_block, чтобы сделать блок формы поиска, а затем использовать функцию l () для создания ссылок. Однако выполнение всего этого в вашем собственном модуле потребует много времени. Создание запросов для поиска и т. Д. Вместо того, что я бы порекомендовал вам сделать, было бы использовать модуль views для всего этого. С его помощью вы можете довольно легко создать форму поиска, но используя открытые фильтры, вы можете создать страницу и блок для нее, сделать нумерацию страниц и все, что всего за несколько кликов. Таким образом, даже если вы хороший php dev, лучше всего в этом случае просто использовать то, что предоставляет Drupal в виде модуля views, и настроить его с помощью AI вместо написания множества кода. Если вы решили создать свой собственный модуль, взгляните на эти функции по адресу api.drupal.org, где вы можете найти документацию для ядра drupal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...