Tema katmanını kullanarak bir düğümün fragmanını programlı olarak nasıl oluşturabilirim?


10

Tema katmanını kullanarak bir düğümün fragmanını programlı olarak nasıl oluştururum?

Yanıtlar:


20

node_view() düğümleri oluşturma için standart işlevdir, ör.

$node = node_load(1);
$view = node_view($node, 'teaser');
$rendered = drupal_render($view);

nodeDüğüm modülü (in node_theme()) tarafından tanımlanan bir tema var ama aslında hiç kullanıldığını görmedim.


1
Node_theme (), tema sisteminin öğe için bir .tpl.php dosyası kullanmasına ve önişleme işlevlerine izin vermesine izin vermez mi?
— mpdonadio

Evet, tema katmanını atlamaktan endişeliyim. Eğer bunu yapsaydım, içine girmek isteyen diğer modüller bunu yapamazdı. En azından bence bu doğru mu?
— Lester Peabody

1
Uygulama kodunu görüntülerseniz, api.drupal.org/api/drupal/modules%21node%21node.module/function/… analiz ettikten sonra , Drupal'a kullanmasını söyleyen $build += array(bir #themeözellik var. tema sistemi. Yanlışsam düzelt. Şimdi Drupal API'sını 'almaya başladım :)
— Lester Peabody

@MPD Evet, bunu çok iyi açıklamamıştım, daha önce hiç görmediğim bir telefon görmemiştim theme('node', .... Aslında bu işe yaramazdı çünkü kendisini render elementbunun yerine sahip olarak tanımlar variables.
— Clive

Üzerinde Nokta @Lester, tema fonksiyonları, 'normal' yolu (çağırmak için 2 yol vardır theme('theme_name', $args)sözde kullanarak ve render elements. hook_theme()Docs oldukça iyi açıklamak,% 100 sezgisel değil ama bildiğiniz bir kez, gerçekten kullanışlı. Kullanma node_view()irade tema katmanını asla atlamayın, bu yüzden iyi olmalısınız :)
— Clive
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.