コード例 #1
0
/**
 * Value function to select starting page
 */
function pageNames()
{
    global $roster;
    $input_field = '<select name="config_default_page">' . "\n";
    $select_one = 1;
    // --[ Fetch button list from DB ]--
    $query = "SELECT `mb`.*, `a`.`basename`\r\n\t\tFROM `" . $roster->db->table('menu_button') . "` AS mb\r\n\t\tLEFT JOIN `" . $roster->db->table('addon') . "` AS a\r\n\t\tON `mb`.`addon_id` = `a`.`addon_id`\r\n\t\tWHERE `scope` IN ('util','realm','guild')\r\n\t\tORDER BY `mb`.`title`;";
    $result = $roster->db->query($query);
    if (!$result) {
        die_quietly('Could not fetch menu buttons from table');
    }
    while ($row = $roster->db->fetch($result)) {
        if ($row['addon_id'] != '0' && !isset($roster->locale->act[$row['title']])) {
            // Include addon's locale files if they exist
            foreach ($roster->multilanguages as $lang) {
                $roster->locale->add_locale_file(ROSTER_ADDONS . $row['basename'] . DIR_SEP . 'locale' . DIR_SEP . $lang . '.php', $lang);
            }
        }
        list($title) = explode('|', isset($roster->locale->act[$row['title']]) ? $roster->locale->act[$row['title']] : $row['title']);
        $title = $roster->locale->act[$row['scope']] . ' - ' . $title;
        if ($row['addon_id'] != 0) {
            $row['url'] = $row['scope'] . '-' . $row['basename'] . (empty($row['url']) ? '' : '-' . $row['url']);
        }
        if ($row['url'] == $roster->config['default_page'] && $select_one) {
            $input_field .= '  <option value="' . $row['url'] . '" selected="selected">-[ ' . $title . ' ]-</option>' . "\n";
            $select_one = 0;
        } else {
            $input_field .= '  <option value="' . $row['url'] . '">' . $title . '</option>' . "\n";
        }
    }
    $input_field .= '</select>';
    $roster->db->free_result($result);
    return $input_field;
}
コード例 #2
0
 function _getGuildEvents()
 {
     global $roster, $addon;
     $query = "SELECT ";
     $query .= "asevent.id ";
     $query .= "FROM `" . $roster->db->table('event', 'assessment') . "` AS asevent ";
     $query .= "LEFT JOIN `" . $roster->db->table('groupmembers', 'assessment') . "` AS asmembers ";
     $query .= "ON asmembers.eventId = asevent.id ";
     $query .= "LEFT JOIN `" . $roster->db->table('members') . "` AS members ";
     $query .= "ON asmembers.name = members.name ";
     $query .= "WHERE members.guild_id = " . $roster->data['guild_id'] . " ";
     $query .= "GROUP BY asevent.id ";
     $query .= "ORDER BY asevent.eventName";
     if ($result = $roster->db->query($query)) {
         $ret = array();
         if ($roster->db->num_rows($result) > 0) {
             $array = $roster->db->fetch_all();
             require_once $addon['dir'] . 'inc/assessment.event.class.php';
             foreach ($array as $set) {
                 $event = new AssessmentEvent();
                 $event->get($set['id']);
                 $event->getEventListDetails();
                 $ret[] = $event;
             }
             $roster->db->free_result($result);
         }
         return $ret;
     } else {
         die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
     }
 }
コード例 #3
0
ファイル: hslist.php プロジェクト: Sajaki/wowroster
/**
 * Generate the Honor List
 *
 * @return string
 */
function generateHsList()
{
    global $roster;
    //Highest Lifetime Rank
    $query = "SELECT `name`, `lifetimeRankName` FROM `" . $roster->db->table('players') . "` WHERE `guild_id` = '" . $roster->data['guild_id'] . "' ORDER BY `lifetimeHighestRank`DESC, `lifetimeHK` DESC LIMIT 0 , 1";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result);
    if ($row) {
        $roster->tpl->assign_block_vars('hslist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-memberslist-honorlist'), 'VALUE' => $roster->locale->act['hslist1'], 'NAME' => $row['name'], 'COUNT' => $row['lifetimeRankName'] ? $row['lifetimeRankName'] : '&nbsp;'));
    }
    //Highest LifeTime HKs
    $query = "SELECT `name`, `lifetimeHK` FROM `" . $roster->db->table('players') . "` WHERE `guild_id` = '" . $roster->data['guild_id'] . "' ORDER BY `lifetimeHK` DESC, `lifetimeHighestRank` DESC LIMIT 0 , 1";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result);
    if ($row) {
        $roster->tpl->assign_block_vars('hslist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-memberslist-honorlist'), 'VALUE' => $roster->locale->act['hslist2'], 'NAME' => $row['name'], 'COUNT' => $row['lifetimeHK']));
    }
    //Highest honorpoints
    $query = "SELECT `name`, `honorpoints` FROM `" . $roster->db->table('players') . "` WHERE `guild_id` = '" . $roster->data['guild_id'] . "' ORDER BY `honorpoints` DESC LIMIT 0 , 1";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result);
    if ($row) {
        $roster->tpl->assign_block_vars('hslist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-memberslist-honorlist'), 'VALUE' => $roster->locale->act['hslist3'], 'NAME' => $row['name'], 'COUNT' => $row['honorpoints']));
    }
    //Highest arenapoints
    $query = "SELECT `name`, `arenapoints` FROM `" . $roster->db->table('players') . "` WHERE `guild_id` = '" . $roster->data['guild_id'] . "' ORDER BY `arenapoints` DESC LIMIT 0 , 1";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result);
    if ($row) {
        $roster->tpl->assign_block_vars('hslist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-memberslist-honorlist'), 'VALUE' => $roster->locale->act['hslist4'], 'NAME' => $row['name'], 'COUNT' => $row['arenapoints']));
    }
    $roster->db->free_result($result);
    $roster->tpl->set_handle('hslist', 'hslist.html');
    return $roster->tpl->fetch('hslist');
}
コード例 #4
0
ファイル: install_db.php プロジェクト: Sajaki/addons
function createTables()
{
    global $wowdb, $roster_conf, $db_prefix;
    // Declare tables needed for EventCalendar
    $create_events = "CREATE TABLE `" . $db_prefix . "events` (\n\t\t`eventid` int(6) NOT NULL AUTO_INCREMENT,\n\t\t`date` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t`title` varchar(100) NOT NULL default '',\n\t\t`type` varchar(100) NOT NULL default '',\n\t\t`note` varchar(255) NOT NULL default '',\n\t\t`leader` varchar(100) NOT NULL default '',\t\t\n\t\t`minLevel` int(11) NOT NULL default '0',\n\t\t`maxLevel` int(11) NOT NULL default '0',\n\t\t`maxCount` int(11) NOT NULL default '0',\n\t\tKEY `eventid` (`eventid`)\n\t\t) TYPE=MyISAM;";
    $create_eventmembers = "CREATE TABLE `" . $db_prefix . "event_members` (\n\t\t`name` varchar(100) NOT NULL default '',\n\t\t`guild` varchar(255) NOT NULL default '',\n\t\t`class` varchar(100) NOT NULL default '',\n\t\t`level` int(11) NOT NULL default '0',\n\t\tUNIQUE KEY `name` (`name`)\n\t\t) TYPE=MyISAM;";
    $create_eventsubscribers = "CREATE TABLE `" . $db_prefix . "event_subscribers` (\n\t\t`eventid` int(11) NOT NULL default '0',\n\t\t`name` varchar(100) NOT NULL default '',\n\t\t`place` varchar(10) NOT NULL default '',\n\t\t`status` varchar(100) NOT NULL default '',\n\t\t`note` varchar(255) NOT NULL default '',\n\t\tKEY `eventid` (`eventid`),\n\t\tKEY `name` (`name`)\n\t\t) TYPE=MyISAM;";
    $create_eventlimits = "CREATE TABLE `" . $db_prefix . "event_limits` (\n\t\t`eventid` int(11) NOT NULL default '0',\n\t\t`class` varchar(100) NOT NULL default '',\n\t\t`min` int(11) NOT NULL default '0',\n\t\t`max` int(11) NOT NULL default '0',\n\t\tKEY `eventid` (`eventid`)\n\t\t) TYPE=MyISAM;";
    // Create tables declared above
    $tables = 0;
    if ($wowdb->query($create_events) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_events)) {
        $tables += 1;
    }
    if ($wowdb->query($create_eventmembers) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_eventmembers)) {
        $tables += 1;
    }
    if ($wowdb->query($create_eventsubscribers) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_raidmembers)) {
        $tables += 1;
    }
    if ($wowdb->query($create_eventlimits) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_eventlimits)) {
        $tables += 1;
    }
    if ($tables == 4) {
        echo border('syellow', 'start');
        echo '<table width="300px">';
        echo '<tr><td align="center">All tables successfully added</td></tr>';
        echo '<tr><td align="center"><a href="addon.php?roster_addon_name=EventCalendar">Finish installation</a></td></tr>';
        echo '</table>';
        echo border('syellow', 'end');
    }
}
コード例 #5
0
ファイル: install_db.php プロジェクト: Sajaki/addons
function createTables()
{
    global $wowdb, $roster_conf, $wordings;
    // Declare tables needed for RaidTracker
    $create_nodes = 'CREATE TABLE `' . GATHERER_TABLE . '` (
		`id` int(11) NOT NULL auto_increment,
		`number` int(15) NOT NULL,
		`nodeNumber` int(11) NOT NULL,
		`map` varchar(25) NOT NULL,
		`nodeType` varchar(25) NOT NULL,
		`continent` int(3) NOT NULL,
		PRIMARY KEY  (`id`),
		KEY `number` (`number`)
		) ENGINE=MyISAM;';
    // Create tables declared above
    $tables = 0;
    if ($wowdb->query($create_nodes) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_nodes)) {
        $tables += 1;
    }
    if ($tables == 1) {
        print message_die('All tables successfully added<br /><br /><a href="' . $script_filename . '">Finish installation</a>', 'Installation Successful', 'syellow');
    } else {
        print message_die('Install failed<br /><br />Please copy the contents of the SQL log and make a post in the Gather Sub-forum at WoWRoster.net', 'Install Error');
    }
}
コード例 #6
0
ファイル: plugin.lib.php プロジェクト: Sajaki/addons
 /**
  * Sets up plugin data for use in the plugin framework
  *
  * @param string $pluginname | The name of the plugin
  * @return array $plugin  | The plugin's database record
  *
  * @global array $plugin_conf | The plugin's config data is added to this global array.
  */
 function getplugin($pluginname)
 {
     global $roster, $accounts;
     if (!isset($accounts->plugin_data[$pluginname])) {
         roster_die(sprintf($roster->locale->act['plugin_not_installed'], $pluginname), $roster->locale->act['plugin_error']);
     }
     $plugin = $accounts->plugin_data[$pluginname];
     // Get the plugin's location
     $plugin['dir'] = $addon['inc_dir'] . DIR_SEP . 'plugin' . DIR_SEP . $plugin['basename'];
     // Get the plugin's url
     $plugin['url'] = $addon['inc_dir'] . DIR_SEP . 'plugin' . DIR_SEP . $plugin['basename'] . '/';
     $plugin['url_full'] = ROSTER_URL . $plugin['url'];
     $plugin['url_path'] = ROSTER_PATH . $plugin['url'];
     // Get plugin's url to images directory
     $plugin['image_url'] = ROSTER_URL . $plugin['url'] . 'images/';
     $plugin['image_path'] = ROSTER_PATH . $plugin['url'] . 'images/';
     // Get the plugin's css style
     $plugin['css_file'] = $plugin['dir'] . 'style.css';
     if (file_exists($plugin['css_file'])) {
         $plugin['css_url'] = $plugin['url_path'] . 'style.css';
     } else {
         $plugin['css_url'] = '';
     }
     // Get the plugin's inc dir
     $plugin['inc_dir'] = $plugin['dir'] . 'inc' . DIR_SEP;
     // Get the plugin's conf file
     $plugin['conf_file'] = $plugin['inc_dir'] . DIR_SEP . 'conf.php';
     // Get the plugin's search file
     $plugin['search_file'] = $plugin['inc_dir'] . DIR_SEP . 'search.inc.php';
     // Get the plugin's locale dir
     $plugin['locale_dir'] = $plugin['dir'] . 'locale' . DIR_SEP;
     // Get the plugin's admin dir
     $plugin['admin_dir'] = $plugin['dir'] . 'admin' . DIR_SEP;
     // Get the plugin's trigger file
     $plugin['trigger_file'] = $plugin['inc_dir'] . 'update_hook.php';
     // Get the plugin's ajax functions file
     $plugin['ajax_file'] = $plugin['inc_dir'] . 'ajax.php';
     // Get config values for the default profile and insert them into the array
     $plugin['config'] = '';
     $query = "SELECT `config_name`, `config_value` FROM `" . $roster->db->table('plugin_config', $addon['basename']) . "` WHERE `plugin_id` = '" . $plugin['plugin_id'] . "' ORDER BY `id` ASC;";
     $result = $roster->db->query($query);
     if (!$result) {
         die_quietly($roster->db->error(), $roster->locale->act['plugin_error'], __FILE__, __LINE__, $query);
     }
     if ($roster->db->num_rows($result) > 0) {
         while ($row = $roster->db->fetch($result, SQL_ASSOC)) {
             $plugin['config'][$row['config_name']] = $row['config_value'];
         }
         $roster->db->free_result($result);
     }
     return $plugin;
 }
