• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

calendar/includes/inc.dates.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                                                                                       |
00005         |       Dateplaner Modul                                                                                                                  |                                                                                                     
00006         +-----------------------------------------------------------------------------+
00007         | Copyright (c) 2004 ILIAS open source & University of Applied Sciences Bremen|
00008         |                                                                             |
00009         | This program is free software; you can redistribute it and/or               |
00010         | modify it under the terms of the GNU General Public License                 |
00011         | as published by the Free Software Foundation; either version 2              |
00012         | of the License, or (at your option) any later version.                      |
00013         |                                                                             |
00014         | This program is distributed in the hope that it will be useful,             |
00015         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00016         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00017         | GNU General Public License for more details.                                |
00018         |                                                                             |
00019         | You should have received a copy of the GNU General Public License           |
00020         | along with this program; if not, write to the Free Software                 |
00021         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
00022         +-----------------------------------------------------------------------------+
00023 */
00024 
00047 function setDateView ($DateValues, $flag, $DB)
00048 {
00049         global $DP_language, $templatefolder, $actualtemplate,  $DP_CSS;
00050 
00051         $Gui            = new Gui();
00052         $ttd            = new TimestampToDate;
00053         
00054         $Array          = setJs();
00055         $DateValues[popupcall_1] = $Array[1] ;
00056         $DateValues[popupcall_2] = $Array[2] ;
00057         $DateValues[popupcall_3] = $Array[3] ;
00058         if(!$DateValues[text])          $DateValues[text]                = $DateValues[DateArray][text];
00059         if(!$DateValues[shorttext]) $DateValues[shorttext]       = $DateValues[DateArray][shorttext];
00060         if($DateValues[whole_day] == "1") $DateValues[checked] = "checked";
00061 
00062         $date2 = $DateValues[date2];
00063         $date4 = $DateValues[date4];
00064         $date6 = $DateValues[date6];
00065 
00066 
00067         switch($flag) {
00068                 case 'i': // insert date
00069                         eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate")."\";");
00070                         eval ("\$tab_end_date = \"".$Gui->getTemplate("date_enddate")."\";");
00071                         if($DateValues[rotation]) $DateValues[$DateValues[rotation]] = "selected";
00072                         eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation")."\";");
00073                         $DateValues[Groupform] = setGroups($DateValues[group_id], $DB);
00074                         eval ("\$tab_group = \"".$Gui->getTemplate("date_group")."\";");
00075                         $DateValues[Keywordform] = setKeywords($DateValues[keyword_id], $DB);
00076                         eval ("\$tab_keyword = \"".$Gui->getTemplate("date_keyword")."\";");
00077                         eval ("\$tab_text = \"".$Gui->getTemplate("date_text")."\";");
00078                         eval ("\$btn_in = \"".$Gui->getTemplate("date_btnin")."\";");
00079                         eval ("\$btn_exit = \"".$Gui->getTemplate("date_btnexit")."\";");
00080                         break; 
00081                 case 'ud_w': // update/delete a wirtable date
00082 
00083                         $DateValues[old_keyword_id]             = $DateValues[DateArray][old_keyword_id];
00084                         eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate")."\";");
00085                         eval ("\$tab_end_date = \"".$Gui->getTemplate("date_enddate")."\";");
00086                         if($DateValues[rotation]) {
00087                                 $DateValues[$DateValues[rotation]] = "selected";
00088                         }else {
00089                                 $date6 = $DateValues[date6];
00090                                 $DateValues[$DateValues[DateArray][rotation]] = "selected";
00091                         }
00092                         eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation")."\";");
00093                         eval ("\$tab_group = \"".$Gui->getTemplate("date_group_ro")."\";");
00094                         if($DateValues[keyword_id]) {
00095                                 $DateValues[Keywordform] = setKeywords($DateValues[keyword_id],$DB);
00096                         }else {
00097                                 $DateValues[Keywordform] = setKeywords($DateValues[DateArray][keyword_id],$DB);
00098                         }
00099                         eval ("\$tab_keyword = \"".$Gui->getTemplate("date_keyword")."\";");
00100                         eval ("\$tab_text = \"".$Gui->getTemplate("date_text")."\";");
00101                         //Format Date Text for Priview Output
00102                         $DateValues = parseDataForOutput ($DateValues);
00103                         $DP_language[dv_message] = $DP_language[dv_message].$DP_language[dv_preview];
00104                         eval ("\$tab_pretext = \"".$Gui->getTemplate("date_text_ro")."\";");
00105                         eval ("\$btn_del = \"".$Gui->getTemplate("date_btndel")."\";");
00106                         eval ("\$btn_upd = \"".$Gui->getTemplate("date_btnupd")."\";");
00107                         eval ("\$btn_exit = \"".$Gui->getTemplate("date_btnexit")."\";");
00108                         break;
00109                 case 'ud_ro': // update/delete a read only date
00110                         
00111                         //Format Date Text for Output
00112                         $DateValues = parseDataForOutput ($DateValues);
00113                         
00114                         $DateValues[start_ts]                   = $DateValues[DateArray][begin]; 
00115                         $DateValues[end_ts]                             = $DateValues[DateArray][end];
00116                         $DateValues[end_rotation_ts]    = $DateValues[DateArray][end_rotation];
00117                         $DateValues[keyword_id]                 = $DateValues[DateArray][keyword_id];
00118                         $DateValues[old_keyword_id]             = $DateValues[DateArray][old_keyword_id];
00119 
00120                         
00121                         if($DateValues[whole_day] != "1") {
00122                                 $ttd->ttd($DateValues[DateArray][begin]);
00123                                 $DateValues[starttime]                  = $ttd->middletime ;
00124                                 eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate_ro")."\";");
00125                                 $ttd->ttd($DateValues[DateArray][end]);
00126                                 $DateValues[endtime] = $ttd->middletime ;
00127                                 $DateValues[whole_day_name]             = "no";
00128                                 eval ("\$tab_end_date = \"".$Gui->getTemplate("date_enddate_ro")."\";");
00129                         }else {
00130                                 $ttd->ttd($DateValues[DateArray][begin]);
00131                                 $DateValues[starttime]                  = $ttd->shorttime ;
00132                                 $DateValues[whole_day_name]             = "yes";
00133                                 eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate_ro")."\";");
00134                         }
00135 
00136                         if($DateValues[DateArray][rotation] != 0 ) {
00137                                 $ttd->ttd($DateValues[DateArray][end_rotation]);
00138                                 $DateValues[end_rotationtime] = $ttd->shorttime ;
00139                                 eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation_ro")."\";");
00140                         }else {
00141                                 eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation_ro")."\";");
00142                         }
00143                         eval ("\$tab_group = \"".$Gui->getTemplate("date_group_ro")."\";");
00144 
00145                         $DateValues[Keywordform] = setKeywords($DateValues[DateArray][keyword_id],$DB);
00146                         eval ("\$tab_keyword = \"".$Gui->getTemplate("date_keyword")."\";");
00147                         eval ("\$tab_text = \"".$Gui->getTemplate("date_text_ro")."\";");
00148                         eval ("\$btn_del = \"".$Gui->getTemplate("date_btndel")."\";");
00149                         eval ("\$btn_upd = \"".$Gui->getTemplate("date_btnupd")."\";");
00150                         eval ("\$btn_exit = \"".$Gui->getTemplate("date_btnexit")."\";");
00151                         break;
00152                 default :
00153         
00154         }
00155 
00156         eval ("\$dateContent = \"".$Gui->getTemplate("date_content")."\";");
00157 
00158         Return $dateContent;    
00159         
00160 }// end func
00161 
00170 function  parseDataForOutput ($DateValues) {
00171         
00172         // parse text for html links and e-mail adresses
00173         $text = $DateValues[text];
00174         $urlsearch[]="/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00175         $urlsearch[]="/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00176         $urlreplace[]="\\1<A HREF='\\2\\4' target='_blank'>\\2\\4</A>";
00177         $urlreplace[]="<A HREF='\\1\\3' target='_blank'>\\1\\3</A>";
00178         $emailsearch[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00179         $emailsearch[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00180         $emailreplace[]="\\1<a href='mailto:\\2'>\\2</a>";
00181         $emailreplace[]="<a href='mailto:\\0'>\\0</a>";
00182         $text = preg_replace($urlsearch, $urlreplace, $text);
00183         if (strpos($text, "@")) $text = preg_replace($emailsearch, $emailreplace, $text);
00184         // parse text for line breaks
00185         $text = str_replace("\r\n","<br>" , $text);
00186         // parse text for images links
00187         $text = preg_replace("!\[img\](.*)\[/img\]!U","<img alt='\\1' src='\\1'>",$text);
00188         $DateValues[text] = $text;
00189         // parse text for html links and e-mail adresses
00190 
00191         $text = $DateValues[shorttext];
00192         // parse shorttext for html links and e-mail adresses
00193         $urlsearch[]="/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00194         $urlsearch[]="/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00195         $urlreplace[]="\\1<A HREF='\\2\\4' target='_blank'>\\2\\4</A>";
00196         $urlreplace[]="<A HREF='\\1\\3' target='_blank'>\\1\\3</A>";
00197         $emailsearch[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00198         $emailsearch[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00199         $emailreplace[]="\\1<a href='mailto:\\2'>\\2</a>";
00200         $emailreplace[]="<a href='mailto:\\0'>\\0</a>";
00201         $text = preg_replace($urlsearch, $urlreplace, $text);
00202         if (strpos($text, "@")) $text = preg_replace($emailsearch, $emailreplace, $text);
00203         $text = str_replace("\r\n","<br>" , $text);
00204         $DateValues[shorttext] = $text;
00205 
00206         Return $DateValues;
00207 
00208 }// end func
00209 
00218 function setJs() {
00219         global $DP_language;
00220 
00221         $Array[1] = '
00222 <script language=JavaScript>
00223                         var cal2 = new CalendarPopup();  
00224                         cal2.showYearNavigation();                      cal2.setMonthNames(\''.$DP_language[long_01].'\',\''.$DP_language[long_02].'\',\''.$DP_language[long_03].'\',\''.$DP_language[long_04].'\',\''.$DP_language[long_05].'\',\''.$DP_language[long_06].'\',\''.$DP_language[long_07].'\',\''.$DP_language[long_08].'\',\''.$DP_language[long_09].'\',\''.$DP_language[long_10].'\',\''.$DP_language[long_11].'\',\''.$DP_language[long_12].'\'); 
00225                         cal2.setDayHeaders(\''.$DP_language[Su_short].'\',\''.$DP_language[Mo_short].'\',\''.$DP_language[Tu_short].'\',\''.$DP_language[We_short].'\',\''.$DP_language[Th_short].'\',\''.$DP_language[Fr_short].'\',\''.$DP_language[Sa_short].'\');
00226                         cal2.setWeekStartDay(1);
00227                         cal2.setTodayText("'.$DP_language[today].'");
00228 </script>
00229 ';
00230 
00231         $Array[2] = '
00232 <script language=JavaScript >
00233                         var cal4 = new CalendarPopup(); cal4.setMonthNames(\''.$DP_language[long_01].'\',\''.$DP_language[long_02].'\',\''.$DP_language[long_03].'\',\''.$DP_language[long_04].'\',\''.$DP_language[long_05].'\',\''.$DP_language[long_06].'\',\''.$DP_language[long_07].'\',\''.$DP_language[long_08].'\',\''.$DP_language[long_09].'\',\''.$DP_language[long_10].'\',\''.$DP_language[long_11].'\',\''.$DP_language[long_12].'\'); 
00234                         cal4.setDayHeaders(\''.$DP_language[Su_short].'\',\''.$DP_language[Mo_short].'\',\''.$DP_language[Tu_short].'\',\''.$DP_language[We_short].'\',\''.$DP_language[Th_short].'\',\''.$DP_language[Fr_short].'\',\''.$DP_language[Sa_short].'\');
00235                         cal4.setWeekStartDay(1);
00236                         cal4.setTodayText("'.$DP_language[today].'");                   
00237                         cal4.showYearNavigation(); 
00238 </script>
00239 ';
00240 
00241         $Array[3] = '
00242 <script language=JavaScript >
00243                         var cal6 = new CalendarPopup(); cal6.setMonthNames(\''.$DP_language[long_01].'\',\''.$DP_language[long_02].'\',\''.$DP_language[long_03].'\',\''.$DP_language[long_04].'\',\''.$DP_language[long_05].'\',\''.$DP_language[long_06].'\',\''.$DP_language[long_07].'\',\''.$DP_language[long_08].'\',\''.$DP_language[long_09].'\',\''.$DP_language[long_10].'\',\''.$DP_language[long_11].'\',\''.$DP_language[long_12].'\'); 
00244                         cal6.setDayHeaders(\''.$DP_language[Su_short].'\',\''.$DP_language[Mo_short].'\',\''.$DP_language[Tu_short].'\',\''.$DP_language[We_short].'\',\''.$DP_language[Th_short].'\',\''.$DP_language[Fr_short].'\',\''.$DP_language[Sa_short].'\');
00245                         cal6.setWeekStartDay(1);
00246                         cal6.setTodayText("'.$DP_language[today].'");                   
00247                         cal6.showYearNavigation(); 
00248 </script>
00249 ';
00250         Return $Array ;
00251 }// end func
00252 
00262 function setKeywords($keyword_id,$DB) {
00263         $Keywords = getKeywordContent($DB);
00264         if($Keywords) {
00265                 for ($j = 0 ; $j < count($Keywords) ; $j++) {
00266                         if($keyword_id == $Keywords[$j][0]) {
00267                                 $Keywordform = $Keywordform.'<option selected value="'.$Keywords[$j][0].'">'.$Keywords[$j][1].'</option>';
00268                         }else {
00269                                 $Keywordform = $Keywordform.'<option value="'.$Keywords[$j][0].'">'.$Keywords[$j][1].'</option>';
00270                         }
00271                 }
00272         }
00273         Return $Keywordform;
00274         
00275 }// end func
00276 
00286 function setGroups($groupID,$DB) {
00287         $Groups = getGroupContent($DB);
00288         if($Groups) {
00289                 for ($i = 0 ; $i < count($Groups) ; $i++) {
00290                         if($groupID and $groupID == $Groups[$i][0] ) {
00291                                 $Groupform = $Groupform.'<option selected value="'.$Groups[$i][0].'">'.$Groups[$i][1].'</option>';
00292                         }else {
00293                                 $Groupform = $Groupform.'<option value="'.$Groups[$i][0].'">'.$Groups[$i][1].'</option>';
00294                         }
00295                 }
00296         }
00297         Return $Groupform;
00298 
00299 }// end func
00300 
00310 function getGroupContent($DB) {
00311         global $DP_UId  ;
00312         $Groups = $DB->getUserGroups ($DP_UId);
00313 
00314         Return $Groups;
00315 
00316 }// end func
00317 
00327 function getKeywordContent($DB) {
00328         global $DP_UId ;
00329         $Keywords       = $DB->getKeywords ($DP_UId);
00330 
00331         Return $Keywords;
00332 
00333 }// end func
00334 
00347 function  parseData ($DateValues, $Start_date, $End_date, $End_rotation) {
00348         global $DP_language;
00349         if($DateValues[start_ts] == "-1") $Valid[] = $DP_language[ERROR_STARTDATE];
00350         if($DateValues[whole_day] !=1 and $DateValues[end_ts] == "-1") $Valid[] = $DP_language[ERROR_ENDDATE];
00351         if($DateValues[end_rotation_ts] == "-1") $Valid[] = $DP_language[ERROR_ROTATIONEND];
00352         if($DateValues[whole_day] !=1 and $DateValues[start_ts] > $DateValues[end_ts]) $Valid[] = $DP_language[ERROR_END_START]; 
00353         if($DateValues[end_rotation_ts] and $DateValues[end_rotation_ts] < $DateValues[start_ts]) $Valid[] = $DP_language[ERROR_ROT_END_START]; 
00354 
00355         if(     $Start_date[0] != date ("d", mktime(0,0,0,$Start_date[1],$Start_date[0],$Start_date[2])) or
00356                 $Start_date[1] != date ("m", mktime(0,0,0,$Start_date[1],$Start_date[0],$Start_date[2])) or 
00357                 $Start_date[2] != date ("Y", mktime(0,0,0,$Start_date[1],$Start_date[0],$Start_date[2]))) 
00358         {
00359                  $Valid[] = $DP_language[ERROR_STARTDATE];
00360         }
00361         if(     $End_date and $DateValues[begin_h] != date ("H", mktime($DateValues[begin_h],0,0,$Start_date[1],$Start_date[0],$Start_date[2])) or
00362                 $DateValues[begin_min] != date ("i", mktime(0,$DateValues[begin_min],0,$Start_date[1],$Start_date[0],$Start_date[2]))) 
00363         {
00364                  $Valid[] = $DP_language[ERROR_STARTTIME];
00365         }
00366         if(     $End_date and ($End_date[0] != date ("d", mktime(0,0,0,$End_date[1],$End_date[0],$End_date[2])) or
00367                 $End_date[1] != date ("m", mktime(0,0,0,$End_date[1],$End_date[0],$End_date[2])) or 
00368                 $End_date[2] != date ("Y", mktime(0,0,0,$End_date[1],$End_date[0],$End_date[2])))) 
00369         {
00370                  $Valid[] = $DP_language[ERROR_ENDDATE];
00371         }
00372         if(     $DateValues[end_h] != date ("H", mktime($DateValues[end_h],0,0,$Start_date[1],$Start_date[0],$Start_date[2])) or
00373                 $DateValues[end_min] != date ("i", mktime(0,$DateValues[end_min],0,$Start_date[1],$Start_date[0],$Start_date[2]))) 
00374         {
00375                  $Valid[] = $DP_language[ERROR_ENDTIME];
00376         }
00377         if(     $End_rotation and ($End_rotation[0] != date ("d", mktime(0,0,0,$End_rotation[1],$End_rotation[0],$End_rotation[2])) or
00378                 $End_rotation[1] != date ("m", mktime(0,0,0,$End_rotation[1],$End_rotation[0],$End_rotation[2])) or 
00379                 $End_rotation[2] != date ("Y", mktime(0,0,0,$End_rotation[1],$End_rotation[0],$End_rotation[2])))) 
00380         {
00381                  $Valid[] = $DP_language[ERROR_ROTATIONEND];
00382         }
00383         if($DateValues[shorttext] == "") $Valid[] = $DP_language[ERROR_SHORTTEXT]; 
00384 
00385         $Valid[] = "TRUE";
00386         Return $Valid;
00387 
00388 }// end func
00389 
00400 function setInsertDate($timestamp, $DateValues, $DB) 
00401 {
00402 
00403         $ttd                                    = new TimestampToDate;
00404 
00405         if(!$DateValues[referer]) {
00406                 $ttd->ttd($timestamp);
00407                 $DateValues[date2]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00408                 $DateValues[date4]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00409                 $DateValues[begin_h]    = $DateValues[end_h]    = $ttd->hour_long ;
00410                 $DateValues[begin_min]  = $DateValues[end_min]  = $ttd->minutes ;
00411         }
00412         
00413         $dateContent = setDateView ($DateValues, "i",  $DB) ;
00414 
00415         Return $dateContent;    
00416 
00417 }// end func
00418 
00433 function setInsertAction( $startdate,$enddate, $endrotation, $DateValues,$DB ) {
00434         global $DP_UId, $DP_language;
00435 
00436         $End_rotation           = False ;
00437         $End_date                       = False ;
00438         $Start_date                     = explode ("/",$startdate);
00439         if($DateValues[whole_day] !=1){
00440                 $DateValues[start_ts]   = mktime($DateValues[begin_h],$DateValues[begin_min],0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00441                 $End_date                               = explode ("/",$enddate);
00442                 $DateValues[end_ts]             = mktime($DateValues[end_h],$DateValues[end_min],0,(int)$End_date[1],(int)$End_date[0],(int)$End_date[2]);
00443         } else {
00444                 $DateValues[start_ts]   = mktime(0,0,0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00445                 $DateValues[end_ts]             = mktime(23,59,59,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00446                 $End_date                               = False ;
00447         }
00448         if ($DateValues[rotation] != 0){
00449                 if($endrotation == "") {
00450                         $DateValues[end_rotation_ts]            = 2147468399;
00451                         $End_rotation                                           = False ;
00452                 }else {
00453                         $End_rotation   = explode ("/",$endrotation);
00454                         $DateValues[end_rotation_ts]            = mktime(23,59,59,$End_rotation[1],$End_rotation[0],$End_rotation[2]);
00455                 }
00456         } else {
00457                 $DateValues[end_rotation_ts]            = 0;
00458                 $End_rotation                                           = False ;
00459         }
00460         
00461         // error Managment 
00462         $Valid = parseData ($DateValues, $Start_date, $End_date, $End_rotation);
00463 
00464         if($Valid[0] == "TRUE") {
00465                 $return = $DB->addDate (        $DateValues[start_ts], 
00466                                                                         $DateValues[end_ts], 
00467                                                                         $DateValues[group_id], 
00468                                                                         $DP_UId, 
00469                                                                         mktime(), 
00470                                                                         $DateValues[rotation], 
00471                                                                         $DateValues[end_rotation_ts], 
00472                                                                         htmlspecialchars ($DateValues[shorttext]), 
00473                                                                         htmlspecialchars ($DateValues[text]), 
00474                                                                         $DateValues[keyword_id]);
00475 
00476                 switch ($return){
00477                                 case "0": $msg = False;
00478                                                 break;
00479                                 case "1": $msg = $DP_language[ERROR_DATE_EXISTS]."<br>";
00480                                                 break;
00481                                 case "2": $msg = $DP_language[ERROR_DB_CONNECT]."<br>";
00482                                                 break;
00483                 }
00484         }else 
00485         {
00486                 for($i=0; $i<(count($Valid)-1); $i++) {
00487                         $msg = $msg.$Valid[$i]."<br>";
00488                 }
00489                 $msg = $msg.'
00490                         <br>
00491                         ';
00492         }
00493 
00494         Return $msg;
00495 }// end func
00496 
00512 function setUpdateDeleteDate($timestamp, $date_id, $DateArray, $DateValues, $DB) 
00513 {
00514         global $js ,$DP_UId, $DP_language ;
00515 
00516         if(!$DateValues[referer]) {
00517         $ttd                                            = new TimestampToDate;
00518         $ttd->ttd($DateArray[begin]);
00519         $DateValues[date2]                      = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00520         $DateValues[begin_h]            = $ttd->hour_long ;
00521         $DateValues[begin_min]          = $ttd->minutes ;
00522         $DateValues[date_timestamp] = $timestamp;
00523         
00524         if((int)$DateArray[end]-(int)$DateArray[begin] == 86399 ) $DateValues[whole_day] = "1" ;
00525 
00526         if($DateArray[end]) {
00527                 $ttd->ttd($DateArray[end]);
00528                 $DateValues[date4]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00529                 $DateValues[end_h]              = $ttd->hour_long ;
00530                 $DateValues[end_min]    = $ttd->minutes ;
00531         }
00532         if($DateArray[end_rotation]) {
00533                 $ttd->ttd($DateArray[end_rotation]);
00534                 $DateValues[date6]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00535         }
00536         $DateValues[DateArray]          = $DateArray;
00537         $DateValues[rotation]           = $DateArray[rotation] ;
00538         switch($DateArray[rotation]) {
00539                 case '0':
00540                         $DateValues[rotation_name] = $DP_language[r_nonrecurring];
00541                         break; 
00542                 case '1':
00543                         $DateValues[rotation_name] = $DP_language[r_day];
00544                         break; 
00545                 case '2':
00546                         $DateValues[rotation_name] = $DP_language[r_week];
00547                         break; 
00548                 case '3':
00549                         $DateValues[rotation_name] = $DP_language[r_14];
00550                         break; 
00551                 case '4':
00552                         $DateValues[rotation_name] = $DP_language[r_4_weeks];
00553                         break; 
00554                 case '5':
00555                         $DateValues[rotation_name] = $DP_language[r_month];
00556                         break; 
00557                 case '6':
00558                         $DateValues[rotation_name] = $DP_language[r_halfyear];
00559                         break;
00560                 case '7':
00561                         $DateValues[rotation_name] = $DP_language[r_year];
00562                         break; 
00563         }
00564         $DateValues[date_id]            = $DateArray[date_id] ;
00565         $DateValues[Groupform]          = $DB->getGroupName($DateArray[group_id]);
00566         if(!$DateValues[Groupform]) $DateValues[Groupform] = "none" ;
00567 
00568         }
00569         // if u wish that more than the owner of a group can chane properties af a date , this row down is the row that has to be changed.
00570         if($DateArray[user_id] == $DP_UId or $DateArray[group_id] == 0) {
00571                 $dateContent = setDateView ($DateValues, "ud_w", $DB) ;
00572         }else {
00573                 $dateContent = setDateView ($DateValues, "ud_ro", $DB) ;
00574                 $js = "ro";
00575         }
00576 
00577         Return $dateContent;    
00578 
00579 }// end func
00580 
00595 function setUpdateAction( $startdate,$enddate, $endrotation, $DateValues, $DB) {
00596         global $DP_UId, $DP_language;
00597         if($DateValues[writepermission] != "ro") {
00598                 $End_rotation           = False ;
00599                 $End_date                       = False ;
00600                 $Start_date                     = explode ("/",$startdate);
00601 
00602                 if($DateValues[whole_day] !=1){
00603                         $DateValues[start_ts]   = mktime($DateValues[begin_h],$DateValues[begin_min],0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00604                         $End_date                               = explode ("/",$enddate);
00605                         $DateValues[end_ts]             = mktime($DateValues[end_h],$DateValues[end_min],0,(int)$End_date[1],(int)$End_date[0],(int)$End_date[2]);
00606                 } else {
00607                         $DateValues[start_ts]   = mktime(0,0,0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00608                         $DateValues[end_ts]             = mktime(23,59,59,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00609                         $End_date                               = False ;
00610                 }
00611                 if ($DateValues[rotation] != 0){
00612                         if($endrotation == "") {
00613                                 $DateValues[end_rotation_ts]            = 2147468399;
00614                                 $End_rotation                                           = False ;
00615                         }else {
00616                                 $End_rotation   = explode ("/",$endrotation);
00617 
00618                                 $DateValues[end_rotation_ts]            = mktime(23,59,59,$End_rotation[1],$End_rotation[0],$End_rotation[2]);
00619                         }
00620                 } else {
00621                         $DateValues[end_rotation_ts]            = 0;
00622                         $End_rotation                                           = False ;
00623                 }
00624         
00625                 // error Managment 
00626                 $Valid = parseData ($DateValues, $Start_date, $End_date, $End_rotation);
00627         }else {
00628                 $Valid[0] = "TRUE";
00629         }
00630 
00631         if($Valid[0] == "TRUE") {
00632                 if($DateValues[writepermission] != "ro") {
00633                         $return = $DB->updateDate (     $DateValues[date_id],
00634                                                                         $DateValues[start_ts], 
00635                                                                         $DateValues[end_ts], 
00636                                                                         $DP_UId, 
00637                                                                         mktime(), 
00638                                                                         $DateValues[rotation], 
00639                                                                         $DateValues[end_rotation_ts], 
00640                                                                         htmlspecialchars ($DateValues[shorttext]), 
00641                                                                         htmlspecialchars ($DateValues[text]));
00642                 }
00643 
00644                 $return = $DB->updateKeyword2Date (
00645                                                                         $DP_UId, 
00646                                                                         $DateValues[date_id],
00647                                                                         $DateValues[keyword_id]);
00648                 if($return) {
00649                         $msg = False;
00650                 }else {
00651                         $msg = $DP_language[ERROR_DB]."<br>";
00652                 }
00653 //                      $msg = $msg.' Damit der Timo debuggen kann :
00654 //                      <br> hier rotation: '.$DateValues[rotation].'<br>
00655 //                      ';
00656         }else {
00657                 for($i=0; $i<(count($Valid)-1); $i++) {
00658                         $msg = $msg.$Valid[$i]."<br>";
00659                 }
00660                 $msg = $msg.' 
00661                         <br>
00662                         ';
00663         }
00664         Return $msg;
00665 }// end func
00666 
00678 function setDeleteAction($DateValues, $DB) {
00679         global $DP_UId, $DP_language;
00680         $Gui                            = new Gui();
00681 
00682         if($DateValues[rotation_id] != 0) {
00683                 $DateValues[rotation_id] = 0 ;
00684                 eval ("\$msg = \"".$Gui->getTemplate("date_msgdelrotation")."\";");
00685                 Return $msg;
00686         }
00687         switch($DateValues[rotation_ack]) {
00688                 case 'one':
00689                         $return = $DB->delDate (        $DateValues[date_id],
00690                                                                                 $DP_UId, 
00691                                                                                 $DateValues[date_timestamp]);
00692                         break; 
00693                 case 'all':
00694                         $return = $DB->delDate (        $DateValues[date_id],
00695                                                                                 $DP_UId, 
00696                                                                                 "0");
00697                         break; 
00698                 default :
00699                         $return = $DB->delDate (        $DateValues[date_id],
00700                                                                                 $DP_UId, 
00701                                                                                 "0");
00702         }
00703 
00704         if($return) {
00705                         $msg = false;
00706         }else {
00707                         $msg = $DP_language[ERROR_DB]."";
00708         }       
00709                 //$msg = $msg.' Damit der Timo debuggen kann :<br>R�ckgabewert : '.$return.' <br> ';
00710 
00711         return $msg;
00712 }// end func
00713 ?>

Generated on Fri Dec 13 2013 17:56:47 for ILIAS Release_3_9_x_branch .rev 46835 by  doxygen 1.7.1