added initial domain_management plugin, also fixed potental conflicting hook names
This commit is contained in:
parent
43a74cad87
commit
fa75065609
7 changed files with 274 additions and 3 deletions
|
@ -261,8 +261,13 @@ class Plugincache {
|
||||||
$arr = get_defined_functions();
|
$arr = get_defined_functions();
|
||||||
|
|
||||||
foreach ($arr['user'] as $key => $value) {
|
foreach ($arr['user'] as $key => $value) {
|
||||||
if (stristr( $value, $plugin_name) == true) {
|
switch (strtolower($value)) {
|
||||||
$content['hook_info'][$plugin_name] = call_user_func($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
|
// path for the template
|
||||||
|
|
|
@ -27,6 +27,7 @@ function api_key_management_hook_display()
|
||||||
global $return_set;
|
global $return_set;
|
||||||
// to display plugin name in menu bar
|
// to display plugin name in menu bar
|
||||||
$return_set['menu_display'] = 'API Key Management';
|
$return_set['menu_display'] = 'API Key Management';
|
||||||
|
$return_set['icon'] = 'icon-download-alt';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -31,6 +31,7 @@ function achievements_hook_display()
|
||||||
global $return_set;
|
global $return_set;
|
||||||
// to display plugin name in menu bar
|
// to display plugin name in menu bar
|
||||||
$return_set['menu_display'] = 'Achievements';
|
$return_set['menu_display'] = 'Achievements';
|
||||||
|
$return_set['icon'] = 'icon-certificate';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
8
code/web/private_php/ams/plugins/Domain_Management/.info
Normal file
8
code/web/private_php/ams/plugins/Domain_Management/.info
Normal file
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,201 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global and Local Hooks for the Domain_Management plugin
|
||||||
|
* Global Hooks are defined with the prefix(name of the plugin)
|
||||||
|
* Local Hooks are defined with normal function name
|
||||||
|
*
|
||||||
|
* All the Global Hooks are called during the page load
|
||||||
|
* and Local Hooks are called according to conditions
|
||||||
|
*
|
||||||
|
* Here, we request to the Domain_Management url using REST
|
||||||
|
* to get the contents and will display with this plugin.
|
||||||
|
*
|
||||||
|
* @author shubham meena mentored by Matthew Lagoe
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// Global variable to store the data which is
|
||||||
|
// returned to the templates
|
||||||
|
$return_set = array();
|
||||||
|
|
||||||
|
// Local variable to store data during
|
||||||
|
// functionalities of the hooks
|
||||||
|
$var_set = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display hook for Domain_Management plugin
|
||||||
|
*/
|
||||||
|
function domain_management_hook_display()
|
||||||
|
{
|
||||||
|
global $return_set;
|
||||||
|
// to display plugin name in menu bar
|
||||||
|
$return_set['admin_menu_display'] = 'Domain Management';
|
||||||
|
$return_set['icon'] = 'icon-edit';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Local Hook to get database content
|
||||||
|
* which is called by the global hook
|
||||||
|
* by passing a parameter
|
||||||
|
*
|
||||||
|
* This hook returns the api keys registerd with
|
||||||
|
* the logged in user
|
||||||
|
*
|
||||||
|
* @param $data array with respective information
|
||||||
|
* @return $row extracted db content wrt $data
|
||||||
|
*/
|
||||||
|
function domain_management_get_db_content( $data )
|
||||||
|
{
|
||||||
|
$db = new DBLayer( 'lib' );
|
||||||
|
$sth = $db -> 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 $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
|
||||||
|
{
|
||||||
|
$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 $return_set global array returns the template data
|
||||||
|
*/
|
||||||
|
function domain_management_hook_call_rest()
|
||||||
|
{
|
||||||
|
// defined the variables
|
||||||
|
global $var_set;
|
||||||
|
global $return_set;
|
||||||
|
|
||||||
|
if ( isset( $_POST['get_data'] ) )
|
||||||
|
{
|
||||||
|
domain_management_variable_set();
|
||||||
|
// here we make the REST connection
|
||||||
|
$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_domain_management'] = $ach_data ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global Hook to return global variables which contains
|
||||||
|
* the content to use in the smarty templates extracted from
|
||||||
|
* the database
|
||||||
|
*
|
||||||
|
* @return $return_set global array returns the template data
|
||||||
|
*/
|
||||||
|
function domain_management_hook_get_db()
|
||||||
|
{
|
||||||
|
global $return_set;
|
||||||
|
|
||||||
|
if ( isset( $_SESSION['user'] ) )
|
||||||
|
{
|
||||||
|
$db = new DBLayer( 'lib' );
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
function domain_management_hook_return_global()
|
||||||
|
{
|
||||||
|
global $return_set;
|
||||||
|
return $return_set;
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
{block name=content}
|
||||||
|
|
||||||
|
{if isset($smarty.get.plugin_action) and $smarty.get.plugin_action eq 'get_domain_management'}
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="box col-md-12">
|
||||||
|
<div class="box-inner">
|
||||||
|
<div class="box-header well" data-original-title>
|
||||||
|
<h2><i class="icon-user"></i> Domain_Management</h2>
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
{if isset($hook_info.Domain_Management.no_char)}<div class="alert alert-error"><p>{$hook_info.Domain_Management.no_char}</p></div>{/if}
|
||||||
|
<div class="row-fluid">
|
||||||
|
{$hook_info.Domain_Management.char_domain_management}
|
||||||
|
</div>
|
||||||
|
</div><!--/span-->
|
||||||
|
</div><!--/span-->
|
||||||
|
</div><!--/row-->
|
||||||
|
</div><!--/row-->
|
||||||
|
{else}
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="box col-md-4">
|
||||||
|
<div class="box-inner">
|
||||||
|
<div class="box-header well" data-original-title="">
|
||||||
|
<h2><i class="icon-th"></i> Select your Character</h2>
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
<div class="row-fluid">
|
||||||
|
<form id="generateKey" class="form-vertical" method="post" action="index.php?page=layout_plugin&&name={$arrkey}&&plugin_action=get_domain_management">
|
||||||
|
<div class="control-group">
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label">Character:</label>
|
||||||
|
<div class="controls">
|
||||||
|
<select name="Character">
|
||||||
|
{foreach from=$hook_info.Domain_Management.Character item=element}
|
||||||
|
<option value="{$element}">{$element}</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label"></label>
|
||||||
|
<div class="controls">
|
||||||
|
<button type="submit" name="get_data" value="true" class="btn btn-primary" style="margin-left:5px; margin-top:10px;">Get Domain_Management</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!--/span-->
|
||||||
|
</div><!--/span-->
|
||||||
|
</div><!--/span-->
|
||||||
|
</div><!--/row-->
|
||||||
|
{/if}
|
||||||
|
{/block}
|
|
@ -4,11 +4,12 @@
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php"><i class="icon-home"></i><span class="hidden-tablet"> Dashboard</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php"><i class="icon-home"></i><span class="hidden-tablet"> Dashboard</span></a></li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=show_user"><i class="icon-user"></i><span class="hidden-tablet"> Profile</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=show_user"><i class="icon-user"></i><span class="hidden-tablet"> Profile</span></a></li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=settings"><i class="icon-cog"></i><span class="hidden-tablet"> Settings</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=settings"><i class="icon-cog"></i><span class="hidden-tablet"> Settings</span></a></li>
|
||||||
{if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=layout_plugin&&name={$arrkey}"><i class="icon-th-list"></i><span class="hidden-tablet"> {$element.menu_display}</span></a></li>{/foreach}{/if}
|
{if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}{if isset($element.menu_display)}<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=layout_plugin&&name={$arrkey}"><i class="{$element.icon}"></i><span class="hidden-tablet"> {$element.menu_display}</span></a></li>{/if}{/foreach}{/if}
|
||||||
<li class="nav-header hidden-tablet">Admin</li>
|
<li class="nav-header hidden-tablet">Admin</li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=userlist"><i class="icon-th-list"></i><span class="hidden-tablet"> Users</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=userlist"><i class="icon-th-list"></i><span class="hidden-tablet"> Users</span></a></li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=show_queue&get=todo"><i class="icon-th-list"></i><span class="hidden-tablet"> Queues</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=show_queue&get=todo"><i class="icon-th-list"></i><span class="hidden-tablet"> Queues</span></a></li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=sgroup_list"><i class="icon-briefcase"></i><span class="hidden-tablet"> Support Groups</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=sgroup_list"><i class="icon-briefcase"></i><span class="hidden-tablet"> Support Groups</span></a></li>
|
||||||
|
{if isset($hook_info)} {foreach from=$hook_info key=arrkey item=element}{if isset($element.admin_menu_display)}<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=layout_plugin&&name={$arrkey}"><i class="{$element.icon}"></i><span class="hidden-tablet"> {$element.admin_menu_display}</span></a></li>{/if}{/foreach}{/if}
|
||||||
<li class="nav-header hidden-tablet">Actions</li>
|
<li class="nav-header hidden-tablet">Actions</li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=plugins"><i class="icon-th-list"></i><span class="hidden-tablet"> Plugins</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=plugins"><i class="icon-th-list"></i><span class="hidden-tablet"> Plugins</span></a></li>
|
||||||
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=syncing"><i class="icon-th-list"></i><span class="hidden-tablet"> Syncing</span></a></li>
|
<li style="margin-left: -2px;"><a class="ajax-link" href="index.php?page=syncing"><i class="icon-th-list"></i><span class="hidden-tablet"> Syncing</span></a></li>
|
||||||
|
|
Loading…
Reference in a new issue