Salve,
ho creato dei content type via modulo.
Adesso sto mettendo mano al tema, e ho necessità di creare i tpl per i node per poter visualizzare tutte le informazioni correttamente.
Non so come si faccia, cioè, non riesco a programmare la corrispondenza tra l'oggetto node caricato e le variabili contenute nello script tpl.
Per ora mi son limitato a copiare node.tpl.php avendo cura di inserire il nome corretto: node-.tpl.php.
Qualche guida, link, suggerimento, aiuto?
Per ogni incertezza su quanto scritto, basta chiedere.
Grazie.
PS: non ho utilizzato né CCK, Views e compagnia bella. Bensì un semplice hook_node_info, etc.
Mi auto rispondo in parte.
È sufficiente inserire in un tema uno script di nome node-nomeType.tpl.php che alla prima installazione lo carica e, non appena ha un nodo di quel tipo, richiama tale tpl.
In questi tpl si ha l'oggetto $node con i dati grezzi, così come si trovano su DB - a meno che durante il percorso del $node qualcuno non gli modifichi i dati volontariamente -.
Andando a zonzo presso il modulo forum, ho notato che tramite la hook_preprocess (a questo punto se implementato su modulo o su template.php è lo stesso) è possibile creare le variabili che il tpl poi utilizzerà in fase di rendering - questo lo sapevo già, ma credevo esistesse qualche altro meccanismo - . Quindi tramite questo hook è possibile interpretare il dato grezzo di $node e di darlo in pasto al tpl bello pulito.
E qui potremmo aver detto "risolto il problema". Ma voglio inserire altri dati e vorrei sapere se son corretti.
Dunque, prima si fa uso della coppia modulo - tema, e molte cose sono risparmiate. Nel caso in cui volessi creare tutto via modulo, ho visto le seguenti cose:
Qualcuno che mi sappia dare qualche speigazione sul giro di funzioni effettuato? Così avrei una curiosità in meno... :P
Ok, solitamente non faccio mai moduli come quelli che si trovano sul repository, bensì si tratta solitamente di una coppia modulo - tema creata ad hoc per il committente - ok, molte volte riutilizzo i moduli fatti per altri, ma la logica di sviluppo quella resta -.
Aggiungo qualche link...
Si. viene inserito da template_preprocess_node
Si in parte. Non solo l'oggetto grezzo, ma anche i pezzi eleborati. Vedi http://api.drupal.org/api/drupal/modules--node--node.tpl.php/6, e fai un
dsm($node)
nel template (Devel abilitato).Esatto. Anch'io ho fatto un piccolo esperimento: http://www.drupalitalia.org/node/9714
Sei più o meno sulla strada giusta. Ogni elemento fornito da hook_theme, corresponde ad una funziona theme_xxx(), basta cercare theme_forum... negli api.
Più imparo, più dubito.
Perfetto.
Con quest'altro materiale proseguo il mio cammino...
Grazie.