mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-14 19:49:55 +00:00
459 lines
16 KiB
PHP
459 lines
16 KiB
PHP
|
<?php
|
||
|
|
||
|
require_once('common.php');
|
||
|
require_once('functions_tool_main.php');
|
||
|
require_once('functions_tool_guild_locator.php');
|
||
|
|
||
|
if (!tool_admin_applications_check('tool_guild_locator')) nt_common_redirect('index.php');
|
||
|
|
||
|
nt_common_add_debug('-- Starting on \'tool_guild_locator.php\'');
|
||
|
|
||
|
$tpl->assign('tool_title', "Guild Locator");
|
||
|
|
||
|
$view_domain_id = nt_auth_get_session_var('view_domain_id');
|
||
|
$view_shard_id = nt_auth_get_session_var('view_shard_id');
|
||
|
|
||
|
if (!$view_domain_id)
|
||
|
{
|
||
|
$view_domain_id = $nel_user['group_default_domain_id'];
|
||
|
$view_shard_id = $nel_user['group_default_shard_id'];
|
||
|
nt_auth_set_session_var('view_domain_id', $view_domain_id);
|
||
|
nt_auth_set_session_var('view_shard_id', $view_shard_id);
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['domain']))
|
||
|
{
|
||
|
if ($view_domain_id != $NELTOOL['GET_VARS']['domain'])
|
||
|
{
|
||
|
$view_domain_id = $NELTOOL['GET_VARS']['domain'];
|
||
|
nt_auth_set_session_var('view_domain_id', $view_domain_id);
|
||
|
|
||
|
$view_shard_id = null;
|
||
|
nt_auth_unset_session_var('view_shard_id');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['shard']))
|
||
|
{
|
||
|
$view_shard_id = $NELTOOL['GET_VARS']['shard'];
|
||
|
nt_auth_set_session_var('view_shard_id', $view_shard_id);
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['refdata']))
|
||
|
{
|
||
|
$tmp_data = unserialize(base64_decode($NELTOOL['GET_VARS']['refdata']));
|
||
|
if (is_array($tmp_data))
|
||
|
{
|
||
|
$NELTOOL['POST_VARS'] = $tmp_data;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$current_refresh_rate = nt_auth_get_session_var('current_refresh_rate');
|
||
|
|
||
|
if (isset($HTTP_POST_VARS['services_refresh']))
|
||
|
{
|
||
|
if ($current_refresh_rate != $HTTP_POST_VARS['services_refresh'])
|
||
|
{
|
||
|
$current_refresh_rate = $HTTP_POST_VARS['services_refresh'];
|
||
|
nt_auth_set_session_var('current_refresh_rate',$current_refresh_rate);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ($current_refresh_rate == null)
|
||
|
{
|
||
|
$current_refresh_rate = 0;
|
||
|
}
|
||
|
elseif ($current_refresh_rate > 0)
|
||
|
{
|
||
|
$tpl->assign('nel_tool_refresh', '<meta http-equiv=refresh content="'. $current_refresh_rate .'">');
|
||
|
}
|
||
|
|
||
|
$tpl->assign('tool_refresh_list', $refresh_rates);
|
||
|
$tpl->assign('tool_refresh_rate', $current_refresh_rate);
|
||
|
|
||
|
$tpl->assign('tool_domain_list', $nel_user['access']['domains']);
|
||
|
$tpl->assign('tool_domain_selected', $view_domain_id);
|
||
|
|
||
|
$tpl->assign('tool_shard_list', $nel_user['access']['shards']);
|
||
|
$tpl->assign('tool_shard_selected', $view_shard_id);
|
||
|
|
||
|
$tool_shard_filters = tool_main_get_shard_ids($view_shard_id);
|
||
|
$tpl->assign('tool_shard_filters', $tool_shard_filters);
|
||
|
|
||
|
if (tool_admin_applications_check('tool_guild_locator_manage_guild')) $tpl->assign('restriction_tool_guild_locator_manage_guild',true);
|
||
|
if (tool_admin_applications_check('tool_guild_locator_manage_members')) $tpl->assign('restriction_tool_guild_locator_manage_members',true);
|
||
|
if (tool_admin_applications_check('tool_guild_locator_manage_forums')) $tpl->assign('restriction_tool_guild_locator_manage_forums',true);
|
||
|
|
||
|
if ($view_domain_id)
|
||
|
{
|
||
|
$tool_as_error = null;
|
||
|
|
||
|
$AS_Name = tool_main_get_domain_name($view_domain_id);
|
||
|
$AS_Host = tool_main_get_domain_host($view_domain_id);
|
||
|
$AS_Port = tool_main_get_domain_port($view_domain_id);
|
||
|
$AS_ShardName = tool_main_get_shard_name($view_shard_id);
|
||
|
$MFS_Web = tool_main_get_domain_data($view_domain_id, 'domain_mfs_web');
|
||
|
|
||
|
$tpl->assign('tool_page_title', 'Guild Locator - '. $AS_Name . ($AS_ShardName != '' ? ' / '. $AS_ShardName : ''));
|
||
|
|
||
|
$tool_as_error = null;
|
||
|
|
||
|
if ($AS_Host && $AS_Port)
|
||
|
{
|
||
|
$adminService = new MyAdminService;
|
||
|
if (@$adminService->connect($AS_Host, $AS_Port, $res) === false)
|
||
|
{
|
||
|
nt_common_add_debug($res);
|
||
|
$tpl->assign('tool_domain_error', $res );
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$tool_services_gl = null;
|
||
|
if (isset($NELTOOL['POST_VARS']['services_gl'])) $tool_services_gl = $NELTOOL['POST_VARS']['services_gl'];
|
||
|
elseif (isset($NELTOOL['GET_VARS']['services_gl'])) $tool_services_gl = $NELTOOL['GET_VARS']['services_gl'];
|
||
|
|
||
|
if ($tool_services_gl)
|
||
|
{
|
||
|
$tpl->assign('tool_post_data', base64_encode(serialize($NELTOOL['POST_VARS'])));
|
||
|
|
||
|
switch ($tool_services_gl)
|
||
|
{
|
||
|
case 'display guilds':
|
||
|
|
||
|
$service_list = tool_main_get_checked_services();
|
||
|
if (sizeof($service_list))
|
||
|
{
|
||
|
$service_command = 'dumpGuildList local';
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". implode(', ',array_values($service_list)));
|
||
|
|
||
|
$tpl->assign('tool_service_select_list', array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
reset($service_list);
|
||
|
foreach($service_list as $service)
|
||
|
{
|
||
|
//nt_common_add_debug("about to run 'displayPlayers' on '$service' ...");
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// the locator displays a nice output, no need for the raw one
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (sizeof($command_return_data))
|
||
|
{
|
||
|
$guild_data = tool_gl_parse_dump_guild_list($command_return_data);
|
||
|
$tpl->assign('tool_guild_data', $guild_data);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 'update name':
|
||
|
|
||
|
if (($tool_services_gl == 'update name') && tool_admin_applications_check('tool_guild_locator_manage_guild'))
|
||
|
{
|
||
|
$service = $NELTOOL['POST_VARS']['servicealias'];
|
||
|
$guild_shard_id = $NELTOOL['POST_VARS']['guildshardid'];
|
||
|
$guild_id = $NELTOOL['POST_VARS']['guildid'];
|
||
|
$new_guild_name = $NELTOOL['POST_VARS']['new_guild_name'];
|
||
|
|
||
|
$new_guild_name = trim($new_guild_name);
|
||
|
if (ereg("^[a-zA-Z0-9\ ]+$", $new_guild_name))
|
||
|
{
|
||
|
// this is a small hack that was done by daniel so i could use the renameGuild command without an EID
|
||
|
$service_command = 'renameGuild admin_tool '. $guild_shard_id .':'. $guild_id .' "'. $new_guild_name .'"';
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". $service);
|
||
|
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// tool_guild_errors
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$tpl->assign('tool_guild_errors', array('New name contains illegal characters.'));
|
||
|
}
|
||
|
|
||
|
$NELTOOL['GET_VARS']['servicealias'] = $service;
|
||
|
$NELTOOL['GET_VARS']['guildshardid'] = $guild_shard_id;
|
||
|
$NELTOOL['GET_VARS']['guildid'] = $guild_id;
|
||
|
}
|
||
|
|
||
|
case 'update description':
|
||
|
|
||
|
if (($tool_services_gl == 'update description') && tool_admin_applications_check('tool_guild_locator_manage_guild'))
|
||
|
{
|
||
|
$service = $NELTOOL['POST_VARS']['servicealias'];
|
||
|
$guild_shard_id = $NELTOOL['POST_VARS']['guildshardid'];
|
||
|
$guild_id = $NELTOOL['POST_VARS']['guildid'];
|
||
|
$new_guild_desc = $NELTOOL['POST_VARS']['new_guild_description'];
|
||
|
|
||
|
$new_guild_desc = trim($new_guild_desc);
|
||
|
if (ereg("^[a-zA-Z0-9\ ]+$", $new_guild_desc))
|
||
|
{
|
||
|
$service_command = 'setGuildDescription '. $guild_shard_id .':'. $guild_id .' "'. $new_guild_desc .'"';
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". $service);
|
||
|
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// tool_guild_errors
|
||
|
}
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$tpl->assign('tool_guild_errors', array('New description contains illegal characters.'));
|
||
|
}
|
||
|
|
||
|
$NELTOOL['GET_VARS']['servicealias'] = $service;
|
||
|
$NELTOOL['GET_VARS']['guildshardid'] = $guild_shard_id;
|
||
|
$NELTOOL['GET_VARS']['guildid'] = $guild_id;
|
||
|
}
|
||
|
|
||
|
case 'setleader':
|
||
|
|
||
|
if (($tool_services_gl == 'setleader') && tool_admin_applications_check('tool_guild_locator_manage_members'))
|
||
|
{
|
||
|
$service = $NELTOOL['GET_VARS']['servicealias'];
|
||
|
$guild_shard_id = $NELTOOL['GET_VARS']['guildshardid'];
|
||
|
$guild_id = $NELTOOL['GET_VARS']['guildid'];
|
||
|
$member_eid = $NELTOOL['GET_VARS']['eid'];
|
||
|
|
||
|
// guildSetLeader <guildName|<shardId>:<guildId> <member eid>
|
||
|
|
||
|
$service_command = 'guildSetLeader '. $guild_shard_id .':'. $guild_id .' '. $member_eid;
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". $service);
|
||
|
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// the locator displays a nice output, no need for the raw one
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
$tpl->assign('tool_guild_errors', tool_gl_parse_grade_change($command_return_data));
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
case 'promote':
|
||
|
|
||
|
if (($tool_services_gl == 'promote') && tool_admin_applications_check('tool_guild_locator_manage_members'))
|
||
|
{
|
||
|
$service = $NELTOOL['GET_VARS']['servicealias'];
|
||
|
$guild_shard_id = $NELTOOL['GET_VARS']['guildshardid'];
|
||
|
$guild_id = $NELTOOL['GET_VARS']['guildid'];
|
||
|
$member_eid = $NELTOOL['GET_VARS']['eid'];
|
||
|
$member_grade = $NELTOOL['GET_VARS']['grade'];
|
||
|
|
||
|
$new_grade = 'Member';
|
||
|
if ($member_grade == 'Officer') $new_grade = 'Officer';
|
||
|
elseif ($member_grade == 'HighOfficer') $new_grade = 'HighOfficer';
|
||
|
|
||
|
// guildSetGrade <guildName|<shardId>:<guildId> <member eid> <grade = Member/Officer/HighOfficer/Leader>
|
||
|
|
||
|
$service_command = 'guildSetGrade '. $guild_shard_id .':'. $guild_id .' '. $member_eid .' '. $new_grade;
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". $service);
|
||
|
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// the locator displays a nice output, no need for the raw one
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
$tpl->assign('tool_guild_errors', tool_gl_parse_grade_change($command_return_data));
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
case 'demote':
|
||
|
|
||
|
if (($tool_services_gl == 'demote') && tool_admin_applications_check('tool_guild_locator_manage_members'))
|
||
|
{
|
||
|
$service = $NELTOOL['GET_VARS']['servicealias'];
|
||
|
$guild_shard_id = $NELTOOL['GET_VARS']['guildshardid'];
|
||
|
$guild_id = $NELTOOL['GET_VARS']['guildid'];
|
||
|
$member_eid = $NELTOOL['GET_VARS']['eid'];
|
||
|
$member_grade = $NELTOOL['GET_VARS']['grade'];
|
||
|
|
||
|
$new_grade = 'Member';
|
||
|
if ($member_grade == 'Officer') $new_grade = 'Officer';
|
||
|
elseif ($member_grade == 'Member') $new_grade = 'Member';
|
||
|
|
||
|
// guildSetGrade <guildName|<shardId>:<guildId> <member eid> <grade = Member/Officer/HighOfficer/Leader>
|
||
|
|
||
|
$service_command = 'guildSetGrade '. $guild_shard_id .':'. $guild_id .' '. $member_eid .' '. $new_grade;
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". $service);
|
||
|
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// the locator displays a nice output, no need for the raw one
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
$tpl->assign('tool_guild_errors', tool_gl_parse_grade_change($command_return_data));
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
case 'dumpguild':
|
||
|
|
||
|
$service = $NELTOOL['GET_VARS']['servicealias'];
|
||
|
$guild_shard_id = $NELTOOL['GET_VARS']['guildshardid'];
|
||
|
$guild_id = $NELTOOL['GET_VARS']['guildid'];
|
||
|
|
||
|
if (($guild_shard_id > 0) && ($guild_id > 0) && ($service != ''))
|
||
|
{
|
||
|
$service_command = 'dumpGuild '. $guild_shard_id .':'. $guild_id;
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". $service);
|
||
|
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// the locator displays a nice output, no need for the raw one
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
}
|
||
|
|
||
|
if (sizeof($command_return_data))
|
||
|
{
|
||
|
$tool_sub_services_gl = null;
|
||
|
if (isset($NELTOOL['POST_VARS']['subservices_gl'])) $tool_sub_services_gl = $NELTOOL['POST_VARS']['subservices_gl'];
|
||
|
elseif (isset($NELTOOL['GET_VARS']['subservices_gl'])) $tool_sub_services_gl = $NELTOOL['GET_VARS']['subservices_gl'];
|
||
|
|
||
|
$guild_dump_data = tool_gl_parse_dump_guild($command_return_data);
|
||
|
$tpl->assign('tool_guild_dump_data', $guild_dump_data);
|
||
|
$tpl->assign('tool_service', $service);
|
||
|
|
||
|
// view ingame guild forums
|
||
|
if (tool_admin_applications_check('tool_guild_locator_manage_forums'))
|
||
|
{
|
||
|
if ($tool_sub_services_gl)
|
||
|
{
|
||
|
switch ($tool_sub_services_gl)
|
||
|
{
|
||
|
case 'viewthread':
|
||
|
|
||
|
$view_forum_threadid = $NELTOOL['GET_VARS']['threadid'];
|
||
|
$view_forum_recoverable = $NELTOOL['GET_VARS']['recoverable'];
|
||
|
|
||
|
$thread_name = ($view_forum_recoverable == 1 ? '_':'') .'thread_'. $view_forum_threadid .'.index';
|
||
|
|
||
|
$view_thread_data_raw = tool_gl_view_forum($MFS_Web, $guild_shard_id, $guild_dump_data['guild_name'], $thread_name);
|
||
|
$view_thread_data = tool_gl_parse_thread_view($view_thread_data_raw);
|
||
|
$tpl->assign('tool_guild_thread', $view_thread_data);
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 'recoverthread':
|
||
|
|
||
|
$recover_forum_threadid = $NELTOOL['GET_VARS']['threadid'];
|
||
|
|
||
|
$thread_name = '_thread_'. $recover_forum_threadid .'.index';
|
||
|
tool_gl_view_forum($MFS_Web, $guild_shard_id, $guild_dump_data['guild_name'], $recover_forum_threadid, true);
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$view_forum_data_raw = tool_gl_view_forum($MFS_Web, $guild_shard_id, $guild_dump_data['guild_name']);
|
||
|
$view_forum_data = tool_gl_parse_forum_view($view_forum_data_raw);
|
||
|
|
||
|
if (is_array($view_forum_data)) $tpl->assign('tool_guild_forums', $view_forum_data);
|
||
|
else $tpl->assign('tool_guild_forums_error', $view_forum_data);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['eid']))
|
||
|
{
|
||
|
$locate_eid = $NELTOOL['GET_VARS']['eid'];
|
||
|
|
||
|
}
|
||
|
|
||
|
$status = $adminService->getStates();
|
||
|
nt_common_add_debug($status);
|
||
|
|
||
|
$domainServices = tool_main_parse_status($status);
|
||
|
|
||
|
$filteredServices = array();
|
||
|
reset($domainServices);
|
||
|
foreach($domainServices as $aKey => $aService)
|
||
|
{
|
||
|
// we are only interested in EGS
|
||
|
if ($aService['ShortName'] == 'EGS')
|
||
|
{
|
||
|
$filteredServices[] = $aService;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl->assign('tool_services_list', $filteredServices);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl->display('tool_guild_locator.tpl');
|
||
|
|
||
|
?>
|