24 include_once 
'./Services/Calendar/classes/class.ilCalendarSettings.php';
 
   75                 if(isset(self::$instance) and self::$instance)
 
  104                 $this->tpl = 
new ilTemplate(
'tpl.appointment_panel.html',
true,
true,
'Services/Calendar');
 
  107                 $this->tpl->setVariable(
'PANEL_NUM',self::$counter);
 
  108                 $this->tpl->setVariable(
'PANEL_TITLE', str_replace(
' ()', 
'', $a_app[
'event']->getPresentationTitle(
false)));
 
  109                 if ($a_app[
"event"]->isMilestone())
 
  111                         $this->tpl->setVariable(
'PANEL_DETAILS',$this->lng->txt(
'cal_ms_details'));
 
  115                         $this->tpl->setVariable(
'PANEL_DETAILS',$this->lng->txt(
'cal_details'));
 
  117                 $this->tpl->setVariable(
'PANEL_TXT_DATE',$this->lng->txt(
'date'));
 
  119                 if($a_app[
'fullday'])
 
  131                 if($a_app[
'event']->getLocation())
 
  133                         $this->tpl->setVariable(
'PANEL_TXT_WHERE',$this->lng->txt(
'cal_where'));
 
  136                 if($a_app[
'event']->getDescription())
 
  138                         $this->tpl->setVariable(
'PANEL_TXT_DESC',$this->lng->txt(
'description'));
 
  139                         $this->tpl->setVariable(
'PANEL_DESC',
ilUtil::makeClickable(nl2br($a_app[
'event']->getDescription())));
 
  142                 if($a_app[
'event']->isMilestone() && $a_app[
'event']->getCompletion() > 0)
 
  144                         $this->tpl->setVariable(
'PANEL_TXT_COMPL',$this->lng->txt(
'cal_task_completion'));
 
  145                         $this->tpl->setVariable(
'PANEL_COMPL',$a_app[
'event']->getCompletion().
" %");
 
  148                 if ($a_app[
'event']->isMilestone())
 
  151                         $users = $a_app[
'event']->readResponsibleUsers();
 
  153                         foreach($users as $r)
 
  155                                 $value.= $delim.$r[
"lastname"].
", ".$r[
"firstname"].
" [".$r[
"login"].
"]";
 
  158                         if (count($users) > 0)
 
  160                                 $this->tpl->setVariable(
'PANEL_TXT_RESP', $this->lng->txt(
'cal_responsible'));
 
  161                                 $this->tpl->setVariable(
'PANEL_RESP', $value);
 
  165                 include_once(
'./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php');
 
  168                 $entry_obj_id = isset($cat_info[
'subitem_obj_ids'][$cat_id]) ?
 
  169                         $cat_info[
'subitem_obj_ids'][$cat_id] :
 
  172                 $this->tpl->setVariable(
'PANEL_TXT_CAL_TYPE',$this->lng->txt(
'cal_cal_type'));
 
  173                 switch($cat_info[
'type'])
 
  176                                 $this->tpl->setVariable(
'PANEL_CAL_TYPE',$this->lng->txt(
'cal_type_system'));
 
  180                                 $this->tpl->setVariable(
'PANEL_CAL_TYPE',$this->lng->txt(
'cal_type_personal'));
 
  185                                 $this->tpl->setVariable(
'PANEL_CAL_TYPE',$this->lng->txt(
'cal_type_'.$type));
 
  188                                 if($this->settings->isCGRegistrationEnabled() and $type == 
'crs' or type == 
'grp')
 
  190                                         if(!$a_app[
'event']->isAutoGenerated())
 
  192                                                 include_once 
'./Services/Calendar/classes/class.ilCalendarRegistration.php';
 
  197                                                         $this->tpl->setCurrentBlock(
'panel_cancel_book_link');
 
  198                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'seed',$this->
getSeed()->
get(
IL_CAL_DATE));
 
  199                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id',$a_app[
'event']->getEntryId());
 
  200                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'dstart',$a_app[
'dstart']);
 
  201                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'dend',$a_app[
'dend']);
 
  203                                                         $this->tpl->setVariable(
'TXT_PANEL_CANCELBOOK', $this->lng->txt(
'cal_reg_unregister'));
 
  204                                                         $this->tpl->setVariable(
'PANEL_CANCELBOOK_HREF', $this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'confirmUnregister'));
 
  205                                                         $this->tpl->parseCurrentBlock();
 
  209                                                         $this->tpl->setCurrentBlock(
'panel_book_link');
 
  210                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'seed',$this->
getSeed()->
get(
IL_CAL_DATE));
 
  211                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id',$a_app[
'event']->getEntryId());
 
  212                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'dstart',$a_app[
'dstart']);
 
  213                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'dend',$a_app[
'dend']);
 
  214                                                         $this->tpl->setVariable(
'TXT_PANEL_BOOK', $this->lng->txt(
'cal_reg_register'));
 
  215                                                         $this->tpl->setVariable(
'PANEL_BOOK_HREF', $this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'confirmRegister'));
 
  216                                                         $this->tpl->parseCurrentBlock();
 
  219                                                 include_once 
