Hook ?

4 contenuti / 0 new
Ultimo contenuto
Hook ?

Mi sento tremendamente ignorante, ma che si intende per HOOK in ambito Drupal?

hook, letteralmente aggancio, è un sistema che Drupal (come altri sistemi) usa per agganciare le funzioni dei moduli alle proprie. Esempio (semplificato):

Durante l'esecuzione della funzione commento (quando un utente inserisce un commento), Drupal cerca tra tutti i moduli abilitati una funzione col nome NOMEMODULO_comment. Se la trova la esegue.

Con questo si intende l'hook (spero di averti chiarito la cosa =)

Grazie Psicomante, quindi generalizzando se avessi abilitato tra i tanti il modulo Upload ed FiveStar (tanto per fare un esempio) ed al loro interno ci fossero delle funzioni:

Upload_comment
Fivestar_comment

ovviamente con del codice all'interno...queste verrebbero eseguite?

Nel frattempo....buon anno nuovo

Certo, verrebbero eseguite quelle funzioni. Ad esempio questa qui sotto è la funzione hook_comment di un modulo che ho creato per tracciare univocamente via cookie i commenti su un determinato articolo. E' molto grezza ma funziona :)

<?php
 
function anoncom_comment($comment, $op) {
  global
$user;
  if (
$op == 'insert') {
    if (!
$user->uid /*&& $comment['nid'] == 14*/) {
        if(!isset(
$_COOKIE)) $_COOKIE=$HTTP_COOKIE_VARS;
        if (
$_COOKIE["anoncom_id"] != '') $warning = TRUE;
        else {
           
$warning = FALSE;
           
$code anoncom_generation();
           
setcookie('anoncom_id',$code, time() + 31536000, '/');
        }
        if (
$warning == FALSE) db_query("INSERT INTO {anoncom} (cid, mail, code, warning) VALUES (%d, '%s', '%s', %d)", $comment['cid'], $comment['mail'], $code, $warning);
        else
db_query("INSERT INTO {anoncom} (cid, mail, code, warning) VALUES (%d, '%s', '%s', %d)", $comment['cid'], $comment['mail'], $_COOKIE["anoncom_id"], $warning);
    }
  }
}
?>

Buon anno anche a te!