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

Posts: 149
Iscritto il: 04 Apr 08

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?


Posts: 149
Iscritto il: 04 Apr 08

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


Posts: 475
Iscritto il: 09 Giu 05
Sviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneModeratore di Drupal ItaliaRedattore di Drupal Italia. Contribuisco a manuali

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


Posts: 475
Iscritto il: 09 Giu 05
Sviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneModeratore di Drupal ItaliaRedattore di Drupal Italia. Contribuisco a manuali

prova così:

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


Posts: 149
Iscritto il: 04 Apr 08

Ho scritto così

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

Ma non stampa niente in nessuna pagina


Posts: 475
Iscritto il: 09 Giu 05
Sviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneModeratore di Drupal ItaliaRedattore di Drupal Italia. Contribuisco a manuali

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


Posts: 149
Iscritto il: 04 Apr 08

Funziona!!
Grazie!!

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


Posts: 1810
Iscritto il: 01 Gen 07
Admin di Drupal ItaliaSviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneTraduttore

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

__________________

Ciao
    Mavimo
_________________
Io mio sito su Drupal, CFD e OpenFOAM (e se vi chiedete cosa c'entrano l'uno con l'altro.. bhè, non so nemmeno io la risposta Sticking out tongue )


Posts: 475
Iscritto il: 09 Giu 05
Sviluppatore DrupalDrupal Monkey. Mangio moduli e API a colazioneModeratore di Drupal ItaliaRedattore di Drupal Italia. Contribuisco a manuali

Il suo problema è che non vede l'oggetto node nel blocco Smiling

Ciao
Gianni


Posts: 20
Iscritto il: 22 Dic 07

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.


Condividi contenuti