boardom Forum Index boardom
b2 message board
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[Hack] Open/Close Comments

 
Post new topic   Reply to topic    boardom Forum Index -> Hacks
View previous topic :: View next topic  
Author Message
Cyberian75



Joined: 26 Sep 2002
Posts: 1225
Location: Oregon

PostPosted: Tue Nov 25, 2003 9:53 pm    Post subject: [Hack] Open/Close Comments Reply with quote

I have been using this for a while now, and since one of my friends asked for it, I have just written an instruction for it. Anyway, this hack does just what the name says: it allows you to open or close comments for posts. Once closed, any comments left prior to the closing will not be accessible from your blog, and the link will display "comments closed" text. Trackbacks will also be closed if comments are closed.

You can get the instruction here. Smile
_________________
Michael P.



Last edited by Cyberian75 on Wed Oct 13, 2004 11:32 pm; edited 2 times in total
Back to top
View user's profile Send private message AIM Address
epolady



Joined: 30 Jul 2002
Posts: 800
Location: Texas

PostPosted: Wed Nov 26, 2003 9:52 am    Post subject: Reply with quote

Hi there,
Installation was real smooth, but one quick question.

Am I supposed to edit b2comments.php?
When I initially tested this hack on my site, it allows me to comment when I click on my permalink, everything else is okay, except when clicking on the permalink or going directly to the Post ID ( ?p=###&c=1#comments ).

I probably did something wrong.
_________________
No more support from me. Goodbye!
Go upgrade to WordPress, you'll find better support there.
Back to top
View user's profile Send private message
Cyberian75



Joined: 26 Sep 2002
Posts: 1225
Location: Oregon

PostPosted: Wed Nov 26, 2003 6:06 pm    Post subject: Reply with quote

I must have forgotten about that one. Anyway, you can either edit that file or control the inclusion of comments within your index file.

Like:

Code:

if ($postdata["CloseComment"] == 0) {
   include("b2comments.php");
}

_________________
Michael P.

Back to top
View user's profile Send private message AIM Address
epolady



Joined: 30 Jul 2002
Posts: 800
Location: Texas

PostPosted: Wed Nov 26, 2003 6:15 pm    Post subject: Reply with quote

Hmmm, I've got the private entries going on as well, so how do I include it with this
Code:
<?php
if ($isprivate == 0) {
include("b2comments.php");
}
?>

_________________
No more support from me. Goodbye!
Go upgrade to WordPress, you'll find better support there.
Back to top
View user's profile Send private message
Cyberian75



Joined: 26 Sep 2002
Posts: 1225
Location: Oregon

PostPosted: Wed Nov 26, 2003 6:40 pm    Post subject: Reply with quote

You can do...

Code:

<?php
if ($isprivate == 0 && $postdata["CloseComment"] == 0) {
    include("b2comments.php");
}
?>

_________________
Michael P.

Back to top
View user's profile Send private message AIM Address
epolady



Joined: 30 Jul 2002
Posts: 800
Location: Texas

PostPosted: Wed Nov 26, 2003 6:44 pm    Post subject: Reply with quote

Great! It works. Superb job again! Very Happy
_________________
No more support from me. Goodbye!
Go upgrade to WordPress, you'll find better support there.
Back to top
View user's profile Send private message
Tang-on



Joined: 14 Aug 2003
Posts: 23

PostPosted: Mon Dec 01, 2003 2:13 am    Post subject: Reply with quote

Here is my b2edit.php file. I've installed a custom field hack before.. so I'm not sure how to edit it..

INSERT statement:
Code:
///////////////////////
   $sql1 = "SELECT * from b2customfields";
   $result1 = mysql_query($sql1);
   $query = "INSERT INTO $tableposts (ID, post_author, post_date, post_content, post_title, post_private, post_category";
   $queryadd = "";
   while($row1 = mysql_fetch_array($result1)){
      $query .= ",".$row1['field_name'];
      $queryadd .= ",'".$_POST[$row1['field_name']]."'";
   }
   $query .= ") VALUES ('0','$user_ID','$now','$content','".$post_title."','$post_private','".$post_category."'".$queryadd.")";
///////////////////////


UPDATE statement:
Code:
//////////////////////////////////
   $query = "UPDATE $tableposts SET post_content=\"$content\", post_title=\"$post_title\", post_private=\"$post_private\", post_category=\"$post_category\"".$datemodif;
   $sql = "SELECT * from b2customfields";
   $result = mysql_query($sql);
   while($row = mysql_fetch_array($result)){
      $query .= ", ".$row['field_name']."=\"".$_POST[$row['field_name']]."\"";
   }
   $query .= " WHERE ID=$post_ID";
////////////////////////////////////


This is such a cool hack and I wanna have it. Thanks for any help in advance. Very Happy
_________________
-Tang-on Smile
Back to top
View user's profile Send private message Visit poster's website
Cyberian75



Joined: 26 Sep 2002
Posts: 1225
Location: Oregon

PostPosted: Mon Dec 01, 2003 2:29 am    Post subject: Reply with quote

Here you go... Smile

INSERT statement:
Code:
///////////////////////
   $sql1 = "SELECT * from b2customfields";
   $result1 = mysql_query($sql1);
   $query = "INSERT INTO $tableposts (ID, post_author, post_date, post_content, post_title, post_private, post_closecomment, post_category";
   $queryadd = "";
   while($row1 = mysql_fetch_array($result1)){
      $query .= ",".$row1['field_name'];
      $queryadd .= ",'".$_POST[$row1['field_name']]."'";
   }
   $query .= ") VALUES ('0','$user_ID','$now','$content','".$post_title."','$post_private', '".$post_closecomment."','".$post_category."'".$queryadd.")";
///////////////////////


UPDATE statement:
Code:
//////////////////////////////////
   $query = "UPDATE $tableposts SET post_content=\"$content\", post_title=\"$post_title\", post_private=\"$post_private\", post_closecomment=\"$post_closecomment\", post_category=\"$post_category\"".$datemodif;
   $sql = "SELECT * from b2customfields";
   $result = mysql_query($sql);
   while($row = mysql_fetch_array($result)){
      $query .= ", ".$row['field_name']."=\"".$_POST[$row['field_name']]."\"";
   }
   $query .= " WHERE ID=$post_ID";
////////////////////////////////////

_________________
Michael P.



Last edited by Cyberian75 on Mon Dec 01, 2003 5:54 pm; edited 1 time in total
Back to top
View user's profile Send private message AIM Address
Tang-on



Joined: 14 Aug 2003
Posts: 23

PostPosted: Mon Dec 01, 2003 2:38 am    Post subject: Reply with quote

Well.. I've tried that.. but when I clicked "Blog this!".. it gave me this error:

Code:
Oops, MySQL error!

Your query:

MySQL said:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'feels) VALUES ('0','1','2003-11-30 07:57:16',***(I forgot the rest, sorry)


I've uninstalled your hack just now though... and now I can post the entry just like normal.

So.. Sad
_________________
-Tang-on Smile
Back to top
View user's profile Send private message Visit poster's website
Cyberian75



Joined: 26 Sep 2002
Posts: 1225
Location: Oregon

PostPosted: Mon Dec 01, 2003 5:58 pm    Post subject: Reply with quote

Jaa, try it again with the statements above. I've edited them. Smile
_________________
Michael P.

Back to top
View user's profile Send private message AIM Address
alekken



Joined: 05 May 2003
Posts: 8

PostPosted: Mon Nov 29, 2004 12:19 pm    Post subject: MySQL Error Reply with quote

Now I've installed the Private Entry hack and the Close Comments hack.. but then I get this error:

Quote:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/alekken/ghettotrygve.com/blog/b2edit.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /hsphere/local/home/alekken/ghettotrygve.com/blog/b2edit.php:79) in /hsphere/local/home/alekken/ghettotrygve.com/blog/b2edit.php on line 127


