Subversion Repositories personal-webbase

Rev

Rev 4 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 daniel-mar 1
<?php
2
 
3 daniel-mar 3
if (!defined('IBLEGAL')) die('Kann nicht ohne Personal WebBase ausgef&uuml;hrt werden.');
2 daniel-mar 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
3 daniel-mar 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);
2 daniel-mar 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);
3 daniel-mar 41
  ib_change_config('lastpromotor', $_SERVER['REMOTE_ADDR'], $modul);
2 daniel-mar 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
8 daniel-mar 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'))));
2 daniel-mar 62
 
63
    // Nun die Modulcrons laden
8 daniel-mar 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'))));
2 daniel-mar 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
 
3 daniel-mar 105
?>