Namespaces | Functions

modules/dateplaner/includes/inc.week.php File Reference

Go to the source code of this file.

Namespaces

namespace  dateplaner
 

dateplaner includes personal an group specific date management developt for ilias3 and adapted also to ilias2


Functions

 setNavigation ($timestamp, $rowSpan)
 void function setNavigation($timestamp,$rowSpan) set variables in the setNavigation of week
 setDateInTblHead ($timestamp)
 void function setDateInTblHead($timestamp) set the Stings for the date format in the week view at the table top
 getContent ($begin_ts, $end_ts, $DB)
 function getContent($begin_ts, $end_ts) get Content for the Week View from the sortdates functions
 setDatesInWeek ($date_ts, $Dates, $day_ts, $row_height, &$style)
 void function setDatesInWeek($date_ts, $Dates, $row_height, &$style) set the Output for normal Dates into the Week view
 setDayDatesInWeek ($date_ts, $Dates, $row_height, &$style)
 void function setDayDatesInWeek($date_ts, $Dates, $row_height, &$style) set the Output for one Day Dates into the Week view
 setWeekView ($week_ts, $DB)
 void function setWeekView($week_ts, $DB) the Main function of the week view called from the executed file

Function Documentation

getContent ( begin_ts,
end_ts,
DB 
)

function getContent($begin_ts, $end_ts) get Content for the Week View from the sortdates functions

Parameters:
int $begin_ts
int $end_ts
int $DB (object of th db class ) string $DP_UId ( current User ID ) Array $DP_Keywords ( current Keywords)
Returns:
Array [][][] $DATE [0] $Dates ( normal Dates ) [1] $WholeDates ( one day Dates )

Definition at line 121 of file inc.week.php.

References $_SESSION, $DB, $DP_UId, getDateList(), and getWholeDayDateList().

{

        global $DP_UId , $_SESSION ;

        $Dates                          = getDateList ($DP_UId, $begin_ts, $end_ts, $_SESSION[DP_Keywords], $DB);
        $WholeDates                     = getWholeDayDateList ($DP_UId, $begin_ts, $end_ts, $_SESSION[DP_Keywords], $DB);
        $DATE[0]=$Dates;
        $DATE[1]=$WholeDates;
        return $DATE;

} // end func

Here is the call graph for this function:

setDateInTblHead ( timestamp  ) 

void function setDateInTblHead($timestamp) set the Stings for the date format in the week view at the table top

Parameters:
int $timestamp
Returns:
string $S_Datum

Definition at line 71 of file inc.week.php.

References $S_Datum.

{
        $ttd                    = new TimestampToDate;

        $ttd->ttd($timestamp);

        $S_Datum[monday_full]           = $ttd->shorttime ;
        $S_Datum[monday_link]           = $timestamp ;
        $S_Datum[week]                          = $ttd->weeknumber;

        $ttd->ttd(strtotime ("+1 day" , $timestamp));
        $S_Datum[tuesday_full]          = $ttd->shorttime ;
        $S_Datum[tuesday_link]          = strtotime ("+1 day" , $timestamp) ;

        $ttd->ttd(strtotime ("+2 day" , $timestamp));
        $S_Datum[wednesday_full]        = $ttd->shorttime ;
        $S_Datum[wednesday_link]        = strtotime ("+2 day" , $timestamp) ;

        $ttd->ttd(strtotime ("+3 day" , $timestamp));
        $S_Datum[thursday_full]         = $ttd->shorttime ;
        $S_Datum[thursday_link]         = strtotime ("+3 day" , $timestamp) ;

        $ttd->ttd(strtotime ("+4 day" , $timestamp));
        $S_Datum[friday_full]           = $ttd->shorttime ;
        $S_Datum[friday_link]           = strtotime ("+4 day" , $timestamp) ;

        $ttd->ttd(strtotime ("+5 day" , $timestamp));
        $S_Datum[saturday_full]         = $ttd->shorttime ;
        $S_Datum[saturday_link]         = strtotime ("+5 day" , $timestamp) ;

        $ttd->ttd(strtotime ("+6 day" , $timestamp));
        $S_Datum[sunday_full]           = $ttd->shorttime ;
        $S_Datum[sunday_link]           = strtotime ("+6 day" , $timestamp) ;

        Return  $S_Datum; 

} // end func

