saimod creature, tag filter interface, cleanup, tags

This commit is contained in:
Ulf Gebhardt 2014-12-21 20:54:42 +01:00
parent f6d1e75d2a
commit bafd2ee39b
11 changed files with 122 additions and 100 deletions

View File

@ -0,0 +1,10 @@
<?php
namespace DBD;
class TAGS_GET_TYPE_GET extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
'',
'SELECT * FROM mojotrollz_tags_type WHERE `table` = ? AND id = ?;'
);}}

View File

@ -0,0 +1,10 @@
<?php
namespace DBD;
class TAGS_GET_TYPE_GET_TYPES extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
'',
'SELECT * FROM mojotrollz_tags_type WHERE `table` = ?;'
);}}

View File

@ -0,0 +1,10 @@
<?php
namespace DBD;
class TAGS_GET_VALUE_GET extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
'',
'SELECT * FROM mojotrollz_tags_value WHERE type = ? AND id = ?;'
);}}

View File

@ -0,0 +1,10 @@
<?php
namespace DBD;
class TAGS_GET_VALUE_GET_VALUES extends \SYSTEM\DB\QP {
protected static function query(){
return new \SYSTEM\DB\QQuery(get_class(),
'',
'SELECT * FROM mojotrollz_tags_value WHERE type = ?;'
);}}

View File

