Example #1
0
 /**
  * registers a bbDKP character
  *
  * @param \bbdkp\controller\guilds\Guilds $Guild
  * @return number
  */
 public function register_bbdkp(\bbdkp\controller\guilds\Guilds $Guild)
 {
     global $user, $phpbb_root_path, $phpEx;
     // Include the member class
     if (!class_exists('\\bbdkp\\controller\\members\\Members')) {
         require "{$phpbb_root_path}includes/bbdkp/controller/members/Members.{$phpEx}";
     }
     $newmember = new \bbdkp\controller\members\Members();
     // check if user exceeded allowed character count, to prevent alt spamming
     if ($newmember->has_reached_maxbbdkpaccounts()) {
         return false;
     }
     $newmember->game_id = $this->game;
     // get member name
     $newmember->member_achiev = $this->achievementPoints;
     $newmember->member_region = $Guild->region;
     $newmember->member_realm = $this->realm;
     $newmember->member_name = $this->name;
     $newmember->member_title = ' ';
     $newmember->member_guild_id = $Guild->guildid;
     $newmember->member_rank_id = $this->guildrank;
     $newmember->member_level = $this->level;
     $newmember->member_race_id = $this->raceid;
     $newmember->member_class_id = $this->classid;
     $newmember->member_role = '';
     $newmember->member_gender_id = $this->genderid;
     $newmember->member_comment = $user->lang['MEMBER_COMMENT'];
     $boardtime = getdate(time() + $user->timezone + $user->dst - date('Z'));
     $jointime = $boardtime[0];
     $newmember->member_joindate = $jointime;
     $newmember->member_outdate = mktime(0, 0, 0, 12, 31, 2030);
     $newmember->member_achiev = $this->achievementPoints;
     $newmember->member_armory_url = $this->url;
     $newmember->phpbb_user_id = $user->data['user_id'];
     $newmember->member_status = 1;
     $newmember->Armory_getmember();
     $member_id = $newmember->Makemember();
     unset($newmember);
     return $member_id;
 }
