it-swarm-ja.com

renderとnode.tpl.phpによって追加されたdivを削除する

Drupal 7のHTML5テンプレートを作成しようとしています。クリーンなコードに非常にこだわっています。HTMLとCSSを完全に制御したいと思っています。独自のカスタムテーマです。つまり、Drupalとまったく同じように使用したいHTML5とCSSのセットがあります。前処理関数全体の動作にあまりこだわっていません。

Page.tpl.phpファイルで 'print render($ page [' content '])'を使用すると、追加されます

<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は必要ありません。それらを取り除くにはどうすればよいですか?

15
Jack McKenzie

$ page ['content']内に表示されるdiv IDとクラスは、region.tpl.php> block.tpl.php> node.tpl.php Drupalコンテンツはこれらのテンプレートファイルを通過します、各ステップでいくつかのdivを追加します。

  • ステップ1

region.tpl.phpファイルには、次のコードが含まれています

       <?php if ($content): ?>
  <div class="<?php print $classes; ?>">
    <?php print $content; ?>
  </div>
<?php endif; ?>

このファイルに変更を加えると、ページのすべての領域に影響します。コンテンツ領域のみを制御する場合は、regionという名前の新しいファイルを作成します。そのファイルにcontent.tpl.phpのみを貼り付けます。

<?php if ($content): ?>

    <?php print $content; ?>

<?php endif; ?>

これにより、コンテンツ領域のみに対して作成されたdivが削除されます。

  • ステップ2

Block.tpl.phpのコピーを作成し(block.tpl.phpに変更を加えると、すべてのブロックが影響を受けます)、block--content.tpl.phpという名前を付け、divを削除または変更します。 divがない場合、ファイルにはコンテンツを出力する次のコードが含まれます。

<?php print render($title_prefix); ?>
    <?php if ($block->subject): ?>
      <h2 class="block-title"<?php print $title_attributes; ?>><?php print $block->subject ?></h2>
    <?php endif;?>
      <?php print render($title_suffix); ?>
      <?php print $content; ?>

これにより、bock.tpl.phpによって作成されたdivが削除されます

  • ステップ

次に、node.tpl.phpファイルを編集して、divを削除または変更します。 divがない場合、ファイルにはコンテンツを出力する次のコードが含まれます。 > ">

    <?php print $user_picture; ?>

    <?php if ($display_submitted): ?>
      <span class="submitted"><?php print $date; ?> — <?php print $name; ?></span>
    <?php endif; ?>


        <?php
          // We hide the comments and links now so that we can render them later.
        hide($content['comments']);
        hide($content['links']);
        print render($content);
       ?>


    <?php if (!empty($content['links']['terms'])): ?>
      <?php print render($content['links']['terms']); ?>
    <?php endif;?>

    <?php if (!empty($content['links'])): ?>
        <?php print render($content['links']); ?>
      <?php endif; ?>




<?php print render($content['comments']); ?>

これにより、すべてのdivとクラスが削除されます。これで、コンテンツを独自のdivでラップできます。うまくいくかどうか教えてください。

17
15dk51