Modificare il layout di un tipo di contenuto

18 contenuti / 0 new
Ultimo contenuto
Modificare il layout di un tipo di contenuto

salve
(scusate la mia inesperienza) ho creato un tipo di contenuto con cck, con svariati campi che mi servono, tra cui un campo immagine (dove posso inserire svariate immagini).
Di default tutti i campi vengono visualizzati uno sotto l'altro, mentre io vorrei poter visualizzare il mio campo Immagine a destra degli altri campi. Quale modulo mi consigliate di usare?
Vorrei in pratica definire un'area, o colonna nella quale voglio che compaiano le mie immagini (o le anteprime).
grazie x l'aiuto
Marco

Usa Content template o personalizza node-tipocontenuto.tpl.php

... e cerca nel sito...

grazie mille dei suggerimenti,
però il mio problema è che non sono tanto bravo (anzi lo sono poco) a mettere le mani sul codice.
Anche con content Template mi aspettavo qualcosa di più user-friendly (come panels).
Invece se ho capito bene cont-template mi fa scegliere quali campi stampare nel mio contenuto ecc, ma non so proprio dove mettere mano per sistemare alcuni campi in due colonne separate.
Quindi vi chiedo, mi sapere suggerire cosa devo andare a studiarmi? o magari qualche guida fatta bene dalla quale posso apprendere un pò..
grazie ancora

Se il tuo problema è solo mettere un campo a destra, puoi farlo con i CSS.
Comunque ti consiglio di vincere la paura e di buttarti a usare un po' di PHP per le personalizzazioni. Con l'aiuto di content template, dovrai solo posizionare il codice all'interno di una normale struttura HTML.

grazie pinolo,
ti posto uno schizzo di quello che voglio fare

Spero si capisca, utilizzo un tema a 3 colonne e nella parte centrale viene stampato il contenuto del mio nodo personalizzato (di tipo Prodotto).
Nell'area rossa vorrei che fossero stampate durante la visualizzazione, le immagini aggiunte dall'utente in un field-immagine creato con cck, mentre nell'area in cui ho spruzzato il giallo, vorrei che vengano visualizzati vari campi da me definiti e il corpo.

Detto questo, tra tutta la confusione nella mia testa sul modo di funzionare di drupal, ho installato sia al modulo contemplate, che creato un nuovo file di tipo node-prodotto.tpl.php, ma da qui non so più andare avanti!

Sempre continuando con un discorso di base, forse ho capito che devo creare un contenitore tramite HTML e visualizzarci dentro le immagini.
Devo fare così? e in tal caso, mi date qualche indicazione su come fare questo contenitore, e come stamparci dentro le immagini?
E soprattutto, in quale file definisco tale contenitore, e in quale faccio stampare le immagini? scusatemi ma non mi è ancora chiara la differenza tra i file del tema..

grazie x l'aiuto! soprattutto a Pinolo

Allora, senza mettere mano al template, riorganizza l'ordine dei campi in modo che le immagini siano in testa e poi vengano gli altri contenuti come li vuoi mettere tu.

A questo punto, vai a vedere la pagina con Firefox e Firebug (estensione di Firefox), vedrai che con 2 modifiche veloci al CSS riesci a mettere le immagini a destra come vuoi tu.

