Если вы хотите, чтобы HTML был отформатирован, вам придется делать это самостоятельно при создании строк HTML. Самый простой способ сделать это - использовать файл шаблона, а не создавать строки HTML вручную (помните, что PHP по сути является языком шаблонов HTML). Здесь довольно хорошее описание того, как это сделать: http://drupal.org/node/165706
Модуль основного узла имеет довольно хороший пример:
node.module:
<?php
/**
* Implementation of hook_theme()
*/
function node_theme() {
return array(
'node' => array(
'arguments' => array('node' => NULL, 'teaser' => FALSE, 'page' => FALSE),
'template' => 'node',
)
);
}
node.tpl.php:
<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?> clear-block">
<?php print $picture ?>
<?php if (!$page): ?>
<h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
<div class="meta">
<?php if ($submitted): ?>
<span class="submitted"><?php print $submitted ?></span>
<?php endif; ?>
<?php if ($terms): ?>
<div class="terms terms-inline"><?php print $terms ?></div>
<?php endif;?>
</div>
<div class="content">
<?php print $content ?>
</div>
<?php print $links; ?>
</div>
Может также быть способ интегрировать HTMLTidy в Drupal, чтобы он «украшал» разметку перед ее выводом, но я никогда сам этого не делал.
В конечном счете, я бы весьма рекомендовал не беспокоиться о форматировании вашего вывода HTML. Вместо этого используйте Firebug для Firefox или Inspector для Chrome / Safari. У них обоих есть инструмент «Проверка элемента», который позволяет просматривать разметку страницы в удобном для просмотра, редактируемом дереве. Это бесценно для веб-разработки.
* EDIT *
theme_item_list
делает минимальное форматирование вывода HTML. Вот пример списка, сгенерированного theme_item_list
:
<div class="item-list"><ul><li class="first">1</li>
<li>2</li>
<li>3</li>
<li class="last">4</li>
</ul></div>
В коде для theme_item_list
вы можете видеть, что он просто добавляет "\ n" после
:
$output .= '<li' . drupal_attributes($attributes) . '>' . $data . "</li>\n";