Handles conditions for accesses to different ILIAS objects. More...
Collaboration diagram for ilConditionHandler:Public Member Functions | |
| ilConditionHandler () | |
| constructor public | |
| setReferenceHandlingType ($a_type) | |
| set reference handling type | |
| getReferenceHandlingType () | |
| get reference handling type | |
| setErrorMessage ($a_msg) | |
| getErrorMessage () | |
| setTargetRefId ($a_target_ref_id) | |
| set target ref id | |
| getTargetRefId () | |
| get target ref id | |
| setTargetObjId ($a_target_obj_id) | |
| set target object id | |
| getTargetObjId () | |
| get target obj id | |
| setTargetType ($a_target_type) | |
| set target object type | |
| getTargetType () | |
| get target obj type | |
| setTriggerRefId ($a_trigger_ref_id) | |
| set trigger ref id | |
| getTriggerRefId () | |
| get target ref id | |
| setTriggerObjId ($a_trigger_obj_id) | |
| set trigger object id | |
| getTriggerObjId () | |
| get trigger obj id | |
| setTriggerType ($a_trigger_type) | |
| set trigger object type | |
| getTriggerType () | |
| get trigger obj type | |
| setOperator ($a_operator) | |
| set operator | |
| getOperator () | |
| get operator | |
| setValue ($a_value) | |
| set value | |
| getValue () | |
| get value | |
| enableAutomaticValidation ($a_validate=true) | |
| enable automated validation | |
| getTriggerTypes () | |
| get all possible trigger types NOT STATIC public | |
| getOperatorsByTargetType ($a_type) | |
| storeCondition () | |
| store new condition in database NOT STATIC public | |
| checkExists () | |
| updateCondition ($a_id) | |
| update condition | |
| delete ($a_ref_id) | |
| delete all trigger and target entries This method is called from ilObject::delete() if an object os removed from trash | |
| deleteByObjId ($a_obj_id) | |
| delete all trigger and target entries This method is called from ilObject::delete() if an object is removed from trash | |
| deleteCondition ($a_id) | |
| delete condition | |
| _getCondition ($a_id) | |
| _checkCondition ($a_id) | |
| checks wether a single condition is fulfilled every trigger object type must implement a static method _checkCondition($a_operator, $a_value) | |
| _checkAllConditionsOfTarget ($a_target_ref_id, $a_target_id, $a_target_type="") | |
| checks wether all conditions of a target object are fulfilled | |
| validate () | |
| checkCircle ($a_ref_id, $a_obj_id) | |
Static Public Member Functions | |
| static | _isReferenceHandlingOptional ($a_type) |
| is reference handling optional | |
| static | _adjustMovedObjectConditions ($a_ref_id) |
| In the moment it is not allowed to create preconditions on objects that are located outside of a course. | |
| static | _getDistinctTargetRefIds () |
| Get all target ref ids. | |
| static | _deleteTargetConditionsByRefId ($a_target_ref_id) |
| Delete conditions by target ref id Note: only conditions on the target type are deleted Conditions on e.g chapters are not handled. | |
| _getConditionsOfTrigger ($a_trigger_obj_type, $a_trigger_id) | |
| get all conditions of trigger object | |
| _getConditionsOfTarget ($a_target_ref_id, $a_target_obj_id, $a_target_type="") | |
| get all conditions of target object | |
Data Fields | |
| const | UNIQUE_CONDITIONS = 1 |
| const | SHARED_CONDITIONS = 0 |
| $db | |
| $lng | |
| $error_message | |
| $target_obj_id | |
| $target_ref_id | |
| $target_type | |
| $trigger_obj_id | |
| $trigger_ref_id | |
| $trigger_type | |
| $operator | |
| $value | |
| $validation | |
| $conditions | |
Handles conditions for accesses to different ILIAS objects.
A condition consists of four elements:
If a condition is fulfilled for a certain user, (s)he may access the target object. This first implementation handles only one access type per object, which is usually "read" access. A possible future extension may implement different access types.
The condition data is stored in the database table "condition" (Note: This table must not be accessed directly from other classes. The data should be accessed via the interface of class ilCondition.) cond_id INT condition id trigger_obj_type VARCHAR(10) "crs" | "tst" | "qst", ... trigger_id INT obj id of trigger object operator varchar(10 "=", "<", ">", ">=", "<=", "passed", "contains", ... value VARCHAR(10) optional value target_obj_type VARCHAR(10) "lm" | "frm" | "st" | "pg", ... target_id object or reference id of target object
Trigger objects are always stored with their object id (if a test has been passed by a user, he doesn't need to repeat it in other contexts. But target objects are usually stored with their reference id if available, otherwise, if they are non-referenced objects (e.g. (survey) questions) they are stored with their object id.
Stefan Meyer 10-08-2004 In addition we store the ref_id of the trigger object to allow the target object to link to the triggered object. But it's not possible to assign two or more linked (same obj_id) triggered objects to a target object
Examples:
Learning module 5 may only be accessed, if test 6 has been passed: trigger_obj_type "tst" trigger_id 6 (object id) trigger_ref_id 117 operator "passed" value target_obj_type "lm" target_id 5 (reference id)
Survey question 10 should only be presented, if survey question 8 is answered with a value greater than 4. trigger_obj_type "qst" trigger_id 8 (question (instance) object id) trigger_ref_id 117 operator ">" value "4" target_obj_type "lm" target_id 10 (question (instance) object id)
Definition at line 86 of file class.ilConditionHandler.php.
| static ilConditionHandler::_adjustMovedObjectConditions | ( | $ | a_ref_id | ) | [static] |
In the moment it is not allowed to create preconditions on objects that are located outside of a course.
Therefore, after moving an object: check for parent type 'crs'. if that fails delete preconditions
public
| int | reference id of moved object |
Definition at line 153 of file class.ilConditionHandler.php.
References $conditions, _deleteTargetConditionsByRefId(), and _getDistinctTargetRefIds().
Referenced by ilContainerGUI::pasteObject().
{
global $tree;
if($tree->checkForParentType($a_ref_id,'crs'))
{
// Nothing to do
return true;
}
// Need another implementation that has better performance
$childs = $tree->getSubTree($tree->getNodeData($a_ref_id),false);
$conditions = self::_getDistinctTargetRefIds();
foreach(array_intersect($conditions,$childs) as $target_ref)
{
if(!$tree->checkForParentType($target_ref,'crs'))
{
self::_deleteTargetConditionsByRefId($target_ref);
}
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilConditionHandler::_checkAllConditionsOfTarget | ( | $ | a_target_ref_id, | |
| $ | a_target_id, | |||
| $ | a_target_type = "" | |||
| ) |
checks wether all conditions of a target object are fulfilled
Definition at line 705 of file class.ilConditionHandler.php.
References $ilBench, _checkCondition(), and _getConditionsOfTarget().
Referenced by ilCourseObjectivePresentationGUI::__showLearningMaterials(), ilCourseObjectivePresentationGUI::__showOtherResources(), ilCourseObjectivePresentationGUI::__showTests(), ilObjContentObject::_checkPreconditionsOfPage(), ilAccessHandler::doConditionCheck(), ilObjCourseListGUI::initItem(), ilRepositoryExplorer::isClickable(), ilRepositoryExplorer::showChilds(), and ilCourseContentGUI::showStartObjects().
{
global $ilBench;
foreach(ilConditionHandler::_getConditionsOfTarget($a_target_ref_id,$a_target_id, $a_target_type) as $condition)
{
$ilBench->start("ilConditionHandler", "checkCondition");
$check = ilConditionHandler::_checkCondition($condition['id']);
$ilBench->stop("ilConditionHandler", "checkCondition");
if(!$check)
{
return false;
}
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilConditionHandler::_checkCondition | ( | $ | a_id | ) |
checks wether a single condition is fulfilled every trigger object type must implement a static method _checkCondition($a_operator, $a_value)
Definition at line 663 of file class.ilConditionHandler.php.
References ilLPStatusWrapper::_getCompleted(), and _getCondition().
Referenced by _checkAllConditionsOfTarget(), ilObjContentObject::_getMissingPreconditionsOfPage(), ilObjContentObject::_getMissingPreconditionsTopChapter(), and ilObjectListGUI::insertPreconditions().
{
$condition = ilConditionHandler::_getCondition($a_id);
switch($condition['trigger_type'])
{
case "tst":
include_once './Modules/Test/classes/class.ilObjTestAccess.php';
return ilObjTestAccess::_checkCondition($condition['trigger_obj_id'],$condition['operator'],$condition['value']);
case "crs":
include_once './Modules/Course/classes/class.ilObjCourse.php';
return ilObjCourse::_checkCondition($condition['trigger_obj_id'],$condition['operator'],$condition['value']);
case 'exc':
include_once './Modules/Exercise/classes/class.ilObjExercise.php';
return ilObjExercise::_checkCondition($condition['trigger_obj_id'],$condition['operator'],$condition['value']);
case 'crsg':
include_once './Modules/Course/classes/class.ilObjCourseGrouping.php';
return ilObjCourseGrouping::_checkCondition($condition['trigger_obj_id'],$condition['operator'],$condition['value']);
case 'sahs':
global $ilUser;
include_once './Services/Tracking/classes/class.ilLPStatusWrapper.php';
return in_array($ilUser->getId(),$completed = ilLPStatusWrapper::_getCompleted($condition['trigger_obj_id']));
case 'svy':
include_once './Modules/Survey/classes/class.ilObjSurvey.php';
return ilObjSurvey::_checkCondition($condition['trigger_obj_id'],$condition['operator'],$condition['value']);
default:
return false;
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| static ilConditionHandler::_deleteTargetConditionsByRefId | ( | $ | a_target_ref_id | ) | [static] |
Delete conditions by target ref id Note: only conditions on the target type are deleted Conditions on e.g chapters are not handled.
public
| int | ref id of target |
Definition at line 207 of file class.ilConditionHandler.php.
Referenced by _adjustMovedObjectConditions().
{
global $ilDB;
$query = "DELETE FROM conditions ".
"WHERE target_ref_id = ".$ilDB->quote($a_target_ref_id)." ".
"AND target_type != 'st' ";
$ilDB->query($query);
return true;
}
Here is the caller graph for this function:| ilConditionHandler::_getCondition | ( | $ | a_id | ) |
Definition at line 630 of file class.ilConditionHandler.php.
References $res.
Referenced by _checkCondition(), ilConditionHandlerInterface::edit(), ilConditionHandlerInterface::initFormCondition(), and ilConditionHandlerInterface::updateCondition().
{
global $ilDB;
$query = "SELECT * FROM conditions ".
"WHERE id = ".$ilDB->quote($a_id);
$res = $ilDB->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$tmp_array['id'] = $row->id;
$tmp_array['target_ref_id'] = $row->target_ref_id;
$tmp_array['target_obj_id'] = $row->target_obj_id;
$tmp_array['target_type'] = $row->target_type;
$tmp_array['trigger_ref_id'] = $row->trigger_ref_id;
$tmp_array['trigger_obj_id'] = $row->trigger_obj_id;
$tmp_array['trigger_type'] = $row->trigger_type;
$tmp_array['operator'] = $row->operator;
$tmp_array['value'] = $row->value;
$tmp_array['ref_handling'] = $row->ref_handling;
return $tmp_array;
}
return false;
}
Here is the caller graph for this function:| ilConditionHandler::_getConditionsOfTarget | ( | $ | a_target_ref_id, | |
| $ | a_target_obj_id, | |||
| $ | a_target_type = "" | |||
| ) | [static] |
get all conditions of target object
| $a_target_ref_id | target reference id | |
| $a_target_obj_id | target object id | |
| $a_target_type | target object type (must be provided only if object is not derived from ilObject and therefore stored in object_data; this is e.g. the case for chapters (type = "st")) |
Definition at line 584 of file class.ilConditionHandler.php.
References $conditions, $ilBench, $res, and ilObject::_lookupType().
Referenced by ilConditionHandlerInterface::__getConditionsOfTarget(), _checkAllConditionsOfTarget(), ilObjCourseGrouping::_checkGroupingDependencies(), ilObjCourseGrouping::_getGroupingCourseIds(), ilObjCourseGrouping::_getGroupingItemsAsString(), ilObjContentObject::_getMissingPreconditionsOfPage(), ilObjContentObject::_getMissingPreconditionsTopChapter(), checkCircle(), ilAccessHandler::doConditionCheck(), ilObjectListGUI::insertPreconditions(), and ilConditionHandlerInterface::listConditions().
{
global $ilDB, $ilBench;
$ilBench->start("ilConditionHandler", "getConditionsOfTarget");
if ($a_target_type == "")
{
$a_target_type = ilObject::_lookupType($a_target_obj_id);
}
$query = "SELECT * FROM conditions ".
"WHERE target_obj_id = ".$ilDB->quote($a_target_obj_id)." ".
" AND target_type = ".$ilDB->quote($a_target_type);
$res = $ilDB->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
if($row->ref_handling == self::UNIQUE_CONDITIONS)
{
if($row->target_ref_id != $a_target_ref_id)
{
continue;
}
}
$tmp_array['id'] = $row->id;
$tmp_array['target_ref_id'] = $row->target_ref_id;
$tmp_array['target_obj_id'] = $row->target_obj_id;
$tmp_array['target_type'] = $row->target_type;
$tmp_array['trigger_ref_id'] = $row->trigger_ref_id;
$tmp_array['trigger_obj_id'] = $row->trigger_obj_id;
$tmp_array['trigger_type'] = $row->trigger_type;
$tmp_array['operator'] = $row->operator;
$tmp_array['value'] = $row->value;
$tmp_array['ref_handling'] = $row->ref_handling;
$conditions[] = $tmp_array;
unset($tmp_array);
}
$ilBench->stop("ilConditionHandler", "getConditionsOfTarget");
return $conditions ? $conditions : array();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilConditionHandler::_getConditionsOfTrigger | ( | $ | a_trigger_obj_type, | |
| $ | a_trigger_id | |||
| ) | [static] |
get all conditions of trigger object
Definition at line 545 of file class.ilConditionHandler.php.
References $conditions, and $res.
Referenced by ilObjCourseGrouping::_checkGroupingDependencies(), ilLPObjSettings::_checkSCORMPreconditions(), ilObjCourseGrouping::_getGroupingCourseIds(), ilObjCourseGrouping::_getGroupingItemsAsString(), ilObjCourseGrouping::deassign(), and ilObjCourseGrouping::getAssignedItems().
{
global $ilDB;
$query = "SELECT * FROM conditions ".
"WHERE trigger_obj_id = ".$ilDB->quote($a_trigger_id)." ".
" AND trigger_type = ".$ilDB->quote($a_trigger_obj_type)." ";
$res = $ilDB->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$tmp_array['id'] = $row->id;
$tmp_array['target_ref_id'] = $row->target_ref_id;
$tmp_array['target_obj_id'] = $row->target_obj_id;
$tmp_array['target_type'] = $row->target_type;
$tmp_array['trigger_ref_id'] = $row->trigger_ref_id;
$tmp_array['trigger_obj_id'] = $row->trigger_obj_id;
$tmp_array['trigger_type'] = $row->trigger_type;
$tmp_array['operator'] = $row->operator;
$tmp_array['value'] = $row->value;
$tmp_array['ref_handling'] = $row->ref_handling;
$conditions[] = $tmp_array;
unset($tmp_array);
}
return $conditions ? $conditions : array();
}
Here is the caller graph for this function:| static ilConditionHandler::_getDistinctTargetRefIds | ( | ) | [static] |
Get all target ref ids.
public
Definition at line 184 of file class.ilConditionHandler.php.
References $res.
Referenced by _adjustMovedObjectConditions().
{
global $ilDB;
$query = "SELECT DISTINCT target_ref_id AS ref FROM conditions ";
$res = $ilDB->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$ref_ids[] = $row->ref;
}
return $ref_ids ? $ref_ids : array();
}
Here is the caller graph for this function:| static ilConditionHandler::_isReferenceHandlingOptional | ( | $ | a_type | ) | [static] |
is reference handling optional
public
| string | target type ILIAS obj type |
Definition at line 131 of file class.ilConditionHandler.php.
Referenced by ilConditionHandlerInterface::initFormCondition().
{
switch($a_type)
{
case 'st':
return true;
default:
return false;
}
}
Here is the caller graph for this function:| ilConditionHandler::checkCircle | ( | $ | a_ref_id, | |
| $ | a_obj_id | |||
| ) |
Definition at line 760 of file class.ilConditionHandler.php.
References _getConditionsOfTarget(), and getOperator().
Referenced by validate().
{
foreach(ilConditionHandler::_getConditionsOfTarget($a_ref_id,$a_obj_id) as $condition)
{
if($condition['trigger_obj_id'] == $this->target_obj_id and $condition['operator'] == $this->getOperator())
{
$this->circle = true;
break;
}
else
{
$this->checkCircle($condition['trigger_ref_id'],$condition['trigger_obj_id']);
}
}
return $this->circle;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilConditionHandler::checkExists | ( | ) |
Definition at line 458 of file class.ilConditionHandler.php.
References $res, getOperator(), getTargetObjId(), getTargetRefId(), getTriggerObjId(), and getTriggerRefId().
{
global $ilDB;
$query = "SELECT * FROM conditions ".
"WHERE target_ref_id = ".$ilDB->quote($this->getTargetRefId())." ".
"AND target_obj_id = ".$ilDB->quote($this->getTargetObjId())." ".
"AND trigger_ref_id = ".$ilDB->quote($this->getTriggerRefId())." ".
"AND trigger_obj_id = ".$ilDB->quote($this->getTriggerObjId())." ".
"AND operator = ".$ilDB->quote($this->getOperator());
$res = $this->db->query($query);
return $res->numRows() ? true : false;
}
Here is the call graph for this function:| ilConditionHandler::delete | ( | $ | a_ref_id | ) |
delete all trigger and target entries This method is called from ilObject::delete() if an object os removed from trash
Definition at line 497 of file class.ilConditionHandler.php.
References $res.
{
global $ilDB;
$query = "DELETE FROM conditions WHERE ".
"target_ref_id = ".$ilDB->quote($a_ref_id)." ".
"OR trigger_ref_id = ".$ilDB->quote($a_ref_id);
$res = $this->db->query($query);
return true;
}
| ilConditionHandler::deleteByObjId | ( | $ | a_obj_id | ) |
delete all trigger and target entries This method is called from ilObject::delete() if an object is removed from trash
Definition at line 513 of file class.ilConditionHandler.php.
References $res.
{
global $ilDB;
$query = "DELETE FROM conditions WHERE ".
"target_obj_id = ".$ilDB->quote($a_obj_id)." ".
"OR trigger_obj_id = ".$ilDB->quote($a_obj_id);
$res = $this->db->query($query);
return true;
}
| ilConditionHandler::deleteCondition | ( | $ | a_id | ) |
delete condition
Definition at line 529 of file class.ilConditionHandler.php.
References $res.
Referenced by storeCondition().
{
global $ilDB;
$query = "DELETE FROM conditions ".
"WHERE id = ".$ilDB->quote($a_id);
$res = $ilDB->query($query);
return true;
}
Here is the caller graph for this function:| ilConditionHandler::enableAutomaticValidation | ( | $ | a_validate = true |
) |
enable automated validation
Definition at line 382 of file class.ilConditionHandler.php.
{
$this->validation = $a_validate;
}
| ilConditionHandler::getErrorMessage | ( | ) |
Definition at line 246 of file class.ilConditionHandler.php.
{
return $this->error_message;
}
| ilConditionHandler::getOperator | ( | ) |
get operator
Definition at line 358 of file class.ilConditionHandler.php.
Referenced by checkCircle(), checkExists(), storeCondition(), and updateCondition().
{
return $this->operator;
}
Here is the caller graph for this function:| ilConditionHandler::getOperatorsByTargetType | ( | $ | a_type | ) |
Definition at line 398 of file class.ilConditionHandler.php.
{
switch($a_type)
{
case 'crs':
case 'exc':
return array('passed');
case 'tst':
return array('passed','finished','not_finished');
case 'crsg':
return array('not_member');
case 'sahs':
return array('finished');
case 'svy':
return array('finished');
default:
return array();
}
}
| ilConditionHandler::getReferenceHandlingType | ( | ) |
get reference handling type
public
Definition at line 236 of file class.ilConditionHandler.php.
Referenced by storeCondition(), and updateCondition().
{
return $this->condition_reference_type;
}
Here is the caller graph for this function:| ilConditionHandler::getTargetObjId | ( | ) |
get target obj id
Definition at line 278 of file class.ilConditionHandler.php.
Referenced by checkExists(), and storeCondition().
{
return $this->target_obj_id;
}
Here is the caller graph for this function:| ilConditionHandler::getTargetRefId | ( | ) |
get target ref id
Definition at line 262 of file class.ilConditionHandler.php.
Referenced by checkExists(), storeCondition(), updateCondition(), and validate().
{
return $this->target_ref_id;
}
Here is the caller graph for this function:| ilConditionHandler::getTargetType | ( | ) |
get target obj type
Definition at line 294 of file class.ilConditionHandler.php.
Referenced by storeCondition().
{
return $this->target_type;
}
Here is the caller graph for this function:| ilConditionHandler::getTriggerObjId | ( | ) |
get trigger obj id
Definition at line 326 of file class.ilConditionHandler.php.
Referenced by checkExists(), and storeCondition().
{
return $this->trigger_obj_id;
}
Here is the caller graph for this function:| ilConditionHandler::getTriggerRefId | ( | ) |
get target ref id
Definition at line 310 of file class.ilConditionHandler.php.
Referenced by checkExists(), storeCondition(), and validate().
{
return $this->trigger_ref_id;
}
Here is the caller graph for this function:| ilConditionHandler::getTriggerType | ( | ) |
get trigger obj type
Definition at line 342 of file class.ilConditionHandler.php.
Referenced by storeCondition().
{
return $this->trigger_type;
}
Here is the caller graph for this function:| ilConditionHandler::getTriggerTypes | ( | ) |
get all possible trigger types NOT STATIC public
Definition at line 392 of file class.ilConditionHandler.php.
{
return array('crs','exc','tst','sahs', 'svy');
}
| ilConditionHandler::getValue | ( | ) |
get value
Definition at line 374 of file class.ilConditionHandler.php.
Referenced by storeCondition(), and updateCondition().
{
return $this->value;
}
Here is the caller graph for this function:| ilConditionHandler::ilConditionHandler | ( | ) |
constructor public
Definition at line 114 of file class.ilConditionHandler.php.
References $lng.
{
global $ilDB,$lng;
$this->db =& $ilDB;
$this->lng =& $lng;
$this->validation = true;
}
| ilConditionHandler::setErrorMessage | ( | $ | a_msg | ) |
Definition at line 242 of file class.ilConditionHandler.php.
Referenced by validate().
{
$this->error_message = $a_msg;
}
Here is the caller graph for this function:| ilConditionHandler::setOperator | ( | $ | a_operator | ) |
set operator
Definition at line 350 of file class.ilConditionHandler.php.
{
return $this->operator = $a_operator;
}
| ilConditionHandler::setReferenceHandlingType | ( | $ | a_type | ) |
set reference handling type
| int | public |
Definition at line 225 of file class.ilConditionHandler.php.
{
return $this->condition_reference_type = $a_type;
}
| ilConditionHandler::setTargetObjId | ( | $ | a_target_obj_id | ) |
set target object id
Definition at line 270 of file class.ilConditionHandler.php.
{
return $this->target_obj_id = $a_target_obj_id;
}
| ilConditionHandler::setTargetRefId | ( | $ | a_target_ref_id | ) |
set target ref id
Definition at line 254 of file class.ilConditionHandler.php.
{
return $this->target_ref_id = $a_target_ref_id;
}
| ilConditionHandler::setTargetType | ( | $ | a_target_type | ) |
set target object type
Definition at line 286 of file class.ilConditionHandler.php.
{
return $this->target_type = $a_target_type;
}
| ilConditionHandler::setTriggerObjId | ( | $ | a_trigger_obj_id | ) |
set trigger object id
Definition at line 318 of file class.ilConditionHandler.php.
{
return $this->trigger_obj_id = $a_trigger_obj_id;
}
| ilConditionHandler::setTriggerRefId | ( | $ | a_trigger_ref_id | ) |
set trigger ref id
Definition at line 302 of file class.ilConditionHandler.php.
{
return $this->trigger_ref_id = $a_trigger_ref_id;
}
| ilConditionHandler::setTriggerType | ( | $ | a_trigger_type | ) |
set trigger object type
Definition at line 334 of file class.ilConditionHandler.php.
{
return $this->trigger_type = $a_trigger_type;
}
| ilConditionHandler::setValue | ( | $ | a_value | ) |
set value
Definition at line 366 of file class.ilConditionHandler.php.
{
return $this->value = $a_value;
}
| ilConditionHandler::storeCondition | ( | ) |
store new condition in database NOT STATIC public
Definition at line 428 of file class.ilConditionHandler.php.
References $res, deleteCondition(), getOperator(), getReferenceHandlingType(), getTargetObjId(), getTargetRefId(), getTargetType(), getTriggerObjId(), getTriggerRefId(), getTriggerType(), getValue(), and validate().
{
global $ilDB;
// first insert, then validate: it's easier to check for circles if the new condition is in the db table
$query = 'INSERT INTO conditions '.
"VALUES('0',".$ilDB->quote($this->getTargetRefId()).",".
$ilDB->quote($this->getTargetObjId()).",".$ilDB->quote($this->getTargetType()).",".
$ilDB->quote($this->getTriggerRefId()).",".$ilDB->quote($this->getTriggerObjId()).",".
$ilDB->quote($this->getTriggerType()).",".
$ilDB->quote($this->getOperator()).",".$ilDB->quote($this->getValue()).", ".
$ilDB->quote($this->getReferenceHandlingType()).')';
$res = $this->db->query($query);
$query = "SELECT LAST_INSERT_ID() AS last FROM conditions";
$res = $this->db->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$last_id = $row->last;
}
if ($this->validation && !$this->validate())
{
$this->deleteCondition($last_id);
return false;
}
return true;
}
Here is the call graph for this function:| ilConditionHandler::updateCondition | ( | $ | a_id | ) |
update condition
Definition at line 476 of file class.ilConditionHandler.php.
References $res, getOperator(), getReferenceHandlingType(), getTargetRefId(), and getValue().
{
global $ilDB;
$query = "UPDATE conditions SET ".
"target_ref_id = ".$ilDB->quote($this->getTargetRefId()).", ".
"operator = ".$ilDB->quote($this->getOperator()).", ".
"value = ".$ilDB->quote($this->getValue()).", ".
"ref_handling = ".$this->db->quote($this->getReferenceHandlingType())." ".
"WHERE id = ".$ilDB->quote($a_id);
$res = $this->db->query($query);
return true;
}
Here is the call graph for this function:| ilConditionHandler::validate | ( | ) |
Definition at line 724 of file class.ilConditionHandler.php.
References $res, checkCircle(), ilObjectFactory::getInstanceByRefId(), getTargetRefId(), getTriggerRefId(), and setErrorMessage().
Referenced by storeCondition().
{
global $ilDB;
// check if obj_id is already assigned
$trigger_obj =& ilObjectFactory::getInstanceByRefId($this->getTriggerRefId());
$target_obj =& ilObjectFactory::getInstanceByRefId($this->getTargetRefId());
$query = "SELECT * FROM conditions WHERE ".
"trigger_ref_id = ".$ilDB->quote($trigger_obj->getId())." ".
"AND target_ref_id = ".$ilDB->quote($target_obj->getId());
$res = $this->db->query($query);
if($res->numRows() > 1)
{
$this->setErrorMessage($this->lng->txt('condition_already_assigned'));
unset($trigger_obj);
unset($target_obj);
return false;
}
// check for circle
$this->target_obj_id = $target_obj->getId();
if($this->checkCircle($this->getTargetRefId(),$target_obj->getId()))
{
$this->setErrorMessage($this->lng->txt('condition_circle_created'));
unset($trigger_obj);
unset($target_obj);
return false;
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilConditionHandler::$conditions |
Definition at line 107 of file class.ilConditionHandler.php.
Referenced by _adjustMovedObjectConditions(), _getConditionsOfTarget(), and _getConditionsOfTrigger().
| ilConditionHandler::$db |
Definition at line 91 of file class.ilConditionHandler.php.
| ilConditionHandler::$error_message |
Definition at line 95 of file class.ilConditionHandler.php.
| ilConditionHandler::$lng |
Definition at line 92 of file class.ilConditionHandler.php.
Referenced by ilConditionHandler().
| ilConditionHandler::$operator |
Definition at line 103 of file class.ilConditionHandler.php.
| ilConditionHandler::$target_obj_id |
Definition at line 97 of file class.ilConditionHandler.php.
| ilConditionHandler::$target_ref_id |
Definition at line 98 of file class.ilConditionHandler.php.
| ilConditionHandler::$target_type |
Definition at line 99 of file class.ilConditionHandler.php.
| ilConditionHandler::$trigger_obj_id |
Definition at line 100 of file class.ilConditionHandler.php.
| ilConditionHandler::$trigger_ref_id |
Definition at line 101 of file class.ilConditionHandler.php.
| ilConditionHandler::$trigger_type |
Definition at line 102 of file class.ilConditionHandler.php.
| ilConditionHandler::$validation |
Definition at line 105 of file class.ilConditionHandler.php.
| ilConditionHandler::$value |
Definition at line 104 of file class.ilConditionHandler.php.
| const ilConditionHandler::SHARED_CONDITIONS = 0 |
Definition at line 89 of file class.ilConditionHandler.php.
Referenced by ilConditionHandlerInterface::initFormCondition().
| const ilConditionHandler::UNIQUE_CONDITIONS = 1 |
Definition at line 88 of file class.ilConditionHandler.php.
Referenced by ilConditionHandlerInterface::assign(), ilConditionHandlerInterface::initFormCondition(), and ilConditionHandlerInterface::updateCondition().
1.7.1