Inheritance diagram for ilForumExplorer:
Collaboration diagram for ilForumExplorer:Public Member Functions | |
| ilForumExplorer ($a_target, $a_thread_id, $a_ref_id) | |
| Constructor public. | |
| setOutput ($a_parent, $a_depth=1) | |
| Creates output for explorer view in admin menue recursive method public. | |
| getOutput () | |
| Creates output recursive method public. | |
| formatObject ($a_node_id, $a_option) | |
| Creates output recursive method private. | |
| formatHeader () | |
| method to create a forum system specific header public | |
| createTarget ($a_type, $a_node_id) | |
| Creates Get Parameter private. | |
| setExpand ($a_node_id) | |
| set the expand option this value is stored in a SESSION variable to save it different view (lo view, frm view,...) private | |
| __readThreadSubject () | |
Data Fields | |
| $thread_id | |
| $thread_subject | |
| $root_id | |
| $forum | |
Definition at line 37 of file class.ilForumExplorer.php.
| ilForumExplorer::__readThreadSubject | ( | ) |
Definition at line 368 of file class.ilForumExplorer.php.
Referenced by ilForumExplorer().
{
$this->forum->setWhereCondition("thr_pk = ".$this->thread_id);
$threadData = $this->forum->getOneThread();
$this->thread_subject = $threadData["thr_subject"];
}
Here is the caller graph for this function:| ilForumExplorer::createTarget | ( | $ | a_type, | |
| $ | a_node_id | |||
| ) |
Creates Get Parameter private.
| string | ||
| integer |
Reimplemented from ilExplorer.
Definition at line 315 of file class.ilForumExplorer.php.
Referenced by formatObject().
{
if (!isset($a_type) or !is_string($a_type) or !isset($a_node_id))
{
$this->ilias->raiseError(get_class($this)."::createTarget(): Missing parameter or wrong datatype! ".
"type: ".$a_type." node_id:".$a_node_id,$this->ilias->error_obj->WARNING);
}
list($tmp,$get) = explode("?",$this->target);
// SET expand parameter:
// positive if object is expanded
// negative if object is compressed
$a_node_id = $a_type == '+' ? $a_node_id : -(int) $a_node_id;
return $_SERVER["PATH_INFO"]."?".$get."&fexpand=".$a_node_id;
}
Here is the caller graph for this function:| ilForumExplorer::formatHeader | ( | ) |
method to create a forum system specific header public
| integer | obj_id | |
| integer | array options |
Definition at line 285 of file class.ilForumExplorer.php.
References $frm, ilExplorer::$ilias, $lng, $tpl, and ilUtil::getImagePath().
Referenced by getOutput().
{
global $lng, $ilias;
$tpl = new ilTemplate("tpl.tree.html", true, true);
$frm = new ilForum();
$frm->setWhereCondition("thr_pk = ".$this->thread_id);
$threadData = $frm->getOneThread();
$tpl->setCurrentBlock("icon");
$tpl->setVariable("ICON_IMAGE", ilUtil::getImagePath("icon_frm.gif"));
$tpl->setVariable("TXT_ALT_IMG", $lng->txt("obj_frm"));
$tpl->parseCurrentBlock();
$tpl->setCurrentBlock("link");
$tpl->setVariable("TITLE", $a_option["title"]." ".$lng->txt("forums_thread").": ".$threadData["thr_subject"]);
$tpl->setVariable("TARGET","target=content");
$tpl->setVariable("LINK_TARGET",$this->target);
$tpl->parseCurrentBlock();
$this->output[] = $tpl->get();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForumExplorer::formatObject | ( | $ | a_node_id, | |
| $ | a_option | |||
| ) |
Creates output recursive method private.
| integer | ||
| array |
Definition at line 197 of file class.ilForumExplorer.php.
References $ilUser, $lng, ilExplorer::$target, $tpl, createTarget(), and ilUtil::getImagePath().
Referenced by getOutput().
{
global $lng,$ilUser;
if (!isset($a_node_id) or !is_array($a_option))
{
$this->ilias->raiseError(get_class($this)."::formatObject(): Missing parameter or wrong datatype! ".
"node_id: ".$a_node_id." options:".var_dump($a_option),$this->ilias->error_obj->WARNING);
}
$tpl = new ilTemplate("tpl.tree.html", true, true);
foreach ($a_option["tab"] as $picture)
{
if ($picture == 'plus')
{
$target = $this->createTarget('+',$a_node_id);
$tpl->setCurrentBlock("expander");
$tpl->setVariable("LINK_TARGET_EXPANDER", $target);
$tpl->setVariable("IMGPATH", ilUtil::getImagePath("browser/blank.gif"));
$tpl->parseCurrentBlock();
}
if ($picture == 'minus')
{
$target = $this->createTarget('-',$a_node_id);
$tpl->setCurrentBlock("expander");
$tpl->setVariable("LINK_TARGET_EXPANDER", $target);
$tpl->setVariable("IMGPATH", ilUtil::getImagePath("browser/blank.gif"));
$tpl->parseCurrentBlock();
}
if ($picture == 'blank' or $picture == 'winkel'
or $picture == 'hoch' or $picture == 'quer' or $picture == 'ecke')
{
$picture = 'blank';
$target = $_SERVER["REQUEST_URI"];
$tpl->setCurrentBlock("expander");
$tpl->setVariable("LINK_TARGET_EXPANDER", $target);
$tpl->setVariable("IMGPATH", ilUtil::getImagePath("browser/".$picture.".gif"));
//$tpl->setVariable("TXT_ALT_IMG", $lng->txt($a_option["desc"]));
$tpl->parseCurrentBlock();
}
}
$target = (strpos($this->target, "?") === false) ?
$this->target."?" : $this->target."&";
$tpl->setCurrentBlock("link");
$tpl->setVariable("LINK_TARGET", $target.$this->target_get."=".$a_node_id."#".$a_node_id);
#$a_option["title"] = strlen($a_option["title"]) <= FULLNAME_MAXLENGTH
# ? $a_option["title"]
# : substr($a_option["title"],0,FULLNAME_MAXLENGTH)."...";
$tpl->setVariable("TITLE", $a_option["title"]);
if($this->forum_obj->isRead($ilUser->getId(),$a_node_id))
{
$tpl->setVariable("A_CLASS",'class="postread"');
}
else
{
if($this->forum_obj->isNew($ilUser->getId(),$this->thread_id,$a_node_id))
{
$tpl->setVariable("A_CLASS",'class="postnew"');
}
else
{
$tpl->setVariable("A_CLASS",'class="postunread"');
}
$tpl->setVariable("ONCLICK",'onClick="this.className=\'postread\';"');
}
if ($this->frame_target != "")
{
$tpl->setVariable("TARGET", " target=\"".$this->frame_target."\"");
}
$tpl->parseCurrentBlock();
$this->output[] = $tpl->get();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForumExplorer::getOutput | ( | ) |
Creates output recursive method public.
Reimplemented from ilExplorer.
Definition at line 165 of file class.ilForumExplorer.php.
References ilExplorer::createLines(), formatHeader(), and formatObject().
{
$this->format_options[0]["tab"] = array();
$depth = $this->forum->getPostMaximumDepth($this->thread_id);
for ($i=0;$i<$depth;++$i)
{
$this->createLines($i);
}
foreach ($this->format_options as $key => $options)
{
if($key == 0)
{
$this->formatHeader();
}
if ($options["visible"])
{
$this->formatObject($options["child"],$options);
}
}
return implode('',$this->output);
}
Here is the call graph for this function:| ilForumExplorer::ilForumExplorer | ( | $ | a_target, | |
| $ | a_thread_id, | |||
| $ | a_ref_id | |||
| ) |
Constructor public.
| string | scriptname |
Definition at line 67 of file class.ilForumExplorer.php.
References $lng, __readThreadSubject(), ilObjectFactory::getInstanceByRefId(), and ilExplorer::ilExplorer().
{
global $lng;
$lng->loadLanguageModule("forum");
parent::ilExplorer($a_target);
$this->thread_id = $a_thread_id;
$this->forum = new ilForum();
$this->forum_obj =& ilObjectFactory::getInstanceByRefId($a_ref_id);
$tmp_array = $this->forum->getFirstPostNode($this->thread_id);
$this->root_id = $tmp_array["child"];
$this->__readThreadSubject();
// max length of user fullname which is shown in explorer view
define(FULLNAME_MAXLENGTH,16);
}
Here is the call graph for this function:| ilForumExplorer::setExpand | ( | $ | a_node_id | ) |
set the expand option this value is stored in a SESSION variable to save it different view (lo view, frm view,...) private
| string | pipe-separated integer |
Reimplemented from ilExplorer.
Definition at line 338 of file class.ilForumExplorer.php.
References $_SESSION.
{
$first_node = $this->forum->getFirstPostNode($this->thread_id);
$first_node_id = $first_node["id"];
$_SESSION["fexpand"] = $_SESSION["fexpand"] ? $_SESSION["fexpand"] : array();
// IF ISN'T SET CREATE SESSION VARIABLE
if(empty($_SESSION["fexpand"]) or !in_array($first_node_id,$_SESSION["fexpand"]))
{
$all_nodes = $this->forum->getPostTree($first_node);
foreach($all_nodes as $node)
{
$tmp_array[] = $node["id"];
}
$_SESSION["fexpand"] = array_merge($tmp_array,$_SESSION["fexpand"]);
}
// IF $_GET["expand"] is positive => expand this node
if($a_node_id > 0 && !in_array($a_node_id,$_SESSION["fexpand"]))
{
array_push($_SESSION["fexpand"],$a_node_id);
}
// IF $_GET["expand"] is negative => compress this node
if($a_node_id < 0)
{
$key = array_keys($_SESSION["fexpand"],-(int) $a_node_id);
unset($_SESSION["fexpand"][$key[0]]);
}
$this->expanded = $_SESSION["fexpand"];
}
| ilForumExplorer::setOutput | ( | $ | a_parent, | |
| $ | a_depth = 1 | |||
| ) |
Creates output for explorer view in admin menue recursive method public.
| integer | parent_node_id where to start from (default=0, 'root') | |
| integer | depth level where to start (default=1) |
Definition at line 94 of file class.ilForumExplorer.php.
References $counter, $ilUser, $lng, $tab, and ilExplorer::getIndex().
{
global $lng,$ilUser;
static $counter = 0;
if ($objects = $this->forum->getPostChilds($a_parent,$this->thread_id))
{
$tab = ++$a_depth - 2;
foreach ($objects as $key => $object)
{
if ($object["child"] != $this->root_id)
{
$parent_index = $this->getIndex($object);
}
$this->format_options["$counter"]["parent"] = $object["parent"];
$this->format_options["$counter"]["child"] = $object["child"];
#$this->format_options["$counter"]["title"] = $object["title"]." <small class=\"small\">".$object["date"]."</small>".
#"<small><br />".$object["subject"]."</small>";
$title = $object["subject"]." <small class=\"small\">".$object["title"]." ".$object["date"]."</small>";
$this->format_options[$counter]['title'] = $title;
$this->format_options["$counter"]["type"] = $object["type"];
$this->format_options["$counter"]["desc"] = "forums_the_".$object["type"];
$this->format_options["$counter"]["depth"] = $tab;
$this->format_options["$counter"]["container"] = false;
$this->format_options["$counter"]["visible"] = true;
// Create prefix array
for ($i = 0; $i < $tab; ++$i)
{
$this->format_options["$counter"]["tab"][] = 'blank';
}
// only if parent is expanded and visible, object is visible
if ($object["child"] != $this->root_id and (!in_array($object["parent"],$this->expanded)
or !$this->format_options["$parent_index"]["visible"]))
{
$this->format_options["$counter"]["visible"] = true;
}
// if object exists parent is container
if ($object["child"] != $this->root_id)
{
$this->format_options["$parent_index"]["container"] = true;
if (in_array($object["parent"],$this->expanded))
{
$this->format_options["$parent_index"]["tab"][($tab-2)] = 'minus';
}
else
{
$this->format_options["$parent_index"]["tab"][($tab-2)] = 'minus';
}
}
++$counter;
// Recursive
$this->setOutput($object["child"],$a_depth);
} //foreach
} //if
} //function
Here is the call graph for this function:| ilForumExplorer::$forum |
Definition at line 60 of file class.ilForumExplorer.php.
| ilForumExplorer::$root_id |
Definition at line 53 of file class.ilForumExplorer.php.
| ilForumExplorer::$thread_id |
Definition at line 44 of file class.ilForumExplorer.php.
| ilForumExplorer::$thread_subject |
Definition at line 45 of file class.ilForumExplorer.php.
1.7.1