I've also installed b2CustomsField and Since Last Visit hacks. Any idea what could be the problem?

Here's my b2edit file:

Code:
<?php
$title = "Post / Edit";
/* <Edit> */

function add_magic_quotes($array) {
   foreach ($array as $k => $v) {
      if (is_array($v)) {
         $array[$k] = add_magic_quotes($v);
      } else {
         $array[$k] = addslashes($v);
      }
   }
   return $array;
}

if (!get_magic_quotes_gpc()) {
   $HTTP_GET_VARS    = add_magic_quotes($HTTP_GET_VARS);
   $HTTP_POST_VARS   = add_magic_quotes($HTTP_POST_VARS);
   $HTTP_COOKIE_VARS = add_magic_quotes($HTTP_COOKIE_VARS);
}

$b2varstoreset = array('action','safe_mode','withcomments','c','posts','poststart','postend','content','edited_post_title','comment_error','profile', 'trackback_url');
for ($i=0; $i<count($b2varstoreset); $i += 1) {
   $b2var = $b2varstoreset[$i];
   if (!isset($$b2var)) {
      if (empty($HTTP_POST_VARS["$b2var"])) {
         if (empty($HTTP_GET_VARS["$b2var"])) {
            $$b2var = '';
         } else {
            $$b2var = $HTTP_GET_VARS["$b2var"];
         }
      } else {
         $$b2var = $HTTP_POST_VARS["$b2var"];
      }
   }
}

