Public Member Functions | |
| ilForum () | |
| Constructor public. | |
| setForumId ($a_obj_id) | |
| set object id which refers to ILIAS obj_id | |
| setForumRefId ($a_ref_id) | |
| set reference id which refers to ILIAS obj_id | |
| getForumId () | |
| get forum id public | |
| getForumRefId () | |
| get forum ref_id public | |
| setOrderField ($orderField) | |
| set database field for sorting results | |
| getOrderField () | |
| get name of orderField | |
| setDbTable ($dbTable) | |
| set database table | |
| getDbTable () | |
| get name of database table | |
| setWhereCondition ($whereCondition="1") | |
| set content of WHERE condition | |
| getWhereCondition () | |
| get content of whereCondition | |
| setPageHits ($pageHits) | |
| set number of max. | |
| getPageHits () | |
| get number of max. | |
| getOneDataset () | |
| get one dataset from set Table and set WhereCondition | |
| getOneTopic () | |
| get one topic-dataset by WhereCondition | |
| _lookupForumData ($a_obj_id) | |
| lookup forum data | |
| getOneThread () | |
| get one thread-dataset by WhereCondition | |
| getOnePost ($post) | |
| get one post-dataset | |
| getPostById ($a_id) | |
| generatePost ($topic, $thread, $user, $message, $parent_pos, $notify, $subject, $date="") | |
| generate new dataset in frm_posts | |
| generateThread ($topic, $user, $subject, $message, $notify, $date= '') | |
| generate new dataset in frm_threads | |
| updatePost ($message, $pos_pk, $notify, $subject) | |
| update dataset in frm_posts | |
| postCensorship ($message, $pos_pk, $cens=0) | |
| update dataset in frm_posts with censorship info | |
| deletePost ($post) | |
| delete post and sub-posts | |
| getThreadList ($topic) | |
| get all threads of given forum | |
| getPostList ($topic, $thread) | |
| get all posts of given thread | |
| getLastPost ($lastPost) | |
| get content of given ID's | |
| getUser ($a_user_id) | |
| get content of given user-ID | |
| getModerators () | |
| get all users assigned to local role il_frm_moderator_<frm_ref_id> | |
| _getModerators ($a_ref_id) | |
| get all users assigned to local role il_frm_moderator_<frm_ref_id> (static) | |
| checkEditRight ($post_id) | |
| checks edit-right for given post-ID | |
| countUserArticles ($user) | |
| get number of articles from given user-ID | |
| getForumPath ($a_ref_id) | |
| builds a string to show the forum-context | |
| convertDate ($date) | |
| converts the date format | |
| addPostTree ($a_tree_id, $a_node_id=-1) | |
| create a new post-tree | |
| insertPostNode ($a_node_id, $a_parent_id, $tree_id) | |
| insert node under parent node public | |
| getPostDepth ($a_node_id, $tree_id) | |
| Return depth of an object private. | |
| getPostTree ($a_node) | |
| get all nodes in the subtree under specified node | |
| getPostChilds ($a_node_id, $a_thr_id) | |
| get child nodes of given node public | |
| getFirstPostNode ($tree_id) | |
| get data of the first node from frm_posts_tree and frm_posts public | |
| getPostNode ($post_id) | |
| get data of given node from frm_posts_tree and frm_posts public | |
| fetchPostNodeData ($a_row) | |
| get data of parent node from frm_posts_tree and frm_posts private | |
| getPostMaximumDepth ($a_thr_id) | |
| Return the maximum depth in tree public. | |
| deletePostTree ($a_node) | |
| delete node and the whole subtree under this node public | |
| updateVisits ($ID) | |
| update page hits of given forum- or thread-ID public | |
| prepareText ($text, $edit=0) | |
| prepares given string public | |
| getModeratorFromPost ($pos_pk) | |
| get one post-dataset | |
| __deletePostFiles ($a_ids) | |
| __sendMessage ($a_parent_pos) | |
| __formatSubject ($thread_data) | |
| __formatMessage ($thread_data) | |
| getUserData ($a_id, $a_import_name=0) | |
| getImportName () | |
| setImportName ($a_import_name) | |
Data Fields | |
| $ilias | |
| $lng | |
| $dbTable | |
| $className = "ilForum" | |
| $orderField | |
| $whereCondition = "1" | |
| $txtQuote1 = "[quote]" | |
| $txtQuote2 = "[/quote]" | |
| $replQuote1 = "<blockquote class=\"quote\"><hr size=\"1\" color=\"#000000\">" | |
| $replQuote2 = "<hr size=\"1\" color=\"#000000\"/></blockquote>" | |
| $pageHits = 30 | |
| $id | |
Definition at line 34 of file class.ilForum.php.
| ilForum::__deletePostFiles | ( | $ | a_ids | ) |
Definition at line 1351 of file class.ilForum.php.
References $file, and getForumId().
Referenced by deletePost().
{
if(!is_array($a_ids))
{
return false;
}
include_once "classes/class.ilFileDataForum.php";
$tmp_file_obj =& new ilFileDataForum($this->getForumId());
foreach($a_ids as $pos_id)
{
$tmp_file_obj->setPosId($pos_id);
$files = $tmp_file_obj->getFilesOfPost();
foreach($files as $file)
{
$tmp_file_obj->unlinkFile($file["name"]);
}
}
unset($tmp_file_obj);
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::__formatMessage | ( | $ | thread_data | ) |
Definition at line 1407 of file class.ilForum.php.
References $frm_obj, getForumRefId(), and ilObjectFactory::getInstanceByRefId().
Referenced by __sendMessage().
{
include_once "./classes/class.ilObjectFactory.php";
$frm_obj =& ilObjectFactory::getInstanceByRefId($this->getForumRefId());
$title = $frm_obj->getTitle();
unset($frm_obj);
$message = $this->lng->txt("forum").": ".$title." -> ".$thread_data["thr_subject"]."\n\n";
$message .= $this->lng->txt("forum_post_replied");
return $message;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::__formatSubject | ( | $ | thread_data | ) |
Definition at line 1403 of file class.ilForum.php.
Referenced by __sendMessage().
{
return "Forum notification";
}
Here is the caller graph for this function:| ilForum::__sendMessage | ( | $ | a_parent_pos | ) |
Definition at line 1374 of file class.ilForum.php.
References $_SESSION, $tmp_user, __formatMessage(), __formatSubject(), getOnePost(), getOneThread(), and setWhereCondition().
Referenced by generatePost().
{
$parent_data = $this->getOnePost($a_parent_pos);
if($parent_data["notify"])
{
// SEND MESSAGE
include_once "./classes/class.ilMail.php";
include_once "./classes/class.ilObjUser.php";
$tmp_user =& new ilObjUser($parent_data["pos_usr_id"]);
// NONSENSE
$this->setWhereCondition("thr_pk='".$parent_data["pos_thr_fk"]."'");
$thread_data = $this->getOneThread();
#var_dump("<pre>",$thread_data,"<pre>");
#var_dump("<pre>",$parent_data,"<pre>");
$tmp_mail_obj = new ilMail($_SESSION["AccountId"]);
$message = $tmp_mail_obj->sendMail($tmp_user->getLogin(),"","",
$this->__formatSubject($thread_data),
$this->__formatMessage($thread_data),
array(),array("normal"));
unset($tmp_user);
unset($tmp_mail_obj);
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::_getModerators | ( | $ | a_ref_id | ) |
get all users assigned to local role il_frm_moderator_<frm_ref_id> (static)
| int | $a_ref_id reference id |
Definition at line 795 of file class.ilForum.php.
References $rbacreview, and $role_id.
Referenced by getModerators(), and ilObjForumListGUI::getProperties().
{
global $rbacreview;
$rolf = $rbacreview->getRoleFolderOfObject($a_ref_id);
$role_arr = $rbacreview->getRolesOfRoleFolder($rolf["ref_id"]);
foreach ($role_arr as $role_id)
{
$roleObj =& $this->ilias->obj_factory->getInstanceByObjId($role_id);
if ($roleObj->getTitle() == "il_frm_moderator_".$a_ref_id)
{
return $rbacreview->assignedUsers($roleObj->getId());
}
}
return array();
}
Here is the caller graph for this function:| ilForum::_lookupForumData | ( | $ | a_obj_id | ) |
lookup forum data
Definition at line 299 of file class.ilForum.php.
References $query, and $result.
Referenced by ilObjForumListGUI::getProperties().
{
global $ilDB;
$query = "SELECT * FROM frm_data WHERE top_frm_fk = ".$ilDB->quote($a_obj_id);
$result = $ilDB->getRow($query, DB_FETCHMODE_ASSOC);
$result["top_name"] = trim(stripslashes($result["top_name"]));
$result["top_description"] = nl2br(stripslashes($result["top_description"]));
return $result;
}
Here is the caller graph for this function:| ilForum::addPostTree | ( | $ | a_tree_id, | |
| $ | a_node_id = -1 | |||
| ) |
create a new post-tree
| integer | a_tree_id: id where tree belongs to | |
| integer | a_node_id: root node of tree (optional; default is tree_id itself) |
Definition at line 917 of file class.ilForum.php.
References $query.
Referenced by generatePost().
{
if ($a_node_id <= 0)
{
$a_node_id = $a_tree_id;
}
$query = "INSERT INTO frm_posts_tree (thr_fk, pos_fk, parent_pos, lft, rgt, depth, date) ".
"VALUES ".
"('".$a_tree_id."','".$a_node_id."', 0, 1, 2, 1, '".date("Y-m-d H:i:s")."')";
$this->ilias->db->query($query);
return true;
}
Here is the caller graph for this function:| ilForum::checkEditRight | ( | $ | post_id | ) |
checks edit-right for given post-ID
| integer | $post_id: post-ID |
Definition at line 822 of file class.ilForum.php.
References $q, $rbacsystem, and $res.
{
global $rbacsystem;
// is online-user the author of the post?
$q = "SELECT * FROM frm_posts WHERE ";
$q .= "pos_usr_id ='".$_SESSION["AccountId"]."' ";
$q .= "AND pos_pk ='".$post_id."'";
$res = $this->ilias->db->query($q);
// if not, is he authorised to edit?
if ($res->numRows() > 0)
{
return true;
}
elseif ($rbacsystem->checkAccess("delete_post", $this->getForumRefId()))
{
return true;
}
else
{
return false;
}
}
| ilForum::convertDate | ( | $ | date | ) |
converts the date format
| string | $date |
Definition at line 898 of file class.ilForum.php.
References $lng, and formatDate().
Referenced by getLastPost(), and getOnePost().
{
global $lng;
if ($date > date("Y-m-d H:i:s", mktime(0, 0, 0, date("m"), date("d"), date("Y"))))
{
return $lng->txt("today").", ".ilFormat::formatDate($date,"time");
}
return ilFormat::formatDate($date);
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::countUserArticles | ( | $ | user | ) |
get number of articles from given user-ID
| integer | $user: user-ID |
Definition at line 855 of file class.ilForum.php.
| ilForum::deletePost | ( | $ | post | ) |
delete post and sub-posts
| integer | $post: ID public |
Definition at line 529 of file class.ilForum.php.
References $q, $query, $query2, $query3, $query4, $query5, __deletePostFiles(), ilObjForum::_deleteAccessEntries(), ilObjForum::_deleteReadEntries(), deletePostTree(), and getPostNode().
{
include_once "./classes/class.ilObjForum.php";
// delete tree and get id's of all posts to delete
$p_node = $this->getPostNode($post);
$del_id = $this->deletePostTree($p_node);
// Delete User read entries
foreach($del_id as $post_id)
{
ilObjForum::_deleteReadEntries($post_id);
}
// DELETE ATTACHMENTS ASSIGNED TO POST
$this->__deletePostFiles($del_id);
$dead_pos = count($del_id);
$dead_thr = 0;
// if deletePost is thread opener ...
if ($p_node["parent"] == 0)
{
// delete thread access data
include_once './classes/class.ilObjForum.php';
ilObjForum::_deleteAccessEntries($p_node['tree']);
// delete thread
$dead_thr = $p_node["tree"];
$query = "DELETE FROM frm_threads ".
"WHERE thr_pk = '".$p_node["tree"]."'";
$this->ilias->db->query($query);
// update num_threads
$query2 = "UPDATE frm_data ".
"SET ".
"top_num_threads = top_num_threads - 1 ".
"WHERE top_frm_fk = '".$this->id."'";
$this->ilias->db->query($query2);
// delete all posts of this thread
$query3 = "DELETE FROM frm_posts ".
"WHERE pos_thr_fk = '".$p_node["tree"]."'";
$this->ilias->db->query($query3);
}
else
{
// delete this post and its sub-posts
for ($i = 0; $i < $dead_pos; $i++)
{
$query = "DELETE FROM frm_posts ".
"WHERE pos_pk = '".$del_id[$i]."'";
$this->ilias->db->query($query);
}
// update num_posts in frm_threads
$query2 = "UPDATE frm_threads ".
"SET ".
"thr_num_posts = thr_num_posts - $dead_pos ".
"WHERE thr_pk = '".$p_node["tree"]."'";
$this->ilias->db->query($query2);
// get latest post of thread and update last_post
$q = "SELECT * FROM frm_posts WHERE ";
$q .= "pos_thr_fk = '".$p_node["tree"]."' ";
$q .= "ORDER BY pos_date DESC";
$res1 = $this->ilias->db->query($q);
if ($res1->numRows() == 0)
{
$lastPost_thr = "";
}
else
{
$z = 0;
while ($selData = $res1->fetchRow(DB_FETCHMODE_ASSOC))
{
if ($z > 0)
{
break;
}
$lastPost_thr = $selData["pos_top_fk"]."#".$selData["pos_thr_fk"]."#".$selData["pos_pk"];
$z ++;
}
}
$query4 = "UPDATE frm_threads ".
"SET ".
"thr_last_post = '".$lastPost_thr."' ".
"WHERE thr_pk = '".$p_node["tree"]."'";
$this->ilias->db->query($query4);
}
// update num_posts in frm_data
$qu = "UPDATE frm_data ".
"SET ".
"top_num_posts = top_num_posts - $dead_pos ".
"WHERE top_frm_fk = '".$this->id."'";
$this->ilias->db->query($qu);
// get latest post of forum and update last_post
$q = "SELECT * FROM frm_posts, frm_data WHERE ";
$q .= "pos_top_fk = top_pk AND ";
$q .= "top_frm_fk ='".$this->id."' ";
$q .= "ORDER BY pos_date DESC";
$res2 = $this->ilias->db->query($q);
if ($res2->numRows() == 0)
{
$lastPost_top = "";
}
else
{
$z = 0;
while ($selData = $res2->fetchRow(DB_FETCHMODE_ASSOC))
{
if ($z > 0)
{
break;
}
$lastPost_top = $selData["pos_top_fk"]."#".$selData["pos_thr_fk"]."#".$selData["pos_pk"];
$z ++;
}
}
$query5 = "UPDATE frm_data ".
"SET ".
"top_last_post = '".$lastPost_top."' ".
"WHERE top_frm_fk = '".$this->id."'";
$this->ilias->db->query($query5);
return $dead_thr;
}
Here is the call graph for this function:| ilForum::deletePostTree | ( | $ | a_node | ) |
delete node and the whole subtree under this node public
| array | node_data of a node |
Definition at line 1183 of file class.ilForum.php.
References $query, $res, $result, and $row.
Referenced by deletePost().
{
// GET LEFT AND RIGHT VALUES
$query = "SELECT * FROM frm_posts_tree ".
"WHERE thr_fk = '".$a_node["tree"]."' ".
"AND pos_fk = '".$a_node["pos_pk"]."' ".
"AND parent_pos = '".$a_node["parent"]."'";
$res = $this->ilias->db->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$a_node["lft"] = $row->lft;
$a_node["rgt"] = $row->rgt;
}
$diff = $a_node["rgt"] - $a_node["lft"] + 1;
// get data of posts
$query = "SELECT * FROM frm_posts_tree ".
"WHERE lft BETWEEN '".$a_node["lft"]."' AND '".$a_node["rgt"]." '".
"AND thr_fk = '".$a_node["tree"]."'";
$result = $this->ilias->db->query($query);
$del_id = array();
while ($treeData = $result->fetchRow(DB_FETCHMODE_ASSOC))
{
$del_id[] = $treeData["pos_fk"];
}
// delete subtree
$query = "DELETE FROM frm_posts_tree ".
"WHERE lft BETWEEN '".$a_node["lft"]."' AND '".$a_node["rgt"]." '".
"AND thr_fk = '".$a_node["tree"]."'";
$this->ilias->db->query($query);
// close gaps
$query = "UPDATE frm_posts_tree SET ".
"lft = CASE ".
"WHEN lft > '".$a_node["lft"]." '".
"THEN lft - '".$diff." '".
"ELSE lft ".
"END, ".
"rgt = CASE ".
"WHEN rgt > '".$a_node["lft"]." '".
"THEN rgt - '".$diff." '".
"ELSE rgt ".
"END ".
"WHERE thr_fk = '".$a_node["tree"]."'";
$this->ilias->db->query($query);
return $del_id;
}
Here is the caller graph for this function:| ilForum::fetchPostNodeData | ( | $ | a_row | ) |
get data of parent node from frm_posts_tree and frm_posts private
| object | db db result object containing node_data |
Definition at line 1117 of file class.ilForum.php.
References $data, $lng, $tmp_user, and ilObject::_exists().
Referenced by getFirstPostNode(), getPostChilds(), getPostNode(), and getPostTree().
{
global $lng;
require_once("./classes/class.ilObjUser.php");
if (ilObject::_exists($a_row->pos_usr_id))
{
$tmp_user = new ilObjUser($a_row->pos_usr_id);
$fullname = $tmp_user->getFullname();
}
$fullname = $fullname ? $fullname : ($a_row->import_name ? $a_row->import_name : $lng->txt("unknown"));
$data = array(
"pos_pk" => $a_row->pos_pk,
"child" => $a_row->pos_pk,
"author" => $a_row->pos_usr_id,
"title" => $fullname,
"type" => "post",
"message" => $a_row->pos_message,
"subject" => $a_row->pos_subject,
"pos_cens_com" => $a_row->pos_cens_com,
"pos_cens" => $a_row->pos_cens,
"date" => $a_row->date,
"create_date" => $a_row->pos_date,
"update" => $a_row->pos_update,
"update_user" => $a_row->update_user,
"tree" => $a_row->thr_fk,
"parent" => $a_row->parent_pos,
"lft" => $a_row->lft,
"rgt" => $a_row->rgt,
"depth" => $a_row->depth,
"id" => $a_row->fpt_pk,
"notify" => $a_row->notify,
"import_name" => $a_row->import_name
);
$data["message"] = stripslashes($data["message"]);
return $data ? $data : array();
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::generatePost | ( | $ | topic, | |
| $ | thread, | |||
| $ | user, | |||
| $ | message, | |||
| $ | parent_pos, | |||
| $ | notify, | |||
| $ | subject, | |||
| $ | date = "" | |||
| ) |
generate new dataset in frm_posts
| integer | $topic | |
| integer | $thread | |
| integer | $user | |
| string | $message | |
| integer | $parent_pos |
Definition at line 373 of file class.ilForum.php.
References $q, $result, $user, __sendMessage(), addPostTree(), getForumRefId(), getImportName(), ilObjectFactory::getInstanceByRefId(), insertPostNode(), and ilUtil::prepareDBString().
Referenced by generateThread().
{
$date = $date ? $date : date("Y-m-d H:i:s");
$pos_data = array(
"pos_top_fk" => $topic,
"pos_thr_fk" => $thread,
"pos_usr_id" => $user,
"pos_message"=> strip_tags(addslashes($message)),
"pos_subject" => addslashes($subject),
"pos_date" => $date
);
// insert new post into frm_posts
$q = "INSERT INTO frm_posts ";
$q .= "(pos_top_fk,pos_thr_fk,pos_usr_id,pos_message,pos_subject,pos_date,notify,import_name) ";
$q .= "VALUES ";
$q .= "('".$pos_data["pos_top_fk"]."','".$pos_data["pos_thr_fk"]."','".$pos_data["pos_usr_id"]."','";
$q .= $pos_data["pos_message"]."','".$pos_data["pos_subject"]."','".$pos_data["pos_date"]."','".$notify."','";
$q .= ilUtil::prepareDBString($this->getImportName())."')";
$result = $this->ilias->db->query($q);
// get last insert id and return it
$lastInsert = $this->ilias->db->getLastInsertId();
// entry in tree-table
if ($parent_pos == 0)
{
$this->addPostTree($thread, $lastInsert);
}
else
{
$this->insertPostNode($lastInsert,$parent_pos,$thread);
}
// string last post
$lastPost = $topic."#".$thread."#".$lastInsert;
// update thread
$q = "UPDATE frm_threads SET thr_num_posts = thr_num_posts + 1, ";
$q .= "thr_last_post = '".$lastPost. "' ";
$q .= "WHERE thr_pk = '" . $thread . "'";
$result = $this->ilias->db->query($q);
// update topic
$q = "UPDATE frm_data SET top_num_posts = top_num_posts + 1, ";
$q .= "top_last_post = '" .$lastPost. "' ";
$q .= "WHERE top_pk = '" . $topic . "'";
$result = $this->ilias->db->query($q);
// MARK READ
$forum_obj = ilObjectFactory::getInstanceByRefId($this->getForumRefId());
$forum_obj->markPostRead($user,$thread,$lastInsert);
// FINALLY SEND MESSAGE
$this->__sendMessage($parent_pos);
return $lastInsert;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::generateThread | ( | $ | topic, | |
| $ | user, | |||
| $ | subject, | |||
| $ | message, | |||
| $ | notify, | |||
| $ | date = '' | |||
| ) |
generate new dataset in frm_threads
| integer | $topic | |
| integer | $user | |
| string | $subject | |
| string | $message |
Definition at line 443 of file class.ilForum.php.
References $q, $result, $user, generatePost(), getForumRefId(), getImportName(), ilObjectFactory::getInstanceByRefId(), and ilUtil::prepareDBString().
{
$date = $date ? $date : date("Y-m-d H:i:s");
$thr_data = array(
"thr_top_fk" => $topic,
"thr_usr_id" => $user,
"thr_subject" => addslashes($subject),
"thr_date" => $date
);
// insert new thread into frm_threads
$q = "INSERT INTO frm_threads ";
$q .= "(thr_top_fk,thr_usr_id,thr_subject,thr_date,thr_update,import_name) ";
$q .= "VALUES ";
$q .= "('".$thr_data["thr_top_fk"]."','".$thr_data["thr_usr_id"]."','".
$thr_data["thr_subject"]."','".$thr_data["thr_date"]."','".$thr_data["thr_date"]."','".
ilUtil::prepareDBString($this->getImportName())."')";
$result = $this->ilias->db->query($q);
// get last insert id and return it
$lastInsert = $this->ilias->db->getLastInsertId();
// update topic
$q = "UPDATE frm_data SET top_num_threads = top_num_threads + 1 ";
$q .= "WHERE top_pk = '" . $topic . "'";
$result = $this->ilias->db->query($q);
// MARK READ
$forum_obj = ilObjectFactory::getInstanceByRefId($this->getForumRefId());
return $this->generatePost($topic, $lastInsert, $user, $message,0,$notify,$subject,$date);
}
Here is the call graph for this function:| ilForum::getDbTable | ( | ) |
get name of database table
Definition at line 197 of file class.ilForum.php.
{
return $this->dbTable;
}
| ilForum::getFirstPostNode | ( | $ | tree_id | ) |
get data of the first node from frm_posts_tree and frm_posts public
| integer | tree id |
Definition at line 1079 of file class.ilForum.php.
References $query, $res, $row, and fetchPostNodeData().
{
$query = "SELECT * FROM frm_posts, frm_posts_tree ".
"WHERE pos_pk = pos_fk ".
"AND parent_pos = 0 ".
"AND thr_fk = '".$tree_id."'";
$res = $this->ilias->db->query($query);
$row = $res->fetchRow(DB_FETCHMODE_OBJECT);
return $this->fetchPostNodeData($row);
}
Here is the call graph for this function:| ilForum::getForumId | ( | ) |
get forum id public
Definition at line 129 of file class.ilForum.php.
Referenced by __deletePostFiles().
{
return $this->id;
}
Here is the caller graph for this function:| ilForum::getForumPath | ( | $ | a_ref_id | ) |
builds a string to show the forum-context
| integer | ref_id |
Definition at line 871 of file class.ilForum.php.
| ilForum::getForumRefId | ( | ) |
get forum ref_id public
Definition at line 139 of file class.ilForum.php.
Referenced by __formatMessage(), generatePost(), generateThread(), and getModerators().
{
return $this->ref_id;
}
Here is the caller graph for this function:| ilForum::getImportName | ( | ) |
Definition at line 1446 of file class.ilForum.php.
Referenced by generatePost(), and generateThread().
{
return $this->import_name;
}
Here is the caller graph for this function:| ilForum::getLastPost | ( | $ | lastPost | ) |
get content of given ID's
| string | $lastPost: ID's, separated with # |
Definition at line 728 of file class.ilForum.php.
References $q, $result, convertDate(), and prepareText().
{
$LP = explode("#", $lastPost);
$q = "SELECT DISTINCT frm_posts.* FROM frm_posts WHERE ";
//$q = "SELECT DISTINCT frm_posts.*, usr_data.login FROM frm_posts, usr_data WHERE ";
$q .= "pos_top_fk = '".$LP[0]."' AND ";
$q .= "pos_thr_fk = '".$LP[1]."' AND ";
$q .= "pos_pk = '".$LP[2]."'";
//$q .= "pos_usr_id = usr_id";
$result = $this->ilias->db->getRow($q, DB_FETCHMODE_ASSOC);
// limit the message-size
$result["pos_message"] = $this->prepareText($result["pos_message"],2);
if (strpos($result["pos_message"], $this->txtQuote2) > 0)
{
$viewPos = strrpos($result["pos_message"], $this->txtQuote2) + strlen($this->txtQuote2);
$result["pos_message"] = substr($result["pos_message"], $viewPos);
}
if (strlen($result["pos_message"]) > 40)
$result["pos_message"] = substr($result["pos_message"], 0, 37)."...";
$result["pos_message"] = stripslashes($result["pos_message"]);
// convert date
$result["pos_date"] = $this->convertDate($result["pos_date"]);
return $result;
}
Here is the call graph for this function:| ilForum::getModeratorFromPost | ( | $ | pos_pk | ) |
get one post-dataset
| integer | post id |
Definition at line 1340 of file class.ilForum.php.
| ilForum::getModerators | ( | ) |
get all users assigned to local role il_frm_moderator_<frm_ref_id>
Definition at line 781 of file class.ilForum.php.
References $rbacreview, _getModerators(), and getForumRefId().
{
global $rbacreview;
return ilObjForum::_getModerators($this->getForumRefId());
}
Here is the call graph for this function:| ilForum::getOneDataset | ( | ) |
get one dataset from set Table and set WhereCondition
Definition at line 262 of file class.ilForum.php.
References $q, $res, and setWhereCondition().
{
$q = "SELECT * FROM ".$this->dbTable." WHERE ( ".$this->whereCondition." )";
if ($this->orderField != "")
$q .= " ORDER BY ".$this->orderField;
$res = $this->ilias->db->getRow($q, DB_FETCHMODE_ASSOC);
$this->setWhereCondition("1");
return $res;
}
Here is the call graph for this function:| ilForum::getOnePost | ( | $ | post | ) |
get one post-dataset
| integer | post id |
Definition at line 336 of file class.ilForum.php.
References $q, $result, and convertDate().
Referenced by __sendMessage().
{
$q = "SELECT frm_posts.*, usr_data.lastname FROM frm_posts, usr_data WHERE ";
$q .= "pos_pk = '".$post."' AND ";
$q .= "pos_usr_id = usr_id";
$result = $this->ilias->db->getRow($q, DB_FETCHMODE_ASSOC);
$result["pos_date"] = $this->convertDate($result["pos_date"]);
$result["pos_message"] = nl2br(stripslashes($result["pos_message"]));
return $result;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::getOneThread | ( | ) |
get one thread-dataset by WhereCondition
Definition at line 317 of file class.ilForum.php.
References $query, $result, and setWhereCondition().
Referenced by __sendMessage().
{
$query = "SELECT * FROM frm_threads WHERE ( ".$this->whereCondition." )";
$result = $this->ilias->db->getRow($query, DB_FETCHMODE_ASSOC);
$this->setWhereCondition("1");
$result["thr_subject"] = trim(stripslashes($result["thr_subject"]));
return $result;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::getOneTopic | ( | ) |
get one topic-dataset by WhereCondition
Definition at line 282 of file class.ilForum.php.
References $query, $result, and setWhereCondition().
{
$query = "SELECT * FROM frm_data WHERE ( ".$this->whereCondition." )";
$result = $this->ilias->db->getRow($query, DB_FETCHMODE_ASSOC);
$this->setWhereCondition("1");
$result["top_name"] = trim(stripslashes($result["top_name"]));
$result["top_description"] = nl2br(stripslashes($result["top_description"]));
return $result;
}
Here is the call graph for this function:| ilForum::getOrderField | ( | ) |
get name of orderField
Definition at line 168 of file class.ilForum.php.
{
return $this->orderField;
}
| ilForum::getPageHits | ( | ) |
get number of max.
visible datasets
Definition at line 250 of file class.ilForum.php.
{
return $this->pageHits;
}
| ilForum::getPostById | ( | $ | a_id | ) |
| ilForum::getPostChilds | ( | $ | a_node_id, | |
| $ | a_thr_id | |||
| ) |
get child nodes of given node public
| integer | node_id | |
| string | sort order of returned childs, optional (possible values: 'title','desc','last_update' or 'type') | |
| string | sort direction, optional (possible values: 'DESC' or 'ASC'; defalut is 'ASC') |
Definition at line 1039 of file class.ilForum.php.
References $count, $q, $row, and fetchPostNodeData().
{
// init childs
$childs = array();
// number of childs
$count = 0;
$q = "SELECT * FROM frm_posts_tree,frm_posts ".
"WHERE frm_posts.pos_pk = frm_posts_tree.pos_fk ".
"AND frm_posts_tree.parent_pos = '".$a_node_id."' ".
"AND frm_posts_tree.thr_fk = '".$a_thr_id."' ".
"ORDER BY frm_posts_tree.lft DESC";
$r = $this->ilias->db->query($q);
$count = $r->numRows();
if ($count > 0)
{
while ($row = $r->fetchRow(DB_FETCHMODE_OBJECT))
{
$childs[] = $this->fetchPostNodeData($row);
}
// mark the last child node (important for display)
$childs[$count - 1]["last"] = true;
return $childs;
}
else
{
return $childs;
}
}
Here is the call graph for this function:| ilForum::getPostDepth | ( | $ | a_node_id, | |
| $ | tree_id | |||
| ) |
Return depth of an object private.
| integer | node_id of parent's node_id | |
| integer | node_id of parent's node parent_id |
Definition at line 983 of file class.ilForum.php.
Referenced by insertPostNode().
{
if ($tree_id)
{
$query = "SELECT depth FROM frm_posts_tree ".
"WHERE pos_fk = '".$a_node_id."' ".
"AND thr_fk = '".$tree_id."'";
$res = $this->ilias->db->getRow($query);
return $res->depth;
}
else
{
return 0;
}
}
Here is the caller graph for this function:| ilForum::getPostList | ( | $ | topic, | |
| $ | thread | |||
| ) |
get all posts of given thread
| integer | topic: forum-ID | |
| integer | thread: thread-ID |
Definition at line 705 of file class.ilForum.php.
{
$q = "SELECT frm_posts.*, usr_data.lastname FROM frm_posts, usr_data WHERE ";
$q .= "pos_top_fk ='".$topic."' AND ";
$q .= "pos_thr_fk ='".$thread."' AND ";
$q .= "pos_usr_id = usr_id";
if ($this->orderField != "")
{
$q .= " ORDER BY ".$this->orderField;
}
$res = $this->ilias->db->query($q);
return $res;
}
| ilForum::getPostMaximumDepth | ( | $ | a_thr_id | ) |
Return the maximum depth in tree public.
Definition at line 1165 of file class.ilForum.php.
| ilForum::getPostNode | ( | $ | post_id | ) |
get data of given node from frm_posts_tree and frm_posts public
| integer | post_id |
Definition at line 1099 of file class.ilForum.php.
References $query, $res, $row, and fetchPostNodeData().
Referenced by deletePost().
{
$query = "SELECT * FROM frm_posts, frm_posts_tree ".
"WHERE pos_pk = pos_fk ".
"AND pos_pk = '".$post_id."'";
$res = $this->ilias->db->query($query);
$row = $res->fetchRow(DB_FETCHMODE_OBJECT);
return $this->fetchPostNodeData($row);
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::getPostTree | ( | $ | a_node | ) |
get all nodes in the subtree under specified node
public
| array | node_data |
Definition at line 1008 of file class.ilForum.php.
References $query, $res, $row, and fetchPostNodeData().
{
$subtree = array();
$query = "SELECT * FROM frm_posts_tree ".
"LEFT JOIN frm_posts ON frm_posts.pos_pk = frm_posts_tree.pos_fk ".
"WHERE frm_posts_tree.lft BETWEEN '".$a_node["lft"]."' AND '".$a_node["rgt"]."' ".
"AND thr_fk = '".$a_node["tree"]."'";
if ($this->orderField == "frm_posts_tree.date")
$query .= " ORDER BY ".$this->orderField." ASC";
else if ($this->orderField != "")
$query .= " ORDER BY ".$this->orderField." DESC";
//echo ":".$this->orderField.":<br>";
$res = $this->ilias->db->query($query);
while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$subtree[] = $this->fetchPostNodeData($row);
}
return $subtree;
}
Here is the call graph for this function:| ilForum::getThreadList | ( | $ | topic | ) |
get all threads of given forum
| integer | topic: forum-ID |
Definition at line 675 of file class.ilForum.php.
{
$query = "SELECT frm_threads.* FROM frm_threads WHERE ".
"thr_top_fk = '".$topic."' ";
// DOES NOT WORK WITH UNKNOWN IMPORTED USERS
//
//$q = "SELECT frm_threads.*, usr_data.lastname FROM frm_threads, usr_data WHERE ";
//$q .= "thr_top_fk ='".$topic."' AND ";
//$q .= "thr_usr_id = usr_id";
//
if ($this->orderField != "")
{
$query .= " ORDER BY ".$this->orderField;
}
$res = $this->ilias->db->query($query);
return $res;
}
| ilForum::getUser | ( | $ | a_user_id | ) |
get content of given user-ID
| integer | $a_user_id: user-ID |
Definition at line 768 of file class.ilForum.php.
{
$userObj = new ilObjUser($a_user_id);
return $userObj;
}
| ilForum::getUserData | ( | $ | a_id, | |
| $ | a_import_name = 0 | |||
| ) |
Definition at line 1422 of file class.ilForum.php.
References $lng, $query, $res, $row, ilObject::_exists(), and ilObjectFactory::getInstanceByObjId().
{
global $lng;
if($a_id && ilObject::_exists($a_id) && ilObjectFactory::getInstanceByObjId($a_id,false))
{
$query = "SELECT * FROM usr_data WHERE usr_id = '".$a_id."'";
$res = $this->ilias->db->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$tmp_array["usr_id"] = $row->usr_id;
$tmp_array["login"] = $row->login;
}
return $tmp_array ? $tmp_array : array();
}
else
{
$login = $a_import_name ? $a_import_name." (".$lng->txt("imported").")" : $lng->txt("unknown");
return array("usr_id" => 0,"login" => $login);
}
}
Here is the call graph for this function:| ilForum::getWhereCondition | ( | ) |
get content of whereCondition
Definition at line 220 of file class.ilForum.php.
{
return $this->whereCondition;
}
| ilForum::ilForum | ( | ) |
| ilForum::insertPostNode | ( | $ | a_node_id, | |
| $ | a_parent_id, | |||
| $ | tree_id | |||
| ) |
insert node under parent node public
| integer | node_id | |
| integer | tree_id | |
| integer | parent_id (optional) |
Definition at line 939 of file class.ilForum.php.
References $left, $lft, $query, $res, $rgt, and getPostDepth().
Referenced by generatePost().
{
// get left value
$query = "SELECT * FROM frm_posts_tree ".
"WHERE pos_fk = '".$a_parent_id."' ".
"AND thr_fk = '".$tree_id."'";
$res = $this->ilias->db->getRow($query);
$left = $res->lft;
$lft = $left + 1;
$rgt = $left + 2;
// spread tree
$query = "UPDATE frm_posts_tree SET ".
"lft = CASE ".
"WHEN lft > ".$left." ".
"THEN lft + 2 ".
"ELSE lft ".
"END, ".
"rgt = CASE ".
"WHEN rgt > ".$left." ".
"THEN rgt + 2 ".
"ELSE rgt ".
"END ".
"WHERE thr_fk = '".$tree_id."'";
$this->ilias->db->query($query);
$depth = $this->getPostDepth($a_parent_id, $tree_id) + 1;
// insert node
$query = "INSERT INTO frm_posts_tree (thr_fk,pos_fk,parent_pos,lft,rgt,depth,date) ".
"VALUES ".
"('".$tree_id."','".$a_node_id."','".$a_parent_id."','".$lft."','".$rgt."','".$depth."','".date("Y-m-d H:i:s")."')";
$this->ilias->db->query($query);
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilForum::postCensorship | ( | $ | message, | |
| $ | pos_pk, | |||
| $ | cens = 0 | |||
| ) |
update dataset in frm_posts with censorship info
| string | message | |
| integer | pos_pk |
Definition at line 509 of file class.ilForum.php.
References $q.
| ilForum::prepareText | ( | $ | text, | |
| $ | edit = 0 | |||
| ) |
prepares given string public
| string | ||
| integer |
Definition at line 1267 of file class.ilForum.php.
References $lng.
Referenced by getLastPost().
{
global $lng;
if ($edit == 1)
{
$text = ereg_replace("\[quote\].*\[\/quote\]", "", $text);
//$text = str_replace($this->txtQuote1, "", $text);
//$text = str_replace($this->txtQuote2, "", $text);
$text = $this->txtQuote1.$text.$this->txtQuote2;
}
else
{
// check for quotation
$startZ = substr_count ($text, $this->txtQuote1);
$endZ = substr_count ($text, $this->txtQuote2);
if ($startZ > 0 || $endZ > 0)
{
if ($startZ > $endZ)
{
$diff = $startZ - $endZ;
for ($i = 0; $i < $diff; $i++)
{
$text .= $this->txtQuote2;
}
}
elseif ($startZ < $endZ)
{
$diff = $endZ - $startZ;
for ($i = 0; $i < $diff; $i++)
{
$text = $this->txtQuote1.$text;
}
}
// only one txtQuote can exist...
if ($startZ > 1)
{
$start_firstPos = strpos($text, $this->txtQuote1);
$text_s2 = str_replace($this->txtQuote1, "", substr($text, ($start_firstPos+strlen($this->txtQuote1))));
$text_s1 = substr($text, 0, ($start_firstPos+strlen($this->txtQuote1)));
$text = $text_s1.$text_s2;
}
if ($endZ > 1)
{
$end_firstPos = strrpos($text, $this->txtQuote2);
$text_e1 = str_replace($this->txtQuote2, "", substr($text, 0, $end_firstPos));
$text_e2 = substr($text, $end_firstPos);
$text = $text_e1.$text_e2;
}
if ($edit == 0)
{
$text = str_replace($this->txtQuote1, "<blockquote><b>".$lng->txt("quote")."</b>:</blockquote>".$this->replQuote1, $text);
$text = str_replace($this->txtQuote2, $this->replQuote2, $text);
}
}
}
$text = stripslashes($text);
return $text;
}
Here is the caller graph for this function:| ilForum::setDbTable | ( | $ | dbTable | ) |
| ilForum::setForumId | ( | $ | a_obj_id | ) |
set object id which refers to ILIAS obj_id
| integer | object id public |
Definition at line 97 of file class.ilForum.php.
{
if (!isset($a_obj_id))
{
$message = get_class($this)."::setForumId(): No obj_id given!";
$this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
}
$this->id = $a_obj_id;
}
| ilForum::setForumRefId | ( | $ | a_ref_id | ) |
set reference id which refers to ILIAS obj_id
| integer | object id public |
Definition at line 113 of file class.ilForum.php.
{
if (!isset($a_ref_id))
{
$message = get_class($this)."::setForumRefId(): No ref_id given!";
$this->ilias->raiseError($message,$this->ilias->error_obj->WARNING);
}
$this->ref_id = $a_ref_id;
}
| ilForum::setImportName | ( | $ | a_import_name | ) |
Definition at line 1450 of file class.ilForum.php.
{
$this->import_name = $a_import_name;
}
| ilForum::setOrderField | ( | $ | orderField | ) |
set database field for sorting results
| string | $orderField database field for sorting |
Definition at line 150 of file class.ilForum.php.
References $orderField.
{
if ($orderField == "")
{
die($this->className . "::setOrderField(): No orderField given.");
}
else
{
$this->orderField = $orderField;
}
}
| ilForum::setPageHits | ( | $ | pageHits | ) |
set number of max.
visible datasets
| integer | $pageHits |
Definition at line 231 of file class.ilForum.php.
References $pageHits.
| ilForum::setWhereCondition | ( | $ | whereCondition = "1" |
) |
set content of WHERE condition
| string | $whereCondition |
Definition at line 208 of file class.ilForum.php.
References $whereCondition.
Referenced by __sendMessage(), getOneDataset(), getOneThread(), getOneTopic(), and updateVisits().
{
$this->whereCondition = $whereCondition;
return true;
}
Here is the caller graph for this function:| ilForum::updatePost | ( | $ | message, | |
| $ | pos_pk, | |||
| $ | notify, | |||
| $ | subject | |||
| ) |
update dataset in frm_posts
| string | message | |
| integer | pos_pk |
Definition at line 486 of file class.ilForum.php.
References $q.
{
$q = "UPDATE frm_posts ".
"SET ".
"pos_message = '".addslashes($message)."',".
"pos_subject = '".addslashes($subject)."',".
"pos_update = '".date("Y-m-d H:i:s")."',".
"update_user = '".$_SESSION["AccountId"]."', ".
"notify = '".$notify."' ".
"WHERE pos_pk = '".$pos_pk."'";
$this->ilias->db->query($q);
return true;
}
| ilForum::updateVisits | ( | $ | ID | ) |
update page hits of given forum- or thread-ID public
| integer |
Definition at line 1242 of file class.ilForum.php.
References $_SESSION, $q, and setWhereCondition().
{
$checkTime = time() - (60*60);
if ($_SESSION["frm_visit_".$this->dbTable."_".$ID] < $checkTime)
{
$_SESSION["frm_visit_".$this->dbTable."_".$ID] = time();
$q = "UPDATE ".$this->dbTable." SET ";
$q .= "visits = visits + 1 ";
$q .= "WHERE ( ".$this->whereCondition." )";
$this->ilias->db->query($q);
}
$this->setWhereCondition("1");
}
Here is the call graph for this function:| ilForum::$className = "ilForum" |
Definition at line 57 of file class.ilForum.php.
| ilForum::$dbTable |
Definition at line 50 of file class.ilForum.php.
Referenced by setDbTable().
| ilForum::$id |
Definition at line 78 of file class.ilForum.php.
| ilForum::$ilias |
Definition at line 41 of file class.ilForum.php.
Referenced by ilForum().
| ilForum::$lng |
Definition at line 42 of file class.ilForum.php.
Referenced by convertDate(), fetchPostNodeData(), getUserData(), ilForum(), and prepareText().
| ilForum::$orderField |
Definition at line 65 of file class.ilForum.php.
Referenced by setOrderField().
| ilForum::$pageHits = 30 |
Definition at line 75 of file class.ilForum.php.
Referenced by setPageHits().
| ilForum::$replQuote1 = "<blockquote class=\"quote\"><hr size=\"1\" color=\"#000000\">" |
Definition at line 71 of file class.ilForum.php.
| ilForum::$replQuote2 = "<hr size=\"1\" color=\"#000000\"/></blockquote>" |
Definition at line 72 of file class.ilForum.php.
| ilForum::$txtQuote1 = "[quote]" |
Definition at line 69 of file class.ilForum.php.
| ilForum::$txtQuote2 = "[/quote]" |
Definition at line 70 of file class.ilForum.php.
| ilForum::$whereCondition = "1" |
Definition at line 67 of file class.ilForum.php.
Referenced by setWhereCondition().
1.7.1