Public Member Functions | Data Fields

ilConditionHandlerInterface Class Reference

Public Member Functions

 ilConditionHandlerInterface (&$gui_obj, $a_ref_id=null)
 setBackButtons ($a_btn_arr)
 getBackButtons ()
executeCommand ()
 setAutomaticValidation ($a_status)
 getAutomaticValidation ()
 setTargetId ($a_target_id)
 set target id
 getTargetId ()
 get target id
 setTargetRefId ($a_target_ref_id)
 set target ref id
 getTargetRefId ()
 get target ref id
 setTargetType ($a_target_type)
 set target type
 getTargetType ()
 get target type
 setTargetTitle ($a_target_title)
 set target title
 getTargetTitle ()
 get target title
 chi_init (&$chi_target_obj, $a_ref_id=null)
 listConditions ()
 get conditioni list
 delete ()
 selector ()
 add ()
 assign ()
 assign new trigger condition to target
 chi_update ()
 __getConditionsOfTarget ()
 __showButtons ()

Data Fields

 $ctrl = null
 $lng
 $tpl
 $tree
 $ch_obj
 $target_obj
 $client_obj
 $target_id
 $target_type
 $target_title
 $target_ref_id
 $automatic_validation = true

Detailed Description

Definition at line 37 of file class.ilConditionHandlerInterface.php.


Member Function Documentation

ilConditionHandlerInterface::__getConditionsOfTarget (  ) 

Definition at line 483 of file class.ilConditionHandlerInterface.php.

References ilConditionHandler::_getConditionsOfTarget(), getTargetId(), and getTargetType().

