era "problema con node_delete()"

3 contenuti / 0 new
Ultimo contenuto
era "problema con node_delete()"

Ciao,
finalmente (intopando un pò) sono riuscito a risolvere il problema con node_delete() ed ora funziona tutto bene.
Il modulo mi cancella i nodi vecchi e mi scrive quelli nuovi.
Il problema è che lo fa ogni volta che carico qualcosa, vorrei quindi realizzare uno script che mi esegua questa operazione una volta al giorno, magari regolandolo con cron...
qualcuno sa come potrei fare oppure indicarmi un bel tutorial per scrivere script per drupal?
so che sono un rompico****ni ma sono veramente alle prime armi con php per drupal...

un grazie immenso a chi risponderà!
:D

ciao, per eseguire una funzione durante il cron di drupal devi usare l'hook_cron()

Se poi invece vuoi fare una funzione che venga richiamata via cron differente da quello di drupal allora parti dal file cron.php.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Ciao,
mi va bene che la funzione venga chiamata quando drupal esegue il cron che sto gestendo con il modulo poormanscron, lo faccio eseguire una volta al giorno.
Ora però non riesco a capire come faccio a implementare l'hook_cron() nel mio modulo.
Il mio codice è questo:

<?php
// $Id$
/**
* @file
* Esempio minimo di un modulo per Drupal con
* l'implementazione del blocco e della sezione di help
*/
/**
* Implementazione hook_help()
*/
function testblock_help($section, $arg) {
 switch (
$section) {
case
'admin/help#testblock':
return
t('Test module about blocks creation');
}
}
$node_counter="0";
//eliminazione dei vecchi nodi
$res = db_query("SELECT nid FROM {node} WHERE TYPE = '%s' 'alunno'");
while (
$data = db_fetch_array($res)) {
 
node_delete($data['nid']);
 
$node_counter++;
}
  echo
"cancellati ".$node_counter." nodi";
$db_name="content_type_alunni2";
mysql_select_db($db_name,$myconn);
$query_leggi="SELECT * FROM content_type_alunno2";
$result=mysql_query($query_leggi,$myconn);
echo
"result=".$result."</br>";
$numero_righe=mysql_num_rows($result);
for (
$i=0;$i<$numero_righe;$i++)
{
$array_result=mysql_fetch_row($result);
$id=$array_result[2];
$idagenzia=$array_result[3];
$codice=$array_result[4];
//echo $id."|".$idagenzia."|".$codice."<br>";
//creazione di un nuovo nodo (funziona)
$nodo = new StdClass();
$nodo->type = 'alunno';
$nodo->title = 'titolo';
$nodo->field_id[0]['value']=$id;
$nodo->field_idagenzia[0]['value']=$idagenzia;
$nodo->field_regione[0]['value']=$regione;
$nodo->field_provincia[0]['value']=$provincia;
node_save($nodo);
}
?>

che funziona bene ma viene eseguito ogni volta che il sito si aggiorna...
Come realizzo l'implementazione del hook_cron() in modo che questo modulo vada solo quando viene eseguito il cron?

grazie a chi risponderà!
:D