setDatesInWeek ( date_ts,
Dates,
day_ts,
row_height,
&$  style 
)

void function setDatesInWeek($date_ts, $Dates, $row_height, &$style) set the Output for normal Dates into the Week view

Parameters:
int $date_ts
int $day_ts ( Day Timestamp )
Array $Dates ( Date Data )
string $style ( to format rows, control variable )
string $row_height ( to format the height of rows, control variable ) Array $DP_language ( include Languageproperties ) Array $_SESSION ( DP_JSscript is 0 if JavaScript disabled )
Returns:
string $week_float ( contains the output )

Definition at line 146 of file inc.week.php.

References $_SESSION, $DP_CSS, $DP_language, $Gui, $id, and $week_float.

{

                global $DP_language, $DP_CSS, $_SESSION;

                $ttd = new TimestampToDate;
                $Gui = new Gui();

                $datesperhalfhourmax    = 4 ; // max dates in a day
                $shorttextmax                   = 10; // max lenght of shorttext in normal dates
                $today_style                    = $DP_CSS[tblrow1];

                $ttd->ttd($date_ts);
                $day = $ttd->day_of_month ;

                $week_float = $week_float."<td width=\"11%\" height=\"".$row_height."%\" style=\"border-style: solid;  border-width: 1 \"  ";

                // if today change background
                if ($date_ts >=  mktime(0,0,0) and $date_ts <=  mktime(23,59,59)) 
                {
                        $week_float = $week_float.$today_style."  >";
                }
                else 
                {
                        $week_float = $week_float.$style.">";
                }

                // filter Dates of the day out of the array
                $datebeginend_ts = strtotime ("+30 minutes", $date_ts); 
                for ($i=0;$i< count($Dates);$i++) 
                {
                        if ($Dates[$i][1] >= $date_ts and $Dates[$i][1] < $datebeginend_ts)  
                        {
                                $datesperhalfhour++;
                                $ttd->ttd($Dates[$i][1]);
                                // count sting lenght
                                if (strlen ($Dates[$i][5]) >= $shorttextmax) 
                                {
                                        $shortext = substr($Dates[$i][5], 0, $shorttextmax)." .."; 
                                }
                                else 
                                {
                                        $shortext = $Dates[$i][5];
                                }
                                $starttime      = $ttd->hour_long.":".$ttd->minutes ;

                                $ttd->ttd($Dates[$i][2]);
                                $endtime        = $ttd->hour_long.":".$ttd->minutes ;

                                $alttag         = $starttime." bis ".$endtime." [ ".$Dates[$i][5]." ]";

                                $text = $Dates[$i][6];
                                $id = rand(1,100);

                                if($_SESSION[DP_JSscript] != 1 ) {
                                        $week_float = $week_float."<span ".$DP_CSS[small]."><a  TITLE=\"".$alttag."\" href=\"dateplaner.php?app=date&timestamp=".$day_ts."&date_id=".$Dates[$i][0]."&PHPSESSID=".session_id()."\" target=\"_blank\">".$starttime." - ".$endtime."</a> <br>".$shortext."</span><br>"; 
                                }else {
                                        $week_float = $week_float."<span ".$DP_CSS[small]."><a onMouseOver=show('".$id."') onMouseOut=hide('".$id."')  href=\"javascript:popup('dateplaner.php?app=date&timestamp=".$day_ts."&date_id=".$Dates[$i][0]."&PHPSESSID=".session_id()."','Date','width=600,height=650,directories=no,toolbar=no,location=no,menubar=no,scrollbars=yes,status=yes,resizable=yes,dependent=no')\" >".$starttime." - ".$endtime."</a> <br>".$shortext."</span><br>"; 
                                        $week_float.= $Gui->setToolTip($starttime, $endtime, $Dates[$i][5], $text, $id );
                                }

                        }

                        if ($datesperhalfhourmax == $datesperhalfhour) 
                        {
                                $week_float = $week_float."<span ".$DP_CSS[small]."><a href=\"day.php?timestamp=".$date_ts."\">".$DP_language[more]."</a> </span>";
                                break ;  
                        }
                }

                $week_float = $week_float."</td>";      

                Return $week_float;
} // end func

