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.