summary and validation of char params, toolbar,

This commit is contained in:
Ulf Gebhardt 2014-11-20 15:31:02 +01:00
parent 35e2fa7a80
commit 283dd853b5
11 changed files with 149 additions and 37 deletions

View File

@ -1,11 +1,12 @@
<?php
class charcreation {
const DEFAULT_CHAR_NAME = 'Charactername';
const DEFAULT_CHAR_NAME = 'ChooseName';
const DEFAULT_CHAR_GENDER = 'default';
const DEFAULT_CHAR_RACE = 0;
const DEFAULT_CHAR_CLASS = 0;
const MOJO_CC_SESSIONKEY = 'mojo_charcreation';
const DEFAULT_CHAR_APPEARANCE = 1;
const DEFAULT_CHAR_APPEARANCE = 0;
const DEFAULT_CHAR_SPAWN = 0;
public static function data($json = NULL, $returnasjson = true){
if(!\SYSTEM\SECURITY\Security::load(self::MOJO_CC_SESSIONKEY)){
\SYSTEM\SECURITY\Security::save(self::MOJO_CC_SESSIONKEY, self::session_default());}
@ -20,6 +21,29 @@ class charcreation {
return $returnasjson ? JsonResult::toString(\SYSTEM\SECURITY\Security::load(self::MOJO_CC_SESSIONKEY)) : \SYSTEM\SECURITY\Security::load(self::MOJO_CC_SESSIONKEY);
}
public static function check_all(){
$vars = charcreation::check();
foreach($vars as $value){
if(!$value){
return false;}
}
return true;
}
public static function check(){
if(!\SYSTEM\SECURITY\Security::load(self::MOJO_CC_SESSIONKEY)){
\SYSTEM\SECURITY\Security::save(self::MOJO_CC_SESSIONKEY, self::session_default());}
$result = array();
$data = \SYSTEM\SECURITY\Security::load(self::MOJO_CC_SESSIONKEY);
foreach($data as $key=>$value){
if(method_exists('charcreation_validator','is_'.$key)){
$result[$key.'_ok'] = call_user_func('charcreation_validator::is_'.$key,$value);}
}
return $result;
}
private static function session_default(){
return array( 'char_name' => self::DEFAULT_CHAR_NAME,
'char_gender' => self::DEFAULT_CHAR_GENDER,
@ -34,7 +58,7 @@ class charcreation {
'char_skill_tree' => 0,
'char_equip' => 0,
'char_guild' => 0,
'char_spawn' => 0);}
'char_spawn' => self::DEFAULT_CHAR_SPAWN);}
public static function checkClassRace($class,$race){
switch($race){

View File

@ -1,72 +1,110 @@
<?php
class charcreation_validator {
public static function is_char_name($value){
return (strlen($value) <= 12) && (strlen($value) > 2) && !preg_match('/[^A-Za-z]/',$value);}
public static function char_name($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
if( strlen($value) > 12 || //strlen($value) < 2 ||
preg_match('/[^A-Za-z]/',$value)){
$data['char_name'] = charcreation::DEFAULT_CHAR_NAME;
} else {
$data['char_name'] = $value;}
$data['char_name'] = self::is_char_name($value) ? $value : charcreation::DEFAULT_CHAR_NAME;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_gender($value){
return ($value == ('female' || 'male'));}
public static function char_gender($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_gender'] = ($value == ('female' || 'male')) ? $value : charcreation::DEFAULT_CHAR_GENDER;
$data['char_gender'] = self::is_char_gender($value) ? $value : charcreation::DEFAULT_CHAR_GENDER;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_race($value){
return player_races::is($value);}
public static function char_race($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_race'] = $value;
if(!charcreation::checkClassRace($data['char_class'], $data['char_race'])){
if(!is_char_race($value) || !charcreation::checkClassRace($data['char_class'], $data['char_race'])){
$data['char_class'] = charcreation::DEFAULT_CHAR_CLASS;}
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_class($value){
return player_classes::is($value);}
public static function char_class($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_class'] = $value;
if(!charcreation::checkClassRace($data['char_class'], $data['char_race'])){
if(!self::is_char_class($value) || !charcreation::checkClassRace($data['char_class'], $data['char_race'])){
$data['char_race'] = charcreation::DEFAULT_CHAR_RACE;}
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_skin_color($value){
return true;}
public static function char_skin_color($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_skin_color'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_hair($value){
return true;}
public static function char_hair($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_hair'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_hair_color($value){
return true;}
public static function char_hair_color($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_hair_color'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_face($value){
return true;}
public static function char_face($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_face'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_facial_hair($value){
return true;}
public static function char_facial_hair($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_facial_hair'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_facial_hair_color($value){
return true;}
public static function char_facial_hair_color($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_facial_hair_color'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
public static function is_char_skill_tree($value){
return false;}
public static function char_skill_tree($value){}
public static function is_char_equip($value){
return false;}
public static function char_equip($value){}
public static function is_char_guild($value){
return false;}
public static function char_guild($value){}
public static function is_char_spawn($value){
return player_spawns::is($value);}
public static function char_spawn($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
if((player_races::is_horde($data['char_race']) && player_spawns::is_horde($value)) ||
(player_races::is_alliance($data['char_race']) && player_spawns::is_alliance($value)) ){
$data['char_spawn'] = $value;
} else {
$data['char_spawn'] = charcreation::DEFAULT_CHAR_SPAWN;
}
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
}
}

View File

@ -47,8 +47,8 @@ class player_races {
}
}
public static function is($class){
switch($class){
public static function is($race){
switch($race){
case self::HUMAN:
case self::ORC:
case self::DWARF:
@ -62,4 +62,28 @@ class player_races {
return false;
}
}
public static function is_horde($race){
switch($race){
case self::ORC:
case self::SCOURGE:
case self::TAUREN:
case self::TROLL:
return true;
default:
return false;
}
}
public static function is_alliance($race){
switch($race){
case self::HUMAN:
case self::DWARF:
case self::NIGHTELF:
case self::GNOME:
return true;
default:
return false;
}
}
}

View File

@ -41,10 +41,32 @@ class player_spawns {
switch($city){
case self::UNDERCITY:
case self::IRONFORGE:
case self::STROMWIND:
case self::STORMWIND:
case self::DARNASSUS:
case self::ORGRIMMAR:
case self::THUNDERBLUF:
case self::THUNDERBLUFF:
return true;
default:
return false;
}
}
public static function is_horde($city){
switch($city){
case self::UNDERCITY:
case self::ORGRIMMAR:
case self::THUNDERBLUFF:
return true;
default:
return false;
}
}
public static function is_alliance($city){
switch($city){
case self::IRONFORGE:
case self::STORMWIND:
case self::DARNASSUS:
return true;
default:
return false;

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -1,77 +1,72 @@
<div style="text-align: center; color: black;">
<H4>Summary</H4>
<H3>Summary</H3>
</div>
<table class="table_summ">
<!--<tr>
<th>Option</th>
<th>Wert</th>
<th>Check</th>
</tr>-->
<tr>
<td><b>Name</b></td>
<td>${char_name}</td>
<td>${char_name_ok}</td>
<td><img src="${WOWICONS}${char_name_ok}.png"/></td>
</tr>
<tr>
<td><b>Gender</b></td>
<td><img src="${WOW_GENDER}${char_gender}.png"/></td>
<td>${char_gender_ok}</td>
<td><img src="${WOWICONS}${char_gender_ok}.png"/></td>
</tr>
<tr>
<td><b>Race</b></td>
<td><img src="${WOW_RACE}${char_race}_${char_gender}.png"/></td>
<td>${char_race_ok}</td>
<td><img src="${WOWICONS}${char_race_ok}.png"/></td>
</tr>
<tr>
<td><b>Class</b></td>
<td><img src="${WOW_CLASS}${char_class}.png"/></td>
<td>${char_class_ok}</td>
<td><img src="${WOWICONS}${char_class_ok}.png"/></td>
</tr>
<tr>
<td>Skin Color</td>
<td>${char_skin_color}</td>
<td>${char_skin_color_ok}</td>
<td><img src="${WOWICONS}${char_skin_color_ok}.png"/></td>
</tr>
<tr>
<td>Hair</td>
<td>${char_hair}</td>
<td>${char_hair_ok}</td>
<td><img src="${WOWICONS}${char_hair_ok}.png"/></td>
</tr>
<tr>
<td>Hair Color</td>
<td>${char_hair_color}</td>
<td>${char_hair_color_ok}</td>
<td><img src="${WOWICONS}${char_hair_color_ok}.png"/></td>
</tr>
<tr>
<td>Face</td>
<td>${char_face}</td>
<td>${char_face_ok}</td>
<td><img src="${WOWICONS}${char_face_ok}.png"/></td>
</tr>
<tr>
<td>Facial Hair</td>
<td>${char_facial_hair}</td>
<td>${char_facial_hair_ok}</td>
<td><img src="${WOWICONS}${char_facial_hair_ok}.png"/></td>
</tr>
<tr>
<td>Facial Hair Color</td>
<td>${char_facial_hair_color}</td>
<td>${char_facial_hair_color_ok}</td>
<td><img src="${WOWICONS}${char_facial_hair_color_ok}.png"/></td>
</tr>
<tr>
<td>Skill Tree</td>
<td>${char_skill_tree}</td>
<td>${char_skill_tree_ok}</td>
<td><img src="${WOWICONS}${char_skill_tree_ok}.png"/></td>
</tr>
<tr>
<td><b>Guild</b></td>
<td>${char_guild}</td>
<td>${char_guild_ok}</td>
<td><img src="${WOWICONS}${char_guild_ok}.png"/></td>
</tr>
<tr>
<td><b>Spawn</b></td>
<td><img src="${WOW_CITY}${char_spawn}.png"/></td>
<td>${char_spawn_ok}</td>
<td><img src="${WOWICONS}${char_spawn_ok}.png"/></td>
</tr>
</table>
<div id="frame_content_toolbar" style="padding-top: 15px; height: 75px;"></div>

View File

@ -2,7 +2,14 @@
class wizard_summary extends SYSTEM\PAGE\Page {
public function html(){
$vars = charcreation::data(NULL,false);
$vars = charcreation::check();
foreach($vars as $key=>$value){
if($value){
$vars[$key] = 'ok';
} else {
$vars[$key] = 'fail';}
}
$vars = array_merge($vars,charcreation::data(NULL,false));
$vars['char_skin_color'] = \DBD\RACE_VISUALS_BY_ID::Q1(array($vars['char_race'],race_visuals::VISUAL_SKIN,$vars['char_skin_color']))['name'];
$vars['char_hair'] = \DBD\RACE_VISUALS_BY_ID::Q1(array($vars['char_race'],race_visuals::VISUAL_HAIR,$vars['char_hair']))['name'];
@ -15,6 +22,7 @@ class wizard_summary extends SYSTEM\PAGE\Page {
$vars['char_class'] = player_classes::name($vars['char_class']);
$vars['char_spawn'] = player_spawns::name($vars['char_spawn']);
$vars['WOWICONS'] = \SYSTEM\FILES\files::getURL('wowicons');
$vars['WOW_GENDER'] = \SYSTEM\FILES\files::getURL('gender');
$vars['WOW_RACE'] = \SYSTEM\FILES\files::getURL('race');
$vars['WOW_CLASS'] = \SYSTEM\FILES\files::getURL('class');

View File

@ -6,5 +6,5 @@
<a class="tb_link" id="tb_skills" sysload="wizard_skills" href="#wizard_skills" style="padding-left: 30px;"><img src="${WOWICONS}default.png" /></a>
<a class="tb_link" id="tb_guild" sysload="wizard_guild" href="#wizard_guild" style="padding-left: 30px;"><img src="${WOWICONS}default.png" /></a>
<a class="tb_link" id="tb_spawn" sysload="wizard_spawn" href="#wizard_spawn" style="padding-left: 30px;"><img src="${WOW_CITY}${char_spawn}.png" /></a>
<a class="tb_link" id="tb_summary" sysload="wizard_summary" href="#wizard_summary" style="padding-left: 30px;"><img src="${WOWICONS}default.png" /></a>
<a class="tb_link" id="tb_summary" sysload="wizard_summary" href="#wizard_summary" style="padding-left: 30px;"><img src="${WOWICONS}${char_summary}.png" /></a>
<a class="tb_link" id="tb_next" sysload="${next}" href="#${next}" style="padding-left: 15px;"><img src="${WOWICONS}arrow_right.png" /></a>

View File

@ -18,6 +18,7 @@ class wizard_toolbar extends SYSTEM\PAGE\Page {
$vars['char_class'] = player_classes::name($vars['char_class']);
$vars['char_race'] = player_races::name($vars['char_race']);
$vars['char_spawn'] = player_spawns::name($vars['char_spawn']);
$vars['char_summary'] = charcreation::check_all() ? 'ok_summary' : 'default';
$vars['last'] = $this->last;
$vars['next'] = $this->next;
$vars['WOWICONS'] = \SYSTEM\FILES\files::getURL('wowicons');