Расположение / размещение пользовательских форм в Drupal - PullRequest
0 голосов
/ 16 ноября 2009

Я только начинаю работать с Drupal, но совершенно не понимаю, как «разместить» все элементы формы. У меня обычно много вещей, как у этого парня, так что размещение и эстетика ОБЯЗАНЫ:

альтернативный текст http://img20.imageshack.us/img20/3103/55744697.jpg

Способ, которым Drupal по умолчанию отображает форумы, такие как вопросник (один длинный горизонтальный столбец с большим количеством пробелов), неприемлем для моих целей. Я просматривал форумы Drupal, и у нескольких других людей возникла та же проблема. Основной подход, кажется, заключается в том, чтобы вернуть длинную каскадную строку элементов управления html и php - для моих форм это было бы безумно! Какое самое простое и чистое решение для этого?

Есть ли способ, как в ASP.NET с page.aspx / page.aspx.cs, все разметка и элементы управления находятся в одном файле, а код - в другом? Или, может быть, я могу поместить всю разметку формы в один файл только с местозаполнителями, и в коде это говорит Drupal отрисовывать каждый элемент формы в его заполнителе?

Ответы [ 2 ]

2 голосов
/ 16 ноября 2009

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

... если это так, то Drupal не ведет себя так или, если быть более точным, он не ведет себя так с формами. Формы поступают на шаблон страницы в виде HTML, и вы должны использовать CSS для их форматирования в соответствии с вашими потребностями. HTML-код довольно хорошо структурирован, каждое поле имеет свой собственный <div> и несколько удобных классов, которые облегчают их оформление. Если этого недостаточно для удовлетворения ваших потребностей, вы можете вмешаться в процесс создания форм заранее, используя серию хуков.

Действительно, у Drupal есть очень специфический API форм (или FAPI) для работы с созданием, обработкой, проверкой и отправкой форм. Это может показаться слишком сложным для новичка, но FAPI действительно является ключевым элементом высокомодульного дизайна Drupal.

Вы можете взглянуть на этот ответ ранее на этой неделе, поскольку вам может быть полезно понять, как работает система FAPI в своей основе. Если вы новичок в мире Drupal, я бы посоветовал вам потратить некоторое время на чтение документации, особенно справочник по темам и система перехвата . Drupal требует, чтобы у него было достаточно знаний о его внутренней работе, чтобы быть гибкой платформой для разработки, но результат от инвестиций в «обучение» - ИМО - вполне стоит усилий.

С другой стороны: если вы изо всех сил пытаетесь начать с ваших форм с нуля, вам может быть интересно взглянуть на модуль веб-формы (не работает для все, но это довольно распространенный инструмент).

HTH, и добро пожаловать в сложный, но полезный мир Drupal! :)

1 голос
/ 16 ноября 2009

(Как упоминает Mac), API формы обеспечивает вывод элементов формы в согласованном формате:

<div id="ELEMENT-ID" class="form-item">
  <label> ... </label>
  <input type="INPUT TYPE" />
  <div class="description"> ... </div>
</div>

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

Вы можете получить макет в приведенном выше примере, ограничив ширину класса «.form-item» и применив «float: left». Элементы, которые не соответствуют правилу, всегда могут быть индивидуально стилизованы.

...