setDayDatesInWeek ( date_ts,
Dates,
row_height,
&$  style 
)

void function setDayDatesInWeek($date_ts, $Dates, $row_height, &$style) set the Output for one Day Dates into the Week view

Parameters:
int $date_ts
Array $Dates ( Date Data )
string $style ( to format rows, control variable )
string $row_height ( to format the height of rows, control variable ) Array $DP_language ( include Languageproperties ) array $DP_CSS ( contains CSS Strings from the conf.gui file ) Array $_SESSION ( $DP_JSscriptis 0 if JavaScript disabled )
Returns:
string $week_float ( contains the output )

Definition at line 233 of file inc.week.php.

References $_SESSION, $DP_CSS, $DP_language, $Gui, $id, and $week_float.

{
                global $DP_language, $DP_CSS, $_SESSION;
                $ttd = new TimestampToDate;
                $Gui = new Gui();

                $datesperhalfhourmax    = 4 ; // maximale Termine pro Tag
                $shorttextmax                   = 12; // maximale Länge des shorttextes

                $today_style                    = $DP_CSS[tblrow1];

                $ttd->ttd($date_ts);
                $day = $ttd->day_of_month ;

                $week_float = $week_float."<td width=\"11%\" height=\"".$row_height."%\" style=\"border-style: solid;  border-width: 1 \" ";

                // if today change background
                if ($date_ts >=  mktime(0,0,0) and $date_ts <=  mktime(23,59,59)) 
                {
                        $week_float = $week_float.$today_style."  >";
                }
                else 
                {
                        $week_float = $week_float.$style.">";
                }

                // filter Dates of the day out of the array
                $dayend_ts = strtotime ("+23 hours +59 minutes +59 seconds", $date_ts); 
                for ($i=0;$i< count($Dates);$i++) 
                {
                        if ($Dates[$i][1] >= $date_ts and $Dates[$i][2] <= $dayend_ts)  
                        {
                                $datesperhalfhour++;
                                $ttd->ttd($Dates[$i][1]);

                                // count sting lenght
                                if (strlen ($Dates[$i][5]) >= $shorttextmax) 
                                {
                                        $shortext = substr($Dates[$i][5], 0, $shorttextmax)." .."; 
                                }
                                else 
                                {
                                        $shortext = $Dates[$i][5];
                                }
                                $alttag         = " [ ".$Dates[$i][5]." ]";

                                $text = $Dates[$i][6];
                                $id = rand(100,200);


                                if($_SESSION[DP_JSscript] != 1 ) {
                                        $week_float = $week_float."<span ".$DP_CSS[small]."><a  TITLE=\"".$alttag."\" href=\"dateplaner.php?app=date&timestamp=".$day_ts."&date_id=".$Dates[$i][0]."&PHPSESSID=".session_id()."\" target=\"_blank\"><b>".$shortext."</b></a> </span><br>"; 
                                }else {
                                        $week_float = $week_float."<span ".$DP_CSS[small]."><a onMouseOver=show('".$id."') onMouseOut=hide('".$id."')  href=\"javascript:popup('dateplaner.php?app=date&timestamp=".$date_ts."&date_id=".$Dates[$i][0]."&PHPSESSID=".session_id()."','Date','width=600,height=650,directories=no,toolbar=no,location=no,menubar=no,scrollbars=yes,status=yes,resizable=yes,dependent=no')\" ><b>".$shortext."</b></a></span><br>"; 
                                        $week_float.= $Gui->setToolTip($starttime, $endtime, $Dates[$i][5], $text, $id );
                                }



                        }
                        if ($datesperhalfhourmax == $datesperhalfhour) 
                        {
                                $week_float = $week_float."<span ".$DP_CSS[small]."><a href=\"day.php?timestamp=".$date_ts."\">".$DP_language[more]."</a> </span>";
                                break ;  
                        }
                }

                $week_float = $week_float."</td>";
                Return $week_float;
} // end func

