ILIAS  Release_4_2_x_branch Revision 61807
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilCourseObjectivesGUI Class Reference

class ilobjcourseobjectivesgui More...

+ Inheritance diagram for ilCourseObjectivesGUI:
+ Collaboration diagram for ilCourseObjectivesGUI:

Public Member Functions

 ilCourseObjectivesGUI ($a_course_id)
executeCommand ()
 execute command
 askDeleteObjective ()
 deleteObjectives ()
 __initCourseObject ()
 __initObjectivesObject ($a_id=0)
 __initLMObject ($a_objective_id=0)
 __initQuestionObject ($a_objective_id=0)
 setSubTabs ()
 set sub tabs
 create ()
 create objective

Data Fields

const MODE_UNDEFINED = 0
const MODE_CREATE = 1
const MODE_UPDATE = 2
 $ctrl
 $ilias
 $ilErr
 $lng
 $tpl
 $course_obj
 $course_id

Protected Member Functions

 listObjectives ()
 list objectives
 saveSorting ()
 save position
 questionOverview ()
 question overiew
 saveQuestionOverview ()
 update question overview
 edit ()
 edit objective
 save ()
 save
 materialAssignment ()
 material assignment
 updateMaterialAssignment ()
 update material assignment
 selfAssessmentAssignment ()
 self assessment assignemnt
 updateSelfAssessmentAssignment ()
 update self assessment assignment
 selfAssessmentLimits ()
 self assessment limits
 updateSelfAssessmentLimits ()
 update self assessment limits
 finalTestAssignment ()
 final test assignment
 updateFinalTestAssignment ()
 update self assessment assignment
 finalTestLimits ()
 self assessment limits
 updateFinalTestLimits ()
 update self assessment limits
 initFormLimits ($a_mode)
 init limit form
 initFormTitle ($a_mode, $a_step_number)
 init form title
 initWizard ($a_step_number)
 init wizard

Detailed Description

class ilobjcourseobjectivesgui

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e
Version
Id:
class.ilCourseObjectivesGUI.php 38400 2012-11-26 15:39:18Z jluetzen

Definition at line 34 of file class.ilCourseObjectivesGUI.php.

Member Function Documentation

ilCourseObjectivesGUI::__initCourseObject ( )

Definition at line 354 of file class.ilCourseObjectivesGUI.php.

References exit, and ilObjectFactory\getInstanceByRefId().

Referenced by ilCourseObjectivesGUI().

