/** * 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; }
/** * 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)); }