Topic: Ranks Trouble

well just some of my ranks i have set up are not registering.

i have some users with like 6-94 number of posts
and i have my rank like:

New Postser : 5
Member : 10
Power Poster : 50
Long Time Poster : 100

but the user's rank are still "New Poster"

iv deleted the cache, deleted the rank and re-added it. i have users with post counts in the 190's and they have the rank "Long Time Poster". so im lost on why the other ones are not registering

2 (edited by Frank H 2005-04-12 16:27)

Re: Ranks Trouble

I've got the same problems, have a ranks at 0,1,50,100,250,500 ... but a user with 400 something still just has the 100 rank ...

probably some php funciton, I'm using PHP 4.1.2

gonna go do some debugging to see what I can come up with ... if I just find where to look wink


Edit: ok, I have figured out what's wrong ... gonna make a fix, and post in the bugs forum wink
Edit2: failed to make a working fix, but at least I know where the problem is ... has posted in the bugs forum

Re: Ranks Trouble

good to know thanx

Re: Ranks Trouble

Was this ever fixed?  Remains a problem for me, even upgrading to the latest 1.2.14..

Thanks smile

Re: Ranks Trouble

Yes, this was fixed quite a few versions ago smile
Could you paste a copy of your include/cache.php?

6 (edited by pogenwurst 2006-11-23 03:34)

Re: Ranks Trouble

<?php
/***********************************************************************

  Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)

  This file is part of PunBB.

  PunBB is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published
  by the Free Software Foundation; either version 2 of the License,
  or (at your option) any later version.

  PunBB is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  MA  02111-1307  USA

************************************************************************/


// Make sure no one attempts to run this script "directly"
if (!defined('PUN'))
    exit;


//
// If we are running pre PHP 4.2.0, we add our own implementation of var_export
//
if (!function_exists('var_export'))
{
    function var_export()
    {
        $args = func_get_args();
        $indent = (isset($args[2])) ? $args[2] : '';

        if (is_array($args[0]))
        {
            $output = 'array ('."\n";

            foreach ($args[0] as $k => $v)
            {
                if (is_numeric($k))
                    $output .= $indent.'  '.$k.' => ';
                else
                    $output .= $indent.'  \''.str_replace('\'', '\\\'', str_replace('\\', '\\\\', $k)).'\' => ';

                if (is_array($v))
                    $output .= var_export($v, true, $indent.'  ');
                else
                {
                    if (gettype($v) != 'string' && !empty($v))
                        $output .= $v.','."\n";
                    else
                        $output .= '\''.str_replace('\'', '\\\'', str_replace('\\', '\\\\', $v)).'\','."\n";
                }
            }

            $output .= ($indent != '') ? $indent.'),'."\n" : ')';
        }
        else
            $output = $args[0];

        if ($args[1] == true)
            return $output;
        else
            echo $output;
    }
}