'./Services/Link/classes/class.ilLink.php';
 
  220                                                 $registrations = array();
 
  224                                                         $this->ctrl->setParameterByClass(
'ilconsultationhoursgui',
'user',
$usr_id);
 
  226                                                         $this->ctrl->setParameterByClass(
'ilconsultationhoursgui',
'user',
'');
 
  228                                                 if(count($registrations))
 
  230                                                         $this->tpl->setCurrentBlock(
'panel_current_booking');
 
  231                                                         $this->tpl->setVariable(
'PANEL_TXT_CURRENT_BOOKING', $this->lng->txt(
'cal_reg_registered_users'));
 
  232                                                         $this->tpl->setVariable(
'PANEL_CURRENT_BOOKING', implode(
'<br />', $registrations));
 
  233                                                         $this->tpl->parseCurrentBlock();
 
  240                                 $this->tpl->setVariable(
'PANEL_CAL_TYPE',$this->lng->txt(
'cal_ch_ch'));
 
  242                                 include_once 
'Services/Booking/classes/class.ilBookingEntry.php';
 
  245                                 $is_owner = $entry->isOwner();
 
  246                                 $user_entry = ($cat_info[
'obj_id'] == $ilUser->getId());
 
  248                                 if($user_entry && !$is_owner)
 
  251                                         include_once 
'Services/Calendar/classes/ConsultationHours/class.ilConsultationHourAppointments.php';
 
  253                                         $ref_event = $apps[0];
 
  257                                         $ref_event = $a_app[
'event']->getEntryId();
 
  260                                 $this->tpl->setCurrentBlock(
'panel_booking_owner');
 
  261                                 $this->tpl->setVariable(
'PANEL_TXT_BOOKING_OWNER', $this->lng->txt(
'cal_ch_booking_owner'));
 
  263                                 $this->tpl->parseCurrentBlock();
 
  265                                 $this->tpl->setCurrentBlock(
'panel_max_booking');
 
  266                                 $this->tpl->setVariable(
'PANEL_TXT_MAX_BOOKING', $this->lng->txt(
'cal_ch_num_bookings'));
 
  267                                 $this->tpl->setVariable(
'PANEL_MAX_BOOKING', $entry->getNumberOfBookings());
 
  268                                 $this->tpl->parseCurrentBlock();
 
  272                                         if($entry->hasBooked($ref_event))
 
  276                                                         $this->tpl->setCurrentBlock(
'panel_cancel_book_link');
 
  277                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id',$ref_event);
 
  278                                                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'seed',$this->
getSeed()->
get(
IL_CAL_DATE));
 
  279                                                         $this->tpl->setVariable(
'TXT_PANEL_CANCELBOOK', $this->lng->txt(
'cal_ch_cancel_booking'));
 
  280                                                         $this->tpl->setVariable(
'PANEL_CANCELBOOK_HREF', $this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'cancelBooking'));
 
  281                                                         $this->tpl->parseCurrentBlock();
 
  284                                         #else if(!$entry->isBookedOut($ref_event)) 
  285                                         elseif($entry->isAppointmentBookableForUser($ref_event,
$GLOBALS[
'ilUser']->getId()))
 
  287                                                 $this->tpl->setCurrentBlock(
'panel_book_link');
 
  288                                                 $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id',$ref_event);
 
  289                                                 $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'seed',$this->
getSeed()->
get(
IL_CAL_DATE));
 
  290                                                 $this->tpl->setVariable(
'TXT_PANEL_BOOK', $this->lng->txt(
'cal_ch_book'));
 
  291                                                 $this->tpl->setVariable(
'PANEL_BOOK_HREF', $this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'book'));
 
  292                                                 $this->tpl->parseCurrentBlock();
 
  295                                         $this->tpl->setCurrentBlock(
'panel_current_booking');
 
  296                                         $this->tpl->setVariable(
'PANEL_TXT_CURRENT_BOOKING', $this->lng->txt(
'cal_ch_current_bookings'));
 
  297                                         $this->tpl->setVariable(
'PANEL_CURRENT_BOOKING', $entry->getCurrentNumberOfBookings($ref_event));
 
  298                                         $this->tpl->parseCurrentBlock();
 
  303                                         $obj_ids = $entry->getTargetObjIds();
 
  304                                         foreach($obj_ids as $obj_id)
 
  308                                                 include_once 
