Как бы вы подошли к созданию формы стиля «Mad Libs» в Drupal? - PullRequest
1 голос
/ 27 января 2011

Меня заинтриговала идея этой статьи: Форма стиля "Безумные либы" увеличивает конверсию на 25-40% . Я хотел бы протестировать такую ​​форму вместо регистрационной формы на нескольких сайтах Drupal; тем не менее, я не уверен, как приблизиться к такой неортодоксальной форме, используя API форм Drupal.

Было бы целесообразно изменить существующую форму user_register, используя hook_form_alter? Есть ли лучший способ?

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

1 Ответ

2 голосов
/ 27 января 2011

Интересно.Вы должны построить форму, как обычно, если вы строите друпальную форму, только с полями в ней.Ваш рассказ будет помещен в файл шаблона, который должен использоваться для оформления формы.Использовать шаблон для форм темы очень просто.Например, в вашей ловушке _theme свяжите форму с файлом шаблона

<code>
testmodule_theme()
{
  return array(
        "user_aboutme_form" => array(
            "arguments" => array( "form" => NULL ),
            'path' => $path_to_template_folder,
            "template" => "user-aboutme-form",
            )
);
}
. Убедитесь, что вы очищаете кэш тем между ними.В вашем файле шаблона вы получите весь массив форм, и вы можете визуализировать отдельные элементы, используя функцию drupal_render.С пользовательским стилем вы можете получить тот же внешний вид, что и на сайте выше.Единственный улов здесь - убедиться, что вы визуализируете корневой элемент формы, т.е. drupal_render ($ form), после того, как вы закончили с рендерингом отдельных элементов формы, которые будут помещать в форму значения токенов формы, иначе форма не будет работать.
...