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"; } ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.