Tạo tệp mẫu cho khối lượt xem


19

Có rất nhiều về các khối tùy chỉnh theo chủ đề, nhưng còn các khối được tạo bởi lượt xem thì sao?

Khối lượt xem của tôi có id: khối lượt xem-bài viết-danh sách-khối,

Tôi thử nhiều cách để đặt tên tệp mẫu, ví dụ: block - block - Views-post-list-block.tpl.php, nhưng tôi không thể tìm thấy tên tệp chính xác.


1
Các nhà phát triển Theme mô-đun có thể cho bạn biết tên của tập tin mẫu.
Oswald

Cảm ơn, nhưng tôi phát hiện ra rằng Themer cho D7 đôi khi không hoạt động trước đây.
Codium

Câu trả lời:


18

Chỉnh sửa góc nhìn của bạn. và Trong cài đặt "Nâng cao" của chi tiết Chặn của bạn, nhấp vào "Theme: Information". Một danh sách các tùy chọn của các tệp mẫu sẽ được hiển thị.

ví dụ: nếu khối của bạn có tên "danh sách bài đăng", hãy xem các tên có thể được liệt kê bởi tùy chọn "Thông tin chủ đề":

* Display output: views-view.tpl.php, views-view--posts-listing.tpl.php, views-view--default.tpl.php, views-view--block.tpl.php, views-view--posts-listing--block.tpl.php
* Style output: views-view-unformatted.tpl.php, views-view-unformatted--posts-listing.tpl.php, views-view-unformatted--default.tpl.php, views-view-unformatted--block.tpl.php, views-view-unformatted--posts-listing--block.tpl.php
* Row style output: views-view-fields.tpl.php, views-view-fields--posts-listing.tpl.php, views-view-fields--default.tpl.php, views-view-fields--block.tpl.php, views-view-fields--posts-listing--block.tpl.php
* Field Content: Title (ID: title): views-view-field.tpl.php, views-view-field--title.tpl.php, views-view-field--posts-listing.tpl.php, views-view-field--posts-listing--title.tpl.php, views-view-field--block.tpl.php, views-view-field--block--title.tpl.php, views-view-field--posts-listing--block.tpl.php, views-view-field--posts-listing--block--title.tpl.php 

ví dụ : khối của bạn có danh sách bài đăng tên và có kiểu không được định dạng , sau đó "Thông tin chủ đề" đề xuất tên views-view-unformatted--posts-listing--block.tpl.php(đây chỉ là một trong một số tên). bạn có thể sao chép views-view-unformatted.tpl.phptệp mẫu gốc (nằm trong / mô-đun / lượt xem / chủ đề) vào thư mục chủ đề hiện tại của bạn và đổi tên tệp này với tên được đề xuất : views-view-unformatted--posts-listing--block.tpl.php. sau đó thực hiện các thay đổi bên trong tệp mẫu của bạn. Nếu mẫu này không cho phép thực hiện các thay đổi mong muốn của bạn, hãy tìm các mẫu khác theo nhu cầu của bạn.

Cuối cùng, nếu bạn thêm một mẫu mới, hãy quét lại danh sách các tệp mẫu:

Quan trọng! Khi thêm, xóa hoặc đổi tên tệp mẫu, cần phải làm cho Drupal biết về các thay đổi bằng cách làm cho nó quét lại các tệp trên hệ thống của bạn. Bằng cách nhấp vào nút "Quét lại tệp mẫu", bạn xóa sổ đăng ký chủ đề của Drupal và từ đó kích hoạt quy trình quét lại này. Các mẫu được tô sáng (trong danh sách mẫu của bạn ở trên nút "Quét lại tệp mẫu") sau đó sẽ phản ánh trạng thái mới của hệ thống của bạn.

Cũng Theme Developer Mô-đun http://drupal.org/project/devel_themer đề xuất bởi Oswald có thể hữu ích để phát hiện khả năng mẫu / s để thay đổi các yếu tố cụ thể theo tiêu chí của bạn. Tôi không đề xuất mô-đun này được kích hoạt trong môi trường sản xuất (trong trường hợp của tôi, thậm chí tôi đã vô hiệu hóa mô-đun trong môi trường thử nghiệm, vì dường như có mâu thuẫn với quan điểm, nhưng khi cần thiết, nó rất hữu ích)


Không, nó không giúp với đầu ra khối lượt xem chủ đề. Nó chỉ dành cho nội dung xem chủ đề, nhưng tôi muốn chặn chủ đề bao
trùm

Xin chào, vui lòng xem lại danh sách các mẫu được chỉ định bởi "Thông tin chủ đề" trong Chế độ xem-> Chặn, có một số mẫu kết thúc bằng --blocktên của anh ấy. Nhớ các mẫu reescan và nhớ đặt mẫu bên trong thư mục của chủ đề hiện tại của bạn (sao chép mẫu đã chọn từ các mô-đun / lượt xem / chủ đề). mẫu phải có tên được đề xuất bởi danh sách "Thông tin chủ đề". Nó hoạt động.
cigotete

@drupality, tôi đã thêm một ví dụ với các bước để xem lại quy trình, vui lòng xem lại trong đoạn " ví dụ ", trong câu trả lời.
cigotete

Cảm ơn nhưng tôi cũng không thể loại bỏ trình bao bọc div class = "content". Tôi chỉ có thể thay đổi html được tạo bởi lượt xem
Codium

