/_grenier_/comarquage/svn/inc/comarquage_update_xml.php

https://bitbucket.org/pombredanne/spip-zone-treemap · PHP · 80 lines · 57 code · 10 blank · 13 comment · 10 complexity · 045c552bfbabf2d0f97bcbaf2a627b2f MD5 · raw file

  1. <?php
  2. /*
  3. * Copyright (C) 2006 Cedric Morin
  4. * Licence GPL
  5. *
  6. * Plugin SPIP 1.9 (c) 2006 par Notre-ville.net
  7. * Web : http://www.notre-ville.net
  8. * Cedric MORIN (cedric.morin@notre-ville.net)
  9. *
  10. */
  11. function cron_comarquage_update_xml($t){
  12. include_spip('inc/comarquage');
  13. $file_liste = array();
  14. // Recherche des fichiers a mettre a jour
  15. if (isset($GLOBALS['meta']['comarquage_xml_to_update'])){
  16. $file_liste = unserialize($GLOBALS['meta']['comarquage_xml_to_update']);
  17. }
  18. else {
  19. // si liste existe pas, on la construit
  20. // et on rend la main pour que ce soit pas trop long
  21. $table = preg_files(_DIR_CACHE._DIR_CACHE_COMARQUAGE_XML, '[.]*\.xml$');
  22. $time = time();
  23. foreach ($table as $file){
  24. if ( ($time - filemtime($file)) <$GLOBALS['meta']['comarquage_local_refresh']) {
  25. $file_liste[] = $file;
  26. }
  27. }
  28. if (count($file_liste)){
  29. ecrire_meta('comarquage_xml_to_update',serialize($file_liste));
  30. ecrire_metas();
  31. spip_log("[comarquage] ".count($file_liste)." fichiers a mettre a jour ...");
  32. return (0 - $t); // revenir ...
  33. }
  34. else {
  35. effacer_meta('comarquage_xml_to_update');
  36. ecrire_metas();
  37. return 1; // fini
  38. }
  39. }
  40. $compteur = 4; // nombre maxi de pages mises a jour
  41. while ($compteur-->0 && count($file_liste)){
  42. $file = array_pop($file_liste);
  43. spip_log("[comarquage] mise a jour $file");
  44. $parametres = array();
  45. $parametres['xml_full_path'] = $file;
  46. $parametres['xml'] = basename($file);
  47. $ret = comarquage_recuperer_page_xml($parametres);
  48. if ($ret = 10){ // fichier non modifie
  49. @touch($file);
  50. }
  51. // on nettoie les fichiers cache parses au passage
  52. $file = basename($file,'.xml');
  53. $table = preg_files(_DIR_CACHE._DIR_CACHE_COMARQUAGE_CACHE, '^'.$file.'\.[0-9a-f]*\.cache$');
  54. foreach ($table as $file){
  55. @unlink($file);
  56. }
  57. }
  58. if (count($file_liste)){
  59. ecrire_meta('comarquage_xml_to_update',serialize($file_liste));
  60. ecrire_metas();
  61. spip_log("[comarquage] ".count($file_liste)." fichiers restant a mettre a jour ...");
  62. return (0 - $t); // revenir ...
  63. }
  64. else {
  65. effacer_meta('comarquage_xml_to_update');
  66. ecrire_metas();
  67. return 1; // fini
  68. }
  69. }
  70. ?>