'./Services/Link/classes/class.ilLink.php';
 
  309                                                 $this->tpl->setCurrentBlock(
'panel_booking_target_row');
 
  310                                                 $this->tpl->setVariable(
'PANEL_BOOKING_TARGET_TITLE',$title);
 
  311                                                 $this->tpl->setVariable(
'PANEL_BOOKING_TARGET',
ilLink::_getLink(end($refs)));
 
  312                                                 $this->tpl->parseCurrentBlock();
 
  316                                                 $this->tpl->setCurrentBlock(
'panel_booking_target');
 
  317                                                 $this->tpl->setVariable(
'PANEL_TXT_BOOKING_TARGET', $this->lng->txt(
'cal_ch_target_object'));
 
  318                                                 $this->tpl->parseCurrentBlock();
 
  327                                         include_once 
'./Services/Link/classes/class.ilLink.php';
 
  329                                         $this->ctrl->setParameterByClass(
'ilconsultationhoursgui',
'panel',1);
 
  330                                         foreach($entry->getCurrentBookings($a_app[
'event']->getEntryId()) as $user_id)
 
  334                                                         $this->ctrl->setParameterByClass(
'ilconsultationhoursgui',
'user',$user_id);
 
  335                                                         $bookings[] = 
'<a href="'.$this->ctrl->getLinkTargetByClass(
'ilconsultationhoursgui', 
'showprofile').
'">'.
 
  337                                                         $this->ctrl->setParameterByClass(
'ilconsultationhoursgui',
'user',
'');
 
  344                                         $this->ctrl->setParameterByClass(
'ilconsultationhoursgui',
'panel',
'');
 
  345                                         $this->tpl->setCurrentBlock(
'panel_current_booking');
 
  346                                         $this->tpl->setVariable(
'PANEL_TXT_CURRENT_BOOKING', $this->lng->txt(
'cal_ch_current_bookings'));
 
  347                                         $this->tpl->setVariable(
'PANEL_CURRENT_BOOKING', implode(
'<br />', $bookings));
 
  348                                         $this->tpl->parseCurrentBlock();
 
  353                                 $this->tpl->setVariable(
'PANEL_CAL_TYPE',$this->lng->txt(
'cal_ch_booking'));
 
  355                                 $this->tpl->setCurrentBlock(
'panel_cancel_book_link');
 
  356                                 $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id',$a_app[
'event']->getEntryId());
 
  357                                 $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'seed',$this->
getSeed()->
get(
IL_CAL_DATE));
 
  358                                 $this->tpl->setVariable(
'TXT_PANEL_CANCELBOOK', $this->lng->txt(
'cal_ch_cancel_booking'));
 
  359                                 $this->tpl->setVariable(
'PANEL_CANCELBOOK_HREF', $this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'cancelBooking'));
 
  360                                 $this->tpl->parseCurrentBlock();
 
  364                 $this->tpl->setVariable(
'PANEL_TXT_CAL_NAME',$this->lng->txt(
'cal_calendar_name'));
 
  365                 $this->tpl->setVariable(
'PANEL_CAL_NAME',$cat_info[
'title']);
 
  368                 if($cat_info[
'editable'] and !$a_app[
'event']->isAutoGenerated())
 
  370                         $this->tpl->setCurrentBlock(
'panel_edit_link');
 
  371                         $this->tpl->setVariable(
'TXT_PANEL_EDIT',$this->lng->txt(
'edit'));
 
  373                         $this->ctrl->clearParametersByClass(
'ilcalendarappointmentgui');
 
  374                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'seed',$this->
getSeed()->
get(
IL_CAL_DATE));
 
  375                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id',$a_app[
'event']->getEntryId());
 
  376                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'dt',$a_app[
'dstart']);
 
  377                         $this->tpl->setVariable(
'PANEL_EDIT_HREF',$this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'askEdit'));
 
  379                         $this->tpl->setCurrentBlock(
'panel_delete_link');
 
  380                         $this->tpl->setVariable(
'TXT_PANEL_DELETE',$this->lng->txt(
'delete'));
 
  382                         $this->ctrl->clearParametersByClass(
'ilcalendarappointmentgui');
 
  383                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'seed',$this->
getSeed()->
get(
IL_CAL_DATE));
 
  384                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id',$a_app[
'event']->getEntryId());
 
  385                         $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'dt',$a_app[
'dstart']);
 
  386                         $this->tpl->setVariable(
'PANEL_DELETE_HREF',$this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'askdelete'));
 
  387                         $this->tpl->parseCurrentBlock();
 
  389                 include_once(
'./Services/Calendar/classes/class.ilCalendarCategory.php');
 
  396                                 $lng->txt(
'obj_'.$type);
 
  398                         include_once(
'./Services/Link/classes/class.ilLink.php');
 
  400                         $parent = $tree->getParentId(current($refs));
 
  402                         $this->tpl->setVariable(
'PANEL_TXT_LINK',$this->lng->txt(
'ext_link'));
 
  403                         $this->tpl->setVariable(
'PANEL_LINK_HREF',$href);
 
  404                         $this->tpl->setVariable(
'PANEL_LINK_NAME',$title);
 
  405                         $this->tpl->setVariable(
'PANEL_PARENT',$parent_title);
 
  408                 return $this->tpl->get();