Próbuję zbudować szablon HTML5 dla Drupal 7, i jestem dość szczegółowy w kwestii czystego kodu. Chcę mieć pełną kontrolę nad HTML i CSS, które w większości otrzymuję przy użyciu własnego niestandardowego motywu. Innymi słowy, mam zestaw HTML5 i CSS, którego chcę używać dokładnie tak, jak w Drupal. Nie mam pojęcia, jak działa cała funkcja przedprocesowa.
Kiedy używam „print render ($ page ['content'])” w moim pliku page.tpl.php, dodaje
<div class="region region-content">
<div id="block-system-main" class="block block-system">
<div class="content">
A potem, gdy dodam „print render ($ content)” w węźle - dodaje 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">
Nie chcę żadnego z tych div. Jak się ich pozbyć?
Odpowiedzi:
Identyfikatory div i klasy, które widzisz wewnątrz $ page ['content'], pochodzą z region.tpl.php> block.tpl.php> node.tpl.php Zawartość Drupal przechodzi przez te pliki szablonów, każdy krok dodaje trochę div.
plik region.tpl.php zawiera następujący kod
teraz, jeśli wprowadzisz zmiany w tym pliku, wpłynie to na wszystkie regiony strony. Jeśli chcesz kontrolować tylko obszar zawartości, utwórz nową nazwę pliku to region - content.tpl.php tylko w tym pliku wklej
Spowoduje to pozbycie się div utworzonego tylko dla regionu zawartości.
Zrób kopię (jeśli wprowadzimy zmiany w block.tpl.php, wszystkie bloki zostaną wykonane) z block.tpl.php i nazwij go block - content.tpl.php i usuń lub zmień div. Bez elementów div plik będzie zawierał następujący kod do wyświetlania zawartości.
Spowoduje to pozbycie się div utworzonego przez bock.tpl.php
Teraz edytuj plik node.tpl.php, aby usunąć lub zmienić div. Bez elementów div plik będzie zawierał następujący kod do wyświetlania zawartości. > „>
Spowoduje to pozbycie się wszystkich div i klas. Teraz możesz owinąć zawartość własnymi divami. Daj mi znać, jeśli to działa.
źródło
print render($content);
ale pozostałe trzy div pozostają. Wiem, że pobiera odpowiedni plik węzła, ponieważ kiedy dodam trochę tekstu do pliku, wszystko idzie dobrze.foreach ($items as $delta => $item) { print render($item); }
. Jednak każdy może chcieć zacząć od pełnego pola.tpl.php, ponieważ wyjąłem kilka wierszy, które mogą być ważne w zależności od tego, co próbujesz zrobić. Ostatnie trzy divy były dodawane przez ten plik - chociaż jestem trochę zdezorientowany, ponieważ dokumentacja mówi, że ten plik nie jest używany i służy jedynie jako punkt początkowy dostosowywania.Dla mnie idealnie działa:
strip_tags(render($var));
źródło