CCK - associare nodi a CSS

15 contenuti / 0 new
Ultimo contenuto
CCK - associare nodi a CSS

Buongiorno a tutti di nuovo anche se in altra sezione.

Sto creando dei "tipi di contenuto" con CCK ed avrei però bisogno di associare una specifica formattazione a determinati nodi (se è il termine corretto!)
ad esempio avrò un campo/nodo DATA EVENTO che è una data dal al quindi scritta a mano (quindi testo) che però deve essere molto evidente, tipo un classico TITOLO1
un campo firma che ho bisogno sia in italico e di un certo colore
e così via

immagino di dover associare i campi/nodi che creo a un CSS ma come devo fare? (con parole molto semplici per favore che è il mio primo CMS!)

grazie
Nadia

Aggiungo un'altra domanda :)

cos'è, a cosa si riferisce e come si usa quel:
Number of values:
Maximum number of values users can enter for this field.
'Unlimited' will provide an 'Add more' button so the users can add as many values as they like.
Warning! Changing this setting after data has been created could result in the loss of data!

non riesco proprio a capire e non trovo spiegazioni in giro!
ancora grazie

Prima domanda, puoi copiare il file node.tpl.php chiamandolo node-tuocontenuto.tpl.php

Elimini:

<?php print $content ?>

Ed al suo posto ci metti i vari field cck con un div per la classe css.

Ad esempio se hai creato un campo chiamandolo immagini:

<div class="immagini">
<?php print $node->field_immagini[0]['view'] ?>
    </div>

Poi personalizzi il tutto dal css.

Per quanto riguarda la seconda domanda è relativa al numero di valori, es. se il campo è immagine puoi permettere di caricare X immagini e non di più od un numero infinito di immagini.

webnadia wrote:
Aggiungo un'altra domanda :)

Considera di aprire una discussione diversa se la domanda non è collegata alla prima.

webnadia wrote:
cos'è, a cosa si riferisce e come si usa quel:
Number of values:
Maximum number of values users can enter for this field.
'Unlimited' will provide an 'Add more' button so the users can add as many values as they like.

Fa esattamente quello che dice: quanti valori possono essere inseriti per quel campo. Esempio: in un tipo di contenuto "rubrica", il campo field_rubrica_cellulare è destinato ad ospitare il numero di cellulare. Qualcuno ha più di un cellulare. Se lasci "Number of Values" uguale a 1, la persona potrà inserire sempre e solo un numero di cellulare. Se metti, ad esempio, 3, la persona potrà inserirne uno e avrà un pulsante "Add more" per aggiungerne altri, fino a un massimo di tre. Il tutto funzionerà poi nel modo giusto quando mostrerai i campi.

webnadia wrote:
Warning! Changing this setting after data has been created could result in the loss of data!

Attenzione, questo non è solo un allarme, è vero! Se consenti 3 numeri di cellulare, poi cambi l'impostazione a 2, hai perdita di dati. Inoltre la struttura delle tabelle cambia a seconda che il valore "Number of values" sia 1 o maggiore di 1. Quindi decidilo una volta per tutte e cerca comunque di non diminuire mai il valore.

Ok grazie krima

letto così sembra facile, adesso vediamo cosa combino facendo delle modifiche a questo php.
...ho come la sensazione che a breve avrò altre domande in merito!

nadia

Quote:
Considera di aprire una discussione diversa se la domanda non è collegata alla prima.

giusto!

per il resto, grazie, spiegazione chiarissima ...avevo trovato qualcosa in giro ma in inglese e anche ben datato e non riuscivo quindi a capire!

alla prossima domanda, che da neofita ne avrò un po' mi sa!
nadia

Ok... come volevasi dimostrare, sembrava chiaro ma in realtà non ho capito neppure da che parte cominciare, mi sa!
intanto ho copiato miacartella\modules\node\node.tpl.php e l'ho chiamato node_pippo.tpl.php
lo apro e dopo le righe commento che parlano di possibili variabili trovo:

<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?> clear-block">
<?php print $picture ?>
<?php if (!$page): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
  <div class="meta">
  <?php if ($submitted): ?>
    <span class="submitted"><?php print $submitted ?></span>
  <?php endif; ?>
  <?php if ($terms): ?>
    <div class="terms terms-inline"><?php print $terms ?></div>
  <?php endif;?>
  </div>
  <div class="content">
    <?php print $content ?>
  </div>
  <?php print $links; ?>
</div>

domanda 1 - devo proprio cancellare

<?php
 
print $content
?>
? e perchè? non mi inficia poi il modo in cui mi appare il testo che scrivo con l'editor?

domanda 2 - il CSS in cui sono definite le classi dei DIV dove lo trovo? da qui dentro non riesco a capirlo

domanda 3 - nella stringa che mi indichi ad esempio
<?php print $node->field_immagini[0]['view'] ?>
a cosa si riferiscono [0] e ['view'] ? sono legati al concetto di immagine? o mi servono anche per dei testi?

