Нужно добавить собственный HTML-код, прежде чем форма будет возвращена .. Как? - PullRequest
1 голос
/ 15 августа 2010

Мне нужно отобразить некоторый пользовательский HTML / код обработки, прежде чем форма Drupal может быть отображена. Как я могу вернуть и пользовательский HTML и форму? Код у меня есть:

function myfunction() {
    global $base_path, $base_url;
    $output = ""; // Clear the variable, just in case
    include ('includes/SOME_HTML_OUTPUT.inc');
    return $output; //NOT GOING TO WORK
    return drupal_get_form('my_form');
}

Ответы [ 3 ]

5 голосов
/ 15 августа 2010

Правильный способ сделать то, что вы хотите:

function myfunction() {
  $output = theme('your_theme_function'); // Create your custom markup.
  $output .= drupal_get_form('my_form'); // Create the form markup.
  return $output;
}

Ваша тема должна обрабатывать создание вашей разметки. Это можно сделать с помощью функции php или с помощью шаблона и функции предварительной обработки.

Приятно, что вышеуказанный подход заключается в том, что вы подключаетесь к системе тем Drupal и получаете ее гибкость. Если дизайнер хочет изменить HTML, он может сделать это, как обычно. Вы также получаете возможность добавлять шаблоны и другие полезные элементы при использовании системы тем Drupal.

В вашем конкретном случае вы можете знать, что вам нужны все эти хорошие вещи, которые предоставляет Drupal, но вы все равно должны сделать это привычкой кодировать подобные этому. Это сделает ваши модули более гибкими. Также, если вы когда-нибудь захотите внести что-то обратно в виде модуля на drupal.org, кодирование, как это, абсолютно необходимо, если вы хотите, чтобы ваш модуль мог использоваться другими.

0 голосов
/ 15 августа 2010

уточните, пожалуйста, свой вопрос.

do включает / SOME_HTML_OUTPUT.inc должно выдать $output? где включает / SOME_HTML_OUTPUT.inc точно размещено?

и взгляните на module_load_include API. это может помочь.

0 голосов
/ 15 августа 2010

что выводит функция drupal_get_form ()?просто HTML?

вы могли бы сделать это: return $output.drupal_get_form('my_form');

????

...