Referenced by chi_update(), and listConditions().

        {
                include_once './classes/class.ilConditionHandler.php';

                foreach(ilConditionHandler::_getConditionsOfTarget($this->getTargetId(), $this->getTargetType()) as $condition)
                {
                        if($condition['operator'] == 'not_member')
                        {
                                continue;
                        }
                        else
                        {
                                $cond[] = $condition;
                        }
                }
                return $cond ? $cond : array();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilConditionHandlerInterface::__showButtons (  ) 

Definition at line 501 of file class.ilConditionHandlerInterface.php.

References getBackButtons().

Referenced by add(), listConditions(), and selector().

        {
                if(!$this->getBackButtons())
                {
                        return false;
                }

                $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
                foreach($this->getBackButtons() as $name => $link)
                {
                        $this->tpl->setCurrentBlock("btn_cell");
                        $this->tpl->setVariable("BTN_LINK",$link);
                        $this->tpl->setVariable("BTN_TXT",$this->lng->txt($name));
                        $this->tpl->parseCurrentBlock();
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilConditionHandlerInterface::add (  ) 

Definition at line 361 of file class.ilConditionHandlerInterface.php.

References $_GET, $ch_obj, __showButtons(), ilUtil::formSelect(), ilUtil::getImagePath(), ilObjectFactory::getInstanceByRefId(), and getTargetType().

Referenced by assign().

        {
                // TODO: ONLY FOR REFERENCED OBJECTS
                $tmp_source_obj =& ilObjectFactory::getInstanceByRefId((int) $_GET['source_id']);

                include_once "./classes/class.ilConditionHandler.php";

                $ch_obj =& new ilConditionHandler();
                
                $operators[] = $this->lng->txt('condition_select_one');
                foreach($ch_obj->getOperatorsByTargetType($tmp_source_obj->getType()) as $operator)
                {
                        $operators[$operator] = $this->lng->txt('condition_'.$operator);
                } 

                $this->tpl->addBlockFile('ADM_CONTENT','adm_content','tpl.condition_handler_add.html');

                $this->__showButtons();

                // does not work in the moment
                #this->tpl->setCurrentBlock("btn_cell");
                #this->tpl->setVariable("BTN_LINK",$this->ctrl->getLinkTarget($this,'selector'));
                #this->tpl->setVariable("BTN_TXT",$this->lng->txt('new_selection'));
                #this->tpl->parseCurrentBlock();

                $this->ctrl->setParameter($this,'source_id',(int) $_GET['source_id']);
                $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $this->tpl->setVariable("CSS_TABLE",'std');
                $this->tpl->setVariable("WIDTH",'50%');
                $this->tpl->setVariable("TBL_TITLE_IMG",ilUtil::getImagePath('icon_'.$this->getTargetType().'.gif'));
                $this->tpl->setVariable("TBL_TITLE_ALT",$this->lng->txt('obj_',$this->getTargetType()));
                

                $this->tpl->setVariable("CONDITION_SELECT",ilUtil::formSelect('',
                                                                                                                                          "operator",
                                                                                                                                          $operators,
                                                                                                                                          false,
                                                                                                                                          true));

                $title = $this->lng->txt('add_condition').' ('.$tmp_source_obj->getTitle().')';
                unset($tmp_source_obj);

                $this->tpl->setVariable("TBL_TITLE",$title);
                
                $this->tpl->setVariable("TXT_ADD",$this->lng->txt('add_condition'));
                $this->tpl->setVariable("CMD_ADD",'assign');

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilConditionHandlerInterface::assign (  ) 

assign new trigger condition to target

Definition at line 415 of file class.ilConditionHandlerInterface.php.

References $_GET, $_POST, add(), getAutomaticValidation(), ilObjectFactory::getInstanceByRefId(), getTargetId(), getTargetRefId(), getTargetType(), listConditions(), and sendInfo().

        {
                if(!isset($_GET['source_id']))
                {
                        echo "class.ilConditionHandlerInterface: no source_id given";

                        return false;
                }
                if(!strlen($_POST['operator']))
                {
                        sendInfo($this->lng->txt('no_operator_selected'));
                        $this->add();

                        return false;
                }


                $this->ch_obj->setTargetRefId($this->getTargetRefId());
                $this->ch_obj->setTargetObjId($this->getTargetId());
                $this->ch_obj->setTargetType($this->getTargetType());
                
                // this has to be changed, if non referenced trigger are implemted
                if(!$trigger_obj =& ilObjectFactory::getInstanceByRefId((int) $_GET['source_id'],false))
                {
                        echo 'ilConditionHandler: Trigger object does not exist';
                }
                $this->ch_obj->setTriggerRefId($trigger_obj->getRefId());
                $this->ch_obj->setTriggerObjId($trigger_obj->getId());
                $this->ch_obj->setTriggerType($trigger_obj->getType());
                $this->ch_obj->setOperator($_POST['operator']);
                $this->ch_obj->setValue('');

                $this->ch_obj->enableAutomaticValidation($this->getAutomaticValidation());
                if(!$this->ch_obj->storeCondition())
                {
                        sendInfo($this->ch_obj->getErrorMessage());
                }
                else
                {
                        sendInfo($this->lng->txt('added_new_condition'));
                }

                $this->listConditions();

                return true;
        }

Here is the call graph for this function:

ilConditionHandlerInterface::chi_init ( &$  chi_target_obj,
a_ref_id = null 
)

Definition at line 189 of file class.ilConditionHandlerInterface.php.

References ilObjectFactory::getInstanceByRefId().

        {
                echo 'deprecated';
                
                include_once "./classes/class.ilConditionHandler.php";

                $this->ch_obj =& new ilConditionHandler();

                if($a_ref_id)
                {
                        $this->target_obj =& ilObjectFactory::getInstanceByRefId($a_ref_id);
                }
                else
                {
                        $this->target_obj =& $this->object;
                }

                return true;
        }

Here is the call graph for this function:

ilConditionHandlerInterface::chi_update (  ) 

Definition at line 462 of file class.ilConditionHandlerInterface.php.

References $_POST, __getConditionsOfTarget(), and sendInfo().

        {
                #if(in_array('',$_POST['operator']))
                #{
                #       sendInfo($this->lng->txt('select_one_operator'));

                #       return false;
                #}
                foreach($this->__getConditionsOfTarget() as $condition)
                {
                        $this->ch_obj->setOperator($_POST['operator'][$condition["id"]]);
                        $this->ch_obj->setValue($_POST['value'][$condition["id"]]);
                        $this->ch_obj->updateCondition($condition['id']);

                }
                sendInfo($this->lng->txt('conditions_updated'));
                
                $this->ctrl->returnToParent($this);

                return true;
        }

Here is the call graph for this function:

ilConditionHandlerInterface::delete (  ) 

Definition at line 313 of file class.ilConditionHandlerInterface.php.

References $_POST, listConditions(), and sendInfo().

        {
                if(!count($_POST['conditions']))
                {
                        sendInfo('no_condition_selected');

                        return true;
                }

                foreach($_POST['conditions'] as $condition_id)
                {
                        $this->ch_obj->deleteCondition($condition_id);
                }
                sendInfo($this->lng->txt('condition_deleted'));
                $this->listConditions();

                return true;
        }

Here is the call graph for this function:

& ilConditionHandlerInterface::executeCommand (  ) 

Definition at line 99 of file class.ilConditionHandlerInterface.php.

References $cmd.

        {
                $next_class = $this->ctrl->getNextClass($this);
                $cmd = $this->ctrl->getCmd();
                switch ($next_class)
                {
                        default:
                                if (empty($cmd))
                                {
                                        $cmd = "view";
                                }
                                $this->$cmd();
                                break;
                }
        }

ilConditionHandlerInterface::getAutomaticValidation (  ) 

Definition at line 119 of file class.ilConditionHandlerInterface.php.

Referenced by assign().

        {
                return $this->automatic_validation;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::getBackButtons (  ) 

Definition at line 94 of file class.ilConditionHandlerInterface.php.

References $_SESSION.

Referenced by __showButtons().

        {
                return $_SESSION['precon_btn'] ? $_SESSION['precon_btn'] : array();
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::getTargetId (  ) 

get target id

Definition at line 136 of file class.ilConditionHandlerInterface.php.

Referenced by __getConditionsOfTarget(), and assign().

        {
                return $this->target_id;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::getTargetRefId (  ) 

get target ref id

Definition at line 152 of file class.ilConditionHandlerInterface.php.

Referenced by assign(), listConditions(), and selector().

        {
                return $this->target_ref_id;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::getTargetTitle (  ) 

get target title

Definition at line 184 of file class.ilConditionHandlerInterface.php.

Referenced by listConditions().

        {
                return $this->target_title;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::getTargetType (  ) 

get target type

Definition at line 168 of file class.ilConditionHandlerInterface.php.

Referenced by __getConditionsOfTarget(), add(), and assign().

        {
                return $this->target_type;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::ilConditionHandlerInterface ( &$  gui_obj,
a_ref_id = null 
)

Definition at line 55 of file class.ilConditionHandlerInterface.php.

References $ilCtrl, $lng, $tpl, $tree, ilObjectFactory::getInstanceByRefId(), setTargetId(), setTargetRefId(), setTargetTitle(), and setTargetType().

        {
                global $lng,$tpl,$tree,$ilCtrl;

                include_once "./classes/class.ilConditionHandler.php";

                $this->ch_obj =& new ilConditionHandler();

                $this->ctrl =& $ilCtrl;
                $this->gui_obj =& $gui_obj;
                $this->lng =& $lng;
                $this->tpl =& $tpl;
                $this->tree =& $tree;
                
                if($a_ref_id)
                {
                        $this->target_obj =& ilObjectFactory::getInstanceByRefId($a_ref_id);
                }
                else
                {
                        $this->target_obj =& $this->gui_obj->object;
                }

                // this only works for ilObject derived objects (other objects
                // should call set() methods manually   
                if (is_object($this->target_obj))
                {
                        $this->setTargetId($this->target_obj->getId());
                        $this->setTargetRefId($this->target_obj->getRefId());
                        $this->setTargetType($this->target_obj->getType());
                        $this->setTargetTitle($this->target_obj->getTitle());
                }
                
        }

Here is the call graph for this function:

ilConditionHandlerInterface::listConditions (  ) 

get conditioni list

Definition at line 212 of file class.ilConditionHandlerInterface.php.

References $_GET, $counter, $rbacsystem, $tbl, $tpl, __getConditionsOfTarget(), __showButtons(), ilUtil::formCheckbox(), ilUtil::getImagePath(), ilObjectFactory::getInstanceByRefId(), getTargetRefId(), getTargetTitle(), and ilUtil::switchColor().

Referenced by assign(), and delete().

        {
                global $rbacsystem;

                $this->lng->loadLanguageModule('crs');

                $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.condition_handler_edit.html');

                $this->__showButtons();

                $tpl =& new ilTemplate("tpl.table.html", true, true);


                $tpl->setCurrentBlock("tbl_form_header");
                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));

                $tpl->setVariable("WIDTH",'width="60%"');
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_row");
                $tpl->setVariable("COLUMN_COUNTS",4);
                $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));

                if(count($conditions = $this->__getConditionsOfTarget()))
                {

                        $tpl->setCurrentBlock("tbl_action_btn");
                        $tpl->setVariable("BTN_NAME","delete");
                        $tpl->setVariable("BTN_VALUE",$this->lng->txt("delete"));
                        $tpl->parseCurrentBlock();

                }

                $tpl->setCurrentBlock("plain_button");
                $tpl->setVariable("PBTN_NAME","selector");
                $tpl->setVariable("PBTN_VALUE",$this->lng->txt("add_condition"));
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_row");
                $tpl->setVariable("TPLPATH",$this->tpl->tplPath);
                $tpl->parseCurrentBlock();

                $tpl->setCurrentBlock("tbl_action_row");

                $tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.condition_handler_row.html");

                $counter = 0;
                #foreach(ilConditionHandler::_getConditionsOfTarget($this->getTargetId(), $this->getTargetType()) as $condition)
                foreach($conditions as $condition)
                {
                        $tmp_obj =& ilObjectFactory::getInstanceByRefId($condition['trigger_ref_id']);

                        $tpl->setCurrentBlock("tbl_content");
                        $tpl->setVariable("CHECKBOX",ilUtil::formCheckbox(0,"conditions[]",$condition['id']));
                        $tpl->setVariable("OBJ_TITLE",$tmp_obj->getTitle());
                        $tpl->setVariable("OBJ_DESCRIPTION",$tmp_obj->getDescription());
                        $tpl->setVariable("ROWCOL", ilUtil::switchColor($counter++,"tblrow2","tblrow1"));

                        $tpl->setVariable("OBJ_CONDITION",$this->lng->txt('condition_'.$condition['operator']));
                        $tpl->setVariable("OBJ_CONDITION_VALUE",$condition['value'] ? $condition['value'] : $this->lng->txt('crs_not_available')); 

                        $tpl->parseCurrentBlock();
                }


                // create table
                include_once './classes/class.ilTableGUI.php';

                $tbl =& new ilTableGUI();
                $tbl->setStyle('table','std');

                // title & header columns
                $tbl->setTitle($this->getTargetTitle()." ".$this->lng->txt("preconditions"),"icon_".$this->getTargetType().".gif",
                                           $this->lng->txt("preconditions"));

                $tbl->setHeaderNames(array("",$this->lng->txt("title"),$this->lng->txt("condition"),
                                                                   $this->lng->txt("value")));
                $tbl->setHeaderVars(array("","title","condition","value"), 
                                                        array("ref_id" => $this->getTargetRefId(),
                                                                  "cmdClass" => "ilobjcoursegui",
                                                                  "cmdNode" => $_GET["cmdNode"],
                                                                  "cmd" => "cci_edit"));
                $tbl->setColumnWidth(array("1%","40%","30%","30%"));

                $tbl->setLimit($_GET["limit"]);
                $tbl->setOffset($_GET["offset"]);
                $tbl->setMaxCount(10);

                // footer
                $tbl->disable("footer");
                $tbl->disable('sort');

                // render table
                $tbl->setTemplate($tpl);
                $tbl->render();

                $this->tpl->setVariable("PRECONDITION_TABLE",$tpl->get());

                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilConditionHandlerInterface::selector (  ) 

Definition at line 332 of file class.ilConditionHandlerInterface.php.

References $_GET, $exp, __showButtons(), getTargetRefId(), and sendInfo().

        {
                include_once ("classes/class.ilConditionSelector.php");

                $this->tpl->addBlockFile('ADM_CONTENT', "adm_content", "tpl.condition_selector.html");

                $this->__showButtons();

                sendInfo($this->lng->txt("condition_select_object"));

                $exp = new ilConditionSelector($this->ctrl->getLinkTarget($this,'copySelector'));
                $exp->setExpand($_GET["condition_selector_expand"] ? $_GET["condition_selector_expand"] : $this->tree->readRootId());
                $exp->setExpandTarget($this->ctrl->getLinkTarget($this,'selector'));
                $exp->setTargetGet("ref_id");
                $exp->setRefId($this->getTargetRefId());

                $exp->addFilter('crs');
                $exp->addFilter('tst');

                $exp->setSelectableTypes($this->ch_obj->getTriggerTypes());
                $exp->setControlClass($this);
                // build html-output
                $exp->setOutput(0);

                $this->tpl->setCurrentBlock("adm_content");
                $this->tpl->setVariable("EXPLORER",$exp->getOutput());
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

ilConditionHandlerInterface::setAutomaticValidation ( a_status  ) 

Definition at line 115 of file class.ilConditionHandlerInterface.php.

        {
                $this->automatic_validation = $a_status;
        }

ilConditionHandlerInterface::setBackButtons ( a_btn_arr  ) 

Definition at line 90 of file class.ilConditionHandlerInterface.php.

References $_SESSION.

        {
                $_SESSION['precon_btn'] = $a_btn_arr;
        }

ilConditionHandlerInterface::setTargetId ( a_target_id  ) 

set target id

Definition at line 128 of file class.ilConditionHandlerInterface.php.

Referenced by ilConditionHandlerInterface().

        {
                $this->target_id = $a_target_id;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::setTargetRefId ( a_target_ref_id  ) 

set target ref id

Definition at line 144 of file class.ilConditionHandlerInterface.php.

Referenced by ilConditionHandlerInterface().

        {
                $this->target_ref_id = $a_target_ref_id;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::setTargetTitle ( a_target_title  ) 

set target title

Definition at line 176 of file class.ilConditionHandlerInterface.php.

Referenced by ilConditionHandlerInterface().

        {
                $this->target_title = $a_target_title;
        }

Here is the caller graph for this function:

ilConditionHandlerInterface::setTargetType ( a_target_type  ) 

set target type

Definition at line 160 of file class.ilConditionHandlerInterface.php.

Referenced by ilConditionHandlerInterface().

        {
                $this->target_type = $a_target_type;
        }

Here is the caller graph for this function:


Field Documentation

ilConditionHandlerInterface::$automatic_validation = true

Definition at line 53 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$ch_obj

Definition at line 45 of file class.ilConditionHandlerInterface.php.

Referenced by add().

ilConditionHandlerInterface::$client_obj

Definition at line 47 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$ctrl = null

Definition at line 39 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$lng

Definition at line 41 of file class.ilConditionHandlerInterface.php.

Referenced by ilConditionHandlerInterface().

ilConditionHandlerInterface::$target_id

Definition at line 48 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$target_obj

Definition at line 46 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$target_ref_id

Definition at line 51 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$target_title

Definition at line 50 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$target_type

Definition at line 49 of file class.ilConditionHandlerInterface.php.

ilConditionHandlerInterface::$tpl
ilConditionHandlerInterface::$tree

Definition at line 43 of file class.ilConditionHandlerInterface.php.

Referenced by ilConditionHandlerInterface().


The documentation for this class was generated from the following file: