Subversion Repositories personal-webbase

Rev

Rev 4 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. if (!defined('IBLEGAL')) die('Kann nicht ohne Personal WebBase ausgef&uuml;hrt werden.');
  4.  
  5. function cron_shutdown()
  6. {
  7.   global $modul;
  8.   global $passiv;
  9.   global $logge_fehler;
  10.   global $out;
  11.  
  12.   if ($logge_fehler)
  13.   {
  14.     $out = ob_get_contents();
  15.     if ((ob_get_level() > 0) || (ob_get_length() !== FALSE))
  16.       ob_end_clean();
  17.   }
  18.  
  19.   if (($out != '') && (function_exists('fehler_melden')))
  20.   {
  21.     db_connect(); // Durch die übliche Shutdown-Funktion ist die DB-Verbindung bereits getrennt
  22.     fehler_melden($modul, '<b>Cron-Ausgabe nicht leer</b><br><br>Der Crondurchlauf ist unsauber, da ein Modul Ausgaben verursacht. Dies zeigt in der Regel eine Fehlfunktion des Systems oder eine St&ouml;rung der Cronjobs<!-- und kann sich auf das ViaThinkSoft-Promoting auswirken-->. Die komplette Ausgabe des Crondurchlaufes ist:<br><br>'.$out);
  23.     db_disconnect();
  24.   }
  25. }
  26.  
  27. // Cron-Jobs nur jede Minute zulassen, nicht öfter
  28. $rsc = db_query("SELECT * FROM `".$mysql_zugangsdaten['praefix']."konfig` WHERE `name` = 'last_cronjob' AND `wert` <= DATE_SUB(NOW(), INTERVAL 1 MINUTE)");
  29. if (db_num($rsc) > 0)
  30. {
  31.   // Fehlerlogging starten
  32.   $logge_fehler = true;
  33.  
  34.   register_shutdown_function('cron_shutdown');
  35.  
  36.   // Für was den ganzen Fetz? Wenn PHP und MySQL Zeit verschieden sind (z.B. auf unterschiedliche Server verteilt), gäbe es Probleme!
  37.   $res = db_query("SELECT NOW()");
  38.   $row = db_fetch($res);
  39.  
  40.   ib_change_config('last_cronjob', $row[0], $modul);
  41.   ib_change_config('lastpromotor', $_SERVER['REMOTE_ADDR'], $modul);
  42.  
  43.   ob_start();
  44.  
  45.   foreach ($module as $m1 => $m2)
  46.   {
  47.     $modulueberschrift = '';
  48.     $modulsekpos = '';
  49.     $modulpos = '';
  50.     $modulrechte = '';
  51.     $autor = '';
  52.     $version = '';
  53.     $menuevisible = '';
  54.     $license = '';
  55.     $deaktiviere_zugangspruefung = 0;
  56.  
  57.     // Info: eval() statt include(), damit Parsing-Fehler gemeldet werden können, die der Admin nicht sehen würde!
  58.  
  59.     // Damit die Modulseiten auch auf ihre eigenen Modulvariablen zugreifen können, var.inc.php einbinden
  60.     if (file_exists('modules/'.wb_dir_escape($m2).'/var.inc.php'))
  61.       eval('?>' . trim(implode("\n", file('modules/'.wb_dir_escape($m2).'/var.inc.php'))));
  62.  
  63.     // Nun die Modulcrons laden
  64.     if (file_exists('modules/'.wb_dir_escape($m2).'/crossover/'.wb_dir_escape($modul).'/main.inc.php'))
  65.       eval('?>' . trim(implode("\n", file('modules/'.wb_dir_escape($m2).'/crossover/'.wb_dir_escape($modul).'/main.inc.php'))));
  66.   }
  67.  
  68.   unset($m1);
  69.   unset($m2);
  70.  
  71.   $success = true;
  72. }
  73. else
  74. {
  75.   $success = false;
  76. }
  77.  
  78. // Ab hier keine Fehler mehr loggen...
  79. $out = ob_get_contents();
  80. if ((ob_get_level() > 0) || (ob_get_length() !== FALSE))
  81.   ob_end_clean();
  82. $logge_fehler = false;
  83.  
  84. if ((isset($passiv)) && ($passiv == 1))
  85. {
  86.   // Wird bei der Hinzufügung der "GIF"-Datei gesetzt, nicht hier
  87.   // ib_change_config('passivcron', '0', $modul);
  88.  
  89.   // Wir tun so, als wären wir ein Spacer
  90.   if (!headers_sent()) header('Content-type: image/gif');
  91.   readfile('design/spacer.gif');
  92. }
  93. else
  94. {
  95.   ib_change_config('passivcron', '0', $modul);
  96.   if ((!isset($silent)) || ($silent != 'yes'))
  97.   {
  98.     if ($success)
  99.       echo $header.'<b>Cronjobs ausgef&uuml;hrt</b><br><br>Die Cronjobs wurden erfolgreich durchgef&uuml;hrt'.$footer;
  100.     else
  101.       echo $header.'<b>Cronjobs nicht ausgef&uuml;hrt</b><br><br>Die Cronjobs k&ouml;nnen nur jede Minute ausgef&uuml;hrt werden.'.$footer;
  102.   }
  103. }
  104.  
  105. ?>
  106.