Puncte:2

Care este diferența/scopul cheilor „conținut” și „elemente”, în preprocesare?

drapel jp

eu folosesc hook_preprocess_node si privind $variabile. Văd că există două chei similare: conţinut și elemente. Văd că există o comentați în codul de bază:

  // Variabilă $content utilă pentru șabloane.

lângă codul care copiază tot elemente cheile în conţinut... nu sunt sigur De ce este de ajutor, Cum este diferit, și când unul ar folosi elemente sau conţinut pentru a atinge un anumit scop.

Aceasta este o întrebare generală, dar sarcina mea este că am două câmpuri de referință pentru termeni de taxonomie separate și doresc să le combin, în ordine alfabetică după numele termenului, într-o singură listă pentru prezentare.

Puncte:2
drapel cn

elemente este numele variabilei definit în theme_hook() pentru a deține elementele care pot fi randate (pentru nod acesta este matricea de construire a entității). Preprocess este apoi responsabil să pregătească variabilele pentru randare, cum ar fi conţinut.

Dacă scopul dvs. este să modificați rezultatul șablonului, verificați mai întâi ce variabile sunt tipărite efectiv. Într-un șablon de nod, nu are sens să se schimbe elemente în preprocesare, orice modificări pe care le faceți vor fi eliminate. Cu toate acestea, puteți face acest lucru în procesul de construire, de exemplu în hook_entity_view_alter().

drapel jp
Deci modulul *node* generează o matrice de randare cu toate datele nodului în matrice de randare sub `'elements'`. Apoi `template_preprocess_node()` setează valorile implicite pentru nod, care este de unde provine întregul *copy `elements` la `content`*. Deci, aceasta înseamnă că „elementele” sunt lăsate acolo doar „în caz că” (?), dar că, în ceea ce privește continuarea procesului de randare, „conținutul” este ceea ce contează acum. Cam asta e corect?
4uk4 avatar
drapel cn
Da, dar în cazul dvs. s-ar putea să doriți să schimbați matricea de compilare înainte de a ajunge la cârligul de preprocesare. Se pare că doriți să modificați matricea de construcție, nu să temați rezultatul.
drapel jp
Mulțumesc, am început [o altă întrebare](https://drupal.stackexchange.com/questions/309299/render-two-taxonomy-fields-in-one-alphabetical-list/309300#309300) pentru acea parte a sarcină, pentru a menține lucrurile mai clare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.