Görünümler bloğu için şablon dosyası oluştur


19

Özel blokları temalama hakkında çok şey var, ancak görünümler tarafından oluşturulan bloklar ne olacak?

Görünümler bloğumun kimliği var: block-views-posts-listeleme bloğu,

Şablon dosyasını adlandırmak için birçok yol deniyorum, ex: block - block - views-posts-listeleme-block.tpl.php, ancak doğru dosya adını bulamıyorum.


1
Tema geliştirici modül size şablon dosyasının adını söyleyebilir.
Oswald

Teşekkürler, ancak Demer için Themer'ın bazen düzgün çalışmadığını tespit ediyorum.
Codium

Yanıtlar:


18

Görünümünüzü düzenleyin. ve Blok ayrıntılarınızın "Gelişmiş" ayarlarının altında simgesini tıklayın "Theme: Information". Şablon dosyalarının seçeneklerinin bir listesi görüntülenecektir.

örneğin, bloğunuzda bir "gönderiler listesi" adı varsa, "Tema Bilgileri" seçeneğinde listelenen olası adlara bakın:

* 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 

örneğin : bloğunuz ad yayınları listesine sahiptir ve stil biçimlendirilmemişse , "Tema Bilgileri" adı önerir views-view-unformatted--posts-listing--block.tpl.php(bu, birkaç addan yalnızca biridir). orijinal views-view-unformatted.tpl.phpşablon dosyasını (/ modules / views / theme içinde bulunur) geçerli tema dizininize kopyalayabilir ve bu dosyayı önerilen adla yeniden adlandırabilirsiniz views-view-unformatted--posts-listing--block.tpl.php. ardından şablon dosyanızın içinde değişiklik yapın. Bu şablon istediğiniz değişikliklerin yapılmasına izin vermiyorsa, ihtiyaçlarınıza göre başka şablonlar arayın.

Sonunda, yeni bir şablon eklerseniz, şablon dosyaları listesini yeniden tarayın:

Önemli! Şablon dosyaları eklerken, silerken veya yeniden adlandırırken, sisteminizdeki dosyaları yeniden tarayarak Drupal'ın değişikliklerden haberdar olması gerekir. "Şablon Dosyalarını Yeniden Tara" düğmesini tıklatarak Drupal'ın tema kayıt defterini temizlersiniz ve böylece bu yeniden tarama işlemini tetiklersiniz. Vurgulanan şablonlar ("Şablon Dosyalarını Yeniden Tara" düğmesinin üzerindeki şablon listenizde) sisteminizin yeni durumunu yansıtır.

Ayrıca Oswald tarafından önerilen Tema Geliştirici Modülü http://drupal.org/project/devel_themer kriterlerinize göre belirli öğeleri değiştirmek için olası şablonları tespit etmekte yararlı olabilir. Bu modülün üretim ortamlarında etkinleştirilmesini önermiyorum (benim durumumda bile, test ortamlarında modülü devre dışı bıraktım, çünkü görünümlerle çakışıyor gibi görünüyor, ancak gerektiğinde çok yararlı oldu)


Hayır tema görünümleri blok çıktısı ile yardımcı olmaz. Sadece tema görünümü içeriği için, ancak görünümümü saran tema bloğu istiyorum
Codium