switch($action) {
   
case 'post':

   $standalone = 1;
   require_once('./b2header.php');

   $post_autobr = intval($HTTP_POST_VARS["post_autobr"]);
   $post_pingback = intval($HTTP_POST_VARS["post_pingback"]);
   $content = balanceTags($HTTP_POST_VARS["content"]);
   $content = format_to_post($content);
   $post_title = addslashes($HTTP_POST_VARS["post_title"]);
   $post_private = intval($HTTP_POST_VARS["post_private"]);
   $post_category = intval($HTTP_POST_VARS["post_category"]);
   $post_closecomment = intval($HTTP_POST_VARS["post_closecomment"]);

   if ($user_level == 0)
   die ("Cheatin' uh ?");

   if (($user_level > 4) && (!empty($HTTP_POST_VARS["edit_date"]))) {
      $aa = $HTTP_POST_VARS["aa"];
      $mm = $HTTP_POST_VARS["mm"];
      $jj = $HTTP_POST_VARS["jj"];
      $hh = $HTTP_POST_VARS["hh"];
      $mn = $HTTP_POST_VARS["mn"];
      $ss = $HTTP_POST_VARS["ss"];
      $jj = ($jj > 31) ? 31 : $jj;
      $hh = ($hh > 23) ? $hh - 24 : $hh;
      $mn = ($mn > 59) ? $mn - 60 : $mn;
      $ss = ($ss > 59) ? $ss - 60 : $ss;
      $now = "$aa-$mm-$jj $hh:$mn:$ss";
   } else {
      $now = date("Y-m-d H:i:s",(time() + ($time_difference * 3600)));
   }


/* Edited for b2customfields */
   $sql1 = "SELECT * from b2customfields";
   $result1 = mysql_query($sql1);
   $query = "INSERT INTO $tableposts (ID, post_author, post_date, post_content, post_title, post_private, post_closecomment, post_category";
   $queryadd = "";
   while($row1 = mysql_fetch_array($result1)){
      $query .= ",".$row1['field_name'];
      $queryadd .= ",'".$_POST[$row1['field_name']]."'";
   }
   $query .= ") VALUES ('0','$user_ID','$now','$content','".$post_title."','$post_private', '".$post_closecomment."','".$post_category."'".$queryadd.")";
/* End edited for b2customfields */

   $result = mysql_query($query) or mysql_oops($query);

   $post_ID = mysql_insert_id();

   if (isset($sleep_after_edit) && $sleep_after_edit > 0) {
      sleep($sleep_after_edit);
   }

   rss_update($blog_ID);
   pingWeblogs($blog_ID);
   pingCafelog($cafelogID, $post_title, $post_ID);
   pingBlogs($blog_ID);
   if ($post_pingback) {
      pingback($content, $post_ID);
   }

   if (!empty($HTTP_POST_VARS['trackback_url'])) {
      $excerpt = (strlen(strip_tags($content)) > 255) ? substr(strip_tags($content), 0, 252).'...' : strip_tags($content);
      $excerpt = stripslashes($excerpt);
      $trackback_urls = explode(',', $HTTP_POST_VARS['trackback_url']);
      foreach($trackback_urls as $tb_url) {
         $tb_url = trim($tb_url);
         trackback($tb_url, stripslashes($post_title), $excerpt, $post_ID);
      }
   }

   if (!empty($HTTP_POST_VARS["mode"])) {
      switch($HTTP_POST_VARS["mode"]) {
         case "bookmarklet":
            $location="b2bookmarklet.php?a=b";
            break;
         case "sidebar":
            $location="b2sidebar.php?a=b";
            break;
         default:
            $location="b2edit.php";
            break;
      }
   } else {
      $location="b2edit.php";
   }
   header("Location: $location");
   exit();

break;

case "edit":

   $standalone=0;
   require_once ("./b2header.php");
   $post = $HTTP_GET_VARS["post"];
   if ($user_level > 0) {
      $postdata=get_postdata($post) or die("Oops, no post with this ID. <a href=\"b2edit.php\">Go back</a> !");
      $authordata = get_userdata($postdata["Author_ID"]);
   if ($user_level < $authordata[13])
   die ("You don't have the right to edit <b>".$authordata[1]."</b>'s posts.");

   $content = $postdata["Content"];
   $content = format_to_edit($content);
   $edited_post_title = format_to_edit($postdata["Title"]);

   echo $blankline;
   include($b2inc."/b2edit.form.php");

   } else {
   ?>

   Since you're a newcomer, you'll have to wait for an admin to raise your level to 1, in order to be authorized to post.<br />You can also <a href="mailto:<?php echo $admin_email ?>?subject=b2-promotion">e-mail the admin</a> to ask for a promotion.<br />When you're promoted, just reload this page and you'll be able to blog. :)

   <?php
   }