コード例 #7
0
ファイル: update_hook.php プロジェクト: Sajaki/wowroster_dev
 /**
  * Guild_pre trigger, set out guild id here
  *
  * @param array $guild
  * 		CP.lua guild data
  */
 function guild_post($guild)
 {
     global $roster, $update;
     $addon = getaddon('raidbox');
     //echo '<pre>';
     //print_r($addon);
     //echo '</pre>';
     //build critera data
     $query = "SELECT * FROM `" . $roster->db->table('g_criteria', 'achievements') . "`";
     // WHERE `cid` = '15079'";
     $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', basename(__FILE__), __LINE__, $query);
     $crit = array();
     while ($row = $roster->db->fetch($result)) {
         $crit[$row['crit_id']] = array('crit_id' => $row['crit_id'], 'crit_date' => $row['crit_date'], 'crit_value' => $row['crit_value']);
     }
     //build achievement data
     $query1 = "SELECT * FROM `" . $roster->db->table('g_achievements', 'achievements') . "`";
     // WHERE `cid` = '15079'";
     $result1 = $roster->db->query($query1) or die_quietly($roster->db->error(), 'Database Error', basename(__FILE__), __LINE__, $query);
     $achi = array();
     while ($row = $roster->db->fetch($result1)) {
         $achi[$row['achie_id']] = array('achie_id' => $row['achie_id'], 'achie_date' => $row['achie_date']);
     }
     // this loops each raid
     foreach ($this->raids as $raid => $rinfo) {
         $overide = false;
         if (isset($achi[$rinfo['id']]['achie_date'])) {
             $overide = true;
         }
         $this->messages .= '<br/>' . $rinfo['title'] . '<ul>';
         //echo $rinfo['title'].' <img src="'.$roster->config['img_url'].'interface/icons/'.$rinfo['icon'].'"></a><br>';
         foreach ($rinfo['criteria'] as $id => $boss) {
             if (isset($crit[$boss['id']]['crit_value'])) {
                 $down = $crit[$boss['id']]['crit_value'];
             } else {
                 $down = '0';
             }
             if ($overide or $down >= 1) {
                 $down = 1;
             }
             //echo $boss['description'] . ' x' . $down . '<br>';
             $this->messages .= '<li>' . $boss['description'] . ' - ' . $down . '</li>';
             $querystr = "UPDATE `" . $roster->db->table('addon_config') . "` SET `config_value` = '" . $down . "'  WHERE `config_name` = '" . $raid . '_boss_' . ($id + 1) . "'";
             //$this->messages .= $querystr.'<br>';
             $result = $roster->db->query($querystr);
         }
         $this->messages .= '</ul>';
     }
     return true;
 }
コード例 #8
0
 /**
  * dbFunction Insert or Update
  *
  * @param string $string
  * @return string date
  */
 function _dbWrite()
 {
     global $roster, $addon;
     $query = $this->_buildWriteQuery();
     $ret;
     if (!$roster->db->query($query)) {
         die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
     } else {
         if ($this->idNeeded && $this->id == 0) {
             $query = "SELECT LAST_INSERT_ID();";
             if ($roster->db->query($query)) {
                 $this->id = $roster->db->query_first($query);
             } else {
                 die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
             }
         }
     }
 }
