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

modules/dateplaner/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 
00050 function setDateView ($DateValues, $flag, $DB)
00051 {
00052         global $DP_language, $templatefolder, $actualtemplate,  $DP_CSS;
00053 
00054         $Gui            = new Gui();
00055         $ttd            = new TimestampToDate;
00056         
00057         $Array          = setJs();
00058         $DateValues[popupcall_1] = $Array[1] ;
00059         $DateValues[popupcall_2] = $Array[2] ;
00060         $DateValues[popupcall_3] = $Array[3] ;
00061         if(!$DateValues[text])          $DateValues[text]                = $DateValues[DateArray][text];
00062         if(!$DateValues[shorttext]) $DateValues[shorttext]       = $DateValues[DateArray][shorttext];
00063         if($DateValues[whole_day] == "1") $DateValues[checked] = "checked";
00064 
00065         $date2 = $DateValues[date2];
00066         $date4 = $DateValues[date4];
00067         $date6 = $DateValues[date6];
00068 
00069 
00070         switch($flag) {
00071                 case 'i': // insert date
00072                         eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate")."\";");
00073                         eval ("\$tab_end_date = \"".$Gui->getTemplate("date_enddate")."\";");
00074                         if($DateValues[rotation]) $DateValues[$DateValues[rotation]] = "selected";
00075                         eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation")."\";");
00076                         $DateValues[Groupform] = setGroups($DateValues[group_id], $DB);
00077                         eval ("\$tab_group = \"".$Gui->getTemplate("date_group")."\";");
00078                         $DateValues[Keywordform] = setKeywords($DateValues[keyword_id], $DB);
00079                         eval ("\$tab_keyword = \"".$Gui->getTemplate("date_keyword")."\";");
00080                         eval ("\$tab_text = \"".$Gui->getTemplate("date_text")."\";");
00081                         eval ("\$btn_in = \"".$Gui->getTemplate("date_btnin")."\";");
00082                         eval ("\$btn_exit = \"".$Gui->getTemplate("date_btnexit")."\";");
00083                         break; 
00084                 case 'ud_w': // update/delete a wirtable date
00085 
00086                         $DateValues[old_keyword_id]             = $DateValues[DateArray][old_keyword_id];
00087                         eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate")."\";");
00088                         eval ("\$tab_end_date = \"".$Gui->getTemplate("date_enddate")."\";");
00089                         if($DateValues[rotation]) {
00090                                 $DateValues[$DateValues[rotation]] = "selected";
00091                         }else {
00092                                 $date6 = $DateValues[date6];
00093                                 $DateValues[$DateValues[DateArray][rotation]] = "selected";
00094                         }
00095                         eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation")."\";");
00096                         eval ("\$tab_group = \"".$Gui->getTemplate("date_group_ro")."\";");
00097                         if($DateValues[keyword_id]) {
00098                                 $DateValues[Keywordform] = setKeywords($DateValues[keyword_id],$DB);
00099                         }else {
00100                                 $DateValues[Keywordform] = setKeywords($DateValues[DateArray][keyword_id],$DB);
00101                         }
00102                         eval ("\$tab_keyword = \"".$Gui->getTemplate("date_keyword")."\";");
00103                         eval ("\$tab_text = \"".$Gui->getTemplate("date_text")."\";");
00104                         //Format Date Text for Priview Output
00105                         $DateValues = parseDataForOutput ($DateValues);
00106                         $DP_language[dv_message] = $DP_language[dv_message].$DP_language[dv_preview];
00107                         eval ("\$tab_pretext = \"".$Gui->getTemplate("date_text_ro")."\";");
00108                         eval ("\$btn_del = \"".$Gui->getTemplate("date_btndel")."\";");
00109                         eval ("\$btn_upd = \"".$Gui->getTemplate("date_btnupd")."\";");
00110                         eval ("\$btn_exit = \"".$Gui->getTemplate("date_btnexit")."\";");
00111                         break;
00112                 case 'ud_ro': // update/delete a read only date
00113                         
00114                         //Format Date Text for Output
00115                         $DateValues = parseDataForOutput ($DateValues);
00116                         
00117                         $DateValues[start_ts]                   = $DateValues[DateArray][begin]; 
00118                         $DateValues[end_ts]                             = $DateValues[DateArray][end];
00119                         $DateValues[end_rotation_ts]    = $DateValues[DateArray][end_rotation];
00120                         $DateValues[keyword_id]                 = $DateValues[DateArray][keyword_id];
00121                         $DateValues[old_keyword_id]             = $DateValues[DateArray][old_keyword_id];
00122 
00123                         
00124                         if($DateValues[whole_day] != "1") {
00125                                 $ttd->ttd($DateValues[DateArray][begin]);
00126                                 $DateValues[starttime]                  = $ttd->middletime ;
00127                                 eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate_ro")."\";");
00128                                 $ttd->ttd($DateValues[DateArray][end]);
00129                                 $DateValues[endtime] = $ttd->middletime ;
00130                                 $DateValues[whole_day_name]             = "no";
00131                                 eval ("\$tab_end_date = \"".$Gui->getTemplate("date_enddate_ro")."\";");
00132                         }else {
00133                                 $ttd->ttd($DateValues[DateArray][begin]);
00134                                 $DateValues[starttime]                  = $ttd->shorttime ;
00135                                 $DateValues[whole_day_name]             = "yes";
00136                                 eval ("\$tab_start_date = \"".$Gui->getTemplate("date_startdate_ro")."\";");
00137                         }
00138 
00139                         if($DateValues[DateArray][rotation] != 0 ) {
00140                                 $ttd->ttd($DateValues[DateArray][end_rotation]);
00141                                 $DateValues[end_rotationtime] = $ttd->shorttime ;
00142                                 eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation_ro")."\";");
00143                         }else {
00144                                 eval ("\$tab_rotation = \"".$Gui->getTemplate("date_rotation_ro")."\";");
00145                         }
00146                         eval ("\$tab_group = \"".$Gui->getTemplate("date_group_ro")."\";");
00147 
00148                         $DateValues[Keywordform] = setKeywords($DateValues[DateArray][keyword_id],$DB);
00149                         eval ("\$tab_keyword = \"".$Gui->getTemplate("date_keyword")."\";");
00150                         eval ("\$tab_text = \"".$Gui->getTemplate("date_text_ro")."\";");
00151                         eval ("\$btn_del = \"".$Gui->getTemplate("date_btndel")."\";");
00152                         eval ("\$btn_upd = \"".$Gui->getTemplate("date_btnupd")."\";");
00153                         eval ("\$btn_exit = \"".$Gui->getTemplate("date_btnexit")."\";");
00154                         break;
00155                 default :
00156         
00157         }
00158 
00159         eval ("\$dateContent = \"".$Gui->getTemplate("date_content")."\";");
00160 
00161         Return $dateContent;    
00162         
00163 }// end func
00164 
00173 function  parseDataForOutput ($DateValues) {
00174         
00175         // parse text for html links and e-mail adresses
00176         $text = $DateValues[text];
00177         $urlsearch[]="/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00178         $urlsearch[]="/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00179         $urlreplace[]="\\1<A HREF='\\2\\4' target='_blank'>\\2\\4</A>";
00180         $urlreplace[]="<A HREF='\\1\\3' target='_blank'>\\1\\3</A>";
00181         $emailsearch[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00182         $emailsearch[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00183         $emailreplace[]="\\1<a href='mailto:\\2'>\\2</a>";
00184         $emailreplace[]="<a href='mailto:\\0'>\\0</a>";
00185         $text = preg_replace($urlsearch, $urlreplace, $text);
00186         if (strpos($text, "@")) $text = preg_replace($emailsearch, $emailreplace, $text);
00187         // parse text for line breaks
00188         $text = str_replace("\r\n","<br>" , $text);
00189         // parse text for images links
00190         $text = preg_replace("!\[img\](.*)\[/img\]!U","<img alt='\\1' src='\\1'>",$text);
00191         $DateValues[text] = $text;
00192         // parse text for html links and e-mail adresses
00193 
00194         $text = $DateValues[shorttext];
00195         // parse shorttext for html links and e-mail adresses
00196         $urlsearch[]="/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00197         $urlsearch[]="/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\*\^\$!`\"'\|\[\]\{\};<>]*)/si";
00198         $urlreplace[]="\\1<A HREF='\\2\\4' target='_blank'>\\2\\4</A>";
00199         $urlreplace[]="<A HREF='\\1\\3' target='_blank'>\\1\\3</A>";
00200         $emailsearch[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00201         $emailsearch[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
00202         $emailreplace[]="\\1<a href='mailto:\\2'>\\2</a>";
00203         $emailreplace[]="<a href='mailto:\\0'>\\0</a>";
00204         $text = preg_replace($urlsearch, $urlreplace, $text);
00205         if (strpos($text, "@")) $text = preg_replace($emailsearch, $emailreplace, $text);
00206         $text = str_replace("\r\n","<br>" , $text);
00207         $DateValues[shorttext] = $text;
00208 
00209         Return $DateValues;
00210 
00211 }// end func
00212 
00221 function setJs() {
00222         global $DP_language;
00223 
00224         $Array[1] = '
00225 <script language=JavaScript>
00226                         var cal2 = new CalendarPopup();  
00227                         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].'\'); 
00228                         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].'\');
00229                         cal2.setWeekStartDay(1);
00230                         cal2.setTodayText("'.$DP_language[today].'");
00231 </script>
00232 ';
00233 
00234         $Array[2] = '
00235 <script language=JavaScript >
00236                         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].'\'); 
00237                         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].'\');
00238                         cal4.setWeekStartDay(1);
00239                         cal4.setTodayText("'.$DP_language[today].'");                   
00240                         cal4.showYearNavigation(); 
00241 </script>
00242 ';
00243 
00244         $Array[3] = '
00245 <script language=JavaScript >
00246                         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].'\'); 
00247                         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].'\');
00248                         cal6.setWeekStartDay(1);
00249                         cal6.setTodayText("'.$DP_language[today].'");                   
00250                         cal6.showYearNavigation(); 
00251 </script>
00252 ';
00253         Return $Array ;
00254 }// end func
00255 
00265 function setKeywords($keyword_id,$DB) {
00266         $Keywords = getKeywordContent($DB);
00267         if($Keywords) {
00268                 for ($j = 0 ; $j < count($Keywords) ; $j++) {
00269                         if($keyword_id == $Keywords[$j][0]) {
00270                                 $Keywordform = $Keywordform.'<option selected value="'.$Keywords[$j][0].'">'.$Keywords[$j][1].'</option>';
00271                         }else {
00272                                 $Keywordform = $Keywordform.'<option value="'.$Keywords[$j][0].'">'.$Keywords[$j][1].'</option>';
00273                         }
00274                 }
00275         }
00276         Return $Keywordform;
00277         
00278 }// end func
00279 
00289 function setGroups($groupID,$DB) {
00290         $Groups = getGroupContent($DB);
00291         if($Groups) {
00292                 for ($i = 0 ; $i < count($Groups) ; $i++) {
00293                         if($groupID and $groupID == $Groups[$i][0] ) {
00294                                 $Groupform = $Groupform.'<option selected value="'.$Groups[$i][0].'">'.$Groups[$i][1].'</option>';
00295                         }else {
00296                                 $Groupform = $Groupform.'<option value="'.$Groups[$i][0].'">'.$Groups[$i][1].'</option>';
00297                         }
00298                 }
00299         }
00300         Return $Groupform;
00301 
00302 }// end func
00303 
00313 function getGroupContent($DB) {
00314         global $DP_UId  ;
00315         $Groups = $DB->getUserGroups ($DP_UId);
00316 
00317         Return $Groups;
00318 
00319 }// end func
00320 
00330 function getKeywordContent($DB) {
00331         global $DP_UId ;
00332         $Keywords       = $DB->getKeywords ($DP_UId);
00333 
00334         Return $Keywords;
00335 
00336 }// end func
00337 
00350 function  parseData ($DateValues, $Start_date, $End_date, $End_rotation) {
00351         global $DP_language;
00352         if($DateValues[start_ts] == "-1") $Valid[] = $DP_language[ERROR_STARTDATE];
00353         if($DateValues[whole_day] !=1 and $DateValues[end_ts] == "-1") $Valid[] = $DP_language[ERROR_ENDDATE];
00354         if($DateValues[end_rotation_ts] == "-1") $Valid[] = $DP_language[ERROR_ROTATIONEND];
00355         if($DateValues[whole_day] !=1 and $DateValues[start_ts] > $DateValues[end_ts]) $Valid[] = $DP_language[ERROR_END_START]; 
00356         if($DateValues[end_rotation_ts] and $DateValues[end_rotation_ts] < $DateValues[start_ts]) $Valid[] = $DP_language[ERROR_ROT_END_START]; 
00357 
00358         if(     $Start_date[0] != date ("d", mktime(0,0,0,$Start_date[1],$Start_date[0],$Start_date[2])) or
00359                 $Start_date[1] != date ("m", mktime(0,0,0,$Start_date[1],$Start_date[0],$Start_date[2])) or 
00360                 $Start_date[2] != date ("Y", mktime(0,0,0,$Start_date[1],$Start_date[0],$Start_date[2]))) 
00361         {
00362                  $Valid[] = $DP_language[ERROR_STARTDATE];
00363         }
00364         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
00365                 $DateValues[begin_min] != date ("i", mktime(0,$DateValues[begin_min],0,$Start_date[1],$Start_date[0],$Start_date[2]))) 
00366         {
00367                  $Valid[] = $DP_language[ERROR_STARTTIME];
00368         }
00369         if(     $End_date and ($End_date[0] != date ("d", mktime(0,0,0,$End_date[1],$End_date[0],$End_date[2])) or
00370                 $End_date[1] != date ("m", mktime(0,0,0,$End_date[1],$End_date[0],$End_date[2])) or 
00371                 $End_date[2] != date ("Y", mktime(0,0,0,$End_date[1],$End_date[0],$End_date[2])))) 
00372         {
00373                  $Valid[] = $DP_language[ERROR_ENDDATE];
00374         }
00375         if(     $DateValues[end_h] != date ("H", mktime($DateValues[end_h],0,0,$Start_date[1],$Start_date[0],$Start_date[2])) or
00376                 $DateValues[end_min] != date ("i", mktime(0,$DateValues[end_min],0,$Start_date[1],$Start_date[0],$Start_date[2]))) 
00377         {
00378                  $Valid[] = $DP_language[ERROR_ENDTIME];
00379         }
00380         if(     $End_rotation and ($End_rotation[0] != date ("d", mktime(0,0,0,$End_rotation[1],$End_rotation[0],$End_rotation[2])) or
00381                 $End_rotation[1] != date ("m", mktime(0,0,0,$End_rotation[1],$End_rotation[0],$End_rotation[2])) or 
00382                 $End_rotation[2] != date ("Y", mktime(0,0,0,$End_rotation[1],$End_rotation[0],$End_rotation[2])))) 
00383         {
00384                  $Valid[] = $DP_language[ERROR_ROTATIONEND];
00385         }
00386         if($DateValues[shorttext] == "") $Valid[] = $DP_language[ERROR_SHORTTEXT]; 
00387 
00388         $Valid[] = "TRUE";
00389         Return $Valid;
00390 
00391 }// end func
00392 
00403 function setInsertDate($timestamp, $DateValues, $DB) 
00404 {
00405 
00406         $ttd                                    = new TimestampToDate;
00407 
00408         if(!$DateValues[referer]) {
00409                 $ttd->ttd($timestamp);
00410                 $DateValues[date2]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00411                 $DateValues[date4]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00412                 $DateValues[begin_h]    = $DateValues[end_h]    = $ttd->hour_long ;
00413                 $DateValues[begin_min]  = $DateValues[end_min]  = $ttd->minutes ;
00414         }
00415         
00416         $dateContent = setDateView ($DateValues, "i",  $DB) ;
00417 
00418         Return $dateContent;    
00419 
00420 }// end func
00421 
00436 function setInsertAction( $startdate,$enddate, $endrotation, $DateValues,$DB ) {
00437         global $DP_UId, $DP_language;
00438 
00439         $End_rotation           = False ;
00440         $End_date                       = False ;
00441         $Start_date                     = explode ("/",$startdate);
00442         if($DateValues[whole_day] !=1){
00443                 $DateValues[start_ts]   = mktime($DateValues[begin_h],$DateValues[begin_min],0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00444                 $End_date                               = explode ("/",$enddate);
00445                 $DateValues[end_ts]             = mktime($DateValues[end_h],$DateValues[end_min],0,(int)$End_date[1],(int)$End_date[0],(int)$End_date[2]);
00446         } else {
00447                 $DateValues[start_ts]   = mktime(0,0,0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00448                 $DateValues[end_ts]             = mktime(23,59,59,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00449                 $End_date                               = False ;
00450         }
00451         if ($DateValues[rotation] != 0){
00452                 if($endrotation == "") {
00453                         $DateValues[end_rotation_ts]            = 2147468399;
00454                         $End_rotation                                           = False ;
00455                 }else {
00456                         $End_rotation   = explode ("/",$endrotation);
00457                         $DateValues[end_rotation_ts]            = mktime(23,59,59,$End_rotation[1],$End_rotation[0],$End_rotation[2]);
00458                 }
00459         } else {
00460                 $DateValues[end_rotation_ts]            = 0;
00461                 $End_rotation                                           = False ;
00462         }
00463         
00464         // error Managment 
00465         $Valid = parseData ($DateValues, $Start_date, $End_date, $End_rotation);
00466 
00467         if($Valid[0] == "TRUE") {
00468                 $return = $DB->addDate (        $DateValues[start_ts], 
00469                                                                         $DateValues[end_ts], 
00470                                                                         $DateValues[group_id], 
00471                                                                         $DP_UId, 
00472                                                                         mktime(), 
00473                                                                         $DateValues[rotation], 
00474                                                                         $DateValues[end_rotation_ts], 
00475                                                                         htmlspecialchars ($DateValues[shorttext]), 
00476                                                                         htmlspecialchars ($DateValues[text]), 
00477                                                                         $DateValues[keyword_id]);
00478 
00479                 switch ($return){
00480                                 case "0": $msg = False;
00481                                                 break;
00482                                 case "1": $msg = $DP_language[ERROR_DATE_EXISTS]."<br>";
00483                                                 break;
00484                                 case "2": $msg = $DP_language[ERROR_DB_CONNECT]."<br>";
00485                                                 break;
00486                 }
00487         }else 
00488         {
00489                 for($i=0; $i<(count($Valid)-1); $i++) {
00490                         $msg = $msg.$Valid[$i]."<br>";
00491                 }
00492                 $msg = $msg.'
00493                         <br>
00494                         ';
00495         }
00496 
00497         Return $msg;
00498 }// end func
00499 
00515 function setUpdateDeleteDate($timestamp, $date_id, $DateArray, $DateValues, $DB) 
00516 {
00517         global $js ,$DP_UId, $DP_language ;
00518 
00519         if(!$DateValues[referer]) {
00520         $ttd                                            = new TimestampToDate;
00521         $ttd->ttd($DateArray[begin]);
00522         $DateValues[date2]                      = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00523         $DateValues[begin_h]            = $ttd->hour_long ;
00524         $DateValues[begin_min]          = $ttd->minutes ;
00525         $DateValues[date_timestamp] = $timestamp;
00526         
00527         if((int)$DateArray[end]-(int)$DateArray[begin] == 86399 ) $DateValues[whole_day] = "1" ;
00528 
00529         if($DateArray[end]) {
00530                 $ttd->ttd($DateArray[end]);
00531                 $DateValues[date4]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00532                 $DateValues[end_h]              = $ttd->hour_long ;
00533                 $DateValues[end_min]    = $ttd->minutes ;
00534         }
00535         if($DateArray[end_rotation]) {
00536                 $ttd->ttd($DateArray[end_rotation]);
00537                 $DateValues[date6]              = $ttd->day_of_month."/".$ttd->monthnumber_long."/".$ttd->year_long ;
00538         }
00539         $DateValues[DateArray]          = $DateArray;
00540         $DateValues[rotation]           = $DateArray[rotation] ;
00541         switch($DateArray[rotation]) {
00542                 case '0':
00543                         $DateValues[rotation_name] = $DP_language[r_nonrecurring];
00544                         break; 
00545                 case '1':
00546                         $DateValues[rotation_name] = $DP_language[r_day];
00547                         break; 
00548                 case '2':
00549                         $DateValues[rotation_name] = $DP_language[r_week];
00550                         break; 
00551                 case '3':
00552                         $DateValues[rotation_name] = $DP_language[r_14];
00553                         break; 
00554                 case '4':
00555                         $DateValues[rotation_name] = $DP_language[r_4_weeks];
00556                         break; 
00557                 case '5':
00558                         $DateValues[rotation_name] = $DP_language[r_month];
00559                         break; 
00560                 case '6':
00561                         $DateValues[rotation_name] = $DP_language[r_halfyear];
00562                         break;
00563                 case '7':
00564                         $DateValues[rotation_name] = $DP_language[r_year];
00565                         break; 
00566         }
00567         $DateValues[date_id]            = $DateArray[date_id] ;
00568         $DateValues[Groupform]          = $DB->getGroupName($DateArray[group_id]);
00569         if(!$DateValues[Groupform]) $DateValues[Groupform] = "none" ;
00570 
00571         }
00572         // 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.
00573         if($DateArray[user_id] == $DP_UId or $DateArray[group_id] == 0) {
00574                 $dateContent = setDateView ($DateValues, "ud_w", $DB) ;
00575         }else {
00576                 $dateContent = setDateView ($DateValues, "ud_ro", $DB) ;
00577                 $js = "ro";
00578         }
00579 
00580         Return $dateContent;    
00581 
00582 }// end func
00583 
00598 function setUpdateAction( $startdate,$enddate, $endrotation, $DateValues, $DB) {
00599         global $DP_UId, $DP_language;
00600         if($DateValues[writepermission] != "ro") {
00601                 $End_rotation           = False ;
00602                 $End_date                       = False ;
00603                 $Start_date                     = explode ("/",$startdate);
00604 
00605                 if($DateValues[whole_day] !=1){
00606                         $DateValues[start_ts]   = mktime($DateValues[begin_h],$DateValues[begin_min],0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00607                         $End_date                               = explode ("/",$enddate);
00608                         $DateValues[end_ts]             = mktime($DateValues[end_h],$DateValues[end_min],0,(int)$End_date[1],(int)$End_date[0],(int)$End_date[2]);
00609                 } else {
00610                         $DateValues[start_ts]   = mktime(0,0,0,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00611                         $DateValues[end_ts]             = mktime(23,59,59,(int)$Start_date[1],(int)$Start_date[0],(int)$Start_date[2]);
00612                         $End_date                               = False ;
00613                 }
00614                 if ($DateValues[rotation] != 0){
00615                         if($endrotation == "") {
00616                                 $DateValues[end_rotation_ts]            = 2147468399;
00617                                 $End_rotation                                           = False ;
00618                         }else {
00619                                 $End_rotation   = explode ("/",$endrotation);
00620 
00621                                 $DateValues[end_rotation_ts]            = mktime(23,59,59,$End_rotation[1],$End_rotation[0],$End_rotation[2]);
00622                         }
00623                 } else {
00624                         $DateValues[end_rotation_ts]            = 0;
00625                         $End_rotation                                           = False ;
00626                 }
00627         
00628                 // error Managment 
00629                 $Valid = parseData ($DateValues, $Start_date, $End_date, $End_rotation);
00630         }else {
00631                 $Valid[0] = "TRUE";
00632         }
00633 
00634         if($Valid[0] == "TRUE") {
00635                 if($DateValues[writepermission] != "ro") {
00636                         $return = $DB->updateDate (     $DateValues[date_id],
00637                                                                         $DateValues[start_ts], 
00638                                                                         $DateValues[end_ts], 
00639                                                                         $DP_UId, 
00640                                                                         mktime(), 
00641                                                                         $DateValues[rotation], 
00642                                                                         $DateValues[end_rotation_ts], 
00643                                                                         htmlspecialchars ($DateValues[shorttext]), 
00644                                                                         htmlspecialchars ($DateValues[text]));
00645                 }
00646 
00647                 $return = $DB->updateKeyword2Date (
00648                                                                         $DP_UId, 
00649                                                                         $DateValues[date_id],
00650                                                                         $DateValues[keyword_id]);
00651                 if($return) {
00652                         $msg = False;
00653                 }else {
00654                         $msg = $DP_language[ERROR_DB]."<br>";
00655                 }
00656 //                      $msg = $msg.' Damit der Timo debuggen kann :
00657 //                      <br> hier rotation: '.$DateValues[rotation].'<br>
00658 //                      ';
00659         }else {
00660                 for($i=0; $i<(count($Valid)-1); $i++) {
00661                         $msg = $msg.$Valid[$i]."<br>";
00662                 }
00663                 $msg = $msg.' 
00664                         <br>
00665                         ';
00666         }
00667         Return $msg;
00668 }// end func
00669 
00681 function setDeleteAction($DateValues, $DB) {
00682         global $DP_UId, $DP_language;
00683         $Gui                            = new Gui();
00684 
00685         if($DateValues[rotation_id] != 0) {
00686                 $DateValues[rotation_id] = 0 ;
00687                 eval ("\$msg = \"".$Gui->getTemplate("date_msgdelrotation")."\";");
00688                 Return $msg;
00689         }
00690         switch($DateValues[rotation_ack]) {
00691                 case 'one':
00692                         $return = $DB->delDate (        $DateValues[date_id],
00693                                                                                 $DP_UId, 
00694                                                                                 $DateValues[date_timestamp]);
00695                         break; 
00696                 case 'all':
00697                         $return = $DB->delDate (        $DateValues[date_id],
00698                                                                                 $DP_UId, 
00699                                                                                 "0");
00700                         break; 
00701                 default :
00702                         $return = $DB->delDate (        $DateValues[date_id],
00703                                                                                 $DP_UId, 
00704                                                                                 "0");
00705         }
00706 
00707         if($return) {
00708                         $msg = false;
00709         }else {
00710                         $msg = $DP_language[ERROR_DB]."";
00711         }       
00712                 //$msg = $msg.' Damit der Timo debuggen kann :<br>Rückgabewert : '.$return.' <br> ';
00713 
00714         return $msg;
00715 }// end func
00716 ?>

Generated on Fri Dec 13 2013 09:06:37 for ILIAS Release_3_4_x_branch .rev 46804 by  doxygen 1.7.1