(0 replies, posted in PunBB 1.3 troubleshooting)

Why forum has NOINDEX, FOLLOW? It means that forum posts wont get indexed...?


(7 replies, posted in PunBB 1.3 troubleshooting)

The question is:

I would like to pernamently add 5 most recent posts with selected keyword to my site. How do I do that? How do I make a search and display results myself?

Sorry for my answer, was a bit nervous that day smile Well I guess Slavok helped explaining what i ment smile You have to remove border aswell...

Ok... a quickfix from my side:

Just remove accents when creating serach_words index and before processing search query with those functions:

function remove_accents($string) {
    if (seems_utf8($string)) {
        $chars = array(
        // Decompositions for Latin-1 Supplement
        chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
        chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
        chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
        chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
        chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
        chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
        chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
        chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
        chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
        chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
        chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
        chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
        chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
        chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
        chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
        chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
        chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
        chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
        chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
        chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
        chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
        chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
        chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
        chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
        chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
        chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
        chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
        chr(195).chr(191) => 'y',
        // Decompositions for Latin Extended-A
        chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
        chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
        chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
        chr(196).chr(134) => 'C', chr(196).chr(134) => 'c',
        chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
        chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
        chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
        chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
        chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
        chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
        chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
        chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
        chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
        chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
        chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
        chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
        chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
        chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
        chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
        chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
        chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
        chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
        chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
        chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
        chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
        chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
        chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
        chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
        chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
        chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
        chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
        chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
        chr(197).chr(128) => 'l', chr(196).chr(129) => 'L',
        chr(197).chr(130) => 'l', chr(196).chr(131) => 'N',
        chr(197).chr(132) => 'n', chr(196).chr(133) => 'N',
        chr(197).chr(134) => 'n', chr(196).chr(135) => 'N',
        chr(197).chr(136) => 'n', chr(196).chr(137) => 'N',
        chr(197).chr(138) => 'n', chr(196).chr(139) => 'N',
        chr(197).chr(140) => 'O', chr(196).chr(141) => 'o',
        chr(197).chr(142) => 'O', chr(196).chr(143) => 'o',
        chr(197).chr(144) => 'O', chr(196).chr(145) => 'o',
        chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
        chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
        chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
        chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
        chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
        chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
        chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
        chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
        chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
        chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
        chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
        chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
        chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
        chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
        chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
        chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
        chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
        chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
        chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
        chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
        chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
        chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
        chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
        // Euro Sign
        chr(226).chr(130).chr(172) => 'E');
        $string = strtr($string, $chars);
    } else {
        // Assume ISO-8859-1 if not UTF-8
        $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)

        $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";

        $string = strtr($string, $chars['in'], $chars['out']);
        $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
        $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
        $string = str_replace($double_chars['in'], $double_chars['out'], $string);

    return $string;

function seems_utf8($Str) { # by bmorel at ssi dot fr
    for ($i=0; $i<strlen($Str); $i++) {
        if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
        elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
        elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
        elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
        elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
        elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
        else return false; # Does not match any model
        for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
            if ((++$i == strlen($Str)) || ((ord($Str[$i]) & 0xC0) != 0x80))
            return false;
    return true;


1. Add above functions to include/functions.php
2. In file include/search_idx.php, function split_words, before "return $words" add this line:

$words = array_map('remove_accents',$words);

3. In search.php, find line "if ($action == 'search')" and below you should have "$keywords = (isset($_GET['keywords'])) ? forum_trim($_GET['keywords']) : null;";
relace it with:

$keywords = (isset($_GET['keywords'])) ? forum_trim(remove_accents($_GET['keywords'])) : null;

4. Rebuild search index in admin panel, to make it work on already posted posts.

Works like a charm...

The idea is to deaccentize all words in search index and search them without accents even when user search terms contains them.

The bad side: well... since fulltext serach does the same, it should do a job.

PS. PunBB already has some function to deaccentize words (used in friendly urls creation) but can't find it so I added my own


(4 replies, posted in PunBB 1.3 troubleshooting)

Oh ok. Thank you.

Yes i know... thats why i asked here if someone got the language packs i need smile Oh well ill have to use automatic google translation instead then.

Any extention that allows user to enter real name in registration process?

Any suggestion how to fix it for now? As far as I understand search function generates some phrase indexes.... maybe just strip accents in generating that index?

For example for czech language its done and for sloviakan too, but its not in your wiki. Same with italian.

I just noticed that punbb search function has a problem with accents... i mean if in the forum there is a phrase with accents, and youre searching without them, it wont find the phrase... why didn't you just use fulltext search?
Best regards,

Edit: Got it. Instructions on how to quick fix it, below.


(14 replies, posted in PunBB 1.3 extensions)

And how do i generate my own content and not add it? I mean replace the original content in hook and not add something...

For example I would like to make extention that displays forum list in different way than original...

Jezus christ... Change it in CSS!!!! It's not a real picture, just a square with frame, instead of border-color use background image and size it.


(3 replies, posted in PunBB 1.3 troubleshooting)

And its not there on style list.

Not all. And they are not there.



(4 replies, posted in PunBB 1.3 troubleshooting)

So those files will get just ovewrriten??


(4 replies, posted in PunBB 1.3 troubleshooting)

I wonder if when I got autoupdate on and I modified some things in core files (forum.php, viewpost.php, viewforum.php, search.php), if there will be new version, what will happen with my mods?
Best regards,


(3 replies, posted in PunBB 1.3 troubleshooting)

How do I add a style so punbb would see it? Only copying it to style directory doesnt change anything.
Best regards,

I can't find any portuguese and dutch language packs for 1.3.4 ... any help?
Best regards,


(60 replies, posted in PunBB 1.3 extensions)

I think this project is abandoned. No new versions for 2 months now.


(7 replies, posted in PunBB 1.3 troubleshooting)

How do I display search results for selected keywords on my site? I really don't understand this search procedure... any help?
Best regards,

colak wrote:

Hi FlashT

You can have the userlist hidden from guests

Can I? They can still go to forum.url/user-xxx.htm

It's a big bug... when for example guest doesn't have access to selected forum, he can still see posts on that forum by going to the userlist and selecting desired users posts.

Could someone explain me how does the search on punBB work? I totally don't understand that search script...
Best regards,


(76 replies, posted in PunBB 1.3 extensions)

<lastmod></lastmod> is missing, thats really bad especialy when we talk about forum.

ollyno1uk wrote:

Actually I got it resolved by creating a file called sitemap.xml and changing the permissions to 777 then it now works.

Make it 666.