Я пытаюсь создать шаблон HTML5 для Drupal 7, и я довольно разборчив в чистом коде. Я хочу получить полный контроль над HTML и CSS, которые по большей части я получаю, используя собственную тему. Другими словами, у меня есть набор HTML5 и CSS, который я хочу использовать точно так же, как в Drupal. Я не слишком осведомлен о том, как работает вся функция предварительной обработки.
Когда я использую 'print render ($ page [' content '])' в моем файле page.tpl.php, он добавляет
<div class="region region-content">
<div id="block-system-main" class="block block-system">
<div class="content">
И затем, когда я добавляю 'print render ($ content)' в узел - custom.tpl.php, он добавляет
<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-items">
<div class="field-item even" property="content:encoded">
Я не хочу ни одного из этих дивов. Как мне от них избавиться?
Ответы:
Идентификаторы и классы div, которые вы видите внутри $ page ['content'], взяты из region.tpl.php> block.tpl.php> node.tpl.php Содержимое Drupal проходит через эти файлы шаблонов, каждый шаг добавляет некоторые div.
Файл region.tpl.php содержит следующий код
Теперь, если вы внесете изменения в этот файл, это повлияет на все области вашей страницы. Если вы хотите управлять только областью содержимого, создайте новое имя файла в этом регионе - content.tpl.php в этом файле только для вставки
Это избавит от div, созданного только для области содержимого.
Сделайте копию (если мы внесем изменения в block.tpl.php, все блоки будут выполнены) для block.tpl.php и назовите его block - content.tpl.php и удалите или измените div. Без divs файл будет содержать следующий код для вывода содержимого.
Это избавит от div, созданного bock.tpl.php
Теперь отредактируйте файл node.tpl.php, чтобы удалить или изменить div. Без divs файл будет содержать следующий код для вывода содержимого. > ">
Это избавит от всех div и классов. Теперь вы можете обернуть содержимое с вашими собственными div. Пожалуйста, дайте мне знать, если это работает для вас.
источник
print render($content);
но вторые три div остаются. Я знаю, что он подбирает файл правого узла, так как, когда я добавляю текст в файл, он проходит нормально.foreach ($items as $delta => $item) { print render($item); }
. Однако любой может захотеть начать с полного field.tpl.php, потому что я вычеркнул несколько строк, которые могут оказаться важными в зависимости от того, что вы пытаетесь сделать. Последние три элемента div были добавлены этим файлом - хотя я немного запутался в том, что в документации сказано, что этот файл не используется и предоставляется только для начальной точки настройки.Что прекрасно работает для меня это:
strip_tags(render($var));
источник