break;

case "editpost":

   $standalone = 1;
   require_once("./b2header.php");
   
   if ($user_level == 0)
   die ("Cheatin' uh ?");

   if (!isset($blog_ID)) {
      $blog_ID = 1;
   }
   $post_ID = $HTTP_POST_VARS["post_ID"];
   $post_category = intval($HTTP_POST_VARS["post_category"]);
   $post_autobr = intval($HTTP_POST_VARS["post_autobr"]);
   $content = balanceTags($HTTP_POST_VARS["content"]);
   $content = format_to_post($content);
   $post_title = addslashes($HTTP_POST_VARS["post_title"]);
   $post_private = intval($HTTP_POST_VARS["post_private"]);
   $post_closecomment = intval($HTTP_POST_VARS["post_closecomment"]);

   if (($user_level > 4) && (!empty($HTTP_POST_VARS["edit_date"]))) {
      $aa = $HTTP_POST_VARS["aa"];
      $mm = $HTTP_POST_VARS["mm"];
      $jj = $HTTP_POST_VARS["jj"];
      $hh = $HTTP_POST_VARS["hh"];
      $mn = $HTTP_POST_VARS["mn"];
      $ss = $HTTP_POST_VARS["ss"];
      $jj = ($jj > 31) ? 31 : $jj;
      $hh = ($hh > 23) ? $hh - 24 : $hh;
      $mn = ($mn > 59) ? $mn - 60 : $mn;
      $ss = ($ss > 59) ? $ss - 60 : $ss;
      $datemodif = ", post_date=\"$aa-$mm-$jj $hh:$mn:$ss\"";
   } else {
      $datemodif = "";
   }

/* Edited for b2customfields */
   $query = "UPDATE $tableposts SET post_content=\"$content\", post_title=\"$post_title\", post_private=\"$post_private\", post_closecomment=\"$post_closecomment\", post_category=\"$post_category\"".$datemodif;
   $sql = "SELECT * from b2customfields";
   $result = mysql_query($sql);
   while($row = mysql_fetch_array($result)){
      $query .= ", ".$row['field_name']."=\"".$_POST[$row['field_name']]."\"";
   }
   $query .= " WHERE ID=$post_ID";
/* End edited for b2customfields */
   $result = mysql_query($query) or mysql_oops($query);

   if (isset($sleep_after_edit) && $sleep_after_edit > 0) {
      sleep($sleep_after_edit);
   }

   rss_update($blog_ID);
//   pingWeblogs($blog_ID);

   $location = "Location: b2edit.php";
   header ($location);

break;

case "delete":

   $standalone = 1;
   require_once("./b2header.php");

   if ($user_level == 0)
   die ("Cheatin' uh ?");

   $post = $HTTP_GET_VARS['post'];
   $postdata=get_postdata($post) or die("Oops, no post with this ID. <a href=\"b2edit.php\">Go back</a> !");
   $authordata = get_userdata($postdata["Author_ID"]);

   if ($user_level < $authordata[13])
   die ("You don't have the right to delete <b>".$authordata[1]."</b>'s posts.");

   $query = "DELETE FROM $tableposts WHERE ID=$post";
   $result = mysql_query($query) or die("Oops, no post with this ID. <a href=\"b2edit.php\">Go back</a> !");
   if (!$result)
   die("Error in deleting... contact the <a href=\"mailto:$admin_email\">webmaster</a>...");

   $query = "DELETE FROM $tablecomments WHERE comment_post_ID=$post";
   $result = mysql_query($query) or die("Oops, no comment associated to that post. <a href=\"b2edit.php\">Go back</a> !");

   if (isset($sleep_after_edit) && $sleep_after_edit > 0) {
      sleep($sleep_after_edit);
   }

   rss_update($blog_ID);
//   pingWeblogs($blog_ID);

   header ("Location: b2edit.php");

break;

