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.
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.
Câu trả lời:
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.
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.
Tạo vùng cho chủ đề Drupal 7 không khác với tạo vùng cho vùng 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à:
mytheme_regions()
chức năng 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 regions[]
chỉ thị, đó là những gì được thực hiện với chủ đề Drupal 6.render()
, thay vì in nội dung của biến.Các vùng Drupal 7 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 vùng có tên là 'trợ giúp', theo mặc định có cùng nội dung của $help
biến được sử dụng bởi Drupal 6.
Các vùng chủ đề được xác định trong tệp .info chủ đề của bạn - xem tài liệu . Chỉ cần thêm một dòng với regions[corner] = Corner
để có được một khu vực Góc.
Sau đó, bạn cần chỉnh sửa tệp page.tpl.php và thêm vào <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 vùng mặc định của Drupal. 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ỳ khu vực nào nhưng vui lòng hỗ trợ các khu vực cần thiết. Xem tài liệu 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.
regions[content] = Content
khu vực duy nhất cần thiết trong D7? drupal.org/node/171205#regions dường như ngụ ý này, nhưng sau đó drupal.org/node/171224 nói rằng các khu vực cần thiết là content
, help
, page_top
vàpage_bottom
content
chắc chắn là rất quan trọng. help
được hỗ trợ bởi lõi (để xuất thông báo trợ giúp), page_bottom
có lẽ là nơi js dưới cùng được in và page_top
dường như được sử dụng cho các thanh điều hướng như thanh công cụ lõi.
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:
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
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 cả 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; ?>
Cấu hình - Hiệu suất - Xóa tất cả bộ nhớ cache
Bạn chỉ cần xác định nó trong hai tập tin.
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
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.
Để biết thêm truy cập http://drupal.org/node/171205