コード例 #9
0
ファイル: index.php プロジェクト: Sajaki/addons
function glyphlookup($locales)
{
    global $roster;
    $query = "SELECT DISTINCT `recipe_name`, `reagents`, `recipe_type`, `recipe_tooltip`, `recipe_texture`, `item_color`\n\t\t\tFROM `" . $roster->db->table('recipes') . "` as r, `" . $roster->db->table('members') . "` as m\n\t\t\tWHERE (`skill_name` = '" . $roster->locale->act['sill'] . "')\n\t\t\tand `m`.`guild_id` = '" . $roster->data['guild_id'] . "'\n\t\t\tand `m`.`member_id` = `r`.`member_id`";
    for ($i = 1; $i < count($locales); $i++) {
        if ($locales[$i] != '') {
            $query .= " OR (`skill_name` = '" . $roster->locale->act['sill'] . "') ";
        }
    }
    $query .= "ORDER BY recipe_type, `reagents`,`recipe_name` ";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', basename(__FILE__), __LINE__, $query);
    $count = 0;
    $temp = array();
    while ($row = $roster->db->fetch($result)) {
        $temp[$count] = $row;
        $count++;
    }
    return $temp;
}
コード例 #10
0
ファイル: index.php プロジェクト: Sajaki/addons
function gemlookup($locales, $color)
{
    global $roster;
    $query = "SELECT DISTINCT `recipe_name`, `reagents`, `recipe_type`, `recipe_tooltip`, `recipe_texture`, `item_color`\n\t\t\tFROM `" . $roster->db->table('recipes') . "`\n\t\t\tWHERE (`recipe_type` = '" . $roster->locale->act['GemType'][$color] . "'\n\t\t\tAND `skill_name` = '" . $roster->locale->act['sill'] . "') ";
    for ($i = 1; $i < count($locales); $i++) {
        if ($locales[$i] != '') {
            $query .= " OR (`recipe_type` = '" . $roster->locale->act['GemType'][$color] . "'\n\t\t\tAND `skill_name` = '" . $roster->locale->act['sill'] . "') ";
        }
    }
    $query .= "ORDER BY `reagents`,`recipe_name` ";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', basename(__FILE__), __LINE__, $query);
    $count = 0;
    $temp = array();
    while ($row = $roster->db->fetch($result)) {
        $temp[$count] = $row;
        $count++;
    }
    return $temp;
}
コード例 #11
0
ファイル: char.php プロジェクト: Sajaki/wowroster_dev
 function set_tpl($data)
 {
     global $roster;
     // Create a character based icon
     if ($data['raceEn'] == '' || $data['sexid'] == '') {
         $data['char_icon'] = 'unknown';
     } else {
         $data['char_icon'] = strtolower($data['raceEn']) . '-' . ($data['sexid'] == '0' ? 'male' : 'female');
     }
     /**
      * Assigning everything this file may need to the template
      * The only tpl vars not here are ones that need to be generated in their respective methods
      */
     $query = 'SELECT guild.* ' . "FROM `" . $roster->db->table('guild') . "` guild " . "WHERE `guild_id` = '" . $roster->data['guild_id'] . "';";
     $result = $roster->db->query($query);
     if (!$result) {
         die_quietly($roster->db->error(), 'Database Error', __FILE__ . '<br />Function: ' . __FUNCTION__, __LINE__, $query);
     }
     $rdata = $roster->db->fetch($result);
     $roster->tpl->assign_vars(array('CHAR_ICON' => $data['char_icon'], 'NAME' => $data['name'], 'SERVER' => $data['server'], 'ID' => $data['member_id'], 'LOCALE' => $data['clientLocale'], 'LEVEL' => $data['level'], 'RACE' => $data['race'], 'CLASS' => $data['class'], 'GUILD_TITLE' => $data['guild_title'], 'GUILD_NAME' => $data['guild_name'], 'FACTION_EN' => strtolower($rdata['factionEn']), 'FACTION' => $rdata['faction']));
 }
コード例 #12
0
ファイル: index.php プロジェクト: Sajaki/wowroster_dev
function selectQuery($table, $fieldtoget, $field, $current, $urltorun)
{
    global $roster;
    /**
     * table, field, current option if matching to existing data (EG: $row['state'])
     * and you want the drop down to be preselected on their current data, the id field from that table (EG: stateid)
     */
    $sql = "SELECT {$fieldtoget} FROM {$table} ORDER BY `quest_data`.{$field} ASC;";
    // execute SQL query and get result
    $sql_result = $roster->db->query($sql) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $sql);
    // put data into drop-down list box
    while ($row = $roster->db->fetch($sql_result)) {
        $id = rawurlencode($row["{$field}"]);
        // must leave double quote
        $optiontocompare = $row["{$field}"];
        // must leave double quote
        $optiontodisplay = $row["{$field}"];
        // must leave double quote
        $roster->tpl->assign_block_vars($field . '_list', array('NAME' => $optiontodisplay, 'VALUE' => makelink("{$urltorun}={$id}", true), 'SELECTED' => stripslashes($current) == $optiontocompare ? true : false));
    }
}
コード例 #13
0
function guide_step2()
{
    global $roster;
    $roster->tpl->assign_var('S_STEP_2', true);
    $name = trim(post_or_db('name'));
    $server = trim(post_or_db('server'));
    $region = strtoupper(substr(trim(post_or_db('region')), 0, 2));
    if (!empty($name) || !empty($server) || !empty($region)) {
        $query = "UPDATE `" . $roster->db->table('upload') . "` SET `default` = '0';";
        if (!$roster->db->query($query)) {
            die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
        }
        $query = "INSERT INTO `" . $roster->db->table('upload') . "`" . " (`name`,`server`,`region`,`type`,`default`)" . " VALUES ('" . $name . "','" . $server . "','" . $region . "','0','1');";
        if (!$roster->db->query($query)) {
            die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
        }
        $roster->tpl->assign_var('MESSAGE', messagebox(sprintf($roster->locale->act['guide_complete'], makelink('rostercp-install'))));
    } else {
        $roster->tpl->assign_var('MESSAGE', messagebox($roster->locale->act['upload_rules_error'], '', 'sred'));
    }
}
コード例 #14
0
ファイル: install_db.php プロジェクト: Sajaki/addons
function createTables()
{
    global $wowdb, $roster_conf, $rt_wordings, $db_prefix;
    // Declare tables needed for RaidTracker
    $create_raids = "CREATE TABLE `" . $db_prefix . "raids` (\n\t\t\t\t\t`raidnum` int(6) NOT NULL AUTO_INCREMENT,\n\t\t\t\t\t`raidid` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t`instanceid` int(12) NOT NULL ,\n\t\t\t\t\t`end` int(12) NOT NULL default '0',\n\t\t\t\t\t`zone` varchar(100) NOT NULL default '',\n\t\t\t\t\t`note` varchar(255) NOT NULL default '',\n\t\t\t\t\t`deleted` int(1) default '0',\n\t\t\t\t\tKEY `raidnum` (`raidnum`),\n\t\t\t\t\tKEY `raidid` (`raidid`),\n\t\t\t\t\tKEY `instanceid` (`instanceid`)\n\t\t\t\t\t) TYPE=MyISAM;";
    $create_raidbosskills = "CREATE TABLE " . $db_prefix . "raidbosskills (\n\t\t\t\t\t\t\t`raidnum` int(12) NOT NULL default '0',\n\t\t\t\t\t\t\t`raidid` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t\t`boss` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t`time` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t\tKEY `raidnum` (`raidnum`)\n\t\t\t\t\t\t\t) TYPE=MyISAM;";
    $create_raiditems = "CREATE TABLE `" . $db_prefix . "raiditems` (\n\t\t\t\t\t\t  `raidnum` int(12) NOT NULL default '0',\n\t\t\t\t\t\t  `raidid` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t  `itemname` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t  `zone` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t  `boss` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t  `number` int(12) NOT NULL default '0',\n\t\t\t\t\t\t  `color` varchar(10) NOT NULL default 'ffffffff',\n\t\t\t\t\t\t  `loottime` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t  `name` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t  `note` varchar(255) NOT NULL default '',\n\t\t\t\t\t\t  KEY `itemname` (`itemname`),\n\t\t\t\t\t\t  KEY `raidnum` (`raidnum`),\n\t\t\t\t\t\t  KEY `name` (`name`)\n\t\t\t\t\t\t) TYPE=MyISAM;";
    $create_raidmembers = "CREATE TABLE `" . $db_prefix . "raidmembers` (\n\t\t\t\t\t\t\t  `name` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t  `race` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t  `class` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t  `level` int(11) NOT NULL default '0',\n\t\t\t\t\t\t\t  UNIQUE KEY `name` (`name`)\n\t\t\t\t\t\t\t) TYPE=MyISAM;";
    $create_raidjoins = "CREATE TABLE `" . $db_prefix . "raidjoins` (\n\t\t\t\t\t\t  `raidnum` int(12) NOT NULL default '0',\n\t\t\t\t\t\t  `raidid` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t  `datejoin` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t  `name` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t  KEY `raidnum` (`raidnum`),\n\t\t\t\t\t\t  KEY `name` (`name`),\n\t\t\t\t\t\t  KEY `datejoin` (`datejoin`)\n\t\t\t\t\t\t) TYPE=MyISAM;";
    $create_raidleaves = "CREATE TABLE `" . $db_prefix . "raidleaves` (\n\t\t\t\t\t\t  `raidnum` int(12) NOT NULL default '0',\n\t\t\t\t\t\t  `raidid` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t  `index` int(11) NOT NULL default '0',\n\t\t\t\t\t\t  `dateleft` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t  `name` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t  KEY `raidnum` (`raidnum`),\n\t\t\t\t\t\t  KEY `name` (`name`),\n\t\t\t\t\t\t  KEY `dateleft` (`dateleft`)\n\t\t\t\t\t\t) TYPE=MyISAM;";
    // Create tables declared above
    $tables = 0;
    if ($wowdb->query($create_raidleaves) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_raidleaves)) {
        $tables += 1;
    }
    if ($wowdb->query($create_raidjoins) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_raidjoins)) {
        $tables += 1;
    }
    if ($wowdb->query($create_raidmembers) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_raidmembers)) {
        $tables += 1;
    }
    if ($wowdb->query($create_raiditems) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_raiditems)) {
        $tables += 1;
    }
    if ($wowdb->query($create_raidbosskills) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_raidbosskills)) {
        $tables += 1;
    }
    if ($wowdb->query($create_raids) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $create_raids)) {
        $tables += 1;
    }
    if ($tables == 6) {
        echo border('syellow', 'start');
        echo '<table width="300px">';
        echo '<tr><td align="center">All tables successfully added</td></tr>';
        echo '<tr><td align="center"><a href="addon.php?roster_addon_name=RaidTracker">Finish installation</a></td></tr>';
        echo '</table>';
        echo border('syellow', 'end');
    }
}
コード例 #15
0
ファイル: config_reset.php プロジェクト: Sajaki/wowroster
/**
 * Parse multi-line SQL statements into a single line
 *
 * @param    string  $sql    SQL file contents
 * @param    char    $delim  End-of-statement SQL delimiter
 * @return   array
 */
