Riscrivi l'output del campo CCK senza utilizzare i modelli


7

Il modulo Views ha la bella opzione per riscrivere l'output di un campo. Ciò consente di adattare l'output dei campi CCK utilizzando i token senza dover creare un modello per quella vista.

Esiste un modulo che consentirebbe una funzionalità simile per la scheda "Visualizza campi" di un tipo di contenuto? Devo modificare leggermente l'output del campo per teaser e body, ma non voglio creare un modello completo.

Attualmente sto usando Contemplate per questo, ma è più complicato del necessario e inutile se non si ha familiarità con l'API PHP di Drupal. È anche fastidioso che devo modificare il modello ogni volta che aggiungo un campo aggiuntivo al tipo di contenuto, ho solo bisogno di riscrivere alcuni campi, non l'intero corpo o il teaser.

Quindi, quello che vorrei avere è un modo semplice per riscrivere ogni output del campo CCK usando qualsiasi token disponibile per quel tipo di contenuto. Esiste qualcosa del genere?

Risposte:


5

Sembra che tu stia cercando il modulo Formatter personalizzati , molto simile a Contemplate, ma specificamente per creare Formatter di campo da utilizzare tramite la pagina Impostazioni di visualizzazione o Viste.

I formattatori personalizzati possono essere creati con token o codice PHP puro.

Inoltre, i formattatori personalizzati possono essere esportati come hook drupal nativi o in un formato esportabile di funzionalità personalizzate.


4

Se stai solo cercando di modificare il markup, vale la pena provare Semantic CCK .

Il CCK semantico è stato creato per offrire agli utenti i mezzi per personalizzare l'output HTML dei campi CCK. È stato in parte ispirato dal modulo altamente raccomandato Semantic Views che fornisce le stesse funzionalità per Views.

Drupal 7

Una versione Drupal 7 di Semantic CCK è attualmente in fase di sviluppo: Semantic Fields .


2

L'uso del modulo Contemplate non è raccomandato poiché inserisce il codice PHP nel database che è generalmente considerato una vulnerabilità di sicurezza e non performante.

Puoi considerare di definire i tuoi formattatori di campo usando hook_field_formatter_info () . Ciò consente di definire callback personalizzati in grado di gestire ciascun campo. Ecco un semplice tutorial su come funziona per Drupal 6.

Sfoglia l'implementazione di hook_field_formatter_info () di altri moduli per vedere come funziona. In Drupal 6 si collega direttamente con hook_theme () mentre Drupal 7 usa hook_field_formatter_view () .



0

Sto combattendo con questo stesso problema anche da qualche tempo.

Non riesco / non voglio usare ...

  1. Contempla per ragioni di architettura mediocre.
  2. Display Suite, che è eccezionale ma eccessivo e in realtà non consente semplici modifiche ai campi.
  3. Formatter personalizzati, poiché finisce di nuovo con PHP nel database per più campi valore.
  4. Modello di campo perché sto solo aggiungendo una riga di testo con l'elemento.
  5. CCK semantico perché altera solo gli elementi e le classi.
  6. hook_preprocess o altre soluzioni basate su codice perché ne ho bisogno configurabile.

È un vero peccato, quando tutto quello che devo fare è aggiungere una descrizione del campo CCK per visualizzare l'output. Questo dovrebbe in realtà essere piuttosto semplice.

Sembra che tu abbia bisogno di formattatori personalizzati.


n / m questa funzionalità è stata aggiunta a Semantic CCK 1.4
doublejosh il

hai trovato una soluzione facile da gestire con buone prestazioni? in drupal6 la buona soluzione consisteva spesso nell'utilizzare la ['vista'] dell'oggetto nodo e combinarla con una formattazione del modello di nodo. output molto pulito e confortevole grazie all'uso di ['view'] nel 90% di tutti i casi d'uso. in drupal 7 abbiamo di nuovo le divinità, perché render () produce un sacco di sovraccarico ...

Sembra Display Suite quindi drupal.org/project/ds
doublejosh il

Formatter personalizzati memorizza le informazioni nel database, ma il modulo è semplicemente un'utilità, quindi una volta creato il Formatter nel database lo esporti e non hai più il problema del codice nel database :)
Decifra il



0

Vorrei utilizzare il modulo Filtro token , per specificare i valori token nei campi CCK con filtri di input. Ecco un estratto al riguardo dalla pagina del progetto del modulo:

... un modulo molto semplice per rendere disponibili i valori token come filtro di input.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.