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 <?php
class charcreation { class charcreation {
const DEFAULT_CHAR_NAME = 'Charactername'; const DEFAULT_CHAR_NAME = 'ChooseName';
const DEFAULT_CHAR_GENDER = 'default'; const DEFAULT_CHAR_GENDER = 'default';
const DEFAULT_CHAR_RACE = 0; const DEFAULT_CHAR_RACE = 0;
const DEFAULT_CHAR_CLASS = 0; const DEFAULT_CHAR_CLASS = 0;
const MOJO_CC_SESSIONKEY = 'mojo_charcreation'; 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){ public static function data($json = NULL, $returnasjson = true){
if(!\SYSTEM\SECURITY\Security::load(self::MOJO_CC_SESSIONKEY)){ if(!\SYSTEM\SECURITY\Security::load(self::MOJO_CC_SESSIONKEY)){
\SYSTEM\SECURITY\Security::save(self::MOJO_CC_SESSIONKEY, self::session_default());} \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); 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(){ private static function session_default(){
return array( 'char_name' => self::DEFAULT_CHAR_NAME, return array( 'char_name' => self::DEFAULT_CHAR_NAME,
'char_gender' => self::DEFAULT_CHAR_GENDER, 'char_gender' => self::DEFAULT_CHAR_GENDER,
@ -34,7 +58,7 @@ class charcreation {
'char_skill_tree' => 0, 'char_skill_tree' => 0,
'char_equip' => 0, 'char_equip' => 0,
'char_guild' => 0, 'char_guild' => 0,
'char_spawn' => 0);} 'char_spawn' => self::DEFAULT_CHAR_SPAWN);}
public static function checkClassRace($class,$race){ public static function checkClassRace($class,$race){
switch($race){ switch($race){

View File

@ -1,72 +1,110 @@
<?php <?php
class charcreation_validator { 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){ public static function char_name($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
if( strlen($value) > 12 || //strlen($value) < 2 || $data['char_name'] = self::is_char_name($value) ? $value : charcreation::DEFAULT_CHAR_NAME;
preg_match('/[^A-Za-z]/',$value)){
$data['char_name'] = charcreation::DEFAULT_CHAR_NAME;
} else {
$data['char_name'] = $value;}
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \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){ public static function char_gender($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $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); \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){ public static function char_race($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_race'] = $value; $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;} $data['char_class'] = charcreation::DEFAULT_CHAR_CLASS;}
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \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){ public static function char_class($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_class'] = $value; $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;} $data['char_race'] = charcreation::DEFAULT_CHAR_RACE;}
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \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){ public static function char_skin_color($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_skin_color'] = $value; $data['char_skin_color'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
} }
public static function is_char_hair($value){
return true;}
public static function char_hair($value){ public static function char_hair($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_hair'] = $value; $data['char_hair'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \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){ public static function char_hair_color($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_hair_color'] = $value; $data['char_hair_color'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
} }
public static function is_char_face($value){
return true;}
public static function char_face($value){ public static function char_face($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_face'] = $value; $data['char_face'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \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){ public static function char_facial_hair($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_facial_hair'] = $value; $data['char_facial_hair'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \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){ public static function char_facial_hair_color($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_facial_hair_color'] = $value; $data['char_facial_hair_color'] = $value;
\SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data); \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 char_skill_tree($value){}
public static function is_char_equip($value){
return false;}
public static function char_equip($value){} public static function char_equip($value){}
public static function is_char_guild($value){
return false;}
public static function char_guild($value){} public static function char_guild($value){}
public static function is_char_spawn($value){
return player_spawns::is($value);}
public static function char_spawn($value){ public static function char_spawn($value){
$data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY); $data = \SYSTEM\SECURITY\Security::load(charcreation::MOJO_CC_SESSIONKEY);
$data['char_spawn'] = $value; 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); \SYSTEM\SECURITY\Security::save(charcreation::MOJO_CC_SESSIONKEY,$data);
} }
} }

View File

@ -47,8 +47,8 @@ class player_races {
} }
} }
public static function is($class){ public static function is($race){
switch($class){ switch($race){
case self::HUMAN: case self::HUMAN:
case self::ORC: case self::ORC:
case self::DWARF: case self::DWARF:
@ -62,4 +62,28 @@ class player_races {
return false; 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){ switch($city){
case self::UNDERCITY: case self::UNDERCITY:
case self::IRONFORGE: case self::IRONFORGE:
case self::STROMWIND: case self::STORMWIND:
case self::DARNASSUS: case self::DARNASSUS:
case self::ORGRIMMAR: 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; return true;
default: default:
return false; 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;"> <div style="text-align: center; color: black;">
<H4>Summary</H4> <H3>Summary</H3>
</div> </div>
<table class="table_summ"> <table class="table_summ">
<!--<tr>
<th>Option</th>
<th>Wert</th>
<th>Check</th>
</tr>-->
<tr> <tr>
<td><b>Name</b></td> <td><b>Name</b></td>
<td>${char_name}</td> <td>${char_name}</td>
<td>${char_name_ok}</td> <td><img src="${WOWICONS}${char_name_ok}.png"/></td>
</tr> </tr>
<tr> <tr>
<td><b>Gender</b></td> <td><b>Gender</b></td>
<td><img src="${WOW_GENDER}${char_gender}.png"/></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>
<tr> <tr>
<td><b>Race</b></td> <td><b>Race</b></td>
<td><img src="${WOW_RACE}${char_race}_${char_gender}.png"/></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>
<tr> <tr>
<td><b>Class</b></td> <td><b>Class</b></td>
<td><img src="${WOW_CLASS}${char_class}.png"/></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>
<tr> <tr>
<td>Skin Color</td> <td>Skin Color</td>
<td>${char_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>
<tr> <tr>
<td>Hair</td> <td>Hair</td>
<td>${char_hair}</td> <td>${char_hair}</td>
<td>${char_hair_ok}</td> <td><img src="${WOWICONS}${char_hair_ok}.png"/></td>
</tr> </tr>
<tr> <tr>
<td>Hair Color</td> <td>Hair Color</td>
<td>${char_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>
<tr> <tr>
<td>Face</td> <td>Face</td>
<td>${char_face}</td> <td>${char_face}</td>
<td>${char_face_ok}</td> <td><img src="${WOWICONS}${char_face_ok}.png"/></td>
</tr> </tr>
<tr> <tr>
<td>Facial Hair</td> <td>Facial Hair</td>
<td>${char_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>
<tr> <tr>
<td>Facial Hair Color</td> <td>Facial Hair Color</td>
<td>${char_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>
<tr> <tr>
<td>Skill Tree</td> <td>Skill Tree</td>
<td>${char_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>
<tr> <tr>
<td><b>Guild</b></td> <td><b>Guild</b></td>
<td>${char_guild}</td> <td>${char_guild}</td>
<td>${char_guild_ok}</td> <td><img src="${WOWICONS}${char_guild_ok}.png"/></td>
</tr> </tr>
<tr> <tr>
<td><b>Spawn</b></td> <td><b>Spawn</b></td>
<td><img src="${WOW_CITY}${char_spawn}.png"/></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> </tr>
</table> </table>
<div id="frame_content_toolbar" style="padding-top: 15px; height: 75px;"></div> <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 { class wizard_summary extends SYSTEM\PAGE\Page {
public function html(){ 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_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']; $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_class'] = player_classes::name($vars['char_class']);
$vars['char_spawn'] = player_spawns::name($vars['char_spawn']); $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_GENDER'] = \SYSTEM\FILES\files::getURL('gender');
$vars['WOW_RACE'] = \SYSTEM\FILES\files::getURL('race'); $vars['WOW_RACE'] = \SYSTEM\FILES\files::getURL('race');
$vars['WOW_CLASS'] = \SYSTEM\FILES\files::getURL('class'); $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_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_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_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> <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_class'] = player_classes::name($vars['char_class']);
$vars['char_race'] = player_races::name($vars['char_race']); $vars['char_race'] = player_races::name($vars['char_race']);
$vars['char_spawn'] = player_spawns::name($vars['char_spawn']); $vars['char_spawn'] = player_spawns::name($vars['char_spawn']);
$vars['char_summary'] = charcreation::check_all() ? 'ok_summary' : 'default';
$vars['last'] = $this->last; $vars['last'] = $this->last;
$vars['next'] = $this->next; $vars['next'] = $this->next;
$vars['WOWICONS'] = \SYSTEM\FILES\files::getURL('wowicons'); $vars['WOWICONS'] = \SYSTEM\FILES\files::getURL('wowicons');