Come chiamare una funzione quando viene visualizzato un nodo?


8

Ogni volta che visualizzo una pagina di nodo, voglio chiamare una funzione ma non sono sicuro di come farlo.

Stavo pensando che dovrei usare hook_menu()e dichiarare il percorso come nodo /% e collegare una funzione di callback a quel percorso. È quello il modo giusto o esiste un modo corretto / migliore?


è molto semplice rispondere?
Harshal,

1
Sì, la risposta è molto semplice, ma non sono sicuro del motivo per cui questa sia una brutta domanda. Il downvote sembra IMO non necessario. Ho modificato per chiarire e rendere ovvio che ci hai pensato anche tu, spero che sia abbastanza per placare gli scettici :)
Clive

Devo ammettere che la modifica di Clive ha notevolmente migliorato la leggibilità di questa domanda :) +1 da parte mia. Domande a cui è semplice rispondere quando sai che la risposta non è sempre sbagliata, a volte è difficile cercarle nella rete o nei documenti drupal.og.
Mołot,

Risposte:


6

Puoi implementare hook_node_view()

Agire su un nodo che viene assemblato prima del rendering.

per esempio

function MYMODULE_node_view($node, $view_mode, $langcode) {
  if ($node->type == 'the_type' && $view_mode == 'full') {
    // Call your function here.
    my_function($node);
  }
}

2

Il modulo delle regole può anche reagire all'accesso agli URL. È possibile specificare un'azione che dovrebbe accadere in caso di evento se la condizione è vera.

  • Evento: il contenuto viene visualizzato
  • Condizione: Probabilmente "Confronto testuale" su [sito: pagina corrente: percorso]
  • Azione: se nessuno di quelli già forniti soddisfa le tue esigenze, puoi fornire la tua funzione come Azione Regole .
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.