[Risolto] Block list o qualcosa del genere

28 contenuti / 0 new
Ultimo contenuto
[Risolto] Block list o qualcosa del genere
AllegatoDimensione
Image icon figura1.jpg22.63 KB

Salve,
Vorrei costruire una lista (un menu) le cui voci, in output, mostrino un'icona, la voce di menù, un'eventuale descrizione e il contenitore della voce di menù.
Ho creato un nuovo tipo di contenuto e aggiunto le tre voci che fanno il mio menu. In page.tpl ho l'html pronto per incorporare le variabili php che dovranno stampare l'icona, la voce di menù, la descrizione e la classe css che formatta il box della voce di menu.
Come faccio? Dove trovo queste variabili? Esiste un modulo che fa tutto ciò?
Alla fine vorrei ottenere una lista verticale di tre "banner", come in figura1.jpg allegata.
Grazie per l'aiuto.
R.

L'immagine aiuta, grazie...

robertofrau.it wrote:
Vorrei costruire una lista (un menu) le cui voci, in output, mostrino un'icona, la voce di menù, un'eventuale descrizione e il contenitore della voce di menù.

Okay...
robertofrau.it wrote:
Ho creato un nuovo tipo di contenuto e aggiunto le tre voci che fanno il mio menu. In page.tpl ho l'html pronto per incorporare le variabili php che dovranno stampare l'icona, la voce di menù, la descrizione e la classe css che formatta il box della voce di menu.

Okay - ma il template da modificare è node.tpl.php, non page.tpl.php. Anzi, dato che hai creato un tipo di contenuto a posto, meglio node-tipo-di-contenuto.tpl.php
robertofrau.it wrote:
Come faccio? Dove trovo queste variabili? Esiste un modulo che fa tutto ciò?
Alla fine vorrei ottenere una lista verticale di tre "banner", come in figura allegata.

Per creare una lista di nodi da visualizzare in un blocco, views è il tuo amico... Vedi questo esempio: http://drupaleasy.com/blogs/ryanprice/2008/06/using-views-2-drupal-6-cre...

P.S. Non rispondo più a richieste email - ne ricevo parecchie ormai - perchè l'intelligenza di questa communità è (è sarà sempre) ben superiore alla mia...

Più imparo, più dubito.

Quote:
P.S. Non rispondo più a richieste email - ne ricevo parecchie ormai - perchè l'intelligenza di questa communità è (è sarà sempre) ben superiore alla mia...

Va benissimo così, figurati.

Però non mi è chiaro tutto. Progetto e sviluppo siti da anni, ma Drupal è un ambiente nuovo, anche a livello concettuale, e questo è il mio primo sito. A mio carico ho anche che non ho mai usato un CMS pronto, ne ho creati tanti da zero, ma al solo scopo di gestire contenuti pensati e strutturati a monte. Questo per fare il quadro e trovare una qualche scusa alla mia lentezza...

L'utilizzo di View è alternativo alla creazione di node-tipo-di-contenuto.tpl.php?
O devo sempre creare una pagina di questo tipo quando ho un tipo di contenuto con una sua formattazione?
Poi, come lo collego a page.tpl.php? Voglio dire: al posto del codice che ho messo in page.tpl.php per fare uscire questo tipo di contenuto, cosa devo mettere?

Grazie.
R.

Nessun problema...

robertofrau.it wrote:
Però non mi è chiaro tutto. Progetto e sviluppo siti da anni, ma Drupal è un ambiente nuovo, anche a livello concettuale, e questo è il mio primo sito. A mio carico ho anche che non ho mai usato un CMS pronto, ne ho creati tanti da zero, ma al solo scopo di gestire contenuti pensati e strutturati a monte. Questo per fare il quadro e trovare una qualche scusa alla mia lentezza...

Idem - solo che sono forse 9 mesi avanti per quanto riguarda Big D. Mamma mia quanto tempo...
robertofrau.it wrote:
L'utilizzo di View è alternativo alla creazione di node-tipo-di-contenuto.tpl.php?
O devo sempre creare una pagina di questo tipo quando ho un tipo di contenuto con una sua formattazione?
Poi, come lo collego a page.tpl.php? Voglio dire: al posto del codice che ho messo in page.tpl.php per fare uscire questo tipo di contenuto, cosa devo mettere?

