00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00081 function navigation($timestamp){
00082 global $DP_language;
00083 $Gui = new Gui();
00084
00085 $today = mktime(0,0,0);
00086 $lastday = strtotime ("-1 day" , $timestamp) ;
00087 $nextday = strtotime ("+1 day" , $timestamp) ;
00088
00089 eval ("\$day_navigation = \"".$Gui->getTemplate("day_navigation")."\";");
00090
00091 return $day_navigation;
00092
00093 }
00094
00095
00096
00105 function getDateForDay($timestamp){
00106 global $DP_language;
00107 $Date = new TimestampToDate();
00108 $Date->ttd($timestamp);
00109 $showdate = $Date->shorttime;
00110
00111 Return $showdate;
00112
00113
00114 }
00115
00116
00117
00132 function getWholeDay($timestamp, $DB){
00133 global $DP_UId, $_SESSION;
00134 $startshow = mktime(0, 0, 0, date("m", $timestamp), date ("d", $timestamp), date("Y", $timestamp));
00135 $endshow = mktime(23,59,59, date("m", $timestamp), date ("d", $timestamp), date("Y", $timestamp));
00136 $dates = getWholeDayDateList($DP_UId, $startshow, $endshow, $_SESSION[DP_Keywords], $DB);
00137 if($dates){
00138 foreach($dates as $date){
00139 if($_SESSION[DP_JSscript] != 1) {
00140 $wholeDayDayDates=$wholeDayDayDates."<a href=\"dateplaner.php?app=date&date_id=";
00141 $wholeDayDayDates=$wholeDayDayDates.$date[0];
00142 $wholeDayDayDates=$wholeDayDayDates."&PHPSESSID=".$PHPSESSID."\" target=\"_blank\" >";
00143
00144 }else {
00145 $wholeDayDayDates=$wholeDayDayDates."<a href=\"javascript:popup('dateplaner.php?app=date&date_id=";
00146 $wholeDayDayDates=$wholeDayDayDates.$date[0];
00147 $wholeDayDayDates=$wholeDayDayDates."&PHPSESSID=".$PHPSESSID."','Date','width=600,height=600,directories=no,toolbar=no,location=no,menubar=no,scrollbars=yes,status=yes,resizable=yes,dependent=no')\" >";
00148 }
00149 $wholeDayDayDates=$wholeDayDayDates.$date[5]."</a> ";
00150 $wholeDayDayDates=$wholeDayDayDates.$date[6]."<BR>";
00151 }
00152 }
00153 return $wholeDayDayDates;
00154
00155
00156 }
00157
00158
00159
00176 function generateDay($timestamp, $DB){
00177 global $DP_UId, $_SESSION ;
00178 $startDisplayTimeInMinutes = 60 * $_SESSION[DP_Starttime];
00179 $endDisplayTimeInMinutes = 60 * $_SESSION[DP_Endtime];
00180
00181 $intervall = 15;
00182 initTS($timestamp, $startshow, $endshow);
00183 $table_sorted = getDayList($DP_UId,$startshow , $endshow, $_SESSION[DP_Keywords], $DB);
00184 if($table_sorted){
00185 for($stream=0; $stream<count($table_sorted); $stream++){
00186 turnToMinutes ($table_sorted[$stream], $startshow);
00187
00188 }
00189 for($stream=0; $stream<count($table_sorted); $stream++){
00190 initDisplayTime ($startDisplayTimeInMinutes, $endDisplayTimeInMinutes, $table_sorted[$stream], $intervall);
00191
00192 }
00193 for($stream=0; $stream<count($table_sorted); $stream++){
00194
00195 padFront($table_sorted[$stream], $stream, $arrayPadded, $intervall, $startDisplayTimeInMinutes);
00196 for($counter=1; $counter<count($table_sorted[$stream]); $counter++){
00197 padMiddle($table_sorted[$stream], $counter, $stream, $arrayPadded, $intervall);
00198 }
00199 padBack ($stream, $arrayPadded, $intervall, $endDisplayTimeInMinutes);
00200 }
00201 $dayString = generateOutput($arrayPadded, $intervall, $startDisplayTimeInMinutes, $endDisplayTimeInMinutes, $startshow, $timestamp);
00202
00203 }
00204 else{
00205 $arrayPadded[0][0][0]="NULL";
00206 $arrayPadded[0][0][1]=$startDisplayTimeInMinutes;
00207 $arrayPadded[0][0][2]=$startDisplayTimeInMinutes+$intervall;
00208 $arrayPadded[0][0][5]=$intervall;
00209 $arrayPadded[0][0][6]=1;
00210 padBack(0, $arrayPadded, $intervall, $endDisplayTimeInMinutes);
00211 $dayString = generateOutput($arrayPadded, $intervall, $startDisplayTimeInMinutes, $endDisplayTimeInMinutes, $startshow, $timestamp);
00212
00213 }
00214 return $dayString;
00215
00216 }
00217
00218
00219
00232 function initTS($timestamp, &$startshow, &$endshow){
00233 $startshow = mktime(0, 0, 0, date("m", $timestamp), date ("d", $timestamp), date("Y", $timestamp));
00234 $endshow = mktime(23,59,59, date("m", $timestamp), date ("d", $timestamp), date("Y", $timestamp));
00235 }
00236
00237
00238
00251 function initDisplayTime(&$startDisplayTimeInMinutes, &$endDisplayTimeInMinutes, $dates, $intervall){
00252 foreach($dates as $dim1){
00253 if( $dim1[1]< $startDisplayTimeInMinutes){
00254 $startDisplayTimeInMinutes = $dim1[1] - $dim1[1]%$intervall;
00255
00256 }
00257
00258 if( $dim1[2] > $endDisplayTimeInMinutes){
00259 $endDisplayTimeInMinutes = $dim1[2] + $dim1[2]%$intervall;
00260 if($endDisplayTimeInMinutes > 1440) $endDisplayTimeInMinutes = 1440;
00261 }
00262
00263 }
00264
00265 }
00266
00267
00268
00281 function turnToMinutes(&$dateList, $startshow){
00282 global $DP_language;
00283 $format = $DP_language[date_format];
00284 for($date=0; $date<count($dateList); $date++){
00285 $dateList[$date][7]= date($format, $dateList[$date][1]);
00286 $dateList[$date][8]= date($format, $dateList[$date][2]);
00287 $dateList[$date][1]= ($dateList[$date][1]-$startshow)/60;
00288 if($dateList[$date][1]< 0){$dateList[$date][1]=0;}
00289 $dateList[$date][2]= ($dateList[$date][2]-$startshow)/60;
00290 if($dateList[$date][2]> 1440){$dateList[$date][2]=1440;}
00291 }
00292 }
00293
00294
00295
00305 function testOutput($dim3){
00306 foreach($dim3 as $key => $dim2){
00307 echo "Stream: ".$key."<br>";
00308 foreach($dim2 as $dim1){
00309 foreach($dim1 as $v){
00310 echo ":".$v." ";
00311 }
00312 echo "<br>";
00313 }
00314 echo "<br>";
00315 }
00316 }
00317
00318
00319
00329 function testOutput2($dim2){
00330 foreach($dim2 as $dim1){
00331 foreach($dim1 as $v){
00332 echo ":".$v." ";
00333 }
00334 echo "<br>";
00335 }
00336 echo "<br>";
00337 }
00338
00339
00340
00356 function padFront($dateList, $stream, &$arrayPadded, $intervall, $startDisplayTimeInMinutes){
00357 $padStart= $startDisplayTimeInMinutes;
00358 $padEnd = $startDisplayTimeInMinutes + $intervall;
00359 $start=$dateList[0][1];
00360 $end=$dateList[0][2];
00361 $row=0;
00362 while($padEnd<=$start){
00363 $arrayPadded[$stream][$row][0]="NULL";
00364 $arrayPadded[$stream][$row][1]=$padStart;
00365 $arrayPadded[$stream][$row][2]=$padEnd;
00366 $arrayPadded[$stream][$row][5]=$intervall;
00367 $arrayPadded[$stream][$row][6]=1;
00368 $padStart=$padEnd;
00369 $padEnd=$padEnd+$intervall;
00370 $row++;
00371 }
00372 if($padStart < $start){
00373 $arrayPadded[$stream][$row][0]="NULL";
00374 $arrayPadded[$stream][$row][1]=$padStart;
00375 $arrayPadded[$stream][$row][2]=$start;
00376 $arrayPadded[$stream][$row][5]=$start - $padStart;
00377 $arrayPadded[$stream][$row][6]=1;
00378 $padEnd=$padEnd+$intervall;
00379 $row++;
00380 }
00381
00382 $arrayPadded[$stream][$row][0]=$dateList[0][0];
00383 $arrayPadded[$stream][$row][1]=$dateList[0][1];
00384 $arrayPadded[$stream][$row][2]=$dateList[0][2];
00385 if($arrayPadded[$stream][$row][2]==$arrayPadded[$stream][$row][1])$arrayPadded[$stream][$row][2]++;
00386 $arrayPadded[$stream][$row][3]=$dateList[0][3];
00387 $arrayPadded[$stream][$row][4]=$dateList[0][4];
00388 $arrayPadded[$stream][$row][5]=$end - $start;
00389 $arrayPadded[$stream][$row][6]=1;
00390 $arrayPadded[$stream][$row][7]=$dateList[0][7];
00391 $arrayPadded[$stream][$row][8]=$dateList[0][8];
00392 $row++;
00393 }
00394
00395
00396
00412 function padMiddle($dateList, $counter, $stream, &$arrayPadded, $intervall){
00413 $lastElement=count($arrayPadded[$stream])-1;
00414 $lastEnd=$arrayPadded[$stream][$lastElement][2];
00415 if($dateList[$counter]){
00416 $nextStart = $dateList[$counter][1];
00417 $nextIntervall=$lastEnd+$intervall-$lastEnd%$intervall;
00418 while($nextIntervall < $nextStart){
00419 $lastElement++;
00420 $arrayPadded[$stream][$lastElement][0]="NULL";
00421 $arrayPadded[$stream][$lastElement][1]=$lastEnd;
00422 $arrayPadded[$stream][$lastElement][2]=$nextIntervall;
00423 $arrayPadded[$stream][$lastElement][5]=$nextIntervall-$lastEnd;
00424 $arrayPadded[$stream][$lastElement][6]=1;
00425 $lastEnd = $nextIntervall;
00426 $nextIntervall = $nextIntervall + $intervall;
00427 }
00428 if($nextStart-$lastEnd>0){
00429 $lastElement++;
00430 $arrayPadded[$stream][$lastElement][0]="NULL";
00431 $arrayPadded[$stream][$lastElement][1]=$lastEnd;
00432 $arrayPadded[$stream][$lastElement][2]=$nextStart;
00433 $arrayPadded[$stream][$lastElement][5]=$nextStart-$lastEnd;
00434 $arrayPadded[$stream][$lastElement][6]=1;
00435 }
00436 $lastElement++;
00437 $arrayPadded[$stream][$lastElement][0]=$dateList[$counter][0];
00438 $arrayPadded[$stream][$lastElement][1]=$dateList[$counter][1];
00439 $arrayPadded[$stream][$lastElement][2]=$dateList[$counter][2];
00440 if($arrayPadded[$stream][$lastElement][1]==$arrayPadded[$stream][$lastElement][2])$arrayPadded[$stream][$lastElement][2]++;
00441 $arrayPadded[$stream][$lastElement][3]=$dateList[$counter][3];
00442 $arrayPadded[$stream][$lastElement][4]=$dateList[$counter][4];
00443 $arrayPadded[$stream][$lastElement][5]=$dateList[$counter][2] - $nextStart;
00444 $arrayPadded[$stream][$lastElement][6]=1;
00445 $arrayPadded[$stream][$lastElement][7]=$dateList[$counter][7];
00446 $arrayPadded[$stream][$lastElement][8]=$dateList[$counter][8];
00447
00448 }
00449 }
00450
00451
00452
00453
00454
00468 function padBack($stream, &$arrayPadded, $intervall, $endDisplayTimeInMinutes){
00469 $lastElement=count($arrayPadded[$stream])-1;
00470 $lastEnd=$arrayPadded[$stream][$lastElement][2];
00471 $nextStart=$lastEnd;
00472 $nextEnd = ($nextStart - $nextStart%$intervall)+$intervall;
00473 while($endDisplayTimeInMinutes+15>=$nextEnd){
00474 $lastElement++;
00475 $arrayPadded[$stream][$lastElement][0]="NULL";
00476 $arrayPadded[$stream][$lastElement][1]=$nextStart;
00477 $arrayPadded[$stream][$lastElement][2]=$nextEnd;
00478 $arrayPadded[$stream][$lastElement][5]=$nextEnd-$nextStart;
00479 $arrayPadded[$stream][$lastElement][6]=1;
00480 $nextStart=$nextEnd;
00481 $nextEnd=$nextEnd+$intervall;
00482 }
00483 }
00484
00485
00486
00515 function generateOutput($arrayPadded, $intervall, $startDisplayTimeInMinutes, $endDisplayTimeInMinutes, $startshow, $timestamp){
00516 global $DP_CSS,$DP_language, $templatefolder, $actualtemplate, $_SESSION;
00517
00518 $ttd = new TimestampToDate;
00519
00520 $stream=count($arrayPadded)-1;
00521 for($i=0; $i<=$stream; $i++){
00522 $streamCounter[$i]=0;
00523 }
00524 for($time=$startDisplayTimeInMinutes; $time< $endDisplayTimeInMinutes; $time++){
00525 $dayString=$dayString. "<TR >";
00526 if($time%15==0) {
00527 $dayString=$dayString. "<TD valign='top' width='10' rowspan='".$intervall."' ".$DP_CSS[tblrow2]." style='border-style: solid; border-width: 1' ".$DP_CSS[small]." ><span ".$DP_CSS[small]." >";
00528 $Stunde = ($time-$time%60)/60 ;
00529 $Viertel= $time%60;
00530 if ($Viertel==0) $Viertel="00";
00531 $ttd->ttd($timestamp);
00532 $new_ts = mktime ( $Stunde , $Viertel , 0, $ttd->monthnumber_long , $ttd->day_of_month, $ttd->year_long );
00533 $dayString=$dayString."<a href=\"javascript:popup('dateplaner.php?app=date×tamp=".$new_ts."&PHPSESSID=$PHPSESSID','Date','width=600,height=650,directories=no,toolbar=no,location=no,menubar=no,scrollbars=yes,status=yes,resizable=yes,dependent=no')\" TITLE=\"".$DP_language[new_doc]."\" >".$Stunde.":".$Viertel."
00534 </a>";
00535 $dayString=$dayString. "</span></TD>";
00536 }
00537 for($i=0; $i<=$stream; $i++){
00538 if($arrayPadded[$i][$streamCounter[$i]][1]==$time){
00539 while($arrayPadded[$i][$streamCounter[$i]][1]==$time){
00540 if($arrayPadded[$i][$streamCounter[$i]][0]!="NULL"){
00541 $dayString=$dayString."<TD valign='top' rowspan=".$arrayPadded[$i][$streamCounter[$i]][5]." ".$DP_CSS[tblrow2]." style='border-style: solid; border-width: 1' ".$DP_CSS[small]." ><span ".$DP_CSS[small]." >";
00542 if($_SESSION[DP_JSscript] != 1) {
00543 $dayString=$dayString."<a href=\"dateplaner.php?app=date&date_id=";
00544 $dayString=$dayString.$arrayPadded[$i][$streamCounter[$i]][0];
00545 $dayString=$dayString."&PHPSESSID=".$session_id."×tamp=".$startshow."\" target=\"_blank\" >";
00546 }else {
00547 $dayString=$dayString."<a href=\"javascript:popup('dateplaner.php?app=date&date_id=";
00548 $dayString=$dayString.$arrayPadded[$i][$streamCounter[$i]][0];
00549 $dayString=$dayString."&PHPSESSID=".$session_id."×tamp=".$startshow."','Date','width=600,height=600,directories=no,toolbar=no,location=no,menubar=no,scrollbars=yes,status=yes,resizable=yes,dependent=no')\" >";
00550 }
00551
00552 $dayString=$dayString.$arrayPadded[$i][$streamCounter[$i]][7];
00553
00554 if($arrayPadded[$i][$streamCounter[$i]][7] != $arrayPadded[$i][$streamCounter[$i]][8] )
00555 {
00556 $dayString=$dayString." - ".$arrayPadded[$i][$streamCounter[$i]][8];
00557 }
00558 $DateValues[shorttext] = $arrayPadded[$i][$streamCounter[$i]][3] ;
00559 $DateValues[text] = $arrayPadded[$i][$streamCounter[$i]][4];
00560
00561 $DateValues = parseDataForOutput ($DateValues);
00562 $dayString=$dayString."</a> - <b>".$DateValues[shorttext]."</b>";
00563 $dayString=$dayString."<BR>".$DateValues[text];
00564 $dayString=$dayString."</span></TD>";
00565 $streamCounter[$i]++;
00566 }else{
00567 $dayString=$dayString."<TD rowspan=".$arrayPadded[$i][$streamCounter[$i]][5]." ".$DP_CSS[tblrow4]."style='border-style: solid; border-width: 1' ><span ".$DP_CSS[small]. " >";
00568 $dayString=$dayString."<img src='".$templatefolder."/".$actualtemplate."/images/blind.gif' height='1' width='1'>";
00569 $dayString=$dayString."</span></TD>";
00570 $streamCounter[$i]++;
00571 }
00572 }
00573 }
00574 }
00575 $dayString=$dayString. "</TR> \n";
00576 }
00577 return $dayString;
00578 }
00579
00588 function parseDataForOutput ($DateValues) {
00589
00590
00591 $text = $DateValues[text];
00592 $urlsearch[]="/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00593 $urlsearch[]="/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00594 $urlreplace[]="\\1<A HREF='\\2\\4' target='_blank'>\\2\\4</A>";
00595 $urlreplace[]="<A HREF='\\1\\3' target='_blank'>\\1\\3</A>";
00596 $emailsearch[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00597 $emailsearch[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00598 $emailreplace[]="\\1<a href='mailto:\\2'>\\2</a>";
00599 $emailreplace[]="<a href='mailto:\\0'>\\0</a>";
00600 $text = preg_replace($urlsearch, $urlreplace, $text);
00601 if (strpos($text, "@")) $text = preg_replace($emailsearch, $emailreplace, $text);
00602
00603 $text = str_replace("\r\n","<br>" , $text);
00604
00605 $text = preg_replace("!\[img\](.*)\[/img\]!U","<img alt='\\1' src='\\1'>",$text);
00606 $DateValues[text] = $text;
00607
00608
00609 $text = $DateValues[shorttext];
00610
00611 $urlsearch[]="/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00612 $urlsearch[]="/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00613 $urlreplace[]="\\1<A HREF='\\2\\4' target='_blank'>\\2\\4</A>";
00614 $urlreplace[]="<A HREF='\\1\\3' target='_blank'>\\1\\3</A>";
00615 $emailsearch[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00616 $emailsearch[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00617 $emailreplace[]="\\1<a href='mailto:\\2'>\\2</a>";
00618 $emailreplace[]="<a href='mailto:\\0'>\\0</a>";
00619 $text = preg_replace($urlsearch, $urlreplace, $text);
00620 if (strpos($text, "@")) $text = preg_replace($emailsearch, $emailreplace, $text);
00621 $text = str_replace("\r\n","<br>" , $text);
00622 $DateValues[shorttext] = $text;
00623
00624 Return $DateValues;
00625
00626 }
00627 ?>