1<?php 2/* $Id: view_avail.php,v 1.7 2006/04/16 14:40:44 leyeti Exp $ */ 3error_reporting (E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 4$myEnv["module"] = "calendar"; 5$myEnv["output"] = "html"; 6 7header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); //MSIE6 P3P header 8 9include("../../config.inc.php"); 10include(INCLUDEPATH . "container.inc.php"); 11include(INCLUDEPATH . "mSelectBox.class.php"); 12 13// adding file revision into global array 14if(function_exists("revisionInit")) revisionInit("\$Revision: 1.7 $", __FILE__); 15 16 17//// NATYS //// Date langage : 18include(CAL1_INC_DIR."date_lang.php"); 19$_SESSION["date_lang"] = array ("language" => $_SESSION["MGW"]->spkz, 20 "lang_dir" => CAL1_DIR."lang/" 21 ); 22/////////////// 23 24/// NATYS //// 25 26///////////// 27// NATYS : temporaire: 28//pour traiter le texte : 29function text_process($text){ 30return $text; 31} 32/// 33 34 35$serial_week = (isset($_GET["serial_week"])) ? $_GET["serial_week"] : (IsSet($_POST["serial_week"]) ? $_POST["serial_week"] : ""); 36$serial_year = (isset($_GET["serial_year"])) ? $_GET["serial_year"] : (IsSet($_POST["serial_year"]) ? $_POST["serial_year"] : ""); 37//parties is a string containing participants (e.g. : 1|4|12|14 -> four participants) 38$parties = (isset($_GET["parties"])) ? $_GET["parties"] : (IsSet($_POST["parties"]) ? $_POST["parties"] : ""); 39 40$date = (isset($_GET["date"])) ? $_GET["date"] : (IsSet($_POST["date"]) ? $_POST["date"] : ""); 41$gotodate = IsSet($_POST["gotodate"]) ? $_POST["gotodate"] : ""; 42if(isset($_GET["action"]) || isset($_POST["action"])) $action = (isset($_GET["action"])) ? $_GET["action"] : $_POST["action"]; 43 44$new = (isset($_GET["new"])) ? $_GET["new"] : (IsSet($_POST["new"]) ? $_POST["new"] : ""); 45 46$update = (isset($_GET["update"])) ? $_GET["update"] : (IsSet($_POST["update"]) ? $_POST["update"] : ""); 47$tsupdate = (isset($_GET["tsupdate"])) ? $_GET["tsupdate"] : (IsSet($_POST["tsupdate"]) ? $_POST["tsupdate"] : ""); 48$participants = (isset($_GET["participants"])) ? $_GET["participants"] : (IsSet($_POST["participants"]) ? $_POST["participants"] : array()); 49 50if (sizeof($participants)==0 && $parties!="") { 51 //get array with participants: 52 $participants=explode("|",$parties); 53} 54$parties =""; 55 56$ind = (isset($_GET["ind"])) ? $_GET["ind"] : (IsSet($_POST["ind"]) ? $_POST["ind"] : ""); 57$appointment_attribute = (isset($_GET["appointment_attribute"])) ? $_GET["appointment_attribute"] : (IsSet($_POST["appointment_attribute"]) ? $_POST["appointment_attribute"] : ""); 58 59$appointment_start = (isset($_GET["appointment_start"])) ? $_GET["appointment_start"] : (IsSet($_POST["appointment_start"]) ? $_POST["appointment_start"] : ""); 60$appointment_end = (isset($_GET["appointment_end"])) ? $_GET["appointment_end"] : (IsSet($_POST["appointment_end"]) ? $_POST["appointment_end"] : ""); 61 62//Duration: 63$appointment_duration = (isset($_GET["appointment_duration"])) ? $_GET["appointment_duration"] : (IsSet($_POST["appointment_duration"]) ? $_POST["appointment_duration"] : 0); 64if (!isset($duration)) { 65 /*if($appointment_duration!=0)*/ 66 //echo (date("H",$appointment_duration))." ".date("i",$appointment_duration); 67 //echo "<BR>".date("H:i",mktime(0,30,0, 1, 1,1971)); 68 $duration = date("H",$appointment_duration)*3600+date("i",$appointment_duration)*60; 69 //echo "<BR>".date("H:i",$duration+mktime(0,0,0, 1, 1,1971)); 70 //else $duration = 61; 71} 72 73 74// redirect to default view 75if($_SESSION["MGW"]->settings["calendar_defaultview"]!="" && (!isset($_GET['submenu']) || $_GET['submenu']!="yes") && 76 empty($date) && empty($gotodate) && empty($action) && empty($new) && 77 empty($update) && empty($tsupdate) && trim($_SESSION["MGW"]->settings["calendar_defaultview"])!="index.php"){ 78 redirect($_SESSION["MGW"]->settings["calendar_defaultview"]."?".SID); 79} 80 81$timemask = $_SESSION["MGW"]->settings["timefmt"]; 82 83// get the settings 84$holitemp = $_SESSION["MGW"]->settings["calendar_holiday_system"]; // calendar holiday system (country) 85$interval = $_SESSION["MGW"]->settings["calendar_interval"]; // calender interval length in minutes 86$interval_sec = 60 * $interval; // calender interval length in seconds 87$starthour = $_SESSION["MGW"]->settings["calendar_viewfrom"]; // start hour of day-view 88$endhour = $_SESSION["MGW"]->settings["calendar_viewto"]; // last hour of day-view 89 90 91$concat = $conn->Concat("'* '","firstname","' '","lastname"); 92 93 94if (isset($action)){ 95 96 switch($action) 97 { 98 case "choose" : if (empty($date)) { 99 $date = mktime(0,0,0, date("m", time()), date("d", time()), date("Y", time())); 100 } 101 break; 102 103 case "view" : if (empty($date)) { 104 $date = get_weektimestamp($serial_week,$serial_year); 105 } 106 break; 107 108 } 109 110} 111 112 113 114// Set certain values for time-handling 115$actual_date_arr = getdate($date); 116 117// Start time (according to settings) of selected day 118$start_time = mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"]) + $starthour * 3600; 119$app_start_time = mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"]); 120 121// End time (according to settings) of selected day 122$end_time = mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"]) + $endhour * 3600; 123$app_end_time = mktime(0,0,0, $actual_date_arr["mon"], $actual_date_arr["mday"], $actual_date_arr["year"]) + 23.5 * 3600; 124 125 126 127 128 129// =========================================== 130// Show Template : form for Choosing to View availabity 131// =========================================== 132if ($action=="choose") { 133 134 // according to settings : set current user available or selected: 135 if ($_SESSION["MGW"]->settings['calendar_be_participant']==1) $sql_where = " WHERE id != '".$_SESSION["MGW"]->userid."'"; 136 else $sql_current = ""; 137 138 $sql = "SELECT id as userid, ".$conn->Concat("firstname", "' '", "lastname")." AS name 139 FROM mgw_users". 140 $sql_where ." 141 ORDER BY name"; // is $sql_where ever defined here? 142 143 if(!$res = $conn->Execute($sql)) die(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__)); 144 while ($row = $res->FetchRow()) { 145 $smarty->append("partie", $row); 146 } 147 148 // according to settings : select current user by default: 149 if ($_SESSION["MGW"]->settings['calendar_be_participant']==1) { 150 $currentuser = array( "userid" => $_SESSION["MGW"]->userid , 151 "name" => $_SESSION["MGW"]->fullusername); 152 $smarty->append("spartie", $currentuser); 153 } 154 155 // create selectboxes 156 $sdate=getDate($date); 157 158 //current week : 159 $smarty->assign("week_sel",get_weeknumber($date)); 160 161 // years 162 $syears = new mSelectBox("serial_year"); 163 $syears ->setHandler("OnChange", "keep_weeks_coherence()"); 164 $smarty->assign("serial_year", $syears->getSB_Year(date("Y",time()),date("Y",time())+30,$sdate["year"],false)); 165 166 167 168 //duration => a passer en parametre 169 for( $t=mktime(0,30,0,1,1,1971); $t <= mktime(12,0,0,1,1,1971); $t+=$interval_sec) { 170 $appointment_duration_list = array( 171 "timestamp" => $t, 172 "time_label" => date($timemask, $t), 173 "sel" => ($duration==$t ? " selected" : "") 174 ); 175 //print_r($appointment_duration_list); 176 $smarty->append("appointment_duration_list", $appointment_duration_list); 177 } 178 179 180 $smarty->assign("year53_list",get_year53_list(date("Y",time()),date("Y",time())+30)); 181 182 if (isset($week)) { 183 $smarty->assign("week_sel",$week); 184 } 185 186 //$smarty->assign('date', $date); 187 $smarty->assign('back', "view_avail.php?date=$date&".SID); 188 $smarty->assign('sname', "new"); 189 $smarty->assign('datum', date(Lang::getLanguageString("gentemp_date_format_php"), $date)); 190 $smarty->assign('temp_err_no_start', Lang::getLanguageString("temp_err_no_start")); 191 $smarty->assign('temp_err_no_end', Lang::getLanguageString("temp_err_no_end")); 192 $smarty->assign('temp_err_end_before', Lang::getLanguageString("temp_err_no_before")); 193 $smarty->assign('temp_err_thema_long', Lang::getLanguageString("temp_err_thema_long")); 194 $smarty->assign('temp_err_external_long', Lang::getLanguageString("temp_err_external_long")); 195 196 //$smarty->assign('temp_i_will', Lang::getLanguageString("i_will_part")); 197 //$smarty->assign('temp_will_selected', ($_SESSION["MGW"]->settings['calendar_be_participant']==1 ? true : false)); 198 $smarty->assign("temp_title", Lang::getLanguageString("temp_newappointment")); 199 $smarty->assign("submenu", 7); 200 $smarty->assign("suvalue", Lang::getLanguageString("gentemp_view_avail")); 201 $smarty->assign("appointment_attribute",0); 202 203 204 $smarty->assign("target","view_avail.php"); 205 206 $smarty->display('calendar_choose_avail.tpl'); //new.tpl 207 //////////////// 208 209} // FIN IF CHOOSE 210 211 212 213//=================================== 214// SHOW week with availability... 215//=================================== 216 217if ($action=="view") { 218 // show week with periods: 219//echo "start: $start_time : ".date("H:i d-m-Y",$start_time)."<BR>"; 220//echo "end: $end_time : ".date("H:i d-m-Y",$end_time)."<BR>"; 221 222$actual_week_start_date = $start_time - ($actual_date_arr["wday"]-1) * 3600 * 24 - $starthour*3600; 223$actual_week_end_date = $end_time + (7-$actual_date_arr["wday"]) * 3600 * 24 - $endhour * 3600; 224 225// Set day header in week-view 226$woch_arr = array( Lang::getLanguageString("temp_weekday_abbr_1"), Lang::getLanguageString("temp_weekday_abbr_2"), Lang::getLanguageString("temp_weekday_abbr_3"), Lang::getLanguageString("temp_weekday_abbr_4"), 227 Lang::getLanguageString("temp_weekday_abbr_5"), Lang::getLanguageString("temp_weekday_abbr_6"), Lang::getLanguageString("temp_weekday_abbr_0")); 228 229$w = $actual_week_start_date; 230for ($i=0;$i<=6;$i++) { 231 $j=$i+2; 232 $colum = "d$j"; 233 if (get_celebrate_days($w, $holitemp) != "") $wday = get_celebrate_days($w, $holitemp); 234 else if ($i <= 4) $wday = $woch_arr[$i] . ", "./* NATYS date*/date_lang( Lang::getLanguageString("gentemp_date_format_php"), $w) . ""; 235 else if ($i == 5) $wday = Lang::getLanguageString("gentemp_weekday_7"); 236 else if ($i == 6) $wday = Lang::getLanguageString("gentemp_weekday_1"); 237 $smarty->assign("$colum", "<a class=\"edit\" href=\"index.php?date=$w&".SID."\">$wday</a>"); 238 $smarty->append("clm", array("date" => $w, "wkd"=> $woch_arr[$i])); 239 $w += 24*3600; 240} 241 242$wst_d = date("d/m", $actual_week_start_date); 243$wen_d = date("d/m/Y", $actual_week_end_date); 244$sql_start = date("Ymd", $actual_week_start_date); 245$sql_ende = date("Ymd", $actual_week_end_date); 246 247// ======================= 248// calendar change 249// ======================= 250if (isset($_POST["new_calendarid"])){ 251 if ($_POST["new_calendarid"]=="all") { 252 $_SESSION['calendarid'] = "all"; 253 $_SESSION['calendarname'] = Lang::getLanguageString("calendarownerall"); // translated all 254 } 255 else { 256 $sql = "SELECT id, $concat AS name FROM mgw_users WHERE NOT(level=".UDELETED.") AND id = ".$_POST["new_calendarid"]; 257 258 if(!$res = $conn->Execute($sql)) die(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__)); 259 $row = $res->FetchRow(); 260 $_SESSION['calendarid'] = $row["id"]; 261 $_SESSION['calendarname'] = $row["name"]; 262 } 263 unset($chgcal); 264} 265 266 267// ======================== 268// GET BIRTHDAYS 269// ======================== 270 271if($_SESSION["MGW"]->settings["calendar_show_birthdays"]){ 272 273 $w = $actual_week_start_date; 274 for ($i=1;$i<=7;$i++) { 275 $bd_start = $conn->DBDate(mktime(0,0,1,date("m",$w),date("d",$w),date("Y",$w))); 276 $bd_end = $conn->DBDate(mktime(23,59,59,date("m",$w),date("d",$w),date("Y",$w))); 277 278 //$bdsql = "SELECT $concat AS jubilee FROM mgw_contacts WHERE SUBSTRING(birthday,6,5)='".date("m-d",$w)."' AND (ispublic='1' OR owner='".$_SESSION["MGW"]->userid."')"; 279 $bdsql = "SELECT $concat AS jubilee 280 FROM mgw_contacts 281 WHERE birthday >= $bd_start AND 282 birthday <= $bd_end AND 283 (ispublic='1' OR owner='".$_SESSION["MGW"]->userid."')"; 284 if(!$bdres = $conn->Execute($bdsql)) exit(showSQLerror($bdsql, $conn->ErrorMsg(), __LINE__, __FILE__)); 285 $br = ""; 286 $bd = array_fill(0,8,""); 287 while($bdrow = $bdres->FetchRow()){ 288 $bd[$i] .= $bdrow["jubilee"].$br; 289 $br = "<br />"; 290 } 291 292 $nam = "klasse$i"; 293 if (get_celebrate_days(mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date)), $holitemp) != "") 294 $$nam = "feiertag"; 295 else if ((date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date))) == 0) || (date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date))) == 6)) 296 $$nam = "wochenende"; 297 else if (mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$i-1,date("Y",$actual_week_start_date)) == mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time()))) 298 $$nam = "heute"; 299 else $$nam = "tab"; 300 301 $w += 24*3600; // WARNING !! use mktime instead !! 302 } 303 304 $zeile = array( "von" => "", 305 "mon" => $bd[1], "tue" => $bd[2], "wed" => $bd[3], "thu" => $bd[4], "fri" => $bd[5], "sat" => $bd[6], "sun" => $bd[7], 306 "klass2" => $klasse1, "klass3" => $klasse2, "klass4" => $klasse3, "klass5" => $klasse4, "klass6" => $klasse5, "klass7" => $klasse6, "klass8" => $klasse7); 307 $smarty -> append("cw", $zeile); 308} 309 310// ======================== 311// ENTRY WEEKVIEW 312// ======================== 313if(!isset($_GET["action"]) or $_GET["action"]=="view") { 314 315 316//echo "w-start: $actual_week_start_date : ".date("H:i d-m-Y",$actual_week_start_date)."<BR>"; 317//echo "w-end: $actual_week_end_date : ".date("H:i d-m-Y",$actual_week_end_date)."<BR>"; 318 319 $color_avail_ok = "#C8FFB6"; 320 $color_avail_too_small = "#D18A76"; 321 $color_not_avail = "#CDD9E8"; 322 323 $smarty->assign("color_avail_ok",$color_avail_ok); 324 $smarty->assign("color_avail_too_small",$color_avail_too_small); 325 $smarty->assign("color_not_avail",$color_not_avail); 326 327 if (!IsSet($_SESSION["calendar_month"]) && !IsSet($_SESSION["calendar_year"])) { 328 $_SESSION['calendar_month'] = date("m", $date); 329 $_SESSION['calendar_year'] = date("Y", $date); 330 $_SESSION["calendar_month"] = $_SESSION['calendar_month']; 331 $_SESSION["calendar_year"] = $_SESSION['calendar_year']; 332 } 333 334 //////////////////////////////////////////////////////////////////////// 335 // set calenderid = userid if calendarid is not set 336 //////////////////////////////////////////////////////////////////////// 337 if (!isset($_SESSION["calendarid"])) { 338 $_SESSION['calendarid'] = $_SESSION["MGW"]->userid; 339 $_SESSION['calendarname'] = $_SESSION["MGW"]->fullusername; 340 } 341 342 //////////////////////////////////////////////////////////////////////// 343 // show user list as possible calendar owners 344 //////////////////////////////////////////////////////////////////////// 345 $sql = "SELECT id, $concat AS name FROM mgw_users WHERE NOT(level=".UDELETED.") order by 2"; 346 347 if(!$res = $conn->Execute($sql)) die(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__)); 348 349 while ($row = $res->FetchRow()){ 350 $smarty->append("td2", $row); 351 } 352 353 $smarty->assign('action', "inh"); 354 355 /*// Selected entry all 356 if ($_SESSION['calendarid']=="all") { 357 $sql_owner_part=""; 358 } 359 else { 360 $sql_owner_part="userid = ".$_SESSION['calendarid']." AND"; 361 } 362 */ 363 $nb_part = sizeof($participants); 364 $sql_owner_part = "( "; 365 366 for ($i=0;$i<$nb_part;$i++) 367 { 368 //format string with participants : 369 $parties .= $participants[$i].(($i==$nb_part-1) ? "" : "|"); 370 //format sql with participants 371 $sql_owner_part.="userid = '".$participants[$i]."' OR "; 372 } 373 $sql_owner_part.=" (1=0) ) AND "; 374 375 376 //////////// list of participants: //////////////// 377 $sql_spart = "SELECT id as userid, ".$conn->Concat("firstname", "' '", "lastname")." AS name 378 FROM mgw_users 379 WHERE NOT(level=".UDELETED.") AND ( "; 380 for ($i=0;$i<$nb_part;$i++) 381 { 382 //format sql with selected participants 383 $sql_spart.="id = '".$participants[$i]."' OR "; 384 } 385 $sql_spart.=" (1=0) ) 386 ORDER BY lastname"; 387 388 if(!$res = $conn->Execute($sql_spart)) die(showSQLerror($sql_spart, $conn->ErrorMsg(), __LINE__, __FILE__)); 389 while ($row = $res->FetchRow()) { 390 $smarty->append("spartie", $row); 391 } 392 // $sql = "SELECT * FROM mgw_calendar WHERE $sql_owner_part SUBSTRING(date,1,8) >= '$sql_start' AND substring(date,1,8) <= '$sql_ende' GROUP BY 1, date , userid , subject, location, private , duration, external, inituserid, day_ind, repeat_mode, rep_from, rep_until, dategroup_id, holiday_id ORDER BY 1"; 393 394 $sql = "SELECT date, duration FROM mgw_calendar 395 WHERE $sql_owner_part date >= ".$conn->DBTimeStamp(mktime(0,0,0, date("m",$actual_week_start_date), date("d",$actual_week_start_date), date("Y",$actual_week_start_date)) )." AND 396 date <= ".$conn->DBTimeStamp( mktime(23,59,59, date("m",$actual_week_end_date), date("d",$actual_week_end_date), date("Y",$actual_week_end_date)))." 397 GROUP BY 1, date , duration 398 ORDER BY 1"; 399 400 401 if(!$res = $conn->Execute($sql)) die(showSQLerror($sql, $conn->ErrorMsg(), __LINE__, __FILE__)); 402 $num = $res->RecordCount(); 403 404 $nb_opened_days = 5; // here : we don't want to make appointment on Sat or Sun 405 $next_week_start_date = mktime(0,0,0,date("m",$actual_week_start_date),date("d",$actual_week_start_date)+$nb_opened_days,date("Y",$actual_week_start_date)); 406 407 $ar_appt =array(); 408 //fill an array containing all appointments (timestamps) 409 while($row = $res->FetchRow()){ 410 411 $vmin = $res->UnixTimeStamp($row["date"]); 412 $bmin = $vmin + $row["duration"] * 60; 413 414 for ($i=$vmin;$i<$bmin;$i+= $interval_sec) 415 if (date("H",$i) >= $starthour && date("H",$i) <= $endhour) { 416 $ar_appt[]= $i; 417 } 418 } // while 419 420 //print_r($ar_appt); 421 $new_interval = 1; 422 $continue_interval = 2; 423 $too_small_interval = 3; 424 $not_avail_interval = 4; 425 426 $duration_remainder = 0; 427 for ($ts=$actual_week_start_date; $ts<$next_week_start_date; $ts+=$interval_sec){ 428 429 // init for each: 430 $duration_ok = false; 431 $is_available = false; 432 $type_interval = 0; // type_interval contain 0, 1, 2, 3 433 434 435 // there is a free interval beetween starthour and endhour 436 if(!in_array($ts, $ar_appt) && ((date("Hi",$ts)/100) >= $starthour && (date("Hi",$ts)/100) < $endhour)) 437 { 438 $is_available = true; 439 } 440 else { 441 $is_available = false; 442 $type_interval = $not_avail_interval; 443 } 444 445 if ($is_available) { 446 $duration_ok = true; 447 for ($i=$ts;$i<$ts+$duration && $i<$next_week_start_date ;$i+=$interval_sec) 448 { 449 $duration_ok = $duration_ok && !in_array($i, $ar_appt) && /*limit = endhour =>*/(date("Hi",$i)/100) < $endhour; 450 //echo "i: $i, date: ".date("H:i d-m-Y", $i)." ok?: $duration_ok / ".!in_array($i, $ar_appt)."<BR>"; 451 } 452 } 453 454 if ($is_available) 455 { 456 if ($duration_ok) { 457 $duration_remainder = $duration-$interval_sec; 458 $type_interval = $new_interval; 459 } 460 else { 461 if ($duration_remainder > 0) { 462 $duration_remainder = $duration_remainder-$interval_sec; 463 $type_interval = $continue_interval; 464 } 465 else $type_interval = $too_small_interval; 466 467 } 468 } 469 470 471 472 switch($type_interval) 473 { 474 case $new_interval : $t_klasse = "edit"; 475 $datum = getdate($ts); 476 $vzeit = date("His", $ts); 477 $week[$datum["wday"]][$vzeit] = "<a href=\"index.php?action=new1&newtype=meeting&parties=$parties&date=$ts&end_date=".($ts+$duration-$interval_sec)."&".SID."\" class=\"edit\">".Lang::getLanguageString("gentemp_view_avail_available")."</a>"; 478 $bg_klasse[$datum["wday"]][$vzeit] = $color_avail_ok; 479 break; 480 481 case $continue_interval : $t_klasse = "edit"; 482 $datum = getdate($ts); 483 $vzeit = date("His", $ts); 484 $week[$datum["wday"]][$vzeit] = "<a href=\"index.php?action=new1&newtype=meeting&parties=$parties&date=".($ts-($duration-$duration_remainder-$interval_sec))."&end_date=".(($ts-($duration-$duration_remainder-$interval_sec))+$duration-$interval_sec)."&".SID."\" class=\"edit\">"."..."."</a>"; 485 $bg_klasse[$datum["wday"]][$vzeit] = $color_avail_ok; 486 break; 487 488 case $too_small_interval : $t_klasse = "edit"; 489 $datum = getdate($ts); 490 $vzeit = date("His", $ts); 491 $week[$datum["wday"]][$vzeit] = Lang::getLanguageString("gentemp_view_avail_tooshort"); 492 $bg_klasse[$datum["wday"]][$vzeit] = $color_avail_too_small; 493 break; 494 495 case $not_avail_interval : $t_klasse = "edit"; 496 $datum = getdate($ts); 497 $vzeit = date("His", $ts); 498 $bg_klasse[$datum["wday"]][$vzeit] = $color_not_avail; 499 break; 500 501 default : /*$t_klasse = "edit"; 502 $datum = getdate($ts); 503 $vzeit = date("His", $ts); 504 $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=99999&".SID."\" class=\"edit\">".short_string(str_decode("000"),$max_subject_length)."</a>"; 505 */ 506 //$bg_klasse[$datum["wday"]][$vzeit] = $color_not_avail; 507 break; 508 509 510 } 511 512 513/* 514 if (get_celebrate_days($vmin, $holitemp) != "") $t_klasse = "feiertag"; 515 else if ((date("w", $vmin) == 0) || (date("w", $vmin) == 6)) $t_klasse = "wochenende"; 516 else if (mktime(0,0,0, date("m",$vmin),date("j",$vmin),date("Y",$vmin)) == 517 mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time()))) $t_klasse = "heute"; 518 else $t_klasse = "edit"; 519 520//// NATYS : color of appointment : appointment type 521 //----- appointment type : 522 $id_appt_type = $row["id_appt_type"]; 523 $sql_appt_type = "SELECT * FROM mgw_calendar_appt_type WHERE id=$id_appt_type"; 524 if(!$res_appt_type = $conn->Execute($sql_appt_type)) exit(showSQLerror($sql_appt_type, $conn->ErrorMsg(), __LINE__, __FILE__)); 525 $row_appt_type = $res_appt_type->FetchRow(); 526 $appointment_type = array( "text" => Lang::getLanguageString("gentemp_".$row_appt_type["type"]), 527 "color"=> $row_appt_type["color"] 528 ); 529///////////// 530 531 for ($w = $vmin; $w < $bmin; $w += $interval_sec){ 532 $datum = getdate($w); 533 $vzeit = date("His", $w); 534 // NATYS : extracted from if and else : 535 $klasse[$datum["wday"]][$vzeit] = "$t_klasse"; 536 $bg_klasse[$datum["wday"]][$vzeit] = $appointment_type["color"]; 537 if ($w == $vmin){ 538 $myid = $row["id"]; 539 //NATYS $klasse[$datum["wday"]][$vzeit] = "$t_klasse"; 540 541 if ($row["private"] == 1 && $_SESSION['calendarid'] != $_SESSION["MGW"]->userid){ 542 // private, not owner 543 if (!isset($week[$datum["wday"]][$vzeit])) $week[$datum["wday"]][$vzeit] = Lang::getLanguageString("private"); 544 else if ( $week[$datum["wday"]][$vzeit] == "...") $week[$datum["wday"]][$vzeit] = Lang::getLanguageString("private"); 545 else $week[$datum["wday"]][$vzeit] = "<a class=\"edit\" href=\"index.php?action=sel&ind=2&date=$vmin&".SID."\">".Lang::getLanguageString("temp_row_label_1")."</a>"; 546 } 547 else if ($row["private"] == 0 || $_SESSION['calendarid'] == $_SESSION["MGW"]->userid){ 548 // not private or owner 549 //// NATYS //// 550 //if (!isset($week[$datum["wday"]][$vzeit])) $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".short_string($row["subject"],$max_subject_length)."</a>"; 551 if (!isset($week[$datum["wday"]][$vzeit])) $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".short_string(str_decode($row["subject_summ"]),$max_subject_length)."</a>"; 552 //else if ( $week[$datum["wday"]][$vzeit] == "...") $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".$row["subject"]."</a>"; 553 else if ( $week[$datum["wday"]][$vzeit] == "...") $week[$datum["wday"]][$vzeit] = "<a href=\"details.php?id=$myid&".SID."\" class=\"edit\">".str_decode($row["subject_summ"])."</a>"; 554 ////////// 555 else if (isset($week[$datum["wday"]][$vzeit])) $week[$datum["wday"]][$vzeit] = "<a href=\"index.php?action=sel&ind=2&date=$vmin&".SID."\" class=\"edit\">".Lang::getLanguageString("temp_row_label_1")."</a>"; 556 } 557 } 558 else{ 559 $week[$datum["wday"]][$vzeit] = "..."; 560 //NATYS $klasse[$datum["wday"]][$vzeit] = "$t_klasse"; 561 } 562 } // end for 563 564 */ 565 } 566 567 // NATYS : classes for header (days) 568 $t=$app_start_time; 569 $zeits = date("His", $t); 570 for ($k=1;$k<=7;$k++){ 571 $head_klasse_nam = "head_klasse$k"; 572 if (!isset($klasse[$k]["$zeits"])){ 573 if (get_celebrate_days( mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)), $holitemp) != "") 574 $$head_klasse_nam = "feiertag"; 575 else if ((date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 0) 576 || (date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 6)) 577 $$head_klasse_nam = "wochenende"; 578 579 else if (mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)) == 580 mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time()))) 581 $$head_klasse_nam = "heute"; 582 else $$head_klasse_nam = "tab"; 583 } 584 } 585 586 $cw_header = array( "h_klass2" => $head_klasse1, 587 "h_klass3" => $head_klasse2, 588 "h_klass4" => $head_klasse3, 589 "h_klass5" => $head_klasse4, 590 "h_klass6" => $head_klasse5, 591 "h_klass7" => $head_klasse6, 592 "h_klass8" => $head_klasse7 593 ); 594 $smarty->assign("cw_header",$cw_header); 595 ////////// 596 597 598 599 /// properties of each cell per line. 600 for($t=$app_start_time; $t<$app_end_time; $t+=$interval_sec){ 601 $zeits = date("His", $t); 602 for ($k=1;$k<=7;$k++){ 603 $nam = "klasse$k"; 604 $bg_nam = "bg_klasse$k"; 605 $$bg_nam = IsSet($bg_klasse[$k]["$zeits"]) ? $bg_klasse[$k]["$zeits"] : ""; 606//echo "<br><br>$bg_nam::-> ".$bg_klasse[$k]["$zeits"]; 607 if (!isset($klasse[$k]["$zeits"])){ 608 if (get_celebrate_days( mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)), $holitemp) != "") 609 $$nam = "feiertag"; 610 else if ((date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 0) 611 || (date("w", mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date))) == 6)) 612 $$nam = "wochenende"; 613 614 else if (mktime(0,0,0, date("m",$actual_week_start_date),date("j",$actual_week_start_date)+$k-1,date("Y",$actual_week_start_date)) == 615 mktime(0,0,0, date("m",time()),date("j",time()),date("Y",time()))) 616 $$nam = "heute"; 617 else { 618 $$nam = "tab"; 619 } 620 } 621 else $$nam = $klasse[$k]["$zeits"]; 622 } 623 624 if (!isset($klasse[0]["$zeits"])) $klasse7 = "wochenende"; 625 else $klasse7 = $klasse[0]["$zeits"]; 626 627 // add some checking for content here KFISH 628 if (($t >= $start_time && $t < $end_time) || (isset($week[1][$zeits]) && $week[1][$zeits] != "") || (isset($week[2][$zeits]) && $week[2][$zeits] != "") || (isset($week[3][$zeits]) && $week[3][$zeits] != "") || (isset($week[4][$zeits]) && $week[4][$zeits] != "") || (isset($week[5][$zeits]) && $week[5][$zeits] != "") || (isset($week[6][$zeits]) && $week[6][$zeits] != "") || (isset($week[0][$zeits]) && $week[0][$zeits] != "") ){ 629 $zeile = array( "von" => date($timemask, $t)." - ".date($timemask, $t+$interval_sec), 630 "mon" => isset($week[1][$zeits]) ? $week[1][$zeits] : "", 631 "tue" => isset($week[2][$zeits]) ? $week[2][$zeits] : "", 632 "wed" => isset($week[3][$zeits]) ? $week[3][$zeits] : "", 633 "thu" => isset($week[4][$zeits]) ? $week[4][$zeits] : "", 634 "fri" => isset($week[5][$zeits]) ? $week[5][$zeits] : "", 635 "sat" => isset($week[6][$zeits]) ? $week[6][$zeits] : "", 636 "sun" => isset($week[0][$zeits]) ? $week[0][$zeits] : "", 637 "klass2" => $klasse1, 638 "klass3" => $klasse2, 639 "klass4" => $klasse3, 640 "klass5" => $klasse4, 641 "klass6" => $klasse5, 642 "klass7" => $klasse6, 643 "klass8" => $klasse7, 644 /// NATYS /// 645 "bg_klass2" => $bg_klasse1, 646 "bg_klass3" => $bg_klasse2, 647 "bg_klass4" => $bg_klasse3, 648 "bg_klass5" => $bg_klasse4, 649 "bg_klass6" => $bg_klasse5, 650 "bg_klass7" => $bg_klasse6, 651 "bg_klass8" => $bg_klasse7 652 ); 653 ///////////// 654 $smarty -> append("cw", $zeile); 655 //print_r($zeile); 656 //echo "<BR>---<BR>"; 657 } 658 } 659 660 661 662 $kalender = get_monthview_static( $date, $_SESSION['calendar_year'], $_SESSION['calendar_month']); 663 $feiertag = "(" . get_celebrate_days($date, $holitemp) . ")"; 664 if ($feiertag == "()") $feiertag = ""; 665 $gestern = $date - 3600*168; 666 $morgen = $date + 3600*168; 667 668 // wml-stuff ----------------------- 669 if($myEnv["output"]=="wml"){ 670 for($w=-5;$w<5;$w++) { 671 $d=$date +($w*3600*168); 672 $skw["date"]=$d; 673 $skw["kw"]=get_weeknumber($d); 674 $smarty->append('skw', $skw); 675 } 676 } 677 //---------------------------------- 678 679//// NATYS //// 680/* 681* calweek : texte "semaine n�" 682* cur_week : N� de semaine actuelle 683* 684*/ 685/////////////// 686 687 $weiter = "<a class=\"navlink\" href=\"view_avail.php?action=view&date=$morgen&parties=$parties&appointment_duration=".(mktime(0,0,0,1,1,1971)+$duration)."&".SID."\" style=\"text-decoration:none;\">" . Lang::getLanguageString("forward"). " >>" . "</a>"; 688 $zurueck= "<a class=\"navlink\" href=\"view_avail.php?action=view&date=$gestern&parties=$parties&appointment_duration=".(mktime(0,0,0,1,1,1971)+$duration)."&".SID."\" style=\"text-decoration:none;\">" . "<< " . Lang::getLanguageString("back"). "</a>"; 689 $text = Lang::getLanguageString("calweek")." " . get_weeknumber($date) . " : $wst_d - $wen_d"; 690 691 $smarty->assign('duration_label',date("H:i",($duration+mktime(0,0,0, 1, 1,1971)))); 692 if ($duration>0) $show_duration = TRUE; 693 else $show_duration = FALSE; 694 $smarty->assign("show_duration",$show_duration); 695 696 $smarty->assign('SID', SID); 697 $smarty->assign('cur_week', "$wst_d-$wen_d"); 698 $smarty->assign('header_date', $text); 699 $smarty->assign('first_header',Lang::getLanguageString("gentemp_view_avail")); 700 $smarty->assign('kalender', $kalender); 701 $smarty->assign('gestern', $gestern); 702 $smarty->assign('morgen', $morgen); 703 $smarty->assign('nav_links', $zurueck); 704 $smarty->assign('nav_rechts', $weiter); 705 $smarty->assign('calendar_owner', $_SESSION['calendarname']); 706 $smarty->assign('date', $date); 707 $smarty->assign('back', "view_avail.php?date=$gestern&".SID); 708 $smarty->assign('weiter', "view_avail.php?date=$morgen&".SID); 709 $smarty->assign('inh', "view_avail.php?action=inh&date=$date&".SID); 710 $smarty->assign("submenu", 5); 711 712 if ($_SESSION["MGW"]->userid == $_SESSION['calendarid']){ 713 $smarty->assign('ntext', " Neuer Termin "); 714 $smarty->assign('new', "view_avail.php?action=new&date=$date&".SID); 715 } 716 717 $smarty->assign("timefmt", $_SESSION["MGW"]->settings["timefmt"]); 718 $smarty->display('calendar_view_avail.tpl'); 719 $smarty->clear_assign('action'); 720 721} 722 723} 724 725 726 727 728 729 730 731 732 733 734 735?>