Would be great, here the manifest.xml

and the fns.php

Nice, solved my problem, so this must be bug of 1.4.1 ? (as that file is original functions.php )

I'm using an extension called 'ajax rating' that is generating this error in PunBB 1.4.1 ...

Warning: Missing argument 2 for generate_avatar_markup(), called in /home/.../toprated.php on line 140 and defined in /home/.../include/functions.php on line 500 
Warning: Missing argument 3 for generate_avatar_markup(), called in /home/.../toprated.php on line 140 and defined in /home/.../include/functions.php on line 500 
Warning: Missing argument 4 for generate_avatar_markup(), called in /home/.../toprated.php on line 140 and defined in /home/.../include/functions.php on line 500

This is the toprated.php code section that seems to be causing trouble;

    // Generate author identification
                    if ($cur_post['poster_id'] > 1)
                        if ($forum_config['o_avatars'] == '1' && $forum_user['show_avatars'] != '0')
                            $forum_page['avatar_markup'] = generate_avatar_markup($cur_post['poster_id']);

                            if (!empty($forum_page['avatar_markup']))
                                $forum_page['author_ident']['avatar'] = '<li class="useravatar">'.$forum_page['avatar_markup'].'</li>';

Anyone know what problem could be?

// Outputs markup to display a user's avatar
function generate_avatar_markup($user_id, $avatar_type, $avatar_width, $avatar_height, $username = NULL, $drop_cache = FALSE)
    global $forum_config, $base_url;

    $avatar_markup = $avatar_filename = '';

    $return = ($hook = get_hook('fn_generate_avatar_markup_start')) ? eval($hook) : null;
    if ($return != null)
        return $return;

^new 1.4.1

old 1.3.6

// Outputs markup to display a user's avatar
function generate_avatar_markup($user_id)
    global $forum_config, $base_url;

    $filetypes = array('jpg', 'gif', 'png');
    $avatar_markup = '';

    $return = ($hook = get_hook('fn_generate_avatar_markup_start')) ? eval($hook) : null;
    if ($return != null)
        return $return;

    foreach ($filetypes as $cur_type)
        $path = $forum_config['o_avatars_dir'].'/'.$user_id.'.'.$cur_type;

        if (file_exists(FORUM_ROOT.$path) && $img_size = @getimagesize(FORUM_ROOT.$path))
            $avatar_markup = '<img src="'.$base_url.'/'.$path.'" '.$img_size[3].' alt="" />';

    ($hook = get_hook('fn_generate_avatar_markup_end')) ? eval($hook) : null;

    return $avatar_markup;


(4 replies, posted in Discussions)

Did you try this?

Grez Script To Check IPs Of Already Registered Users

Make sure you download the latest banned ips csv from stopforumspam....

also this one

Script to remove users with signatures but no posts from PunBB 1.3.x

I think it's definitely okay.
I also think it makes a lot of sense to improve others extensions and re-release them with added features.
It's in the interest of the community.
You're doing the right thing!

Other solutions are effective in stopping registrations/posts;

Have you tried
stop bots question
akismet extension
URL checker

hklown wrote:

That file is a "minified" version of the forums CSS. The reason for minifing CSS (and java) is that it reduces your load times.

If you do a quick google search for "CSS unminifier" and "CSS minifier", you'll find tools you can use to "decompress" and "recompress" the CSS.

I liked and used this one recently


(6 replies, posted in PunBB 1.3 additions)

Please do it ! big_smile

- Chromium 15.x on ubuntu 10.04 , Adobe Flash-Plugin... 
- just tried it on XP machine - it all works fast and without any problem there

- maybe it's just due to 2) - haven't had the issue on XP

Split images; sounds like a good idea!

big_smile very nice! great job, definitely working

1. is it possible to align "images" text with the buttons?


2. when searching for the file to upload I get "browser page unresponsive" messages if searching for 10-20 seconds though a folder.... is this the browser, or a setting in the extension?

3.  upload button looks as below from time to time in Chromium 15.0.874.106 (Developer-Build 107270 Linux) Ubuntu 10.04 (just as an FYI)


PS: This is very neat: smile



(29 replies, posted in Supported extensions)

I think supported is good...  not sure what the distinction is tbh...


(29 replies, posted in Supported extensions)

PHP: 5.2.17 -
Accelerator: eAccelerator
MySQL Improved 5.1.58

happens because of 1.1.2  and that "EOT" ....

default settings, i.e. as soon as it's installed... happened on 2 forums..


(29 replies, posted in Supported extensions)

in 1.1.2

Parse error: syntax error, unexpected T_SL in /home/.../header.php(124) : eval()'d code on line 139