setNavigation ( timestamp,
rowSpan 
)

void function setNavigation($timestamp,$rowSpan) set variables in the setNavigation of week

Parameters:
int $timestamp
string $rowSpan ( to format the Span of rows, control variable ) Array $DP_language ( include languageproperties )
Returns:
string $week_navigation ( contains the output )

Definition at line 47 of file inc.week.php.

References $DP_language, and $Gui.

{
        global $DP_language;

        $Gui            = new Gui();

        $today          = mktime(0,0,0);
        $lastweek       = strtotime ("last week" , $timestamp) ;
        $nextweek       = strtotime ("+7 days" , $timestamp) ;
        $rowSpan = $rowSpan+1;

        eval ("\$week_navigation = \"".$Gui->getTemplate("week_navigation")."\";");

        Return $week_navigation;

} // end func

setWeekView ( week_ts,
DB 
)

void function setWeekView($week_ts, $DB) the Main function of the week view called from the executed file

Parameters:
int $week_ts ( one timestamp in the week, which should be shown )
int $DB (object of th db class ) array $S_Datum ( contains Date from Table Top ) array $DP_language ( include Languageproperties ) array $DP_CSS ( contains CSS Strings from the conf.gui file ) array $_SESSION ( DP_Starttime include Start Time of during on day in week view and DP_Endtimeinclude End Time of during on day in week view)
Returns:
Array $Return [0] string week_navigation ( contains the navigation output ) [1] string week_float ( contains the output ) [2] array S_Datum ( contains Date from Table Top )

Definition at line 320 of file inc.week.php.

References $_SESSION, $DB, $DP_CSS, $DP_language, $S_Datum, $week_float, getContent(), setDateInTblHead(), and setNavigation().