@ -1,5 +1,12 @@
<?php
class tags {
const TAG_TABLE_CREATURE = 1;
const TAG_TABLE_OBJECT = 2;
const TAG_TABLE_ITEM = 3;
const TAG_TABLE_QUESTS = 4;
const TAG_TABLE_SPELLS = 5;
const TAG_TABLE_PLAYERS = 6;
const TAG_TABLE_TOPICS = 7;
public static function get($table, $id, $type = null){
if($type){
return \DBD\TAGS_GET_TYPE::Q1(array($table, $id, $type));}
@ -13,12 +20,22 @@ class tags {
public static function comment($table, $id, $type, $comment){
return \DBD\TAGS_COMMENT::QI(array($table, $id, $type, $comment));}
public static function get_type($table,$id=null){
if($id){
return \DBD\TAGS_GET_TYPE_GET::Q1(array($table, $id));}
return \DBD\TAGS_GET_TYPE_GET_TYPES::QQ(array($table));}
public static function set_type($id,$table,$name,$description=null){
if($description){
return \DBD\TAGS_SET_TYPE_DESCRIPTION::QI(array($id,$table,$name,$description));}
return \DBD\TAGS_SET_TYPE::QI(array($id,$table,$name));}
public static function get_value($type,$id=null){
if($id){
return \DBD\TAGS_GET_VALUE_GET::Q1(array($type, $id));}
return \DBD\TAGS_GET_VALUE_GET_VALUES::QQ(array($type));}
public static function set_value($type,$id,$value,$description=null){
if($description){
return \DBD\TAGS_SET_VALUE_DESCRIPTION::QI($type,$id,$value,$description);}

View File

@ -1,7 +1,7 @@
<?php
class saimod_mojotrollz_db_creature extends \SYSTEM\SAI\SaiModule {
public static function sai_mod_saimod_mojotrollz_db_creature_action_search($search){
return self::sai_mod_saimod_mojotrollz_db_creature('%'.$search.'%');}
public static function sai_mod_saimod_mojotrollz_db_creature_action_search($search,$tags=null){
return self::sai_mod_saimod_mojotrollz_db_creature('%'.$search.'%',$tags);}
public static function sai_mod_saimod_mojotrollz_db_creature_action_creature($id){
$def = array('additional_tables' => array( '\DBD\DB_CREATURE_TEMPLATE_CREATURE_LOOT' => array('key' => 'LootId', 'caption' => 'Loot'),
@ -47,106 +47,22 @@ class saimod_mojotrollz_db_creature extends \SYSTEM\SAI\SaiModule {
return $result;
}
public static function sai_mod_saimod_mojotrollz_db_creature($search='%'){
$subdef = array( 'key' => 'Entry'); //table identifier
$def = array( 'Entry' => array('caption' => 'ID'),
'ModelId1' => array('hidden' => false),
'ModelId2' => array('hidden' => false),
'Scale' => array('hidden' => true),
'Family' => array('hidden' => false),
'CreatureType' => array('hidden' => true),
'InhabitType' => array('hidden' => true),
'RegenerateHealth' => array('hidden' => true),
'RacialLeader' => array('hidden' => true),
'NpcFlags' => array('hidden' => true),
'UnitFlags' => array('hidden' => true),
'DynamicFlags' => array('hidden' => true),
'ExtraFlags' => array('hidden' => true),
'CreatureTypeFlags' => array('hidden' => true),
'SpeedWalk' => array('hidden' => true),
'SpeedRun' => array('hidden' => true),
'HealthMultiplier' => array('hidden' => true),
'ManaMultiplier' => array('hidden' => true),
'DamageMultiplier' => array('hidden' => true),
'DamageVariance' => array('hidden' => true),
'ArmorMultiplier' => array('hidden' => true),
'ExperienceMultiplier' => array('hidden' => true),
'MinLevelHealth' => array('hidden' => true),
'MaxLevelHealth' => array('hidden' => true),
'MinLevelMana' => array('hidden' => true),
'MaxLevelMana' => array('hidden' => true),
'MinMeeleDmg' => array('hidden' => true),
'MaxMeeleDmg' => array('hidden' => true),
'MinRangedDmg' => array('hidden' => true),
'MaxRangedDmg' => array('hidden' => true),
'Armor' => array('hidden' => true),
'MeeleAttackPower' => array('hidden' => true),
'RangedAttackPower' => array('hidden' => true),
'MeeleBaseAttackTime' => array('hidden' => true),
'MaxMeleeDmg' => array('hidden' => true),
'MeleeAttackPower' => array('hidden' => true),
'RangedBaseAttackTime' => array('hidden' => true),
'DamageSchool' => array('hidden' => true),
'MinLootGold' => array('hidden' => true),
'MaxLootGold' => array('hidden' => true),
'LootId' => array('hidden' => false),
'PickpocketLootId' => array('hidden' => false),
'SkinningLootId' => array('hidden' => false),
'KillCredit1' => array('hidden' => true),
'KillCredit2' => array('hidden' => true),
'MechanicImmuneMask' => array('hidden' => true),
'MinMeleeDmg' => array('hidden' => true),
'MeleeBaseAttackTime' => array('hidden' => true),
'ResistanceHoly' => array('hidden' => true),
'ResistanceFire' => array('hidden' => true),
'ResistanceNature' => array('hidden' => true),
'ResistanceFrost' => array('hidden' => true),
'ResistanceShadow' => array('hidden' => true),
'ResistanceArcane' => array('hidden' => true),
'PetSpellDataId' => array('hidden' => true),
'MovementType' => array('hidden' => true),
'TrainerType' => array('hidden' => true),
'TrainerSpell' => array('hidden' => true),
'TrainerClass' => array('hidden' => true),
'TrainerRace' => array('hidden' => true),
'TrainerTemplateId' => array('hidden' => true),
'VendorTemplateId' => array('hidden' => true),
'GossipMenuId' => array('hidden' => true),
'EquipmentTemplateId' => array('hidden' => true),
'Civilian' => array('hidden' => true),
'AIName' => array('hidden' => true),
'ScriptName' => array('hidden' => false),
);
public static function sai_mod_saimod_mojotrollz_db_creature($search='%',$tags=null){
$vars = array();
$vars['entries'] = $vars['tag_entries'] = '';
$tags = tags::get_type(tags::TAG_TABLE_CREATURE);
while($tag = $tags->next()){
$tag['options'] = '';
$tags_values = tags::get_value($tag['id']);
while($value = $tags_values->next()){
$tag['options'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_creature/tpl/tag_entry_option.tpl'), $value);}
$vars['tag_entries'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_creature/tpl/tag_entry.tpl'), $tag);}
$res = \DBD\DB_CREATURE_TEMPLATE_SEARCH::QQ(array($search,$search,$search));
$result = '<input id="filter" type="text"/><button class="btn btn-primary" type="button" id="search">Search</button>';
$result .= '<table class="sai_table"><tr>';
$result_body = '<tr>';
$first = true;
while($row = $res->next()){
$result_body .= '<tr class="sai_table_row" sai_table_row="'.$row[$subdef['key']].'">';
foreach($row as $key=>$data){
//hidden
if( array_key_exists($key, $def) &&
array_key_exists('hidden',$def[$key]) &&
$def[$key]['hidden']){
continue;
}
if($first){
if( array_key_exists($key, $def) &&
array_key_exists('caption',$def[$key])){
$key = $def[$key]['caption'];
}
$result .= '<th>'.$key.'</th>';}
$result_body .= '<td>'.$data.'</td>';
}
$first=false;
$result_body .= '</tr>';
}
$result .= '</tr>'.$result_body;
$result .= '</table>';
return $result;
$vars['entries'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_creature/tpl/search_entry.tpl'), $row);}
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_creature/tpl/search.tpl'), $vars);
}
public static function html_li_menu(){return '<li><a href="#" saimenu="saimod_mojotrollz_db_creature">DB:Creatures</a></li><li class="divider"></li>';}
@ -155,7 +71,7 @@ class saimod_mojotrollz_db_creature extends \SYSTEM\SAI\SaiModule {
public static function sai_mod_saimod_mojotrollz_db_creature_flag_js(){return \SYSTEM\LOG\JsonResult::toString(array(
\SYSTEM\WEBPATH(new PAPI(),'database/js/wow.js'),
\SYSTEM\WEBPATH(new PAPI(),'map/js/map.js'),
\SYSTEM\WEBPATH(new PSAI(),'saimod_mojotrollz_db_creature/saimod_mojotrollz_db_creature.js')));}
\SYSTEM\WEBPATH(new PSAI(),'saimod_mojotrollz_db_creature/js/saimod_mojotrollz_db_creature.js')));}
public static function sai_mod_saimod_mojotrollz_db_creature_flag_css(){return \SYSTEM\LOG\JsonResult::toString(array(
\SYSTEM\WEBPATH(new PAPI(),'map/css/map.css')));}
}

View File

@ -0,0 +1,27 @@
<div id="filter_container">
<input id="filter" type="text"/>
<table class="sai_table">
<tr>
<th>TagType</th>
<th>TagTypeValue</th>
</tr>
${tag_entries}
</table>
<button class="btn btn-primary" type="button" id="search">Search</button>
</div>
<hr/>
<table class="sai_table">
<tr>
<th>ID</th>
<th>Name</th>
<th>Subname</th>
<th>ModelId1</th>
<th>ModelId2</th>
<th>Family</th>
<th>LootId</th>
<th>PickpocketLootId</th>
<th>SkinningLootId</th>
<th>ScriptName</th>
</tr>
${entries}
</table>

View File

@ -0,0 +1,12 @@
<tr>
<td>${Entry}</td>
<td>${Name}</td>
<td>${SubName}</td>
<td>${ModelId1}</td>
<td>${ModelId2}</td>
<td>${Family}</td>
<td>${LootId}</td>
<td>${PickpocketLootId}</td>
<td>${SkinningLootId}</td>
<td>${ScriptName}</td>
</tr>

View File

@ -0,0 +1,9 @@
<tr>
<td>${name}</td>
<td>
<select>
<option value="-1">No Filter</option>
${options}
</select>
</td>
</tr>

View File

@ -0,0 +1 @@
<option value="${id}">${value}</option>