Views è un modulo contribuito che costruisce query - quindi produce liste di oggetti (nodi, utenti, ecc). Sia lui che CCK sono considerati 'essenziale' per un qualunque sito Drupal. Con il tuo background, se sai l'inglese ti consiglio "Pro Drupal Developer"
Il node.tpl.php fa parte del sistema templating di Big D, è si occupa di 'presentare' l'informazione di un nodo. In una pagina di nodo (node/xxx) questo (di solito) viene chiamato una volta, ma in una view, che magari visualizza n nodi, verrà chiamato n volte.
Il collegamento funziona 'alla rovescia' o in realtà a cascata. Drupal 'scende' ogni elemento di dati, fino ad un livello atomico, dove viene convertito in HTML. Quindi in page.tpl.php, il node.tpl.php ha già convertito in HTML il contenuto, in fatti in page.tpl.php c'è un variable chiamato $content - immagino che hai indovinato cosa contiene...

Più imparo, più dubito.

Scusa se sono tardo. Provo a ricapitolare fin dove mi pare di aver capito. Perché i miei dubbi partono addirittura dal flusso di lavoro, quindi cosa fare prima e cosa dopo.
Direi che per prima cosa devo spostare il codice html che mi darebbe l'output in pag.tpl e metterlo in node.tpl. Primo problema: i marcaposto. Ciò che ora è testuale dovrà essere sostituito dalle variabili php. $content mi tira fuori tutto insieme, mi dà il nodo, ma io avrei bisogno di alcuni elementi del nodo, enne variabili per enne informazioni. Sbaglio? Per esempio: come faccio a fare uscire la mia icona? Che variabile mi serve?
Poi, sempre se ho capito qualcosa, dovrei crearmi il mio tipo di contenuto usando views, giusto? E, altra domanda, aggiungere i tre record sempre usando views? Quello che ho fatto finora, creando il nuovo tipo di contenuto e aggiungendo i record non serve, dico bene? Va rifatto, giusto?
Il resto lo fa il sistema?

In attesa dell'oracolo, continuo a studiare, sperando di riscriverti per dirti che ho capito e grazie lo stesso. Ma dubito, John. E, se fra nove mesi ne so quanto te, divento credente!

R.

Stai facendo domande molto intelligente, spero che le mie risposte siano all'altezza...

robertofrau.it wrote:
...Provo a ricapitolare fin dove mi pare di aver capito. Perché i miei dubbi partono addirittura dal flusso di lavoro, quindi cosa fare prima e cosa dopo.

E' un ottimo punto di partenza. Parliamo del nodo (escludo il discorso di pagina, blocchi, menù e quant'altro per semplificare).
Il flusso di lavoro è:

  1. Definire il nodo ed i suoi campi
  2. Creare nodi di questo tipo
  3. Preparare gli elementi da visualizzare dai campi del nodo
  4. Stamparli

Quindi 'modello dati', 'dati', 'logica di business' e infine 'temizzazione'.

robertofrau.it wrote:
Direi che per prima cosa devo spostare il codice html che mi darebbe l'output in pag.tpl e metterlo in node.tpl. Primo problema: i marcaposto. Ciò che ora è testuale dovrà essere sostituito dalle variabili php. $content mi tira fuori tutto insieme, mi dà il nodo, ma io avrei bisogno di alcuni elementi del nodo, enne variabili per enne informazioni. Sbaglio? Per esempio: come faccio a fare uscire la mia icona? Che variabile mi serve?

Bravo - e la risposta è: quelli necessario! Drupal carica il nodo compresso campi aggiunti quale CCK ecc. Poi chiama un preprocessore: template_preprocess_node che costruisce una serie di variabili che poi il template stamperà.
Anche noi possiamo aggiungere variabili, creando un funzione xxx_preprocess_node o in un nostro modulo, o nel file template.php della nostra tema.
Qui mi fermo, perchè hai da studiare un pò. Comunque se installi Devel puoi usare dsm() per analizzare tutti questi dati...

robertofrau.it wrote:
Poi, sempre se ho capito qualcosa, dovrei crearmi il mio tipo di contenuto usando views, giusto? E, altra domanda, aggiungere i tre record sempre usando views?