function parse_sql($sql, $delim)
{
    if ($sql == '') {
        die_quietly('Could not obtain SQL structure/data');
    }
    $retval = array();
    $statements = explode($delim, $sql);
    unset($sql);
    $linecount = count($statements);
    for ($i = 0; $i < $linecount; $i++) {
        if ($i != $linecount - 1 || strlen($statements[$i]) > 0) {
            $statements[$i] = trim($statements[$i]);
            if (strpos($statements[$i], $roster->db->table('menu')) === false && strpos($statements[$i], $roster->db->table('menu_button')) === false) {
                $statements[$i] = str_replace("\r\n", '', $statements[$i]) . "\n";
                // Remove 2 or more spaces
                $statements[$i] = preg_replace('#\\s{2,}#', ' ', $statements[$i]);
                $retval[] = trim($statements[$i]);
            }
        }
    }
    unset($statements);
    return $retval;
}
コード例 #16
0
ファイル: storestats.php プロジェクト: Sajaki/addons
function insert_stat($itemrawlist)
{
    global $roster_conf, $addon_conf, $wowdb;
    foreach ($itemrawlist as $group => $itemraw) {
        $item = explode("\n", $itemraw);
        foreach ($item as $itemsplit) {
            $itemtmp = explode("\t", $itemsplit);
            $itemrowid = $itemtmp[0];
            $items = explode(" ", $itemtmp[1]);
            $itemcount = count($items);
            $insertitems = '';
            $insertvals = '';
            for ($i = 0; $i < $itemcount; $i++) {
                $insertitems .= ', `' . strtolower($items[$i + 1]) . '`';
                $itemval = $items[$i];
                $insertvals .= ", '" . $itemval . "'";
                $i++;
            }
            $insertsql = "INSERT INTO `roster171_dkpitemstats` (`suffix_id`, `text_id`" . $insertitems . ") VALUES ('" . $itemrowid . "', '" . $group . "'" . $insertvals . ")";
            $result = $wowdb->query($insertsql) or die_quietly($wowdb->error(), 'roster_dkp', __FILE__, __LINE__, $insertsql);
            print $insertsql . "<br>" . $result . "<br><br>";
        }
    }
}
コード例 #17
0
ファイル: functions.php プロジェクト: Sajaki/addons
function getitemcache($itemid, $itemname, $itemdkpval = '', $itemquality = 0, $itemcolor = 0, $itemtexture = 0, $update_outdated = 0)
{
    global $roster_conf, $addon_conf, $wowdb, $wordings;
    $updatecache = FALSE;
    $insertcache = FALSE;
    $date_now = date("Y-m-d H:i");
    $udate_now = date("U");
    // Test if our itemcache table exists
    $query = "SHOW TABLES LIKE '" . ROSTER_ADDON_DKP_WIZARD_CACHE . "'";
    $result = $wowdb->query($query) or die_quietly($wowdb->error(), 'dkp_wizard', __FILE__, __LINE__, $query);
    if ($row = $wowdb->fetch_assoc($result)) {
        $wowdb->free_result($result);
        // Get config values and insert them into the array
        $query = "SELECT * FROM `" . ROSTER_ADDON_DKP_WIZARD_CACHE . "` WHERE `item_id` = '" . $itemid . "' LIMIT 1";
        $result = $wowdb->query($query) or die_quietly($wowdb->error(), 'dkp_wizard', __FILE__, __LINE__, $query);
        if ($row = $wowdb->fetch_assoc($result)) {
            $cache_item = $row;
            $udate_item = strtotime($cache_item['storedate']);
            $oldtooltip = $row['item_tooltip'];
            if (($udate_now - $udate_item > 604800 || $udate_item > $udate_now) && $update_outdated) {
                // The Store Date of the item in the cache is too old (7 days) or in the future!!!
                // Lets re-get the details and update the cache
                $updatecache = TRUE;
            }
            if ($cache_item['item_quality'] != $itemquality && $itemquality) {
                // The Item Quality does not match with the cache, lets update the cache
                $updatecache = TRUE;
            }
            if ($cache_item['item_color'] != $itemcolor && $itemcolor) {
                // The Item Color does not match with the cache, lets update the cache
                $updatecache = TRUE;
            }
            if ($cache_item['item_texture'] != $itemtexture && $itemtexture) {
                // The Item Texture does not match with the cache, lets update the cache
                $updatecache = TRUE;
            }
            if (isset($itemdkpval) && $itemdkpval != '' && $cache_item['dkp_value'] != $itemdkpval) {
                // The Item Texture does not match with the cache, lets update the cache
                $updatecache = TRUE;
            }
        } else {
            // Item does not exist in cache yet, lets flag the item for caching.
            $insertcache = TRUE;
        }
        $wowdb->free_result($result);
        if ($updatecache || $insertcache) {
            $itemid_split = explode(":", $itemid);
            $url = $addon_conf['allakhazam'] . $itemid_split[0] . '&amp;locale=' . $roster_conf['roster_lang'];
            print $url . '<br>';
            $itemtooltiptmp = rosterdkp_gettooltip($url);
            if (is_array($itemtooltiptmp['set'])) {
                $itemset['id'] = $itemtooltiptmp['set']['id'];
                $itemset['name'] = $itemtooltiptmp['set']['name'];
            } else {
                $itemset['id'] = 0;
                $itemset['name'] = '';
            }
            $itemtooltiptmp = $itemtooltiptmp['tooltip'];
            $item['item_id'] = $itemid;
            // Add the ItemStats based on the SuffixID (if there is any)
            $tooltipaddon = '';
            if ($itemid_split[2] > 0) {
                // Get the Statistics for this Suffix
                $query = "SELECT * FROM `" . ROSTER_ADDON_DKP_WIZARD_CACHE_STATS . "` WHERE `suffix_id` = '" . $itemid_split[2] . "' LIMIT 1";
                $result = $wowdb->query($query) or die_quietly($wowdb->error(), 'roster_dkp', __FILE__, __LINE__, $query);
                if ($row = $wowdb->fetch_assoc($result)) {
                    foreach ($row as $wording => $value) {
                        if ($value && $wording != 'suffix_id' && $wording != 'text_id') {
                            if ($wording == 'block' || $wording == 'dodge') {
                                $tooltipaddon .= "\n +" . $value . '% ' . $wordings[$roster_conf['roster_lang']][$wording];
                            } elseif ($wording == 'critical_hit') {
                                $tooltipaddon .= "\n " . $wordings[$roster_conf['roster_lang']][$wording] . ' +' . $value . '%';
                            } elseif ($wording == 'on_get_hit_shadow_bolt') {
                                $tooltipaddon .= "\n " . $wordings[$roster_conf['roster_lang']][$wording] . ' (' . $value . ' ' . $wordings[$roster_conf['roster_lang']]['damage'] . ')';
                            } else {
                                $tooltipaddon .= "\n +" . $value . ' ' . $wordings[$roster_conf['roster_lang']][$wording];
                            }
                        } elseif ($wording == 'text_id') {
                            $tooltipaddon_desc = $wordings[$roster_conf['roster_lang']]['statlocal'][$row['text_id']];
                        }
                    }
                }
            }
            if ($itemtooltiptmp && isset($oldtooltip)) {
                $itemtooltiptmp = $oldtooltip;
            }
            $itemtooltiptmp = explode("\n", $itemtooltiptmp);
            if ($tooltipaddon_desc != '') {
                $itemtooltiptmp[0] = str_replace("...", $tooltipaddon_desc, $itemtooltiptmp[0]);
            }
            $tooltip = implode("\n", $itemtooltiptmp) . $tooltipaddon;
            $item['item_tooltip'] = $tooltip;
            $item['item_tooltip_escape'] = $wowdb->escape($item['item_tooltip']);
            if (!$item['item_tooltip'] || eregi("tem not f", $item['item_tooltip'])) {
                $item['item_tooltip'] = $itemname . $tooltipaddon;
                $item['item_tooltip_escape'] = $wowdb->escape($item['item_tooltip']);
            }
            if ($itemname && $itemname != '') {
                $item['item_name'] = $wowdb->escape($itemname);
            } else {
                $item['item_name'] = $cache_item['item_name'];
            }
            if ($itemquality) {
                $item['item_quality'] = $itemquality;
            } else {
                $item['item_quality'] = $cache_item['item_quality'];
            }
            if ($itemcolor) {
                $item['item_color'] = $wowdb->escape($itemcolor);
            } else {
                $item['item_color'] = $cache_item['item_color'];
            }
            if ($itemtexture) {
                $item['item_texture'] = $wowdb->escape($itemtexture);
            } else {
                $item['item_texture'] = $cache_item['item_texture'];
            }
            if (isset($itemdkpval) && $itemdkpval != '') {
                $item['dkp_value'] = $itemdkpval;
            } elseif ($cache_item['dkp_value']) {
                $item['dkp_value'] = $cache_item['dkp_value'];
            } else {
                $item['dkp_value'] = 0.0;
            }
            if ($itemset['id']) {
                $item['item_setid'] = $itemset['id'];
                $item['item_setname'] = $wowdb->escape($itemset['name']);
            } elseif ($cache_item['item_setid']) {
                $item['item_setid'] = $cache_item['item_setid'];
                $item['item_setname'] = $cache_item['item_setname'];
            } else {
                $item['item_setid'] = 0;
                $item['item_setname'] = '';
            }
        } else {
            $item = $cache_item;
        }
        if ($insertcache) {
            $insertsql = "INSERT INTO `" . ROSTER_ADDON_DKP_WIZARD_CACHE . "` ( `cache_id` , `storedate` , `item_name` , `item_id` , `item_quality` , `item_tooltip` , `item_color` , `item_texture` , `item_setid` , `item_setname` , `dkp_value` ) VALUES ('', '" . $date_now . "', '" . $item['item_name'] . "', '" . $item['item_id'] . "', '" . $item['item_quality'] . "', '" . $item['item_tooltip_escape'] . "', '" . $item['item_color'] . "', '" . $item['item_texture'] . "', '" . $item['item_setid'] . "', '" . $item['item_setname'] . "', '" . $item['dkp_value'] . "')";
            $result = $wowdb->query($insertsql) or die_quietly($wowdb->error(), 'roster_dkp', __FILE__, __LINE__, $insertsql);
            // Re-Get the item from the cache now
            $query = "SELECT * FROM `" . ROSTER_ADDON_DKP_WIZARD_CACHE . "` WHERE `item_id` = '" . $itemid . "' LIMIT 1";
            $result = $wowdb->query($query) or die_quietly($wowdb->error(), 'roster_dkp', __FILE__, __LINE__, $query);
            if ($row = $wowdb->fetch_assoc($result)) {
                $item = $row;
            }
        } elseif ($updatecache) {
            $updatesql = "UPDATE `" . ROSTER_ADDON_DKP_WIZARD_CACHE . "` SET `storedate` = '" . $date_now . "', `item_name` = '" . $item['item_name'] . "', `item_id` = '" . $item['item_id'] . "', `item_quality` = '" . $item['item_quality'] . "', `item_tooltip` = '" . $item['item_tooltip_escape'] . "', `item_color` = '" . $item['item_color'] . "', `item_texture` = '" . $item['item_texture'] . "', `item_setid` = '" . $item['item_setid'] . "', `item_setname` = '" . $item['item_setname'] . "', `dkp_value` = '" . $item['dkp_value'] . "' WHERE `cache_id` = " . $cache_item['cache_id'] . " LIMIT 1";
            $result = $wowdb->query($updatesql) or die_quietly($wowdb->error(), 'roster_dkp', __FILE__, __LINE__, $updatesql);
            // Re-Get the item from the cache now
            $query = "SELECT * FROM `" . ROSTER_ADDON_DKP_WIZARD_CACHE . "` WHERE `item_id` = '" . $itemid . "' LIMIT 1";
            $result = $wowdb->query($query) or die_quietly($wowdb->error(), 'roster_dkp', __FILE__, __LINE__, $query);
            if ($row = $wowdb->fetch_assoc($result)) {
                $item = $row;
            }
        }
        return $item;
    }
}
コード例 #18
0
ファイル: conf.php プロジェクト: Sajaki/addons
define('ALTMONITOR_MAIN_NO_ALTS', 1);
define('ALTMONITOR_ALT_WITH_MAIN', 2);
define('ALTMONITOR_ALT_NO_MAIN', 3);
define('ALTMONITOR_MAIN_MANUAL_WITH_ALTS', 4);
define('ALTMONITOR_MAIN_MANUAL_NO_ALTS', 5);
define('ALTMONITOR_ALT_MANUAL_WITH_MAIN', 6);
define('ALTMONITOR_ALT_MANUAL_NO_MAIN', 7);
/*
$manual = $alt_type & 0x4
$alt    = $alt_type & 0x2
$single = $alt_type & 0x1
*/
// -[ Test if our config table exists ]-
$query = "SHOW TABLES LIKE '" . ROSTER_ALT_CONFIG_TABLE . "'";
$result = $wowdb->query($query) or die_quietly($wowdb->error(), 'AltMonitor', __FILE__, __LINE__, $query);
if ($row = $wowdb->fetch_assoc($result)) {
    $wowdb->free_result($result);
    // -[ Get config values and insert them into the array ]-
    $query = "SELECT `config_name`, `config_value` FROM `" . ROSTER_ALT_CONFIG_TABLE . "` ORDER BY `id` ASC;";
    $result = $wowdb->query($query) or die_quietly($wowdb->error(), 'AltMonitor', __FILE__, __LINE__, $query);
    while ($row = $wowdb->fetch_assoc($result)) {
        $addon_conf['AltMonitor'][$row['config_name']] = stripslashes($row['config_value']);
    }
    $wowdb->free_result($result);
    $dbversion = $addon_conf['AltMonitor']['version'];
} else {
    $dbversion = '0.0.0';
    // we need to install
    $addon_conf['AltMonitor']['update_type'] = 0;
    // for the trigger file
}
コード例 #19
0
ファイル: roster_error.php プロジェクト: Sajaki/wowroster_dev
 /**
  * User defined error handling function
  *
  * @param int $errno
  * @param string $errmsg
  * @param string $filename
  * @param int $linenum
  * @param mixed $vars
  */
 function handler($errno, $errmsg, $filename, $linenum, $vars = '')
 {
     global $roster;
     $errortype = array(E_WARNING => 'Warning', E_NOTICE => 'Notice', E_CORE_ERROR => 'Core Error', E_CORE_WARNING => 'Core Warning', E_COMPILE_ERROR => 'Compile Error', E_COMPILE_WARNING => 'Compile Warning', E_USER_ERROR => 'Roster Error', E_USER_WARNING => 'Roster Warning', E_USER_NOTICE => 'Roster Notice', E_STRICT => 'Runtime Notice', E_DEPRECATED => 'Core Warning, Depreciated', E_RECOVERABLE_ERROR => 'Catchable fatal error', E_USER_DEPRECATED => 'User-generated warning message');
     // NOTE: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR and E_COMPILE_WARNING
     // error levels will be handled as per the error_reporting settings.
     if ($errno == E_USER_ERROR) {
         if ($roster->config['debug_mode']) {
             die_quietly($errmsg, $errortype[$errno], $filename, $linenum);
         } else {
             die_quietly("A error occured while processing this page.<br />Please report the following error to the owner of this website.<br /><br /><b>{$errmsg}</b>", $errortype[$errno]);
         }
     }
     // set of errors for which a trace will be saved
     if ($errno & $this->error_level) {
         $this->report[$filename][] = $errortype[$errno] . " line {$linenum}: " . $errmsg;
     }
 }
