ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilObjSession.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once('./Modules/Session/classes/class.ilSessionAppointment.php');
6 include_once './Services/Membership/classes/class.ilMembershipRegistrationSettings.php';
7 
16 class ilObjSession extends ilObject
17 {
18  const MAIL_ALLOWED_ALL = 1;
19  const MAIL_ALLOWED_ADMIN = 2;
20 
21  const LOCAL_ROLE_PARTICIPANT_PREFIX = 'il_sess_participant';
22 
23  const CAL_REG_START = 1;
24 
25  protected $db;
26 
27  protected $location;
28  protected $name;
29  protected $phone;
30  protected $email;
31  protected $details;
32  protected $registration;
33  protected $event_id;
34 
36  protected $reg_limited = 0;
37  protected $reg_min_users = 0;
38  protected $reg_limited_users = 0;
39  protected $reg_waiting_list = 0;
40  protected $reg_waiting_list_autofill; // [bool]
41 
45  protected $show_members = false;
46 
50  protected $mail_members = self::MAIL_ALLOWED_ADMIN;
51 
52  protected $appointments;
53  protected $files = array();
54 
58  protected $session_logger = null;
59 
63  protected $members_obj;
64 
67 
74  public function __construct($a_id = 0, $a_call_by_reference = true)
75  {
76  global $DIC;
77 
78  $ilDB = $DIC['ilDB'];
79 
80  $this->session_logger = $GLOBALS['DIC']->logger()->sess();
81 
82  $this->db = $ilDB;
83  $this->type = "sess";
84  parent::__construct($a_id, $a_call_by_reference);
85  }
86 
95  public static function _lookupRegistrationEnabled($a_obj_id)
96  {
97  global $DIC;
98 
99  $ilDB = $DIC['ilDB'];
100 
101  $query = "SELECT reg_type FROM event " .
102  "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
103  $res = $ilDB->query($query);
104  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
105  return (bool) $row->reg_type != ilMembershipRegistrationSettings::TYPE_NONE;
106  }
107  return false;
108  }
109 
115  public static function lookupSession($a_obj_id)
116  {
117  global $DIC;
118 
119  $ilDB = $DIC['ilDB'];
120 
121  $query = "SELECT * FROM event " .
122  "WHERE obj_id = " . $ilDB->quote($a_obj_id);
123  $res = $ilDB->query($query);
124  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
125  $data['location'] = $row->location ? $row->location : '';
126  $data['details'] = $row->details ? $row->details : '';
127  $data['name'] = $row->tutor_name ? $row->tutor_name : '';
128  $data['email'] = $row->tutor_email ? $row->tutor_email : '';
129  $data['phone'] = $row->tutor_phone ? $row->tutor_phone : '';
130  }
131  return (array) $data;
132  }
133 
141  public function getPresentationTitle()
142  {
143  $date = new ilDate($this->getFirstAppointment()->getStart()->getUnixTime(), IL_CAL_UNIX);
144  if ($this->getTitle()) {
145  return ilDatePresentation::formatDate($this->getFirstAppointment()->getStart()) . ': ' . $this->getTitle();
146  } else {
147  return ilDatePresentation::formatDate($date);
148  }
149  }
150 
155  {
156  $title = '';
157  if ($this->getTitle()) {
158  $title = ': ' . $this->getTitle();
159  }
161  $this->getFirstAppointment()->getStart(),
162  $this->getFirstAppointment()->getEnd()
163  ) . $title;
164  }
165 
169  public function initDefaultRoles()
170  {
171  include_once './Services/AccessControl/classes/class.ilObjRole.php';
173  self::LOCAL_ROLE_PARTICIPANT_PREFIX . '_' . $this->getRefId(),
174  'Participant of session obj_no.' . $this->getId(),
175  self::LOCAL_ROLE_PARTICIPANT_PREFIX,
176  $this->getRefId()
177  );
178 
179  if (!$role instanceof ilObjRole) {
180  $this->session_logger->warning('Could not create default session role.');
181  $this->session_logger->logStack(ilLogLevel::WARNING);
182  }
183  return array();
184  }
185 
192  public function getEventId()
193  {
194  return $this->event_id;
195  }
196 
203  public function setLocation($a_location)
204  {
205  $this->location = $a_location;
206  }
207 
214  public function getLocation()
215  {
216  return $this->location;
217  }
218 
225  public function setName($a_name)
226  {
227  $this->name = $a_name;
228  }
229 
236  public function getName()
237  {
238  return $this->name;
239  }
240 
247  public function setPhone($a_phone)
248  {
249  $this->phone = $a_phone;
250  }
251 
258  public function getPhone()
259  {
260  return $this->phone;
261  }
262 
270  public function setEmail($a_email)
271  {
272  $this->email = $a_email;
273  }
274 
281  public function getEmail()
282  {
283  return $this->email;
284  }
285 
291  public function hasTutorSettings()
292  {
293  return strlen($this->getName()) or
294  strlen($this->getEmail()) or
295  strlen($this->getPhone());
296  }
297 
298 
305  public function setDetails($a_details)
306  {
307  $this->details = $a_details;
308  }
309 
316  public function getDetails()
317  {
318  return $this->details;
319  }
320 
321  public function setRegistrationType($a_type)
322  {
323  $this->reg_type = $a_type;
324  }
325 
326  public function getRegistrationType()
327  {
328  return $this->reg_type;
329  }
330 
332  {
333  return $this->reg_limited;
334  }
335 
336  public function enableRegistrationUserLimit($a_limit)
337  {
338  $this->reg_limited = $a_limit;
339  }
340 
341  public function getRegistrationMinUsers()
342  {
343  return $this->reg_min_users;
344  }
345 
346  public function setRegistrationMinUsers($a_users)
347  {
348  $this->reg_min_users = $a_users;
349  }
350 
351  public function getRegistrationMaxUsers()
352  {
354  }
355 
356  public function setRegistrationMaxUsers($a_users)
357  {
358  $this->reg_limited_users = $a_users;
359  }
360 
362  {
364  }
365 
366  public function enableRegistrationWaitingList($a_stat)
367  {
368  $this->reg_waiting_list = $a_stat;
369  }
370 
371  public function setWaitingListAutoFill($a_value)
372  {
373  $this->reg_waiting_list_autofill = (bool) $a_value;
374  }
375 
376  public function hasWaitingListAutoFill()
377  {
378  return (bool) $this->reg_waiting_list_autofill;
379  }
380 
385  public function setShowMembers($a_status)
386  {
387  $this->show_members = (bool) $a_status;
388  }
389 
394  public function getShowMembers()
395  {
396  return (bool) $this->show_members;
397  }
398 
403  {
405  }
406 
411  public function setRegistrationNotificationEnabled($value)
412  {
413  return $this->registrationNotificationEnabled = $value;
414  }
415 
420  {
422  }
423 
427  public function setRegistrationNotificationOption($value)
428  {
429  $this->notificationOption = $value;
430  }
431 
438  public function enabledRegistration()
439  {
440  return $this->reg_type != ilMembershipRegistrationSettings::TYPE_NONE;
441  }
442 
449  public function getAppointments()
450  {
451  return $this->appointments ? $this->appointments : array();
452  }
453 
461  public function addAppointment($appointment)
462  {
463  $this->appointments[] = $appointment;
464  }
465 
474  {
475  $this->appointments = $appointments;
476  }
477 
484  public function getFirstAppointment()
485  {
486  return is_object($this->appointments[0]) ? $this->appointments[0] : ($this->appointments[0] = new ilSessionAppointment());
487  }
488 
496  public function getFiles()
497  {
498  return $this->files ? $this->files : array();
499  }
500 
501 
506  public function setMailToMembersType($a_type)
507  {
508  $this->mail_members = $a_type;
509  }
510 
515  public function getMailToMembersType()
516  {
517  return $this->mail_members;
518  }
519 
520 
528  public function validate()
529  {
530  global $DIC;
531 
532  $ilErr = $DIC['ilErr'];
533 
534  // #17114
535  if ($this->isRegistrationUserLimitEnabled() &&
536  !$this->getRegistrationMaxUsers()) {
537  $ilErr->appendMessage($this->lng->txt("sess_max_members_needed"));
538  return false;
539  }
540 
541  return true;
542  }
543 
552  public function cloneObject($a_target_id, $a_copy_id = 0, $a_omit_tree = false)
553  {
557  $new_obj = parent::cloneObject($a_target_id, $a_copy_id, $a_omit_tree);
558 
560  $new_obj->applyDidacticTemplate($dtpl);
561 
562  $this->read();
563 
564  $this->cloneSettings($new_obj);
565  $this->cloneMetaData($new_obj);
566 
567 
568  // Clone appointment
569  $new_app = $this->getFirstAppointment()->cloneObject($new_obj->getId());
570  $new_obj->setAppointments(array($new_app));
571  $new_obj->update(true);
572 
573  // Clone session files
574  foreach ($this->files as $file) {
575  $file->cloneFiles($new_obj->getEventId());
576  }
577 
578  // Raise update forn new appointments
579 
580 
581 
582  // Copy learning progress settings
583  include_once('Services/Tracking/classes/class.ilLPObjSettings.php');
584  $obj_settings = new ilLPObjSettings($this->getId());
585  $obj_settings->cloneSettings($new_obj->getId());
586  unset($obj_settings);
587 
588  return $new_obj;
589  }
590 
598  public function cloneSettings(ilObjSession $new_obj)
599  {
601  $new_obj->getId(),
604  $this->getId(),
606  )
607  );
608 
609  // @var
610  $new_obj->setLocation($this->getLocation());
611  $new_obj->setName($this->getName());
612  $new_obj->setPhone($this->getPhone());
613  $new_obj->setEmail($this->getEmail());
614  $new_obj->setDetails($this->getDetails());
615 
616  $new_obj->setRegistrationType($this->getRegistrationType());
622  $new_obj->setShowMembers($this->getShowMembers());
623  $new_obj->setMailToMembersType($this->getMailToMembersType());
624 
627 
628  $new_obj->update(true);
629 
630  return true;
631  }
632 
640  public function cloneDependencies($a_target_id, $a_copy_id)
641  {
642  global $DIC;
643 
644  $ilObjDataCache = $DIC['ilObjDataCache'];
645 
646  parent::cloneDependencies($a_target_id, $a_copy_id);
647 
648  $target_obj_id = $ilObjDataCache->lookupObjId($a_target_id);
649 
650  include_once('./Modules/Session/classes/class.ilEventItems.php');
651  $session_materials = new ilEventItems($target_obj_id);
652  $session_materials->cloneItems($this->getId(), $a_copy_id);
653 
654  return true;
655  }
656 
657 
658 
664  public function create($a_skip_meta_data = false)
665  {
666  global $DIC;
667 
668  $ilDB = $DIC['ilDB'];
669  global $DIC;
670 
671  $ilAppEventHandler = $DIC['ilAppEventHandler'];
672 
673  parent::create();
674 
675  if (!$a_skip_meta_data) {
676  $this->createMetaData();
677  }
678 
679  $next_id = $ilDB->nextId('event');
680  $query = "INSERT INTO event (event_id,obj_id,location,tutor_name,tutor_phone,tutor_email,details,registration, " .
681  'reg_type, reg_limit_users, reg_limited, reg_waiting_list, reg_min_users, reg_auto_wait,show_members,mail_members,
682  reg_notification, notification_opt) ' .
683  "VALUES( " .
684  $ilDB->quote($next_id, 'integer') . ", " .
685  $this->db->quote($this->getId(), 'integer') . ", " .
686  $this->db->quote($this->getLocation(), 'text') . "," .
687  $this->db->quote($this->getName(), 'text') . ", " .
688  $this->db->quote($this->getPhone(), 'text') . ", " .
689  $this->db->quote($this->getEmail(), 'text') . ", " .
690  $this->db->quote($this->getDetails(), 'text') . "," .
691  $this->db->quote($this->enabledRegistration(), 'integer') . ", " .
692  $this->db->quote($this->getRegistrationType(), 'integer') . ', ' .
693  $this->db->quote($this->getRegistrationMaxUsers(), 'integer') . ', ' .
694  $this->db->quote($this->isRegistrationUserLimitEnabled(), 'integer') . ', ' .
695  $this->db->quote($this->isRegistrationWaitingListEnabled(), 'integer') . ', ' .
696  $this->db->quote($this->getRegistrationMinUsers(), 'integer') . ', ' .
697  $this->db->quote($this->hasWaitingListAutoFill(), 'integer') . ', ' .
698  $this->db->quote($this->getShowMembers(), 'integer') . ', ' .
699  $this->db->quote($this->getMailToMembersType(), 'integer') . ',' .
700  $this->db->quote($this->isRegistrationNotificationEnabled(), 'integer') . ', ' .
701  $this->db->quote($this->getRegistrationNotificationOption(), 'text') .
702  ")";
703  $res = $ilDB->manipulate($query);
704  $this->event_id = $next_id;
705 
706  $ilAppEventHandler->raise(
707  'Modules/Session',
708  'create',
709  array('object' => $this,
710  'obj_id' => $this->getId(),
711  'appointments' => $this->prepareCalendarAppointments('create'))
712  );
713 
714  return $this->getId();
715  }
716 
724  public function update($a_skip_meta_update = false)
725  {
726  global $DIC;
727 
728  $ilDB = $DIC['ilDB'];
729  global $DIC;
730 
731  $ilAppEventHandler = $DIC['ilAppEventHandler'];
732 
733  if (!parent::update()) {
734  return false;
735  }
736  if (!$a_skip_meta_update) {
737  $this->updateMetaData();
738  }
739 
740  $query = "UPDATE event SET " .
741  "location = " . $this->db->quote($this->getLocation(), 'text') . "," .
742  "tutor_name = " . $this->db->quote($this->getName(), 'text') . ", " .
743  "tutor_phone = " . $this->db->quote($this->getPhone(), 'text') . ", " .
744  "tutor_email = " . $this->db->quote($this->getEmail(), 'text') . ", " .
745  "details = " . $this->db->quote($this->getDetails(), 'text') . ", " .
746  "registration = " . $this->db->quote($this->enabledRegistration(), 'integer') . ", " .
747  "reg_type = " . $this->db->quote($this->getRegistrationType(), 'integer') . ", " .
748  "reg_limited = " . $this->db->quote($this->isRegistrationUserLimitEnabled(), 'integer') . ", " .
749  "reg_limit_users = " . $this->db->quote($this->getRegistrationMaxUsers(), 'integer') . ", " .
750  "reg_min_users = " . $this->db->quote($this->getRegistrationMinUsers(), 'integer') . ", " .
751  "reg_waiting_list = " . $this->db->quote($this->isRegistrationWaitingListEnabled(), 'integer') . ", " .
752  "reg_auto_wait = " . $this->db->quote($this->hasWaitingListAutoFill(), 'integer') . ", " .
753  'show_members = ' . $this->db->quote($this->getShowMembers(), 'integer') . ', ' .
754  'mail_members = ' . $this->db->quote($this->getMailToMembersType(), 'integer') . ', ' .
755  "reg_auto_wait = " . $this->db->quote($this->hasWaitingListAutoFill(), 'integer') . ", " .
756  "reg_notification = " . $this->db->quote($this->isRegistrationNotificationEnabled(), 'integer') . ", " .
757  "notification_opt = " . $this->db->quote($this->getRegistrationNotificationOption(), 'text') . " " .
758  "WHERE obj_id = " . $this->db->quote($this->getId(), 'integer') . " ";
759  $res = $ilDB->manipulate($query);
760 
761  $ilAppEventHandler->raise(
762  'Modules/Session',
763  'update',
764  array('object' => $this,
765  'obj_id' => $this->getId(),
766  'appointments' => $this->prepareCalendarAppointments('update'))
767  );
768  return true;
769  }
770 
777  public function delete()
778  {
779  global $DIC;
780 
781  $ilDB = $DIC['ilDB'];
782  global $DIC;
783 
784  $ilAppEventHandler = $DIC['ilAppEventHandler'];
785 
786  if (!parent::delete()) {
787  return false;
788  }
789 
790  // delete meta data
791  $this->deleteMetaData();
792 
793  $query = "DELETE FROM event " .
794  "WHERE obj_id = " . $this->db->quote($this->getId(), 'integer') . " ";
795  $res = $ilDB->manipulate($query);
796 
797  include_once('./Modules/Session/classes/class.ilSessionAppointment.php');
799 
800  include_once('./Modules/Session/classes/class.ilEventItems.php');
801  ilEventItems::_delete($this->getId());
802 
803  include_once('./Modules/Session/classes/class.ilEventParticipants.php');
805 
806  foreach ($this->getFiles() as $file) {
807  $file->delete();
808  }
809 
810  $ilAppEventHandler->raise(
811  'Modules/Session',
812  'delete',
813  array('object' => $this,
814  'obj_id' => $this->getId(),
815  'appointments' => $this->prepareCalendarAppointments('delete'))
816  );
817 
818 
819  return true;
820  }
821 
829  public function read()
830  {
831  parent::read();
832 
833  $query = "SELECT * FROM event WHERE " .
834  "obj_id = " . $this->db->quote($this->getId(), 'integer') . " ";
835  $res = $this->db->query($query);
836 
837  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
838  $this->setLocation($row->location);
839  $this->setName($row->tutor_name);
840  $this->setPhone($row->tutor_phone);
841  $this->setEmail($row->tutor_email);
842  $this->setDetails($row->details);
843  $this->setRegistrationType($row->reg_type);
844  $this->enableRegistrationUserLimit($row->reg_limited);
845  $this->enableRegistrationWaitingList($row->reg_waiting_list);
846  $this->setWaitingListAutoFill($row->reg_auto_wait);
847  $this->setRegistrationMaxUsers($row->reg_limit_users);
848  $this->setRegistrationMinUsers($row->reg_min_users);
849  $this->setShowMembers((bool) $row->show_members);
850  $this->setMailToMembersType((int) $row->mail_members);
851  $this->setRegistrationNotificationEnabled($row->reg_notification);
852  $this->setRegistrationNotificationOption($row->notification_opt);
853  $this->event_id = $row->event_id;
854  }
855 
856  $this->initAppointments();
857  $this->initFiles();
858  }
859 
867  protected function initAppointments()
868  {
869  // get assigned appointments
870  include_once('./Modules/Session/classes/class.ilSessionAppointment.php');
871  $this->appointments = ilSessionAppointment::_readAppointmentsBySession($this->getId());
872  }
873 
881  public function initFiles()
882  {
883  include_once('./Modules/Session/classes/class.ilSessionFile.php');
884  $this->files = ilSessionFile::_readFilesByEvent($this->getEventId());
885  }
886 
887 
895  public function prepareCalendarAppointments($a_mode = 'create')
896  {
897  include_once('./Services/Calendar/classes/class.ilCalendarAppointmentTemplate.php');
898 
899  switch ($a_mode) {
900  case 'create':
901  case 'update':
902 
903  $app = new ilCalendarAppointmentTemplate(self::CAL_REG_START);
904  $app->setTranslationType(IL_CAL_TRANSLATION_NONE);
905  $app->setTitle($this->getTitle() ? $this->getTitle() : $this->lng->txt('obj_sess'));
906  $app->setDescription($this->getLongDescription());
907  $app->setLocation($this->getLocation());
908 
909  $sess_app = $this->getFirstAppointment();
910  $app->setFullday($sess_app->isFullday());
911  $app->setStart($sess_app->getStart());
912  $app->setEnd($sess_app->getEnd());
913  $apps[] = $app;
914 
915  return $apps;
916 
917  case 'delete':
918  // Nothing to do: The category and all assigned appointments will be deleted.
919  return array();
920  }
921  }
922 
926  public function handleAutoFill()
927  {
928  if (
930  !$this->hasWaitingListAutoFill()
931  ) {
932  $this->session_logger->debug('Waiting list or auto fill is disabled.');
933  return true;
934  }
935 
937  $current = $parts->getCountParticipants();
938  $max = $this->getRegistrationMaxUsers();
939 
940  if ($max <= $current) {
941  $this->session_logger->debug('Maximum number of participants not reached.');
942  $this->session_logger->debug('Maximum number of members: ' . $max);
943  $this->session_logger->debug('Current number of members: ' . $current);
944  return true;
945  }
946 
947  $session_waiting_list = new ilSessionWaitingList($this->getId());
948  foreach ($session_waiting_list->getUserIds() as $user_id) {
949  $user = ilObjectFactory::getInstanceByObjId($user_id);
950  if (!$user instanceof ilObjUser) {
951  $this->session_logger->warning('Found invalid user id on waiting list: ' . $user_id);
952  continue;
953  }
954  if (in_array($user_id, $parts->getParticipants())) {
955  $this->session_logger->notice('User on waiting list already session member: ' . $user_id);
956  continue;
957  }
958 
959  if ($this->enabledRegistration()) {
960  $this->session_logger->debug('Registration enabled: register user');
961  $parts->register($user_id);
962  $parts->sendNotification(
964  $user_id
965  );
966  } else {
967  $this->session_logger->debug('Registration disabled: set user status to participated.');
968  $parts->getEventParticipants()->updateParticipation($user_id, true);
969  $parts->sendNotification(
971  $user_id
972  );
973  }
974 
975  $session_waiting_list->removeFromList($user_id);
976 
977  $current++;
978  if ($current >= $max) {
979  break;
980  }
981  }
982  }
983 
984 
992  protected function initParticipants()
993  {
994  $this->members_obj = ilSessionParticipants::_getInstanceByObjId($this->getId());
995  }
996 
1002  public function getMembersObject()
1003  {
1004  if (!$this->members_obj instanceof ilSessionParticipants) {
1005  $this->initParticipants();
1006  }
1007  return $this->members_obj;
1008  }
1009 
1014  public function getEnableMap()
1015  {
1016  return false;
1017  }
1018 }
create($a_skip_meta_data=false)
create new session
static lookupTemplateId($a_ref_id)
Lookup template id ilDB $ilDB.
getPresentationTitle()
get title (overwritten from base class)
$app
Definition: cli.php:38
Class ilObjRole.
enabledRegistration()
is registration enabled
enableRegistrationUserLimit($a_limit)
getMembersObject()
Get members objects.
initFiles()
init files
Session participation handling.
getEnableMap()
ALways disabled.
addAppointment($appointment)
add appointment
getEmail()
get email
$data
Definition: storeScorm.php:23
const IL_CAL_TRANSLATION_NONE
getEventId()
sget event id
getLocation()
get location
setLocation($a_location)
set location
cloneSettings(ilObjSession $new_obj)
clone settings
__construct($a_id=0, $a_call_by_reference=true)
Constructor public.
updateMetaData()
update meta data entry
read()
read session data
setPhone($a_phone)
set phone
const LOCAL_ROLE_PARTICIPANT_PREFIX
initAppointments()
init appointments
createMetaData()
create meta data entry
setWaitingListAutoFill($a_value)
setName($a_name)
set name
setEmail($a_email)
set email
Apointment templates are used for automatic generated apointments.
const IL_CAL_UNIX
setMailToMembersType($a_type)
Set mail to members type.
static _getInstanceByObjId($a_obj_id)
Get instance.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
getAppointments()
get appointments
$ilErr
Definition: raiseError.php:18
static createDefaultRole($a_title, $a_description, $a_tpl_name, $a_ref_id)
static lookupSession($a_obj_id)
Get session data.
$a_type
Definition: workflow.php:92
static _deleteBySession($a_event_id)
cloneDependencies($a_target_id, $a_copy_id)
Clone dependencies.
setRegistrationMinUsers($a_users)
Class for single dates.
foreach($_POST as $key=> $value) $res
getId()
get object id public
handleAutoFill()
Handle auto fill for session members.
static _lookupRegistrationEnabled($a_obj_id)
lookup registration enabled
setRegistrationType($a_type)
hasTutorSettings()
check if there any tutor settings
prepareCalendarAppointments($a_mode='create')
Prepare calendar appointments.
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
getTitle()
get object title public
cloneMetaData($target_obj)
Copy meta data.
getFiles()
get files
getPhone()
get phone
$query
getMailToMembersType()
Get mail to members type.
getShowMembers()
Member gallery enabled.
static _deleteByEvent($a_event_id)
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
initDefaultRoles()
Create local session participant role.
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
setAppointments($appointments)
set appointments
setDetails($a_details)
set details
__construct(Container $dic, ilPlugin $plugin)
getDetails()
get details
global $ilDB
$DIC
Definition: xapitoken.php:46
getLongDescription()
get object long description (stored in object_description)
getRefId()
get reference id public
static _readAppointmentsBySession($a_event_id)
setRegistrationNotificationOption($value)
setShowMembers($a_status)
Show members gallery.
static _writeContainerSetting($a_id, $a_keyword, $a_value)
setRegistrationMaxUsers($a_users)
deleteMetaData()
delete meta data entry
setRegistrationNotificationEnabled($value)
initParticipants()
init participants object
static _readFilesByEvent($a_event_id)
enableRegistrationWaitingList($a_stat)
update($a_skip_meta_update=false)
update object
getPresentationTitleAppointmentPeriod()
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
class ilEvent
class ilSessionAppointment
static _delete($a_event_id)
getFirstAppointment()
get first appointment