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