Theming CCK field

10 contenuti / 0 new
Ultimo contenuto
Theming CCK field

Vengo al dunque.

Tramite CCK ho creato una sorta di galleria fotografica.
Il codice HTML generato, per i miei gusti, è fin troppo poco semantico ed aggiunge fin troppi div annidati per ogni singolo field.
Per creare questa galleria ho aggiunto un tot di field.

Per eliminare codice html superfluo mi sono creato un file content-field-field_foto1.tpl.php e l'ho ripulito.
Tutto ok.

Quel che mi domando è, visto che ho creato un tot di field, devo necessariamente creare tanti content-field-field.....tpl.php tanti quanto sono i field inseriti? Non esiste una maniera per modificare un solo file tpl.php?

Avevo pensato di fare l'overriding di content-field.tpl.php ma così facendo lo applico globalmente anche per altre tipologie di contenuto.

Spero di essere stato chiaro :-)

Il template content-field.tpl.php viene usato per stampare ogni campo CCK, come hai giustamente notato.

Quello che fa confusione credo è che un campo CCK (facciamo field_foto) può avere da zero a n instanze. Esempio galleria, il campo è uno è si chiama sempre field_foto ma può avere nessuno, 1,2,3, ecc foto, per il template questo si trovano nel variabile $items, C'è anche un booleano $field_empty che è TRUE quando non ci sono instanze.

Quindi se vogliamo creare HTML particolare per questo specifico campo CCK ed i suoi instanze, dobbiamo:
1. Copiare content-field.tpl.php da sites/all/modules/cck/theme nella cartella del nostro tema
2. Fare un altro copia di questo file, sempre nella cartella del nostro tema rinominandolo content-field-field_foto.tpl.php
3. Modificare quest'ultimo come piace e pare...

Più imparo, più dubito.

Ho già fatto come dici ma me lo applica sempre al primo field.
Io ho creato otto field differenti chiamati _foto1, _foto_2,....,_foto8 è forse questo il problema?

Si. Tu hai creato 8 field mentre era solo necessario creare un field specificando (per esempio) 'Number of values' a 8.

Più imparo, più dubito.

Effettivamente lo avevo intuito, solo che per necessità, "diciamo" di usabilità (sarebbe meglio dire di imbecillità :D) sono stato costretto a fare così.
Mi sa che cercherò di far cambiare idea!
Grazie mille per l'aiuto.

ps: ma che fine ha fatto il cerca del forum? :p

Dimenticavo, ma se imposto un solo field che accetta istanze multiple, poi posso far si che nell'anteprima mi appaia una sola istanza, ad esempio la prima?

In poche parole, solo la prima foto delle otto inserite.

Si. Sempre in content-file-file_foto.tpl.php puoi usare il variabile $teaser per controllare se è antiprima (teaser in inglese) o no.

Più imparo, più dubito.

Capito, quindi con quella variabile posso decidere quale delle, ammettiamo, 8 istanze dello stesso filed far apparire l'anteprima?
Eventualmente se costruisco una vista, posso fare lo stesso? Cioè prendere solo la prima istanza dello stesso field? (SI :D)

Grazie per la pazienza e delucidazioni, è da veramente poco che mi sono avvicinato a Drupal e sto cercando di capirlo bene. :-)

ps: premesso che so che in Italiano esiste bene poco ma c'è un buon libro anche in Inglese che spieghi in maniera approfondita Drupal, come temizzarlo, api e come è strutturato? Ho già esperienze in php, html, etc... .

Più imparo, più dubito.

Denghiu :)