/**
  * Show membership limitations
  *
  * @access protected
  * @return
  */
 protected function fillMembershipLimitation()
 {
     global $ilAccess, $ilCtrl;
     include_once 'Modules/Course/classes/class.ilObjCourseGrouping.php';
     if (!($items = ilObjCourseGrouping::_getGroupingItems($this->container))) {
         return true;
     }
     $mem = new ilCustomInputGUI($this->lng->txt('groupings'));
     $tpl = new ilTemplate('tpl.membership_limitation_form.html', true, true, 'Services/Membership');
     $tpl->setVariable('LIMIT_INTRO', $this->lng->txt($this->type . '_grp_info_reg'));
     foreach ($items as $ref_id) {
         $obj_id = ilObject::_lookupObjId($ref_id);
         $type = ilObject::_lookupType($obj_id);
         $title = ilObject::_lookupTitle($obj_id);
         if ($ilAccess->checkAccess('visible', '', $ref_id, $type)) {
             include_once './Services/Link/classes/class.ilLink.php';
             $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $ref_id);
             $tpl->setVariable('LINK_ITEM', $ilCtrl->getLinkTargetByClass("ilrepositorygui", ""));
             $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
             $tpl->setVariable('ITEM_LINKED_TITLE', $title);
         } else {
             $tpl->setVariable('ITEM_TITLE');
         }
         $tpl->setCurrentBlock('items');
         $tpl->setVariable('TYPE_ICON', ilObject::_getIcon($obj_id, tiny, $type));
         $tpl->setVariable('ALT_ICON', $this->lng->txt('obj_' . $type));
         $tpl->parseCurrentBlock();
     }
     $mem->setHtml($tpl->get());
     if (!ilObjCourseGrouping::_checkGroupingDependencies($this->container)) {
         $mem->setAlert($this->container->getMessage());
         $this->enableRegistration(false);
     }
     $this->form->addItem($mem);
 }
 /**
  * fill registration type
  *
  * @access protected
  * @return
  */
 protected function fillRegistrationType()
 {
     global $ilUser;
     if ($this->container->getSubscriptionLimitationType() == IL_CRS_SUBSCRIPTION_DEACTIVATED) {
         $reg = new ilCustomInputGUI($this->lng->txt('mem_reg_type'));
         #$reg->setHtml($this->lng->txt('crs_info_reg_deactivated'));
         $reg->setAlert($this->lng->txt('crs_info_reg_deactivated'));
         #ilUtil::sendFailure($this->lng->txt('crs_info_reg_deactivated'));
         #$reg = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
         #$reg->setValue($this->lng->txt('crs_info_reg_deactivated'));
         #$reg->setAlert($this->lng->txt('grp_reg_deactivated_alert'));
         $this->form->addItem($reg);
         // Disable registration
         $this->enableRegistration(false);
         return true;
     }
     switch ($this->container->getSubscriptionType()) {
         case IL_CRS_SUBSCRIPTION_DIRECT:
             // no "request" info if waiting list is active
             if ($this->isWaitingListActive()) {
                 return true;
             }
             $txt = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
             $txt->setValue($this->lng->txt('crs_info_reg_direct'));
             $this->form->addItem($txt);
             break;
         case IL_CRS_SUBSCRIPTION_PASSWORD:
             $txt = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
             $txt->setValue($this->lng->txt('crs_subscription_options_password'));
             $pass = new ilTextInputGUI($this->lng->txt('passwd'), 'grp_passw');
             $pass->setInputType('password');
             $pass->setSize(12);
             $pass->setMaxLength(32);
             #$pass->setRequired(true);
             $pass->setInfo($this->lng->txt('crs_info_reg_password'));
             $txt->addSubItem($pass);
             $this->form->addItem($txt);
             break;
         case IL_CRS_SUBSCRIPTION_CONFIRMATION:
             // no "request" info if waiting list is active
             if ($this->isWaitingListActive()) {
                 return true;
             }
             $txt = new ilNonEditableValueGUI($this->lng->txt('mem_reg_type'));
             $txt->setValue($this->lng->txt('crs_subscription_options_confirmation'));
             $sub = new ilTextAreaInputGUI($this->lng->txt('crs_reg_subject'), 'subject');
             $sub->setValue($_POST['subject']);
             $sub->setInfo($this->lng->txt('crs_info_reg_confirmation'));
             $sub->setCols(40);
             $sub->setRows(5);
             if ($this->participants->isSubscriber($ilUser->getId())) {
                 $sub_data = $this->participants->getSubscriberData($ilUser->getId());
                 $sub->setValue($sub_data['subject']);
                 $sub->setInfo('');
                 ilUtil::sendFailure($this->lng->txt('crs_reg_user_already_subscribed'));
                 $this->enableRegistration(false);
             }
             $txt->addSubItem($sub);
             $this->form->addItem($txt);
             break;
         default:
             return true;
     }
     return true;
 }