mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-26 09:19:22 +02:00
* reverted removing base href in html head
* added anonymous usage statistics reporting * (fix) don't show templates that doesn't exist in Menus option in Admin Panel * (fix) menu ordering by category * (fix) showing changelog with urls in Admin Panel * (internal) moved uninstall logic to Plugins class
This commit is contained in:
parent
ac9c43e280
commit
9aa4e308c1
@ -228,6 +228,7 @@ $config = array(
|
|||||||
'status_port' => '',
|
'status_port' => '',
|
||||||
|
|
||||||
// other
|
// other
|
||||||
|
'anonymous_usage_statistics' => false,
|
||||||
'email_lai_sec_interval' => 60, // time in seconds between e-mails to one account from lost account interface, block spam
|
'email_lai_sec_interval' => 60, // time in seconds between e-mails to one account from lost account interface, block spam
|
||||||
'google_analytics_id' => '', // e.g.: UA-XXXXXXX-X
|
'google_analytics_id' => '', // e.g.: UA-XXXXXXX-X
|
||||||
'experiencetable_columns' => 5, // how many columns to display in experience table page. * experiencetable_rows, 5 = 500 (will show up to 500 level)
|
'experiencetable_columns' => 5, // how many columns to display in experience table page. * experiencetable_rows, 5 = 500 (will show up to 500 level)
|
||||||
|
71
index.php
71
index.php
@ -30,20 +30,7 @@
|
|||||||
// ini_set('display_startup_errors', 1);
|
// ini_set('display_startup_errors', 1);
|
||||||
// error_reporting(E_ALL);
|
// error_reporting(E_ALL);
|
||||||
|
|
||||||
if(preg_match("/^(.*)\.(gif|jpg|jpeg|tiff|bmp|css|js|less|map|html|php|zip|rar|gz)$/i", $_SERVER['REQUEST_URI'])) {
|
|
||||||
header("HTTP/1.0 404 Not Found");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
require_once('common.php');
|
require_once('common.php');
|
||||||
require_once(BASE . 'config.local.php');
|
|
||||||
|
|
||||||
if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed']))
|
|
||||||
{
|
|
||||||
header('Location: ' . BASE_URL . 'install/');
|
|
||||||
die('Setup detected that <b>install/</b> directory exists. Please visit <a href="' . BASE_URL . 'install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
|
|
||||||
}
|
|
||||||
|
|
||||||
require_once(SYSTEM . 'functions.php');
|
require_once(SYSTEM . 'functions.php');
|
||||||
|
|
||||||
$uri = $_SERVER['REQUEST_URI'];
|
$uri = $_SERVER['REQUEST_URI'];
|
||||||
@ -57,12 +44,7 @@ else
|
|||||||
$uri = str_replace(array('index.php/', '?'), '', $uri);
|
$uri = str_replace(array('index.php/', '?'), '', $uri);
|
||||||
define('URI', $uri);
|
define('URI', $uri);
|
||||||
|
|
||||||
$found = false;
|
if(preg_match("/^[A-Za-z0-9-_%\'+]+\.png$/i", $uri)) {
|
||||||
if(empty($uri) || isset($_REQUEST['template'])) {
|
|
||||||
$_REQUEST['p'] = 'news';
|
|
||||||
$found = true;
|
|
||||||
}
|
|
||||||
else if(preg_match("/^[A-Za-z0-9-_%\'+]+\.png$/i", $uri)) {
|
|
||||||
$tmp = explode('.', $uri);
|
$tmp = explode('.', $uri);
|
||||||
$_REQUEST['name'] = urldecode($tmp[0]);
|
$_REQUEST['name'] = urldecode($tmp[0]);
|
||||||
|
|
||||||
@ -70,6 +52,23 @@ else if(preg_match("/^[A-Za-z0-9-_%\'+]+\.png$/i", $uri)) {
|
|||||||
include(TOOLS . 'signature/index.php');
|
include(TOOLS . 'signature/index.php');
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
else if(preg_match("/^(.*)\.(gif|jpg|png|jpeg|tiff|bmp|css|js|less|map|html|php|zip|rar|gz)$/i", $_SERVER['REQUEST_URI'])) {
|
||||||
|
header("HTTP/1.0 404 Not Found");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once(BASE . 'config.local.php');
|
||||||
|
if(file_exists(BASE . 'install') && (!isset($config['installed']) || !$config['installed']))
|
||||||
|
{
|
||||||
|
header('Location: ' . BASE_URL . 'install/');
|
||||||
|
die('Setup detected that <b>install/</b> directory exists. Please visit <a href="' . BASE_URL . 'install">this</a> url to start MyAAC Installation.<br/>Delete <b>install/</b> directory if you already installed MyAAC.<br/>Remember to REFRESH this page when you\'re done!');
|
||||||
|
}
|
||||||
|
|
||||||
|
$found = false;
|
||||||
|
if(empty($uri) || isset($_REQUEST['template'])) {
|
||||||
|
$_REQUEST['p'] = 'news';
|
||||||
|
$found = true;
|
||||||
|
}
|
||||||
else if(!preg_match('/[^A-z0-9_\-]/', $uri) && file_exists(SYSTEM . 'pages/' . $uri . '.php')) {
|
else if(!preg_match('/[^A-z0-9_\-]/', $uri) && file_exists(SYSTEM . 'pages/' . $uri . '.php')) {
|
||||||
$_REQUEST['p'] = $uri;
|
$_REQUEST['p'] = $uri;
|
||||||
$found = true;
|
$found = true;
|
||||||
@ -193,6 +192,40 @@ $hooks = new Hooks();
|
|||||||
$hooks->load();
|
$hooks->load();
|
||||||
$hooks->trigger(HOOK_STARTUP);
|
$hooks->trigger(HOOK_STARTUP);
|
||||||
|
|
||||||
|
// anonymous usage statistics
|
||||||
|
// sent only when user agrees
|
||||||
|
if(isset($config['anonymous_usage_statistics']) && $config['anonymous_usage_statistics']) {
|
||||||
|
$report_time = 30 * 24 * 60 * 60; // report one time per 30 days
|
||||||
|
$should_report = true;
|
||||||
|
|
||||||
|
$value = '';
|
||||||
|
if($cache->enabled() && $cache->fetch('last_usage_report', $value)) {
|
||||||
|
$should_report = time() > (int)$value + $report_time;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$value = '';
|
||||||
|
if(fetchDatabaseConfig('last_usage_report', $value)) {
|
||||||
|
$should_report = time() > (int)$value + $report_time;
|
||||||
|
if($cache->enabled()) {
|
||||||
|
$cache->set('last_usage_report', $value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
registerDatabaseConfig('last_usage_report', time());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($should_report) {
|
||||||
|
require_once(LIBS . 'usage_statistics.php');
|
||||||
|
Usage_Statistics::report();
|
||||||
|
|
||||||
|
updateDatabaseConfig('last_usage_report', time());
|
||||||
|
if($cache->enabled()) {
|
||||||
|
$cache->set('last_usage_report', time());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($config['views_counter'])
|
if($config['views_counter'])
|
||||||
require_once(SYSTEM . 'counter.php');
|
require_once(SYSTEM . 'counter.php');
|
||||||
|
|
||||||
|
@ -23,7 +23,11 @@ if(!$error) {
|
|||||||
$value .= "/";
|
$value .= "/";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($key != 'var_account' && $key != 'var_account_id' && $key != 'var_password') {
|
if($key == 'var_usage') {
|
||||||
|
$content .= '$config[\'anonymous_usage_statistics\'] = ' . ((int)$value == 1 ? 'true' : 'false') . ';';
|
||||||
|
$content .= PHP_EOL;
|
||||||
|
}
|
||||||
|
else if($key != 'var_account' && $key != 'var_account_id' && $key != 'var_password') {
|
||||||
$content .= '$config[\'' . str_replace('var_', '', $key) . '\'] = \'' . $value . '\';';
|
$content .= '$config[\'' . str_replace('var_', '', $key) . '\'] = \'' . $value . '\';';
|
||||||
$content .= PHP_EOL;
|
$content .= PHP_EOL;
|
||||||
}
|
}
|
||||||
@ -238,6 +242,7 @@ if(!$error) {
|
|||||||
$content .= '// place for your configuration directives, so you can later easily update myaac';
|
$content .= '// place for your configuration directives, so you can later easily update myaac';
|
||||||
$content .= PHP_EOL;
|
$content .= PHP_EOL;
|
||||||
$content .= "?>";
|
$content .= "?>";
|
||||||
|
|
||||||
$file = fopen(BASE . 'config.local.php', 'a+');
|
$file = fopen(BASE . 'config.local.php', 'a+');
|
||||||
if($file) {
|
if($file) {
|
||||||
if(!$error) {
|
if(!$error) {
|
||||||
|
@ -460,6 +460,7 @@ function template_header($is_admin = false)
|
|||||||
<meta http-equiv="content-type" content="text/html; charset=' . $charset . '" />';
|
<meta http-equiv="content-type" content="text/html; charset=' . $charset . '" />';
|
||||||
if(!$is_admin)
|
if(!$is_admin)
|
||||||
$ret .= '
|
$ret .= '
|
||||||
|
<base href="' . BASE_URL . '" />
|
||||||
<title>' . $title_full . '</title>';
|
<title>' . $title_full . '</title>';
|
||||||
|
|
||||||
$ret .= '
|
$ret .= '
|
||||||
@ -983,6 +984,28 @@ function getTopPlayers($limit = 5) {
|
|||||||
return $players;
|
return $players;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deleteDirectory($dir) {
|
||||||
|
if(!file_exists($dir)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!is_dir($dir)) {
|
||||||
|
return unlink($dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach(scandir($dir) as $item) {
|
||||||
|
if($item == '.' || $item == '..') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rmdir($dir);
|
||||||
|
}
|
||||||
|
|
||||||
// validator functions
|
// validator functions
|
||||||
require_once(LIBS . 'validator.php');
|
require_once(LIBS . 'validator.php');
|
||||||
require_once(SYSTEM . 'compat.php');
|
require_once(SYSTEM . 'compat.php');
|
||||||
|
@ -138,6 +138,52 @@ class Plugins {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function uninstall($plugin_name) {
|
||||||
|
global $cache;
|
||||||
|
|
||||||
|
$filename = BASE . 'plugins/' . $plugin_name . '.json';
|
||||||
|
if(!file_exists($filename)) {
|
||||||
|
self::$error = 'Plugin ' . $plugin_name . ' does not exist.';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$string = file_get_contents($filename);
|
||||||
|
$plugin_info = json_decode($string, true);
|
||||||
|
if($plugin_info == false) {
|
||||||
|
self::$error = 'Cannot load plugin info ' . $plugin_name . '.json';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(!isset($plugin_info['uninstall'])) {
|
||||||
|
self::$error = "Plugin doesn't have uninstall options defined. Skipping...";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$success = true;
|
||||||
|
foreach($plugin_info['uninstall'] as $file) {
|
||||||
|
$file = BASE . $file;
|
||||||
|
if(!deleteDirectory($file)) {
|
||||||
|
$success = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($success) {
|
||||||
|
if($cache->enabled()) {
|
||||||
|
$cache->delete('templates');
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self::$error = error_get_last();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static function getWarnings() {
|
public static function getWarnings() {
|
||||||
return self::$warnings;
|
return self::$warnings;
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
|
||||||
class Usage_Statistics {
|
class Usage_Statistics {
|
||||||
private static $report_url = 'http://my-aac.org/report_usage.php';
|
private static $report_url = 'https://my-aac.org/report_usage.php';
|
||||||
|
|
||||||
public static function report() {
|
public static function report() {
|
||||||
$data = json_encode(self::getStats());
|
$data = json_encode(self::getStats());
|
||||||
@ -20,7 +20,6 @@ class Usage_Statistics {
|
|||||||
'http' => array(
|
'http' => array(
|
||||||
'header' => 'Content-type: application/json' . "\r\n"
|
'header' => 'Content-type: application/json' . "\r\n"
|
||||||
. 'Content-Length: ' . strlen($data) . "\r\n",
|
. 'Content-Length: ' . strlen($data) . "\r\n",
|
||||||
'method' => 'POST',
|
|
||||||
'content' => $data
|
'content' => $data
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -28,7 +27,6 @@ class Usage_Statistics {
|
|||||||
$context = stream_context_create($options);
|
$context = stream_context_create($options);
|
||||||
$result = file_get_contents(self::$report_url, false, $context);
|
$result = file_get_contents(self::$report_url, false, $context);
|
||||||
|
|
||||||
//var_dump($result);
|
|
||||||
return $result !== false;
|
return $result !== false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,6 +51,8 @@ $locale['step_config_mail_address_desc'] = 'Address which will be used for outgo
|
|||||||
$locale['step_config_mail_address_error'] = 'Server E-Mail is not correct.';
|
$locale['step_config_mail_address_error'] = 'Server E-Mail is not correct.';
|
||||||
$locale['step_config_client'] = 'Client version';
|
$locale['step_config_client'] = 'Client version';
|
||||||
$locale['step_config_client_desc'] = 'Used for download page and some templates';
|
$locale['step_config_client_desc'] = 'Used for download page and some templates';
|
||||||
|
$locale['step_config_usage'] = 'Usage Statistics';
|
||||||
|
$locale['step_config_usage_desc'] = 'Allow MyAAC to report anonymous usage statistics? The data is sent only once per 30 days and is fully confidential.';
|
||||||
|
|
||||||
// database
|
// database
|
||||||
$locale['step_database'] = 'Import schema';
|
$locale['step_database'] = 'Import schema';
|
||||||
|
@ -17,10 +17,12 @@ if(!file_exists(BASE . 'CHANGELOG')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$changelog = file_get_contents(BASE . 'CHANGELOG');
|
$changelog = file_get_contents(BASE . 'CHANGELOG');
|
||||||
$changelog = nl2br(htmlspecialchars($changelog));
|
$changelog = htmlspecialchars($changelog);
|
||||||
|
|
||||||
// replace URLs with <a href...> elements
|
// replace URLs with <a href...> elements
|
||||||
$changelog = preg_replace('/\s(\w+:\/\/)(\S+)/', ' <a href="\\1\\2" target="_blank">\\1\\2</a>', $changelog);
|
$changelog = preg_replace('/\s(\w+:\/\/)(\S+)/', ' <a href="\\1\\2" target="_blank">\\1\\2</a>', $changelog);
|
||||||
|
|
||||||
|
$changelog = nl2br($changelog);
|
||||||
|
|
||||||
echo '<div>' . $changelog . '</div>';
|
echo '<div>' . $changelog . '</div>';
|
||||||
?>
|
?>
|
||||||
|
@ -29,16 +29,16 @@ if(isset($_REQUEST['template'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$db->query('DELETE FROM `' . TABLE_PREFIX . 'menu` WHERE `template` = ' . $db->quote($template));
|
$db->query('DELETE FROM `' . TABLE_PREFIX . 'menu` WHERE `template` = ' . $db->quote($template));
|
||||||
foreach($post_menu as $id => $menus) {
|
foreach($post_menu as $category => $menus) {
|
||||||
foreach($menus as $i => $menu) {
|
foreach($menus as $i => $menu) {
|
||||||
if(empty($menu)) // don't save empty menu item
|
if(empty($menu)) // don't save empty menu item
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$db->insert(TABLE_PREFIX . 'menu', array('template' => $template, 'name' => $menu, 'link' => $post_menu_link[$id][$i], 'category' => $id, 'ordering' => $i));
|
$db->insert(TABLE_PREFIX . 'menu', array('template' => $template, 'name' => $menu, 'link' => $post_menu_link[$category][$i], 'category' => $category, 'ordering' => $i));
|
||||||
}
|
}
|
||||||
catch(PDOException $error) {
|
catch(PDOException $error) {
|
||||||
warning('Error while adding menu item (' . $name . '): ' . $error->getMessage());
|
warning('Error while adding menu item (' . $menu . '): ' . $error->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -97,6 +97,12 @@ if(isset($_REQUEST['template'])) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$templates = $db->query('SELECT `template` FROM `' . TABLE_PREFIX . 'menu` GROUP BY `template`;')->fetchAll();
|
$templates = $db->query('SELECT `template` FROM `' . TABLE_PREFIX . 'menu` GROUP BY `template`;')->fetchAll();
|
||||||
|
foreach($templates as $key => $value) {
|
||||||
|
$file = TEMPLATES . $value['template'] . '/config.php';
|
||||||
|
if(!file_exists($file)) {
|
||||||
|
unset($templates[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
echo $twig->render('admin.menus.form.html.twig', array(
|
echo $twig->render('admin.menus.form.html.twig', array(
|
||||||
'templates' => $templates
|
'templates' => $templates
|
||||||
|
@ -14,67 +14,16 @@ $title = 'Plugin manager';
|
|||||||
require(SYSTEM . 'hooks.php');
|
require(SYSTEM . 'hooks.php');
|
||||||
require(LIBS . 'plugins.php');
|
require(LIBS . 'plugins.php');
|
||||||
|
|
||||||
function deleteDirectory($dir) {
|
|
||||||
if(!file_exists($dir)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!is_dir($dir)) {
|
|
||||||
return unlink($dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach(scandir($dir) as $item) {
|
|
||||||
if($item == '.' || $item == '..') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return rmdir($dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo $twig->render('admin.plugins.form.html.twig');
|
echo $twig->render('admin.plugins.form.html.twig');
|
||||||
|
|
||||||
if(isset($_REQUEST['uninstall'])){
|
if(isset($_REQUEST['uninstall'])){
|
||||||
$uninstall = $_REQUEST['uninstall'];
|
$uninstall = $_REQUEST['uninstall'];
|
||||||
|
|
||||||
$filename = BASE . 'plugins/' . $uninstall . '.json';
|
if(Plugins::uninstall($uninstall)) {
|
||||||
if(!file_exists($filename)) {
|
success('Successfully uninstalled plugin ' . $uninstall);
|
||||||
error('Plugin ' . $uninstall . ' does not exist.');
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$string = file_get_contents($filename);
|
error('Error while uninstalling plugin ' . $plugin_name . ': ' . Plugins::getError());
|
||||||
$plugin_info = json_decode($string, true);
|
|
||||||
if($plugin_info == false) {
|
|
||||||
error('Cannot load plugin info ' . $uninstall . '.json');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(!isset($plugin_info['uninstall'])) {
|
|
||||||
error("Plugin doesn't have uninstall options defined. Skipping...");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$success = true;
|
|
||||||
foreach($plugin_info['uninstall'] as $file) {
|
|
||||||
$file = BASE . $file;
|
|
||||||
if(!deleteDirectory($file)) {
|
|
||||||
$success = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($success) {
|
|
||||||
if($cache->enabled()) {
|
|
||||||
$cache->delete('templates');
|
|
||||||
}
|
|
||||||
success('Successfully uninstalled plugin ' . $uninstall);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
error('Error while uninstalling plugin ' . $uninstall . ': ' . error_get_last());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(isset($_FILES["plugin"]["name"]))
|
else if(isset($_FILES["plugin"]["name"]))
|
||||||
|
@ -83,7 +83,7 @@ $showed = $post = $reply = false;
|
|||||||
echo '</TABLE>';
|
echo '</TABLE>';
|
||||||
}
|
}
|
||||||
if($bug[2]['status'] != 3)
|
if($bug[2]['status'] != 3)
|
||||||
echo '<br><a href="index.php?subtopic=bugtracker&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].'&reply=true"><b>[REPLY]</b></a>';
|
echo '<br><a href="?subtopic=bugtracker&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].'&reply=true"><b>[REPLY]</b></a>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -112,7 +112,7 @@ $showed = $post = $reply = false;
|
|||||||
$type = 2;
|
$type = 2;
|
||||||
$INSERT = $db->query('INSERT INTO `' . TABLE_PREFIX . 'bugtracker` (`account`,`id`,`text`,`reply`,`type`, `who`) VALUES ('.$db->quote($_REQUEST['acc']).','.$db->quote($_REQUEST['id']).','.$db->quote($_POST['text']).','.$db->quote($reply).','.$db->quote($type).','.$db->quote(1).')');
|
$INSERT = $db->query('INSERT INTO `' . TABLE_PREFIX . 'bugtracker` (`account`,`id`,`text`,`reply`,`type`, `who`) VALUES ('.$db->quote($_REQUEST['acc']).','.$db->quote($_REQUEST['id']).','.$db->quote($_POST['text']).','.$db->quote($reply).','.$db->quote($type).','.$db->quote(1).')');
|
||||||
$UPDATE = $db->query('UPDATE `' . TABLE_PREFIX . 'bugtracker` SET `status` = '.$_POST['status'].' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].'');
|
$UPDATE = $db->query('UPDATE `' . TABLE_PREFIX . 'bugtracker` SET `status` = '.$_POST['status'].' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].'');
|
||||||
header('Location: index.php?subtopic=bugtracker&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].'');
|
header('Location: ?subtopic=bugtracker&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].'');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '<br><form method="post" action=""><table><tr><td><i>Description</i></td><td><textarea name="text" rows="15" cols="35"></textarea></td></tr><tr><td>Status[OPEN]</td><td><input type=radio name=status value=2></td></tr><tr><td>Status[CLOSED]</td><td><input type=radio name=status value=3></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>';
|
echo '<br><form method="post" action=""><table><tr><td><i>Description</i></td><td><textarea name="text" rows="15" cols="35"></textarea></td></tr><tr><td>Status[OPEN]</td><td><input type=radio name=status value=2></td></tr><tr><td>Status[CLOSED]</td><td><input type=radio name=status value=3></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>';
|
||||||
@ -138,7 +138,7 @@ $showed = $post = $reply = false;
|
|||||||
elseif($report['status'] == 1)
|
elseif($report['status'] == 1)
|
||||||
$value = "<font color=blue>[NEW ANSWER]</font>";
|
$value = "<font color=blue>[NEW ANSWER]</font>";
|
||||||
|
|
||||||
echo '<TR BGCOLOR="' . getStyle($i) . '"><td width=75%><a href="index.php?subtopic=bugtracker&control=true&id='.$report['id'].'&acc='.$report['account'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>';
|
echo '<TR BGCOLOR="' . getStyle($i) . '"><td width=75%><a href="?subtopic=bugtracker&control=true&id='.$report['id'].'&acc='.$report['account'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>';
|
||||||
|
|
||||||
$showed=true;
|
$showed=true;
|
||||||
$i++;
|
$i++;
|
||||||
@ -202,7 +202,7 @@ $showed = $post = $reply = false;
|
|||||||
echo '</TABLE>';
|
echo '</TABLE>';
|
||||||
}
|
}
|
||||||
if($bug[2]['status'] != 3)
|
if($bug[2]['status'] != 3)
|
||||||
echo '<br><a href="index.php?subtopic=bugtracker&id='.$id.'&reply=true"><b>[REPLY]</b></a>';
|
echo '<br><a href="?subtopic=bugtracker&id='.$id.'&reply=true"><b>[REPLY]</b></a>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -231,7 +231,7 @@ $showed = $post = $reply = false;
|
|||||||
$type = 2;
|
$type = 2;
|
||||||
$INSERT = $db->query('INSERT INTO `myaac_bugtracker` (`account`,`id`,`text`,`reply`,`type`) VALUES ('.$db->quote($acc).','.$db->quote($id).','.$db->quote($_POST['text']).','.$db->quote($reply).','.$db->quote($type).')');
|
$INSERT = $db->query('INSERT INTO `myaac_bugtracker` (`account`,`id`,`text`,`reply`,`type`) VALUES ('.$db->quote($acc).','.$db->quote($id).','.$db->quote($_POST['text']).','.$db->quote($reply).','.$db->quote($type).')');
|
||||||
$UPDATE = $db->query('UPDATE `myaac_bugtracker` SET `status` = 1 where `account` = '.$acc.' and `id` = '.$id.'');
|
$UPDATE = $db->query('UPDATE `myaac_bugtracker` SET `status` = 1 where `account` = '.$acc.' and `id` = '.$id.'');
|
||||||
header('Location: index.php?subtopic=bugtracker&id='.$id.'');
|
header('Location: ?subtopic=bugtracker&id='.$id.'');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo '<br><form method="post" action=""><table><tr><td><i>Description</i></td><td><textarea name="text" rows="15" cols="35"></textarea></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>';
|
echo '<br><form method="post" action=""><table><tr><td><i>Description</i></td><td><textarea name="text" rows="15" cols="35"></textarea></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>';
|
||||||
@ -275,7 +275,7 @@ $showed = $post = $reply = false;
|
|||||||
$bgcolor = $light;
|
$bgcolor = $light;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<TR BGCOLOR="'.$bgcolor.'"><td width=75%><a href="index.php?subtopic=bugtracker&id='.$report['id'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>';
|
echo '<TR BGCOLOR="'.$bgcolor.'"><td width=75%><a href="?subtopic=bugtracker&id='.$report['id'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>';
|
||||||
|
|
||||||
$showed=true;
|
$showed=true;
|
||||||
}
|
}
|
||||||
@ -286,7 +286,7 @@ $showed = $post = $reply = false;
|
|||||||
}
|
}
|
||||||
echo '</TABLE>';
|
echo '</TABLE>';
|
||||||
|
|
||||||
echo '<br><a href="index.php?subtopic=bugtracker&add=true"><b>[ADD REPORT]</b></a>';
|
echo '<br><a href="?subtopic=bugtracker&add=true"><b>[ADD REPORT]</b></a>';
|
||||||
}
|
}
|
||||||
elseif(isset($_REQUEST['add']) && $_REQUEST['add'] == TRUE)
|
elseif(isset($_REQUEST['add']) && $_REQUEST['add'] == TRUE)
|
||||||
{
|
{
|
||||||
@ -320,7 +320,7 @@ $showed = $post = $reply = false;
|
|||||||
$type = 1;
|
$type = 1;
|
||||||
$status = 1;
|
$status = 1;
|
||||||
$INSERT = $db->query('INSERT INTO `' . TABLE_PREFIX . 'bugtracker` (`account`,`id`,`text`,`type`,`subject`, `reply`,`status`,`tag`) VALUES ('.$db->quote($acc).','.$db->quote($id_next).','.$db->quote($_POST['text']).','.$db->quote($type).','.$db->quote($_POST['subject']).', 0,'.$db->quote($status).','.$db->quote($_POST['tags']).')');
|
$INSERT = $db->query('INSERT INTO `' . TABLE_PREFIX . 'bugtracker` (`account`,`id`,`text`,`type`,`subject`, `reply`,`status`,`tag`) VALUES ('.$db->quote($acc).','.$db->quote($id_next).','.$db->quote($_POST['text']).','.$db->quote($type).','.$db->quote($_POST['subject']).', 0,'.$db->quote($status).','.$db->quote($_POST['tags']).')');
|
||||||
header('Location: index.php?subtopic=bugtracker&id='.$id_next.'');
|
header('Location: ?subtopic=bugtracker&id='.$id_next.'');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -338,6 +338,6 @@ $showed = $post = $reply = false;
|
|||||||
|
|
||||||
if(admin() and empty($_REQUEST['control']))
|
if(admin() and empty($_REQUEST['control']))
|
||||||
{
|
{
|
||||||
echo '<br><br><a href="index.php?subtopic=bugtracker&control=true">[ADMIN PANEL]</a>';
|
echo '<br><br><a href="?subtopic=bugtracker&control=true">[ADMIN PANEL]</a>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -38,7 +38,7 @@ if(isset($_POST['reload_monsters']) && $canEdit)
|
|||||||
if($canEdit)
|
if($canEdit)
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<form method="post" action="index.php?subtopic=creatures">
|
<form method="post" action="<?php echo getLink('creatures'); ?>">
|
||||||
<input type="hidden" name="reload_monsters" value="yes"/>
|
<input type="hidden" name="reload_monsters" value="yes"/>
|
||||||
<input type="submit" value="(admin) Reload monsters"/>
|
<input type="submit" value="(admin) Reload monsters"/>
|
||||||
</form>
|
</form>
|
||||||
|
@ -43,7 +43,7 @@ if(!file_exists($template_path . '/index.php') &&
|
|||||||
!file_exists($template_path . '/layout.php'))
|
!file_exists($template_path . '/layout.php'))
|
||||||
{
|
{
|
||||||
$template_name = 'kathrine';
|
$template_name = 'kathrine';
|
||||||
$template_path = 'templates/' . $template_name;
|
$template_path = TEMPLATES . $template_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
$file = $template_path . '/config.ini';
|
$file = $template_path . '/config.ini';
|
||||||
@ -106,7 +106,7 @@ function get_template_menus() {
|
|||||||
global $db, $template_name;
|
global $db, $template_name;
|
||||||
|
|
||||||
$menus = array();
|
$menus = array();
|
||||||
$query = $db->query('SELECT `name`, `link`, `category` FROM `' . TABLE_PREFIX . 'menu` WHERE `template` = ' . $db->quote($template_name) . ' ORDER BY `ordering` ASC');
|
$query = $db->query('SELECT `name`, `link`, `category` FROM `' . TABLE_PREFIX . 'menu` WHERE `template` = ' . $db->quote($template_name) . ' ORDER BY `category`, `ordering` ASC');
|
||||||
foreach($query->fetchAll() as $menu) {
|
foreach($query->fetchAll() as $menu) {
|
||||||
$menus[$menu['category']][] = array('name' => $menu['name'], 'link' => $menu['link']);
|
$menus[$menu['category']][] = array('name' => $menu['name'], 'link' => $menu['link']);
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,18 @@
|
|||||||
<em>{{ locale.step_config_client_desc }}</em>
|
<em>{{ locale.step_config_client_desc }}</em>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<label for="vars_usage">
|
||||||
|
<span>{{ locale.step_config_usage }}</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
<input type="checkbox" name="vars[usage]" id="vars_usage" value="1" checked/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<em>{{ locale.step_config_usage_desc }}</em>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{{ buttons|raw }}
|
{{ buttons|raw }}
|
||||||
|
@ -75,11 +75,12 @@ defined('MYAAC') or die('Direct access not allowed!');
|
|||||||
<div id="mainsubmenu">
|
<div id="mainsubmenu">
|
||||||
<?php
|
<?php
|
||||||
foreach($menus as $category => $menu) {
|
foreach($menus as $category => $menu) {
|
||||||
echo '<div id="' . $config['menu_categories'][$category]['id'] . '-submenu">';
|
|
||||||
if(!isset($menus[$category])) {
|
if(!isset($menus[$category])) {
|
||||||
return;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo '<div id="' . $config['menu_categories'][$category]['id'] . '-submenu">';
|
||||||
|
|
||||||
$size = count($menus[$category]);
|
$size = count($menus[$category]);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
$file = trim(strtolower($config['signature_type'])) . '.php';
|
$file = trim(strtolower($config['signature_type'])) . '.php';
|
||||||
if(!file_exists($file))
|
if(!file_exists($file))
|
||||||
die('ERROR: Wrong signature type in config.');
|
die('ERROR: Wrong signature_type in config.');
|
||||||
|
|
||||||
putenv('GDFONTPATH=' . SIGNATURES_FONTS);
|
putenv('GDFONTPATH=' . SIGNATURES_FONTS);
|
||||||
|
|
||||||
@ -52,7 +52,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$cached = SIGNATURES_CACHE.$player->getId() . '.png';
|
$cached = SIGNATURES_CACHE.$player->getId() . '.png';
|
||||||
if(file_exists($cached) and (time() < (filemtime($cached) + (60 * $config['signature_cache_time']))))
|
if(file_exists($cached) && (time() < (filemtime($cached) + (60 * $config['signature_cache_time']))))
|
||||||
{
|
{
|
||||||
header( 'Content-type: image/png' );
|
header( 'Content-type: image/png' );
|
||||||
readfile( SIGNATURES_CACHE.$player->getId().'.png' );
|
readfile( SIGNATURES_CACHE.$player->getId().'.png' );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user