Merhaba, lütfen Görünüm-> Engelle ayarlarında "Tema Bilgileri" ile belirtilen şablonların listesini tekrar gözden geçirin, --blockadıyla biten birkaç şablon var . Yeniden tarama şablonlarını hatırlayın ve şablonu geçerli temanızın dizinine yerleştirmeyi unutmayın (seçilen şablonu modüller / görünümler / tema'dan kopyalayın). şablonda "Tema Bilgileri" listesinde önerilen ad bulunmalıdır. İşe yarıyor.
cigotete

@drupality, ben süreci gözden adımlarla bir örnek ekledim, lütfen cevap " örneğin " paragrafında gözden geçirin .
cigotete

Teşekkürler ama varsayılan div class = "content" sarmalayıcısını da kaldıramıyorum. Ben sadece görünümler tarafından oluşturulan html değiştirebilir
Codium

2
@ moon.watcher Sanırım yanlış anladın. Şablon dosyasını "block" ile bitirmek, bloğun kendisinin temasını etkilemez. Bu şablon dosyasını, görünümün çıktısını aldığı bloğa özgü hale getirir (bir görünüm aynı görünümden birden fazla blok çıktısı alabildiğinden). Görünümdeki temalı içerik, blok tema motoruna gönderilir ve block.tpl.php tarafından sağlanan biçimlendirmeye sarılır. Drupality'nin (benim gibi) yapmaya çalıştığı şey, bloğun temasını değiştirmektir.

18

Tema Geliştiricisine (diğer adıyla devel_themer) göre D7'de cevabı arayanlar için, sözleşmeyi kullanarak bir görünüm bloğu için bir tpl geçersiz kılma oluşturabilirsiniz:

block - views-- { view'ın makine_adı } -block

Bu nedenle örnekte size

blok - görünümler - post-listeleme -block.tpl.php

Boşluklar olmadan (tüm satır içi olmasını sağlamak için bunu düzgün düzenleyemedim.


NoTxt'nin doğru olduğunu onaylıyorum, blok bölümüne gidin ve bloğu düzenleyin, URL size görünümün blok adını alt çizgi, my_view_name-block ile göstermelidir. alt görünümleri benim görünüm-adım ile değiştirin ve şu biçimi kullanın: "block - views - my-view-name = block.tpl.php"
Nevos

2
Evet, bu daha doğru bir cevaptır, öyleyse: block - views - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php Makine adından önce tek bir kısa çizgiye dikkat! Makine adı = varsayılan olarak blok, blok-1 vb. Olarak adlandırılır, ancak görünümler arayüzünde yeniden adlandırabilirsiniz.
Nikit

7

Yarım saat sonunda tpl isimlerini değiştirerek, nihai sonucum:

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

[view-name] - [display-name] kısmı noTxt gibi veya '-' ile görünümün kimlik adı ve görünüm ekranının kimlik adı gibi bir araya gelebilir, sondaki -block doğru değil .


5

Drupal 8'de

resim açıklamasını buraya girin

Alanlar şablonu şöyle olacaktır:

görünümler-view-alanları - [view-name] - blok-1.html.twig


Bu soru D7 hakkındaydı ... Neden cevabınızdaki Drupal 8 ?
Pierre.Vriens

@ Pierre.Vriens soru (modül değil) görünümleri popüler olduğundan, ben burada bir D8 sürümü cevap eklemek gerektiğini düşündüm.
Sssweat yok

Şimdi bu ilginç bir fikir ... Bu + 21K soruları için de aynısını yapmaya ne dersiniz ?
Pierre.Vriens

Pierre.Vriens bunların çoğu popüler değil.
Sssweat yok

1
8 etiket eklendi, güzel;)
Codium

1

block--views--[view-name]-[display-name].tpl.phpolarak değiştirilmelidir block--views--[view-name]-[machinename].tpl.php.

Makine adını, diğer yazılı olduğu görünümler gelişmiş bölümünde bulabilirsiniz.


1

Yukarıda açıklanan dosya adı modelleri, görünüm adınızın + görünen adınızın belirli bir karakterden uzun OLMADIĞINI ÇALIŞIR! Bunu yakaladım ve ... block.tpl.phpile biten bir şablon dosyasının neden çalıştığını ve aşağıdaki ekranın block-1.tpl.phpçalışmadığını bulamadım.

Görünüşe göre ad çok uzunsa, makine adını bir MD5 karmasıyla değiştirir. Kullanmanız gereken şablon adından emin olmak istiyorsanız $conf['theme_debug'] = TRUE;, settings.php dosyasını ekleyin ve ardından sayfa kaynağına bakın. ... gibi bir şey bulursanız block--views--d131dd02c5e6eec4... görünümün makine adını kısaltmanız daha iyi olur. Ya da bu saçma isimle bir şablon dosyası kullanmanız gerekir.

Ayrıca bakınız

Görünümler Blok'un makine adı "karma" (?)

ve

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


0

Bu sayfayı https://www.drupal.org/node/1089656 ve görünümlerin kullandığı alt çizgiler hakkında bilgi edinin:

Ayrıca Views ile ilgili bir örnek daha, "front_news" görünüm adına ve "block_1" görünen kimliğine sahip bir bloğunuz varsa, tema kanca önerisi şöyle olur: block - views - front-news-block-1. tpl.php (bir görüntüleme kimliğinde veya bir görünüm adında alt çizgileriniz olduğunda dikkat edin - bunları tek bir tireye dönüştürmeniz gerekir)


0

Panel bölmelerinin içindeki bloklar için noTxt ve diğerleri tarafından sağlanan çözüm çalışmaz. Sözdizimi daha sonra (alt çizgi yok!) Olur:

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

Bu istisnai temayı geçersiz kılma durumunu anlamak için $ conf ['theme_debug'] ayarını sağladığı için user3074436'ya teşekkürler


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.