Un bolcco è in grado di "capire" in che nodo si trova?

10 contenuti / 0 new
Ultimo contenuto
Un bolcco è in grado di "capire" in che nodo si trova?

vorrei stampare un immagine diversa a seconda del nodo.
nel mio blocco vorrei fare una cosa simile a

<img src="/images /img-laterale-"<?php echo "$node->nid" ?>".jpg" />

quindi inserendo nell'url dell'immagine il numero di nodo corrente.
E' fattibile? c'è una variabile globale che mi sfugge?

Ho trovato questo codice, che inserito nel blocco, mi sputa fuori tutte le variabili globali

<?php
print var_dump($GLOBALS);
?>

Quello che mi interessa sembra contenuto in
["node/1"]=>  array(2) { ["callback"]=>  string(14) "node_page_view" ["callback arguments"]=>  array(1) { [0]=>  object(stdClass)#2 (26) { ["nid"]=>  string(1) "1"......
una cosa così però non so mica come estrarla

Sì, direi che è fattibile..... ma scusa, non ti funziona?
hai provato ad aggiungere:
global $node;
prima della tua istruzione?

Così, al volo, non direi ci sono problemi.

Ciao
Gianni

prova così:

<?php
 
global $node;
<
img src="images/img-laterale-"<?php echo $node->nid;
?>
".jpg" /> ?>

Ho scritto così

<?php
global $node;
print
$node->nid;
?>

Ma non stampa niente in nessuna pagina

Allora prendi l'argomento 1 e lo 0 (arg(1) e arg(0)).
Se arg(1) è numerico (verifica) e arg(0)='node', carica l'oggetto nodo con l'istruzione
$oggettonodo = node_load(arg(1));

.........a questo punto hai il nid in $oggettonodo->nid

Ciao
Gianni

Funziona!!
Grazie!!

<?php
if ((is_numeric(arg(1)))&&(arg(0)=='node')){ $oggettonodo = node_load(arg(1));
print
"$oggettonodo->nid";
}
?>

<img src="/files/immagini/tipo-<?php print $node->type ?>-nodo.png" alt="..." />
Prova a vedere se è quello che ti serviva...

Ciao
Marco
--
My blog
Working at @agavee

Il suo problema è che non vede l'oggetto node nel blocco :-)

Ciao
Gianni

Non solo, ma volendo il blocco può conoscere anche il tipo di contenuto del nodo in cui si trova, vedi la discussione: codice php per visualizzare i blocchi | Drupal Italia .
Possibilità che offre interessanti soluzioni.