Example #2
0
    /**
     * shows add/edit character form
     *
     * @param int $member_id
     * @param array $guildlist
     */
    private function fill_addmember($member_id, $guildlist)
    {
        global $db, $auth, $user, $template, $config, $phpbb_root_path;
        $members = new \bbdkp\controller\members\Members();
        // Attach the language file
        $user->add_lang('mods/dkp_common');
        $user->add_lang(array('mods/dkp_admin'));
        $show = true;
        if ($member_id == 0) {
            // check if user can add character
            if (!$auth->acl_get('u_dkp_charadd')) {
                trigger_error($user->lang['NOUCPADDCHARS']);
            }
            if (!$auth->acl_get('u_dkpucp')) {
                trigger_error($user->lang['NOUCPADDCHARS']);
            }
            if ($members->has_reached_maxbbdkpaccounts()) {
                $show = false;
                $template->assign_vars(array('MAX_CHARS_EXCEEDED' => sprintf($user->lang['MAX_CHARS_EXCEEDED'], $config['bbdkp_maxchars'])));
            }
            // set add mode
            $S_ADD = true;
        } else {
            $S_ADD = false;
            $members->member_id = $member_id;
            $members->Getmember();
        }
        foreach ($guildlist as $g) {
            //assign guild_id property
            if ($members->member_guild_id == 0) {
                //if there is a default guild
                if ($g['guilddefault'] == 1) {
                    $members->member_guild_id = $g['id'];
                }
                //if member count > 0
                if ($members->member_guild_id == 0 && $g['membercount'] > 1) {
                    $members->member_guild_id = $g['id'];
                }
                //if guild id field > 0
                if ($members->member_guild_id == 0 && $g['id'] > 0) {
                    $members->member_guild_id = $g['id'];
                }
            }
            //populate guild popup
            if ($g['id'] > 0) {
                $template->assign_block_vars('guild_row', array('VALUE' => $g['id'], 'SELECTED' => $g['id'] == $members->member_guild_id ? ' selected="selected"' : '', 'OPTION' => !empty($g['name']) ? $g['name'] : '(None)'));
            }
            $guilds = new \bbdkp\controller\guilds\Guilds($members->member_guild_id);
            $gamename = $this->games[$guilds->game_id];
        }
        // Rank drop-down -> for initial load
        // reloading is done from ajax to prevent redraw
        $Ranks = new \bbdkp\controller\guilds\Ranks($members->member_guild_id);
        $result = $Ranks->listranks();
        while ($row = $db->sql_fetchrow($result)) {
            $template->assign_block_vars('rank_row', array('VALUE' => $row['rank_id'], 'SELECTED' => $members->member_rank_id == $row['rank_id'] ? ' selected="selected"' : '', 'OPTION' => !empty($row['rank_name']) ? $row['rank_name'] : '(None)'));
        }
        //race dropdown
        $sql_array = array('SELECT' => '  r.race_id, l.name as race_name ', 'FROM' => array(RACE_TABLE => 'r', BB_LANGUAGE => 'l'), 'WHERE' => " r.race_id = l.attribute_id\n\t\t\t\t\t\tAND r.game_id = '" . $guilds->game_id . "'\n\t\t\t\t\t\tAND l.attribute='race'\n\t\t\t\t\t\tAND l.game_id = r.game_id\n\t\t\t\t\t\tAND l.language= '" . $config['bbdkp_lang'] . "'", 'ORDER_BY' => 'l.name asc');
        $sql = $db->sql_build_query('SELECT', $sql_array);
        $result = $db->sql_query($sql);
        if ($member_id > 0) {
            while ($row = $db->sql_fetchrow($result)) {
                $template->assign_block_vars('race_row', array('VALUE' => $row['race_id'], 'SELECTED' => $members->member_race_id == $row['race_id'] ? ' selected="selected"' : '', 'OPTION' => !empty($row['race_name']) ? $row['race_name'] : '(None)'));
            }
        } else {
            while ($row = $db->sql_fetchrow($result)) {
                $template->assign_block_vars('race_row', array('VALUE' => $row['race_id'], 'SELECTED' => '', 'OPTION' => !empty($row['race_name']) ? $row['race_name'] : '(None)'));
            }
        }
        // Class dropdown
        // reloading is done from ajax to prevent redraw
        $sql_array = array('SELECT' => ' c.class_id, l.name as class_name, c.class_hide,
							  c.class_min_level, class_max_level, c.class_armor_type , c.imagename ', 'FROM' => array(CLASS_TABLE => 'c', BB_LANGUAGE => 'l'), 'WHERE' => " l.game_id = c.game_id  AND c.game_id = '" . $guilds->game_id . "'\n\t\t\tAND l.attribute_id = c.class_id  AND l.language= '" . $config['bbdkp_lang'] . "' AND l.attribute = 'class' ", 'ORDER_BY' => 'l.name asc');
        $sql = $db->sql_build_query('SELECT', $sql_array);
        $result = $db->sql_query($sql);
        while ($row = $db->sql_fetchrow($result)) {
            if ($row['class_min_level'] <= 1) {
                $option = !empty($row['class_name']) ? $row['class_name'] . "\n\t\t\t\t Level (" . $row['class_min_level'] . " - " . $row['class_max_level'] . ")" : '(None)';
            } else {
                $option = !empty($row['class_name']) ? $row['class_name'] . "\n\t\t\t\t Level " . $row['class_min_level'] . "+" : '(None)';
            }
            if ($member_id > 0) {
                $template->assign_block_vars('class_row', array('VALUE' => $row['class_id'], 'SELECTED' => $members->member_class_id == $row['class_id'] ? ' selected="selected"' : '', 'OPTION' => $option));
            } else {
                $template->assign_block_vars('class_row', array('VALUE' => $row['class_id'], 'SELECTED' => '', 'OPTION' => $option));
            }
        }
        $db->sql_freeresult($result);
        //Role dropdown
        $Roles = new \bbdkp\controller\games\Roles();
        $Roles->game_id = $guilds->game_id;
        $Roles->guild_id = $members->member_guild_id;
        $listroles = $Roles->listroles();
        foreach ($listroles as $roleid => $Role) {
            $template->assign_block_vars('role_row', array('VALUE' => $Role['role_id'], 'SELECTED' => $members->member_role == $Role['role_id'] ? ' selected="selected"' : '', 'OPTION' => $Role['rolename']));
        }
        // build presets for joindate pulldowns
        $now = getdate();
        $s_memberjoin_day_options = '<option value="0"	>--</option>';
        for ($i = 1; $i < 32; $i++) {
            $day = isset($members->member_joindate_d) ? $members->member_joindate_d : $now['mday'];
            $selected = $i == $day ? ' selected="selected"' : '';
            $s_memberjoin_day_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>";
        }
        $s_memberjoin_month_options = '<option value="0">--</option>';
        for ($i = 1; $i < 13; $i++) {
            $month = isset($members->member_joindate_mo) ? $members->member_joindate_mo : $now['mon'];
            $selected = $i == $month ? ' selected="selected"' : '';
            $s_memberjoin_month_options .= " <option value=\"{$i}\"{$selected}>{$i}</option>";
        }
        $s_memberjoin_year_options = '<option value="0">--</option>';
        for ($i = $now['year'] - 10; $i <= $now['year']; $i++) {
            $yr = isset($members->member_joindate_y) ? $members->member_joindate_y : $now['year'];
            $selected = $i == $yr ? ' selected="selected"' : '';
            $s_memberjoin_year_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>";
        }
        // build presets for outdate pulldowns
        $s_memberout_day_options = '<option value="0"' . ($members->member_id > 0 ? $members->member_outdate != 0 ? '' : ' selected="selected"' : ' selected="selected"') . '>--</option>';
        for ($i = 1; $i < 32; $i++) {
            if ($members->member_id > 0 && $members->member_outdate != 0) {
                $day = $members->member_outdate_d;
                $selected = $i == $day ? ' selected="selected"' : '';
            } else {
                $selected = '';
            }
            $s_memberout_day_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>";
        }
        $s_memberout_month_options = '<option value="0"' . ($members->member_id > 0 ? $members->member_outdate != 0 ? '' : ' selected="selected"' : ' selected="selected"') . '>--</option>';
        for ($i = 1; $i < 13; $i++) {
            if ($members->member_id > 0 && $members->member_outdate != 0) {
                $month = $members->member_outdate_mo;
                $selected = $i == $month ? ' selected="selected"' : '';
            } else {
                $selected = '';
            }
            $s_memberout_month_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>";
        }
        $s_memberout_year_options = '<option value="0"' . ($members->member_id > 0 ? $members->member_outdate != 0 ? '' : ' selected="selected"' : ' selected="selected"') . '>--</option>';
        for ($i = $now['year'] - 10; $i <= $now['year'] + 10; $i++) {
            if ($members->member_id > 0 && $members->member_outdate != 0) {
                $yr = $members->member_outdate_y;
                $selected = $i == $yr ? ' selected="selected"' : '';
            } else {
                $selected = '';
            }
            $s_memberout_year_options .= "<option value=\"{$i}\"{$selected}>{$i}</option>";
        }
        // check if user can add character
        $S_UPDATE = true;
        if (!$auth->acl_get('u_dkp_charupdate')) {
            $S_UPDATE = false;
        }
        $S_DELETE = true;
        if (!$auth->acl_get('u_dkp_chardelete')) {
            $S_DELETE = false;
        }
        foreach ($this->regions as $key => $regionname) {
            $template->assign_block_vars('region_row', array('VALUE' => $key, 'SELECTED' => $members->member_region == $key ? ' selected="selected"' : '', 'OPTION' => !empty($regionname) ? $regionname : '(None)'));
        }
        $form_key = 'characteradd';
        add_form_key($form_key);
        $template->assign_vars(array('GAME_ID' => $guilds->game_id, 'GAME' => $gamename, 'STATUS' => $members->member_status == 1 ? ' checked="checked"' : '', 'MEMBER_NAME' => $members->member_name, 'MEMBER_TITLE' => $members->member_title, 'MEMBER_ID' => $members->member_id, 'MEMBER_LEVEL' => $members->member_level, 'MALE_CHECKED' => $members->member_gender_id == '0' ? ' checked="checked"' : '', 'FEMALE_CHECKED' => $members->member_gender_id == '1' ? ' checked="checked"' : '', 'MEMBER_COMMENT' => $members->member_comment, 'REALM' => $members->member_realm, 'S_CAN_HAVE_ARMORY' => $members->game_id == 'wow' || $members->game_id == 'aion' ? true : false, 'MEMBER_URL' => $members->member_armory_url, 'MEMBER_PORTRAIT' => $members->member_portrait_url, 'S_MEMBER_PORTRAIT_EXISTS' => strlen($members->member_portrait_url) > 1 ? true : false, 'S_CAN_GENERATE_ARMORY' => $members->game_id == 'wow' ? true : false, 'COLORCODE' => $members->colorcode == '' ? '#254689' : $members->colorcode, 'CLASS_IMAGE' => $members->class_image, 'S_CLASS_IMAGE_EXISTS' => strlen($members->class_image) > 1 ? true : false, 'RACE_IMAGE' => $members->race_image, 'S_RACE_IMAGE_EXISTS' => strlen($members->race_image) > 1 ? true : false, 'S_JOINDATE_DAY_OPTIONS' => $s_memberjoin_day_options, 'S_JOINDATE_MONTH_OPTIONS' => $s_memberjoin_month_options, 'S_JOINDATE_YEAR_OPTIONS' => $s_memberjoin_year_options, 'S_OUTDATE_DAY_OPTIONS' => $s_memberout_day_options, 'S_OUTDATE_MONTH_OPTIONS' => $s_memberout_month_options, 'S_OUTDATE_YEAR_OPTIONS' => $s_memberout_year_options, 'S_SHOW' => $show, 'S_ADD' => $S_ADD, 'S_CANDELETE' => $S_DELETE, 'S_CANUPDATE' => $S_UPDATE));
    }