it-swarm-vi.com

Làm cách nào để tạo các vùng tùy chỉnh trong một chủ đề?

Tôi muốn thêm một khu vực mới sẽ là trang web rộng. Mô tả quá trình đưa khu vực mới này vào chủ đề của tôi, nếu có thể, hãy khái quát hóa nó để thêm bất kỳ khu vực tùy chỉnh mới nào.

58
palbakulich

Bạn xác định vùng trong tệp .info chủ đề của bạn. Xem: Cấu trúc của tệp .info

Sau đó, bạn cần đặt các thẻ mẫu có liên quan trong tệp page.tpl.php của bạn.

Vì vậy, ví dụ: nếu bạn đã xác định vùng sidebar trong tệp .info chủ đề của mình, thì bạn sẽ thêm: <?php print render($page['sidebar']); ?> vào vị trí có liên quan trong page.tpl.php của bạn.

68
Camsoft

Một điểm khác: Đừng bỏ lỡ các khu vực cần thiết!

regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom

Thông tin thêm về điều này có thể được tìm thấy tại http://drupal.org/update/theme/6/7#clenses .

Để làm rõ về điểm này: Nếu bạn xác định các khu vực của riêng mình, bạn cần xác định tất cả những gì bạn đang sử dụng, bao gồm cả những khu vực được yêu cầu. Nói cách khác, bạn không thể chỉ xác định các vùng bổ sung: Nếu bạn xác định bất kỳ, bạn phải xác định tất cả chúng.

20
laura

Tạo một khu vực cho một chủ đề Drupal 7 không khác với việc tạo một khu vực cho một khu vực Drupal 6; sự khác biệt giữa Drupal 7 và các phiên bản trước đó về cơ bản là:

  • Các vùng không được xác định bằng cách sử dụng hàm mytheme_regions() như đã được thực hiện trong Drupal 5, nhưng chúng được xác định trong huyền thoại.info bằng cách sử dụng các lệnh regions[], Đó là những gì được thực hiện cũng với Drupal 6 chủ đề.
  • Các vùng được kết xuất bằng hàm Drupal render(), thay vì in nội dung của biến.

Drupal 7 vùng mặc định là các vùng sau:

regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer

Các chủ đề cốt lõi của Drupal 7 hiện bao gồm một khu vực có tên 'được tô sáng', sử dụng cùng màn hình với khu vực tuyên bố sứ mệnh trong Drupal 6; chúng cũng bao gồm một khu vực có tên 'trợ giúp', theo mặc định có cùng nội dung của biến $help được sử dụng bởi Drupal 6.

9
kiamlaluno

Các vùng chủ đề được xác định trong tệp .info chủ đề của bạn - xem docs . Chỉ cần thêm một dòng với regions[corner] = Corner Để có khu vực Góc.

Sau đó, bạn cần chỉnh sửa tệp page.tpl.php và thêm <php print render($corner); ?> nơi bạn muốn khu vực hiển thị. Nếu chủ đề của bạn không có page.tpl.php, hãy sao chép từ chủ đề cơ sở hoặc từ mô-đun hệ thống.

Những cạm bẫy phổ biến:

  • Nếu tệp theme.info không có vùng được khai báo, thì đó là sử dụng Drupal vùng mặc định. Nếu bạn muốn thêm, bạn sẽ phải khai báo lại các vùng mặc định. Tất nhiên, bạn có thể, xóa bất kỳ vùng nào nhưng vui lòng hỗ trợ các vùng được yêu cầu. Xem lại docs một lần nữa.

  • Thay đổi tệp .info hoặc thêm tệp mới vào chủ đề (như page.tpl.php) sẽ chỉ được chú ý sau khi bạn xóa bộ nhớ cache.

  • Omega, một chủ đề cơ bản rất phổ biến, sẽ không cần bất kỳ thay đổi nào trong page.tpl.php, chỉ là tệp .info. Nhưng bạn sẽ phải truy cập cài đặt chủ đề trong Giao diện người dùng và gán vùng của bạn cho một vùng.

4
Capi Etheriel

Thực hiện theo các bước dưới đây để tạo vùng tùy chỉnh trong chủ đề của bạn:

  1. Chuyển đến tập tin theme.info của bạn và thêm dòng này.

    regions[machine_name_of_your_region] = Name of your region
    
  2. Mặc dù bạn cũng có thể gọi các khối khu vực trong mẫu nút, nhưng bạn thường sẽ thêm khu vực vào mẫu trang của chủ đề. Đây thường là page.tpl.php hoặc nếu bạn có tệp mẫu tùy chỉnh cho các trang khác nhau, hãy chỉnh sửa những trang đó. Vùng mới sẽ chỉ xuất hiện trên các trang được tạo xung quanh mẫu bạn thêm vùng mới vào. Dán nó bất cứ nơi nào bạn muốn khu vực mới của bạn xuất hiện.

    <?php if ($page['machine_name_of_your_region']): ?>
      <div id="sidebar-first" class="column sidebar"><div class="section">
      <?php print render($page['machine_name_of_your_region']); ?>
      </div></div> <!-- /.section, /#sidebar-first -->
     <?php endif; ?>
    
  3. Cấu hình - Hiệu suất - Xóa tất cả bộ nhớ cache

2
Astha chauhan

Tạo một khu vực mới trong chủ đề

Bạn chỉ cần xác định nó trong hai tập tin.

  • Theme.info
  • Trang.tpl.php

Theme.info

;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;

regions[navigation]      = 'Navigation'
regions[header]          = 'Top Bar'
regions[highlighted]     = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region

Trang.tpl.php

Bây giờ kết xuất vùng này

  <?php if ($page['new_region']): ?>
      <div class="new_region_class">
        <?php print render($page['new_region']); ?>
     </div>
  <?php endif; ?>

Bây giờ Xóa tất cả bộ nhớ cache, Ở đây bạn đi, bạn có một khu vực mới trong chủ đề của bạn. Bạn có thể nhìn thấy nó tại trang cấu hình khối của bạn.

Để truy cập thêm http://drupal.org/node/171205

0
gsjha