case "editcomment":

   $standalone=0;
   require_once ("./b2header.php");

   get_currentuserinfo();

   if ($user_level == 0) {
      die ("Cheatin' uh ?");
   }

   $comment = $HTTP_GET_VARS['comment'];
   $commentdata = get_commentdata($comment,1) or die("Oops, no comment with this ID. <a href=\"javascript:history.go(-1)\">Go back</a> !");
   $content = $commentdata["comment_content"];
   $content = format_to_edit($content);
   
   echo $blankline;
   include($b2inc."/b2edit.form.php");

break;

case "deletecomment":

   $standalone = 1;
   require_once("./b2header.php");

   if ($user_level == 0)
      die ("Cheatin' uh ?");

   $comment = $HTTP_GET_VARS['comment'];
   $p = $HTTP_GET_VARS['p'];
   $commentdata=get_commentdata($comment) or die("Oops, no comment with this ID. <a href=\"b2edit.php\">Go back</a> !");

   $query = "DELETE FROM $tablecomments WHERE comment_ID=$comment";
   $result = mysql_query($query) or die("Oops, no comment with this ID. <a href=\"b2edit.php\">Go back</a> !");

   header ("Location: b2edit.php?p=$p&c=1#comments"); //?a=dc");

break;

case "editedcomment":

   $standalone = 1;
   require_once("./b2header.php");

   if ($user_level == 0)
      die ("Cheatin' uh ?");

   $comment_ID = $HTTP_POST_VARS['comment_ID'];
   $comment_post_ID = $HTTP_POST_VARS['comment_post_ID'];
   $newcomment_author = $HTTP_POST_VARS['newcomment_author'];
   $newcomment_author_email = $HTTP_POST_VARS['newcomment_author_email'];
   $newcomment_author_url = $HTTP_POST_VARS['newcomment_author_url'];
   $newcomment_author = addslashes($newcomment_author);
   $newcomment_author_email = addslashes($newcomment_author_email);
   $newcomment_author_url = addslashes($newcomment_author_url);
   $post_autobr = $HTTP_POST_VARS["post_autobr"];

   if (($user_level > 4) && (!empty($HTTP_POST_VARS["edit_date"]))) {
      $aa = $HTTP_POST_VARS["aa"];
      $mm = $HTTP_POST_VARS["mm"];
      $jj = $HTTP_POST_VARS["jj"];
      $hh = $HTTP_POST_VARS["hh"];
      $mn = $HTTP_POST_VARS["mn"];
      $ss = $HTTP_POST_VARS["ss"];
      $jj = ($jj > 31) ? 31 : $jj;
      $hh = ($hh > 23) ? $hh - 24 : $hh;
      $mn = ($mn > 59) ? $mn - 60 : $mn;
      $ss = ($ss > 59) ? $ss - 60 : $ss;
      $datemodif = ", comment_date=\"$aa-$mm-$jj $hh:$mn:$ss\"";
   } else {
      $datemodif = "";
   }
   $content = balanceTags($content);
   $content = format_to_post($content);

   $query = "UPDATE $tablecomments SET comment_content=\"$content\", comment_author=\"$newcomment_author\", comment_author_email=\"$newcomment_author_email\", comment_author_url=\"$newcomment_author_url\"".$datemodif." WHERE comment_ID=$comment_ID";
   $result = mysql_query($query) or mysql_oops($query);

   header ("Location: b2edit.php?p=$comment_post_ID&c=1#comments"); //?a=ec");

break;

default:

   $standalone=0;
   require_once ("./b2header.php");
   
   if ($user_level > 0) {
      if ((!$withcomments) && (!$c)) {

         $action="post";
         include($b2inc."/b2edit.form.php");
         echo "<br /><br />";

      }   

   } else {

      echo $tabletop; ?>
      Since you're a newcomer, you'll have to wait for an admin to raise your level to 1, in order to be authorized to post.<br />You can also <a href="mailto:<?php echo $admin_email ?>?subject=b2-promotion">e-mail the admin</a> to ask for a promotion.<br />When you're promoted, just reload this page and you'll be able to blog. :)
      <?php
      echo $tablebottom;
      echo "<br /><br />";

   }

   include($b2inc."/b2edit.showposts.php");

}


/* </Edit> */
include($b2inc."/b2footer.php") ?>


If you need to see any other files, pls let me know.. Thank you!
Back to top
View user's profile Send private message Send e-mail
Cyberian75



Joined: 26 Sep 2002
Posts: 1225
Location: Oregon

PostPosted: Mon Nov 29, 2004 7:46 pm    Post subject: Reply with quote

What's on the line 79???
_________________
Michael P.

Back to top
View user's profile Send private message AIM Address
Display posts from previous:   
Post new topic   Reply to topic    boardom Forum Index -> Hacks All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB 2 © 2001, 2002 phpBB Group