Как сделать многоступенчатые формы с Drupal, используя различные типы узлов

Я создаю очень простой сайт объявлений. На этом сайте я буду иметь различные типы контента; такие как:

  1. Автомобиль (который имеет поля cck: год, километры, цвет
  2. Дом (который имеет поля cck: количество этажей, сад (да / нет)

Таким образом, каждый "элемент" является типом контента.

Я перечисляю все типы контента в представлении, которое я показываю пользователю, а затем нажимаю на ссылку, чтобы "создать тип контента типа (клик-тип)".

Это работает довольно хорошо; но я не могу избавиться от "создать новую машину" в верхней части страницы создания (которая отражает поведение "drupalish").

Я хотел бы, чтобы это было более удобным способом, таким как форма с тремя шагами как:

  1. Выберите категорию
  2. Выберите ваши варианты
  3. Зарегистрируйтесь, чтобы опубликовать новое объявление

Я видел ctools; которые обеспечивают "почти" многошаговое поведение; однако я не могу представить, чтобы все мои дюжины типов контента были "жестко закодированы" в одном модуле.

Интересно, кто-нибудь достиг такого рода установки или есть какой-то модуль, который может добиться цели. Я хотел бы сохранить тип контента для каждого типа объявлений (веб-мастер теперь используется для интерфейса).

Любая помощь, отправные точки будут оценены.

1 ответ

Решение

Для первого шага нам пришлось решить симуляционную задачу. Для этого мы создали то, что было в основном переопределением страницы / node / add (той, которая перечисляет все типы содержимого), что вы и сделали. Чтобы изменить заголовок, проще всего создать функцию yourtheme_preprocess_page(), которая изменяет заголовок, когда URL-адрес / node / add или node / * / edit

Однако: я настоятельно рекомендую перейти на систему, которая использует 1 тип контента для всех списков. Мы создали очень симулированный сайт, и после работы с разными типами контента стало ясно, что иметь 1 тип контента с условно отображаемыми полями было гораздо более разумным решением. Использование категорий для различных типов продуктов, а затем использование модуля "Условные поля" для скрытия и отображения правильных полей работали намного лучше.

http://drupal.org/project/conditional_fields

Вот пример кода для установки заголовка в функции предварительной обработки страницы:

Установка заголовка на странице узла / добавления:

  if (arg(0) == 'node' && arg(1) == 'add' && arg(2) == '') {
    $vars['title'] = 'Choose an Industry';
    $vars['head_title'] = $vars['title'] . " | " . variable_get('site_name', "Industry Trader");
  } 
Другие вопросы по тегам