コード例 #20
0
ファイル: index.php プロジェクト: Sajaki/wowroster_dev
/**
 * Process Data for entry to the database
 *
 * @return string Settings changed or not changed
 */
function processpData()
{
    global $roster, $addon, $user, $uid;
    $update_sql = array();
    $mid = 0;
    $src = '';
    $settings = array();
    foreach ($_POST as $sName => $settingValue) {
        if ($sName != 'process') {
            list($type, $settingName) = explode(':', $sName);
            if ($type == 'select') {
                if ($settingName == 'is_main') {
                    $mid = $roster->db->escape($settingValue);
                    //$roster->db->escape( $settingValue );
                    setMain($roster->auth->user['id'], $mid);
                }
                if ($settingName == 'avsig_src') {
                    //$user->profile->setAvSig($roster->auth->user['id'], $mid, $src);
                }
            }
            if ($type == 'disp_') {
                $settings[$settingName] = $settingValue;
            }
        }
    }
    // Update DataBase
    if (!empty($settings)) {
        $querystr = "SELECT * FROM `" . $roster->db->table('profile', 'user') . "` WHERE `uid` = '" . $roster->auth->uid . "';";
        $result = $roster->db->query($querystr) or die_quietly($roster->db->error(), 'WowDB Error', __FILE__ . '<br />Function: ' . __FUNCTION__, __LINE__, $querystr);
        if ($roster->db->num_rows() == 1) {
            $sql = "UPDATE `" . $roster->db->table('profile', 'user') . "` SET " . $roster->db->build_query('UPDATE', $settings) . " WHERE `uid` = '" . $roster->auth->uid . "';";
        } else {
            $settings['uid'] = $roster->auth->uid;
            $sql = "INSERT `" . $roster->db->table('profile', 'user') . "` " . $roster->db->build_query('INSERT', $settings) . ";";
        }
        $result = $roster->db->query($sql);
        if (!$result) {
            $roster->set_message('<span style="color:#0099FF;font-size:11px;">Error saving settings</span><br />MySQL Said:<br /><pre>' . $roster->db->error() . '</pre><br />');
        }
        $roster->set_message('<span style="color:#0099FF;font-size:11px;">Settings have been changed</span>');
    } else {
        $roster->set_message('<span style="color:#0099FF;font-size:11px;">No changes have been made</span>');
    }
    return true;
}
コード例 #21
0
ファイル: index.php プロジェクト: Sajaki/wowroster
    tableHeaderRow(array('<a href="' . makelink($url . '&amp;s=date') . '">' . $roster->locale->act['when'] . '</a>', '<a href="' . makelink($url . '&amp;s=name') . '">' . $roster->locale->act['them'] . '</a>', '<a href="' . makelink($url . '&amp;s=gn') . '">' . $roster->locale->act['us'] . '</a>', '<a href="' . makelink($url . '&amp;s=result') . '">' . $roster->locale->act['result'] . '</a>', '<a href="' . makelink($url . '&amp;s=zone') . '">' . $roster->locale->act['zone'] . '</a>', '<a href="' . makelink($url . '&amp;s=subzone') . '">' . $roster->locale->act['subzone'] . '</a>', '<a href="' . makelink($url . '&amp;s=diff') . '">' . $roster->locale->act['leveldiff'] . '</a>'));
    $query = "SELECT `pvp`.*, `members`.`name` AS gn" . " FROM `" . $roster->db->table('pvp2', $addon['basename']) . "` AS pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` AS members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `pvp`.`guild` = '" . $guild . "'";
    if ($sort == 'name') {
        $query .= ' ORDER BY `name`, `leveldiff` DESC, `guild`;';
    } elseif ($sort == 'gn') {
        $query .= ' ORDER BY `gn`, `leveldiff` DESC;';
    } elseif ($sort == 'race') {
        $query .= ' ORDER BY `race`, `name`, `leveldiff` DESC;';
    } elseif ($sort == 'class') {
        $query .= ' ORDER BY `class`, `name`, `leveldiff` DESC;';
    } elseif ($sort == 'diff') {
        $query .= ' ORDER BY `leveldiff` DESC, `name`;';
    } elseif ($sort == 'result') {
        $query .= ' ORDER BY `win` DESC, `name`;';
    } elseif ($sort == 'zone') {
        $query .= ' ORDER BY `zone`, `name`;';
    } elseif ($sort == 'subzone') {
        $query .= ' ORDER BY `subzone`, `name`;';
    } elseif ($sort == 'date') {
        $query .= ' ORDER BY `date` DESC, `name`;';
    } else {
        $query .= ' ORDER BY `date` DESC, `name`;';
    }
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    while ($row = $roster->db->fetch($result)) {
        $roster->tpl->assign_block_vars('rows', array('ROW_CLASS' => $roster->switch_row_class(), 'DATE' => readbleDate($row['date']), 'LINK' => makelink('guild-' . $addon['basename'] . '&amp;type=playerinfo&amp;player=' . urlencode($row['name'])), 'NAME' => $row['name'], 'GLINK' => makelink('char-' . $addon['basename'] . '-pvp&amp;a=c:' . $row['member_id']), 'GNAME' => $row['gn'], 'WIN' => $row['win'] == '1' ? true : false, 'ZONE' => $row['zone'], 'SUBZONE' => $row['subzone'], 'LEVELDIFF' => $row['leveldiff']));
    }
    $roster->db->free_result($result);
}
$roster->tpl->set_handle('body', $addon['basename'] . '/guild.html');
$roster->tpl->display('body');
コード例 #22
0
ファイル: admin_key.php プロジェクト: Sajaki/addons
?>
 </th>
			<th class="membersHeader" <?php 
