Public Member Functions | |
ilCtrlStructureReader () | |
setErrorObject (&$err) | |
getStructure () | |
parse code files and store call structure in db | |
readStructure ($a_force=false) | |
read ($a_cdir) | |
read structure into internal variables | |
store ($a_cdir="./..") | |
read structure into internal variables | |
Data Fields | |
$class_script | |
$class_childs | |
$executed |
Definition at line 34 of file class.ilCtrlStructureReader.php.
ilCtrlStructureReader::getStructure | ( | ) |
parse code files and store call structure in db
Definition at line 55 of file class.ilCtrlStructureReader.php.
{
$this->get_structure = true;
}
ilCtrlStructureReader::ilCtrlStructureReader | ( | ) |
Definition at line 40 of file class.ilCtrlStructureReader.php.
{
$this->class_script = array();
$this->class_childs = array();
$this->executed = false;
}
ilCtrlStructureReader::read | ( | $ | a_cdir | ) |
read structure into internal variables
private
Definition at line 89 of file class.ilCtrlStructureReader.php.
References $dir, $file, $lng, $pos, and $q.
Referenced by readStructure().
{ global $ilDB, $lng; // check wether $a_cdir is a directory if (!@is_dir($a_cdir)) { return false; } // read current directory $dir = opendir($a_cdir); while($file = readdir($dir)) { if ($file != "." and $file != "..") { // directories if (@is_dir($a_cdir."/".$file)) { if ($a_cdir."/".$file != ILIAS_ABSOLUTE_PATH."/data") { $this->read($a_cdir."/".$file); } } // files if (@is_file($a_cdir."/".$file)) { if (eregi("^class.*php$", $file)) { $handle = fopen($a_cdir."/".$file, "r"); //echo "<br>".$a_cdir."/".$file; while (!feof($handle)) { $line = fgets($handle, 4096); $pos = strpos(strtolower($line), "@ilctrl_calls"); if (is_int($pos)) { $com = substr($line, $pos + 14); $pos2 = strpos($com, ":"); if (is_int($pos2)) { $com_arr = explode(":", $com); $parent = strtolower(trim($com_arr[0])); // check file duplicates if ($parent != "" && isset($this->class_script[$parent]) && $this->class_script[$parent] != $a_cdir."/".$file) { // delete all class to file assignments $q = "DELETE FROM ctrl_classfile"; $ilDB->query($q); // delete all call entries $q = "DELETE FROM ctrl_calls"; $ilDB->query($q); $this->err_object->raiseError( sprintf($lng->txt("duplicate_ctrl"), $parent, $this->class_script[$parent], $a_cdir."/".$file) , $this->err_object->MESSAGE); } $this->class_script[$parent] = $a_cdir."/".$file; $childs = explode(",", $com_arr[1]); foreach($childs as $child) { $child = trim(strtolower($child)); if (!is_array($this->class_childs[$parent]) || !in_array($child, $this->class_childs[$parent])) { $this->class_childs[$parent][] = $child; } } } } } fclose($handle); } } } } }
ilCtrlStructureReader::readStructure | ( | $ | a_force = false |
) |
Definition at line 60 of file class.ilCtrlStructureReader.php.
References read(), and store().
{ if (!$this->get_structure && !$a_force) { return; } // only run one time per db_update request if (!$this->executed) { $this->read(ILIAS_ABSOLUTE_PATH); $this->store(); $this->executed = true; } // read module information // not clear whether this is a good place for module reading info // or not require_once("../classes/class.ilCtrl.php"); $ctrl = new ilCtrl(); $ctrl->storeCommonStructures(); }
ilCtrlStructureReader::setErrorObject | ( | &$ | err | ) |
Definition at line 47 of file class.ilCtrlStructureReader.php.
{ $this->err_object =& $err; }
ilCtrlStructureReader::store | ( | $ | a_cdir = "./.." |
) |
read structure into internal variables
private
Definition at line 180 of file class.ilCtrlStructureReader.php.
Referenced by readStructure().
{ global $ilDB; // delete all class to file assignments $q = "DELETE FROM ctrl_classfile"; $ilDB->query($q); // delete all call entries $q = "DELETE FROM ctrl_calls"; $ilDB->query($q); foreach($this->class_script as $class => $script) { $file = substr($script, strlen(ILIAS_ABSOLUTE_PATH) + 1); // store class to file assignment $q = "INSERT INTO ctrl_classfile (class, file) VALUES". "(".$ilDB->quote($class).",".$ilDB->quote($file).")"; $ilDB->query($q); if (is_array($this->class_childs[$class])) { foreach($this->class_childs[$class] as $child) { // store call entry $q = "INSERT INTO ctrl_calls (parent, child) VALUES". "(".$ilDB->quote($class).",".$ilDB->quote($child).")"; $ilDB->query($q); } } } }
ilCtrlStructureReader::$class_childs |
Definition at line 37 of file class.ilCtrlStructureReader.php.
ilCtrlStructureReader::$class_script |
Definition at line 36 of file class.ilCtrlStructureReader.php.
ilCtrlStructureReader::$executed |
Definition at line 38 of file class.ilCtrlStructureReader.php.