2
@ moon.watcher Tôi nghĩ bạn hiểu lầm. Kết thúc tệp mẫu bằng "khối" không ảnh hưởng đến chủ đề của chính khối đó. Nó làm cho tệp mẫu đó cụ thể cho khối mà chế độ xem xuất ra (vì một chế độ xem có thể xuất nhiều khối từ cùng một chế độ xem). Nội dung theo chủ đề từ chế độ xem là đầu ra cho công cụ theo chủ đề khối và được gói trong phần đánh dấu được cung cấp bởi block.tpl.php. Điều mà drupality đang cố gắng làm (cũng như tôi) là thay đổi chủ đề của chính khối.

18

Đối với những người tìm kiếm câu trả lời trong D7, theo Nhà phát triển chủ đề (còn gọi là devel_themer), bạn có thể tạo ghi đè tpl cho khối của chế độ xem bằng quy ước:

chặn - lượt xem-- {view's machine_name} -block

Do đó trong ví dụ cho bạn sẽ nhận được

chặn - lượt xem-- sau khi niêm yết -block.tpl.php

Không có khoảng trắng (tôi không thể chỉnh sửa chính xác để cho phép tất cả là nội tuyến.


Tôi xác nhận noTxt là chính xác, đi đến phần chặn và chỉnh sửa khối, url sẽ hiển thị cho bạn tên khối của chế độ xem với dấu gạch dưới, my_view_name-block. thay thế dấu gạch dưới để my-view-name và sử dụng định dạng này: "block - Views - my-view-name = block.tpl.php"
Nevos

2
Có, đây là câu trả lời đúng hơn, vì vậy: chặn - lượt xem - VIEWNAME-MachINENAMEOFDISPLAY.tpl.php Chú ý đến dấu gạch ngang đơn trước tên Máy! Tên máy = theo mặc định, nó được đặt tên là khối, khối 1, v.v., nhưng bạn có thể đổi tên nó trong giao diện người dùng.
Nikit

7

Vào cuối nửa giờ thay đổi tên tpl, đây là kết luận cuối cùng của tôi:

block--views--[view-name]-[display-name].tpl.php

[tên xem] - Phần [tên hiển thị] có thể được tìm thấy như noTxt đã nói hoặc tham gia với một '-' tên id của chế độ xem và tên id của màn hình hiển thị, phần chặn ở cuối không chính xác .


5

Trong Drupal 8

nhập mô tả hình ảnh ở đây

Mẫu trường sẽ là:

view-view-field - [view-name] - block-1.html.twig


Câu hỏi này là về D7 ... Tại sao Drupal 8 trong câu trả lời của bạn?
Pierre.Vriens

@ Pierre.Vriens vì câu hỏi phổ biến trong lượt xem (không phải mô-đun), tôi hình dung tôi nên thêm câu trả lời phiên bản D8 vào đây.
Không có Sssweat

Bây giờ đó là một ý tưởng thú vị ... Làm thế nào về việc làm tương tự cho những câu hỏi + 21K này sau đó?
Pierre.Vriens

@ Pierre.Vriens hầu hết những người không phổ biến.
Không có Sssweat

1
Đã thêm 8 thẻ, đẹp;)
Codium

1

block--views--[view-name]-[display-name].tpl.phpnên được đổi thành block--views--[view-name]-[machinename].tpl.php.

Bạn sẽ tìm thấy tên máy từ phần nâng cao quan điểm của bạn, nơi nó được viết khác


1

Các mẫu tên tệp mô tả ở trên hoạt động KHÔNG GIỚI HẠN tên xem của bạn + tên hiển thị dài hơn một số ký tự nhất định !! Tôi đã bị bắt bởi điều này và không thể tìm thấy lý do tại sao một tệp mẫu kết thúc bằng ... block.tpl.phpđang hoạt động và màn hình sau ... block-1.tpl.phpkhông hoạt động.

Hóa ra Lượt xem thay thế tên máy bằng hàm băm MD5 nếu tên quá dài. Nếu bạn muốn chắc chắn về tên mẫu bạn sẽ sử dụng, hãy thêm $conf['theme_debug'] = TRUE;vào settings.php của bạn và sau đó xem nguồn trang. nếu bạn tìm thấy một cái gì đó như block--views--d131dd02c5e6eec4.... bạn nên rút ngắn tên máy của chế độ xem (nếu bạn quản lý làm điều đó ... Đó không phải là tên dễ đọc của con người). Hoặc nếu không, bạn cần sử dụng một tệp mẫu với tên ngớ ngẩn đó.

Xem thêm

Tên máy của Lượt xem đang bị "băm" (?)

https://www.drupal.org/node/346602


0

Kiểm tra trang này https://www.drupal.org/node/1089656 và thông tin về dấu gạch dưới mà chế độ xem sử dụng:

Ngoài ra một ví dụ nữa với Chế độ xem, nếu bạn có một khối được tạo bởi các chế độ xem với tên xem "front_news" và id hiển thị "block_1" thì đề xuất móc chủ đề sẽ là: khối - lượt xem - front-news-block-1. tpl.php (lưu ý, khi bạn có dấu gạch dưới trong id hiển thị hoặc trong tên xem - bạn phải chuyển đổi chúng thành một dấu gạch ngang)


0

Đối với các khối bên trong bảng điều khiển, giải pháp được cung cấp bởi noTxt và khác không hoạt động. Cú pháp sau đó sẽ là (không có dấu gạch dưới!):

panels-pane-block--views-[view-name]-[display-machine-name].tpl.php

Cảm ơn người dùng3074436 đã cung cấp cài đặt $ conf ['theme_debug'] để tìm ra trường hợp ghi đè chủ đề đặc biệt này


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.