Class ilForumExplorer class for explorer view of forum posts. More...
Inheritance diagram for ilForumExplorer:
Collaboration diagram for ilForumExplorer:Public Member Functions | |
| ilForumExplorer ($a_target, ilForumTopic $a_thread, $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 (&$tpl, $a_node_id, $a_option, $key) | |
| Creates output recursive method private. | |
| formatHeader (&$tpl) | |
| 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 | |
Private Attributes | |
| $objProperties = null | |
| ilForumProperties object private | |
| $objCurrentTopic = null | |
Class ilForumExplorer class for explorer view of forum posts.
Definition at line 37 of file class.ilForumExplorer.php.
| ilForumExplorer::__readThreadSubject | ( | ) |
Definition at line 441 of file class.ilForumExplorer.php.
Referenced by ilForumExplorer().
{
global $ilDB;
$this->thread_subject = $this->objCurrentTopic->getSubject();
}
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 384 of file class.ilForumExplorer.php.
{
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;
}
| ilForumExplorer::formatHeader | ( | &$ | tpl | ) |
method to create a forum system specific header public
| integer | obj_id | |
| integer | array options |
Definition at line 352 of file class.ilForumExplorer.php.
References ilExplorer::$ilias, $lng, $tpl, and ilUtil::getImagePath().
{
global $lng, $ilias, $ilDB;
$frm = new ilForum();
$frm->setWhereCondition("thr_pk = ".$ilDB->quote($this->thread_id));
$threadData = $frm->getOneThread();
$tpl->setCurrentBlock("icon");
$tpl->setVariable("ICON_IMAGE", ilUtil::getImagePath("icon_frm_s.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("DESC", $lng->txt("from").": ".$a_option["loginname"]." [".$this->forum->convertDate($a_option["date"])."]");
$tpl->setVariable("TARGET","target=content");
$tpl->setVariable("LINK_TARGET",$this->target);
$tpl->parseCurrentBlock();
$tpl->setCurrentBlock("list_item");
$tpl->parseCurrentBlock();
$tpl->touchBlock("element");
}
Here is the call graph for this function:| ilForumExplorer::formatObject | ( | &$ | tpl, | |
| $ | a_node_id, | |||
| $ | a_option, | |||
| $ | key | |||
| ) |
Creates output recursive method private.
| integer | ||
| array |
Reimplemented from ilExplorer.
Definition at line 244 of file class.ilForumExplorer.php.
References $lng, ilExplorer::$target, $tpl, 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);
}
if ($key == 0)
{
$tpl->setCurrentBlock("icon");
$tpl->setVariable("ICON_IMAGE", ilUtil::getImagePath("icon_frm_s.gif"));
$tpl->setVariable("TXT_ALT_IMG", $lng->txt("obj_frm"));
$tpl->parseCurrentBlock();
}
/*
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)."...";
if ($key == 0)
{
$tpl->setVariable("TITLE", "<strong>".$a_option["title"]."</strong>");
}
else
{
$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();
$tpl->setCurrentBlock("list_item");
$tpl->parseCurrentBlock();
$tpl->touchBlock("element");
}
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 189 of file class.ilForumExplorer.php.
References $tpl, ilExplorer::createLines(), formatObject(), ilExplorer::handleListEndTags(), and ilExplorer::handleListStartTags().
{
global $tpl;
$first_node = $this->objCurrentTopic->getFirstPostNode();
$this->objCurrentTopic->setOrderField('frm_posts_tree.rgt');
$subtree_nodes = $this->objCurrentTopic->getPostTree($first_node);
if (count($subtree_nodes))
{
$this->format_options[0]['tab'] = array();
$depth = $this->forum->getPostMaximumDepth($this->thread_id);
for ($i = 0; $i < $depth; ++$i)
{
$this->createLines($i);
}
}
$tpl->addBlockFile('EXPLORER_TOP', 'exp_top', 'tpl.explorer_top.html');
// set global body class
$tpl->setVariable('BODY_CLASS', 'il_Explorer');
$tpl_tree = new ilTemplate('tpl.tree.html', true, true);
if (count($subtree_nodes))
{
$cur_depth = -1;
foreach ($this->format_options as $key => $options)
{
// end tags
$this->handleListEndTags($tpl_tree, $cur_depth, $options['depth']);
// start tags
$this->handleListStartTags($tpl_tree, $cur_depth, $options['depth']);
$cur_depth = $options['depth'];
$this->formatObject($tpl_tree, $options['child'], $options, $key);
}
$this->handleListEndTags($tpl_tree, $cur_depth, -1);
}
return $tpl_tree->get();
}
Here is the call graph for this function:| ilForumExplorer::ilForumExplorer | ( | $ | a_target, | |
| ilForumTopic $ | a_thread, | |||
| $ | a_ref_id | |||
| ) |
Constructor public.
| string | scriptname |
Definition at line 75 of file class.ilForumExplorer.php.
References $lng, __readThreadSubject(), ilForumTopic::getId(), ilForumProperties::getInstance(), ilObjectFactory::getInstanceByRefId(), and ilExplorer::ilExplorer().
{
global $lng;
$lng->loadLanguageModule('forum');
parent::ilExplorer($a_target);
$this->forum = new ilForum();
$this->forum_obj =& ilObjectFactory::getInstanceByRefId($a_ref_id);
$this->objProperties = ilForumProperties::getInstance($this->forum_obj->getId());
$this->objCurrentTopic = $a_thread;
$this->thread_id = $this->objCurrentTopic->getId();
$this->root_id = $this->objCurrentTopic->getFirstPostNode()->getId();
$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 407 of file class.ilForumExplorer.php.
References $_SESSION.
{
$first_node = $this->objCurrentTopic->getFirstPostNode();
$_SESSION['fexpand'] = $_SESSION['fexpand'] ? $_SESSION['fexpand'] : array();
// if isn't set create session variable
if (empty($_SESSION['fexpand']) or !in_array($first_node->getId(), $_SESSION['fexpand']))
{
$all_nodes = $this->objCurrentTopic->getPostTree($first_node);
$tmp_array = array();
foreach ($all_nodes as $node)
{
$tmp_array[] = $node->getId();
}
$_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 106 of file class.ilForumExplorer.php.
References $_GET, $lng, $tab, $title, ilForum::_isModerator(), and ilExplorer::getIndex().
{
global $lng,$ilUser;
static $counter = 0;
if (is_numeric($a_parent) && $objects = $this->objCurrentTopic->getPostChilds($a_parent, 'explorer'))
{
$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'];
$title = "<span style=\"white-space:nowrap;\" class=\"small\">".stripslashes($object['subject'])."</span>".
"<div style=\"white-space:nowrap; margin-bottom:5px;\" class=\"small\">";
if ($this->objProperties->isAnonymized())
{
if ($object['alias'] != '') $title .= stripslashes($object['alias']);
else $title .= $lng->txt('forums_anonymous');
}
else
{
$title .= stripslashes($object['loginname']);
}
$title .= ", ".$this->forum->convertDate($object['date'])."</div>";
$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;
if (!$object['status'] && !ilForum::_isModerator($_GET['ref_id'], $ilUser->getId()))
{
$this->format_options[$counter]['visible'] = false;
}
// 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 && (!in_array($object['parent'], $this->expanded)
|| !$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::$objCurrentTopic = null [private] |
Definition at line 68 of file class.ilForumExplorer.php.
ilForumExplorer::$objProperties = null [private] |
ilForumProperties object private
Definition at line 66 of file class.ilForumExplorer.php.
| ilForumExplorer::$root_id |
Reimplemented from ilExplorer.
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