diff --git a/code/web/private_php/ams/autoload/plugincache.php b/code/web/private_php/ams/autoload/plugincache.php index 29a2172cb..20bbb0b25 100644 --- a/code/web/private_php/ams/autoload/plugincache.php +++ b/code/web/private_php/ams/autoload/plugincache.php @@ -261,8 +261,13 @@ class Plugincache { $arr = get_defined_functions(); foreach ($arr['user'] as $key => $value) { - if (stristr( $value, $plugin_name) == true) { - $content['hook_info'][$plugin_name] = call_user_func($value); + switch (strtolower($value)) { + case strtolower($plugin_name).'_hook_display': + case strtolower($plugin_name).'_hook_call_rest': + case strtolower($plugin_name).'_hook_get_db': + case strtolower($plugin_name).'_hook_return_global': + $content['hook_info'][$plugin_name] = call_user_func($value); + break; } } // path for the template diff --git a/code/web/private_php/ams/plugins/API_key_management/API_key_management.php b/code/web/private_php/ams/plugins/API_key_management/API_key_management.php index 8f2e6158b..09c895624 100644 --- a/code/web/private_php/ams/plugins/API_key_management/API_key_management.php +++ b/code/web/private_php/ams/plugins/API_key_management/API_key_management.php @@ -27,6 +27,7 @@ function api_key_management_hook_display() global $return_set; // to display plugin name in menu bar $return_set['menu_display'] = 'API Key Management'; + $return_set['icon'] = 'icon-download-alt'; } /** diff --git a/code/web/private_php/ams/plugins/Achievements/Achievements.php b/code/web/private_php/ams/plugins/Achievements/Achievements.php index 79c117893..13404598b 100644 --- a/code/web/private_php/ams/plugins/Achievements/Achievements.php +++ b/code/web/private_php/ams/plugins/Achievements/Achievements.php @@ -17,7 +17,7 @@ // Global variable to store the data which is // returned to the templates -$return_set = array(); +$achievements_return_set = array(); // Local variable to store data during // functionalities of the hooks @@ -28,9 +28,10 @@ $var_set = array(); */ function achievements_hook_display() { - global $return_set; + global $achievements_return_set; // to display plugin name in menu bar - $return_set['menu_display'] = 'Achievements'; + $achievements_return_set['menu_display'] = 'Achievements'; + $achievements_return_set['icon'] = 'icon-certificate'; } /** @@ -97,7 +98,7 @@ function hook_get_player_stat( $data ) */ function hook_variable_set() { - global $return_set; + global $achievements_return_set; global $var_set; if ( isset( $_POST['Character'] ) && !empty( $_POST['Character'] ) ) { @@ -132,7 +133,7 @@ function hook_variable_set() } else { - $return_set['no_char'] = "Please Generate key for a character before requesting for achievements"; + $achievements_return_set['no_char'] = "Please Generate key for a character before requesting for achievements"; } } @@ -146,13 +147,13 @@ function hook_variable_set() * appkey --> app key for authentication * host --> host from which request have been sent * - * @return $return_set global array returns the template data + * @return $achievements_return_set global array returns the template data */ function achievements_hook_call_rest() { // defined the variables global $var_set; - global $return_set; + global $achievements_return_set; if ( isset( $_POST['get_data'] ) ) { @@ -161,7 +162,7 @@ function achievements_hook_call_rest() $rest_api = new Rest_Api(); $ach_data = $rest_api -> request( $var_set['url'], $var_set['app_key'], $var_set['host'], $var_set['items'] ); // here we store the response we get from the server - $return_set['char_achievements'] = $ach_data ; + $achievements_return_set['char_achievements'] = $ach_data ; } } @@ -170,11 +171,11 @@ function achievements_hook_call_rest() * the content to use in the smarty templates extracted from * the database * - * @return $return_set global array returns the template data + * @return $achievements_return_set global array returns the template data */ function achievements_hook_get_db() { - global $return_set; + global $achievements_return_set; if ( isset( $_SESSION['user'] ) ) { @@ -183,7 +184,7 @@ function achievements_hook_get_db() // getting content for selecting characters $sth = $db -> selectWithParameter( 'UserCharacter', 'ams_api_keys', array( 'User' => $_SESSION['user'] ) , 'User = :User' ); $row = $sth -> fetch(); - $return_set['Character'] = $row; + $achievements_return_set['Character'] = $row; } } @@ -191,10 +192,10 @@ function achievements_hook_get_db() * Global Hook to return global variables which contains * the content to use in the smarty templates * - * @return $return_set global array returns the template data + * @return $achievements_return_set global array returns the template data */ function achievements_hook_return_global() { - global $return_set; - return $return_set; + global $achievements_return_set; + return $achievements_return_set; } diff --git a/code/web/private_php/ams/plugins/Achievements/templates/index.tpl b/code/web/private_php/ams/plugins/Achievements/templates/index.tpl index b88b5730a..be0306fe1 100644 --- a/code/web/private_php/ams/plugins/Achievements/templates/index.tpl +++ b/code/web/private_php/ams/plugins/Achievements/templates/index.tpl @@ -1,5 +1,4 @@ {block name=content} - {if isset($smarty.get.plugin_action) and $smarty.get.plugin_action eq 'get_achievements'}
diff --git a/code/web/private_php/ams/plugins/Domain_Management/.info b/code/web/private_php/ams/plugins/Domain_Management/.info new file mode 100644 index 000000000..502846e4f --- /dev/null +++ b/code/web/private_php/ams/plugins/Domain_Management/.info @@ -0,0 +1,8 @@ +PluginName = Domain_Management +Description = Plug-in for Domain Management. +Version = 1.0.0 +TemplatePath = ../../../private_php/ams/plugins/Domain_Management/templates/index.tpl +Type = Manual + + + diff --git a/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php b/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php new file mode 100644 index 000000000..359c9289e --- /dev/null +++ b/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php @@ -0,0 +1,205 @@ + select( 'ams_api_keys', $data , 'User = :User AND UserCharacter = :UserCharacter' ); + $row = $sth -> fetchAll(); + return $row; + } + +/** + * Local Hook to get database content + * which is called by the global hook + * by passing a parameter + * + * This hook returns the id of the character + * whose achivements we have to get + * + * @param $data array with respective information + * @return $row extracted db content wrt $data + */ +function domain_management_get_char_id( $data ) + { + // returns the character id with respect to the character name in the ring_tool->characters + $db = new DBLayer( 'ring' ); + $sth = $db -> selectWithParameter( 'char_id', 'characters' , array( 'char_name' => $data ), 'char_name=:char_name' ); + $row = $sth -> fetch(); + return $row['char_id']; + } + +/** + * Local Hook to get database content + * which is called by the global hook + * by passing a parameter + * + * Hook to get the player stats of the character + * + * @param $data array with respective information + * @return $row extracted db content wrt $data + */ +function domain_management_get_player_stat( $data ) + { + // returns the character id with respect to the character name in the ring_tool->characters + $db = new DBLayer( 'webig' ); + $sth = $db -> select( 'players' , array( 'name' => $data ), 'name=:name' ); + $row = $sth -> fetch(); + return $row; + } + +/** + * Local Hook to set variables which contains + * the content to use during the plugin functionality. + */ +function domain_management_variable_set() + { + global $domain_management_return_set; + global $var_set; + if ( isset( $_POST['Character'] ) && !empty( $_POST['Character'] ) ) + { + $var_set['character'] = $_POST['Character']; + + // get char id from ring_open table + if ( $var_set['character'] != 'All Characters' ) + { + $var_set['char_id'] = domain_management_get_char_id( $var_set['character'] ); + + } + + // get db content for variable set + $row = domain_management_get_db_content( array( 'User' => $_SESSION['user'], 'UserCharacter' => $var_set['character'] ) ); + + // access key automatically taken from the database wrt user and character + @$var_set['app_key'] = $row['AccessToken']; + + // here you can set the host where this plugin is set + $var_set['host'] = 'localhost'; + + // here we get the stats of the character + $ref_set = domain_management_get_player_stat( $var_set['character'] ); + + // here we have set items that are required to get the achivements + // these are player stats from webig->players table + @$var_set['items'] = json_encode( array( 'dev_shard' => $ref_set['dev_shard'] , 'name' => $ref_set['name'] , 'cid' => $ref_set['cid'] , 'lang' => 'en' , 'translater_mode' => '', 'last_played_date' => $ref_set['last_login'] ) ); + + // url where we have to make request for domain_management + // it sends get parameter search(what to search) and format(in which format data exchange takes place) + $var_set['url'] = 'http://localhost6/?search=domain_management&&format=json'; + } + else + { + $domain_management_return_set['no_char'] = "Please Generate key for a character before requesting for domain_management"; + } + } + +/** + * Global Hook to interact with the REST api + * Pass the variables in the REST object to + * make request + * + * variables REST object expects + * url --> on which request is to be made + * appkey --> app key for authentication + * host --> host from which request have been sent + * + * @return $domain_management_return_set global array returns the template data + */ +function domain_management_hook_call_rest() + { + + global $domain_management_return_set; + global $WEBPATH; + + $domain_management_return_set['path'] = $WEBPATH; + + } + +/** + * Global Hook to return global variables which contains + * the content to use in the smarty templates extracted from + * the database + * + * @return $domain_management_return_set global array returns the template data + */ +function domain_management_hook_get_db() + { + global $domain_management_return_set; + + $db = new DBLayer( 'shard' ); + + //get all domains + $statement = $db->executeWithoutParams("SELECT * FROM domain"); + $rows = $statement->fetchAll(); + $domain_management_return_set['domains'] = $rows; + + if (isset($_GET['edit_domain'])){ + //get permissions + $statement = $db->executeWithoutParams("SELECT * FROM `permission` WHERE `ClientApplication` = '".$rows[$_GET['edit_domain']-1]['domain_name']."'"); + $rows = $statement->fetchAll(); + $domain_management_return_set['permissions'] = $rows; + + //get all users + $pagination = new Pagination(WebUsers::getAllUsersQuery(),"web",10,"WebUsers"); + $domain_management_return_set['userlist'] = Gui_Elements::make_table($pagination->getElements() , Array("getUId","getUsername","getEmail"), Array("id","username","email")); + + } + + return $rows; + } + +/** + * Global Hook to return global variables which contains + * the content to use in the smarty templates + * + * @return $domain_management_return_set global array returns the template data + */ +function domain_management_hook_return_global() + { + global $domain_management_return_set; + return $domain_management_return_set; + } diff --git a/code/web/private_php/ams/plugins/Domain_Management/templates/index.tpl b/code/web/private_php/ams/plugins/Domain_Management/templates/index.tpl new file mode 100644 index 000000000..d49edc89e --- /dev/null +++ b/code/web/private_php/ams/plugins/Domain_Management/templates/index.tpl @@ -0,0 +1,209 @@ +{block name=content} + +{if isset($smarty.get.edit_domain)} +
+
+
+
+

{$hook_info['Domain_Management']['domains'][$smarty.get.edit_domain-1]['domain_name']}

+
+
+
+ Users with permissions in domain + + + + + + + + + + + {foreach from=$hook_info['Domain_Management']['userlist'] item=element} + + + + + + + {/foreach} + +
User IDUsernamePermissions
{$element.id}{$element.username}{$hook_info['Domain_Management']['permissions'][{$element.id}-1]['AccessPrivilege']} + +
+
+
+
+
+ +
+
+
+

Modify Domain Settings

+
+
+
+ +
+ + Domain Settings of '{$hook_info['Domain_Management']['domains'][$smarty.get.edit_domain-1]['domain_name']}' + +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+
+ +
+
+
+ +
+ +
+ +
+
+ + {if isset($RESULT_OF_MODIFYING) and $RESULT_OF_MODIFYING eq "SUCCESS"} +
+ {$modify_mail_of_group_success} +
+ {/if} + +
+
+
+
+
+ +
+{else} + + + + + + + + + + + + {foreach from=$hook_info['Domain_Management']['domains'] item=array} + + + + + + + + {/foreach} + +
Domain IDDomain NameStatusPatch VersionDescription
{$array['domain_id']}{$array['domain_name']}{$array['status']}{$array['patch_version']}{$array['description']|truncate}
+{/if} +{/block} diff --git a/code/web/private_php/setup/sql/nel_ams_lib_00003.sql b/code/web/private_php/setup/sql/nel_ams_lib_00003.sql new file mode 100644 index 000000000..e82a013ed --- /dev/null +++ b/code/web/private_php/setup/sql/nel_ams_lib_00003.sql @@ -0,0 +1,28 @@ +-- phpMyAdmin SQL Dump +-- version 4.2.8 +-- http://www.phpmyadmin.net +-- +-- Host: localhost +-- Generation Time: Sep 04, 2014 at 09:28 PM +-- Server version: 5.6.17 +-- PHP Version: 5.5.12 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; + +-- +-- Dumping data for table `plugins` +-- + +INSERT INTO `plugins` (`Id`, `FileName`, `Name`, `Type`, `Owner`, `Permission`, `Status`, `Weight`, `Info`) VALUES +(3, 'Domain_Management', 'Domain_Management', 'Manual', '', 'admin', 1, 0, '{"PluginName":"Domain Management","Description":"Plug-in for Domain Management.","Version":"1.0.0","TemplatePath":"..\\/..\\/..\\/private_php\\/ams\\/plugins\\/Domain_Management\\/templates\\/index.tpl","Type":"Manual","":null}'); + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/code/web/public_php/ams/templates/layout_admin.tpl b/code/web/public_php/ams/templates/layout_admin.tpl index 54307b5bc..be6bd0765 100644 --- a/code/web/public_php/ams/templates/layout_admin.tpl +++ b/code/web/public_php/ams/templates/layout_admin.tpl @@ -4,11 +4,12 @@
  • Dashboard
  • Profile
  • Settings
  • - {if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}
  • {$element.menu_display}
  • {/foreach}{/if} + {if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}{if isset($element['menu_display'])}
  • {$element['menu_display']}
  • {/if}{/foreach}{/if}
  • Users
  • Queues
  • Support Groups
  • + {if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}{if isset($element.admin_menu_display)}
  • {$element.admin_menu_display}
  • {/if}{/foreach}{/if}
  • Plugins
  • Syncing
  • diff --git a/code/web/public_php/ams/templates/layout_mod.tpl b/code/web/public_php/ams/templates/layout_mod.tpl index e4fbdcc69..63b992d3f 100644 --- a/code/web/public_php/ams/templates/layout_mod.tpl +++ b/code/web/public_php/ams/templates/layout_mod.tpl @@ -4,7 +4,7 @@
  • Dashboard
  • Profile
  • Settings
  • - {if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}
  • {$element.menu_display}
  • {/foreach}{/if} + {if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}{if isset($element.menu_display)}
  • {$element.menu_display}
  • {/if]{/foreach}{/if}
  • Users
  • Queues
  • diff --git a/code/web/public_php/ams/templates/layout_user.tpl b/code/web/public_php/ams/templates/layout_user.tpl index e70b7c164..800058bfa 100644 --- a/code/web/public_php/ams/templates/layout_user.tpl +++ b/code/web/public_php/ams/templates/layout_user.tpl @@ -3,7 +3,7 @@
  • Profile
  • Settings
  • - {if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}
  • {$element.menu_display}
  • {/foreach}{/if} + {if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}
  • {$element.menu_display}
  • {/foreach}{/if}
  • Create New Ticket
  • Logout