assault14 Posted April 15, 2009 Share Posted April 15, 2009 here is the a modified code for the current comment system for php fusion v7 i was wondering if someone can mod it and make a workin ajax verion. because i have a video site and each time someone posts a comment the page has to reload. <?php if (!defined("IN_FUSION")) { die("Access Denied"); } include LOCALE.LOCALESET."comments.php"; // |-------------------| Some Required VSariables |-----------------------| $settings2 = dbarray(dbquery("SELECT comments_captcha_enable, comments_order FROM ".DB_SETTINGS)); // 1 = enable captcha, anything else will disable this mod $enable_captcha = $settings2['comments_captcha_enable']; // based on your preferences, you might want to make it "ASC" // which is ascending or "DESC" which is decending if($settings2['comments_order'] == 0) $order = "DESC"; else $order = "ASC"; // leave this blank $error = ""; // |-------------------| MOD ends |-----------------------| function showcomments($ctype, $cdb, $ccol, $cid, $clink) { global $settings, $locale, $userdata, $aidlink; if (iMEMBER && (isset($_GET['c_action']) && $_GET['c_action'] == "delete") && (isset($_GET['comment_id']) && isnum($_GET['comment_id']))) { if ((iADMIN && checkrights("C")) || (iMEMBER && dbcount("(comment_id)", DB_COMMENTS, "comment_id='".$_GET['comment_id']."' AND comment_name='".$userdata['user_id']."'"))) { $result = dbquery("DELETE FROM ".DB_COMMENTS." WHERE comment_id='".$_GET['comment_id']."'".(iADMIN ? "" : " AND comment_name='".$userdata['user_id']."'")); } redirect($clink); } if ((iMEMBER || $settings['guestposts'] == "1") && isset($_POST['post_comment'])) { if (iMEMBER) { $comment_name = $userdata['user_id']; // |-------------------| MOD added |-----------------------| // this part checks if members/guest users posted the correct captcha // otherwise, it will return an error message if(!iADMIN){ // admin does not have to go through this global $enable_captcha, $error; if ($enable_captcha == "1") { include_once INCLUDES."securimage/securimage.php"; $securimage = new Securimage(); if (!isset($_POST['captcha_code']) || $securimage->check($_POST['captcha_code']) == false) { $c_start = (ceil(dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='".$cid."' AND comment_type='".$ctype."'") / 10) - 1) * 10; redirect($clink."&rstart=".$c_start."&err=1"); } } } // |-------------------| MOD ends |-----------------------| } elseif ($settings['guestposts'] == "1") { $comment_name = trim(stripinput($_POST['comment_name'])); $comment_name = preg_replace("(^[0-9]*)", "", $comment_name); if (isnum($comment_name)) { $comment_name = ""; } } $comment_message = trim(stripinput(censorwords($_POST['comment_message']))); if (iMEMBER && (isset($_GET['c_action']) && $_GET['c_action'] == "edit") && (isset($_GET['comment_id']) && isnum($_GET['comment_id']))) { $comment_updated = false; if ((iADMIN && checkrights("C")) || (iMEMBER && dbcount("(comment_id)", DB_COMMENTS, "comment_id='".$_GET['comment_id']."' AND comment_name='".$userdata['user_id']."'"))) { if ($comment_message) { $result = dbquery("UPDATE ".DB_COMMENTS." SET comment_message='$comment_message' WHERE comment_id='".$_GET['comment_id']."'".(iADMIN ? "" : " AND comment_name='".$userdata['user_id']."'")); $comment_updated = true; } } if ($comment_updated) { $c_start = (ceil(dbcount("(comment_id)", DB_COMMENTS, "comment_id<='".$_GET['comment_id']."' AND comment_item_id='".$cid."' AND comment_type='".$ctype."'") / 10) - 1) * 10; } redirect($clink."&rstart=".(isset($c_start) && isnum($c_start) ? $c_start : "")); } else { if (!dbcount("(".$ccol.")", $cdb, $ccol."='".$cid."'")) { redirect(BASEDIR."index.php"); } if ($comment_name && $comment_message) { require_once INCLUDES."flood_include.php"; if (!flood_control("comment_datestamp", DB_COMMENTS, "comment_ip='".USER_IP."'")) { $result = dbquery("INSERT INTO ".DB_COMMENTS." (comment_item_id, comment_type, comment_name, comment_message, comment_datestamp, comment_ip) VALUES ('$cid', '$ctype', '$comment_name', '$comment_message', '".time()."', '".USER_IP."')"); } if(iMEMBER && USERGOLD && GLD_COMMENT) { payuser($comment_name, GLD_COMMENT, 'cash'); } } $c_start = (ceil(dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='".$cid."' AND comment_type='".$ctype."'") / 10) - 1) * 10; redirect($clink."&rstart=".$c_start); } } opentable($locale['c100']); echo "<a id='comments' name='comments'></a>"; $c_rows = dbcount("(comment_id)", DB_COMMENTS, "comment_item_id='$cid' AND comment_type='$ctype'"); if (!isset($_GET['c_start']) || !isnum($_GET['c_start'])) { $_GET['c_start'] = 0; } // |--------------| Slightly modified this query |-----------------------| global $order; $result = dbquery( "SELECT tcm.*,user_name FROM ".DB_COMMENTS." tcm LEFT JOIN ".DB_USERS." tcu ON tcm.comment_name=tcu.user_id WHERE comment_item_id='$cid' AND comment_type='$ctype' ORDER BY comment_datestamp ".$order." LIMIT ".$_GET['c_start'].",10" ); // |-------------------| MOD end |-----------------------| if (dbrows($result)) { $i = $_GET['c_start']+1; if ($c_rows > 10) { echo "<div style='text-align:center;margin-bottom:5px;'>".makecommentnav($_GET['c_start'], 10, $c_rows, 3, $clink."&")."</div>\n"; } while ($data = dbarray($result)) { echo "<div class='tbl2'>\n"; if ((iADMIN && checkrights("C")) || (iMEMBER && $data['comment_name'] == $userdata['user_id'] && isset($data['user_name']))) { echo "<div style='float:right' class='comment_actions'><!--comment_actions-->\n<a href='".FUSION_REQUEST."&c_action=edit&comment_id=".$data['comment_id']."#edit_comment'>".$locale['c108']."</a> |\n"; echo "<a href='".FUSION_REQUEST."&c_action=delete&comment_id=".$data['comment_id']."'>".$locale['c109']."</a>\n</div>\n"; } echo "<a href='".FUSION_REQUEST."#c".$data['comment_id']."' id='c".$data['comment_id']."' name='c".$data['comment_id']."'>#".$i."</a> | "; if ($data['user_name']) { echo "<span class='comment-name'><a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."'>".$data['user_name']."</a></span>\n"; } else { echo "<span class='comment-name'>".$data['comment_name']."</span>\n"; } echo "<span class='small'>".$locale['global_071'].showdate("longdate", $data['comment_datestamp'])."</span>\n"; echo "</div>\n<div class='tbl1 comment_message'><!--comment_message-->".nl2br(parseubb(parsesmileys($data['comment_message'])))."</div>\n"; $i++; } if (iADMIN && checkrights("C")) { echo "<div align='right' class='tbl2'><a href='".ADMIN."comments.php".$aidlink."&ctype=$ctype&cid=$cid'>".$locale['c106']."</a></div>\n"; } if ($c_rows > 10) { echo "<div style='text-align:center;margin-top:5px;'>".makecommentnav($_GET['c_start'], 10, $c_rows, 3, $clink."&")."</div>\n"; } } else { echo $locale['c101']."\n"; } closetable(); opentable($locale['c102']); if (iMEMBER && (isset($_GET['c_action']) && $_GET['c_action'] == "edit") && (isset($_GET['comment_id']) && isnum($_GET['comment_id']))) { $eresult = dbquery( "SELECT tcm.*,user_name FROM ".DB_COMMENTS." tcm LEFT JOIN ".DB_USERS." tcu ON tcm.comment_name=tcu.user_id WHERE comment_id='".$_GET['comment_id']."' AND comment_item_id='".$cid."' AND comment_type='".$ctype."'" ); if (dbrows($eresult)) { $edata = dbarray($eresult); if ((iADMIN && checkrights("C")) || (iMEMBER && $edata['comment_name'] == $userdata['user_id'] && isset($edata['user_name']))) { $clink .= "&c_action=edit&comment_id=".$edata['comment_id']; $comment_message = $edata['comment_message']; } } else { $comment_message = ""; } } else { $comment_message = ""; } if (iMEMBER || $settings['guestposts'] == "1") { require_once INCLUDES."bbcode_include.php"; echo "<a id='edit_comment' name='edit_comment'></a>\n"; echo "<form name='inputform' method='post' action='".$clink."'>\n"; if (iGUEST) { echo "<div align='center' class='tbl'>\n".$locale['c104']."<br />\n"; echo "<input type='text' name='comment_name' maxlength='30' class='textbox' style='width:360px' />\n"; echo "</div>\n"; } echo "<div align='center' class='tbl'>\n"; // |-------------------| MOD start |-----------------------| // this part checks if the post returns any error (now, there are only one error // which is wrong validate code if(isset($_GET['err']) && isnum($_GET['err'])){ if($_GET['err'] == '1'){ include_once LOCALE.LOCALESET."register.php"; echo "<span style='color:#ff0000'>".$locale['410']."</span>\n <br />"; } } // |-------------------| MOD end |-----------------------| echo "<textarea name='comment_message' cols='70' rows='6' class='textbox' style='width:360px'>".$comment_message."</textarea><br />\n"; echo display_bbcodes("360px", "comment_message")."<br />\n"; // |-------------------| MOD start |-----------------------| // this is the form of the captcha. // i placed them in a table because i wanted it to be properly align // you could modify the string here if you want to customise it's looks global $enable_captcha; if(!iADMIN){ if ($enable_captcha == "1") { include LOCALE.LOCALESET."global.php"; echo " <table class='no-border' width='100%'> <tr> <td class='tbl' align='right'>".$locale['global_158']."</td> <td class='tbl'> <img id='captcha' src='".INCLUDES."securimage/securimage_show.php' alt='".$locale['global_158']."' align='left' /> <a href='".INCLUDES."securimage/securimage_play.php'><img src='".INCLUDES."securimage/images/audio_icon.gif' alt='' align='top' class='tbl-border' style='margin-bottom:1px' /></a><br /> <a href='#' onclick=\"document.getElementById('captcha').src = '".INCLUDES."securimage/securimage_show.php?sid=' + Math.random(); return false\"><img src='".INCLUDES."securimage/images/refresh.gif' alt='' align='bottom' class='tbl-border' /></a> </td> </tr> <tr> <td class='tbl' align='right'>".$locale['global_159']."<span style='color:#ff0000'>*</span></td> <td class='tbl'><input type='text' name='captcha_code' class='textbox' style='width:100px' /></td> </tr> </table><br />"; } } // |-------------------| MOD end |-----------------------| echo "<input type='submit' name='post_comment' value='".($comment_message ? $locale['c103'] : $locale['c102'])."' class='button' />\n"; echo "</div>\n</form>\n"; } else { echo $locale['c105']."\n"; } closetable(); } function makecommentnav($start, $count, $total, $range = 0, $link) { global $locale; $pg_cnt = ceil($total / $count); if ($pg_cnt <= 1) { return ""; } $idx_back = $start - $count; $idx_next = $start + $count; $cur_page = ceil(($start + 1) / $count); $res = $locale['global_092']." ".$cur_page.$locale['global_093'].$pg_cnt.": "; if ($idx_back >= 0) { if ($cur_page > ($range + 1)) { $res .= "<a href='".$link."ce4dstart=0'>1</a>..."; } } $idx_fst = max($cur_page - $range, 1); $idx_lst = min($cur_page + $range, $pg_cnt); if ($range == 0) { $idx_fst = 1; $idx_lst = $pg_cnt; } for ($i = $idx_fst; $i <= $idx_lst; $i++) { $offset_page = ($i - 1) * $count; if ($i == $cur_page) { $res .= "<span><strong>".$i."</strong></span>"; } else { $res .= "<a href='".$link."c_start=".$offset_page."'>".$i."</a>"; } } if ($idx_next < $total) { if ($cur_page < ($pg_cnt - $range)) { $res .= "...<a href='".$link."c_start=".($pg_cnt - 1) * $count."'>".$pg_cnt."</a>\n"; } } return "<div class='pagenav'>\n".$res."</div>\n"; } ?> Link to comment https://forums.phpfreaks.com/topic/154152-ajax-commenting/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.