46                include_once 
"./Services/AccessControl/classes/class.ilConditionHandler.php";
 
   51                $this->gui_obj =& $gui_obj;
 
   53                $this->lng->loadLanguageModule(
'rbac');
 
   63                        $this->target_obj =& $this->gui_obj->object;
 
   68                if (is_object($this->target_obj))
 
   86                                $GLOBALS[
'lng']->loadLanguageModule(
'trac');
 
   87                                include_once 
'./Services/Tracking/classes/class.ilLPObjSettings.php';
 
   92                                $GLOBALS[
'lng']->loadLanguageModule(
'rbac');
 
   93                                return $GLOBALS[
'lng']->txt(
'condition_'.$a_operator);
 
  119                if(!$ilAccess->checkAccess(
'write',
'',$this->getTargetRefId()))
 
  124                $next_class = $this->ctrl->getNextClass($this);
 
  125                $cmd = $this->ctrl->getCmd();
 
  141                $this->automatic_validation = $a_status;
 
  154                $this->target_id = $a_target_id;
 
  170                $this->target_ref_id = $a_target_ref_id;
 
  186                $this->target_type = $a_target_type;
 
  202                $this->target_title = $a_target_title;
 
  222        function chi_init(&$chi_target_obj,$a_ref_id = 
null)
 
  226                include_once 
"./Services/AccessControl/classes/class.ilConditionHandler.php";
 
  236                        $this->target_obj =& $this->object;
 
  250                $ilToolbar->addButton($this->lng->txt(
'add_condition'),$this->ctrl->getLinkTarget($this,
'selector'));
 
  252                $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.list_conditions.html',
'Services/AccessControl');
 
  259                if(count($optional_conditions))
 
  281                                $this->tpl->setVariable(
'TABLE_SETTINGS',$form->getHTML());
 
  285                include_once 
