<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JiveBay &#187; PunBB</title>
	<atom:link href="http://jivebay.com/category/web/web-apps/punbb/feed/" rel="self" type="application/rss+xml" />
	<link>http://jivebay.com</link>
	<description>Web Development, Code Snippets, Technology, Reviews and Random Stuff Blog</description>
	<lastBuildDate>Thu, 29 Jul 2010 13:39:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PunBB forks into FluxBB</title>
		<link>http://jivebay.com/2008/05/09/punbb-forks-into-fluxbb/</link>
		<comments>http://jivebay.com/2008/05/09/punbb-forks-into-fluxbb/#comments</comments>
		<pubDate>Fri, 09 May 2008 22:38:14 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[fluxbb]]></category>

		<guid isPermaLink="false">http://jivebay.com/?p=231</guid>
		<description><![CDATA[Is this a repeat of what happened to Mambo and Joomla!?
Awhile back the rights to PunBB were sold to a company. 

Apart from sponsoring the project, they wanted to later down the line offer paid-for web services in relation to PunBB (for example commercial grade PunBB hosting). We decided we liked the idea and sold [...]]]></description>
			<content:encoded><![CDATA[<p>Is this a repeat of what happened to <a href="http://mambo-foundation.org/">Mambo</a> and <a href="http://www.joomla.org/">Joomla!</a>?</p>
<p>Awhile back the rights to <a href="http://punbb.informer.com/forums/viewtopic.php?id=17268">PunBB were sold to a company</a>. </p>
<blockquote><p>
Apart from sponsoring the project, they wanted to later down the line offer paid-for web services in relation to PunBB (for example commercial grade PunBB hosting). We decided we liked the idea and sold the rights to the project.
</p></blockquote>
<p>Then a <a href="http://punbb.informer.com/forums/viewtopic.php?id=19084">recent switch to a new domain</a> occurred.</p>
<blockquote><p>Moving the PunBB website under the informer.com domain is a way for our benefactors to promote their other services to the PunBB community and to promote PunBB to users of their other services.</p></blockquote>
<p>Today many of the <a href="http://punbb.informer.com/forums/viewtopic.php?id=19157">active developers mentioned they were forking the project</a> into what they call <a href="http://fluxbb.org/">FluxBB</a>.</p>
<blockquote><p>Some of you may have been wondering about the future of PunBB and the current development team following Rickard&#8217;s announcement that he will not be actively involved with PunBB, at least for the time being. &#8230; Now that circumstances have changed with the inevitable shift of power within the project, we all feel that we need a degree of control over future development which is no longer possible. We all share a desire to develop software for the benefit of the community and ourselves, without commercial concerns influencing the final product. This is not a condemnation of PunBB&#8217;s current owners: we simply feel that this change is necessary so that we as developers can maintain full control over the development process.</p></blockquote>
<p>It didn&#8217;t bother me they had sold the rights to PunBB as long as it remained GPL, but what this split means now, I&#8217;m not sure. How many people will now abandon PunBB for FluxBB? A lot depends on how active the FluxBB project becomes and if the new PunBB development takes off.</p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=231&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2008/05/09/punbb-forks-into-fluxbb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RSS feeds in PunBB</title>
		<link>http://jivebay.com/2008/03/08/rss-feeds-in-punbb/</link>
		<comments>http://jivebay.com/2008/03/08/rss-feeds-in-punbb/#comments</comments>
		<pubDate>Sat, 08 Mar 2008 18:25:38 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://jivebay.com/2008/03/08/rss-feeds-in-punbb/</guid>
		<description><![CDATA[These are quick easy hacks to get RSS feeds for each forum on the index.php page and viewforum.php pages.
I covered how to put the main RSS feed on PunBB already.
Open up index.php and after this line

$forum_field = &#039;&#60;h3&#62;&#60;a href=&#34;viewforum.php?id=&#039;.$cur_forum[&#039;fid&#039;].&#039;&#34;&#62;&#039;.pun_htmlspecialchars($cur_forum[&#039;forum_name&#039;]).&#039;&#60;/a&#62;&#60;/h3&#62;&#039;;

Add this

$forum_field .= &#039;&#60;div class=&#34;forum_rss&#34;&#62;&#60;a class=&#34;rss&#34; href=&#34;extern.php?action=active&#38;type=RSS&#38;fid=&#039;.$cur_forum[&#039;fid&#039;].&#039;&#34;&#62;&#60;span&#62;RSS&#60;/span&#62;&#60;/a&#62;&#60;/div&#62;&#039;;/

Now open up viewforum.php and find this line

&#60;h2&#62;&#60;span&#62;&#60;?php echo pun_htmlspecialchars($cur_forum[&#039;forum_name&#039;]) ?&#62;&#60;/span&#62;&#60;/h2&#62;

and [...]]]></description>
			<content:encoded><![CDATA[<p>These are quick easy hacks to get RSS feeds for each forum on the index.php page and viewforum.php pages.</p>
<p>I covered <a href="http://jivebay.com/2007/05/25/punbb-style-tips/">how to put the main RSS feed on PunBB</a> already.</p>
<p>Open up <strong>index.php</strong> and after this line<br />
<code><br />
$forum_field = &#039;&lt;h3&gt;&lt;a href=&quot;viewforum.php?id=&#039;.$cur_forum[&#039;fid&#039;].&#039;&quot;&gt;&#039;.pun_htmlspecialchars($cur_forum[&#039;forum_name&#039;]).&#039;&lt;/a&gt;&lt;/h3&gt;&#039;;<br />
</code></p>
<p>Add this<br />
<code><br />
$forum_field .= &#039;&lt;div class=&quot;forum_rss&quot;&gt;&lt;a class=&quot;rss&quot; href=&quot;extern.php?action=active&amp;type=RSS&amp;fid=&#039;.$cur_forum[&#039;fid&#039;].&#039;&quot;&gt;&lt;span&gt;RSS&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&#039;;/<br />
</code></p>
<p>Now open up <strong>viewforum.php</strong> and find this line<br />
<code><br />
&lt;h2&gt;&lt;span&gt;&lt;?php echo pun_htmlspecialchars($cur_forum[&#039;forum_name&#039;]) ?&gt;&lt;/span&gt;&lt;/h2&gt;<br />
</code></p>
<p>and modify it to be<br />
<code><br />
&lt;h2&gt;&lt;span&gt;&lt;?php echo pun_htmlspecialchars($cur_forum[&#039;forum_name&#039;]) ?&gt; &lt;a class=&quot;rss&quot; href=&quot;extern.php?action=active&amp;type=RSS&amp;fid=&lt;?php echo $id /*MODIFIED - RSS*/ ?&gt;&quot;&gt;&lt;span&gt;RSS&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;<br />
</code></p>
<p>And now for the CSS<br />
<code><br />
.forum_rss {float:right;}<br />
a.rss {background:url(../../img/feed.png) no-repeat left; width:16px; height:16px; padding-left:20px;}<br />
a.rss span {display:none;}<br />
</code></p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=217&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2008/03/08/rss-feeds-in-punbb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Odd and Even Forums and Hot Icons for PunBB</title>
		<link>http://jivebay.com/2008/02/12/odd-and-even-forums-and-hot-icons-for-punbb/</link>
		<comments>http://jivebay.com/2008/02/12/odd-and-even-forums-and-hot-icons-for-punbb/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 17:22:04 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://jivebay.com/2008/02/12/odd-and-even-forums-and-hot-icons-for-punbb/</guid>
		<description><![CDATA[PunBB adds classes for odd and even posts, but not for odd and even forum rows. PunBB also adds several classes for icons we can tap into, but there is no way to know if a topic is &#8220;hot&#8221;. Let&#8217;s add a hack that will mark any topic that has more than 25 posts as [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://punbb.org/">PunBB</a> adds classes for odd and even posts, but not for odd and even forum rows. PunBB also adds several classes for icons we can tap into, but there is no way to know if a topic is &#8220;hot&#8221;. Let&#8217;s add a hack that will mark any topic that has more than 25 posts as &#8220;hot&#8221; and setup odd and even forum rows.</p>
<p>Open up <strong>viewforum.php</strong></p>
<p>Find this line<br />
<code><br />
// If there are topics in this forum.<br />
if ($db-&gt;num_rows($result))<br />
{<br />
</code></p>
<p>And add this afterwards<br />
<code><br />
$temp_counter = 0;<br />
</code></p>
<p>Then find this line<br />
<code><br />
// Should we show the "New posts" and/or the multipage links?<br />
if (!empty($subject_new_posts) || !empty($subject_multipage))<br />
{<br />
	$subject .= '&nbsp; '.(!empty($subject_new_posts) ? $subject_new_posts : '');<br />
	$subject .= !empty($subject_multipage) ? ' '.$subject_multipage : '';<br />
}<br />
</code></p>
<p>And add this afterwards<br />
<code><br />
$temp_counter++;<br />
</code></p>
<p>Then find this line<br />
<code><br />
&lt;tr&lt;?php if ($item_status != &#039;&#039;) echo &#039; class=&quot;&#039;.trim($item_status).&#039;&quot;&#039;; ?&gt;&gt;<br />
</code></p>
<p>And modify it to be this instead<br />
<code><br />
&lt;tr class=&quot;&lt;?php<br />
/*MODIFIED*/<br />
if ($temp_counter % 2)<br />
	echo &#039;forum_rowodd&#039;;<br />
else<br />
	echo &#039;forum_roweven&#039;;<br />
//hoticon<br />
$temp_status = trim($item_status);<br />
if (($cur_topic[&#039;num_replies&#039;] &gt; 25) &amp;&amp; ($temp_status == &#039;&#039; || $temp_status == &#039;inew&#039;))<br />
{<br />
	if ($temp_status == &#039;&#039;)<br />
		echo &#039; ihot&#039;;<br />
	else<br />
		echo &#039; ihot_inew&#039;;<br />
}<br />
else if ($item_status != &#039;&#039;)<br />
	echo &#039; &#039;.trim($item_status);<br />
/*MODIFIED END*/ ?&gt;&quot;&gt;<br />
</code></p>
<p>Now for CSS<br />
<code><br />
/*style rows*/<br />
tr.forum_rowodd {background-color:#eee;}<br />
tr.forum_rowodd td.tc2, tr.forum_rowodd td.tc3 {background-color:#ddd;}<br />
tr.forum_roweven {background-color:#ccc;}<br />
tr.forum_roweven td.tc2, tr.forum_roweven td.tc3 {background-color:#bbb;}<br />
/*style hot and hot new posts*/<br />
tr.ihot div.icon {background-image:url(../../img/hot.png);}<br />
tr.ihot_inew div.icon {background-image:url(../../img/hot_new.png);}<br />
/*css we used for icons before*/<br />
div.icon {<br />
float:left;<br />
display:block;<br />
width:28px;<br />
height:25px;<br />
background-repeat:no-repeat;<br />
background-position:center center;<br />
border:0 !important;<br />
}<br />
/*if you aren't using any images you can use something like this<br />
tr.ihot DIV.icon {BORDER-COLOR: #600 #700 #800 #900}<br />
tr.ihot_inew DIV.inew {BORDER-COLOR: #006 #007 #008 #009}<br />
*/<br />
</code></p>
<p><ins datetime="2008-03-08T16:07:31+00:00">I updated code the code, since I didn&#8217;t like how it was before</ins></p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=212&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2008/02/12/odd-and-even-forums-and-hot-icons-for-punbb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More PunBB Styling</title>
		<link>http://jivebay.com/2008/02/04/more-punbb-styling/</link>
		<comments>http://jivebay.com/2008/02/04/more-punbb-styling/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 01:12:10 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://jivebay.com/2008/02/04/more-punbb-styling/</guid>
		<description><![CDATA[Want to style the usertitles in PunBB based on their usertype (as in styling admins, moderators, members and guests)? Open up viewtopic.php and after this line
&#60;div class=&#34;postleft&#34;&#62;
We are going to modify the DL to this:

&#60;dl class=&#34;&#60;?php
if ($user_title == &#039;Administrator&#039;)
	echo &#039;usertype_admin&#039;;
else if ($user_title == &#039;Moderator&#039;)
	echo &#039;usertype_mod&#039;;
else if ($user_title == &#039;Member&#039;)
	echo &#039;usertype_member&#039;;
else if ($user_title == &#039;Guest&#039;)
	echo &#039;usertype_guest&#039;;
?&#62;&#34;&#62;

I [...]]]></description>
			<content:encoded><![CDATA[<p>Want to style the usertitles in PunBB based on their usertype (as in styling admins, moderators, members and guests)? Open up <strong>viewtopic.php</strong> and after this line<br />
<code>&lt;div class=&quot;postleft&quot;&gt;</code></p>
<p>We are going to modify the DL to this:<br />
<code><br />
&lt;dl class=&quot;&lt;?php<br />
if ($user_title == &#039;Administrator&#039;)<br />
	echo &#039;usertype_admin&#039;;<br />
else if ($user_title == &#039;Moderator&#039;)<br />
	echo &#039;usertype_mod&#039;;<br />
else if ($user_title == &#039;Member&#039;)<br />
	echo &#039;usertype_member&#039;;<br />
else if ($user_title == &#039;Guest&#039;)<br />
	echo &#039;usertype_guest&#039;;<br />
?&gt;&quot;&gt;<br />
</code></p>
<p>I added it a little higher than you might of assumed, so you can style the username and avatars if you want also. Its easy to add new types if you have more groups than the standard ones.</p>
<p>Now for more CSS to make PunBB not so boring:<br />
<code><br />
/*styles for the usertype hack*/<br />
dd.usertitle {padding-left:20px; height:16px;}<br />
dl.usertype_admin dd.usertitle {background:url(../img/award_star_gold_3.png) no-repeat left;}<br />
dl.usertype_mod dd.usertitle {background:url(../img/bronze_medal.png) no-repeat left;}<br />
dl.usertype_member dd.usertitle {background:url(../img/vcard.png) no-repeat left;}<br />
dl.usertype_guest dd.usertitle {background:url(../img/status_offline.png) no-repeat left;}<br />
/*style your announcements*/<br />
DIV#announce H2 {BACKGROUND-COLOR:#ffc}<br />
DIV#announce DIV.box {BORDER-COLOR:#f90 #f90 #f90}<br />
DIV#announce DIV.inbox {BACKGROUND-COLOR:#ffc}<br />
/*style errors*/<br />
DIV#posterror H2 {BACKGROUND-COLOR:#bf3030; color:#ff0;}<br />
DIV#posterror DIV.box {BORDER-COLOR:#bf3030 #bf3030 #bf3030}<br />
DIV#posterror DIV.inbox {BACKGROUND-COLOR:#592d2d}<br />
#posterror LI STRONG {COLOR:#ff0}<br />
/*style messages (info boxes from punbb)*/<br />
DIV#msg {color:#fff;}<br />
DIV#msg H2 {BACKGROUND-COLOR:#bfbf8f; color:#000;}<br />
DIV#msg DIV.box {BORDER-COLOR:#bfbf8f #bfbf8f #bfbf8f}<br />
DIV#msg DIV.inbox {BACKGROUND-COLOR:#808060}<br />
DIV#msg a {color:#89d9ff;}<br />
DIV#msg a:hover {color:#b8ffff;}<br />
/*style even row posts, odd posts will get default styling already set to them*/<br />
DIV.roweven DIV.box, DIV.roweven DIV.postright, DIV.roweven DIV.postfootright {BACKGROUND-COLOR:#c9c}<br />
DIV.roweven DIV.postright, DIV.roweven DIV.postfootright {BORDER-LEFT-COLOR:#dad}<br />
DIV.roweven DIV.postleft, DIV.roweven DIV.postfootleft, DIV.roweven DIV.blockpost LABEL {BACKGROUND-COLOR:#dad;}<br />
DIV.roweven H2 {BACKGROUND-COLOR:#fcc}<br />
DIV.roweven DIV.box {BORDER-COLOR:#fcc #fcc #fcc}<br />
/*style first post*/<br />
DIV.firstpost DIV.box, DIV.firstpost DIV.postright, DIV.firstpost DIV.postfootright {BACKGROUND-COLOR:#c96 !important;}<br />
DIV.firstpost DIV.postright, DIV.firstpost DIV.postfootright {BORDER-LEFT-COLOR:#da7 !important}<br />
DIV.firstpost DIV.postleft, DIV.firstpost DIV.postfootleft, DIV.firstpost DIV.blockpost LABEL {BACKGROUND-COLOR:#da7 !important}<br />
DIV.firstpost DIV.box {BORDER-COLOR:#fc9 #fc9 #fc9 !important}<br />
DIV.firstpost H2 {BACKGROUND-COLOR:#fc9 !important;}<br />
div.firstpost h2 span a, div.firstpost h2 span a:link, div.firstpost h2 span a:visited {color:#ccc !important;}<br />
DIV.firstpost DIV.postright .postmsg {background:url(../../img/firstpost.png) no-repeat top right;}<br />
</code></p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=201&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2008/02/04/more-punbb-styling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Styling for PunBB</title>
		<link>http://jivebay.com/2008/02/02/more-styling-for-punbb/</link>
		<comments>http://jivebay.com/2008/02/02/more-styling-for-punbb/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 04:53:32 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://jivebay.com/2008/02/02/more-styling-for-punbb/</guid>
		<description><![CDATA[Here is some more CSS styling for PunBB (Note: I put my images in the img folder):

/*style the forum titles*/
.pun .block H2, .pun .blocktable H2 {background-image:url(../../img/bullet_toggle_minus.gif); background-position:10px 50%; background-repeat:no-repeat;}
/*icons for admin moderation links*/
li.postreport a {background:url(../../img/error.gif) no-repeat left 50%; padding-left:20px;}
li.postdelete a {background:url(../../img/delete.gif) no-repeat left 50%; padding-left:20px;}
li.postedit a {background:url(../../img/pencil.gif) no-repeat left 50%; padding-left:20px;}
li.postquote a {background:url(../../img/comment.gif) no-repeat left [...]]]></description>
			<content:encoded><![CDATA[<p>Here is some more CSS styling for PunBB (Note: I put my images in the <strong>img</strong> folder):<br />
<code><br />
/*style the forum titles*/<br />
.pun .block H2, .pun .blocktable H2 {background-image:url(../../img/bullet_toggle_minus.gif); background-position:10px 50%; background-repeat:no-repeat;}<br />
/*icons for admin moderation links*/<br />
li.postreport a {background:url(../../img/error.gif) no-repeat left 50%; padding-left:20px;}<br />
li.postdelete a {background:url(../../img/delete.gif) no-repeat left 50%; padding-left:20px;}<br />
li.postedit a {background:url(../../img/pencil.gif) no-repeat left 50%; padding-left:20px;}<br />
li.postquote a {background:url(../../img/comment.gif) no-repeat left 50%; padding-left:20px;}<br />
/*post link*/<br />
.postlink a {background:url(../img/add.gif) no-repeat right 50%; padding-right:20px !important;}<br />
</code></p>
<p><ins datetime="2008-03-08T17:27:53+00:00">Fixed the CSS for .postlink</ins></p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=199&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2008/02/02/more-styling-for-punbb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PunBB and Managing Hacks</title>
		<link>http://jivebay.com/2007/12/15/punbb-and-managing-hacks/</link>
		<comments>http://jivebay.com/2007/12/15/punbb-and-managing-hacks/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 13:42:34 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>

		<guid isPermaLink="false">http://jivebay.com/2007/12/15/punbb-and-managing-hacks/</guid>
		<description><![CDATA[PunBB rolled out an update awhile back and so if you did any of my hacks you might have updated the files then re-added the hacks. However, the easiest way to deal with hacks and mods or any other code changes you do for PunBB is to look at the hdiff file (here is an [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://punbb.org/">PunBB</a> rolled out an update awhile back and so if you did any of my hacks you might have updated the files then re-added the hacks. However, the easiest way to deal with hacks and mods or any other code changes you do for PunBB is to look at the <strong>hdiff</strong> file (here is an example of a recent <strong>hdiff</strong> <a href="http://punbb.org/download/hdiff/hdiff-1.2.15_to_1.2.16.html">1.2.15 to 1.2.16</a>. This tells you all the changes made and to what files, so you can make the adjustments. If there are not too many its easier to just to copy the code changes and paste them into the files and then run the update file that comes with the <strong>Changed files only</strong> download option.</p>
<p>Another thing I usually like to do is put in my comments near my hacks something like this:<br />
<code><br />
/*modification - mod_or_hack_name */<br />
</code></p>
<p>Then I can search for a specific hack I made or all modifications.</p>
<p><a href="http://phpbb.com">phpBB</a> recently released 3.0, so you might be wondering about PunBB 1.3. It&#8217;s been in development for a long time, but from what I can tell it still won&#8217;t support polls, private messaging or subforums. I can understand them not adding private messaging, but subforums and polls would be nice in the core. But if you are feeling a little envious of phpBB 3.0 you might look at some <a href="http://punbb.org/docs/screens/thumb.html">screenshots of PunBB 1.3</a> that were posted about a year ago. The nice thing about not having many updates, is that you don&#8217;t have to reapply your hacks too often.</p>
<p><a href="http://dev.punbb.org/">PunBB&#8217;s dev site</a> shows the planned features for 1.3</p>
<blockquote>
<ul>
<li>New markup and CSS.</li>
<li>Unicode (UTF-8) support.</li>
<li>Improved accessibility for both Public and Administration pages.</li>
<li>Administration interface gets language file support.</li>
<li>Search engine optimized &#8220;Fancy URLs&#8221; via mod rewrite.</li>
<li>Proper extension support &#8211; Extend the functionality without touching a line of PunBB&#8217;s PHP code.</li>
<li>New topic read marking system.</li>
<li>Improved syndication &#8211; Feeds extended to include individual topics. Also feeds in the form of Atom and XML format.</li>
<li>Support for Microformats &#8211; hCard and MicroID.</li>
<li>Post moderation queue.</li>
<li>Multiple moderator groups.</li>
<li>Board search improved with MySQL Full-Text Search.</li>
<li>Per-style templates &#8211; It will be possible to have one set of templates per style.</li>
</ul>
</blockquote>
<img src="http://jivebay.com/?ak_action=api_record_view&id=193&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2007/12/15/punbb-and-managing-hacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful Mods, Plugins and Hacks for PunBB</title>
		<link>http://jivebay.com/2007/09/10/useful-mods-plugins-and-hacks-for-punbb/</link>
		<comments>http://jivebay.com/2007/09/10/useful-mods-plugins-and-hacks-for-punbb/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 01:54:12 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>

		<guid isPermaLink="false">http://jivebay.com/2007/09/10/useful-mods-plugins-and-hacks-for-punbb/</guid>
		<description><![CDATA[Logicfury &#8211; Lightweight CMS
Mega Pun &#8211; PunBB with lots of mods and plugins setup for you already
Link Directory &#8211; PunBB modified into a Link Directory
Easy BBCode &#8211; Add BBcode to your forums easily, the only mod the creator of PunBB has made (all the others are made by users or other developers) I recommend to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://punbb.org/forums/viewtopic.php?id=15904">Logicfury</a> &#8211; Lightweight CMS<br />
<a href="http://punbb.org/forums/viewtopic.php?id=15997">Mega Pun</a> &#8211; PunBB with lots of mods and plugins setup for you already<br />
<a href="http://punbb.org/forums/viewtopic.php?id=13901">Link Directory</a> &#8211; PunBB modified into a Link Directory<br />
<a href="http://punbb.org/forums/viewtopic.php?id=6217">Easy BBCode</a> &#8211; Add BBcode to your forums easily, the only mod the creator of PunBB has made (all the others are made by users or other developers) I recommend to modify it so that there are spaces around the smilies so they appear properly<br />
<a href="http://punbb.org/forums/viewtopic.php?id=15651">BB Spam Fighter</a> &#8211; nice mod, if you don&#8217;t feel like using the hacks I&#8217;ve shown on this site</p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=161&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2007/09/10/useful-mods-plugins-and-hacks-for-punbb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PunBB Spam Prevention Part 3</title>
		<link>http://jivebay.com/2007/08/15/punbb-spam-prevention-part-3/</link>
		<comments>http://jivebay.com/2007/08/15/punbb-spam-prevention-part-3/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 21:04:49 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://jivebay.com/2007/08/15/punbb-spam-prevention-part-3/</guid>
		<description><![CDATA[Since the last time I&#8217;ve noticed a few little things spammers have been doing and some things I forgot to mention. So here is Part 3 on Spam Prevention for PunBB.
Prevent Guests from Seeing Profiles
Before the following line

// Load the profile.php/register.php language file

Add this

if ($pun_user[&#039;is_guest&#039;])
	message($lang_common[&#039;No permission&#039;]);

I&#8217;ve also gotten some people that register and put their [...]]]></description>
			<content:encoded><![CDATA[<p>Since the last time I&#8217;ve noticed a few little things spammers have been doing and some things I forgot to mention. So here is Part 3 on Spam Prevention for <a href="http://punbb.org/">PunBB</a>.</p>
<p><strong>Prevent Guests from Seeing Profiles</strong><br />
Before the following line<br />
<code><br />
// Load the profile.php/register.php language file<br />
</code></p>
<p>Add this<br />
<code><br />
if ($pun_user[&#039;is_guest&#039;])<br />
	message($lang_common[&#039;No permission&#039;]);<br />
</code></p>
<p>I&#8217;ve also gotten some people that register and put their spammy sites in their signature, but its easy to disable signatures. Just put multiple line comments around the following lines in <strong>viewtopic.php</strong><br />
<code><br />
// Do signature parsing/caching<br />
if ($cur_post[&#039;signature&#039;] != &#039;&#039; &amp;&amp; $pun_user[&#039;show_sig&#039;] != &#039;0&#039;)<br />
{<br />
	if (isset($signature_cache[$cur_post[&#039;poster_id&#039;]]))<br />
		$signature = $signature_cache[$cur_post[&#039;poster_id&#039;]];<br />
	else<br />
	{<br />
		$signature = parse_signature($cur_post[&#039;signature&#039;]);<br />
		$signature_cache[$cur_post[&#039;poster_id&#039;]] = $signature;<br />
	}<br />
}<br />
</code></p>
<p>Now it should look like this. They can still enter links in their signature from their profile page but it won&#8217;t show up on any posts.<br />
<code><br />
/*<br />
// Do signature parsing/caching<br />
if ($cur_post[&#039;signature&#039;] != &#039;&#039; &amp;&amp; $pun_user[&#039;show_sig&#039;] != &#039;0&#039;)<br />
{<br />
	if (isset($signature_cache[$cur_post[&#039;poster_id&#039;]]))<br />
		$signature = $signature_cache[$cur_post[&#039;poster_id&#039;]];<br />
	else<br />
	{<br />
		$signature = parse_signature($cur_post[&#039;signature&#039;]);<br />
		$signature_cache[$cur_post[&#039;poster_id&#039;]] = $signature;<br />
	}<br />
}<br />
*/<br />
</code></p>
<p>There is another field in a person&#8217;s profile for them to put in a value for their web site, so you might prevent that from showing up as well. I just turn it off in <strong>Administration -> Options</strong> and under <strong>Display</strong> and <strong>User info in posts</strong>.</p>
<blockquote><p>Show information about the poster under the username in topic view. The information affected is location, register date, post count and the contact links (e-mail and URL).</p></blockquote>
<p>Want to use <em>rel=&quot;nofollow&quot;</em> for links? Open up <strong>include\parser.php</strong> and modify the <em>return</em> line of the function <strong>handle_url_tag</strong> to look like this.<br />
<code><br />
return &#039;&lt;a href=&quot;&#039;.$full_url.&#039;&quot; rel=&quot;nofollow&quot;&gt;&#039;.$link.&#039;&lt;/a&gt;&#039;;//MODIFIED<br />
</code></p>
<p>I now prevent members from registering with URLs or @ in their member name. The only way PunBB could prevent this otherwise is to use the censor feature but that isn&#8217;t a good idea since the members that prove they are real will need to be allowed to post links later on.</p>
<p>Open <strong>lang\English\prof_reg.php</strong> and add the following near the top<br />
<code><br />
&#039;Username spam&#039;			=&gt;	&#039;Usernames may not look like a URL or email address. Please choose another username.&#039;,/*MODIFIED*/<br />
</code></p>
<p>Now open up <strong>register.php</strong> and after the following lines<br />
<code><br />
else if ((strpos($username, &#039;[&#039;) !== false || strpos($username, &#039;]&#039;) !== false) &amp;&amp; strpos($username, &#039;\&#039;&#039;) !== false &amp;&amp; strpos($username, &#039;&quot;&#039;) !== false)<br />
		message($lang_prof_reg[&#039;Username reserved chars&#039;]);<br />
</code></p>
<p>add<br />
<code><br />
else if (strpos($username, &#039;http://&#039;) !== false || strpos($username, &#039;https://&#039;) !== false || strpos($username, &#039;www.&#039;) !== false || strpos($username, &#039;.com&#039;) !== false || strpos($username, &#039;@&#039;) !== false)/*MODIFIED*/<br />
		message($lang_prof_reg[&#039;Username spam&#039;]);<br />
</code></p>
<p>That should prevent anyone from registering a spammy username.</p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=149&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2007/08/15/punbb-spam-prevention-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Spam Prevention for PunBB</title>
		<link>http://jivebay.com/2007/06/27/more-spam-prevention-for-punbb/</link>
		<comments>http://jivebay.com/2007/06/27/more-spam-prevention-for-punbb/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 04:04:48 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://jivebay.com/2007/06/27/more-spam-prevention-for-punbb/</guid>
		<description><![CDATA[Since my last post I&#8217;ve now started filtering for &#8220;.com&#8221; in the message field on some forums I run (its an easy addition to the code I posted last time). However I&#8217;ve noticed that a few bots/people were typing these into the Name (if you have guests enabled) and Subject fields. Even though PunBB won&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Since my last post I&#8217;ve now started filtering for &#8220;.com&#8221; in the message field on some forums I run (its an easy addition to the code I posted last time). However I&#8217;ve noticed that a few bots/people were typing these into the <em>Name</em> (if you have guests enabled) and <em>Subject</em> fields. Even though PunBB won&#8217;t render that as a link, it still could promote someone&#8217;s spammy site. So I wrote some more hacks to prevent this from happening.</p>
<p>This assumes you added some variables to <strong>lang/English/post.php</strong> but I&#8217;ll post the code again. Feel Free to skip this part if you already did it.</p>
<p>Open up <strong>\lang\English\post.php</strong> and after<br />
<code><br />
'Edit redirect'			=&gt;	'Post updated. Redirecting . . .'<br />
</code></p>
<p><strong>Add a comma at the end of that line and then add</strong><br />
<code><br />
&#039;New Member spam protection&#039;	=&gt;	&#039;New Members can not post links, images or email addresses until they become more active.&#039;,<br />
&#039;Guest spam protection&#039;	=&gt;	&#039;Guests can not post links, images or email addresses.&#039;<br />
</code></p>
<p>Ok, now for the new stuff&#8230; We are going to filter out the subject for guests and members that have less than 6 posts</p>
<p>Now open up <strong>post.php</strong> (the one at the root of your forums) and after this line<br />
<code><br />
else if ($pun_config[&#039;p_subject_all_caps&#039;] == &#039;0&#039; &amp;&amp; strtoupper($subject) == $subject &amp;&amp; $pun_user[&#039;g_id&#039;] &gt; PUN_MOD)<br />
	$subject = ucwords(strtolower($subject));<br />
</code></p>
<p>add the following:<br />
<code><br />
if (($pun_user[&#039;is_guest&#039;]) || ($pun_user[&#039;num_posts&#039;] &lt;= 5))<br />
{<br />
	$temp_subject = strtolower($subject);//lowercase it so we can be case insensitive, stripos is php5 only<br />
	if ((strpos($temp_subject, &#039;http://&#039;) !== false) || (strpos($temp_subject, &#039;https://&#039;) !== false) || (strpos($temp_subject, &#039;www.&#039;) !== false) || (strpos($temp_subject, &#039;@&#039;) !== false) || (strpos($temp_subject, &#039;.com&#039;) !== false))<br />
	{<br />
		if ($pun_user[&#039;is_guest&#039;])<br />
			$errors[] = $lang_post[&#039;Guest spam protection&#039;];<br />
		else if ($pun_user[&#039;num_posts&#039;] &lt;= 5)<br />
			$errors[] = $lang_post[&#039;New Member spam protection&#039;];<br />
		else<br />
			$errors[] = $lang_post[&#039;Post errors&#039;];//this message already exists<br />
	}<br />
}<br />
</code></p>
<p>Now we need to prevent guests from using a spam-ilicious name, so again in <strong>post.php</strong> look for:<br />
<code><br />
if (preg_match(&#039;#\[b\]|\[/b\]|\[u\]|\[/u\]|\[i\]|\[/i\]|\[color|\[/color\]|\[quote\]|\[quote=|\[/quote\]|\[code\]|\[/code\]|\[img\]|\[/img\]|\[url|\[/url\]|\[email|\[/email\]#i&#039;, $username))<br />
	$errors[] = $lang_prof_reg[&#039;Username BBCode&#039;];<br />
</code></p>
<p>Now after that add:<br />
<code><br />
$temp_username = strtolower($username);//lowercase it so we can be case insensitive, stripos is php5 only<br />
if ((strpos($temp_username, &#039;http://&#039;) !== false) || (strpos($temp_username, &#039;https://&#039;) !== false) || (strpos($temp_username, &#039;www.&#039;) !== false) || (strpos($temp_username, &#039;@&#039;) !== false) || (strpos($temp_username, &#039;.com&#039;) !== false))<br />
	$errors[] = $lang_post[&#039;Guest spam protection&#039;];<br />
</code></p>
<p>Now we need to protect <strong>edit.php</strong> from spam-otrocious subjects by members with less than 6 posts (guests can't edit pages so no need to worry about them). So look for:</p>
<p><code><br />
else if ($pun_config[&#039;p_subject_all_caps&#039;] == &#039;0&#039; &amp;&amp; strtoupper($subject) == $subject &amp;&amp; $pun_user[&#039;g_id&#039;] &gt; PUN_MOD)<br />
	$subject = ucwords(strtolower($subject));<br />
</code></p>
<p>And add this afterwards<br />
<code><br />
if ($pun_user[&#039;num_posts&#039;] &lt; = 5)<br />
{<br />
	$temp_subject = strtolower($subject);//lowercase it so we can be case insensitive, stripos is php5 only<br />
	if ((strpos($temp_subject, &#039;http://&#039;) !== false) || (strpos($temp_subject, &#039;https://&#039;) !== false) || (strpos($temp_subject, &#039;www.&#039;) !== false) || (strpos($temp_subject, &#039;@&#039;) !== false) || (strpos($temp_subject, &#039;.com&#039;) !== false))<br />
	{<br />
		if ($pun_user[&#039;num_posts&#039;] &lt;= 5)<br />
			$errors[] = $lang_post[&#039;New Member spam protection&#039;];<br />
		else<br />
			$errors[] = $lang_post[&#039;Post errors&#039;];//this message already exists<br />
	}<br />
}<br />
</code></p>
<p>The war on spam continues. <img src='http://jivebay.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  So far my hacks have been made it so I get no spam, even with allowing guests to post. <img src='http://jivebay.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> I've noticed in my logs that they are trying though, some of my top ranked pages are register.php and post.php. <img src='http://jivebay.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>However if you are using any kind of these hacks, you will notice that you will get tons of registrations still. I recommend you set the option to require validation.</p>
<blockquote><p>When enabled, users are e-mailed a random password when they register. They can then log in and change the password in their profile if they see fit. This feature also requires users to verify new e-mail addresses if they choose to change from the one they registered with. This is an effective way of avoiding registration abuse and making sure that all users have "correct" e-mail addresses in their profiles.</p></blockquote>
<p>The best way to deal with too many registered users from bots is to use one of the following Captcha plugins/hacks for PunBB.</p>
<ul>
<li><a href="http://www.punres.org/desc.php?pid=59">Image Verification</a></li>
<li><a href="http://www.punres.org/desc.php?pid=250">Captcha Box</a></li>
<li><a href="http://punbb.org/forums/viewtopic.php?id=15899">RegKey Plugin to work with 1.2.15</a></li>
<li><a href="http://punbb.org/forums/viewtopic.php?id=14069">Math Registration Check (code near bottom of page 1)</a></li>
</ul>
<img src="http://jivebay.com/?ak_action=api_record_view&id=142&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2007/06/27/more-spam-prevention-for-punbb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PunBB Style Tips</title>
		<link>http://jivebay.com/2007/05/25/punbb-style-tips/</link>
		<comments>http://jivebay.com/2007/05/25/punbb-style-tips/#comments</comments>
		<pubDate>Sat, 26 May 2007 00:40:11 +0000</pubDate>
		<dc:creator>blogger</dc:creator>
				<category><![CDATA[PunBB]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://jivebay.com/2007/05/25/punbb-style-tips/</guid>
		<description><![CDATA[Lets face it PunBB&#8217;s default themes are very minimalistic, however the fact everything is done in CSS, makes it easy to restyle the whole forum (unlike having to edit 20+ templates for phpBB). But you can tweak the look and get away from the text heavy and boring look.
Personally I hate how the forums go [...]]]></description>
			<content:encoded><![CDATA[<p>Lets face it PunBB&#8217;s default themes are very minimalistic, however the fact everything is done in CSS, makes it easy to restyle the whole forum (unlike having to edit 20+ templates for phpBB). But you can tweak the look and get away from the text heavy and boring look.</p>
<p>Personally I hate how the forums go 100%, so why not make them 800&#215;600 friendly but still scale up for people with 1024&#215;768.  Here is some CSS that will do that for you. Keep in mind you mind need to put this in the final CSS file that gets loaded like <strong>Oxygen.css</strong>.<br />
<code><br />
body {text-align:center}<br />
#punwrap {width:auto !important; width:750px;/*ie6*/ margin:12px auto; text-align:left; max-width:960px;}<br />
</code></p>
<p>Want that RSS feed to show up in the address bar in Firefox/Opera/Safari/IE7? Use this code in the HEAD area of <strong>header.php</strong> and be sure to put in your domain name and path to your <strong>extern.php</strong><br />
<code><br />
&lt;link rel=&quot;alternate&quot; type=&quot;application/rss+xml&quot; title=&quot;&lt;?php echo pun_htmlspecialchars($pun_config[&#039;o_board_title&#039;]); ?&gt;&quot; href=&quot;http://EXAMPLE.COM/extern.php?action=active&amp;type=RSS&quot; /&gt;<br />
</code><br />
You can pretty much make a nice little front page with different options from <strong>extern.php</strong>, it offers newest topics, recent posts, forums statistics, users online, top 10 posters and rss feeds. You can add these onto another part of your site or modify the <strong>main.tpl</strong> to add more custom stuff to your forums.</p>
<p>Want a Advertisement after the first post? After this bit of code:<br />
<code><br />
&lt;div class=&quot;clearer&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;postfootleft&quot;&gt;&lt;?php if ($cur_post[&#039;poster_id&#039;] &gt; 1) echo &#039;&lt;p&gt;&#039;.$is_online.&#039;&lt;/p&gt;&#039;; ?&gt;&lt;/div&gt;<br />
&lt;div class=&quot;postfootright&quot;&gt;&lt;?php echo (count($post_actions)) ? &#039;&lt;ul&gt;&#039;.implode($lang_topic[&#039;Link separator&#039;].&#039;&#039;, $post_actions).&#039;&lt;/div&gt;&#039;.&quot;\n&quot; : &#039;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#039;.&quot;\n&quot; ?&gt;<br />
</code></p>
<p>add</p>
<p><code><br />
&lt;?php<br />
if ($post_count == 1)<br />
{<br />
	echo &#039;ENTER YOUR AD CODE HERE&#039;;<br />
}<br />
?&gt;<br />
</code><br />
Be sure not to mess up that closing curly brace that should come after it, that closes the while loop above.</p>
<p>Now for some much needed icons, you can get graphics from anywhere, I like to use the ones by <a href="http://www.famfamfam.com/">Mark James</a> (lots of sites use these but they usually don&#8217;t give him a link back to his site like they are supposed to). Here is another site with <a href="http://www.maxpower.ca/free-icons/2006/03/05/">tons of icon graphics</a>. But here is the CSS, you&#8217;ll need for PunBB (Note: I put my images in the <strong>img</strong> folder):<br />
<code><br />
.pun span.byuser {<br />
background-position:0% 50%;<br />
background-repeat:no-repeat;<br />
background-image:url(../../img/byuser.gif);<br />
padding:0 20px;<br />
font-size:8pt;<br />
height:16px;<br />
}<br />
div.icon {<br />
background-image:url(../../img/folder.gif);<br />
}<br />
tr.inew div.icon {<br />
background-image:url(../../img/new.gif);<br />
}<br />
tr.iclosed div.icon {<br />
background-image:url(../../img/locked.gif);<br />
}<br />
tr.isticky div.icon {<br />
background-image:url(../../img/sticky.gif);<br />
}<br />
#brdstats div.box {<br />
	background:url(../../img/stats.gif) no-repeat 15px 50%;<br />
	padding:0 0 0 30px;<br />
}<br />
div.icon {<br />
float:left;<br />
display:block;<br />
width:28px;<br />
height:25px;<br />
background-repeat:no-repeat;<br />
background-position:center center;<br />
border:0 !important;<br />
}<br />
</code></p>
<p>Some of the CSS tips I got from the <a href="http://www.punres.org/viewtopic.php?id=396">phpBB skin for PunBB</a>. Its also worth using <a href="http://www.jsand.net/spinkbb/?lang=en">SpinkBB</a> to help figure out what colors might look good, then add your icons afterwards. I&#8217;ll add some more tips later on.</p>
<p><ins datetime="2008-03-08T16:01:41+00:00">I fixed a bug that only showed the advertisement after the first post on page 1 only. Now it will work on all pages.</ins></p>
<img src="http://jivebay.com/?ak_action=api_record_view&id=110&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://jivebay.com/2007/05/25/punbb-style-tips/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