then I changed "EOT" to EOT; since then it works


        <!--Include style info-->
        <hook id="hd_head">
                $forum_loader->add_css( $ext_info['url'].'/css/'.$ext_info['id'].'.css', array( 'type'=>'url' ) );
                if ($forum_config['o_header_image_postition'] == 'BEHIND_TITLE')
                    $header_image_url = $forum_config['o_header_image_url'];
                    $header_css = <<<EOT
        background-image: url('$header_image_url');
                    $forum_loader->add_css( $header_css, array( 'type'=>'inline' ) );


(1 replies, posted in Discussions)

Thanks a lot,
added the link to your contrib at new wiki section for PunBB 1.4

Have been using this on a forum guests can post, since yesterday not a single spam post has got past akismet...

Anyone agree that it could be interesting to either add code (via a hook?) to this extension or to fancy_stop_spam / sfs_antispam so that the evidence isn't only reported to akismet but also to stopforumspam.com ?

As the API keys are both stored on boards if akismet and fancy_stop_spam/sfs_antispam are intstalled, I would imagine it could be interesting....

[edit: 2nd paragraph]


(11 replies, posted in PunBB 1.4 additions)

@Helid: Are you going to be able to make the changes suggested by Quadric? Would be good!
If not maybe someone else would like to make the changes and re-release?

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

 * Add more seo options
 * @copyright Copyright (C) 2011 Helid
 * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 * @package pun_seo

