Dal alan şablonuna değişken nasıl eklenir?


9

Bir düğüm sayfasında, başka bir alanın (örnek alanın) yanındaki çıktıya düğüm başlığını eklemek istiyorum.

Yeni oluşturduğumdan field--field-example.html.twigancak alan şablonunda mevcut olmadığı için düğüm başlığı değişkenine erişemiyorum.

Ben tema preprocess içine değişken eklemek gerekir: themename.theme.

Değişkeni nasıl ekleyebilirim ve themename.themeiçindeki ilgili giriş ne olur field--field-example.html.twig?


Şablonda kullanmak istediğiniz alandan değeri ayıklamak için hook_preprocess_node komutunu kullanın.

@IvanJaros, şimdi soruyu güncelledim.
Taylor Taff

Yanıtlar:


15

Düğüm başlığını .theme dosyası aracılığıyla bir değişken olarak iletmeyi sorduğunuzdan, böyle bir şey yapmak için template_preprocess_field kullanabilirsiniz :

  function themename_preprocess_field(&$variables, $hook) {
    if ($variables['element']['#field_name'] == 'field_example') {
      $variables['node_title'] = $variables['element']['#object']->getTitle();
    }
  }

sonra field--field-example.html.twigsadece {{node_title}}düğüm başlığını oluşturmak için kullanabilirsiniz .

Ayrıca aşağıdaki 4k4'ün cevabına bakınız.


Cevabınızı doğru olarak 4k4 tarafından sağlananı içerecek şekilde düzenlemeye çalıştım, ancak düzenlemem ilgili olmadığı düşünüldüğünde reddedildi ...
Taylor Taff

@TaylorTaff düzenlemeleri kim onaylar? Hiç görmedim. Aşağıdaki cevabı eklemek için düzenleme yapmaya çalışacaktır.
Janey

@Janey yeterli rozeti olan birçok kullanıcı bu tür düzenlemeleri inceleyebilir. Gelecekteki inceleme için yanıtlarınıza yer işareti koydum. Bir soru daha var: $variables['element']['#object']->getTitle();Katlanabilir olduğundan emin misiniz preprocess_field? Bu aslında buraya soruma cevap Çünkü drupal.stackexchange.com/questions/197497/...
Nilsun

11

Alan şablonunun değişkenlerinde kullanılabilir bir düğüm nesnesi olduğundan, bir önişleme işlevine ihtiyacınız yoktur.

Bir alan şablonundaki düğümü kullanarak başlığı almak için:

{{ element['#object'].label }}

Bu soruya cevap veriyor, ancak Janey'nin diğer cevabı daha faydalı olacağı için bunu bu cevaba ekledim ve kabul edilmiş olarak işaretledim.
Taylor Taff

1
Ancak sorunuz yanlış varsayımdaydı: "ancak alan şablonunda bulunmadığı için düğüm başlığı değişkenine erişemiyorum."
4k4

Evet 4k4, haklısın, sorum yanlıştı.
Taylor Taff
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.