echo makeOverlib($roster->locale->act['order_use']);
?>
> <?php 
echo $roster->locale->act['order'];
?>
 </th>
			<th class="membersHeaderRight">&nbsp;</th>
		</tr>
	</thead>
	<tbody>
<?php 
$query = "SELECT *\n\tFROM `" . $roster->db->table('Key', 'Key_BC') . "`\n\tWHERE `lang`= '" . $roster->config['locale'] . "'\n\tORDER BY `order` ASC";
$result_key = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', basename(__FILE__), __LINE__, $query);
$max = 0;
while ($row = $roster->db->fetch($result_key)) {
    ?>
		<tr>
			<td class="membersRow1" style="text-align:center;">
<?php 
    if (isset($_POST['check']) && $_POST['check'] == $row['id']) {
        ?>
 					<img src="img/check_on.png" alt="" />
<?php 
        $id = $row['id'];
        $id_display = $row['id_display'];
        $instance_name = $row['instance_name'];
        $key_name = $row['key_name'];
        $Type = $row['Type'];
コード例 #23
0
/**
 * Generate the PvP stats List
 *
 * @return string
 */
function generatePvpList()
{
    global $roster;
    $roster->tpl->assign_var('L_PVPLIST', $roster->locale->get_string('pvplist', 'pvplog'));
    // Guild that suffered most at our hands
    $query = "SELECT `pvp`.`guild`, COUNT(`pvp`.`guild`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` AS pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` AS members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`guild` != '' AND `pvp`.`win` = '1' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`guild` ORDER BY countg DESC";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=guildwins'), 'VALUE' => $roster->locale->get_string('pvplist1', 'pvplog'), 'NAME' => $row['guild'] == '' ? '(unguilded)' : $row['guild'], 'COUNT' => $row['countg']));
    }
    // Guild that killed us the most
    $query = "SELECT `pvp`.`guild`, COUNT(`pvp`.`guild`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` AS pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` AS members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`guild` != '' AND `pvp`.`win` = '0' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`guild` ORDER BY countg DESC";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=guildlosses'), 'VALUE' => $roster->locale->get_string('pvplist2', 'pvplog'), 'NAME' => $row['guild'] == '' ? '(unguilded)' : $row['guild'], 'COUNT' => $row['countg']));
    }
    // Player who we killed the most
    $query = "SELECT `pvp`.`name`, COUNT(`pvp`.`name`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` AS pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` AS members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`guild` != '' AND `pvp`.`win` = '1' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`name` ORDER BY countg DESC";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=enemywins'), 'VALUE' => $roster->locale->get_string('pvplist3', 'pvplog'), 'NAME' => $row['name'], 'COUNT' => $row['countg']));
    }
    // Player who killed us the most
    $query = "SELECT `pvp`.`name`, COUNT(`pvp`.`name`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` AS pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` AS members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`win` = '0' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`name` ORDER BY countg DESC";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=enemylosses'), 'VALUE' => $roster->locale->get_string('pvplist4', 'pvplog'), 'NAME' => $row['name'], 'COUNT' => $row['countg']));
    }
    // Member with the most kills
    $query = "SELECT `pvp`.`member_id`, `members`.`name` AS gn, COUNT(`pvp`.`member_id`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`win` = '1' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`member_id` ORDER BY countg DESC;";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=purgewins'), 'VALUE' => $roster->locale->get_string('pvplist5', 'pvplog'), 'NAME' => $row['gn'], 'COUNT' => $row['countg']));
    }
    // Member who has died the most
    $query = "SELECT `pvp`.`member_id`, `members`.`name` AS gn, COUNT(`pvp`.`member_id`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`win` = '0' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`member_id` ORDER BY countg DESC;";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=purgelosses'), 'VALUE' => $roster->locale->get_string('pvplist6', 'pvplog'), 'NAME' => $row['gn'], 'COUNT' => $row['countg']));
    }
    // Member with best kill average
    $query = "SELECT `pvp`.`member_id`, `members`.`name` AS gn, AVG(`pvp`.`leveldiff`) AS ave, COUNT(`pvp`.`member_id`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` AS pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` AS members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`win` = '1' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`member_id` ORDER BY ave DESC";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $ave = round($row['ave'], 2);
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=purgeavewins'), 'VALUE' => $roster->locale->get_string('pvplist7', 'pvplog'), 'NAME' => $row['gn'], 'COUNT' => ($ave > 0 ? '+' : '') . $ave));
    }
    // Member with best loss average
    $query = "SELECT `pvp`.`member_id`, `members`.`name` AS gn, AVG(`pvp`.`leveldiff`) AS ave, COUNT(`pvp`.`member_id`) AS countg" . " FROM `" . $roster->db->table('pvp2', 'pvplog') . "` AS pvp" . " LEFT JOIN `" . $roster->db->table('members') . "` AS members ON `members`.`member_id` = `pvp`.`member_id`" . " WHERE `members`.`guild_id` = '" . $roster->data['guild_id'] . "' AND `pvp`.`win` = '0' AND `pvp`.`enemy` = '1'" . " GROUP BY `pvp`.`member_id` ORDER BY ave DESC";
    $result = $roster->db->query($query) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    $row = $roster->db->fetch($result, SQL_ASSOC);
    if ($row) {
        $ave = round($row['ave'], 2);
        $roster->tpl->assign_block_vars('pvplist', array('ROW_CLASS' => $roster->switch_row_class(), 'LINK' => makelink('guild-pvplog&amp;type=purgeavelosses'), 'VALUE' => $roster->locale->get_string('pvplist8', 'pvplog'), 'NAME' => $row['gn'], 'COUNT' => ($ave > 0 ? '+' : '') . $ave));
    }
    $roster->db->free_result($result);
    $roster->tpl->set_handle('pvplist', 'pvplog/pvplist.html');
    return $roster->tpl->fetch('pvplist');
}
コード例 #24
0
ファイル: index.php プロジェクト: Sajaki/addons
        $toggleboxes++;
        $query = "SELECT * FROM " . ANNOUNCE_TABLE . " WHERE active = '1' order by date DESC LIMIT " . $howmany . "";
        $results = $wowdb->query($query) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $query);
        while ($row = $wowdb->fetch_array($results)) {
            $message = $row['post'];
            $title = $row['title'];
            $style = 'sgray';
            $open = false;
            $width = '550px';
            $height = '100px';
            echo '<div id="toggleCol' . $toggleboxes . '" style="display:' . ($open ? 'none' : 'inline') . ';">' . border($style, 'start', "<div style=\"cursor:pointer;width:" . $width . ";\" onclick=\"swapShow('toggleCol" . $toggleboxes . "','toggle" . $toggleboxes . "')\"><img src=\"" . $roster_conf['img_url'] . "plus.gif\" style=\"float:right;\" /> Announcement: " . $title . "</div>") . border($style, 'end') . '</div>' . '<div id="toggle' . $toggleboxes . '" style="display:' . ($open ? 'inline' : 'none') . ';">' . scrollbox($message, "<div style=\"cursor:pointer;width:" . $width . ";\" onclick=\"swapShow('toggleCol" . $toggleboxes . "','toggle" . $toggleboxes . "')\"><img src=\"" . $roster_conf['img_url'] . "minus.gif\" style=\"float:right;\" /> Announcement: " . $title . "</div>", $style, $width, $height) . '</div><br>';
        }
        break;
    default:
        $query = "SELECT * FROM " . ANNOUNCE_TABLE . " WHERE active='1' order by date DESC";
        $results = $wowdb->query($query) or die_quietly($wowdb->error(), 'Database Error', basename(__FILE__), __LINE__, $query);
        while ($row = $wowdb->fetch_array($results)) {
            // Convert the date to readable time
            $date = get_local_date($row['date'], $roster_conf['localtimeoffset']);
            // In the archive, display all boxes open.
            echo border('syellow', 'start');
            ?>

<table width="700" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class='simpleborderheader syellowborderheader'><div class="membersGroup">
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td> <?php 
            echo $row['title'];
            ?>
コード例 #25
0
ファイル: addon_install.php プロジェクト: Sajaki/wowroster
function processAccess()
{
    global $roster;
    $access = implode(":", $_POST['config_access']);
    $id = (int) $_POST['id'];
    $query = "UPDATE `" . $roster->db->table('addon') . "` SET `access` = '{$access}' WHERE `addon_id` = '{$id}';";
    if (!$roster->db->query($query)) {
        die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $query);
    }
}
コード例 #26
0
ファイル: settings.php プロジェクト: Sajaki/addons
/**
 * Process Data for entry to the database
 *
 * @return string Settings changed or not changed
 */