No. Views costruisce query, e visualizza liste di cose, tipo nodi, utenti, ecc. Se costruisci tre nodi del tipo di contenuto che hai creato, la view produrrà la lista - e basta. Tre nodi, non tre record. Nel vocabolario di Drupal è raro parlare di record.

robertofrau.it wrote:
Quello che ho fatto finora, creando il nuovo tipo di contenuto e aggiungendo i record non serve, dico bene? Va rifatto, giusto?

Se per record intendi campi CCK, no - hai fatto la cosa giusta e corretto. Un nodo da se ha poche cose, titolo, corpo, ecc. Per aggiungere campi quale tuo icone, ecc, bisogna usare CCK (citato prima #3) Questo è il modello di dati.

robertofrau.it wrote:
In attesa dell'oracolo, continuo a studiare, sperando di riscriverti per dirti che ho capito e grazie lo stesso. Ma dubito, John. E, se fra nove mesi ne so quanto te, divento credente!

Dubitare è intelligente - senza non c'è progresso...

Più imparo, più dubito.

[ post spostato su suggerimento di jhl.verona (vedi sotto)]
come avere maggior controllo sull'output xhtml generato da views

Ciao ego2012 e benvenuto nel club.
Stai dirottando il thread - non so più a chi rispondere. Apri un nuovo thread per favore - se sei loggato vai qui: http://www.drupalitalia.org/node/add/forum

Più imparo, più dubito.

Dunque, ho creato il mio tipo di contenuto, aggiungendo i campi che mi servono, ho aggiunto i record e ho creato una vista (un blocco) che vedo in home con una sua formattazione che poi non è altro che l'output di tutti i $field->content, uno di seguito all'altro. Ora ho esigenza di personalizzarla, perché diventi come nella figura allegata al primo post. In Views, c'è una voce (temizzazione) che mi mostra codice che, copiato in views-view-fields.tpl.php e opportunamente modificato, dovrebbe ignorare il codice di default e offrire una altro output. Per fare ciò, però, ho bisogno di ignorare $field->content e usare altro. Ma cosa?
In pratica il mio ciclo manda in output dodici campi (4 x 3 nodi) che devo riorganizzare perché si prendano le rispettive classi. Ma come?
R.

Non è necessario usare views per temizzare...

robertofrau.it wrote:
Dunque, ho creato il mio tipo di contenuto, aggiungendo i campi che mi servono, ho aggiunto i record e ho creato una vista (un blocco) che vedo in home con una sua formattazione che poi non è altro che l'output di tutti i $field->content, uno di seguito all'altro.

Bene, questo è già qualcosa. Presumo che stai usando Stile riga: Nodo
robertofrau.it wrote:
Ora ho esigenza di personalizzarla, perché diventi come nella figura allegata al primo post. In Views, c'è una voce (temizzazione) che mi mostra codice che, copiato in views-view-fields.tpl.php e opportunamente modificato, dovrebbe ignorare il codice di default e offrire una altro output. Per fare ciò, però, ho bisogno di ignorare $field->content e usare altro. Ma cosa?
In pratica il mio ciclo manda in output dodici campi (4 x 3 nodi) che devo riorganizzare perché si prendano le rispettive classi. Ma come?
R.

Se tutto è come ho descritto sopra, è sufficiente usare il template node.tpl.php.

Prima prendi una copia di questo file nella tua tema e chiamarlo node-tipo-di-contenuto.tpl.php, dove tipo-di-contenuto è il nome macchina del tuo tipo di contenuto.

Adesso puoi temezzare come preferisci al interno di questo template. Se hai Devel installato ed abilitato, nel template puoi scrivere

<?php
 dsm
($node);
?>

per vedere tutti gli elementi del nodo, compreso i tuoi campi CCK, altrimenti usi
<?php
 
print('<pre>'); print(check_plain(print_r($node, TRUE))); print('</pre>');
?>

Più imparo, più dubito.

Vediamo se ho capito. Tu dici: hai creato un tipo di contenuto (nodo) che hai chiamato banner e una sua vista (blocco) che hai chiamato banner. Ora fermati, Views non ti serve più. Crea la pagina node-banner.tpl che è la pagina propria dei nodi e buttaci dentro il codice html che prima, erroneamente, avevi messo in page.tpl.php. Aggiungi

<?php
print('<pre>'); print(check_plain(print_r($node, TRUE))); print('</pre>');
?>

per avere l'output degli elementi del nodo e scegliere quelli che sostituiranno il codice statico della tua lista.

Ho capito giusto? Perché se fosse così, sarebbe incredibilmente logico e comprensibile, solo che non funziona. O forse sbaglio qualcosa. O forse non ho capito niente...

Piano, piano, vinceremo...

robertofrau.it wrote:
Vediamo se ho capito. Tu dici: hai creato un tipo di contenuto (nodo) che hai chiamato banner e una sua vista (blocco) che hai chiamato banner. Ora fermati, Views non ti serve più. Crea la pagina node-banner.tpl che è la pagina propria dei nodi e buttaci dentro il codice html che prima, erroneamente, avevi messo in page.tpl.php. Aggiungi

<?php
print('<pre>'); print(check_plain(print_r($node, TRUE))); print('</pre>');
?>

per avere l'output degli elementi del nodo e scegliere quelli che sostituiranno il codice statico della tua lista.


Un passo indietro. Con la vista per blocchi, del tipo Stile riga: Nodo ti sta visualizzando qualcosa. Giusto?
Presumo di si. Questo vuol dire che sta usando il template node.tpl.php per ogni nodo che appare nel blocco (tre in questo caso).
Hai creato un template (non una pagina) apposto per il tuo tipo di contenuto che si chiama node.banner.tpl.php, e che contiene (per ora) lo stesso codice di node.tpl.php - giusto? (Puoi copiarlo da qui: http://api.drupal.org/api/drupal/modules--node--node.tpl.php/6/source)
Questo file si trova nella tema che tu hai abilitato per il tuo sito - giusto?

Se hai fatto questi passi, il blocco sarà uguale come prima. Per essere sicuri che sta usando il template giusto, basta aggiungere un pò di testo, per esempio, metti:
<p>Funziona?</p>
dopo il

<?php if (!$page): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>

robertofrau.it wrote:
Ho capito giusto? Perché se fosse così, sarebbe incredibilmente logico e comprensibile, solo che non funziona. O forse sbaglio qualcosa. O forse non ho capito niente...

E' esattamente così. Non so cos'è che non va, ma lo scopriremo. Oltre a Devel (già citato sopra) un altro tool di sviluppo fatto apposto per chi devi smanettare la propria tema e Theme Developer. Richiede la presenza di Devel, ma un pò come Firebug, se clicci su un blocco della pagina, ti dice quale template è stato usato, ed anche quale altri template potrebberano essere usati...

Più imparo, più dubito.

Dunque, torno un attimo indietro per una sintesi di quanto fatto.

Ho creato il tipo di contenuto (banner) e una sua vista (un blocco che ho chiamato banner).
Sono andato in blocchi e ho configurato il mio nuovo blocco nella sidebar.
A questo punto, nella mia home ho il blocco, con il suo format ma nel posto giusto. (fig1)

Non ho ancora creato né node.tpl.php, né node.banner.tpl.php.
Li creo, cominciando da node.tpl.php, in cui aggiungo un testo di verifica (Ciao, sono node.tpl.php. Aggiorno il tema e vado a vedermi la mia home. Tutto ok, più o meno. Vedo sempre il mio blocco dove deve essere, e il testo aggiunto, anche se non nella sidebar, c'è. (fig2)
Duplico node.tpl.php e rinomino il duplicato in node.banner.tpl.php. Aggiungo un testo di verifica (Ciao, sono node.banner.tpl.php). Aggiorno il tema e ... Niente. continuo a vedere il mio blocco nella sidebar, ma il testo aggiunto è sempre quello di node.tpl.php. Se lo cancello, sparisce, tutto qui, senza che node.banner.tpl.php venga minimamente considerato.

Che faccio?

Grazie per le foto - aiutano molto.
Stai usando campi nel view, non Stile: Nodo. Puoi probabilmente arrivare a quello che ti interessa semplicemente:

  1. Togli l'etichetta (lascia vuoto) di ogni campo, così il Corpo:, Titolo: sparisce
  2. Riordina i campi come preferisci - magari prima titolo, poi corpo...

Se questo non da tutti i risultati che desideri, poi intervenire tramite CSS. Infine se ancora non sei soddisfatto bisogna modificare i template di views (perchè stai usando quelli avendo selezionato Stile: unformattato, o almeno non avendo selezionato Stile: Nodo)

In fig 2, avrebbe dovuto scrivere "Ciao, sono node.tpl.php" anche nei tre nodi del blocco - ma questo non succede come spiegato sopra.

Non vedi "Ciao, sono node.banner.tpl.php" perchè il file si chiama node-banner.tpl.php (trattini non punto)

Più imparo, più dubito.

Vediamo se mi riesce di capire qualcosa:

Quote:
Stai usando campi nel view, non Stile: Nodo

Sì. Mi sebrava corretto perché perché ogni singolo campo ha proprie caratteristiche di layout (una classe per ogni campo). Il codice html che avevo messo erroneamente in page.tpl.php era

<ul id="menu-sidebar-rounded">
            <li id="prossime-date"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_prossime_date_alpha.png" alt="Prossime date" />Prossime date</a><span class="end"></span></li>
            <li id="stavo-pensando-che"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_stavo_pensando_alpha.png" alt="Stavo pensando che" />Stavo pensando...</a><span class="end"></span></li>
            <li id="condividi-in-facebook"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_facebook_bg_blu_alpha.png" alt="Condividi in Facebook" />Condividi in Facebook</a><span class="menu-sidebar-desc">Fai il login col tuo account di Facebook e condividi con i tuoi amici i contenuti del sito!</span><span class="end"></span></li>
          </ul>

Per cui mi è sembrato corretto continuare a lavorare sui campi. Si può fare anche con Nodo? Conviene?

Quote:
Se questo non da tutti i risultati che desideri, poi intervenire tramite CSS

Ho visto che nelle caratteristiche di ogni campo ho anche la possibilità di definire una classe. Significa che se scrivo pluto e nei miei css vado a definire una .pluto, il mio campo è bello e formattato?

Quote:
Non vedi "Ciao, sono node.banner.tpl.php" perchè il file si chiama node-banner.tpl.php (trattini non punto)

Non lo vedo comunque. Prima era così. Ho rinominato la pagina perché in un tuo precedente post avevi scritto node.banner.tpl.php e allora ho provato anche così, ma non funge comunque.

Sento che ci siamo quasi. Spero solo che tu non ti spazientisca neanche un attimo prima!

E si, la luce c'è in fondo alla galleria, spero che non sia un treno...

robertofrau.it wrote:
Vediamo se mi riesce di capire qualcosa:
Quote:
Stai usando campi nel view, non Stile: Nodo

Sì. Mi sebrava corretto perché perché ogni singolo campo ha proprie caratteristiche di layout (una classe per ogni campo). Il codice html che avevo messo erroneamente in page.tpl.php era
<ul id="menu-sidebar-rounded">
  <li id="prossime-date"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_prossime_date_alpha.png" alt="Prossime date" />Prossime date</a><span class="end"></span></li>
  <li id="stavo-pensando-che"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_stavo_pensando_alpha.png" alt="Stavo pensando che" />Stavo pensando...</a><span class="end"></span></li>
  <li id="condividi-in-facebook"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_facebook_bg_blu_alpha.png" alt="Condividi in Facebook" />Condividi in Facebook</a><span class="menu-sidebar-desc">Fai il login col tuo account di Facebook e condividi con i tuoi amici i contenuti del sito!</span><span class="end"></span></li>
</ul>

Per cui mi è sembrato corretto continuare a lavorare sui campi. Si può fare anche con Nodo? Conviene?

Oh si, va benissimo usare campi nel view. Ci sono tanti modi di spellare un gatto. Restiamo con questo.
robertofrau.it wrote:
Quote:
Se questo non da tutti i risultati che desideri, poi intervenire tramite CSS

Ho visto che nelle caratteristiche di ogni campo ho anche la possibilità di definire una classe. Significa che se scrivo pluto e nei miei css vado a definire una .pluto, il mio campo è bello e formattato?

Probabilmente non hai bisogno di aggiungere altri classi. Il blocco ha già uno, il nodo pura, ogni campi idem. Credo che saranno sufficiente, n'est pas?
robertofrau.it wrote:
Quote:
Non vedi "Ciao, sono node.banner.tpl.php" perchè il file si chiama node-banner.tpl.php (trattini non punto)

Non lo vedo comunque. Prima era così. Ho rinominato la pagina perché in un tuo precedente post avevi scritto node.banner.tpl.php e allora ho provato anche così, ma non funge comunque.

Oops. Hai ragione. Cerco un pò di cenere da spargere sul capo... Allora node-banner.tpl.php è corretto, ma non lo vedi perchè:

  1. No stai usando quel template nella vista del blocco
  2. Probabilmente non stai guardando una pagine che visualizza un nodo di tipo banner, quindi non lo vedi neanche nel contenuto

Più imparo, più dubito.

Mi sto perdendo.

Ora ho l'output dei miei tre gruppi di informazioni (l'icona, il titolo, e il corpo).
In fig3 ho, sopra, i banner così come dovrebbero essere - e come sono nel mio html - alla fine di questo delirio; sotto, l'output della vista così come è ora.
Dove devo mettere le mani perché sotto sia come sopra?

In Views ho un'area (Tema: Informazioni) in cui, in Output dello stile di riga, ho il codice con cui popolare views-view-fields.tpl.php.
L'ho fatto e ho visto che, modificando questo file, agisco sull'output della vista.

Il ciclo foreach mi butta fuori tanti campi quanti ce ne sono, ciascuno con la propria classe, ma dove viene valorizzata questa classe? C'è una qualche impostazione dei campi in cui devo indicare la classe?
Poi io ho bisogno di raccoglierli dentro tre banner (che nel mio caso erano tre

  • ). Ma come?

    Mi sembra di essere tornato al punto di partenza!

  • L'immagine aiuta, ma adesso bisogna vedere un pò di HTML. Per la maggiore possiamo sistemare con CSS, non con altri template. Scusa, credevo che avevi creato tu il CSS per fig 1. Forse mi sbagliavo...

    Bisogna mappare gli elementi e classi a quelli del tuo codice HTML (basta aggiungere i varie selectors al CSS originale).

    Altrimenti, cambi lo Stile della vista in Stile riga: Nodo, e procedi manipolando node-banner.tpl.php con l'HTML e classi che vuoi tu.

    P.S. questo sei tu? http://robertofrau.it/

    Più imparo, più dubito.

    Partiamo dalla fine:

    Quote:
    P.S. questo sei tu? http://robertofrau.it/[/quote]

    Sì. Ti stupisce? Tutto quello che vedi lì risale a prima di Drupal. La maggior parte dei lavori è piuttosto semplice, ma ce ne sono un paio che mi hanno impegnato parecchio. Di qui la voglia di conoscere Drupal, anche perché senza un CMS potente, ai progetti più interessanti non si accede.

    Veniamo al nocciolo...

    Quote:
    L'immagine aiuta, ma adesso bisogna vedere un pò di HTML. Per la maggiore possiamo sistemare con CSS, non con altri template. Scusa, credevo che avevi creato tu il CSS per fig 1. Forse mi sbagliavo...

    No. Fig1 mostra come esce in pagina l'output della vista, nature, senza alcuna creazione o manipolazione di CSS.

    Quote:
    Bisogna mappare gli elementi e classi a quelli del tuo codice HTML (basta aggiungere i varie selectors al CSS originale).

    Altrimenti, cambi lo Stile della vista in Stile riga: Nodo, e procedi manipolando node-banner.tpl.php con l'HTML e classi che vuoi tu.

    Qui c'è la soluzione al mio problema. Forse ho capito. Ma ora sono fuso. Domattina provo.

    Mi sa che quella luce in fondo alla galleria è proprio un treno...

    Quote:
    Bisogna mappare gli elementi e classi a quelli del tuo codice HTML (basta aggiungere i varie selectors al CSS originale).

    Sono arrivato ad avere un output pulito (icona, titolo e, nel bottone facebook, il corpo.
    Se ho capito bene, questo output è in views-views-field.tpl.php. Ogni campo della mia vista viene mandato in output da

    <<?php print $field->element_type; ?> class="field-content"><?php print $field->content; ?></<?php print $field->element_type; ?>>
      </<?php print $field->inline_html;?>>

    In pratica $field-content stampa tutto. E tra le variabili disponibili non mi pare ci sia qualcosa che mi stampi gli elementi dell'array esploso.

    Il codice html che genera invece l'output come lo vorrei io è

    <ul id="menu-sidebar-rounded">
                <li id="prossime-date"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_prossime_date_alpha.png" alt="Prossime date" />Prossime date</a><span class="end"></span></li>
                <li id="stavo-pensando-che"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_stavo_pensando_alpha.png" alt="Stavo pensando che" />Stavo pensando...</a><span class="end"></span></li>
                <li id="condividi-in-facebook"><a href="#" class="labelcat"><img src="<?php print $my_theme_folder?>/img/ico_facebook_bg_blu_alpha.png" alt="Condividi in Facebook" />Condividi in Facebook</a><span class="menu-sidebar-desc">Fai il login col tuo account di Facebook e condividi con i tuoi amici i contenuti del sito!</span><span class="end"></span></li>
              </ul>

    Detto questo, come faccio a far sì che buttino fuori lo stesso risultato? Così, a senso, direi che mi servono cose tipo

    <?php print $title ?> <?php print $body ?> <?php print $icona ?>

    o qualcosa del genere da mettere al posto del mio codice statico, mantenendo un solo elemento lista e mettendolo in un ciclo.
    Immagino che però non possa essere così semplice. O magari è più semplice ancora e non ci arrivo.
    Puoi provare a spiegarmi con un esempio cosa intendi quando dici "Bisogna mappare gli elementi e classi a quelli del tuo codice HTML (basta aggiungere i varie selectors al CSS originale)"?

    Ho provato anche a modificare la mia vista in Nodo e a maneggiare node-banner.tpl.php (funzionante!!!).
    Qui ho $title a cui posso appioppare una bella classe css, ma poi ho $content che mi stampa in una volta sola icona e body e sono fregato di nuovo!

    Come ne esco!?

    Non ho molto tempo adesso - quindi sarà un storia a due parti...
    Ho creato un tipo di contenuto 'banner':

    Poi ho creato un view (blocco):

    Il risultato è così:

    (Tu hai fatto meglio di me - ma non mi fermo mica qui ;-)

    Usando Tema: Informazioni dalla vista ho creato un template (preso da sites/all/modules/views/theme/views-view-fields.tpl.php) chiamato views-view-fields--banner-ads--block.tpl.php che da più che sufficiente 'specificità'.
    In questo ho fiondato un bel

    <?php
     dsm
    ($fields);
    ?>
    per vedere cosa contiene (usando il modulo Devel):

    Come si vede, l'informazione c'è. Bisogna solo 'plasmarlo' con un pò di HTML e CSS. esempio, per stampare l'immagine devo solo fare
    <?php
     
    print $fields['field_banner_logo_fid']->content;
    ?>

    che scriverà:
    <img src="http://dev.autonomous-sandbox/sites/default/files/imagecache/reg/faceboo... alt="" title="" class="imagecache imagecache-reg imagecache-default imagecache-reg_default" width="57" height="57" />

    Domani proseguo col smanettare il template. Oppura fai tu prima...

    [Edit] l'immagine di Devel era sparito. Cambio hosting per gli immagini [/Edit]

    Più imparo, più dubito.

    Vedi, bastava questo! :-)

    Quote:
    <?php
    print $fields['field_banner_logo_fid']->content;
    ?>

    Era questo che non capivo: come tirare fuori gli oggetti da quel dannato array!
    Grazie di cuore.
    R.

    Per completare il thread, scrivi tu la parte seconda? Pubblichi qui il codice che metti nel template? Grazie...

    Più imparo, più dubito.

    Volentieri. Ci sto lavorando ora. Appena è pronto, scrivo il post.

    Eccomi per l'atto conclusivo.

    Una volta definiti i campi della vista (immagine, titolo, corpo e link) e capito la sintassi con cui tirare fuori il valore di ciascun campo, ho creato due template (views-view-fields--Banner--block.tpl.php e views-view-list--Banner--block.tpl.php) in cui ho riscritto una lista praticamente identica a quella html che avevo scritto all'inizio, così ho evitato di riscrivere i CSS. Il mio html originale è in uno dei post precedenti

    In views-view-fields--Banner--block.tpl.php ho definito il contenuto del singolo elemento della lista come segue (mantengo anche i commenti così può essere tutto più chiaro.

    <?php
    // $Id: views-view-fields--Banner--block.tpl.php,v 1.6 2008/09/24 22:48:21 merlinofchaos Exp $
    /**
     * @file views-view-fields.tpl.php
     * Default simple view template to all the fields as a row.
     *
     * - $view: The view in use.
     * - $fields: an array of $field objects. Each one contains:
     *   - $field->content: The output of the field.
     *   - $field->raw: The raw data for the field, if it exists. This is NOT output safe.
     *   - $field->class: The safe class id to use.
     *   - $field->handler: The Views field handler object controlling this field. Do not use
     *     var_export to dump this object, as it can't handle the recursion.
     *   - $field->inline: Whether or not the field should be inline.
     *   - $field->inline_html: either div or span based on the above flag.
     *   - $field->separator: an optional separator that may appear before a field.
     * - $row: The raw result object from the query, with all data it fetched.
     *
     * @ingroup views_templates
     */
    ?>

    <?php
     
    //dsm($fields); //Questo codice (santo jhl) butta fuori i campi
    ?>

    <?php print "id="" . str_replace('.','', str_replace(' ', '-', strtolower($fields['title']->raw))) . "">";
    // Il codice qui sopra serve a stamparmi l'id di ciascun elemento della lista (l'id è il nome stessa della lista, minuscolo e col - al posto dello spazio
    // ATTENZIONE <li> chiuso qui per inserire ID=
    // RICORDA <li> si apre e si chiude </li> in views-view-list--Banner--block.tpl.php
    // Infine uso raw al posto di content per evitare refusi di codice html
    ?>

        <a href="<?php print $fields['field_icona_fid']->raw; ?>" class="labelcat">
          <img src="<?php print $fields['field_icona_fid']->raw; ?>" alt="<?php print $fields['title']->raw; ?>" /><?php print $fields['title']->raw; ?></a>
    <?php if ($fields['body']->raw) { ?>
    <span class="menu-sidebar-desc"><?php print $fields['body']->raw; ?></span>
    <?php } ?>
    <span class="end"><!-- chiude box rounded --></span>

    In views-view-list--Banner--block.tpl.php ho invece definito il contenitore della lista e, al suo interno, mandato in ciclo l'oggetto $row (con la sua classe) contenente tutti i campi visti in views-view-fields--Banner--block.tpl.php. Ecco il codice.

    <?php
     
    // $Id: views-view-list--Banner--block.tpl.php,v 1.13 2009/06/02 19:30:44 merlinofchaos Exp $
    /**
     * @file views-view-list.tpl.php
     * Default simple view template to display a list of rows.
     *
     * - $title : The title of this group of rows.  May be empty.
     * - $options['type'] will either be ul or ol.
     * @ingroup views_templates
     */
    ?>

    <ul id="menu-sidebar-rounded">
        <?php foreach ($rows as $id => $row): ?>
          <li class="<?php print $classes[$id]; ?>" <?php print $row; ?></li>
        <?php endforeach; ?>
    </ul>

    Il risultato è identico all'originale. Grazie, grazie, grazie, John.

    R.

    Errata corrige.

    Dove scrivo

    Quote:
    (l'id è il nome stessa della lista, minuscolo e col - al posto dello spazio

    Intendo il nome del nodo e non della lista: se il nodo ha titolo Prossime date allora l'elemento della lista che lo manderà in output sarà

    <li id="prossime-date">...</li>

    Bravo Roberto, ma la foto finale, dov'è? Dai...
    In più, se puoi modificare il titolo del thread mettendo un bel [Risolto] d'avanti (che solo tu o un admin può fare) - servirà anche ad altri - sapere che il camino aveva una (lieta) conclusione.

    Più imparo, più dubito.

    Hai ragione. E volevo anche mettere la foto finale, che poi è identica alla parte alta di fig.3, ma non mi funziona il client ftp e devo riavviare. Rimedierò al più presto.