Subversion Repositories personal-webbase

Rev

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

  1. <?php
  2.  
  3. if (!defined('WBLEGAL')) die('Kann nicht ohne Personal WebBase ausgef&uuml;hrt werden.');
  4.  
  5. echo $header;
  6.  
  7. echo '<h1>'.htmlentities($module_information->caption).'</h1>';
  8.  
  9. echo '<center><b>Wochenauflistung</b> - <a href="'.$_SERVER['PHP_SELF'].'?modul='.$modul.'&amp;seite=auflistung"><b>Terminauflistung</b></a> - <a href="'.$_SERVER['PHP_SELF'].'?modul='.$modul.'&amp;seite=edit&amp;aktion=new&amp;herkunft='.$seite.'"><b>Neuer Eintrag</b></a><br><br></center>';
  10.  
  11. // http://news.php.net/php.notes/102689
  12.  
  13. function get_week_boundaries($int_time)
  14. {
  15.         // first: find monday 0:00
  16.         $weekdayid=date("w",$int_time);
  17.  
  18.         // christliche zeitrechnung (woche beginnt mit sonntag) umgehen
  19.         if ($weekdayid == 0) $weekdayid = 7;
  20.  
  21.         $dayid=date("j",$int_time);
  22.         $monthid=date("n", $int_time);
  23.         $yearid=date("Y", $int_time);
  24.         $beginofday=mktime(0,0,0,$monthid,$dayid,$yearid);
  25.         $beginofweek=$beginofday - (($weekdayid-1) * 86400); //86400 == seconds of one day (24 hours)
  26.         //now add the value of one week and call it the end of the week
  27.         //NOTE: End of week is Sunday, 23:59:59. I think you could also use Monday 00:00:00 but I though that'd suck
  28.         $endofweek=($beginofweek + 7 * 86400)-1;
  29.         $week["begin"]=$beginofweek;
  30.         $week["end"]=$endofweek;
  31.         $week["pov"]=$int_time;
  32.         return $week;
  33. }
  34.  
  35. function zweinull($e)
  36. {
  37.         if (strlen($e) == 1)
  38.                 return '0'.$e;
  39.         else
  40.                 return $e;
  41. }
  42.  
  43. function wochenstat($woche)
  44. {
  45.         global $WBConfig, $benutzer, $modul, $seite;
  46.  
  47.         wb_draw_table_begin();
  48.  
  49.         wb_draw_table_content('100', '<b>Tag</b>', '', '<b>Name</b>', '190', '<b>Startzeitpunkt</b>', '130', '<b>Verbleibende Zeit</b>', '100', '<b>Aktionen</b>', '100', '');
  50.  
  51.         $current_week = get_week_boundaries(time()+$woche*60*60*24*7);
  52.  
  53.         $eintr = false;
  54.         for ($i=0; $i<7; $i++)
  55.         {
  56.                 $wbeg = $current_week["begin"]+$i*60*60*24;
  57.                 $wd = date("d", $wbeg);
  58.                 $wm = date("m", $wbeg);
  59.                 $wy = date("Y", $wbeg);
  60.  
  61.                 if ((date("d") == $wd) && (date("m") == $wm) && (date("Y") == $wy))
  62.                 {
  63.                         $a1 = '<span class="red"><b>';
  64.                         $a2 = '</b></span>';
  65.                 }
  66.                 else
  67.                 {
  68.                         $a1 = '';
  69.                         $a2 = '';
  70.                 }
  71.                 $res = db_query("SELECT `id`, `name`, `start_time` FROM `".$WBConfig->getMySQLPrefix()."calendar` WHERE `user_cnid` = '".$benutzer['id']."' AND SUBSTRING(`start_date`, 1, 4) = '$wy' AND SUBSTRING(`start_date`, 6, 2) = '$wm' AND SUBSTRING(`start_date`, 9, 2) = '$wd' ORDER BY `start_date`, `start_time`, `id`");
  72.                 while ($row = db_fetch($res))
  73.                 {
  74.                         $eintr = true;
  75.                         $z = ceil((mktime(0, 0, 0, $wm, $wd, $wy)-mktime(0, 0, 0, date('m'), date('d'), date('Y')))/60/60/24);
  76.                         if ($z < 0)
  77.                         {
  78.                                 $a1 = '<span class="grey">';
  79.                                 $a2 = '</span>';
  80.                         }
  81.  
  82.                         $wochentag = '';
  83.                         if ($i == 0) $wochentag = 'Montag';
  84.                         if ($i == 1) $wochentag = 'Dienstag';
  85.                         if ($i == 2) $wochentag = 'Mittwoch';
  86.                         if ($i == 3) $wochentag = 'Donnerstag';
  87.                         if ($i == 4) $wochentag = 'Freitag';
  88.                         if ($i == 5) $wochentag = 'Samstag';
  89.                         if ($i == 6) $wochentag = 'Sonntag';
  90.  
  91.                         $verbleibend = '';
  92.                         if ($z < 0) $verbleibend = 'Abgelaufen';
  93.                         if ($z == 0) $verbleibend = 'Heute';
  94.                         if ($z == 1) $verbleibend = 'Morgen';
  95.                         if ($z == 2) $verbleibend = '&Uuml;bermorgen';
  96.                         if ($z > 2) $verbleibend = $z.' Tage';
  97.  
  98.                         wb_draw_table_content('', $a1.$wochentag.$a2, '', $a1.$row['name'].$a2, '', $a1.de_convertmysqldatetime($wy.'-'.$wm.'-'.$wd.' '.$row['start_time']).$a2, '', $a1.$verbleibend.$a2, '', '<a href="'.$_SERVER['PHP_SELF'].'?seite=edit&amp;modul='.$modul.'&amp;aktion=edit&amp;danach=A&amp;id='.$row['id'].'&amp;herkunft='.$seite.'" class="menu">Bearbeiten</a>', '', '<a href="javascript:abfrage(\''.$_SERVER['PHP_SELF'].'?seite=operate&amp;modul='.$modul.'&amp;aktion=delete&amp;zurueck='.$seite.'&amp;id='.$row['id'].'\');" class="menu">L&ouml;schen</a>');
  99.                 }
  100.         }
  101.         if (!$eintr)
  102.         {
  103.                 wb_draw_table_span_content(0, 6, 'Keine Termine vorhanden!');
  104.         }
  105.  
  106.         wb_draw_table_end();
  107. }
  108.  
  109. $d = date('j');
  110. $m = date('n');
  111. $y = date('Y');
  112.  
  113. $anzahl_wochen = 5; // Konfigurierbar
  114.  
  115. for ($ii=0; $ii<=$anzahl_wochen; $ii++)
  116. {
  117.         if ($ii == 0)
  118.                 $ueb = 'diese Woche';
  119.         else if ($ii == 1)
  120.                 $ueb = 'n&auml;chste Woche';
  121.         else if ($ii == 2)
  122.                 $ueb = '&uuml;bern&auml;chste Woche';
  123.         else if ($ii > 2)
  124.                 $ueb = 'in '.$ii.' Wochen';
  125.  
  126.         $uri = get_week_boundaries(mktime(0,0,0,$m,$d+7*$ii,$y));
  127.         echo '<b>Termine '.$ueb.'</b> (Kalenderwoche '.date('W/Y', mktime(0,0,0,$m,$d+7*$ii,$y)).' von '.date("d.m.Y", $uri['begin']).' - '.date("d.m.Y", $uri['end']).')<br><br>';
  128.         wochenstat($ii);
  129. }
  130.  
  131. echo $footer;
  132.  
  133. ?>