24 include_once(
'./Services/Calendar/classes/class.ilCalendarCategories.php');
45 public function __construct($a_parent_obj, $a_parent_cmd, $a_category_id)
54 $this->cat_id = $a_category_id;
55 $this->is_editable = $this->categories->isEditable($this->cat_id);
58 $this->lng->loadLanguageModule(
'dateplaner');
61 $this->
setId(
'calcalapps');
63 parent::__construct($a_parent_obj, $a_parent_cmd);
66 $this->
addColumn($this->lng->txt(
'cal_start'),
'dt_sort',
"30%");
67 $this->
addColumn($this->lng->txt(
'title'),
'title',
"60%");
68 $this->
addColumn($this->lng->txt(
'cal_duration'),
'duration',
"20%");
69 $this->
addColumn($this->lng->txt(
'cal_recurrences'),
'frequence',
"10%");
71 if ($this->is_editable) {
72 $this->
addMultiCommand(
'askDeleteAppointments', $this->lng->txt(
'delete'));
73 $this->
enable(
'select_all');
78 $this->
setFormAction($this->ctrl->getFormAction($a_parent_obj));
79 $this->
setRowTemplate(
"tpl.show_appointment_row.html",
"Services/Calendar");
100 if ($a_set[
'deletable']) {
101 $this->tpl->setVariable(
'VAL_ID', $a_set[
'id']);
104 $this->tpl->setVariable(
'VAL_DESCRIPTION', $a_set[
'description']);
106 $this->tpl->setVariable(
'VAL_TITLE_LINK', $a_set[
'title']);
107 $this->ctrl->setParameterByClass(
'ilcalendarappointmentgui',
'app_id', $a_set[
'id']);
108 $this->tpl->setVariable(
'VAL_LINK', $this->ctrl->getLinkTargetByClass(
'ilcalendarappointmentgui',
'edit'));
110 switch ($a_set[
'frequence']) {
112 $this->tpl->setVariable(
'VAL_FREQUENCE', $this->lng->txt(
'cal_daily'));
116 $this->tpl->setVariable(
'VAL_FREQUENCE', $this->lng->txt(
'cal_weekly'));
120 $this->tpl->setVariable(
'VAL_FREQUENCE', $this->lng->txt(
'cal_monthly'));
124 $this->tpl->setVariable(
'VAL_FREQUENCE', $this->lng->txt(
'cal_yearly'));
129 $this->tpl->setVariable(
'VAL_FREQUENCE',
'');
132 $this->tpl->setVariable(
'VAL_BEGIN', $a_set[
'dt']);
133 if ($a_set[
'duration']) {
136 $this->tpl->setVariable(
'VAL_DURATION',
'');
157 include_once(
'./Services/Calendar/classes/class.ilCalendarEntry.php');
158 include_once(
'./Services/Calendar/classes/class.ilCalendarRecurrences.php');
159 include_once(
'./Services/Calendar/classes/class.ilCalendarCategory.php');
163 foreach ($a_apps as $cal_entry_id) {
169 include_once
'Services/Booking/classes/class.ilBookingEntry.php';
172 $title = $entry->getTitle();
173 if ($book->isOwner()) {
174 $max = (int) $book->getNumberOfBookings();
175 $current = (int) $book->getCurrentNumberOfBookings($entry->getEntryId());
179 $title .=
' (' . $this->lng->txt(
'cal_booked_out') .
')';
181 $title .=
' (' . $this->lng->txt(
'cal_book_free') .
')';
183 } elseif ($book->hasBooked($entry->getEntryId())) {
184 $title .=
' (' . $this->lng->txt(
'cal_date_booked') .
')';
188 $title = $entry->getPresentationTitle();
191 $tmp_arr[
'id'] = $entry->getEntryId();
192 $tmp_arr[
'title'] =
$title;
193 $tmp_arr[
'description'] = $entry->getDescription();
194 $tmp_arr[
'fullday'] = $entry->isFullday();
195 $tmp_arr[
'begin'] = $entry->getStart()->get(
IL_CAL_UNIX);
196 $tmp_arr[
'end'] = $entry->getEnd()->get(
IL_CAL_UNIX);
198 $tmp_arr[
'dt_sort'] = $entry->getStart()->get(
IL_CAL_UNIX);
204 #$tmp_arr['duration'] = ($dur = $tmp_arr['end'] - $tmp_arr['begin']) ? $dur : 60 * 60 * 24; 205 $tmp_arr[
'duration'] = $tmp_arr[
'end'] - $tmp_arr[
'begin'];
206 if ($tmp_arr[
'fullday']) {
207 $tmp_arr[
'duration'] += (60 * 60 * 24);
210 if (!$tmp_arr[
'fullday']
and $tmp_arr[
'end'] == $tmp_arr[
'begin']) {
211 $tmp_arr[
'duration'] =
'';
213 $tmp_arr[
'frequence'] = $rec->getFrequenceType();
216 $appointments[] = $tmp_arr;
218 $this->
setData($appointments ? $appointments : array());
const IL_CAL_FREQ_MONTHLY
Model for a calendar entry.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
static _getFirstRecurrence($a_cal_id)
get first recurrence
Stores calendar categories.
setAppointments($a_apps)
set appointments
static secondsToString($seconds, $force_with_seconds=false, $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
setSelectAllCheckbox($a_select_all_checkbox, $a_select_all_on_top=false)
Set the name of the checkbox that should be toggled with a select all button.
const IL_CAL_FREQ_DAILY
Model of calendar entry recurrcences.
addMultiCommand($a_cmd, $a_text)
Add Command button.
enable($a_module_name)
enables particular modules of table
static _getInstance($a_usr_id=0)
get singleton instance
setRowTemplate($a_template, $a_template_dir="")
Set row template.
__construct($a_parent_obj, $a_parent_cmd, $a_category_id)
Constructor.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
disable($a_module_name)
diesables particular modules of table
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
setFormName($a_formname="")
Set Form name.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.