The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#41
|
||||
|
||||
My guess it that you didn't read post 21 in which someone corrects the code posted in post 20. And, you may have missed a few steps since your table doesn't look correct.
|
#42
|
||||
|
||||
yea, i did get that correct.... since it's all in the ranks.php maybe somebody can share a working copy ?
|
#43
|
|||
|
|||
Just do like he said...
Post 20 is the code Post 21 is a slight fix of the code (had somehting named wrong) Post 24 is responsible for making the above screenshot have the rankid visible for an overview Obviously you didn't do 24 right...but if you did 20/21, then you should be able to hit the edit button to the right of the rank and see a rank order section. See screenshot below. |
#44
|
||||
|
||||
Quote:
there's no way you can share your working ranks.php ? with possible edits to protect sensitive information ? again thanks... |
#45
|
|||
|
|||
ranks.php for vBulletin 3.8.0 Release Candidate 2
(I still need to update to the latest vBulletin) Code:
<?php /*======================================================================*\ || #################################################################### || || # vBulletin 3.8.0 Release Candidate 2 || # ---------------------------------------------------------------- # || || # Copyright ?2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. || || # This file may not be redistributed in whole or significant part. # || || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || || #################################################################### || \*======================================================================*/ // ######################## SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); // ##################### DEFINE IMPORTANT CONSTANTS ####################### define('CVS_REVISION', '$RCSfile$ - $Revision: 12761 $'); // #################### PRE-CACHE TEMPLATES AND DATA ###################### $phrasegroups = array('user', 'cpuser', 'cprank'); $specialtemplates = array(); // ########################## REQUIRE BACK-END ############################ require_once('./global.php'); require_once(DIR . '/includes/functions_ranks.php'); // ######################## CHECK ADMIN PERMISSIONS ####################### if (!can_administer('canadminusers')) { print_cp_no_permission(); } $vbulletin->input->clean_array_gpc('r', array('rankid' => TYPE_UINT)); // ############################# LOG ACTION ############################### log_admin_action(!empty($vbulletin->GPC['rankid']) ? "rank id = " . $vbulletin->GPC['rankid'] : ''); // ######################################################################## // ######################### START MAIN SCRIPT ############################ // ######################################################################## print_cp_header($vbphrase['user_rank_manager']); if (empty($_REQUEST['do'])) { $_REQUEST['do'] = 'modify'; } // ###################### Start insert ####################### if ($_POST['do'] == 'insert') { $vbulletin->input->clean_array_gpc('p', array( 'ranklevel' => TYPE_UINT, 'minposts' => TYPE_UINT, 'rankimg' => TYPE_STR, 'usergroupid' => TYPE_INT, 'doinsert' => TYPE_STR, 'rankhtml' => TYPE_NOTRIM, 'stack' => TYPE_UINT, 'display' => TYPE_UINT, 'rankorder' => TYPE_UNIT, )); if (!$vbulletin->GPC['ranklevel'] OR (!$vbulletin->GPC['rankimg'] AND !$vbulletin->GPC['rankhtml'])) { if ($vbulletin->GPC['doinsert']) { echo '<p><b>' . $vbphrase['invalid_file_path_specified'] . '</b></p>'; $vbulletin->GPC['rankimg'] = $vbulletin->GPC['doinsert']; } else { print_stop_message('please_complete_required_fields'); } } if ($vbulletin->GPC['usergroupid'] == -1) { $vbulletin->GPC['usergroupid'] = 0; } if (!$vbulletin->GPC['rankhtml']) { $vbulletin->GPC['rankimg'] = preg_replace('/\/$/s', '', $vbulletin->GPC['rankimg']); if($dirhandle = @opendir(DIR . '/' . $vbulletin->GPC['rankimg'])) { // Valid directory! readdir($dirhandle); readdir($dirhandle); while ($filename = readdir($dirhandle)) { if (is_file(DIR . "/{$vbulletin->GPC['rankimg']}/" . $filename) AND (($filelen = strlen($filename)) >= 5)) { $fileext = strtolower(substr($filename, $filelen - 4, $filelen - 1)); if ($fileext == '.gif' OR $fileext == '.bmp' OR $fileext == '.jpg' OR $fileext == 'jpeg' OR $fileext == 'png') { $FileArray[] = htmlspecialchars_uni($filename); } } } if (!is_array($FileArray)) { print_stop_message('no_matches_found'); } print_form_header('ranks', 'insert', 0, 1, 'name', ''); print_table_header($vbphrase['images']); construct_hidden_code('usergroupid', $vbulletin->GPC['usergroupid']); construct_hidden_code('ranklevel', $vbulletin->GPC['ranklevel']); construct_hidden_code('minposts', $vbulletin->GPC['minposts']); construct_hidden_code('rankorder', $vbulletin->GPC['rankorder']); construct_hidden_code('doinsert', $vbulletin->GPC['rankimg']); foreach ($FileArray AS $key => $val) { print_yes_row("<img src='../" . $vbulletin->GPC['rankimg'] . "/$val' border='0' alt='' align='center' />", 'rankimg', '', '', $vbulletin->GPC['rankimg'] . "/$val"); } print_submit_row($vbphrase['save']); closedir($dirhandle); exit; } else { // Not a valid dir so assume it is a filename if (!(@is_file(DIR . '/' . $vbulletin->GPC['rankimg']))) { print_stop_message('invalid_file_path_specified'); } } $type = 0; } else { $vbulletin->GPC['rankimg'] = $vbulletin->GPC['rankhtml']; $type = 1; } build_ranks(); /*insert query*/ $db->query_write(" INSERT INTO " . TABLE_PREFIX . "ranks (ranklevel, minposts, rankimg, usergroupid, type, stack, display, rankorder) VALUES ( " . $vbulletin->GPC['ranklevel'] . ", " . $vbulletin->GPC['minposts'] . ", '" . $db->escape_string($vbulletin->GPC['rankimg']) . "', " . $vbulletin->GPC['usergroupid'] . ", $type, " . $vbulletin->GPC['stack'] . ", " . $vbulletin->GPC['display'] . ", " . $vbulletin->GPC['rankorder'] . " ) "); build_ranks(); define('CP_REDIRECT', 'ranks.php?do=modify'); print_stop_message('saved_user_rank_successfully'); } // ###################### Start edit ####################### if ($_REQUEST['do'] == 'edit' OR $_REQUEST['do'] == 'add') { if ($_REQUEST['do'] == 'edit') { $ranks = $db->query_first(" SELECT * FROM " . TABLE_PREFIX . "ranks WHERE rankid = " . $vbulletin->GPC['rankid'] . " "); print_form_header('ranks', 'doupdate'); } else { $ranks = array( 'ranklevel' => 1, 'usergroupid' => -1, 'minposts' => 10, 'rankimg' => 'images/', ); print_form_header('ranks', 'insert'); } if ($ranks['type']) { $ranktext = $ranks['rankimg']; } else { $rankimg = $ranks['rankimg']; } $displaytype = array( $vbphrase['always'], $vbphrase['if_displaygroup_equals_this_group'], ); construct_hidden_code('rankid', $vbulletin->GPC['rankid']); print_table_header(construct_phrase($vbphrase['x_y_id_z'], $vbphrase['user_rank'], '', $vbulletin->GPC['rankid'])); print_input_row($vbphrase['times_to_repeat_rank'], 'ranklevel', $ranks['ranklevel']); print_chooser_row($vbphrase['usergroup'], 'usergroupid', 'usergroup', $ranks['usergroupid'], $vbphrase['all_usergroups']); print_input_row($vbphrase['minimum_posts'], 'minposts', $ranks['minposts']); print_yes_no_row($vbphrase['stack_rank'], 'stack', $ranks['stack']); print_select_row($vbphrase['display_type'], 'display', $displaytype, $ranks['display']); print_table_header($vbphrase['rank_type']); print_input_row($vbphrase['user_rank_file_path'], 'rankimg', $rankimg); print_input_row($vbphrase['or_you_may_enter_text'], 'rankhtml', $ranktext); print_input_row('Rank Order', 'rankorder', $ranks['rankorder']); print_submit_row(); } // ###################### Start do update ####################### if ($_POST['do'] == 'doupdate') { $vbulletin->input->clean_array_gpc('p', array( 'ranklevel' => TYPE_UINT, 'minposts' => TYPE_UINT, 'rankimg' => TYPE_STR, 'usergroupid' => TYPE_INT, 'rankhtml' => TYPE_NOTRIM, 'stack' => TYPE_UINT, 'display' => TYPE_UINT, 'rankorder' => TYPE_UNIT, )); if (!$vbulletin->GPC['ranklevel'] OR (!$vbulletin->GPC['rankimg'] AND !$vbulletin->GPC['rankhtml'])) { print_stop_message('please_complete_required_fields'); } if ($vbulletin->GPC['rankhtml']) { $type = 1; $vbulletin->GPC['rankimg'] = $vbulletin->GPC['rankhtml']; } else { $type = 0; if (!(@is_file(DIR . '/' . $vbulletin->GPC['rankimg']))) { print_stop_message('invalid_file_path_specified'); } } $db->query_write(" UPDATE " . TABLE_PREFIX . "ranks SET ranklevel = " . $vbulletin->GPC['ranklevel'] . ", minposts = " . $vbulletin->GPC['minposts'] . ", rankimg = '" . $db->escape_string($vbulletin->GPC['rankimg']) . "', usergroupid = " . $vbulletin->GPC['usergroupid'] . ", type = $type, stack = " . $vbulletin->GPC['stack'] . ", display = " . $vbulletin->GPC['display'] . ", rankorder = " . $vbulletin->GPC['rankorder'] . " WHERE rankid = " . $vbulletin->GPC['rankid'] . " "); build_ranks(); define('CP_REDIRECT', 'ranks.php?do=modify'); print_stop_message('saved_user_rank_successfully'); } // ###################### Start Remove ####################### if ($_REQUEST['do'] == 'remove') { print_form_header('ranks', 'kill'); construct_hidden_code('rankid', $vbulletin->GPC['rankid']); print_table_header($vbphrase['confirm_deletion']); print_description_row($vbphrase['are_you_sure_you_want_to_delete_this_user_rank']); print_submit_row($vbphrase['yes'], '', 2, $vbphrase['no']); } // ###################### Start Kill ####################### if ($_POST['do'] == 'kill') { $db->query_write("DELETE FROM " . TABLE_PREFIX . "ranks WHERE rankid = " . $vbulletin->GPC['rankid']); build_ranks(); define('CP_REDIRECT', 'ranks.php?do=modify'); print_stop_message('deleted_user_rank_successfully'); } // ###################### Start modify ####################### if ($_REQUEST['do'] == 'modify') { $ranks = $db->query_write(" SELECT rankid, ranklevel, minposts, rankimg, ranks. usergroupid,title, type, display, stack, rankorder FROM " . TABLE_PREFIX . "ranks AS ranks LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup USING(usergroupid) ORDER BY rankorder, ranks.usergroupid, minposts "); print_form_header('', ''); print_table_header($vbphrase['user_rank_manager']); print_description_row($vbphrase['user_ranks_desc'] . '<br /><br />' . construct_phrase($vbphrase['it_is_recommended_that_you_update_user_titles'], $vbulletin->session->vars['sessionurl']) ,'',0); print_table_footer(); if ($db->num_rows($ranks) == 0) { print_stop_message('no_user_ranks_defined'); } print_form_header('', ''); while ($rank = $db->fetch_array($ranks)) { if ($tempgroup != $rank['usergroupid']) { if (isset($tempgroup)) { print_table_break(); } $tempgroup = $rank['usergroupid']; print_table_header(iif($rank['usergroupid'] == 0, $vbphrase['all_usergroups'], $rank['title']), 6, 1); print_cells_row(array($vbphrase['user_rank'], $vbphrase['minimum_posts'], $vbphrase['display_type'], $vbphrase['stack_rank'], 'Rank Order', $vbphrase['controls']), 1, '', -1); } $count = 0; $rankhtml = ''; while ($count++ < $rank['ranklevel']) { if (!$rank['type']) { $rankhtml .= "<img src=\"../$rank[rankimg]\" border=\"0\" alt=\"\" />"; } else { $rankhtml .= $rank['rankimg']; } } $cell = array( $rankhtml, vb_number_format($rank['minposts']), ($rank['display'] ? $vbphrase['displaygroup'] : $vbphrase['always']), ($rank['stack'] ? $vbphrase['yes'] : $vbphrase['no']), vb_number_format($rank['rankorder']), construct_link_code($vbphrase['edit'], "ranks.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&rankid=$rank[rankid]") . construct_link_code($vbphrase['delete'], "ranks.php?" . $vbulletin->session->vars['sessionurl'] . "do=remove&rankid=$rank[rankid]") ); print_cells_row($cell, 0, '', -1); } print_table_footer(); } print_cp_footer(); /*======================================================================*\ || #################################################################### || # Downloaded: 09:08, Thu Jan 1st 2009 || # CVS: $RCSfile$ - $Revision: 12761 $ || #################################################################### \*======================================================================*/ ?> Also noticed something. My version is a working version. I haven't had any issues with it. However, there appears to be a typo. Any know if it is truly one or if it's intended? This occurs in a couple places: Code:
'display' => TYPE_UINT,
'rankorder' => TYPE_UNIT,
--------------- Added [DATE]1245598267[/DATE] at [TIME]1245598267[/TIME] --------------- Quote:
As for the database, this is how mine looks on the ranks table. I just added another field with these values: Hope that helps. |
#46
|
||||
|
||||
sweet.... THANKS, it works now.
|
#47
|
|||
|
|||
I've been working on this for several hours now trying to figure out why I get the following error. I've looked up the error code 1064 and there was some reference to 'order' as a reserved word in some versions of MySQL but I dont think 'rankorder' would cause that problem. Plus more ppl would be having the problem.
I've gone over my php code changes several times in ranks and functions_ranks to make sure it's right. Can anyone see what the problem might be? I saw some reference to the CHARSET setting but I tried different settings with no help. It's not real intuitive considering my db tables appear to default to MyISAM DEFAULT latin1_swedish_ci. Not sure why it would be swedish. I'm in the US. I digress, I'm not trying to get a MySQL lesson, just sayin. Thanks for any help. The rankorder column shows up just fine in admincp. I get this error when I try to change the rankorder on a badge. Here's the error: Quote:
|
#48
|
||||
|
||||
If you take a look at the error query, you'll see you are missing commas between a couple of the values. So, go back to the instructions and copy the query exactly - with the commas - and it should work.
|
#49
|
|||
|
|||
I've learned that whenever I get a syntax error for line X (9 in your example), the error is usually at the end of the previous line...8.
Line 8: display = 0 compare that to line 7 since it's basically the same, and you can see it's missing a comma. I don't think you need a comma after "rankorder = 1" though. Commas are separating all the values...not the WHERE statement. |
#50
|
|||
|
|||
You guys rock! That fixed it.
I def did post 21 but obviously messed it up. Thanks again! |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|