Se vuoi un suggerimento per non andare a toccare il CSS (anche se prima o poi, come dice Pinolo, è sempre più conveniente farsi le personalizzazioni a "mano"...), allora ti consiglio il Views e il Panel. Se ho capito bene a te interessa che solo il campo di tipo immagine ti venga visualizzato a destra del contenuto per così dire principale.
Procedi come segue: Crea un blocco con il view (presuppongo che sai gia usarlo) con il campo immagine che ti interressa. Salva il blocco con un nome facilmente riconoscibile e poi crea una nuova pagina col Panel. Una volta arrivato al Panel Content, salva e chiudi.
Nell'elenco delle pagine create col panel, trova quest'ultima e in operazioni clicca su "Context". Qui seleziona "nodo" nel menu a tendinae poi add context. Una volta dentro lascia tutto invariato e nel campo "Enter the title or NID of a post" inserisci il titolo della pagina principale che vuoi inserire al centro del layout che hai mostrato (devi averla creata prima!). Salva e poi Update e return.
Torna alla tua pagina e in operazioni vai in panel content. Scegli dove vuoi inserire i contenuti, clicca sul + e add content; poi seleziona nodo, infine Node content. Salva e premi + sull parte destra del layout (dove inserire solo l'immagine). Questa volta seleziona viste e infine il nome del blocco che hai creato in precedenza con il view. Salva tutto e il gioco è fatto.
Ci sono anche altre varianti per fare tutto questo, poi non so se più semplici o complesse, perchè dipende dal grado di conoscenza dei moduli view e panel che hai. Quello che ti ho descritto, fatto bene ti da quello che hai chiesto senza scrivere una riga di codice. Ovviamente la mia descrizione è stata approssimativa per esigenze di tempo e di spazio ed ho dato per scontato che gia usi view e panel. Per qualsiasi chiarimento o problema sono a disposizione.

Tutorial, guide e moduli per drupal su www.cmswiki.net

grazie matteo,
cmq devo dire che io vorrei mettere volentieri le mani sul .css, solo che ancora sono inesperto e sto iniziando a leggere qualche guida. quindi anche il fatto di "cavarmela con poche modifiche al css" per me è una cosa impossibile ora, xkè non so proprio come funzionano e come si gestiscono e quali oggetti posso gestire ecc...
Detto questo ti ringrazio x la soluzione proposta! so utilizzare bene views quindi x il blocco non ci sono problemi, e panels lo avevo installato proprio x cercare di risolvere questo problema e ci ho dato on'occhiatina.
Comunque dimmi una cosa, la tua soluzione è valida solo per un nodo, o per tutti i nodi di tipo mio-nodo?
perchè io vorrei che ogni nodo creato del tipo mio-nodo, avesse tale layout.
ora vado subito a provare così vedo un po come funziona panels...
grazie

salve a tutti
ho provato un pò quel metodo suggeritomi da matteo, per risolvere il problema, ma sono riuscito a creare una sola pagina di quel tipo. non come volevo, a far si che tutti i nodi di un determinato tipo vengano stampati in quel modo (e non ho ottenuto neppure buonissimi risultatì come visualizzazione. quindi credo proprio che continuerò a studiare i css.
chiedo consiglio a chi sa già come funzionano e mi puo aiutare:
i passi per trovare una soluzione sono questi? (lo chiedo per comprendere il funzionamento dei css)

  • devo creare e definire un blocco-contenitore tramite il css
  • sempre nel css devo stampare tale contenitore solamente se il tipo di contenuto è quello da me scelto(tramite un if..)
  • assieme al contenitore stampo i field che mi interessavano

Come linee guida dovrò fare una cosa simile? o non ho ancora capito nulla? :)

Forse il panel dovresti vedertelo meglio, perchè è ovviamente possibile creare quel layout per tutti i nodi che crei senza andare a rifarlo tu manualmente. Per quanto riguarda il fatto che non ti piace come esce penso sempre che dovresti studiarti il panel (grandissimo modulo!), perchè consente di posizionare qualsiasi cosa in qualsiasi posto della pagina e per di più dargli stili di visualizzazione estetica molto carini e molto vari. Ma questo dipende solo da te e comunque ora hai finalmente deciso di studiare i CSS, fai benissimo, anzi un giorno li potrai tranquillamente richiamare proprio nel panel e fare davvero ciò che vuoi in maniera semplice. Ciao e in bocca al lupo coi CSS.

Tutorial, guide e moduli per drupal su www.cmswiki.net

@matteofro: IMHo è come sparare con un cannone per uccidere una mosca... quello che vuole fare tunning88 è abbastanza banale, basta aggiungere una direttiva float: right per la classe del contenitore delle immagini, come giustamente diceva pinolo. In questo modo una sola regola di CSS risolve il problema, senza caricare altri moduli (panels è comunque un modulo che consuma ruisorse se aggiunto al sito, idem per views, anche se credo chec omunque sia indispensabile).

Ciao
Marco
--
My blog
Working at @agavee

La mia risposta cerca di dare una soluzione, non solo e necessariamente a tuning, ma a qualsiasi utente che utilizza drupal senza voler o saper mettere mano ai CSS. Quando rispondo su questo forum cerco sempre di dare una soluzione basandomi esclusivamente sugli strumenti offerti da drupal (non so se faccio bene o male, correggimi se sbaglio):
1. Perchè credo che ci siano molte persone che usano drupal senza conoscere la programmazione e probabilmente non è loro intenzione conoscerla in un futuro immediato.
2. Sul forum di drupal ho creduto necessario rispondere solo ed esclusivamente di drupal e su drupal (anche se è ovvio che il buon utilizzo dello stesso richiede necessariamente una personalizzazione a mano
3. Perchè tuning ha specificato che si sarebbe messo a studiare i css, ciò mi fa capire che al momento non ha conoscenze in materia ed ho tentato di dargli una soluzione più veloce per procedere almeno fino a quando i suoi studi non saranno terminati e potrà provare soluzioni diverse.

Inoltre ritengo panels uno strumento indispensabile quindi commetto facilmente il peccato di darlo per scontato a tutti.
Ripeto questa è solo una mia opinione circa l'utilizzo del forum, correggimi se sbaglio o se non prendo in considerazione aspetti altrettanto fondamentali... sono qui per imparare, soprattutto da te che senza saperlo mi hai insegnato tanto gia in passato.

Tutorial, guide e moduli per drupal su www.cmswiki.net

Mi servirebbe fare una cosa del genere ma mi manca un'informazione...
Tramite CSS divido il tipo contenuto in 2 parti, a sinistra vorrei mettere le miniature di 1 o + immagini e a destra la descrizione del prodotto.
Col campo imagefield posso allegare solo 1 immagine o sbaglio?
cosa è meglio fare per avere le immagini posizionate una sotto l'altra nella parte sinistra?
Grazie

Imax: no basta impostare il campo cck di tipo image che hai creato come a valori multipli. Lo trovi andando sul tipo di contenuto, facendo modifica campi e selezionando il campo.

Puoi decidere di specificare quante immagini mettere o lasciarle senza limite.

Mario Vercellotti (Vermario)
Freelance
http://www.verdevelop.com

Però non capisco come creare in automatico la miniatura..
- ho installato imagecache e imagefield
- ho creato nel tipo contentuto il campo foto di tipo file immagine
in "visualizza campi" non dovrei trovarmi qualcosa come "lightbox - miniatura > originale"?
forse ho saltato qualche passaggio? ma non riesco a trovare una guida...

Forse devi ancora creare il preset "miniatura" di ImageCache

Sono riuscito a farlo, l'unica cosa è che vedo solo 1 immagine, cliccandoci sopra si apre lightbox e mi fa scorrere anche le altre, però nella pagina vorrei vedere tutte le miniature 1 sotto l'altra...

questo è il mio node-prodotto.tpl.php

<div id="cont_prodotto">
<div id="cont_foto">
<?php foreach ((array)$field_foto as $item) { if ($item['view']): ?>
<?php print $item['view']; ?>
<?php endif; } ?>
</div>
<div id="cont_desc">
<?php print "<strong>" . $node->field_descbreve[0]['value'] . "</strong>" ?>
<?php print $node->content['body']['#value'] ?>
</div>
</div>

questo è nello style.css del tema

#cont_prodotto { width:600px;}
#cont_foto { width:150px; padding-right:15px; float: left;}
#cont_desc { width:435px; float: right;}

http://84.18.151.221/cbetest/it/node/329

Ho inserito un altro prodotto e funziona... solo questo non va! mistero!
A meno che non c sia qualcosa che non va nel mio file che ho postato sopra!

Ora ho scoperto, non mi ha creato la miniatura nella cartela imagecache/nomepreset...