{
        global $DP_language, $DP_CSS, $_SESSION;

        srand(microtime()*1000000);

        // time period for view

        $from_time      = $_SESSION[DP_Starttime]; 
        $to_time        = $_SESSION[DP_Endtime];

        $ttd = new TimestampToDate;

        $ttd->ttd($week_ts);

        // if the timestamp into the week , set to the first day 
        if ($ttd->weekdaynumber != 1 ) 
        {                                                                               
                $week_ts = strtotime ("last Monday", $week_ts );
                $ttd->ttd($week_ts);
        }

        $week_ts = mktime(0,0,0,$ttd->monthnumber,$ttd->day_of_month,$ttd->year_long);  
        $ttd->ttd($week_ts);

        // set Week view start and End time
        $start_ts       = $week_ts;
        $end_ts         = strtotime ("+6 days 23 hours 59 minutes 59 seconds", $week_ts );      
        $DATE           = getContent($start_ts, $end_ts, $DB);
        $Dates          = $DATE[0];
        $WholeDates     = $DATE[1];

        // take care that no date begin or end after time zone above
        // if it, enhance time zone
        if($Dates) 
        {
        for ($i=0;$i< count($Dates);$i++) 
        {
                $ttdend = new TimestampToDate;
                $ttdend->ttd($Dates[$i][2]);

                $end = $ttdend->hour_long.":".$ttdend->minutes.":".$ttdend->seconds;

                $ttd->ttd($Dates[$i][1]);
                $begin = $ttd->hour_long.":".$ttd->minutes.":".$ttd->seconds;

                if ($ttd->hour_short <= (int)$from_time )  
                {
                        $from_time = $ttd->hour_short;
                }
                if ($ttdend->hour_short >= (int)$to_time) 
                {
                        $to_time = $ttdend->hour_short+1;
                }
        }
        }

        // count rows for view
        $rows           = (($to_time - $from_time)*2)+1;
        // count rows height , best compatibility
        $row_height = 100/$rows;

        $week_navigation        = setNavigation($week_ts,$rows);
        $S_Datum                        = setDateInTblHead($week_ts) ;

        $monatstag_ts   = $week_ts;
    $style                      = $DP_CSS[tblrow2];

        // 1st - one day dates , cause more important 
        $c_rows = 0;
        for ($i=0;$i<=7;$i++) 
        {

                if ($i==0) 
                {
                        $week_float = $week_float."<tr >\n";
                        $week_float = $week_float."<td width=\"4%\" height=\"".$row_height."%\" style=\"border-style: solid;  border-width: 1\" $DP_CSS[tblrow2] ><center>".$DP_language[o_day_date]."<center></td>";
                }
                else 
                {
                        $week_float = $week_float.setDayDatesInWeek($monatstag_ts, $WholeDates, $row_height, $style);
                        $monatstag_ts = strtotime ("+1 day", $monatstag_ts );
                }
                        $ttd->ttd($monatstag_ts);
        }

        $week_float             = $week_float."</tr>\n";
        $c_rows++;
        $ttd->ttd($week_ts);
        $week_ts                = mktime($from_time,0,0,$ttd->monthnumber,$ttd->day_of_month,$ttd->year_long);
        $monatstag_ts   = $week_ts;
        $style                  = $DP_CSS[tblrow2];
        $day_ts                 = mktime(0,0,0,$ttd->monthnumber,$ttd->day_of_month,$ttd->year_long);
        
        // 2nd - normal dates  
        while($c_rows < $rows)
        { 
                for ($i=0;$i<=7;$i++) 
                {
                        if ($i==0) 
                        {
                        // set time in left row
                                $time = (($c_rows-1)/2)+$from_time;
                                if (floor($time)!=0) 
                                {
                                        if (($time/floor($time)) > 1) 
                                        {
                                                $time = floor ($time).":30";
                                        }
                                        else 
                                        {
                                                $time = $time.":00";
                                        }

                                }
                                else 
                                {
                                        if (round ($time)==1) 
                                        {
                                                $time = "0:30";
                                        }
                                        else 
                                        {
                                                $time = "0:00";
                                        }
                                }
                                $week_float = $week_float."<tr >\n";
                                $week_float = $week_float."<td width=\"4%\" height=\"".$row_height."%\" style=\"border-style: solid;  border-width: 1\" $DP_CSS[tblrow2] ><center>".$time."<center></td>";
                        }
                        else 
                        {
                                $week_float     = $week_float.setDatesInWeek($monatstag_ts, $Dates, $day_ts, $row_height, $style);
                                $monatstag_ts = strtotime ("+1 day", $monatstag_ts );

                        }
                        $ttd->ttd($monatstag_ts);
                        $day_ts                 = mktime(0,0,0,$ttd->monthnumber,$ttd->day_of_month,$ttd->year_long);
                }
                $week_ts                = strtotime ("+30 minutes", $week_ts);  
                $monatstag_ts   = $week_ts ;
                $week_float             = $week_float."</tr>\n";
                $c_rows++;
        }
        $week_float = $week_float."</tr>\n";

        $Return[0] = $week_navigation;
        $Return[1] = $week_float;
        $Return[2] = $S_Datum;

        Return $Return;
}//end func

Here is the call graph for this function: