diff --git a/mojotrollz/api/database/tags/tags.php b/mojotrollz/api/database/tags/tags.php index c07c19f..59693bd 100644 --- a/mojotrollz/api/database/tags/tags.php +++ b/mojotrollz/api/database/tags/tags.php @@ -3,10 +3,10 @@ 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; + const TAG_TABLE_QUEST = 4; + const TAG_TABLE_SPELL = 5; + const TAG_TABLE_PLAYER = 6; + const TAG_TABLE_TOPIC = 7; public static function statistics($table,$type){ } diff --git a/mojotrollz/api/database/tooltip/qq/TOOLTIP_QUEST.php b/mojotrollz/api/database/tooltip/qq/TOOLTIP_QUEST.php new file mode 100644 index 0000000..fa8477a --- /dev/null +++ b/mojotrollz/api/database/tooltip/qq/TOOLTIP_QUEST.php @@ -0,0 +1,11 @@ +query('SELECT * FROM quest_template LIMIT 100;'); - - $result = ' - - '; - while($row = $res->next()){ - $result .= ' - - '; + public static function sai_mod_saimod_mojotrollz_db_quest_action_search($search,$tags=null){ + return self::sai_mod_saimod_mojotrollz_db_quest($search,$tags);} + + public static function sai_mod_saimod_mojotrollz_db_quest_action_tag($id,$tags){ + $tags = json_decode($tags,true); + foreach ($tags as $type=>$value){ + if($value == -2){ + tags::del(tags::TAG_TABLE_QUEST, $id, $type);} + tags::set(tags::TAG_TABLE_QUEST, $id, $type, $value);} + return JsonResult::ok(); + } + + public static function sai_mod_saimod_mojotrollz_db_quest_action_quest($id){ + $vars = array(); + $vars['entries'] = $vars['tag_entries'] = ''; + + $vars['map'] = map::generate(tags::TAG_TABLE_QUEST,$id); + + $base_row = \DBD\DB_QUEST_TEMPLATE_QUEST::Q1(array($id)); + foreach($base_row as $key=>$value){ + $vars['entries'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/quest_base.tpl'), array('key' => $key, 'value' => $value));} + + //Quest Tags + $tags_res = tags::get(tags::TAG_TABLE_QUEST, $base_row['entry']); + $tags = array(); + while($tag = $tags_res->next()){ + $tags[$tag['type']] = $tag;} + + //Tag Types + $tags_types = tags::get_type(tags::TAG_TABLE_QUEST); + while($tag = $tags_types->next()){ + $tag['options'] = ''; + $tags_values = tags::get_value($tag['id']); + while($value = $tags_values->next()){ + $value['selected'] = ''; + if( array_key_exists($value['type'], $tags) && + $tags[$value['type']]['value'] == $value['id']){ + $value['selected'] = 'selected';} + $tag['options'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/tag_entry_option.tpl'), $value);} + $vars['tag_entries'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/tag_quest_entry.tpl'), $tag);} + + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/quest.tpl'), $vars); + } + public static function sai_mod_saimod_mojotrollz_db_quest($search='%',$tags=null){ + $vars = array(); + $vars['search'] = $search; + $vars['entries'] = $vars['tag_entries'] = ''; + + $tags = json_decode($tags,true); + if(!$tags){ + $tags = array();} + + $tags_types = tags::get_type(tags::TAG_TABLE_QUEST); + while($tag = $tags_types->next()){ + $tag['options'] = ''; + $tags_values = tags::get_value($tag['id']); + while($value = $tags_values->next()){ + $value['selected'] = ''; + if( array_key_exists($value['type'], $tags) && + $tags[$value['type']] == $value['id']){ + $value['selected'] = 'selected';} + $tag['options'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/tag_entry_option.tpl'), $value);} + $vars['tag_entries'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/tag_entry.tpl'), $tag);} + + $sql_join = $sql_where = ''; + foreach($tags as $type=>$value){ + if($value == -1){ + continue;} + if($value == -2){ + $sql_where .= 'entry NOT IN (SELECT id FROM host_mojotrollz.mojotrollz_tags WHERE `table` = '.tags::TAG_TABLE_QUEST.' AND `type` = '.$type.') AND '; + continue;} + $sql_join .= 'LEFT JOIN host_mojotrollz.mojotrollz_tags as t'.$type.' ON quest_template.entry = t'.$type.'.id '; + $sql_where .= 't'.$type.'.`table` = '.tags::TAG_TABLE_QUEST.' AND t'.$type.'.`type` = '.$type.' AND t'.$type.'.value = '.$value.' AND '; } - $result .= '
entry
'.$row['entry'].'
'; - return $result;} + $con = new \SYSTEM\DB\Connection(new \DBD\mangos_world()); + $res = $con->prepare( 'search-quest', + 'SELECT quest_template.* FROM quest_template '. + $sql_join. + ' WHERE '.$sql_where. + ' (`entry` LIKE ? OR `title` LIKE ?) LIMIT 100;', + array($search,$search)); + while($row = $res->next()){ + $vars['entries'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/search_entry.tpl'), $row);} + + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new PSAI(),'saimod_mojotrollz_db_quest/tpl/search.tpl'), $vars); + } public static function html_li_menu(){return '
  • DB:Quests
  • ';} public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function sai_mod_saimod_mojotrollz_db_quest_flag_js(){return \SYSTEM\LOG\JsonResult::toString(array());} - public static function sai_mod_saimod_mojotrollz_db_quest_flag_css(){} + public static function sai_mod_saimod_mojotrollz_db_quest_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_quest/js/saimod_mojotrollz_db_quest.js')));} + public static function sai_mod_saimod_mojotrollz_db_quest_flag_css(){return \SYSTEM\LOG\JsonResult::toString(array( + \SYSTEM\WEBPATH(new PAPI(),'map/css/map.css')));} } \ No newline at end of file diff --git a/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/quest.tpl b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/quest.tpl new file mode 100644 index 0000000..ba4a1aa --- /dev/null +++ b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/quest.tpl @@ -0,0 +1,15 @@ +
    + ${map} +
    + + + + + + ${tag_entries} +
    TagTypeTagTypeValue
    + +
    + +${entries} +
    \ No newline at end of file diff --git a/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/quest_base.tpl b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/quest_base.tpl new file mode 100644 index 0000000..7a42d83 --- /dev/null +++ b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/quest_base.tpl @@ -0,0 +1,4 @@ + + ${key} + ${value} + \ No newline at end of file diff --git a/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/search.tpl b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/search.tpl new file mode 100644 index 0000000..b25aab4 --- /dev/null +++ b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/search.tpl @@ -0,0 +1,21 @@ +
    + + + + + + + ${tag_entries} +
    TagTypeTagTypeValue
    + +
    +
    + + + + + + + + ${entries} +
    EntryTitleDetailsObjectives
    \ No newline at end of file diff --git a/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/search_entry.tpl b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/search_entry.tpl new file mode 100644 index 0000000..8391dc8 --- /dev/null +++ b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/search_entry.tpl @@ -0,0 +1,6 @@ + + ${entry} + ${Title} + ${Details} + ${Objectives} + \ No newline at end of file diff --git a/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_entry.tpl b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_entry.tpl new file mode 100644 index 0000000..4cc4f83 --- /dev/null +++ b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_entry.tpl @@ -0,0 +1,10 @@ + + ${name} + + + + \ No newline at end of file diff --git a/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_entry_option.tpl b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_entry_option.tpl new file mode 100644 index 0000000..4950b9b --- /dev/null +++ b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_entry_option.tpl @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_quest_entry.tpl b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_quest_entry.tpl new file mode 100644 index 0000000..535a1b8 --- /dev/null +++ b/mojotrollz/sai/saimod_mojotrollz_db_quest/tpl/tag_quest_entry.tpl @@ -0,0 +1,9 @@ + + ${name} + + + + \ No newline at end of file