{
if(!$this->course_obj =& ilObjectFactory::getInstanceByRefId($this->course_id,false))
{
$this->ilErr->raiseError("ilCourseObjectivesGUI: cannot create course object",$this->ilErr->MESSAGE);
}
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::__initLMObject (   $a_objective_id = 0)

Definition at line 369 of file class.ilCourseObjectivesGUI.php.

Referenced by updateMaterialAssignment().

{
include_once './Modules/Course/classes/class.ilCourseObjectiveMaterials.php';
$this->objectives_lm_obj =& new ilCourseObjectiveMaterials($a_objective_id);
return true;
}

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::__initObjectivesObject (   $a_id = 0)

Definition at line 364 of file class.ilCourseObjectivesGUI.php.

Referenced by askDeleteObjective(), and deleteObjectives().

{
return $this->objectives_obj = new ilCourseObjective($this->course_obj,$a_id);
}

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::__initQuestionObject (   $a_objective_id = 0)

Definition at line 377 of file class.ilCourseObjectivesGUI.php.

Referenced by create(), edit(), finalTestAssignment(), finalTestLimits(), materialAssignment(), selfAssessmentAssignment(), selfAssessmentLimits(), updateFinalTestAssignment(), updateFinalTestLimits(), updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

{
include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
$this->objectives_qst_obj =& new ilCourseObjectiveQuestion($a_objective_id);
return true;
}

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::askDeleteObjective ( )

Definition at line 148 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_POST, $_SESSION, $tpl, __initObjectivesObject(), ilUtil\getImagePath(), listObjectives(), ilUtil\sendFailure(), ilUtil\sendQuestion(), and ilUtil\switchColor().

{
global $rbacsystem;
// MINIMUM ACCESS LEVEL = 'write'
if(!$rbacsystem->checkAccess("write", $this->course_obj->getRefId()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
}
if(!count($_POST['objective']))
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
$this->listObjectives();
return true;
}
$this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.crs_objectives.html",'Modules/Course');
ilUtil::sendQuestion($this->lng->txt('crs_delete_objectve_sure'));
$tpl =& new ilTemplate("tpl.table.html", true, true);
$tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.crs_objectives_delete_row.html",'Modules/Course');
$counter = 0;
foreach($_POST['objective'] as $objective_id)
{
$objective_obj = $this->__initObjectivesObject($objective_id);
$tpl->setCurrentBlock("tbl_content");
$tpl->setVariable("ROWCOL",ilUtil::switchColor(++$counter,"tblrow2","tblrow1"));
$tpl->setVariable("TITLE",$objective_obj->getTitle());
$tpl->setVariable("DESCRIPTION",$objective_obj->getDescription());
$tpl->parseCurrentBlock();
}
$tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
// Show action row
$tpl->setCurrentBlock("tbl_action_btn");
$tpl->setVariable("BTN_NAME",'deleteObjectives');
$tpl->setVariable("BTN_VALUE",$this->lng->txt('delete'));
$tpl->parseCurrentBlock();
$tpl->setCurrentBlock("tbl_action_btn");
$tpl->setVariable("BTN_NAME",'listObjectives');
$tpl->setVariable("BTN_VALUE",$this->lng->txt('cancel'));
$tpl->parseCurrentBlock();
$tpl->setCurrentBlock("tbl_action_row");
$tpl->setVariable("COLUMN_COUNTS",1);
$tpl->setVariable("IMG_ARROW",ilUtil::getImagePath('arrow_downright.gif'));
$tpl->parseCurrentBlock();
// create table
$tbl = new ilTableGUI();
$tbl->setStyle('table','std');
// title & header columns
$tbl->setTitle($this->lng->txt("crs_objectives"),"icon_lobj.gif",$this->lng->txt("crs_objectives"));
$tbl->setHeaderNames(array($this->lng->txt("title")));
$tbl->setHeaderVars(array("title"),
array("ref_id" => $this->course_obj->getRefId(),
"cmdClass" => "ilcourseobjectivesgui",
"cmdNode" => $_GET["cmdNode"]));
$tbl->setColumnWidth(array("50%"));
$tbl->setLimit($_GET["limit"]);
$tbl->setOffset($_GET["offset"]);
$tbl->setMaxCount(count($_POST['objective']));
// footer
$tbl->disable("footer");
$tbl->disable('sort');
// render table
$tbl->setTemplate($tpl);
$tbl->render();
$this->tpl->setVariable("OBJECTIVES_TABLE", $tpl->get());
// Save marked objectives
$_SESSION['crs_delete_objectives'] = $_POST['objective'];
return true;
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::create ( )

create objective

public

Parameters
@return

Definition at line 419 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_SESSION, $tpl, __initQuestionObject(), initFormTitle(), initWizard(), and MODE_CREATE.

Referenced by save().

{
global $tpl;
$_SESSION['objective_mode'] = self::MODE_CREATE;
$this->ctrl->saveParameter($this,'objective_id');
if(!is_object($this->objective))
{
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
}
$this->__initQuestionObject((int) $_GET['objective_id']);
$w_tpl = $this->initWizard(1);
$this->initFormTitle('create',1);
$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
$tpl->setContent($w_tpl->get());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::deleteObjectives ( )

Definition at line 238 of file class.ilCourseObjectivesGUI.php.

References $_SESSION, __initObjectivesObject(), listObjectives(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

{
global $rbacsystem;
// MINIMUM ACCESS LEVEL = 'write'
if(!$rbacsystem->checkAccess("write", $this->course_obj->getRefId()))
{
$this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
}
if(!count($_SESSION['crs_delete_objectives']))
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'));
$this->listObjectives();
return true;
}
foreach($_SESSION['crs_delete_objectives'] as $objective_id)
{
$objective_obj =& $this->__initObjectivesObject($objective_id);
$objective_obj->delete();
}
ilUtil::sendSuccess($this->lng->txt('crs_objectives_deleted'));
$this->listObjectives();
return true;
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::edit ( )
protected

edit objective

protected

Returns

Definition at line 445 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_SESSION, $tpl, __initQuestionObject(), initFormTitle(), initWizard(), MODE_UPDATE, and ilUtil\sendFailure().

{
global $tpl;
$_SESSION['objective_mode'] = self::MODE_UPDATE;
$this->ctrl->saveParameter($this,'objective_id');
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
if(!is_object($this->objective))
{
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
}
$this->__initQuestionObject((int) $_GET['objective_id']);
$w_tpl = $this->initWizard(1);
$this->initFormTitle('create',1);
$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
$tpl->setContent($w_tpl->get());
}

+ Here is the call graph for this function:

& ilCourseObjectivesGUI::executeCommand ( )

execute command

Definition at line 73 of file class.ilCourseObjectivesGUI.php.

References $cmd, and setSubTabs().

{
global $ilTabs;
$ilTabs->setTabActive('crs_objectives');
$cmd = $this->ctrl->getCmd();
if (!$cmd = $this->ctrl->getCmd())
{
$cmd = "list";
}
$this->setSubTabs();
$this->$cmd();
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::finalTestAssignment ( )
protected

final test assignment

protected

Parameters
@return

Definition at line 809 of file class.ilCourseObjectivesGUI.php.

References $_GET, $ilErr, $tpl, __initQuestionObject(), ilCourseObjectiveQuestion\_getAssignableTests(), initWizard(), ilUtil\sendFailure(), and ilCourseObjectiveQuestion\TYPE_FINAL_TEST.

Referenced by updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

{
global $ilAccess,$ilErr,$tpl;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->ctrl->saveParameter($this,'objective_id');
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionAssignmentTableGUI.php');
$this->course_obj,
(int) $_GET['objective_id'],
$table->setTitle($this->lng->txt('crs_objective_wiz_final'),
'icon_lobj.gif',$this->lng->txt('crs_objective'));
$table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
$this->__initQuestionObject((int) $_GET['objective_id']);
$w_tpl = $this->initWizard(5);
$w_tpl->setVariable('WIZ_CONTENT',$table->getHTML());
$tpl->setContent($w_tpl->get());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::finalTestLimits ( )
protected

self assessment limits

protected

Parameters
@return

Definition at line 913 of file class.ilCourseObjectivesGUI.php.

References $_GET, $ilErr, $tpl, __initQuestionObject(), initFormLimits(), initWizard(), and ilUtil\sendFailure().

Referenced by updateFinalTestAssignment(), and updateFinalTestLimits().

{
global $ilAccess,$ilErr,$tpl;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->ctrl->saveParameter($this,'objective_id');
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
$this->__initQuestionObject((int) $_GET['objective_id']);
$w_tpl = $this->initWizard(6);
$this->initFormLimits('final');
$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
$tpl->setContent($w_tpl->get());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::ilCourseObjectivesGUI (   $a_course_id)

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

References $ilCtrl, $ilErr, $ilias, $lng, $tpl, and __initCourseObject().

{
include_once './Modules/Course/classes/class.ilCourseObjective.php';
global $ilCtrl,$lng,$ilErr,$ilias,$tpl,$tree,$ilTabs;
$this->ctrl =& $ilCtrl;
$this->ctrl->saveParameter($this,array("ref_id"));
$this->ilErr =& $ilErr;
$this->lng =& $lng;
$this->lng->loadLanguageModule('crs');
$this->tpl =& $tpl;
$this->tree =& $tree;
$this->tabs_gui =& $ilTabs;
$this->course_id = $a_course_id;
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::initFormLimits (   $a_mode)
protected

init limit form

protected

Parameters
stringmode selfAssessment or final
Returns

Definition at line 986 of file class.ilCourseObjectivesGUI.php.

References $test, $tests, $tpl, ilObject\_lookupDescription(), ilObject\_lookupTitle(), ilUtil\getImagePath(), ilUtil\getTypeIconPath(), ilCustomInputGUI\setHtml(), and ilTextInputGUI\setValue().

Referenced by finalTestLimits(), and selfAssessmentLimits().

{
if(!is_object($this->form))
{
include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
$this->form = new ilPropertyFormGUI();
}
$this->form->setFormAction($this->ctrl->getFormAction($this));
$this->form->setTableWidth('100%');
$this->form->setTitleIcon(ilUtil::getImagePath('icon_lobj.gif'),$this->lng->txt('crs_objective'));
switch($a_mode)
{
case 'selfAssessment':
$this->form->setTitle($this->lng->txt('crs_objective_wiz_self_limit'));
$this->form->addCommandButton('updateSelfAssessmentLimits',$this->lng->txt('crs_wiz_next'));
$this->form->addCommandButton('selfAssessmentAssignment',$this->lng->txt('crs_wiz_back'));
$tests = $this->objectives_qst_obj->getSelfAssessmentTests();
$max_points = $this->objectives_qst_obj->getSelfAssessmentPoints();
break;
case 'final':
$this->form->setTitle($this->lng->txt('crs_objective_wiz_final_limit'));
$this->form->addCommandButton('updateFinalTestLimits',$this->lng->txt('crs_wiz_next'));
$this->form->addCommandButton('finalTestAssignment',$this->lng->txt('crs_wiz_back'));
$tests = $this->objectives_qst_obj->getFinalTests();
$max_points = $this->objectives_qst_obj->getFinalTestPoints();
break;
}
$over = new ilCustomInputGUI($this->lng->txt('crs_objective_qst_summary'),'');
$tpl = new ilTemplate('tpl.crs_objective_qst_summary.html',true,true,'Modules/Course');
$limit = 0;
foreach($tests as $test)
{
$limit = $test['limit'];
foreach($this->objectives_qst_obj->getQuestionsOfTest($test['obj_id']) as $question)
{
$tpl->setCurrentBlock('qst');
$tpl->setVariable('QST_TITLE',$question['title']);
if(strlen($question['description']))
{
$tpl->setVariable('QST_DESCRIPTION',$question['description']);
}
$tpl->setVariable('QST_POINTS',$question['points'].' '.
$this->lng->txt('crs_objective_points'));
$tpl->parseCurrentBlock();
}
$tpl->setCurrentBlock('tst');
$tpl->setVariable('TST_TITLE',ilObject::_lookupTitle($test['obj_id']));
if($desc = ilObject::_lookupDescription($test['obj_id']))
{
$tpl->setVariable('TST_DESC',$desc);
}
$tpl->setVariable('TST_TYPE_IMG',ilUtil::getTypeIconPath('tst',$test['obj_id'],'tiny'));
$tpl->setVariable('TST_ALT_IMG',$this->lng->txt('obj_tst'));
$tpl->parseCurrentBlock();
}
$tpl->setVariable('TXT_ALL_POINTS',$this->lng->txt('crs_objective_all_points'));
$tpl->setVariable('TXT_POINTS',$this->lng->txt('crs_objective_points'));
$tpl->setVariable('POINTS',$max_points);
$over->setHtml($tpl->get());
$this->form->addItem($over);
$req = new ilTextInputGUI($this->lng->txt('crs_obj_required_points'),'limit');
$req->setValue($limit);
$req->setMaxLength(5);
$req->setSize(3);
$req->setRequired(true);
switch($a_mode)
{
case 'selfAssessment':
$req->setInfo($this->lng->txt('crs_obj_initial_req_info'));
break;
case 'final':
$req->setInfo($this->lng->txt('crs_obj_final_req_info'));
break;
}
$this->form->addItem($req);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::initFormTitle (   $a_mode,
  $a_step_number 
)
protected

init form title

protected

Returns

Definition at line 1089 of file class.ilCourseObjectivesGUI.php.

References $title, ilUtil\getImagePath(), and ilTextAreaInputGUI\setValue().

Referenced by create(), and edit().

{
if(!is_object($this->form))
{
include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
$this->form = new ilPropertyFormGUI();
}
$this->form->setFormAction($this->ctrl->getFormAction($this));
$this->form->setTitleIcon(ilUtil::getImagePath('icon_lobj.gif'),$this->lng->txt('crs_objective'));
switch($a_mode)
{
case 'create':
$this->form->setTitle($this->lng->txt('crs_objective_wiz_title'));
$this->form->addCommandButton('save',$this->lng->txt('crs_wiz_next'));
$this->form->addCommandButton('listObjectives',$this->lng->txt('cancel'));
break;
case 'update':
break;
}
$title = new ilTextInputGUI($this->lng->txt('title'),'title');
$title->setValue($this->objective->getTitle());
$title->setRequired(true);
$title->setSize(40);
$title->setMaxLength(70);
$this->form->addItem($title);
$desc = new ilTextAreaInputGUI($this->lng->txt('description'),'description');
$desc->setValue($this->objective->getDescription());
$desc->setCols(40);
$desc->setRows(5);
$this->form->addItem($desc);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::initWizard (   $a_step_number)
protected

init wizard

protected

Parameters
stringmode 'create' or 'edit'
Returns

Definition at line 1135 of file class.ilCourseObjectivesGUI.php.

References $_SESSION, $title, $tpl, and ilUtil\getImagePath().

Referenced by create(), edit(), finalTestAssignment(), finalTestLimits(), materialAssignment(), selfAssessmentAssignment(), and selfAssessmentLimits().

{
$options = array(
1 => $this->lng->txt('crs_objective_wiz_title'),
2 => $this->lng->txt('crs_objective_wiz_materials'),
3 => $this->lng->txt('crs_objective_wiz_self'),
4 => $this->lng->txt('crs_objective_wiz_self_limit'),
5 => $this->lng->txt('crs_objective_wiz_final'),
6 => $this->lng->txt('crs_objective_wiz_final_limit'));
$info = array(
1 => $this->lng->txt('crs_objective_wiz_title_info'),
2 => $this->lng->txt('crs_objective_wiz_materials_info'),
3 => $this->lng->txt('crs_objective_wiz_self_info'),
4 => $this->lng->txt('crs_objective_wiz_self_limit_info'),
5 => $this->lng->txt('crs_objective_wiz_final_info'),
6 => $this->lng->txt('crs_objective_wiz_final_limit_info'));
$links = array(
1 => $this->ctrl->getLinkTarget($this,'edit'),
2 => $this->ctrl->getLinkTarget($this,'materialAssignment'),
3 => $this->ctrl->getLinkTarget($this,'selfAssessmentAssignment'),
4 => $this->ctrl->getLinkTarget($this,'selfAssessmentLimits'),
5 => $this->ctrl->getLinkTarget($this,'finalTestAssignment'),
6 => $this->ctrl->getLinkTarget($this,'finalTestLimits'));
$tpl = new ilTemplate('tpl.objective_wizard.html',true,true,'Modules/Course');
if($_SESSION['objective_mode'] == self::MODE_CREATE or 1)
{
$tpl->setCurrentBlock('step_info');
if(is_object($this->objective) and strlen($this->objective->getTitle()))
{
$tpl->setVariable('STEP_SEPARATOR','-');
$tpl->setVariable('STEP_TITLE',$this->objective->getTitle());
}
$tpl->setVariable('STEP_INFO_STEP',$this->lng->txt('crs_objective_step'));
$tpl->setVariable('STEP_INFO_NUM',$a_step_number);
$tpl->setVariable('STEP_INFO_INFO',$info[$a_step_number]);
$tpl->parseCurrentBlock();
}
$tpl->setVariable('WIZ_IMG',ilUtil::getImagePath('icon_lobj.gif'));
$tpl->setVariable('WIZ_IMG_ALT',$this->lng->txt('crs_objectives'));
if($_SESSION['objective_mode'] == self::MODE_CREATE)
{
$tpl->setVariable('WIZ_NAV_TITLE',$this->lng->txt('crs_add_objective'));
}
else
{
$tpl->setVariable('WIZ_NAV_TITLE',$this->lng->txt('crs_update_objective'));
}
foreach($options as $step => $title)
{
if($_SESSION['objective_mode'] == self::MODE_UPDATE)
{
$hide_link = false;
if($step == 4 and !count($this->objectives_qst_obj->getSelfAssessmentQuestions()))
{
$hide_link = true;
}
if($step == 6 and !count($this->objectives_qst_obj->getFinalTestQuestions()))
{
$hide_link = true;
}
if(!$hide_link)
{
$tpl->setCurrentBlock('begin_link_option');
$tpl->setVariable('WIZ_OPTION_LINK',$links[$step]);
$tpl->parseCurrentBlock();
$tpl->touchBlock('end_link_option');
}
}
$tpl->setCurrentBlock('nav_option');
$tpl->setVariable('OPTION_CLASS',$step == $a_step_number ? 'option_value_details' : 'std');
$tpl->setVariable('WIZ_NUM',$step.'.');
$tpl->setVariable('WIZ_OPTION',$title);
$tpl->parseCurrentBlock();
}
return $tpl;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::listObjectives ( )
protected

list objectives

protected

Parameters
@return

Definition at line 98 of file class.ilCourseObjectivesGUI.php.

References $_SESSION, $ilErr, ilCourseObjective\_getObjectiveIds(), and MODE_UNDEFINED.

Referenced by askDeleteObjective(), deleteObjectives(), saveSorting(), and updateFinalTestLimits().

{
global $ilAccess,$ilErr,$ilObjDataCache,$ilToolbar;
$_SESSION['objective_mode'] = self::MODE_UNDEFINED;
if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
{
$this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
}
$this->tpl->addBlockFile('ADM_CONTENT','adm_content','tpl.crs_objectives.html','Modules/Course');
$ilToolbar->addButton($this->lng->txt('crs_add_objective'),
$this->ctrl->getLinkTarget($this, "'create"));
include_once('./Modules/Course/classes/class.ilCourseObjectivesTableGUI.php');
$table = new ilCourseObjectivesTableGUI($this,$this->course_obj);
$table->setTitle($this->lng->txt('crs_objectives'),'icon_lobj.gif',$this->lng->txt('crs_objectives'));
$table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId()));
$this->tpl->setVariable('OBJECTIVES_TABLE',$table->getHTML());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::materialAssignment ( )
protected

material assignment

protected

Returns

Definition at line 521 of file class.ilCourseObjectivesGUI.php.

References $_GET, $ilErr, $tpl, __initQuestionObject(), ilCourseObjectiveMaterials\_getAssignableMaterials(), initWizard(), and ilUtil\sendFailure().

{
global $ilAccess,$ilErr,$tpl;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->ctrl->saveParameter($this,'objective_id');
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
include_once('./Modules/Course/classes/class.ilCourseObjectiveMaterialAssignmentTableGUI.php');
$table = new ilCourseObjectiveMaterialAssignmentTableGUI($this,$this->course_obj,(int) $_GET['objective_id']);
$table->setTitle($this->lng->txt('crs_objective_wiz_materials'),
'icon_lobj.gif',$this->lng->txt('crs_objectives'));
include_once('Modules/Course/classes/class.ilCourseObjectiveMaterials.php');
$table->parse(ilCourseObjectiveMaterials::_getAssignableMaterials($this->course_obj->getRefId()));
$this->__initQuestionObject((int) $_GET['objective_id']);
$w_tpl = $this->initWizard(2);
$w_tpl->setVariable('WIZ_CONTENT',$table->getHTML());
$tpl->setContent($w_tpl->get());
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::questionOverview ( )
protected

question overiew

protected

Returns

Definition at line 273 of file class.ilCourseObjectivesGUI.php.

References $ilErr, and ilCourseObjective\_getObjectiveIds().

Referenced by saveQuestionOverview().

{
global $ilAccess,$ilErr,$ilTabs;
$ilTabs->setSubTabActive('crs_objective_overview_question_assignment');
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionsTableGUI.php');
$table = new ilCourseObjectiveQuestionsTableGUI($this,$this->course_obj);
$table->setTitle($this->lng->txt('crs_objectives_edit_question_assignments'),'icon_lobj.gif',$this->lng->txt('crs_objectives'));
$table->parse(ilCourseObjective::_getObjectiveIds($this->course_obj->getId()));
$this->tpl->setContent($table->getHTML());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::save ( )
protected

save

protected

Returns

Definition at line 477 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_POST, $ilErr, create(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilUtil\stripSlashes().

{
global $ilAccess,$ilErr;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
$this->objective->setTitle(ilUtil::stripSlashes($_POST['title']));
$this->objective->setDescription(ilUtil::stripSlashes($_POST['description']));
if(!$this->objective->validate())
{
ilUtil::sendFailure($this->lng->txt('crs_no_title_given'));
$this->create();
return false;
}
if(!$_GET['objective_id'])
{
$objective_id = $this->objective->add();
ilUtil::sendSuccess($this->lng->txt('crs_added_objective'),true);
}
else
{
$this->objective->update();
ilUtil::sendSuccess($this->lng->txt('crs_objective_modified'),true);
$objective_id = $_GET['objective_id'];
}
$this->ctrl->saveParameter($this,'objective_id');
$this->ctrl->setParameter($this,'objective_id',$objective_id);
$this->ctrl->redirect($this,'materialAssignment');
return true;
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::saveQuestionOverview ( )
protected

update question overview

protected

Returns

Definition at line 298 of file class.ilCourseObjectivesGUI.php.

References $_POST, $ilErr, ilCourseObjectiveQuestion\_updateTestLimits(), questionOverview(), ilUtil\sendFailure(), ilUtil\sendSuccess(), ilCourseObjectiveQuestion\TYPE_FINAL_TEST, and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

{
include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestion.php');
global $ilAccess,$ilErr;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
$error = false;
$_POST['self'] = $_POST['self'] ? $_POST['self'] : array();
$_POST['final'] = $_POST['final'] ? $_POST['final'] : array();
foreach($_POST['self'] as $objective_id => $limit)
{
$qst = new ilCourseObjectiveQuestion($objective_id);
$max_points = $qst->getSelfAssessmentPoints();
if($limit < 0 or $limit > $max_points)
{
ilUtil::sendFailure($this->lng->txt('crs_objective_limit_err'));
$this->questionOverview();
return false;
}
}
foreach($_POST['final'] as $objective_id => $limit)
{
$qst = new ilCourseObjectiveQuestion($objective_id);
$max_points = $qst->getFinalTestPoints();
if($limit < 0 or $limit > $max_points)
{
ilUtil::sendFailure($this->lng->txt('crs_objective_limit_err'));
$this->questionOverview();
return false;
}
}
foreach($_POST['self'] as $objective_id => $limit)
{
}
foreach($_POST['final'] as $objective_id => $limit)
{
}
ilUtil::sendSuccess($this->lng->txt('settings_saved'));
$this->questionOverview();
return true;
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::saveSorting ( )
protected

save position

protected

Returns

Definition at line 127 of file class.ilCourseObjectivesGUI.php.

References $_POST, $ilErr, listObjectives(), and ilUtil\sendSuccess().

{
global $ilAccess,$ilErr,$ilObjDataCache;
if(!$ilAccess->checkAccess("write",'',$this->course_obj->getRefId()))
{
$this->ilErr->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilErr->MESSAGE);
}
asort($_POST['position'],SORT_NUMERIC);
$counter = 1;
foreach($_POST['position'] as $objective_id => $position)
{
$objective = new ilCourseObjective($this->course_obj,$objective_id);
$objective->writePosition($counter++);
}
ilUtil::sendSuccess($this->lng->txt('crs_objective_saved_sorting'));
$this->listObjectives();
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::selfAssessmentAssignment ( )
protected

self assessment assignemnt

protected

Returns

Definition at line 615 of file class.ilCourseObjectivesGUI.php.

References $_GET, $ilErr, $tpl, __initQuestionObject(), ilCourseObjectiveQuestion\_getAssignableTests(), initWizard(), ilUtil\sendFailure(), and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

Referenced by updateMaterialAssignment(), and updateSelfAssessmentAssignment().

{
global $ilAccess,$ilErr,$tpl;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->ctrl->saveParameter($this,'objective_id');
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestionAssignmentTableGUI.php');
$this->course_obj,
(int) $_GET['objective_id'],
$table->setTitle($this->lng->txt('crs_objective_wiz_self'),
'icon_lobj.gif',$this->lng->txt('crs_objective'));
$table->parse(ilCourseObjectiveQuestion::_getAssignableTests($this->course_obj->getRefId()));
$this->__initQuestionObject((int) $_GET['objective_id']);
$w_tpl = $this->initWizard(3);
$w_tpl->setVariable('WIZ_CONTENT',$table->getHTML());
$tpl->setContent($w_tpl->get());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::selfAssessmentLimits ( )
protected

self assessment limits

protected

Parameters
@return

Definition at line 734 of file class.ilCourseObjectivesGUI.php.

References $_GET, $ilErr, $tpl, __initQuestionObject(), initFormLimits(), initWizard(), and ilUtil\sendFailure().

Referenced by updateSelfAssessmentAssignment(), and updateSelfAssessmentLimits().

{
global $ilAccess,$ilErr,$tpl;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->ctrl->saveParameter($this,'objective_id');
$this->objective = new ilCourseObjective($this->course_obj,(int) $_GET['objective_id']);
$this->__initQuestionObject((int) $_GET['objective_id']);
$w_tpl = $this->initWizard(4);
$this->initFormLimits('selfAssessment');
$w_tpl->setVariable('WIZ_CONTENT',$this->form->getHtml());
$tpl->setContent($w_tpl->get());
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::setSubTabs ( )

set sub tabs

Definition at line 388 of file class.ilCourseObjectivesGUI.php.

References ilCourseObjectiveQuestion\_hasTests().

Referenced by executeCommand().

{
global $ilTabs;
$ilTabs->addSubTabTarget("crs_objective_overview_objectives",
$this->ctrl->getLinkTarget($this, "listObjectives"),
array("listObjectives", "moveObjectiveUp", "moveObjectiveDown", "listAssignedLM"),
array(),
'',
true);
include_once('./Modules/Course/classes/class.ilCourseObjectiveQuestion.php');
if(ilCourseObjectiveQuestion::_hasTests($this->course_obj->getId()))
{
$ilTabs->addSubTabTarget("crs_objective_overview_question_assignment",
$this->ctrl->getLinkTarget($this, "questionOverview"),
"editQuestionAssignment",
array(),
'',
false);
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilCourseObjectivesGUI::updateFinalTestAssignment ( )
protected

update self assessment assignment

protected

Parameters
@return

Definition at line 851 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_POST, $ilErr, __initQuestionObject(), finalTestLimits(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_FINAL_TEST.

{
global $ilAccess,$ilErr,$ilObjDataCache;
$checked_questions = $_POST['questions'] ? $_POST['questions'] : array();
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->__initQuestionObject((int) $_GET['objective_id']);
// Delete unchecked
foreach($this->objectives_qst_obj->getFinalTestQuestions() as $question)
{
$id = $question['ref_id'].'_'.$question['question_id'];
if(!in_array($id,$checked_questions))
{
$this->objectives_qst_obj->delete($question['qst_ass_id']);
}
}
// Add checked
foreach($checked_questions as $question_id)
{
list($test_ref_id,$qst_id) = explode('_',$question_id);
$test_obj_id = $ilObjDataCache->lookupObjId($test_ref_id);
if($this->objectives_qst_obj->isFinalTestQuestion($qst_id))
{
continue;
}
$this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
$this->objectives_qst_obj->setTestRefId($test_ref_id);
$this->objectives_qst_obj->setTestObjId($test_obj_id);
$this->objectives_qst_obj->setQuestionId($qst_id);
$this->objectives_qst_obj->add();
}
// TODO: not nice
include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
$this->questions = new ilCourseObjectiveQuestion((int) $_GET['objective_id']);
$this->questions->updateLimits();
ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
$this->finalTestLimits();
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::updateFinalTestLimits ( )
protected

update self assessment limits

protected

Parameters
@return

Definition at line 945 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_POST, $ilErr, $test, __initQuestionObject(), finalTestLimits(), listObjectives(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_FINAL_TEST.

{
global $ilAccess,$ilErr,$ilObjDataCache;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->__initQuestionObject((int) $_GET['objective_id']);
if((int) $_POST['limit'] < 0 or (int) $_POST['limit'] > $this->objectives_qst_obj->getFinalTestPoints())
{
ilUtil::sendFailure(sprintf($this->lng->txt('crs_objective_err_limit'),0,$this->objectives_qst_obj->getFinalTestPoints()));
$this->finalTestLimits();
return false;
}
foreach($this->objectives_qst_obj->getFinalTests() as $test)
{
$this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_FINAL_TEST);
$this->objectives_qst_obj->setTestSuggestedLimit((int) $_POST['limit']);
$this->objectives_qst_obj->updateTest($test['test_objective_id']);
}
ilUtil::sendSuccess($this->lng->txt('crs_added_objective'));
$this->listObjectives();
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::updateMaterialAssignment ( )
protected

update material assignment

protected

Parameters
@return

Definition at line 560 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_POST, $ilErr, $ref_id, __initLMObject(), ilLMObject\_lookupType(), selfAssessmentAssignment(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

{
global $ilAccess,$ilErr,$ilObjDataCache;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->__initLMObject((int) $_GET['objective_id']);
$this->objectives_lm_obj->deleteAll();
if(is_array($_POST['materials']))
{
foreach($_POST['materials'] as $node_id)
{
$obj_id = $ilObjDataCache->lookupObjId($node_id);
$type = $ilObjDataCache->lookupType($obj_id);
$this->objectives_lm_obj->setLMRefId($node_id);
$this->objectives_lm_obj->setLMObjId($obj_id);
$this->objectives_lm_obj->setType($type);
$this->objectives_lm_obj->add();
}
}
if(is_array($_POST['chapters']))
{
foreach($_POST['chapters'] as $chapter)
{
include_once('./Modules/LearningModule/classes/class.ilLMObject.php');
list($ref_id,$chapter_id) = explode('_',$chapter);
$this->objectives_lm_obj->setLMRefId($ref_id);
$this->objectives_lm_obj->setLMObjId($chapter_id);
$this->objectives_lm_obj->setType(ilLMObject::_lookupType($chapter_id));
$this->objectives_lm_obj->add();
}
}
ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::updateSelfAssessmentAssignment ( )
protected

update self assessment assignment

protected

Parameters
@return

Definition at line 655 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_POST, $_SESSION, $ilErr, __initQuestionObject(), finalTestAssignment(), selfAssessmentAssignment(), selfAssessmentLimits(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

{
global $ilAccess,$ilErr,$ilObjDataCache;
$checked_questions = $_POST['questions'] ? $_POST['questions'] : array();
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->__initQuestionObject((int) $_GET['objective_id']);
// Delete unchecked
foreach($this->objectives_qst_obj->getSelfAssessmentQuestions() as $question)
{
$id = $question['ref_id'].'_'.$question['question_id'];
if(!in_array($id,$checked_questions))
{
$this->objectives_qst_obj->delete($question['qst_ass_id']);
}
}
// Add checked
foreach($checked_questions as $question_id)
{
list($test_ref_id,$qst_id) = explode('_',$question_id);
$test_obj_id = $ilObjDataCache->lookupObjId($test_ref_id);
if($this->objectives_qst_obj->isSelfAssessmentQuestion($qst_id))
{
continue;
}
$this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
$this->objectives_qst_obj->setTestRefId($test_ref_id);
$this->objectives_qst_obj->setTestObjId($test_obj_id);
$this->objectives_qst_obj->setQuestionId($qst_id);
$this->objectives_qst_obj->add();
}
// TODO: not nice
include_once './Modules/Course/classes/class.ilCourseObjectiveQuestion.php';
$this->questions = new ilCourseObjectiveQuestion((int) $_GET['objective_id']);
$this->questions->updateLimits();
if($checked_questions)
{
ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
return true;
}
else
{
switch($_SESSION['objective_mode'])
{
case self::MODE_CREATE:
return true;
case self::MODE_UPDATE:
ilUtil::sendSuccess($this->lng->txt('crs_objectives_assigned_lm'));
return true;
}
}
}

+ Here is the call graph for this function:

ilCourseObjectivesGUI::updateSelfAssessmentLimits ( )
protected

update self assessment limits

protected

Parameters
@return

Definition at line 766 of file class.ilCourseObjectivesGUI.php.

References $_GET, $_POST, $ilErr, $test, __initQuestionObject(), finalTestAssignment(), selfAssessmentLimits(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilCourseObjectiveQuestion\TYPE_SELF_ASSESSMENT.

{
global $ilAccess,$ilErr,$ilObjDataCache;
if(!$ilAccess->checkAccess('write','',$this->course_obj->getRefId()))
{
$ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING);
}
if(!$_GET['objective_id'])
{
ilUtil::sendFailure($this->lng->txt('crs_no_objective_selected'),true);
$this->ctrl->redirect($this,'listObjectives');
}
$this->__initQuestionObject((int) $_GET['objective_id']);
if((int) $_POST['limit'] < 0 or (int) $_POST['limit'] > $this->objectives_qst_obj->getSelfAssessmentPoints())
{
ilUtil::sendFailure(sprintf($this->lng->txt('crs_objective_err_limit'),0,$this->objectives_qst_obj->getSelfAssessmentPoints()));
return false;
}
foreach($this->objectives_qst_obj->getSelfAssessmentTests() as $test)
{
$this->objectives_qst_obj->setTestStatus(ilCourseObjectiveQuestion::TYPE_SELF_ASSESSMENT);
$this->objectives_qst_obj->setTestSuggestedLimit((int) $_POST['limit']);
$this->objectives_qst_obj->updateTest($test['test_objective_id']);
}
ilUtil::sendSuccess($this->lng->txt('settings_saved'));
}

+ Here is the call graph for this function:

Field Documentation

ilCourseObjectivesGUI::$course_id

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

ilCourseObjectivesGUI::$course_obj

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

ilCourseObjectivesGUI::$ctrl

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

ilCourseObjectivesGUI::$ilias

Definition at line 42 of file class.ilCourseObjectivesGUI.php.

Referenced by ilCourseObjectivesGUI().

ilCourseObjectivesGUI::$lng

Definition at line 44 of file class.ilCourseObjectivesGUI.php.

Referenced by ilCourseObjectivesGUI().

const ilCourseObjectivesGUI::MODE_CREATE = 1

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

Referenced by create().

const ilCourseObjectivesGUI::MODE_UNDEFINED = 0

Definition at line 36 of file class.ilCourseObjectivesGUI.php.

Referenced by listObjectives().

const ilCourseObjectivesGUI::MODE_UPDATE = 2

Definition at line 38 of file class.ilCourseObjectivesGUI.php.

Referenced by edit().


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