32 require_once 
"./classes/class.ilObjectGUI.php";
 
   54                 $this->content_type = $ilObjDataCache->lookupType($this->content_obj->getId());
 
   56                 $this->
id = $a_obj_id;
 
   57                 $this->ctrl->saveParameter($this,
'obj_id');
 
   65                 return $this->content_type;
 
   70                 global 
$ilErr,$ilAccess,$ilObjDataCache;
 
   72                 if(!$ilAccess->checkAccess(
'write',
'',$this->content_obj->getRefId()))
 
   74                         $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->MESSAGE);
 
   77                 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.groupings.html",
'Modules/Course');
 
   79                 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
 
   80                 $this->tpl->setVariable(
"HEADER_DESC",$this->lng->txt(
'description'));
 
   81                 $this->tpl->setVariable(
"HEADER_UNAMBIGUOUSNESS",$this->lng->txt(
'unambiguousness'));
 
   82                 $this->tpl->setVariable(
"ASSIGNED_ITEMS",$this->lng->txt(
'groupings_assigned_obj_'.$this->getContentType()));
 
   89                 foreach($items as $grouping_id)
 
   94                         if(strlen($tmp_obj->getDescription()))
 
   96                                 $this->tpl->setCurrentBlock(
"description");
 
   97                                 $this->tpl->setVariable(
"DESCRIPTION_GRP",$tmp_obj->getDescription());
 
   98                                 $this->tpl->parseCurrentBlock();
 
  102                         $assigned_items = $tmp_obj->getAssignedItems();
 
  103                         if($num_items = count($assigned_items))
 
  105                                 $this->tpl->setVariable(
"ASSIGNED_COURSES",$this->lng->txt(
'crs_grp_assigned_courses_info'));
 
  109                                 $this->tpl->setVariable(
"ASSIGNED_COURSES",$this->lng->txt(
'crs_grp_no_courses_assigned'));
 
  112                         foreach($assigned_items as $condition)
 
  114                                 $this->tpl->setCurrentBlock(
"item");
 
  115                                 $this->tpl->setVariable(
"ITEM_TITLE",$ilObjDataCache->lookupTitle($condition[
'target_obj_id']));
 
  116                                 $this->tpl->parseCurrentBlock();
 
  120                         $this->tpl->setCurrentBlock(
"grouping_row");
 
  121                         $this->tpl->setVariable(
"GRP_TITLE",$tmp_obj->getTitle());
 
  128                         $this->tpl->setVariable(
"AMB_GRP",$this->lng->txt($tmp_obj->getUniqueField()));
 
  131                         $this->ctrl->setParameterByClass(
'ilobjcoursegroupinggui',
'obj_id',$grouping_id);
 
  132                         $this->tpl->setVariable(
"EDIT_LINK",$this->ctrl->getLinkTargetByClass(
'ilobjcoursegroupinggui',
'edit'));
 
  134                         $this->tpl->parseCurrentBlock();
 
  137                 if(count($items) and $has_access)
 
  139                         $this->tpl->setCurrentBlock(
"has_items");
 
  141                         $this->tpl->setVariable(
"EDIT",$this->lng->txt(
'edit'));
 
  142                         $this->tpl->setVariable(
"DELETE",$this->lng->txt(
'delete'));
 
  143                         $this->tpl->setVariable(
"ACTIONS",$this->lng->txt(
'actions'));
 
  144                         $this->tpl->parseCurrentBlock();
 
  146                 elseif(!count($items))
 
  149                         $this->tpl->setCurrentBlock(
"no_items");
 
  150                         $this->tpl->setVariable(
"TXT_NO_ITEMS",$this->lng->txt(
'no_datasets'));
 
  151                         $this->tpl->parseCurrentBlock();
 
  154                 $this->tpl->setVariable(
"ADD",$this->lng->txt(
'crs_add_grouping'));
 
  161                 global 
$ilErr,$ilAccess,$ilObjDataCache;
 
  163                 if(!$ilAccess->checkAccess(
'write',
'',$this->content_obj->getRefId()))
 
  165                         $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->MESSAGE);
 
  168                 if(!count(
$_POST[
'grouping']))
 
  177                 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.crs_ask_delete_goupings.html",
'Modules/Course');
 
  179                 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
 
  180                 $this->tpl->setVariable(
"HEADER_DESC",$this->lng->txt(
'description'));
 
  181                 $this->tpl->setVariable(
"BTN_CANCEL",$this->lng->txt(
'cancel'));
 
  182                 $this->tpl->setVariable(
"BTN_DELETE",$this->lng->txt(
'delete'));
 
  186                 foreach(
$_POST[
'grouping'] as $grouping_id)
 
  190                         if(strlen($tmp_obj->getDescription()))
 
  192                                 $this->tpl->setCurrentBlock(
"description");
 
  193                                 $this->tpl->setVariable(
"DESCRIPTION_GRP",$tmp_obj->getDescription());
 
  194                                 $this->tpl->parseCurrentBlock();
 
  196                         $this->tpl->setCurrentBlock(
"grouping_row");
 
  197                         $this->tpl->setVariable(
"GRP_TITLE",$tmp_obj->getTitle());
 
  199                         $this->tpl->parseCurrentBlock();
 
  206                 global 
$ilErr,$ilAccess,$ilObjDataCache;
 
  208                 if(!$ilAccess->checkAccess(
'write',
'',$this->content_obj->getRefId()))
 
  210                         $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->MESSAGE);
 
  213                 if(!count(
$_SESSION[
'crs_grouping_del']))
 
  220                 foreach(
$_SESSION[
'crs_grouping_del'] as $grouping_id)
 
  234                 $options = array(
'login' => 
'login',
 
  236                                                  'matriculation' => 
'matriculation');
 
  241                 $unique = 
$_POST[
'unique'] ? 
$_POST[
'unique'] : 
'login';
 
  243                 $this->tpl->addBlockFile(
"ADM_CONTENT", 
"adm_content", 
"tpl.crs_grp_add.html",
'Modules/Course');
 
  245                 $this->tpl->setVariable(
"TITLE",
$title);
 
  246                 $this->tpl->setVariable(
"DESC",$desc);
 
  249                 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
 
  250                 $this->tpl->setVariable(
"TXT_HEADER",$this->lng->txt(
'crs_add_grouping'));
 
  251                 $this->tpl->setVariable(
"TXT_TITLE",$this->lng->txt(
'title'));
 
  252                 $this->tpl->setVariable(
"TXT_DESC",$this->lng->txt(
'description'));
 
  253                 $this->tpl->setVariable(
"TXT_UNAM",$this->lng->txt(
'unambiguousness'));
 
  254                 $this->tpl->setVariable(
"TXT_REQUIRED_FLD",$this->lng->txt(
'required_field'));
 
  255                 $this->tpl->setVariable(
"CMD_SUBMIT",
'add');
 
  256                 $this->tpl->setVariable(
"TXT_SUBMIT",$this->lng->txt(
'btn_add'));
 
  257                 $this->tpl->setVariable(
"TXT_CANCEL",$this->lng->txt(
'cancel'));
 
  281                 $this->grp_obj->setUniqueField(
$_POST[
'unique']);
 
  282                 if($this->grp_obj->create($this->content_obj->getRefId(),$this->content_obj->getId()))
 
  295         function edit($a_grouping_id = 0)
 
  297                 global 
$ilErr,$ilAccess,$ilObjDataCache;
 
  299                 if(!$ilAccess->checkAccess(
'write',
'',$this->content_obj->getRefId()))
 
  301                         $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->MESSAGE);
 
  305                         $grouping_id = $a_grouping_id;
 
  307                 elseif(count(
$_POST[
'grouping']) != 1)
 
  315                         $grouping_id = (int) 
$_POST[
'grouping'][0];
 
  318                 $options = array(
'login' => 
'login',
 
  320                                                  'matriculation' => 
'matriculation');
 
  326                 $unique = 
$_POST[
'unique'] ? 
$_POST[
'unique'] : $tmp_grouping->getUniqueField();
 
  328                 $this->tpl->addBlockFile(
"ADM_CONTENT", 
"adm_content", 
"tpl.crs_grp_edit.html",
'Modules/Course');
 
  330                 $this->ctrl->setParameter($this,
'obj_id',$grouping_id);
 
  331                 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
 
  332                 $this->tpl->setVariable(
"EDIT_GROUPING",$this->lng->txt(
'edit_grouping'));
 
  333                 $this->tpl->setVariable(
"BTN_UPDATE",$this->lng->txt(
'save'));
 
  334                 $this->tpl->setVariable(
"BTN_ADD",$this->lng->txt(
'grouping_change_assignment'));
 
  335                 $this->tpl->setVariable(
"BTN_CANCEL",$this->lng->txt(
'cancel'));
 
  336                 $this->tpl->setVariable(
"TXT_TITLE",$this->lng->txt(
'title'));
 
  337                 $this->tpl->setVariable(
"TXT_DESCRIPTION",$this->lng->txt(
'description'));
 
  339                 $this->tpl->setVariable(
"TXT_UNAM",$this->lng->txt(
'unambiguousness'));
 
  342                 $this->tpl->setVariable(
"TITLE",
$title);
 
  343                 $this->tpl->setVariable(
"DESCRIPTION",$description);
 
  346                 $items = $tmp_grouping->getAssignedItems();
 
  347                 foreach($items as $cond_data)
 
  349                         $this->tpl->setCurrentBlock(
"list_courses");
 
  350                         $this->tpl->setVariable(
"LIST_CRS_TITLE",$ilObjDataCache->lookupTitle($cond_data[
'target_obj_id']));
 
  351                         $this->tpl->parseCurrentBlock();
 
  355                         $this->tpl->setCurrentBlock(
"assigned");
 
  356                         $this->tpl->setVariable(
"ASS_COURSES",$this->lng->txt(
'crs_grp_table_assigned_courses'));
 
  357                         $this->tpl->parseCurrentBlock();
 
  361                         $this->tpl->setCurrentBlock(
"no_assigned");
 
  362                         $this->tpl->setVariable(
"MESSAGE_NO_COURSES",$this->lng->txt(
'crs_grp_no_courses_assigned'));
 
  363                         $this->tpl->parseCurrentBlock();
 
  370                 global 
$ilErr,$ilAccess,$ilObjDataCache;
 
  372                 if(!$ilAccess->checkAccess(
'write',
'',$this->content_obj->getRefId()))
 
  374                         $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->MESSAGE);
 
  393                 $tmp_grouping->setUniqueField(
$_POST[
'unique']);
 
  394                 $tmp_grouping->update();
 
  404                 global 
$ilErr,$ilAccess,$ilObjDataCache,$tree,$ilUser;
 
  406                 if(!$ilAccess->checkAccess(
'write',
'',$this->content_obj->getRefId()))
 
  408                         $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->MESSAGE);
 
  420                 $this->tpl->addBlockFile(
"ADM_CONTENT", 
"adm_content", 
"tpl.crs_grp_select_crs.html",
'Modules/Course');
 
  422                 $this->ctrl->setParameter($this,
'obj_id',(
int) $_GET[
'obj_id']);
 
  423                 $this->tpl->setVariable(
"FORMACTION",$this->ctrl->getFormAction($this));
 
  424                 $this->tpl->setVariable(
"TBL_TITLE",$this->lng->txt(
'crs_grp_assign_crs').
' ('.$this->grp_obj->getTitle().
')');
 
  425                 $this->tpl->setVariable(
"BTN_ASSIGN",$this->lng->txt(
'grouping_change_assignment'));
 
  426                 $this->tpl->setVariable(
"BTN_CANCEL",$this->lng->txt(
'cancel'));
 
  428                 $this->tpl->setVariable(
"HEADER_DESC",$this->lng->txt(
'description'));
 
  433                                                                                                  $ilUser->getId(),-1);
 
  435                 $items_obj_id = array();
 
  436                 $items_ids = array();
 
  439                         $obj_id =  $ilObjDataCache->lookupObjId($ref_id);
 
  441                         $items_obj_id[] = $obj_id;
 
  443                 $items_obj_id = 
ilUtil::_sortIds($items_obj_id,
'object_data',
'title',
'obj_id');
 
  444                 foreach($items_obj_id as $obj_id)
 
  446                         $item_id = $items_ids[$obj_id];
 
  447                         if($tree->checkForParentType($item_id,
'adm'))
 
  451                         $obj_id = $ilObjDataCache->lookupObjId($item_id);
 
  452                         $title = $ilObjDataCache->lookupTitle($obj_id);
 
  453                         $description = $ilObjDataCache->lookupDescription($obj_id);
 
  455                         $assigned = $tmp_grouping->isAssigned($obj_id) ? 1 : 0;
 
  457                         if(strlen($description))
 
  459                                 $this->tpl->setCurrentBlock(
"description");
 
  460                                 $this->tpl->setVariable(
"DESCRIPTION_CRS",$description);
 
  461                                 $this->tpl->parseCurrentBlock();
 
  464                         $this->tpl->setCurrentBlock(
"crs_row");
 
  467                         $this->tpl->setVariable(
"CRS_TITLE",
$title);
 
  470                         $this->tpl->setVariable(
"CRS_PATH",$this->lng->txt(
'path').
": ".
$path);
 
  471                         $this->tpl->parseCurrentBlock();
 
  479                 global 
$ilErr,$ilAccess,$ilObjDataCache,$tree,$ilUser;
 
  481                 if(!$ilAccess->checkAccess(
'write',
'',$this->content_obj->getRefId()))
 
  483                         $ilErr->raiseError($this->lng->txt(
'permission_denied'),$ilErr->MESSAGE);
 
  493                 $container_ids = is_array(
$_POST[
'crs_ids']) ? 
$_POST[
'crs_ids'] : array();
 
  498                 include_once 
'./classes/class.ilConditionHandler.php';
 
  501                 $condh->deleteByObjId((
int) $_GET[
'obj_id']);
 
  504                 foreach($container_ids as $course_ref_id)
 
  508                         $tmp_condh->enableAutomaticValidation(
false);
 
  510                         $tmp_condh->setTargetRefId($course_ref_id);
 
  511                         $tmp_condh->setTargetObjId($tmp_crs->getId());
 
  513                         $tmp_condh->setTriggerRefId(0);
 
  514                         $tmp_condh->setTriggerObjId($this->
id);
 
  515                         $tmp_condh->setTriggerType(
'crsg');
 
  516                         $tmp_condh->setOperator(
'not_member');
 
  517                         $tmp_condh->setValue($this->grp_obj->getUniqueField());
 
  519                         if(!$tmp_condh->checkExists())
 
  521                                 $tmp_condh->storeCondition();
 
  525                 $this->
edit((
int) $_GET[
'obj_id']);
 
  533                 $ilTabs->setTabActive(
'crs_groupings');
 
  535                 $cmd = $this->ctrl->getCmd();
 
  536                 if (!
$cmd = $this->ctrl->getCmd())
 
  546                 include_once 
'./Modules/Course/classes/class.ilObjCourseGrouping.php';
 
  554                 foreach($a_path_arr as 
$data)
 
  564                         $path .= $data[
'title'];