'./Services/AccessControl/classes/class.ilConditionHandlerTableGUI.php';
 
  287                $table->setConditions(
 
  295                $this->tpl->setVariable(
'TABLE_CONDITIONS',$table->getHTML());
 
  296                $this->tpl->setContent($table->getHTML());
 
  305                if($form->checkInput())
 
  307                        $old_mode = $form->getInput(
"old_list_mode");
 
  308                        switch($form->getInput(
"list_mode"))
 
  311                                        if($old_mode != 
"all")
 
  313                                                include_once 
'./Services/AccessControl/classes/class.ilConditionHandler.php';
 
  320                                                foreach((array) $optional_conditions as $item)
 
  328                                        $num_req = $form->getInput(
'required');
 
  329                                        if($old_mode != 
"subset")
 
  336                                                foreach($all_conditions as $item)
 
  352                        $cond->updateHiddenStatus((
int) $form->getInput(
'hidden'));
 
  355                        $this->ctrl->redirect($this,
'listConditions');
 
  358                $form->setValuesByPost();
 
  360                $this->tpl->setContent($form->getHTML());
 
  374                if(
$_POST[
"obl"] && 
sizeof(
$_POST[
"obl"]) > 
sizeof($all_conditions)-2)
 
  377                        $this->ctrl->redirect($this,
'listConditions');
 
  380                foreach($all_conditions as $item)
 
  383                        if(
$_POST[
"obl"] && in_array($item[
"condition_id"], 
$_POST[
"obl"]))
 
  399                $this->ctrl->redirect($this,
'listConditions');
 
  425                include_once 
'./Services/Form/classes/class.ilPropertyFormGUI.php';
 
  427                $form->setFormAction($this->ctrl->getFormAction($this),
'listConditions');
 
  428                $form->setTitle($this->lng->txt(
'precondition_obligatory_settings'));
 
  429                $form->addCommandButton(
'saveObligatorySettings', $this->lng->txt(
'save'));
 
  434                $hide->setInfo($this->lng->txt(
'rbac_precondition_hide_info'));
 
  435                $form->addItem($hide);
 
  438                $form->addItem($mode);
 
  441                $mall = 
new ilRadioOption($this->lng->txt(
"rbac_precondition_mode_all"), 
"all");
 
  442                $mall->setInfo($this->lng->txt(
"rbac_precondition_mode_all_info"));
 
  443                $mode->addOption($mall);
 
  445                $msubset = 
new ilRadioOption($this->lng->txt(
"rbac_precondition_mode_subset"), 
"subset");
 
  446                $msubset->setInfo($this->lng->txt(
"rbac_precondition_mode_subset_info"));
 
  447                $mode->addOption($msubset);
 
  449                $obl = 
new ilNumberInputGUI($this->lng->txt(
'precondition_num_obligatory'), 
'required');
 
  450                $obl->setInfo($this->lng->txt(
'precondition_num_optional_info'));
 
  458                        $min = count($all) - count($opt) + 1;
 
  459                        $max = count($all) - 1;
 
  463                        $obligatory = $min = $max = 1;
 
  465                $obl->setValue($obligatory);
 
  466                $obl->setRequired(
true);
 
  468                $obl->setMinValue($min);
 
  469                $obl->setMaxValue($max);
 
  470                $msubset->addSubItem($obl);
 
  473                $old_mode->setValue(
$_REQUEST[
"list_mode"]);
 
  474                $form->addItem($old_mode);
 
  482                global $ilObjDataCache;
 
  484                if(!
$_GET[
'condition_id'])
 
  492                $this->tpl->addBlockfile(
'ADM_CONTENT',
'adm_content',
'tpl.condition_handler_edit_condition.html',
 
  493                        "Services/AccessControl");
 
  494                $this->ctrl->setParameter($this,
'condition_id',(
int) 
$_GET[
'condition_id']);
 
  497                $this->tpl->setVariable(
'CONDITION_TABLE',$this->form->getHTML());
 
  502                global $ilObjDataCache;
 
  504                if(!
$_GET[
'condition_id'])
 
  512                include_once 
'./Services/AccessControl/classes/class.ilConditionHandler.php';
 
  516                $condition_handler->setOperator(
$_POST[
'operator']);
 
  517                $condition_handler->setObligatory((
int) 
$_POST[
'obligatory']);
 
  519                $condition_handler->setValue(
'');
 
  523                                $condition_handler->setReferenceHandlingType(
$_POST[
'ref_handling']);
 
  530                $condition_handler->updateCondition($condition[
'id']);
 
  533                if($condition[
'trigger_type'] == 
'sahs')
 
  535                        include_once 
'Services/Object/classes/class.ilObjectLP.php';
 
  537                        $collection = $olp->getCollectionInstance();
 
  540                                $collection->delete();
 
  543                        if(is_array(
$_POST[
'item_ids'])) 
 
  545                                $collection->activateEntries(
$_POST[
'item_ids']);
 
  548                        include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
 
  553                $this->ctrl->redirect($this,
'listConditions');
 
  560                if(!count(
$_POST[
'conditions']))
 
  568                include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
  570                $cgui->setFormAction($this->ctrl->getFormAction($this, 
"listConditions"));
 
  571                $cgui->setHeaderText($this->lng->txt(
"rbac_condition_delete_sure"));
 
  572                $cgui->setCancel($this->lng->txt(
"cancel"), 
"listConditions");
 
  573                $cgui->setConfirm($this->lng->txt(
"delete"), 
"delete");
 
  576                foreach(
$_POST[
'conditions'] as $condition_id)
 
  581                                " (".$this->lng->txt(
"condition").
": ".
 
  582                                $this->lng->txt(
'condition_'.$condition[
'operator']).
")";                       
 
  584                        $alt = $this->lng->txt(
'obj_'.$condition[
'trigger_type']);
 
  586                        $cgui->addItem(
"conditions[]", $condition_id, $title, $icon, $alt);
 
  589                $tpl->setContent($cgui->getHTML());
 
  594                if(!count(
$_POST[
'conditions']))
 
  601                foreach(
$_POST[
'conditions'] as $condition_id)
 
  603                        $this->ch_obj->deleteCondition($condition_id);
 
  606                $this->ctrl->redirect($this,
'listConditions');
 
  613                include_once (
"./Services/AccessControl/classes/class.ilConditionSelector.php");
 
  619                                                                array(
"root", 
"cat", 
"grp", 
"fold", 
"crs")
 
  625                if (!$exp->handleCommand())
 
  627                        $this->tpl->setContent($exp->getHTML());
 
  633                global $ilObjDataCache;
 
  635                if(!
$_GET[
'source_id'])
 
  643                $this->tpl->addBlockfile(
'ADM_CONTENT',
'adm_content',
'tpl.condition_handler_add.html',
 
  644                        "Services/AccessControl");
 
  645                $this->tpl->setVariable(
'CONDITION_TABLE',$this->form->getHTML());              
 
  654                if(!isset(
$_GET[
'source_id']))
 
  656                        echo 
"class.ilConditionHandlerGUI: no source_id given";
 
  668                $this->ch_obj->setTargetObjId($this->
getTargetId());
 
  674                                $this->ch_obj->setReferenceHandlingType(
$_POST[
'ref_handling']);
 
  684                        echo 
'ilConditionHandler: Trigger object does not exist';
 
  686                $this->ch_obj->setTriggerRefId($trigger_obj->getRefId());
 
  687                $this->ch_obj->setTriggerObjId($trigger_obj->getId());
 
  688                $this->ch_obj->setTriggerType($trigger_obj->getType());
 
  689                $this->ch_obj->setOperator(
$_POST[
'operator']);
 
  690                $this->ch_obj->setObligatory((
int) 
$_POST[
'obligatory']);
 
  692                $this->ch_obj->setValue(
'');
 
  695                if($this->ch_obj->getTriggerType() == 
'sahs')
 
  697                        include_once 
'Services/Object/classes/class.ilObjectLP.php';
 
  699                        $collection = $olp->getCollectionInstance();
 
  702                                $collection->delete();
 
  705                        if(is_array(
$_POST[
'item_ids'])) 
 
  707                                $collection->activateEntries(
$_POST[
'item_ids']);
 
  712                if(!$this->ch_obj->storeCondition())
 
  721                $this->ctrl->redirect($this,
'listConditions');
 
  728                #if(in_array('',$_POST['operator'])) 
  730                #       ilUtil::sendInfo($this->lng->txt('select_one_operator')); 
  736                        $this->ch_obj->setOperator(
$_POST[
'operator'][$condition[
"id"]]);
 
  737                        $this->ch_obj->setValue(
$_POST[
'value'][$condition[
"id"]]);
 
  738                        $this->ch_obj->updateCondition($condition[
'id']);
 
  743                $this->ctrl->returnToParent($this);
 
  749                include_once 
'./Services/AccessControl/classes/class.ilConditionHandler.php';
 
  753                        if($condition[
'operator'] == 
'not_member')
 
  759                                $cond[] = $condition;
 
  762                return $cond ? $cond : array();
 
  779                if(is_object($this->form))
 
  783                include_once(
'Services/Form/classes/class.ilPropertyFormGUI.php');
 
  785                $this->ctrl->setParameter($this,
'source_id',$a_source_id);
 
  786                $this->form->setFormAction($this->ctrl->getFormAction($this));
 
  790                $this->form->addItem($info_source);
 
  794                $this->form->addItem($info_target);
 
  813                        $obl->setValue($condition[
'obligatory']);
 
  819                $this->form->addItem($obl);
 
  822                include_once 
"./Services/AccessControl/classes/class.ilConditionHandler.php";
 
  826                        $operators[0] = $this->lng->txt(
'select_one');
 
  828                foreach(
$ch_obj->getOperatorsByTargetType($trigger_type) as $operator)
 
  830                        $operators[$operator] = $this->lng->txt(
'condition_'.$operator);
 
  832                $sel->setValue(isset($condition[
'operator']) ? $condition[
'operator'] : 0);
 
  833                $sel->setOptions($operators);
 
  834                $sel->setRequired(
true);
 
  835                $this->form->addItem($sel);
 
  843                        $rad_opt->addOption($opt2);
 
  846                        $rad_opt->addOption($opt1);
 
  848                        $this->form->addItem($rad_opt);
 
  852                if($trigger_type == 
'sahs')
 
  854                        $this->lng->loadLanguageModule(
'trac');
 
  856                        $cus = 
new ilCustomInputGUI($this->lng->txt(
'trac_sahs_relevant_items'),
'item_ids[]');
 
  857                        $cus->setRequired(
true);
 
  859                        $tpl = 
new ilTemplate(
'tpl.condition_handler_sco_row.html',
true,
true,
 
  860                                "Services/AccessControl");
 
  863                        include_once 
'Services/Object/classes/class.ilObjectLP.php';
 
  865                        $collection = $olp->getCollectionInstance();            
 
  868                                foreach($collection->getPossibleItems() as $item_id => $sahs_item)
 
  870                                        $tpl->setCurrentBlock(
"sco_row");
 
  871                                        $tpl->setVariable(
'SCO_ID',$item_id);
 
  872                                        $tpl->setVariable(
'SCO_TITLE',$sahs_item[
'title']);
 
  873                                        $tpl->setVariable(
'CHECKED',$collection->isAssignedEntry($item_id) ? 
'checked="checked"' : 
'');
 
  874                                        $tpl->parseCurrentBlock();
 
  878                        $tpl->setVariable(
'INFO_SEL',$this->lng->txt(
'trac_lp_determination_info_sco'));
 
  879                        $cus->setHTML(
$tpl->get());
 
  880                        $this->form->addItem($cus);
 
  886                                $this->form->setTitle($this->lng->txt(
'rbac_edit_condition'));
 
  887                                $this->form->addCommandButton(
'updateCondition',$this->lng->txt(
'save'));
 
  888                                $this->form->addCommandButton(
'listConditions',$this->lng->txt(
'cancel'));
 
  894                                $this->form->setTitle($this->lng->txt(
'add_condition'));
 
  895                                $this->form->addCommandButton(
'assign',$this->lng->txt(
'save'));
 
  896                                $this->form->addCommandButton(
'selector',$this->lng->txt(
'back'));
 
class ilConditionHandlerGUI
chi_init(&$chi_target_obj, $a_ref_id=null)
setTargetType($a_target_type)
set target type
listConditions()
list conditions @global ilToolbar
setBackButtons($a_btn_arr)
getTargetRefId()
get target ref id
isTargetReferenced()
Check if target has refernce id.
getTargetType()
get target type
saveObligatoryList()
Save obligatory settings.
static translateOperator($a_obj_id, $a_operator)
Translate operator.
__construct($gui_obj, $a_ref_id=null)
Constructor @global <type> $lng @global <type> $tpl @global <type> $tree @global <type> $ilCtrl.
showObligatoryForm($opt=array())
Show obligatory form.
setTargetId($a_target_id)
set target id
saveObligatorySettings()
Save obligatory settings.
initFormCondition($a_source_id, $a_condition_id=0, $a_mode='add')
Init form for condition table.
setTargetTitle($a_target_title)
set target title
getTargetId()
get target id
getTargetTitle()
get target title
assign()
assign new trigger condition to target
getConditionHandler()
Get condition handler.
__getConditionsOfTarget()
setAutomaticValidation($a_status)
setTargetRefId($a_target_ref_id)
set target ref id
Table presentation of conditions.
Handles conditions for accesses to different ILIAS objects.
static getOptionalConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_obj_type='')
Get optional conditions.
static calculateRequiredTriggers($a_target_ref_id, $a_target_obj_id, $a_target_obj_type='', $a_force_update=false)
calculate number of obligatory items
static saveNumberOfRequiredTriggers($a_target_ref_id, $a_target_obj_id, $a_num)
Save number of obigatory triggers.
static _getConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_target_type="")
get all conditions of target object
static lookupHiddenStatusByTarget($a_target_ref_id)
Lookup hidden status @global type $ilDB.
static _isReferenceHandlingOptional($a_type)
is reference handling optional
static updateObligatory($a_id, $a_status)
Toggle condition obligatory status.
Confirmation screen class.
static _mode2Text($a_mode)
_refreshStatus($a_obj_id, $a_users=null)
Set dirty.
This class represents a non editable value in a property form.
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static getInstance($a_obj_id)
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _lookupType($a_id, $a_reference=false)
lookup object type
This class represents an option in a radio group.
special template class to simplify handling of ITX/PEAR
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']