//
// Generate the config cache PHP script
//
function generate_config_cache()
{
    global $db;

    // Get the forum config from the DB
    $result = $db->query('SELECT * FROM '.$db->prefix.'config', true) or error('Unable to fetch forum config', __FILE__, __LINE__, $db->error());
    while ($cur_config_item = $db->fetch_row($result))
        $output[$cur_config_item[0]] = $cur_config_item[1];

    // Output config as PHP code
    $fh = @fopen(PUN_ROOT.'cache/cache_config.php', 'wb');
    if (!$fh)
        error('Unable to write configuration cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__);

    fwrite($fh, '<?php'."\n\n".'define(\'PUN_CONFIG_LOADED\', 1);'."\n\n".'$pun_config = '.var_export($output, true).';'."\n\n".'?>');

    fclose($fh);
}


//
// Generate the bans cache PHP script
//
function generate_bans_cache()
{
    global $db;

    // Get the ban list from the DB
    $result = $db->query('SELECT * FROM '.$db->prefix.'bans', true) or error('Unable to fetch ban list', __FILE__, __LINE__, $db->error());

    $output = array();
    while ($cur_ban = $db->fetch_assoc($result))
        $output[] = $cur_ban;

    // Output ban list as PHP code
    $fh = @fopen(PUN_ROOT.'cache/cache_bans.php', 'wb');
    if (!$fh)
        error('Unable to write bans cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__);

    fwrite($fh, '<?php'."\n\n".'define(\'PUN_BANS_LOADED\', 1);'."\n\n".'$pun_bans = '.var_export($output, true).';'."\n\n".'?>');

    fclose($fh);
}


//
// Generate the ranks cache PHP script
//
function generate_ranks_cache()
{
    global $db;

    // Get the rank list from the DB
    $result = $db->query('SELECT * FROM '.$db->prefix.'ranks', true) or error('Unable to fetch rank list', __FILE__, __LINE__, $db->error());

    $output = array();
    while ($cur_rank = $db->fetch_assoc($result))
        $output[] = $cur_rank;

    // Output ranks list as PHP code
    $fh = @fopen(PUN_ROOT.'cache/cache_ranks.php', 'wb');
    if (!$fh)
        error('Unable to write ranks cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__);

    fwrite($fh, '<?php'."\n\n".'define(\'PUN_RANKS_LOADED\', 1);'."\n\n".'$pun_ranks = '.var_export($output, true).';'."\n\n".'?>');

    fclose($fh);
}


//
// Generate quickjump cache PHP scripts
//
function generate_quickjump_cache($group_id = false)
{
    global $db, $lang_common, $pun_user;

    // If a group_id was supplied, we generate the quickjump cache for that group only
    if ($group_id !== false)
        $groups[0] = $group_id;
    else
    {
        // A group_id was now supplied, so we generate the quickjump cache for all groups
        $result = $db->query('SELECT g_id FROM '.$db->prefix.'groups') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error());
        $num_groups = $db->num_rows($result);

        for ($i = 0; $i < $num_groups; ++$i)
            $groups[] = $db->result($result, $i);
    }

    // Loop through the groups in $groups and output the cache for each of them
    while (list(, $group_id) = @each($groups))
    {
        // Output quickjump as PHP code
        $fh = @fopen(PUN_ROOT.'cache/cache_quickjump_'.$group_id.'.php', 'wb');
        if (!$fh)
            error('Unable to write quickjump cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__);

        $output = '<?php'."\n\n".'define(\'PUN_QJ_LOADED\', 1);'."\n\n".'?>';
        $output .= "\t\t\t\t".'<form id="qjump" method="get" action="viewforum.php">'."\n\t\t\t\t\t".'<div><label><?php echo $lang_common[\'Jump to\'] ?>'."\n\n\t\t\t\t\t".'<br /><select name="id" onchange="window.location=(\'viewforum.php?id=\'+this.options[this.selectedIndex].value)">'."\n";


        $result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.redirect_url FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$group_id.') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());

        $cur_category = 0;
        while ($cur_forum = $db->fetch_assoc($result))
        {
            if ($cur_forum['cid'] != $cur_category)    // A new category since last iteration?
            {
                if ($cur_category)
                    $output .= "\t\t\t\t\t\t".'</optgroup>'."\n";

                $output .= "\t\t\t\t\t\t".'<optgroup label="'.pun_htmlspecialchars($cur_forum['cat_name']).'">'."\n";
                $cur_category = $cur_forum['cid'];
            }

            $redirect_tag = ($cur_forum['redirect_url'] != '') ? ' >>>' : '';
            $output .= "\t\t\t\t\t\t\t".'<option value="'.$cur_forum['fid'].'"<?php echo ($forum_id == '.$cur_forum['fid'].') ? \' selected="selected"\' : \'\' ?>>'.pun_htmlspecialchars($cur_forum['forum_name']).$redirect_tag.'</option>'."\n";
        }

        $output .= "\t\t\t\t\t".'</optgroup>'."\n\t\t\t\t\t".'</select>'."\n\t\t\t\t\t".'<input type="submit" value="<?php echo $lang_common[\'Go\'] ?>" accesskey="g" />'."\n\t\t\t\t\t".'</label></div>'."\n\t\t\t\t".'</form>'."\n";

        fwrite($fh, $output);

        fclose($fh);
    }
}

I did find that reordering cache_ranks.php fixed the problem.. but is there something in my cache.php that should be different?

Thank you smile

Re: Ranks Trouble

You're not using a recent copy of cache.php (and by recent, I mean you're quite a few versions behind). Download a fresh copy and upload the file from there.

Re: Ranks Trouble

strange.. I ran the upgrade as per instructions and it looked like it went without hitch.
truth be told, aside from stating the correct version, I noticed no differences.
(according to my previous installation, I had been running 1.2.2 ??)

Re: Ranks Trouble

*confused*
if the "latest and greatest" version of punBB is 1.2.14, then why are there old versions 1.2.9 and such?
and there doesn't seem to be a cache.php file in the new pack/zip file... where should I be looking?

Thanks so much for your help..

Re: Ranks Trouble

if the "latest and greatest" version of punBB is 1.2.14, then why are there old versions 1.2.9 and such?

Because some people feel the need to download old copies?

and there doesn't seem to be a cache.php file in the new pack/zip file... where should I be looking?

upload/include

Re: Ranks Trouble

Oh gosh.  I was reading 1.2.14 as 1.2.1.4 ... which would bring it before 1.2.9.. hence my confusion.  my bad...

and I was looking for cache under the /cache/ directory  (eep.)

thank you....