Любая альтернатива drupal_json для вывода не в формате JSON

При обратном вызове AJAX в drupal обычно рекомендуется использовать drupal_json() для отправки данных клиенту. Эта функция преобразует необработанные данные в JSON вместе с кодировкой HTML.

Я хочу отправить данные HTML без кодирования клиенту. Для этого я использую следующий код:

print $html_output;
exit(0);

Есть ли какой-либо рекомендуемый или лучший способ в drupal сделать это?

2 ответа

Решение

Если вам нужно вывести только вывод HTML, возвращаемый из обратного вызова меню, то следующий код является правильным:

print $html_output;
module_invoke_all('exit');
exit();

Если вы хотите, чтобы ваш вывод отображался вместе с блоками, которые обычно выводит Drupal, то код необходимо изменить на следующий:

return $html_output;

Это сделает свое дело. Хотя вы должны сначала вызвать hook_exit. Однако это сокращает структуру, это может работать в простых случаях, но не будет работать для форм и т. Д.

Единственный раз, когда я использовал этот метод, это если я печатаю некоторые данные, которые уже закодированы в формате json.

Другие вопросы по тегам