grazie mille per ogni contributo ad innalzare il mio livello di cultura su Drupal ...ovviamente poi se c'è già un testo che parla di queste cose mi va bene anche un link allo stesso, basta che sia in italiano!

nadia

Dunque... in ordine sparso :-):

  1. node_pippo.tpl.php va chiamato node-pippo.tpl.php altrimenti non viene riconosciuto.
  2. print $content va cancellato, in questo modo non verra stampato il contenuto del nodo, poi decidi cosa deve apparire e dove.
  3. <?php
     
    print $node->field_immagini[0]['view']
    ?>
    potrebbe essere anche
    <?php
     
    print $node->field_cittadine[0]['view']
    ?>
    o
    <?php
     
    print $node->field_provincie[0]['view']
    ?>
    Quello che devi cambiare solamente è il nome del campo (field_nomecampo) in base al nome che tu hai dato al nuovo campo.
  4. Il div con la classe css lo metti tu. Quindi
    <div class="NOMECAMPO"><?php print $node->field_NOMECAMPO[0]['view'] ?></div>

    Poi dal css stabilisci come deve apparire.

Ok!
allora sistemato il nome del file, cacellato content...
aggiungo [0]['view'] a tutto ...MA
...siccome mi paice capire cosa faccio, cosa significano e a cosa servono [0]['view'] ??

poi il CSS ok per il "decido io che il div avrà class Nomecampo" --> quello che non so è: tra i tanti CSS che mi trovo nelle tante cartelle qual'è quello da cui il mio file.tpl.php legge? come faccio ad individuarlo (nel tema che sto usando per provare, ad esempio, ci sono ben 4 file css !)

Grazie ancora ed abbiate pazienza please!

Per quanto riguarda [0]['view'] non so risponderti, conosco il risultato ma non il motivo :-) magari qualche programmatore presente sul forum può dare una risposta.

Per i css io di solito non tocco quelli del tema ma ne aggiungo uno specifico per le varie personalizzazioni, chiamato appunto personalizzazioni.css

Per farlo prendere dal tema, apri il file tuotema.info ed aggiungi

stylesheets[all][] = personalizzazioni.css

Poi pulisci la cache di Drupal ed a qual punto puoi personalizzare i vari campi come meglio credi.

In alternativa scegli uno degli altri css presenti es. style.css

da un non programmatore:

<?php
print $node->field_province[0]['view']
?>

significa: tira fuori dall'oggetto $node (il nodo, tutto) il valore di visualizzazione ([0]['view']) del campo province

...oppure no?

Bella domanda...

webnadia wrote:
Ok!
allora sistemato il nome del file, cacellato content...
aggiungo [0]['view'] a tutto ...MA
...siccome mi paice capire cosa faccio, cosa significano e a cosa servono [0]['view'] ??

Se installi Devel (ottimo modulo per i curiosi e non) e aggiungi in cima del tuo node-pippo.tpl.php questo:
<?php
 dsm
($node);
?>

troverai nella zona messaggi un elemento che si espande cliccando - dimostra tutto quello che si può sapere su $node. Troverai anche $node->field_province con i suoi array.
Per rispondere: [0] perchè è un campo CCK che può sempre essere multiple. Se avessi un campo multiple, troverai anche un [1], ecc. ['view'] e uno delle viste formattati del campo, ed anche quello meglio addato al HTML.

Più imparo, più dubito.

Rieccomi qua!

intanto grazie a tutti per l'aiuto :o)
quindi vi espongo il problema successivo!

non ho ancora avuto modo di addendtrarmi in Devel (cosa che farò appena il lavoro presserà di meno!) ed intanto dopo diversi smanettamenti ho capito un po' di cose tra cui che era meglio lavorare con un tema più "semplice" rispetto a quello inizialmente scelto!

Nel frattempo ho capito anche meglio come impostare i miei "Tipi Contenuto" ed è emerso che per ogni Tipo (ne ho tre che verranno modificati direttamente dall'utente) ho in realtà Uno ed un solo "field" da personalizzare (field_fvg)
quindi se cancello
<?php print $content ?>
mi complico la vita perchè dovrei andare a settare dei DIV per una decina di field creati per cui mi va benissimo la formattazione data dal tema base però se lascio print $content e scrivo

<div class="fvg">
<?php print $node->field_fvg [0]['view']?>
    </div>

il testo contenuto nel campo FVG mi appare due volte (come FVG e come Content)
c'è un modo per salvare capra e cavoli ed avere quindi il mio FVG personalizzato e gli altri campi come da tema?

Sempre Grazie
Sempre Nadia!

Se il campo è solo uno puoi comunque a personalizzarne la visualizzazione dal css usando la classe che crea di default. Hai meno controllo ma dipende dal risultato che vuoi ottenere, potrebbe anche essere sufficiente.

Grazie a tutti.

Studiato, applicato, sudato ...e ora comincia a funzionare! mi manca solo da capire come far funzionare l'inserimento immagini e intervenire sulla home page ...ma aprirò post in lugo adatto.