function processData()
{
    global $roster;
    $update_sql = array();
    // Update only the changed fields
    foreach ($_POST as $settingName => $settingValue) {
        if (substr($settingName, 0, 5) == 'disp_') {
            $settingName = str_replace('disp_', '', $settingName);
            list($member_id, $settingName) = explode(':', $settingName);
            $get_val = "SELECT `{$settingName}`" . " FROM `" . $roster->db->table('display', 'info') . "`" . " WHERE `member_id` = '{$member_id}';";
            $result = $roster->db->query($get_val) or die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $get_val);
            $config = $roster->db->fetch($result);
            if ($config[$settingName] != $settingValue && $settingName != 'process') {
                $update_sql[] = "UPDATE `" . $roster->db->table('display', 'info') . "`" . " SET `{$settingName}` = '" . $roster->db->escape($settingValue) . "'" . " WHERE `member_id` = '{$member_id}';";
            }
        }
    }
    // Update DataBase
    if (!empty($update_sql)) {
        foreach ($update_sql as $sql) {
            $result = $roster->db->query($sql);
            if (!$result) {
                return '<span style="color:#0099FF;font-size:11px;">Error saving settings</span><br />MySQL Said:<br /><pre>' . $roster->db->error() . '</pre><br />';
            }
        }
        return '<span style="color:#0099FF;font-size:11px;">Settings have been changed</span>';
    } else {
        return '<span style="color:#0099FF;font-size:11px;">No changes have been made</span>';
    }
}
コード例 #27
0
ファイル: header.php プロジェクト: Sajaki/wowroster_dev
    $roster->db->free_result($result);
    $roster->tpl->assign_vars(array('S_DATA_SELECT' => $guilds > 1 ? true : false, 'TOTAL_GUILDS' => $guilds));
    if (count($menu_select) > 0) {
        foreach ($menu_select as $realm => $guild) {
            $roster->tpl->assign_block_vars('menu_select_group', array('U_VALUE' => $realm));
            foreach ($guild as $id => $name) {
                $roster->tpl->assign_block_vars('menu_select_group.menu_select_row', array('TEXT' => $name, 'U_VALUE' => makelink('&amp;a=g:' . $id, true), 'S_SELECTED' => $id == $roster->data['guild_id'] ? true : false));
            }
        }
    }
} elseif ($roster->scope == 'char') {
    // Get the scope select data
    $query = "SELECT `name`, `member_id`" . " FROM `" . $roster->db->table('players') . "`" . " WHERE `guild_id` = '" . $roster->data['guild_id'] . "'" . " ORDER BY `name` ASC;";
    $result = $roster->db->query($query);
    if (!$result) {
        die_quietly($roster->db->error(), 'Database error', __FILE__, __LINE__, $query);
    }
    while ($data = $roster->db->fetch($result, SQL_NUM)) {
        $menu_select[$data[1]] = $data[0];
    }
    $roster->tpl->assign_var('S_DATA_SELECT', $roster->db->num_rows() > 1 ? true : false);
    $roster->db->free_result($result);
    if (count($menu_select) > 0) {
        $roster->tpl->assign_block_vars('menu_select_group', array('U_VALUE' => $roster->data['guild_name']));
        foreach ($menu_select as $id => $name) {
            $roster->tpl->assign_block_vars('menu_select_group.menu_select_row', array('TEXT' => $name, 'U_VALUE' => makelink('&amp;a=c:' . $id, true), 'S_SELECTED' => $id == $roster->data['member_id'] ? true : false));
        }
    }
}
// Gather messages and create the messages block
$roster->tpl->assign_var('S_MESSAGES', (bool) $roster->get_messages('', false));
コード例 #28
0
ファイル: memberslist.php プロジェクト: Sajaki/addons
 /**
  * Returns the actual list. (but not the border)
  */
 function makeMembersList($border = false)
 {
     global $roster;
     $roster->tpl->assign_vars(array('S_ML_BORDER' => $border));
     $cols = count($this->fields);
     $result = $roster->db->query($this->query);
     if (!$result) {
         die_quietly($roster->db->error(), 'Database Error', __FILE__, __LINE__, $this->query);
     }
     // --[ Cache arrays for main/alt ordering ]--
     $lines = $line = array();
     $lookup = array();
     // --[ Actual list ]--
     while ($row = $roster->db->fetch($result)) {
         $line = array();
         $current_col = 1;
         // Echoing cells w/ data
         foreach ($this->fields as $field => $DATA) {
             if (isset($DATA['value'])) {
                 $cell_value = call_user_func($DATA['value'], $row, $field, isset($DATA['passthrough']) ? $DATA['passthrough'] : array());
             } elseif (isset($DATA['jsort'])) {
                 $cell_value = '<div style="display:none;">' . $row[$DATA['jsort']] . '</div>' . $row[$field];
                 if (empty($row[$field])) {
                     $cell_value .= '&nbsp;';
                 }
             } else {
                 if ($row[$field] == '') {
                     $row[$field] = '&nbsp;';
                 }
                 $cell_value = '<div>' . $row[$field] . '</div>';
             }
             /**
              * IMPORTANT do not add any spaces between the td and the
              * $cell_value or the javascript will break
              * This construct means we can't hide the first column. But
              * that's no problem cause it's probably the name anyway which
              * is locked on force visible.
              */
             $line[] = array('cell_value' => $cell_value, 'display' => $DATA['display'] == 1 ? true : false, 'padding' => $current_col == 1 ? $this->addon['config']['group_alts'] <= 0 || $row['main_id'] == $row['member_id'] ? false : true : false);
             $current_col++;
         }
         // Cache lines for main/alt stuff
         if ($this->addon['config']['group_alts'] <= 0) {
             $lookup[] = count($lines);
             $lines[]['main'] = $line;
         } elseif ($row['main_id'] == $row['member_id']) {
             $lookup[] = $row['member_id'];
             $lines[$row['member_id']]['main'] = $line;
         } else {
             $lines[$row['main_id']]['alts'][] = $line;
         }
     }
     // Main/Alt block
     $new_lookup = array_diff(array_keys($lines), $lookup);
     foreach ($new_lookup as $member_id) {
         $lookup[] = $member_id;
     }
     $lookup_count = count($lookup);
     for ($i = 0; $i < $lookup_count; $i++) {
         $member_id = $lookup[$i];
         $block = $lines[$member_id];
         // Group alts off
         if ($this->addon['config']['group_alts'] <= 0) {
             $roster->tpl->assign_block_vars('members_row', array('SIMPLE' => true, 'ROW_CLASS' => $roster->switch_row_class(), 'MA' => false, 'DISPLAY' => true));
             foreach ($block['main'] as $line) {
                 $roster->tpl->assign_block_vars('members_row.cell', array('VALUE' => $line['cell_value'], 'DISPLAY' => $line['display'], 'PADDING' => $line['padding']));
             }
             continue;
         }
         // Main, or no alt data
         if (!isset($block['alts']) || 0 == count($block['alts'])) {
             $roster->tpl->assign_block_vars('members_row', array('SIMPLE' => true, 'ROW_CLASS' => $roster->switch_row_class(), 'MA' => false, 'DISPLAY' => false));
             foreach ($block['main'] as $line) {
                 $roster->tpl->assign_block_vars('members_row.cell', array('VALUE' => $line['cell_value'], 'DISPLAY' => $line['display'], 'PADDING' => $line['padding']));
             }
             continue;
         }
         // Mainless alt.
         if (!isset($block['main'])) {
             foreach ($block['alts'] as $rows) {
                 $roster->tpl->assign_block_vars('members_row', array('SIMPLE' => true, 'ROW_CLASS' => $roster->switch_row_class(), 'MA' => true, 'DISPLAY' => false));
                 foreach ($rows as $line) {
                     $roster->tpl->assign_block_vars('members_row.cell', array('VALUE' => $line['cell_value'], 'DISPLAY' => $line['display'], 'PADDING' => $line['padding']));
                 }
             }
             continue;
         }
         // Main with alts
         $roster->tpl->assign_block_vars('members_row', array('SIMPLE' => false, 'ROW_CLASS' => $roster->switch_row_class(), 'MEMBER_ID' => $member_id, 'DISPLAY' => false, 'OPEN' => $this->addon['config']['group_alts'] == 2 ? true : false));
         foreach ($block['main'] as $line) {
             $roster->tpl->assign_block_vars('members_row.cell', array('VALUE' => $line['cell_value'], 'DISPLAY' => $line['display'], 'PADDING' => $line['padding']));
         }
         foreach ($block['alts'] as $rows) {
             $roster->tpl->assign_block_vars('members_row.alt', array('ROW_CLASS' => $roster->switch_alt_row_class(), 'DISPLAY' => $this->addon['config']['group_alts'] == 1 ? true : false));
             foreach ($rows as $line) {
                 $roster->tpl->assign_block_vars('members_row.alt.cell', array('VALUE' => $line['cell_value'], 'DISPLAY' => $line['display'], 'PADDING' => $line['padding']));
             }
         }
     }
     return $roster->tpl->fetch('memberslist');
 }
