it-swarm-vi.com

Loại bỏ div được thêm bởi render và node.tpl.php

Tôi đang cố gắng xây dựng một mẫu HTML5 cho Drupal 7 và tôi khá đặc biệt về mã sạch. Tôi muốn toàn quyền kiểm soát HTML và CSS, phần lớn tôi sử dụng Nói cách khác, tôi có một bộ HTML5 và CSS mà tôi muốn sử dụng chính xác như trong Drupal. Tôi không quá bận tâm về cách thức hoạt động của toàn bộ chức năng tiền xử lý.

Khi tôi sử dụng 'print render ($ page [' content '])' trong tệp page.tpl.php của tôi, nó sẽ thêm

<div class="region region-content"> 
    <div id="block-system-main" class="block block-system"> 
        <div class="content">

Và sau đó khi tôi thêm 'print render ($ content)' trong nút - custom.tpl.php, nó sẽ thêm

<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">

Tôi không muốn bất kỳ divs nào. Làm thế nào để tôi thoát khỏi chúng?

15
Jack McKenzie

Các id và lớp div mà bạn nhìn thấy bên trong $ page ['content'] xuất phát từ area.tpl.php> block.tpl.php> node.tpl.php Drupal nội dung đi qua các tệp mẫu này , mỗi bước thêm một số div.

  • Bước một

tập tin area.tpl.php chứa mã như sau

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

bây giờ nếu bạn thực hiện thay đổi trong tệp này, nó sẽ ảnh hưởng đến tất cả các vùng trên trang của bạn. Nếu bạn chỉ muốn kiểm soát vùng nội dung, hãy tạo một tên tệp mới vùng đó - content.tpl.php trong tệp đó chỉ dán

<?php if ($content): ?>

    <?php print $content; ?>

<?php endif; ?>

Điều này sẽ thoát khỏi div được tạo cho chỉ khu vực nội dung.

  • Bước Hai

Tạo một bản sao (nếu chúng tôi thực hiện các thay đổi trong block.tpl.php, tất cả các khối sẽ được thực hiện) của block.tpl.php và đặt tên cho nó là block - content.tpl.php và xóa hoặc thay đổi div. Không có div, tập tin sẽ chứa đoạn mã sau để xuất nội dung.

<?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; ?>

Điều này sẽ thoát khỏi div được tạo bởi bock.tpl.php

  • Bước ba

Bây giờ chỉnh sửa tệp node.tpl.php để loại bỏ hoặc thay đổi div. Không có div, tập tin sẽ chứa đoạn mã sau để xuất nội dung. > ">

    <?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']); ?>

Điều này sẽ thoát khỏi tất cả div và các lớp. Bây giờ bạn có thể bọc nội dung với divs của riêng bạn. Xin vui lòng cho tôi biết nếu nó làm việc cho bạn.

17
15dk51