1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-11 09:04:38 +02:00

Bugtracker #3968 - handle comments from custom pages

This commit is contained in:
e107steved
2007-08-08 19:28:10 +00:00
parent 7695070101
commit ee5bf62858
2 changed files with 84 additions and 89 deletions

View File

@@ -12,8 +12,8 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/comment_class.php,v $
| $Revision: 1.6 $
| $Date: 2007-06-05 18:54:56 $
| $Revision: 1.7 $
| $Date: 2007-08-08 19:28:04 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
*/
@@ -266,8 +266,8 @@ class comment {
$text = $tp -> parseTemplate($renderstyle, TRUE, $comment_shortcodes);
if ($action == "comment" && $pref['nested_comments']) {
if ($action == "comment" && $pref['nested_comments'])
{
$type = $this -> getCommentType($thistable);
$sub_query = "
SELECT c.*, u.*, ue.*
@@ -278,20 +278,20 @@ class comment {
ORDER BY comment_datestamp
";
$sql2 = new db; /* a new db must be created here, for nested comment */
if ($sub_total = $sql2->db_Select_gen($sub_query)) {
while ($row1 = $sql2->db_Fetch()) {
if ($pref['nested_comments']) {
$width = $width + 3;
if ($width > 80) {
$width = 80;
}
}
$text .= $this->render_comment($row1, $table, $action, $id, $width, $subject, $addrating);
unset($width);
$sql_nc = new db; /* a new db must be created here, for nested comment */
if ($sub_total = $sql_nc->db_Select_gen($sub_query))
{
while ($row1 = $sql_nc->db_Fetch())
{
if ($pref['nested_comments'])
{
$width = min($width + 3, 80);
}
$text .= $this->render_comment($row1, $table, $action, $id, $width, $subject, $addrating);
unset($width);
}
}
}
} // End (nested comment handling)
//echo $text;
return stripslashes($text);
}
@@ -707,8 +707,8 @@ class comment {
if ($comment_total = $sql->db_Select_gen($query))
{
$width = 0;
while ($row = $sql->db_Fetch()){
while ($row = $sql->db_Fetch())
{
$ret = array();
//date
@@ -728,9 +728,11 @@ class comment {
//subject
$ret['comment_subject'] = $tp->toHTML($row['comment_subject'], TRUE);
// news
if($row['comment_type'] == "0"){
if($sql2 -> db_Select("news", "*", "news_id='".$row['comment_item_id']."' AND news_class REGEXP '".e_CLASS_REGEXP."' ")){
switch ($row['comment_type'])
{
case '0' : // news
if($sql2 -> db_Select("news", "*", "news_id='".$row['comment_item_id']."' AND news_class REGEXP '".e_CLASS_REGEXP."' "))
{
$row2 = $sql2 -> db_Fetch();
$ret['comment_type'] = COMLAN_TYPE_1;
@@ -739,14 +741,15 @@ class comment {
$ret['comment_category_heading'] = COMLAN_TYPE_1;
$ret['comment_category_url'] = e_BASE."news.php";
}
// article, review or content page
}elseif($row['comment_type'] == "1"){
// downloads
}elseif($row['comment_type'] == "2"){
// $mp = MPREFIX;
break;
case '1' : // article, review or content page - defunct category, but filter them out
break;
case '2' : // downloads
$qryd = "SELECT d.download_name, dc.download_category_class, dc.download_category_id, dc.download_category_name FROM #download AS d LEFT JOIN #download_category AS dc ON d.download_category=dc.download_category_id WHERE d.download_id={$row['comment_item_id']} AND dc.download_category_class REGEXP '".e_CLASS_REGEXP."' ";
if($sql2->db_Select_gen($qryd)){
if($sql2->db_Select_gen($qryd))
{
$row2 = $sql2->db_Fetch();
$ret['comment_type'] = COMLAN_TYPE_2;
@@ -755,67 +758,52 @@ class comment {
$ret['comment_category_heading'] = $row2['download_category_name'];
$ret['comment_category_url'] = e_BASE."download.php?list.".$row2['download_category_id'];
}
/*
// faq (should use an e_comment.php file)
}elseif($row['comment_type'] == "3"){
if($sql2 -> db_Select("faq", "faq_question", "faq_id='".$row['comment_item_id']."' ")){
$row2 = $sql2 -> db_Fetch();
$ret['comment_type'] = COMLAN_TYPE_3;
$ret['comment_title'] = $tp -> toHTML($row2['faq_question'], TRUE,'emotes_off, no_make_clickable');
$ret['comment_url'] = e_PLUGIN."faq/faq.php?view.".$row2['comment_item_id'];
}
*/
// poll
}elseif($row['comment_type'] == "4"){
if($sql2 -> db_Select("polls", "*", "poll_id='".$row['comment_item_id']."' ")){
break;
// '3' was FAQ
case '4' : // poll
if($sql2 -> db_Select("polls", "*", "poll_id='".$row['comment_item_id']."' "))
{
$row2 = $sql2 -> db_Fetch();
$ret['comment_type'] = COMLAN_TYPE_4;
$ret['comment_title'] = $tp -> toHTML($row2['poll_title'], TRUE,'emotes_off, no_make_clickable');
$ret['comment_url'] = e_BASE."comment.php?comment.poll.".$row['comment_item_id'];
}
/*
// docs (should use an e_comment.php file)
}elseif($row['comment_type'] == "5"){
//$str .= $bullet." <b><a href='http://e107.org/docs/main.php?$comment_item_id'>Doc $comment_item_id</a></b><br />";
//$str .= ($recent_pref['comments_cat'] ? $style_pre."".LIST_31."<br />" : "").($recent_pref['comments_author'] ? $style_pre."".($comment_author_id == 0 ? $comment_author_name : "<a href='".e_BASE."user.php?id.".$comment_author_name."'>".$comment_author_name."</a>" )."<br />" : "").($recent_pref['comments_date'] ? $style_pre."".$datestamp."<br />" : "");
// bugtracker (should use an e_comment.php file)
}elseif($row['comment_type'] == "6"){
if($sql2 -> db_Select("bugtrack2_bugs", "bugtrack2_bugs_summary", "bugtrack2_bugs_id='".$row['comment_item_id']."' ")){
$row2 = $sql2 -> db_Fetch();
$ret['comment_type'] = COMLAN_TYPE_6;
$ret['comment_title'] = $tp -> toHTML($row2['bugtrack2_bugs_summary'], TRUE,'emotes_off, no_make_clickable');
$ret['comment_url'] = e_PLUGIN."bugtracker2/bugtracker2.php?0.bug.".$row['comment_item_id'];
}
// ideas (should use an e_comment.php file)
}elseif($row['comment_type'] == "ideas"){
if($sql2 -> db_Select("ideas", "ideas_summary", "ideas_id='".$row['comment_item_id']."' ")){
$row2 = $sql2 -> db_Fetch();
$ret['comment_type'] = COMLAN_TYPE_7;
$ret['comment_title'] = $tp -> toHTML($row2['ideas_summary'], TRUE,'emotes_off, no_make_clickable');
$ret['comment_url'] = e_PLUGIN."ideas/ideas.php?show.".$row['comment_item_id'];
}
*/
// userprofile
}elseif($row['comment_type'] == "profile"){
break;
// '5' was docs
// '6' was bugtracker
// 'ideas' was implemented
case 'profile' : // userprofile
if(USER)
{
$ret['comment_type'] = COMLAN_TYPE_8;
$ret['comment_title'] = $comment_author_name;
$ret['comment_url'] = e_BASE."user.php?id.".$row['comment_item_id'];
}
}elseif(isset($e_comment[$row['comment_type']]) && is_array($e_comment[$row['comment_type']])){
$var = $e_comment[$row['comment_type']];
$qryp='';
//new method must use the 'qry' variable
if(isset($var) && $var['qry']!=''){
if($installed = $sql2 -> db_Select("plugin", "*", "plugin_path = '".$var['plugin_path']."' AND plugin_installflag = '1' ")){
break;
case 'page' : // Custom Page
$ret['comment_type'] = COMLAN_TYPE_PAGE;
$ret['comment_title'] = $ret['comment_subject'] ? $ret['comment_subject'] : $ret['comment_comment'];
$ret['comment_url'] = e_BASE."page.php?".$row['comment_item_id'];
break;
default :
if(isset($e_comment[$row['comment_type']]) && is_array($e_comment[$row['comment_type']]))
{
$var = $e_comment[$row['comment_type']];
$qryp='';
//new method must use the 'qry' variable
if(isset($var) && $var['qry']!='')
{
// if ($installed = $sql2 -> db_Select("plugin", "*", "plugin_path = '".$var['plugin_path']."' AND plugin_installflag = '1' "))
if ($installed = isset($pref['plug_installed'][$var['plugin_path']]))
{
$qryp = str_replace("{NID}", $row['comment_item_id'], $var['qry']);
if($sql2 -> db_Select_gen($qryp)){
if($sql2 -> db_Select_gen($qryp))
{
$row2 = $sql2 -> db_Fetch();
$ret['comment_type'] = $var['plugin_name'];
$ret['comment_title'] = $tp -> toHTML($row2[$var['db_title']], TRUE,'emotes_off, no_make_clickable');
@@ -825,7 +813,9 @@ class comment {
}
}
//old method
}else{
}
else
{
if($sql2 -> db_Select($var['db_table'], $var['db_title'], $var['db_id']." = '".$row['comment_item_id']."' ")){
$row2 = $sql2 -> db_Fetch();
$ret['comment_type'] = $var['plugin_name'];
@@ -834,20 +824,24 @@ class comment {
$ret['comment_category_heading'] = $var['plugin_name'];
$ret['comment_category_url'] = $var['plugin_name'];
}
}
}
}
if($ret['comment_title']){
} // End Switch
if($ret['comment_title'])
{
$reta[] = $ret;
$valid++;
}
if($amount && $valid>=$amount){
}
if($amount && $valid>=$amount)
{
return $reta;
}
}
//loop if less records found than given $amount - probably because we discarded some
if($amount && ($valid<$amount))
{
$reta = $this->getCommentData($amount, $from+$amount, $qry, $valid, $reta);
}
}
//loop if less records found than given $amount
if($amount && $valid<$amount){
$reta = $this->getCommentData($amount, $from+$amount, $qry, $valid, $reta);
}
}
return $reta;
}