From 576195bb294ac1dc819ea9434296b43b75017075 Mon Sep 17 00:00:00 2001 From: mcfly Date: Sat, 17 Jan 2009 03:27:17 +0000 Subject: [PATCH] user ranks config getting closer --- e107_admin/users.php | 151 +++++++++++++++++++++++++------- e107_handlers/level_handler.php | 19 ++-- 2 files changed, 125 insertions(+), 45 deletions(-) diff --git a/e107_admin/users.php b/e107_admin/users.php index d145c9689..a2dae602f 100644 --- a/e107_admin/users.php +++ b/e107_admin/users.php @@ -9,9 +9,9 @@ * Administration Area - Users * * $Source: /cvs_backup/e107_0.8/e107_admin/users.php,v $ -* $Revision: 1.27 $ -* $Date: 2009-01-11 22:11:19 $ -* $Author: e107steved $ +* $Revision: 1.28 $ +* $Date: 2009-01-17 03:27:16 $ +* $Author: mcfly_e107 $ * */ require_once('../class2.php'); @@ -1445,35 +1445,96 @@ function users_adminmenu() function updateRanks() { + global $pref; + $e107 = e107::getInstance(); $config = array(); - $config['calc'] = ''; + $ranks_calc = ''; + $ranks_flist = ''; foreach($_POST['op'] as $f => $o) { - $config['config'][$f]['op'] = $o; - $config['config'][$f]['val'] = varset($_POST['val'][$f], ''); + $config[$f]['op'] = $o; + $config[$f]['val'] = varset($_POST['val'][$f], ''); if($_POST['val'][$f]) { - $config['fields'][] = $f; - $config['calc'] .= ($config['calc'] ? ' + ' : ''); - $config['calc'] .= '({'.$f.'} '." $o {$_POST['val'][$f]}".' )'; + $ranks_calc .= ($ranks_calc ? ' + ' : '').'({'.$f.'} '." $o {$_POST['val'][$f]}".' )'; + $ranks_flist .= ($ranks_flist ? ',' : '').$f; } } - var_dump($config); + + $e107->sql->db_Delete('generic', "gen_type = 'user_rank_config'"); + $tmp = array(); + $tmp['data']['gen_type'] = 'user_rank_config'; + $tmp['data']['gen_chardata'] = serialize($config); + $tmp['_FIELD_TYPES']['gen_type'] = 'string'; + $tmp['_FIELD_TYPES']['gen_chardata'] = 'escape'; + $e107->sql->db_Insert('generic', $tmp); + + $pref['ranks_cals'] = $ranks_calc; + $pref['ranks_flist'] = $ranks_flist; + save_prefs(); + + //Delete existing rank data + $e107->sql->db_Delete('generic', "gen_type = 'user_rank_data'"); + + //Add main site admin info + $tmp = array(); + $tmp['_FIELD_TYPES']['gen_datestamp'] = 'int'; + $tmp['_FIELD_TYPES']['gen_ip'] = 'todb'; + $tmp['_FIELD_TYPES']['gen_user_id'] = 'int'; + $tmp['_FIELD_TYPES']['gen_chardata'] = 'todb'; + $tmp['_FIELD_TYPES']['gen_intdata'] = 'int'; + + $tmp['data']['gen_datestamp'] = 1; + $tmp['data']['gen_type'] = 'user_rank_data'; + $tmp['data']['gen_ip'] = $_POST['calc_name']['main_admin']; + $tmp['data']['gen_user_id'] = varset($_POST['calc_pfx']['main_admin'], 0); + $tmp['data']['gen_chardata'] = $_POST['calc_img']['main_admin']; + $e107->sql->db_Insert('generic', $tmp); + + //Add site admin info + unset($tmp['data']); + $tmp['data']['gen_type'] = 'user_rank_data'; + $tmp['data']['gen_datestamp'] = 2; + $tmp['data']['gen_ip'] = $_POST['calc_name']['admin']; + $tmp['data']['gen_user_id'] = varset($_POST['calc_pfx']['admin'], 0); + $tmp['data']['gen_chardata'] = $_POST['calc_img']['admin']; + $e107->sql->db_Insert('generic', $tmp); + + if(varset($_POST['new_calc_lower'])) + { + unset($tmp['data']); + $tmp['data']['gen_type'] = 'user_rank_data'; + $tmp['data']['gen_datestamp'] = 0; + $tmp['data']['gen_ip'] = varset($_POST['new_calc_name']); + $tmp['data']['gen_user_id'] = varset($_POST['new_calc_pfx'], 0); + $tmp['data']['gen_chardata'] = varset($_POST['new_calc_img']); + $tmp['data']['gen_intdata'] = varset($_POST['new_calc_lower']); + $e107->sql->db_Insert('generic', $tmp); + } + } function show_ranks() { + global $pref; $e107 = e107::getInstance(); include_once(e_HANDLER.'file_class.php'); - $f = new e_file; - $imageList = $f->get_files(e_IMAGE.'ranks', '.*?\.(png|gif|jpg)'); include_once(e_HANDLER.'level_handler.php'); - $ranks = new e017UserRank; + $f = new e_file; + $ranks = new e107UserRank; + + $imageList = $f->get_files(e_IMAGE.'ranks', '.*?\.(png|gif|jpg)'); + $config = array(); + + if($e107->sql->db_Select('generic', 'gen_chardata', "gen_type='user_rank_config'", 'default')) + { + $row = $e107->sql->db_Fetch(MYSQL_ASSOC); + $config = unserialize($row['gen_chardata']); + } $fieldList = array('core' => array(), 'extended' => array()); - $fieldList['core'] = array( 'comments' => 'Number of comments', 'visits' => 'Number of site visits', @@ -1487,6 +1548,8 @@ function show_ranks() $fieldList['extended'][] = substr($field['Field'], 5); } } + + $opArray = array('*', '+', '-'); $text .= "
@@ -1506,12 +1569,16 @@ function show_ranks() {$f} - + "; } @@ -1528,12 +1595,16 @@ function show_ranks() {$f} - - + + "; } @@ -1550,21 +1621,35 @@ function show_ranks() Lang prefix? Rank Image + "; + $info = $ranks->ranks['special'][1]; + $val = $e107->tp->toForm($info['name']); + $pfx = ($info['lan_pfx'] ? "checked='checked'" : ''); + $text .= " Main Site Admin - + + + N/A - - ".RankImageDropdown($imageList, 'main_admin[img]')." + + ".RankImageDropdown($imageList, 'calc_img[main_admin]', $info['image'])." - + "; + + $info = $ranks->ranks['special'][2]; + $val = $e107->tp->toForm($info['name']); + $pfx = ($info['lan_pfx'] ? "checked='checked'" : ''); + $text .= " Site Admin - + + + N/A - - ".RankImageDropdown($imageList, 'admin[img]')." + + ".RankImageDropdown($imageList, 'calc_img[admin]', $info['image'])."   @@ -1577,14 +1662,16 @@ function show_ranks() $text .= " User Rank - + + + + ".RankImageDropdown($imageList, 'calc_img[$k]', $r['image'])." "; } - $text .= " diff --git a/e107_handlers/level_handler.php b/e107_handlers/level_handler.php index 2e3a8cc55..175142713 100644 --- a/e107_handlers/level_handler.php +++ b/e107_handlers/level_handler.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/level_handler.php,v $ -| $Revision: 1.5 $ -| $Date: 2009-01-09 21:18:54 $ +| $Revision: 1.6 $ +| $Date: 2009-01-17 03:27:17 $ | $Author: mcfly_e107 $ +----------------------------------------------------------------------------+ */ @@ -114,7 +114,7 @@ function get_level($user_id, $user_forums, $user_comments, $user_chats, $user_vi return ($data); } -class e017UserRank +class e107UserRank { var $ranks = array(); @@ -133,7 +133,7 @@ class e017UserRank { $e107 = e107::getInstance(); //Check to see if we can get it from cache - if($force = false && ($ranks = $e107->ecache->retrieve_sys('nomd5_user_ranks'))) + if($force == false && ($ranks = $e107->ecache->retrieve_sys('nomd5_user_ranks'))) { $this->ranks = $ranks; } @@ -149,11 +149,11 @@ class e017UserRank $tmp = array(); $tmp['name'] = $row['gen_ip']; $tmp['thresh'] = $row['gen_intdata']; - $tmp['lan_pfx'] = (int)$row['gen_ip']; + $tmp['lan_pfx'] = $row['gen_user_id']; $tmp['image'] = $row['gen_chardata']; if($row['gen_datestamp']) { - $this->ranks['special'][$row['get_datestamp']] = $tmp; + $this->ranks['special'][$row['gen_datestamp']] = $tmp; } else { @@ -161,13 +161,6 @@ class e017UserRank } } } - if($e107->sql->db_Select('generic', '*', "gen_type = 'user_rank_config'")) - { - if($row = $e107->sql->db_Fetch(MYSQL_ASSOC)) - { - $this->ranks['config'] = unserialize($row['gen_chardata']); - } - } $e107->ecache->set_sys('nomd5_user_ranks', $this->ranks); } }