コード例 #29
0
ファイル: install.php プロジェクト: Sajaki/addons
    if (version_compare($dbversion, $version, "<")) {
        $install_queries = explode(';', $sql);
        foreach ($install_queries as $query) {
            if (!empty($query)) {
                if ($roster_conf['sqldebug']) {
                    echo "<!--{$query}-->\n";
                }
                $result = $wowdb->query($query) or die_quietly('Failed to install AltMonitor. MySQL said: <br />' . $wowdb->error(), 'AltMonitor Installer', __FILE__, __LINE__, $query);
                $wowdb->free_result($result);
            }
        }
        $wowdb->reset_values();
        $wowdb->add_value('config_value', $version);
        $query = "UPDATE `" . ROSTER_ADDON_SKELETON_CONFIG . "` SET " . $wowdb->assignstr . " WHERE `config_name` = 'version'";
        if ($roster_conf['sqldebug']) {
            echo "<!--{$query}-->\n";
        }
        $result = $wowdb->query($query) or die_quietly('Failed to install AltMonitor. MySQL said: <br />' . $wowdb->error(), 'AltMonitor Installer', __FILE__, __LINE__, $query);
        $wowdb->free_result($result);
    }
}
// Write the file version to the database, just in case the most recent update/fix didn't include a DB update.
$wowdb->reset_values();
$wowdb->add_value('config_value', $fileversion);
$query = "UPDATE `" . ROSTER_ADDON_SKELETON_CONFIG . "` SET " . $wowdb->assignstr . " WHERE `config_name` = 'version'";
if ($roster_conf['sqldebug']) {
    echo "<!--{$query}-->\n";
}
$result = $wowdb->query($query) or die_quietly('Failed to install AltMonitor. MySQL said: <br />' . $wowdb->error(), 'AltMonitor Installer', __FILE__, __LINE__, $query);
$wowdb->free_result($result);
echo border('sgreen', 'start', $wordings[$roster_conf['roster_lang']]['Skeleton_install_page']) . $wordings[$roster_conf['roster_lang']]['Skeleton_installed'] . '<br />' . "<a href='?roster_addon_name=AltMonitor&action=config'>" . $wordings[$roster_conf['roster_lang']]['Skeleton_config'] . "</a>" . border('sgreen', 'end');
コード例 #30
0
ファイル: update.lib.php プロジェクト: Sajaki/wowroster
 /**
  * Updates or creates an entry in the guild table in the database
  * Then returns the guild ID
  *
  * @param string $realmName
  * @param string $guildName
  * @param array $currentTime
  * @param array $guild
  * @return string
  */
 function update_guild($realmName, $guildName, $currentTime, $guild, $region)
 {
     global $roster;
     $guildInfo = $this->get_guild_info($realmName, $guildName, $region);
     $this->locale = $guild['Locale'];
     $this->reset_values();
     $this->add_value('guild_name', $guildName);
     $this->add_value('server', $realmName);
     $this->add_value('region', $region);
     $this->add_ifvalue($guild, 'Faction', 'faction');
     $this->add_ifvalue($guild, 'FactionEn', 'factionEn');
     $this->add_ifvalue($guild, 'Motd', 'guild_motd');
     $this->add_ifvalue($guild, 'NumMembers', 'guild_num_members');
     $this->add_ifvalue($guild, 'NumAccounts', 'guild_num_accounts');
     $this->add_ifvalue($guild, 'GuildXP', 'guild_xp');
     $this->add_ifvalue($guild, 'GuildXPCap', 'guild_xpcap');
     $this->add_ifvalue($guild, 'GuildLevel', 'guild_level');
     $this->add_timestamp('update_time', $currentTime);
     $this->add_ifvalue($guild, 'DBversion');
     $this->add_ifvalue($guild, 'GPversion');
     $this->add_value('guild_info_text', str_replace('\\n', "<br />", $guild['Info']));
     if (is_array($guildInfo)) {
         $querystra = "UPDATE `" . $roster->db->table('guild') . "` SET " . $this->assignstr . " WHERE `guild_id` = '" . $guildInfo['guild_id'] . "';";
         $output = $guildInfo['guild_id'];
     } else {
         $querystra = "INSERT INTO `" . $roster->db->table('guild') . "` SET " . $this->assignstr;
     }
     $roster->db->query($querystra) or die_quietly($roster->db->error(), 'WowDB Error', __FILE__ . '<br />Function: ' . __FUNCTION__, __LINE__, $querystra);
     if (is_array($guildInfo)) {
         $querystr = "UPDATE `" . $roster->db->table('members') . "` SET `active` = '0' WHERE `guild_id` = '" . $guildInfo['guild_id'] . "';";
         $roster->db->query($querystr) or die_quietly($roster->db->error(), 'WowDB Error', __FILE__ . '<br />Function: ' . __FUNCTION__, __LINE__, $querystr);
     }
     if (!is_array($guildInfo)) {
         $guildInfo = $this->get_guild_info($realmName, $guildName);
         $output = $guildInfo['guild_id'];
     }
     return $output;
 }