Allora, ho già chiesto su drupal.org (http://drupal.org/node/24469) ma non ho avuto risposta,
provo qui =)
La domanda è: come posso cambiare l'html generato dai moduli ?
In pratica, se voglio dare uno stile alla pagina usando phptemplate creo un file page.tpl.php nella directory del tema e li applico i miei cambiamenti. Idem per i blocchi, i commenti etc...
Ma se ho dell'html generato da un modulo (plugin) posso cambiare il contenuto generato senza modificare il file qualcosa.module ? Ovvero utilizzando solo i file del tema...
Grazie in anticipo,
-Gino
La bellezza di Drupal è proprio la sua semplicità e pulizia. Ogni modulo restituisce codice pulito, cioè solo html che ne descrivano solo la struttura dell'informazione (c'è un ritorno al vero significato dell'html, come vogliono le linee guida del w3c). Le caratteristiche "visive" sono giustamente lasciate al css. Detto questo capirai bene come sarebbe sbagliato modificare il modulo (cosa che giustamente tu non vuoi fare).
Non ti so dire se quello che tu chiedi si possa fare, anche perchè non ho ben capito cosa tu intenda con "posso cambiare il contenuto generato". Non mi sembra ci sia limite allo stile, ti basta variare il tema stesso: il css per lo stile di presentazione (tutte le caratteristiche visive dell'oggetto) ed il template per la struttura fisica delle informazioni (elenchi puntati, titoli ecc...). Questo è quanto chiede il w3c e questo è quanto offre drupal, nulla di paragonabile al codice sporco come una fogna di Calcutta (ed anche totalmente inaccessibile) generato da altri cms, per fare un esempio phpnuke & c.
Per farti capire meglio il concetto, ti invito a visitare le pagine sotto, la cui informazione è la stessa, ma varia SOLO il CSS e di conseguenza lo stile stesso del sito:
http://www.csszengarden.com/?cssfile=/157/157.css&page=1
http://www.csszengarden.com/?cssfile=/158/158.css&page=1
http://www.csszengarden.com/?cssfile=/170/170.css&page=0
http://www.csszengarden.com/?cssfile=/169/169.css&page=0
http://www.csszengarden.com/?cssfile=/167/167.css&page=0
http://www.csszengarden.com/?cssfile=/165/165.css&page=0
http://www.csszengarden.com/?cssfile=/161/161.css&page=1
Ciao
Gianni Giusti
Si è possibile modificare lo stile con il css, ma a me serviva modificare il markup.
Ad esempio nel modulo trackback, per prevenire lo spam credo, il link del trackback non è 'clickabile' (ovvero non è messo tra <a> ma è del testo semplice). Per modificare questo comportamento (per metterlo come link <a>) devo cambiare l'html che produce il modulo. La mia domanda volgeva in questo senso, come è possibile farlo senza agire sul modulo... grazie per la risposta prolissa in ogni caso =)
Il markup lo cambi nel template, se ti viene già restituito è ovvio che l'unico modo per far ciò che vuoi è:
variare il comportamento del modulo (secondo me è una cosa da valutare molto attentamente)
OPPURE
creare un modulo identico variando il nome e di conseguenza i suoi hook e quant'altro (laborioso ma più facile un eventuale aggiornamento di drupal, specie se si variano moduli inclusi di default)
OPPURE
creare una pagina un blocco o quello che ti pare, in cui metti codice php che mostra quello che ritieni più opportuno nella forma che tu desideri (un esempio può essere il codice del blocco "post recenti" che prende solo i titoli degli ultimi post inseriti dal modulo page... per esempio)
Spero che stavolta la risposta sia di tuo gradimento e meno prolissa ;-)
Ciao
Gianni Giusti
Prolissa non era un'offesa, sottolineava l'impegno :)
Certo non è un modo semplice (agire sul codice php), purtroppo alcuni moduli (vedi trackback) generano codice non 'themeable' overo su cui l'unico modo di agire sembra modificare il modulo stesso.
C'è un altro OPPURE ed è descritto qui http://drupal.org/node/11811
ma si tratta di modificare sempre e comunque il php.
Grazie ancora,
-Gino
pilotino scrive:
"Prolissa non era un'offesa, sottolineava l'impegno :)"
Lo avevo capito, la mia era una battuta, perchè prolisso non è un termine positivo :-)
Torniamo sul tecnico....
Il nodo che hai postato è molto interessante, la flessibilità di drupal è veramente notevole. Non mi stupirebbe scoprire che esistono ulteriori "oppure" :-)
Ciao
Gianni
salve a tutti, ecco subito la domanda:
cpme posso cambiare il layout del blocco login in modo che username e password (le due label) non siano sopra, bensi a sinistra delle aree di inserimento dei campi ?
Grazie in anticipo !
credo che sia possibile ottenere un comportamento
simile semplicemente modificando il css del tema.
Altrimenti e' possibile modificare il layout di un modulo
definendolo all'interno del tema utilizzato.
Ti consiglio la lettura di
http://drupal.org/node/509
Fabio
----
My websites adrenalinteam.it - windsmpeg.tk - falcoarredamenti.it
Ciao Fabio,
grazie per i tuoi suggerimenti....in effetti si, sono riuscito a fare qualche cosa con i fogli di stile....
Gianni.