<extension engine="1.0">
    <title>Punbb SEO</title>
    <description>Add more seo options.</description>


        <hook id="vf_modify_forum_info"><![CDATA[
            $seo_url = forum_sublink($forum_url['forum'], $forum_url['page'], (isset($_GET['p']) ? $_GET['p'] : 1), array($id, sef_friendly($cur_forum['forum_name'])));
            if ($seo_url !== get_current_url())
                header("Location: $seo_url", true, 301);
        <hook id="vt_modify_topic_info"><![CDATA[
            $seo_url = forum_sublink($forum_url['topic'], $forum_url['page'], (isset($_GET['p']) ? $_GET['p'] : 1), array($id, sef_friendly($cur_topic['subject'])));
            if ($seo_url !== get_current_url() && $pid != 0)
                header("Location: $seo_url", true, 301);
        <hook id="ps_handle_url_tag_start"><![CDATA[
        if (!$bbcode)
            $full_url = str_replace(array(' ', '\'', '`', '"'), array('%20', '', '', ''), $url);
            if (strpos($url, 'www.') === 0)            // If it starts with www, we add http://
                $full_url = 'http://'.$full_url;
            else if (strpos($url, 'ftp.') === 0)    // Else if it starts with ftp, we add ftp://
                $full_url = 'ftp://'.$full_url;
            else if (!preg_match('#^([a-z0-9]{3,6})://#', $url))     // Else if it doesn't start with abcdef://, we add http://
                $full_url = 'http://'.$full_url;
            if (defined('FORUM_SUPPORT_PCRE_UNICODE') && defined('FORUM_ENABLE_IDNA'))
                $link_name = ($link == '' || $link == $url) ? $url : $link;
                if (preg_match('!^(https?|ftp|news){1}'.preg_quote('://xn--', '!').'!', $link_name))
                    $link = $idn->decode($link_name);

            $link = ($link == '' || $link == $url) ? ((utf8_strlen($url) > 55) ? utf8_substr($url, 0 , 39).' … '.utf8_substr($url, -10) : $url) : stripslashes($link);
            return '<a href="'.$full_url.'" rel="nofollow">'.$link.'</a>';
        <hook id="fn_generate_crumbs_end"><![CDATA[
        if ($reverse)
            $items = count($forum_page['crumbs']);
            $last_item = $items-1;
            $before_last_item = $items-2;
            if($items > 1)
                if($forum_page['crumbs'][$last_item][0] != $forum_page['crumbs'][$before_last_item][0])
                    $crumbs = $forum_page['crumbs'][$last_item][0].' - '.$forum_page['crumbs'][$before_last_item][0].' - '.$forum_page['crumbs'][0][0];
                } else {
                    $crumbs = $forum_page['crumbs'][$before_last_item][0].' - '.$forum_page['crumbs'][0][0];
            } else {
                $crumbs = $forum_page['crumbs'][0];


(3 replies, posted in PunBB 1.4 troubleshooting)


Try converting from SMF 2.0.1 to phpBB 3.x

Then use this tool (by Grez) to convert from phpBB 3.x to punBB 1.3.4 (then easy upgrade to PunBB 1.4.1)

Let us know how it goes for you...


(115 replies, posted in Supported extensions)

Can confirm that 1.3.50 version works for reporting spammers to stopforumspam.com (with an API key of mine) ...

Small negative: A known spammer just registered here, who had two listings in stopforumspam - july 2011 -
How could that happen? (IP 2x)

dimkalinux wrote:

Currently fancy_stop_spam have is_bot flag in users table. It turn on when user make suspicious action.

Had not seen this until just now... very nice... many options!


Will be great if you have same options as in sfs_antispam extension for submitting the evidence (when deleting a user)!

@Grez: I believe not (see email...)

Grez wrote:

@KeyDog: Yea, that smiley is nice big_smile They even had a blog post about that. Though I don't blame them. Automattic created one of the most successful open source CMS in the world, it's still better than some company which buys open source forum and after some time leaves it without support (guess which Russian company do I have on mind? tongue)

Interesting statistics big_smile
I know what you mean. But I think the guy who sold it to Russian company was the one that acted egoistically (wrongly, imho). If you create something open source, you need to make sure it stays that way. I think informer has - currently - found a good solution for keeping it going and I appreciate the effort dimkalinux and hcs (and extension developers, moderators) invest into the project smile

Grez wrote:

But they are still free for personal blogs, so I don't think forum could be much different. Quite active forum might get how much? 500 posts a day? If we check only users with less than 10 posts it could be how many? 20, 30 request a day? That (I bet) is still in their free plan smile

True, still free.

Just a bit annoyed when they try to make you feel bad for not paying even though their database is based on a community effort and plugins are developed by third parties.

No transparency over how much they are making from it...

Rich Pedley wrote:


Settings page now has in the Akismet section:

  • Enable Akismet

  • Akismet API Key

  • Ban period - How long Akismet will set the user ban for.

  • Member Min. Posts - Minimum amount of posts a member must have before they are not checked by Akismet

New page under management to handle posts marked as spam - Akismet (wot else!).
This page features a basic spam/ham count.

All spam is listed on one page, and via the select boxes you can delete them, or set them as ham.

One small and minor bug on this page: Deleting Topic starter posts in the list have the unfortunate side effect of deleting the entire topic - hough that may not be such a bad thing.

Individual posts can be marked as spam, or not spam by moderators and admin.

Posts you mark as spam are sent to akismet, and likewise posts marked as ham are also sent. This will go a long way to akismet getting better and better as time goes on.

The content of posts are hidden (possibly not on the search results page as yet - please let me know about that) for guests/members, but viewable with a warning for moderators/admin. I also disabled the reply link for posts marked as spam.

Grez wrote:

(source quote) I've checked the extension whether is still compatible with 1.4.1 and since it is, I've just made few small changes and here's the "new" version.

Also downloadable via extension directory (should link above ever fail)

Thanks to Grez, Rich Pedley and Garciat!

(Just re-posting from 1.3 Extensions section for future reference and ease of finding most current version...)

Grez wrote:

Why reinvent the wheel? Akismet does this with much better accuracy and we already have extension for it. (btw Rich Pedley's version still works, though I'd recommend to use the one I posted at the end of topic, since Rich wasn't here for two years...)


Thanks a lot for thinking of the Aksimet approach and updating the extension. Have installed and am testing your update on a testforum...


They are a bit too much in ones face about money (sad smiley face when giving 0$ & priority on paid accounts) and getting an API from them... (granted: because of their popularity!) I hope we can implement a solution that a.) doesn't need an API (like URL Checker extension)  b.) places more  transparency on any income made from project.

Akismet wrote:

Paid account perks - Priority over free accounts - Faster & more reliable - No traffic limits or throttles

dimkalinux wrote:

I dont like any auto-ban or even auto-remove methods - its very very bad.

Agree. That's why I'd place any posts dealt with (also the akismet-method) in a quarantine section (like pun_approval does for posts).

Combining keyword censoring and approach from pun_approval can be an interesting approach.
[KEYDOG EDIT: THIS IS ALREADY POSSIBLE:]Maybe it will be enough to upgrade the akismet extension to be able to retrieve the false positives...

dimkalinux wrote:

And user can remove this flag through some actions - for example captcha or other methods.

Knowing that spammers have cracked the captcha technology or use cheap manual labor for high profile sites such as this one (punbb.informer.com/forums), I'm sure it will reduce, but not eliminate the problem posts.

IPB 3.2 --> phpbb 2.x --> phpbb 3.x --> PunBB 1.3.4 -->  PunBB 1.4.1

http://punbb.informer.com/forums/topic/ … -to-punbb/


(4 replies, posted in Discussions)

OHost wrote:

Hello there.

I require a way to get from IPB 3.2 to the latest PunBB, is there ANY way i can do this? Major respect to anyone who gives me a way that works.

This is ONE way....

IPB 3.2 --> phpbb 2.x --> phpbb 3.x --> PunBB 1.3.4 -->  PunBB 1.4.1

http://punbb.informer.com/forums/topic/ … tion-tool/