Compare commits
72 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6527d21794 | ||
![]() |
7fad722927 | ||
![]() |
ab249eb95f | ||
![]() |
bdbd215aad | ||
![]() |
68212a36bb | ||
![]() |
ac3691dc08 | ||
![]() |
3a6aab67d5 | ||
![]() |
2c5b3f4da3 | ||
![]() |
73eca63c4f | ||
![]() |
c504588993 | ||
![]() |
5b14c6d4d4 | ||
![]() |
4685c7b868 | ||
![]() |
0e185c8bcf | ||
![]() |
e230949edd | ||
![]() |
a897b5e98c | ||
![]() |
186d3dbd38 | ||
![]() |
127c04070b | ||
![]() |
6ff65050f5 | ||
![]() |
d605ef4b28 | ||
![]() |
9466b7ce75 | ||
![]() |
7f6eff666e | ||
![]() |
e878b4df48 | ||
![]() |
2c3c1529a7 | ||
![]() |
ecce524c7b | ||
![]() |
5af617b869 | ||
![]() |
3f886c9f7c | ||
![]() |
d50fb7a291 | ||
![]() |
37502c5562 | ||
![]() |
7620ec896b | ||
![]() |
8a87186833 | ||
![]() |
b0f8013762 | ||
![]() |
3a6a1c448a | ||
![]() |
2cd9f80b34 | ||
![]() |
d88de8e072 | ||
![]() |
6e6ce55a7b | ||
![]() |
26b88d9d42 | ||
![]() |
27e490912b | ||
![]() |
fe8b0cd944 | ||
![]() |
61bc3a616a | ||
![]() |
430351aee3 | ||
![]() |
eecdcfbabe | ||
![]() |
97776d8f01 | ||
![]() |
48e864dead | ||
![]() |
91c3b343e7 | ||
![]() |
b62ce7ec6f | ||
![]() |
7890eb14d1 | ||
![]() |
15961f0c17 | ||
![]() |
c8c1ba5682 | ||
![]() |
603c2175e3 | ||
![]() |
45aa2c2f23 | ||
![]() |
45f988c420 | ||
![]() |
55e8507cac | ||
![]() |
ec6584555f | ||
![]() |
649facc5ab | ||
![]() |
57c2547098 | ||
![]() |
4fa32e79ce | ||
![]() |
f393e525a6 | ||
![]() |
45b61e5f78 | ||
![]() |
0219cc7a1f | ||
![]() |
b212e9fb0f | ||
![]() |
ecef4de2d2 | ||
![]() |
e69ff12966 | ||
![]() |
6f10ee1965 | ||
![]() |
d9bd1f6e99 | ||
![]() |
35c8b65be7 | ||
![]() |
753fb60e75 | ||
![]() |
45e390c9d4 | ||
![]() |
7df5d18105 | ||
![]() |
0bc43d38e3 | ||
![]() |
94dd462b71 | ||
![]() |
266a1704ed | ||
![]() |
2bf41655cb |
67
CHANGELOG
@@ -1,3 +1,70 @@
|
|||||||
|
[0.4.2 - 14.09.2017]
|
||||||
|
- updated version number
|
||||||
|
|
||||||
|
[0.4.1 - 13.09.2017]
|
||||||
|
- fixed log in to admin panel
|
||||||
|
- fixed File is not .zip plugin upload error
|
||||||
|
|
||||||
|
[0.4.0 - 13.09.2017
|
||||||
|
- added option to add/edit/delete/hide/move forum boards
|
||||||
|
- moved some of HTML-in-PHP code to Twig templates
|
||||||
|
- added bug_report configurable which can enable/disable bug tracker
|
||||||
|
- log errors instead of showing them to users with system directories
|
||||||
|
- fix when $_SERVER['HTTP_ACCEPT_ENCODING'] is not set
|
||||||
|
- when it fails to load config.lua it will output error also to error.log
|
||||||
|
- automatically detect json file in .zip instead of basing on filename (admin panel - plugins)
|
||||||
|
- hopefully fixed the error with "The file you are trying to upload is not a .zip file. Please try again."
|
||||||
|
- fixed wrong name of table in bugtracker
|
||||||
|
- fixed some bugs in bugtracker
|
||||||
|
- added report bug link in templates
|
||||||
|
- fixed some rare error when user is logged in for longer than 15 minutes and tries to login again
|
||||||
|
- fixed some grammar errors
|
||||||
|
- some small improvements
|
||||||
|
- fixed some separators in kathrine template
|
||||||
|
|
||||||
|
[0.3.0 - 28.08.2017]
|
||||||
|
- added administration panel for screenshots management with auto thumbnail generator and image auto-resizing
|
||||||
|
- added Twig template engine and moved some html-in-php code to it
|
||||||
|
- automatically detect player country based on user location (IP) on create account
|
||||||
|
- player sex (gender) is now configurable at $config['genders']
|
||||||
|
- fixed recovering account and changing password when salt is enabled
|
||||||
|
- fixed installing samples when for example Rook Sample already exist and other samples not
|
||||||
|
- fixed some mysql error when character you trying to create already exist
|
||||||
|
- fixed some warning when you select nonexistent country
|
||||||
|
- password change minimal/maximal length notice is now more precise
|
||||||
|
- added 'enabled' field in myaac_hooks table, which can enable or disable specified hook
|
||||||
|
- removed DEFAULT '' for TEXT field. It didn't worked under some systems like MAC OS X.
|
||||||
|
- minimum PHP version to install the MyAAC is now 5.2.0 cause of pathinfo (extension) function
|
||||||
|
- removed unused admin stylish template
|
||||||
|
- removed some unused cities field from myaac_spells table
|
||||||
|
- moved news adding at installation from schema.sql to finish.php
|
||||||
|
- some optimizations
|
||||||
|
|
||||||
|
[0.2.4 - 09.06.2017]
|
||||||
|
- fixed invite to guild
|
||||||
|
- added id field on monsters, so you can delete them in phpmyadmin
|
||||||
|
- fixed adding some creatures with ' and "
|
||||||
|
- fixed when there are spaces at beginning of the file (creatures)
|
||||||
|
- fixed when file is unable to parse (creatures)
|
||||||
|
- fixed typo loss_items => loss_containers
|
||||||
|
- more elegant way of showing message on reload creatures and spells
|
||||||
|
|
||||||
|
[0.2.3 - 31.05.2017]
|
||||||
|
- fixed guild management on OTHire 0.0.3
|
||||||
|
- set default skills to 10 when creating new character
|
||||||
|
- fixed displaying of "Create forum thread" in newses
|
||||||
|
- fixed deleting guild on servers that use players.rank_id field
|
||||||
|
- fixed phpmailer class loading (https://otland.net/threads/myaac-v0-0-1.251454/page-8#post-2445222)
|
||||||
|
- fixed displaying vocation amount on online page
|
||||||
|
- better support for custom vocations, you just need to set in config vocations_amount to yours.
|
||||||
|
- fixed huge space in player name (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444328)
|
||||||
|
- fixed Undefined variable (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444034)
|
||||||
|
- fixed Undefined offset (https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2444035)
|
||||||
|
|
||||||
|
[0.2.2 - 22.05.2017]
|
||||||
|
- added missing cache/signature directory
|
||||||
|
- fixed https://otland.net/threads/myaac-v0-0-1.251454/page-7#post-2443868
|
||||||
|
|
||||||
[0.2.1 - 21.05.2017]
|
[0.2.1 - 21.05.2017]
|
||||||
- added Swedish translation by Sizaro
|
- added Swedish translation by Sizaro
|
||||||
- fixed some bugs with installlation & characters & houses
|
- fixed some bugs with installlation & characters & houses
|
||||||
|
@@ -5,7 +5,7 @@ Official website: http://my-aac.org
|
|||||||
|
|
||||||
### REQUIREMENTS
|
### REQUIREMENTS
|
||||||
|
|
||||||
- PHP 5.1.0 or later
|
- PHP 5.2.0 or later
|
||||||
- MySQL database
|
- MySQL database
|
||||||
- PDO PHP Extension
|
- PDO PHP Extension
|
||||||
- XML PHP Extension
|
- XML PHP Extension
|
||||||
|
@@ -1 +1,51 @@
|
|||||||
<?php
|
<?php
|
||||||
|
// few things we'll need
|
||||||
|
require('../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!');
|
||||||
|
}
|
||||||
|
|
||||||
|
$content = '';
|
||||||
|
|
||||||
|
// validate page
|
||||||
|
$page = isset($_GET['p']) ? $_GET['p'] : '';
|
||||||
|
if(empty($page) || preg_match("/[^a-zA-Z0-9_\-]/", $page))
|
||||||
|
$page = 'dashboard';
|
||||||
|
|
||||||
|
$page = strtolower($page);
|
||||||
|
define('PAGE', $page);
|
||||||
|
|
||||||
|
require(SYSTEM . 'functions.php');
|
||||||
|
require(SYSTEM . 'init.php');
|
||||||
|
require(SYSTEM . 'status.php');
|
||||||
|
require(SYSTEM . 'login.php');
|
||||||
|
require(ADMIN . 'includes/functions.php');
|
||||||
|
|
||||||
|
$twig->addGlobal('config', $config);
|
||||||
|
|
||||||
|
// if we're not logged in - show login box
|
||||||
|
if(!$logged || !admin()) {
|
||||||
|
$page = 'login';
|
||||||
|
}
|
||||||
|
|
||||||
|
// include our page
|
||||||
|
$file = SYSTEM . 'pages/admin/' . $page . '.php';
|
||||||
|
if(!@file_exists($file)) {
|
||||||
|
$page = '404';
|
||||||
|
$file = SYSTEM . 'pages/404.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
include($file);
|
||||||
|
|
||||||
|
$content .= ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
// template
|
||||||
|
$template_path = 'template/';
|
||||||
|
require(ADMIN . $template_path . 'template.php');
|
||||||
|
?>
|
||||||
|
@@ -87,7 +87,7 @@
|
|||||||
<div id="content"><?php echo $content; ?></div>
|
<div id="content"><?php echo $content; ?></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
Powered by <a href="http://my-aac.org" target="_blank">MyAAC</a>
|
<?php echo base64_decode('UG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vbXktYWFjLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPk15QUFDLjwvYT4='); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
@@ -1,281 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<title>Dashboard - Admin Template</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/theme2.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/style.css" />
|
|
||||||
<script>
|
|
||||||
var StyleFile = "theme" + document.cookie.charAt(6) + ".css";
|
|
||||||
document.writeln('<link rel="stylesheet" type="text/css" href="css/' + StyleFile + '">');
|
|
||||||
</script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ie-sucks.css" />
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
<h2>My eCommerce Admin area</h2>
|
|
||||||
<div id="topmenu">
|
|
||||||
<ul>
|
|
||||||
<li class="current"><a href="index.html">Dashboard</a></li>
|
|
||||||
<li><a href="#">Orders</a></li>
|
|
||||||
<li><a href="users.html">Users</a></li>
|
|
||||||
<li><a href="#">Manage</a></li>
|
|
||||||
<li><a href="#">CMS</a></li>
|
|
||||||
<li><a href="#">Statistics</a></li>
|
|
||||||
<li><a href="#">Settings</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="top-panel">
|
|
||||||
<div id="panel">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="report">Sales Report</a></li>
|
|
||||||
<li><a href="#" class="report_seo">SEO Report</a></li>
|
|
||||||
<li><a href="#" class="search">Search</a></li>
|
|
||||||
<li><a href="#" class="feed">RSS Feed</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="wrapper">
|
|
||||||
<div id="content">
|
|
||||||
<div id="rightnow">
|
|
||||||
<h3 class="reallynow">
|
|
||||||
<span>Right Now</span>
|
|
||||||
<a href="#" class="add">Add New Product</a>
|
|
||||||
<a href="#" class="app_add">Some Action</a>
|
|
||||||
<br />
|
|
||||||
</h3>
|
|
||||||
<p class="youhave">You have <a href="#">19 new orders</a>, <a href="#">12 new users</a> and <a href="#">5 new reviews</a>, today you made <a href="#">$1523.63 in sales</a> and a total of <strong>$328.24 profit </strong>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div id="infowrap">
|
|
||||||
<div id="infobox">
|
|
||||||
<h3>Sales for July</h3>
|
|
||||||
<p><img src="img/graph.jpg" width="360" height="266" /></p>
|
|
||||||
</div>
|
|
||||||
<div id="infobox" class="margin-left">
|
|
||||||
<h3>Traffic for July</h3>
|
|
||||||
<p><img src="img/graph2.jpg" alt="a" width="359" height="266" /></p>
|
|
||||||
</div>
|
|
||||||
<div id="infobox">
|
|
||||||
<h3>Last 5 Orders</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Customer</th>
|
|
||||||
<th>Items</th>
|
|
||||||
<th>Grand Total</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Jennifer Kyrnin</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>14.95 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>34.27 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>61.39 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td>5</td>
|
|
||||||
<td>1472.56 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>9.95 €</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="infobox" class="margin-left">
|
|
||||||
<h3>Bestsellers</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Product Name</th>
|
|
||||||
<th>Price</th>
|
|
||||||
<th>Orders</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Apple iPhone 3G 8GB</a></td>
|
|
||||||
<td>199.00 €</td>
|
|
||||||
<td>24</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Fuji FinePix S5800</a></td>
|
|
||||||
<td>365.24 €</td>
|
|
||||||
<td>19</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Canon PIXMA MP140</a></td>
|
|
||||||
<td>59.50 €</td>
|
|
||||||
<td>12</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Apple iPhone 3G 16GB</a></td>
|
|
||||||
<td>199.00 €</td>
|
|
||||||
<td>10</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Prenosnik HP 530 1,6GHz</a></td>
|
|
||||||
<td>499.00 €</td>
|
|
||||||
<td>6</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="infobox">
|
|
||||||
<h3>New Customers</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Customer</th>
|
|
||||||
<th>Orders</th>
|
|
||||||
<th>Average</th>
|
|
||||||
<th>Total</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Jennifer Kyrnin</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>5.6€</td>
|
|
||||||
<td>14.95 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>14.97€</td>
|
|
||||||
<td>34.27 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>15.31€</td>
|
|
||||||
<td>61.39 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td>5</td>
|
|
||||||
<td>502.61€</td>
|
|
||||||
<td>1472.56 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>5.1€</td>
|
|
||||||
<td>9.95 €</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="infobox" class="margin-left">
|
|
||||||
<h3>Last 5 Reviews</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Reviewer</th>
|
|
||||||
<th>Product</th>
|
|
||||||
<th>Action</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Jennifer Kyrnin</a></td>
|
|
||||||
<td><a href="#">Apple iPhone 3G 8GB</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td><a href="#">Prenosnik HP 530 1,6GHz</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td><a href="#">Fuji FinePix S5800</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td><a href="#">Canon PIXMA MP140</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td><a href="#">Prenosnik HP 530 1,6GHz</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar">
|
|
||||||
<ul>
|
|
||||||
<li><h3><a href="#" class="house">Dashboard</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="report">Sales Report</a></li>
|
|
||||||
<li><a href="#" class="report_seo">SEO Report</a></li>
|
|
||||||
<li><a href="#" class="search">Search</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="folder_table">Orders</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="addorder">New order</a></li>
|
|
||||||
<li><a href="#" class="shipping">Shipments</a></li>
|
|
||||||
<li><a href="#" class="invoices">Invoices</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="manage">Manage</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="manage_page">Pages</a></li>
|
|
||||||
<li><a href="#" class="cart">Products</a></li>
|
|
||||||
<li><a href="#" class="folder">Product categories</a></li>
|
|
||||||
<li><a href="#" class="promotions">Promotions</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="user">Users</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="useradd">Add user</a></li>
|
|
||||||
<li><a href="#" class="group">User groups</a></li>
|
|
||||||
<li><a href="#" class="search">Find user</a></li>
|
|
||||||
<li><a href="#" class="online">Users online</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<div id="credits">
|
|
||||||
Template by <a href="http://www.bloganje.com">Bloganje</a>
|
|
||||||
</div>
|
|
||||||
<div id="styleswitcher">
|
|
||||||
<ul>
|
|
||||||
<li><a href="javascript: document.cookie='theme='; window.location.reload();" title="Default" id="defswitch">d</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=1'; window.location.reload();" title="Blue" id="blueswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=2'; window.location.reload();" title="Green" id="greenswitch">g</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=3'; window.location.reload();" title="Brown" id="brownswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=4'; window.location.reload();" title="Mix" id="mixswitch">m</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=5'; window.location.reload();" title="Mix" id="defswitch">m</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><br />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@@ -1,100 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<title>Dashboard - Admin Template</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/theme.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/style.css" />
|
|
||||||
<script>
|
|
||||||
var StyleFile = "theme" + document.cookie.charAt(6) + ".css";
|
|
||||||
document.writeln('<link rel="stylesheet" type="text/css" href="css/' + StyleFile + '">');
|
|
||||||
</script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ie-sucks.css" />
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
<h2>My eCommerce Admin area</h2>
|
|
||||||
<div id="topmenu">
|
|
||||||
<ul>
|
|
||||||
<li class="current"><a href="index.html">Dashboard</a></li>
|
|
||||||
<li><a href="#">Orders</a></li>
|
|
||||||
<li><a href="users.html">Users</a></li>
|
|
||||||
<li><a href="#">Manage</a></li>
|
|
||||||
<li><a href="#">CMS</a></li>
|
|
||||||
<li><a href="#">Statistics</a></li>
|
|
||||||
<li><a href="#">Settings</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="top-panel">
|
|
||||||
<div id="panel">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="report">Sales Report</a></li>
|
|
||||||
<li><a href="#" class="report_seo">SEO Report</a></li>
|
|
||||||
<li><a href="#" class="search">Search</a></li>
|
|
||||||
<li><a href="#" class="feed">RSS Feed</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="wrapper">
|
|
||||||
<div id="content">
|
|
||||||
<p> </p>
|
|
||||||
<p> </p>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar">
|
|
||||||
<ul>
|
|
||||||
<li><h3><a href="#" class="house">Dashboard</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="report">Sales Report</a></li>
|
|
||||||
<li><a href="#" class="report_seo">SEO Report</a></li>
|
|
||||||
<li><a href="#" class="search">Search</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="folder_table">Orders</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="addorder">New order</a></li>
|
|
||||||
<li><a href="#" class="shipping">Shipments</a></li>
|
|
||||||
<li><a href="#" class="invoices">Invoices</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="manage">Manage</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="manage_page">Pages</a></li>
|
|
||||||
<li><a href="#" class="cart">Products</a></li>
|
|
||||||
<li><a href="#" class="folder">Product categories</a></li>
|
|
||||||
<li><a href="#" class="promotions">Promotions</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="user">Users</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="useradd">Add user</a></li>
|
|
||||||
<li><a href="#" class="group">User groups</a></li>
|
|
||||||
<li><a href="#" class="search">Find user</a></li>
|
|
||||||
<li><a href="#" class="online">Users online</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<div id="credits">
|
|
||||||
Template by <a href="http://www.bloganje.com">Bloganje</a>
|
|
||||||
</div>
|
|
||||||
<div id="styleswitcher">
|
|
||||||
<ul>
|
|
||||||
<li><a href="javascript: document.cookie='theme='; window.location.reload();" title="Default" id="defswitch">d</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=1'; window.location.reload();" title="Blue" id="blueswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=2'; window.location.reload();" title="Green" id="greenswitch">g</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=3'; window.location.reload();" title="Brown" id="brownswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=4'; window.location.reload();" title="Mix" id="mixswitch">m</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><br />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@@ -1,121 +0,0 @@
|
|||||||
body{
|
|
||||||
background:#f7f6f0 url(../img/bg.jpg) repeat-x top;
|
|
||||||
color: #202020;
|
|
||||||
}
|
|
||||||
a, a:visited{
|
|
||||||
color:#993300;
|
|
||||||
}
|
|
||||||
input{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
select{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#header h2{
|
|
||||||
color:#FFF;
|
|
||||||
}
|
|
||||||
#content{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#topmenu a,#topmenu a:visited{
|
|
||||||
color:#f7f6f0;
|
|
||||||
background:#cc3300;
|
|
||||||
}
|
|
||||||
#topmenu a:hover{
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
#topmenu .current a, #topmenu .current a:hover, #topmenu .current a:visited{
|
|
||||||
color:#993400;
|
|
||||||
background: #FFF url(../img/bg_menu_red.jpg) repeat-x top;
|
|
||||||
border-left: #FFF 1px solid;
|
|
||||||
border-right: #FFF 1px solid;
|
|
||||||
}
|
|
||||||
#top-panel{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
table{
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
td, th{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
thead{
|
|
||||||
background:#f7f6f0;
|
|
||||||
}
|
|
||||||
#styleswitcher{
|
|
||||||
background:#FFFFFF;
|
|
||||||
}
|
|
||||||
#footer{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#box{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#box h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
color:#993300;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Forms
|
|
||||||
***************/
|
|
||||||
form#form fieldset {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
form#form legend {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
background:#fff url(../img/form_red.gif) repeat-x center left;
|
|
||||||
color:#993300;
|
|
||||||
}
|
|
||||||
form#form input {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
background:#fff url(../img/form_red.gif) repeat-x top left;
|
|
||||||
}
|
|
||||||
form#form textarea {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
background:#fff url(../img/form_red.gif) repeat-x bottom left;
|
|
||||||
}
|
|
||||||
form#form option {
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
form#form optgroup {
|
|
||||||
background:#e8e7e1;
|
|
||||||
}
|
|
||||||
form#form optgroup option {
|
|
||||||
|
|
||||||
}
|
|
||||||
form#form #button1, form#form #button2 {
|
|
||||||
color:#c00;
|
|
||||||
}
|
|
||||||
form#form #button1:hover, form#form #button2:hover {
|
|
||||||
color:#000;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Home
|
|
||||||
***************/
|
|
||||||
#infobox{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#infobox h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
color:#993300;
|
|
||||||
}
|
|
||||||
#rightnow {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow {
|
|
||||||
background:#f7f6f0;
|
|
||||||
color:#993300;
|
|
||||||
}
|
|
||||||
#rightnow h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
}
|
|
@@ -1,21 +0,0 @@
|
|||||||
#content{
|
|
||||||
width:740px;
|
|
||||||
}
|
|
||||||
#topmenu{
|
|
||||||
margin-top:26px;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
width:160px;
|
|
||||||
}
|
|
||||||
#sidebar ul{
|
|
||||||
width:150px;
|
|
||||||
}
|
|
||||||
#sidebar ul li ul{
|
|
||||||
width:140px;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
margin-bottom:5px;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow a {
|
|
||||||
padding:0 0 0 10px;
|
|
||||||
}
|
|
@@ -1,68 +0,0 @@
|
|||||||
<public:component>
|
|
||||||
<public:attach event="onpropertychange" onevent="doFix()" />
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
|
|
||||||
// IE5.5+ PNG Alpha Fix v1.0RC4
|
|
||||||
// (c) 2004-2005 Angus Turnbull http://www.twinhelix.com
|
|
||||||
|
|
||||||
// This is licensed under the CC-GNU LGPL, version 2.1 or later.
|
|
||||||
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
|
||||||
|
|
||||||
|
|
||||||
// This must be a path to a blank image. That's all the configuration you need.
|
|
||||||
if (typeof blankImg == 'undefined') var blankImg = 'blank.gif';
|
|
||||||
|
|
||||||
|
|
||||||
var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
|
|
||||||
|
|
||||||
function filt(s, m)
|
|
||||||
{
|
|
||||||
if (filters[f])
|
|
||||||
{
|
|
||||||
filters[f].enabled = s ? true : false;
|
|
||||||
if (s) with (filters[f]) { src = s; sizingMethod = m }
|
|
||||||
}
|
|
||||||
else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
|
|
||||||
}
|
|
||||||
|
|
||||||
function doFix()
|
|
||||||
{
|
|
||||||
// Assume IE7 is OK.
|
|
||||||
if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent) ||
|
|
||||||
(event && !/(background|src)/.test(event.propertyName))) return;
|
|
||||||
|
|
||||||
var bgImg = currentStyle.backgroundImage || style.backgroundImage;
|
|
||||||
|
|
||||||
if (tagName == 'IMG')
|
|
||||||
{
|
|
||||||
if ((/\.png$/i).test(src))
|
|
||||||
{
|
|
||||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
|
||||||
style.width = offsetWidth + 'px';
|
|
||||||
filt(src, 'scale');
|
|
||||||
src = blankImg;
|
|
||||||
}
|
|
||||||
else if (src.indexOf(blankImg) < 0) filt();
|
|
||||||
}
|
|
||||||
else if (bgImg && bgImg != 'none')
|
|
||||||
{
|
|
||||||
if (bgImg.match(/^url[("']+(.*\.png)[)"']+$/i))
|
|
||||||
{
|
|
||||||
var s = RegExp.$1;
|
|
||||||
if (currentStyle.width == 'auto' && currentStyle.height == 'auto')
|
|
||||||
style.width = offsetWidth + 'px';
|
|
||||||
style.backgroundImage = 'none';
|
|
||||||
filt(s, 'crop');
|
|
||||||
// IE link fix.
|
|
||||||
for (var n = 0; n < childNodes.length; n++)
|
|
||||||
if (childNodes[n].style) childNodes[n].style.position = 'relative';
|
|
||||||
}
|
|
||||||
else filt();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
doFix();
|
|
||||||
|
|
||||||
</script>
|
|
||||||
</public:component>
|
|
@@ -1,397 +0,0 @@
|
|||||||
/*********************
|
|
||||||
HTML Elements
|
|
||||||
*********************/
|
|
||||||
*{
|
|
||||||
margin:0;
|
|
||||||
padding:0;
|
|
||||||
}
|
|
||||||
img, div,a { behavior: url(css/iepngfix.htc) }
|
|
||||||
body{
|
|
||||||
font-size: 12px;
|
|
||||||
font-family: Arial, Tahoma, Verdana;
|
|
||||||
}
|
|
||||||
a, a:visited{
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
img{
|
|
||||||
border:0;
|
|
||||||
margin:1px;
|
|
||||||
}
|
|
||||||
p{
|
|
||||||
padding:3px;
|
|
||||||
}
|
|
||||||
h2{
|
|
||||||
|
|
||||||
}
|
|
||||||
input{
|
|
||||||
padding:2px;
|
|
||||||
}
|
|
||||||
select{
|
|
||||||
padding:2px;
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
Status
|
|
||||||
*********************/
|
|
||||||
#status {
|
|
||||||
position: absolute; top: 10px; left: 10px;
|
|
||||||
margin: 0px;
|
|
||||||
float: right;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
#status .success {
|
|
||||||
margin: 0px:
|
|
||||||
}
|
|
||||||
#version {
|
|
||||||
position: absolute; top: 10px; right: 10px;
|
|
||||||
float: right;
|
|
||||||
text-align: right;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
Structure
|
|
||||||
*********************/
|
|
||||||
#container{
|
|
||||||
width:960px;
|
|
||||||
margin-left:auto;
|
|
||||||
margin-right:auto;
|
|
||||||
}
|
|
||||||
#header{
|
|
||||||
width:960px;
|
|
||||||
}
|
|
||||||
#header h2{
|
|
||||||
margin-top:20px;
|
|
||||||
}
|
|
||||||
#content{
|
|
||||||
width:740px;
|
|
||||||
float:left;
|
|
||||||
margin:10px 0 10px 0;
|
|
||||||
padding:10px;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
background:#FFF;
|
|
||||||
width:170px;
|
|
||||||
float:right;
|
|
||||||
margin:10px 0 10px 0;
|
|
||||||
padding:10px;
|
|
||||||
}
|
|
||||||
#footer{
|
|
||||||
clear:both;
|
|
||||||
padding:5px;
|
|
||||||
margin-top:10px;
|
|
||||||
}
|
|
||||||
#box h3{
|
|
||||||
padding:5px;
|
|
||||||
font-size:14px;
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
Sidebar
|
|
||||||
*********************/
|
|
||||||
#sidebar ul{
|
|
||||||
list-style:none;
|
|
||||||
line-height:22px;
|
|
||||||
}
|
|
||||||
#sidebar ul li a,#sidebar ul li a:visited{
|
|
||||||
padding-left:19px;
|
|
||||||
text-decoration:none;
|
|
||||||
margin:0 3px;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
#sidebar ul li a:hover{
|
|
||||||
text-decoration:underline;
|
|
||||||
}
|
|
||||||
#sidebar ul li ul{
|
|
||||||
margin-left:10px;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
padding:2px;
|
|
||||||
font-size:14px;
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
TopMenu, Top-Panel
|
|
||||||
*********************/
|
|
||||||
#topmenu{
|
|
||||||
margin-top:33px;
|
|
||||||
width:700px;
|
|
||||||
float:left;
|
|
||||||
voice-family:inherit;
|
|
||||||
}
|
|
||||||
#topmenu ul{
|
|
||||||
list-style:none;
|
|
||||||
line-height:25px;
|
|
||||||
}
|
|
||||||
#topmenu li{
|
|
||||||
display:inline;
|
|
||||||
}
|
|
||||||
#topmenu a,#topmenu a:visited{
|
|
||||||
padding:5px 12px 5px 12px;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
#topmenu .current a, #topmenu .current a:hover, #topmenu .current a:visited{
|
|
||||||
padding:5px 12px 5px 12px;
|
|
||||||
font-weight:bold;
|
|
||||||
|
|
||||||
}
|
|
||||||
#top-panel{
|
|
||||||
background:#FFF;
|
|
||||||
padding:5px;
|
|
||||||
height:20px;
|
|
||||||
float:left;
|
|
||||||
width:950px;
|
|
||||||
}
|
|
||||||
#top-panel ul{
|
|
||||||
list-style:none;
|
|
||||||
}
|
|
||||||
#top-panel ul li{
|
|
||||||
display:inline;
|
|
||||||
line-height:20px;
|
|
||||||
}
|
|
||||||
#top-panel ul li a{
|
|
||||||
padding-left:19px;
|
|
||||||
text-decoration:none;
|
|
||||||
margin:0 3px;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
#top-panel a:hover{
|
|
||||||
text-decoration:underline;
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
Other
|
|
||||||
*********************/
|
|
||||||
.a-right{text-align:right;}
|
|
||||||
.a-left{text-align:left;}
|
|
||||||
.a-center{text-align:center;}
|
|
||||||
#pager{
|
|
||||||
margin:5px;
|
|
||||||
height:25px;
|
|
||||||
}
|
|
||||||
#styleswitcher{
|
|
||||||
float:right;
|
|
||||||
}
|
|
||||||
#styleswitcher ul{
|
|
||||||
list-style:none;
|
|
||||||
line-height:10px;
|
|
||||||
}
|
|
||||||
#styleswitcher li{
|
|
||||||
height:12px;
|
|
||||||
display:inline;
|
|
||||||
}
|
|
||||||
#footer ul {
|
|
||||||
list-style:none;
|
|
||||||
}
|
|
||||||
#footer li {
|
|
||||||
display:inline;
|
|
||||||
}
|
|
||||||
a#defswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#bd3f09;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#bd3f09;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#blueswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#375b91;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#375b91;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#greenswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#d0e0b8;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#d0e0b8;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#brownswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#654322;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#654322;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#mixswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#294145;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#294145;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
#credits{
|
|
||||||
clear:both;
|
|
||||||
width:250px;
|
|
||||||
float:left;
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
Tables
|
|
||||||
*********************/
|
|
||||||
table{
|
|
||||||
margin:5px;
|
|
||||||
border-collapse: collapse;
|
|
||||||
table-layout:automatic;
|
|
||||||
width:98%;
|
|
||||||
}
|
|
||||||
td, th{
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
thead{
|
|
||||||
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
Home
|
|
||||||
*********************/
|
|
||||||
#infowrap li{
|
|
||||||
display:inline:
|
|
||||||
}
|
|
||||||
#infobox{
|
|
||||||
width:365px;
|
|
||||||
float:left;
|
|
||||||
margin-top:10px;
|
|
||||||
}
|
|
||||||
#infobox h3{
|
|
||||||
padding:5px;
|
|
||||||
font-size:14px;
|
|
||||||
}
|
|
||||||
.margin-left{
|
|
||||||
margin-left:5px;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow {
|
|
||||||
padding: 5px;
|
|
||||||
font-size:14px;
|
|
||||||
}
|
|
||||||
#rightnow h3{
|
|
||||||
padding:2px;
|
|
||||||
padding: 0 10px;
|
|
||||||
font-size:14px;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow span {
|
|
||||||
display: block;
|
|
||||||
text-align: left;
|
|
||||||
float: left;
|
|
||||||
padding:0 2px;
|
|
||||||
font-size:14px
|
|
||||||
}
|
|
||||||
#rightnow .reallynow a {
|
|
||||||
text-decoration:none;
|
|
||||||
display: block;
|
|
||||||
text-align: right;
|
|
||||||
float: right;
|
|
||||||
padding:0 0 0 18px;
|
|
||||||
margin-left:4px;
|
|
||||||
font-weight:normal;
|
|
||||||
font-size:12px;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow a:hover{
|
|
||||||
text-decoration:underline;
|
|
||||||
}
|
|
||||||
#rightnow .youhave {
|
|
||||||
font-size: 12px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
#rightnow a {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
/*********************
|
|
||||||
Forms
|
|
||||||
*********************/
|
|
||||||
form{
|
|
||||||
padding:10px;
|
|
||||||
margin:0 auto;
|
|
||||||
}
|
|
||||||
form#form fieldset {
|
|
||||||
display:block;
|
|
||||||
padding:5px 10px 5px 10px;
|
|
||||||
line-height:20px;
|
|
||||||
margin-bottom:10px;
|
|
||||||
}
|
|
||||||
form#form legend {
|
|
||||||
font-size:12px;
|
|
||||||
font-weight:bold;
|
|
||||||
margin-bottom:5px;
|
|
||||||
padding:3px;
|
|
||||||
width:254px;
|
|
||||||
}
|
|
||||||
form#form label {
|
|
||||||
clear:left;
|
|
||||||
display:block;
|
|
||||||
float:left;
|
|
||||||
width:100px;
|
|
||||||
text-align:right;
|
|
||||||
padding-right:10px;
|
|
||||||
margin-bottom:5px;
|
|
||||||
}
|
|
||||||
form#form input {
|
|
||||||
padding:3px;
|
|
||||||
margin-bottom:5px;
|
|
||||||
}
|
|
||||||
form#form select {
|
|
||||||
margin-left:5px;
|
|
||||||
}
|
|
||||||
form#form textarea {
|
|
||||||
width:410px;
|
|
||||||
height:200px;
|
|
||||||
padding:5px;
|
|
||||||
overflow:auto;
|
|
||||||
}
|
|
||||||
form#form option {
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
form#form optgroup option {
|
|
||||||
|
|
||||||
}
|
|
||||||
form#form #button1, form#form #button2 {
|
|
||||||
padding-right:5px;
|
|
||||||
cursor:pointer;
|
|
||||||
width:205px;
|
|
||||||
margin-left:8px;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
form#form #button1:hover, form#form #button2:hover {
|
|
||||||
background-position:center left;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*********************
|
|
||||||
Icons
|
|
||||||
*********************/
|
|
||||||
.icon{
|
|
||||||
padding-left:19px;
|
|
||||||
text-decoration:none;
|
|
||||||
height:20px;
|
|
||||||
font-size:12x;
|
|
||||||
margin:0 3px;
|
|
||||||
display:inline-block;
|
|
||||||
line-height:20px;
|
|
||||||
}
|
|
||||||
.user{background:transparent url(../img/icons/user.png) no-repeat left;}
|
|
||||||
.useradd{background:transparent url(../img/icons/user_add.png) no-repeat left;}
|
|
||||||
.group{background:transparent url(../img/icons/group.png) no-repeat left;}
|
|
||||||
.search{background:transparent url(../img/icons/magnifier.png) no-repeat left;}
|
|
||||||
.online{background:transparent url(../img/icons/world.png) no-repeat left;}
|
|
||||||
.pagenew{background:transparent url(../img/icons/page_add.png) no-repeat left;}
|
|
||||||
.rss{background:transparent url(../img/icons/rss.png) no-repeat left;}
|
|
||||||
.feed{background:transparent url(../img/icons/feed.png) no-repeat left;}
|
|
||||||
.report{background:transparent url(../img/icons/report.png) no-repeat left;}
|
|
||||||
.house{background:transparent url(../img/icons/house.png) no-repeat left;}
|
|
||||||
.manage{background:transparent url(../img/icons/cog.png) no-repeat left;}
|
|
||||||
.manage_page{background:transparent url(../img/icons/page_gear.png) no-repeat left;}
|
|
||||||
.folder{background:transparent url(../img/icons/folder.png) no-repeat left;}
|
|
||||||
.promotions{background:transparent url(../img/icons/coins.png) no-repeat left;}
|
|
||||||
.cart{background:transparent url(../img/icons/cart.png) no-repeat left;}
|
|
||||||
.folder_table{background:transparent url(../img/icons/folder_page.png) no-repeat left;}
|
|
||||||
.shipping{background:transparent url(../img/icons/car.png) no-repeat left;}
|
|
||||||
.invoices{background:transparent url(../img/icons/page_white_text_width.png) no-repeat left;}
|
|
||||||
.addorder{background:transparent url(../img/icons/folder_page_add.png) no-repeat left;}
|
|
||||||
.add{background:transparent url(../img/icons/add.png) no-repeat left;}
|
|
||||||
.app_add{background:transparent url(../img/icons/application_add.png) no-repeat left;}
|
|
||||||
.report_seo{background:transparent url(../img/icons/report_link.png) no-repeat left;}
|
|
||||||
.modules{background:transparent url(../img/icons/bricks.png) no-repeat left;}
|
|
||||||
.modules_manage{background:transparent url(../img/icons/bricks_gear.png) no-repeat left;}
|
|
@@ -1,51 +0,0 @@
|
|||||||
#footer ul {
|
|
||||||
list-style:none;
|
|
||||||
}
|
|
||||||
#footer li {
|
|
||||||
display:inline;
|
|
||||||
}
|
|
||||||
a#defswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#bd3f09;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#bd3f09;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#blueswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#375b91;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#375b91;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#greenswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#d0e0b8;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#d0e0b8;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#brownswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#654322;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#654322;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
a#mixswitch {
|
|
||||||
width:15px;
|
|
||||||
height:10px;
|
|
||||||
margin: 3px 0 3px 0;
|
|
||||||
background-color:#294145;
|
|
||||||
font-size: 8px;
|
|
||||||
color:#294145;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
@@ -1,121 +0,0 @@
|
|||||||
body{
|
|
||||||
background:#f7f6f0 url(../img/bg.jpg) repeat-x top;
|
|
||||||
color: #202020;
|
|
||||||
}
|
|
||||||
a, a:visited{
|
|
||||||
color:#a43708;
|
|
||||||
}
|
|
||||||
input{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
select{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#header h2{
|
|
||||||
color:#FFF;
|
|
||||||
}
|
|
||||||
#content{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#topmenu a,#topmenu a:visited{
|
|
||||||
color:#f7f6f0;
|
|
||||||
background:#bd3f09;
|
|
||||||
}
|
|
||||||
#topmenu a:hover{
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
#topmenu .current a, #topmenu .current a:hover, #topmenu .current a:visited{
|
|
||||||
color:#993400;
|
|
||||||
background: #FFF url(../img/bg_menu_red.jpg) repeat-x top;
|
|
||||||
border-left: #FFF 1px solid;
|
|
||||||
border-right: #FFF 1px solid;
|
|
||||||
}
|
|
||||||
#top-panel{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
table{
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
td, th{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
thead{
|
|
||||||
background:#f7f6f0;
|
|
||||||
}
|
|
||||||
#styleswitcher{
|
|
||||||
background:#FFFFFF;
|
|
||||||
}
|
|
||||||
#footer{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#box{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#box h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
color:#a43708;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Forms
|
|
||||||
***************/
|
|
||||||
form#form fieldset {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
form#form legend {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
background:#fff url(../img/form_red.gif) repeat-x center left;
|
|
||||||
color:#a43708;
|
|
||||||
}
|
|
||||||
form#form input {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
background:#fff url(../img/form_red.gif) repeat-x top left;
|
|
||||||
}
|
|
||||||
form#form textarea {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
background:#fff url(../img/form_red.gif) repeat-x bottom left;
|
|
||||||
}
|
|
||||||
form#form option {
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
form#form optgroup {
|
|
||||||
background:#e8e7e1;
|
|
||||||
}
|
|
||||||
form#form optgroup option {
|
|
||||||
|
|
||||||
}
|
|
||||||
form#form #button1, form#form #button2 {
|
|
||||||
color:#c00;
|
|
||||||
}
|
|
||||||
form#form #button1:hover, form#form #button2:hover {
|
|
||||||
color:#000;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Home
|
|
||||||
***************/
|
|
||||||
#infobox{
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#infobox h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
color:#a43708;
|
|
||||||
}
|
|
||||||
#rightnow {
|
|
||||||
border:1px solid #e8e7e1;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow {
|
|
||||||
background:#f7f6f0;
|
|
||||||
color:#a43708;
|
|
||||||
}
|
|
||||||
#rightnow h3{
|
|
||||||
background:#f7f6f0;
|
|
||||||
border-bottom:1px solid #e8e7e1;
|
|
||||||
}
|
|
@@ -1,121 +0,0 @@
|
|||||||
body{
|
|
||||||
background:#f3f9ff url(../img/bg_blue.jpg) repeat-x top;
|
|
||||||
color: #202020;
|
|
||||||
}
|
|
||||||
a, a:visited{
|
|
||||||
color:#375b91;
|
|
||||||
}
|
|
||||||
input{
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
select{
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
#header h2{
|
|
||||||
color:#FFF;
|
|
||||||
}
|
|
||||||
#content{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
background:#f3f9ff;
|
|
||||||
border-bottom:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
#topmenu a,#topmenu a:visited{
|
|
||||||
color:#FFF;
|
|
||||||
background:#7e9dcc;
|
|
||||||
}
|
|
||||||
#topmenu a:hover{
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
#topmenu .current a, #topmenu .current a:hover, #topmenu .current a:visited{
|
|
||||||
color:#375b91;
|
|
||||||
background: #FFF url(../img/bg_menu_blue.jpg) repeat-x top;
|
|
||||||
border-left: #FFF 1px solid;
|
|
||||||
border-right: #FFF 1px solid;
|
|
||||||
}
|
|
||||||
#top-panel{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
table{
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
td, th{
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
thead{
|
|
||||||
background:#f3f9ff;
|
|
||||||
}
|
|
||||||
#styleswitcher{
|
|
||||||
background:#FFFFFF;
|
|
||||||
}
|
|
||||||
#footer{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#box{
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
#box h3{
|
|
||||||
background:#f3f9ff;
|
|
||||||
border-bottom:1px solid #d9e6f0;
|
|
||||||
color:#375b91;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Forms
|
|
||||||
***************/
|
|
||||||
form#form fieldset {
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
form#form legend {
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
background:#fff url(../img/form_blue.gif) repeat-x center left;
|
|
||||||
color:#375b91;
|
|
||||||
}
|
|
||||||
form#form input {
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
background:#fff url(../img/form_blue.gif) repeat-x top left;
|
|
||||||
}
|
|
||||||
form#form textarea {
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
background:#fff url(../img/form_blue.gif) repeat-x bottom left;
|
|
||||||
}
|
|
||||||
form#form option {
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
form#form optgroup {
|
|
||||||
background:#d9e6f0;
|
|
||||||
}
|
|
||||||
form#form optgroup option {
|
|
||||||
|
|
||||||
}
|
|
||||||
form#form #button1, form#form #button2 {
|
|
||||||
color:#375b91;
|
|
||||||
}
|
|
||||||
form#form #button1:hover, form#form #button2:hover {
|
|
||||||
color:#000;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Home
|
|
||||||
***************/
|
|
||||||
#infobox{
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
#infobox h3{
|
|
||||||
background:#f3f9ff;
|
|
||||||
border-bottom:1px solid #d9e6f0;
|
|
||||||
color:#375b91;
|
|
||||||
}
|
|
||||||
#rightnow {
|
|
||||||
border:1px solid #d9e6f0;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow {
|
|
||||||
background:#f3f9ff;
|
|
||||||
color:#375b91;
|
|
||||||
}
|
|
||||||
#rightnow h3{
|
|
||||||
background:#f3f9ff;
|
|
||||||
border-bottom:1px solid #d9e6f0;
|
|
||||||
}
|
|
@@ -1,121 +0,0 @@
|
|||||||
body{
|
|
||||||
background:#f0f7e8 url(../img/bg_light_green.jpg) repeat-x top;
|
|
||||||
color: #202020;
|
|
||||||
}
|
|
||||||
a, a:visited{
|
|
||||||
color:#93ad7e;
|
|
||||||
}
|
|
||||||
input{
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
select{
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
#header h2{
|
|
||||||
color:#FFF;
|
|
||||||
}
|
|
||||||
#content{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
background:#f0f7e8;
|
|
||||||
border-bottom:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
#topmenu a,#topmenu a:visited{
|
|
||||||
color:#93ad7e;
|
|
||||||
background:#e7eedc;
|
|
||||||
}
|
|
||||||
#topmenu a:hover{
|
|
||||||
color: #93ad7e;
|
|
||||||
}
|
|
||||||
#topmenu .current a, #topmenu .current a:hover, #topmenu .current a:visited{
|
|
||||||
color:#93ad7e;
|
|
||||||
background: #FFF url(../img/bg_menu_green.jpg) repeat-x top;
|
|
||||||
border-left: #FFF 1px solid;
|
|
||||||
border-right: #FFF 1px solid;
|
|
||||||
}
|
|
||||||
#top-panel{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
table{
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
td, th{
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
thead{
|
|
||||||
background:#f0f7e8;
|
|
||||||
}
|
|
||||||
#styleswitcher{
|
|
||||||
background:#FFFFFF;
|
|
||||||
}
|
|
||||||
#footer{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#box{
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
#box h3{
|
|
||||||
background:#f0f7e8;
|
|
||||||
border-bottom:1px solid #e7eedf;
|
|
||||||
color:#93ad7e;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Forms
|
|
||||||
***************/
|
|
||||||
form#form fieldset {
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
form#form legend {
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
background:#fff url(../img/form_green.gif) repeat-x center left;
|
|
||||||
color:#93ad7e;
|
|
||||||
}
|
|
||||||
form#form input {
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
background:#fff url(../img/form_green.gif) repeat-x top left;
|
|
||||||
}
|
|
||||||
form#form textarea {
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
background:#fff url(../img/form_green.gif) repeat-x bottom left;
|
|
||||||
}
|
|
||||||
form#form option {
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
form#form optgroup {
|
|
||||||
background:#e7eedf;
|
|
||||||
}
|
|
||||||
form#form optgroup option {
|
|
||||||
|
|
||||||
}
|
|
||||||
form#form #button1, form#form #button2 {
|
|
||||||
color:#93ad7e;
|
|
||||||
}
|
|
||||||
form#form #button1:hover, form#form #button2:hover {
|
|
||||||
color:#000;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Home
|
|
||||||
***************/
|
|
||||||
#infobox{
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
#infobox h3{
|
|
||||||
background:#f0f7e8;
|
|
||||||
border-bottom:1px solid #e7eedf;
|
|
||||||
color:#93ad7e;
|
|
||||||
}
|
|
||||||
#rightnow {
|
|
||||||
border:1px solid #e7eedf;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow {
|
|
||||||
background:#f0f7e8;
|
|
||||||
color:#93ad7e;
|
|
||||||
}
|
|
||||||
#rightnow h3{
|
|
||||||
background:#f0f7e8;
|
|
||||||
border-bottom:1px solid #e7eedf;
|
|
||||||
}
|
|
@@ -1,121 +0,0 @@
|
|||||||
body{
|
|
||||||
background:#f7f6f1 url(../img/bg_brown.jpg) repeat-x top;
|
|
||||||
color: #202020;
|
|
||||||
}
|
|
||||||
a, a:visited{
|
|
||||||
color:#654322;
|
|
||||||
}
|
|
||||||
input{
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
select{
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
#header h2{
|
|
||||||
color:#FFF;
|
|
||||||
}
|
|
||||||
#content{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
background:#f7f6f1;
|
|
||||||
border-bottom:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
#topmenu a,#topmenu a:visited{
|
|
||||||
color:#FFF;
|
|
||||||
background:#8f6831;
|
|
||||||
}
|
|
||||||
#topmenu a:hover{
|
|
||||||
color: #654322;
|
|
||||||
}
|
|
||||||
#topmenu .current a, #topmenu .current a:hover, #topmenu .current a:visited{
|
|
||||||
color:#654322;
|
|
||||||
background: #FFF url(../img/bg_menu_brown.jpg) repeat-x top;
|
|
||||||
border-left: #FFF 1px solid;
|
|
||||||
border-right: #FFF 1px solid;
|
|
||||||
}
|
|
||||||
#top-panel{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
table{
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
td, th{
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
thead{
|
|
||||||
background:#f7f6f1;
|
|
||||||
}
|
|
||||||
#styleswitcher{
|
|
||||||
background:#FFFFFF;
|
|
||||||
}
|
|
||||||
#footer{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#box{
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
#box h3{
|
|
||||||
background:#f7f6f1;
|
|
||||||
border-bottom:1px solid #e9e8e3;
|
|
||||||
color:#654322;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Forms
|
|
||||||
***************/
|
|
||||||
form#form fieldset {
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
form#form legend {
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
background:#fff url(../img/form_brown.gif) repeat-x center left;
|
|
||||||
color:#654322;
|
|
||||||
}
|
|
||||||
form#form input {
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
background:#fff url(../img/form_brown.gif) repeat-x top left;
|
|
||||||
}
|
|
||||||
form#form textarea {
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
background:#fff url(../img/form_brown.gif) repeat-x bottom left;
|
|
||||||
}
|
|
||||||
form#form option {
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
form#form optgroup {
|
|
||||||
background:#e9e8e3;
|
|
||||||
}
|
|
||||||
form#form optgroup option {
|
|
||||||
|
|
||||||
}
|
|
||||||
form#form #button1, form#form #button2 {
|
|
||||||
color:#654322;
|
|
||||||
}
|
|
||||||
form#form #button1:hover, form#form #button2:hover {
|
|
||||||
color:#000;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Home
|
|
||||||
***************/
|
|
||||||
#infobox{
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
#infobox h3{
|
|
||||||
background:#f7f6f1;
|
|
||||||
border-bottom:1px solid #e9e8e3;
|
|
||||||
color:#654322;
|
|
||||||
}
|
|
||||||
#rightnow {
|
|
||||||
border:1px solid #e9e8e3;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow {
|
|
||||||
background:#f7f6f1;
|
|
||||||
color:#654322;
|
|
||||||
}
|
|
||||||
#rightnow h3{
|
|
||||||
background:#f7f6f1;
|
|
||||||
border-bottom:1px solid #e9e8e3;
|
|
||||||
}
|
|
@@ -1,122 +0,0 @@
|
|||||||
body{
|
|
||||||
background:#d9eaed url(../img/bg_mix.jpg) repeat-x top;
|
|
||||||
color: #202020;
|
|
||||||
}
|
|
||||||
a, a:visited{
|
|
||||||
color:#294145;
|
|
||||||
text-decoration:underline;
|
|
||||||
}
|
|
||||||
input{
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
select{
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
#header h2{
|
|
||||||
color:#FFF;
|
|
||||||
}
|
|
||||||
#content{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#sidebar h3{
|
|
||||||
background:#d9eaed;
|
|
||||||
border-bottom:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
#topmenu a,#topmenu a:visited{
|
|
||||||
color:#FFF;
|
|
||||||
background:#5d99a3;
|
|
||||||
}
|
|
||||||
#topmenu a:hover{
|
|
||||||
color: #294145;
|
|
||||||
}
|
|
||||||
#topmenu .current a, #topmenu .current a:hover, #topmenu .current a:visited{
|
|
||||||
color:#294145;
|
|
||||||
background: #FFF url(../img/bg_menu_mix.jpg) repeat-x top;
|
|
||||||
border-left: #FFF 1px solid;
|
|
||||||
border-right: #FFF 1px solid;
|
|
||||||
}
|
|
||||||
#top-panel{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
table{
|
|
||||||
background:none;
|
|
||||||
}
|
|
||||||
td, th{
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
thead{
|
|
||||||
background:#d9eaed;
|
|
||||||
}
|
|
||||||
#styleswitcher{
|
|
||||||
background:#FFFFFF;
|
|
||||||
}
|
|
||||||
#footer{
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
#box{
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
#box h3{
|
|
||||||
background:#d9eaed;
|
|
||||||
border-bottom:1px solid #c3d7db;
|
|
||||||
color:#294145;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Forms
|
|
||||||
***************/
|
|
||||||
form#form fieldset {
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
form#form legend {
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
background:#fff url(../img/form_mix.gif) repeat-x center left;
|
|
||||||
color:#294145;
|
|
||||||
}
|
|
||||||
form#form input {
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
background:#fff url(../img/form_mix.gif) repeat-x top left;
|
|
||||||
}
|
|
||||||
form#form textarea {
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
background:#fff url(../img/form_mix.gif) repeat-x bottom left;
|
|
||||||
}
|
|
||||||
form#form option {
|
|
||||||
background:#FFF;
|
|
||||||
}
|
|
||||||
form#form optgroup {
|
|
||||||
background:#c3d7db;
|
|
||||||
}
|
|
||||||
form#form optgroup option {
|
|
||||||
|
|
||||||
}
|
|
||||||
form#form #button1, form#form #button2 {
|
|
||||||
color:#294145;
|
|
||||||
}
|
|
||||||
form#form #button1:hover, form#form #button2:hover {
|
|
||||||
color:#000;
|
|
||||||
}
|
|
||||||
/***************
|
|
||||||
Home
|
|
||||||
***************/
|
|
||||||
#infobox{
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
#infobox h3{
|
|
||||||
background:#d9eaed;
|
|
||||||
border-bottom:1px solid #c3d7db;
|
|
||||||
color:#294145;
|
|
||||||
}
|
|
||||||
#rightnow {
|
|
||||||
border:1px solid #c3d7db;
|
|
||||||
}
|
|
||||||
#rightnow .reallynow {
|
|
||||||
background:#d9eaed;
|
|
||||||
color:#294145;
|
|
||||||
}
|
|
||||||
#rightnow h3{
|
|
||||||
background:#d9eaed;
|
|
||||||
border-bottom:1px solid #c3d7db;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 359 B |
Before Width: | Height: | Size: 355 B |
Before Width: | Height: | Size: 356 B |
Before Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 383 B |
Before Width: | Height: | Size: 379 B |
Before Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 166 B |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 733 B |
Before Width: | Height: | Size: 619 B |
Before Width: | Height: | Size: 379 B |
Before Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 130 B |
Before Width: | Height: | Size: 452 B |
Before Width: | Height: | Size: 775 B |
Before Width: | Height: | Size: 825 B |
Before Width: | Height: | Size: 876 B |
Before Width: | Height: | Size: 610 B |
Before Width: | Height: | Size: 421 B |
Before Width: | Height: | Size: 711 B |
Before Width: | Height: | Size: 512 B |
Before Width: | Height: | Size: 732 B |
Before Width: | Height: | Size: 209 B |
Before Width: | Height: | Size: 773 B |
Before Width: | Height: | Size: 691 B |
Before Width: | Height: | Size: 537 B |
Before Width: | Height: | Size: 688 B |
Before Width: | Height: | Size: 773 B |
Before Width: | Height: | Size: 675 B |
Before Width: | Height: | Size: 753 B |
Before Width: | Height: | Size: 806 B |
Before Width: | Height: | Size: 615 B |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 833 B |
Before Width: | Height: | Size: 536 B |
Before Width: | Height: | Size: 618 B |
Before Width: | Height: | Size: 614 B |
Before Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 649 B |
Before Width: | Height: | Size: 754 B |
Before Width: | Height: | Size: 530 B |
Before Width: | Height: | Size: 741 B |
Before Width: | Height: | Size: 746 B |
Before Width: | Height: | Size: 767 B |
Before Width: | Height: | Size: 833 B |
Before Width: | Height: | Size: 923 B |
@@ -1,296 +0,0 @@
|
|||||||
<?php defined('MYAAC') or die('Direct access not allowed!'); ?>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<?php echo template_header(true); ?>
|
|
||||||
<title><?php echo $title . $config['title_separator'] . $config['lua']['serverName']; ?> - Powered by MyAAC</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo $template_path; ?>css/theme2.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="<?php echo $template_path; ?>css/style.css" />
|
|
||||||
<script>
|
|
||||||
var StyleFile = "theme" + document.cookie.charAt(6) + ".css";
|
|
||||||
document.writeln('<link rel="stylesheet" type="text/css" href="<?php echo $template_path; ?>css/' + StyleFile + '">');
|
|
||||||
</script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ie-sucks.css" />
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
<?php if($logged): ?>
|
|
||||||
<div id="status">
|
|
||||||
<?php if($status['online']): ?>
|
|
||||||
<p class="success" style="width: 120px; text-align: center;">Status: Online<br/>
|
|
||||||
<?php echo $status['uptimeReadable'] . ', ' . $status['players'] . '/' . $status['playersMax']; ?><br/>
|
|
||||||
<?php echo $config['lua']['ip'] . ' : ' . $config['lua']['loginPort']; ?>
|
|
||||||
</p>
|
|
||||||
<?php else: ?>
|
|
||||||
<p class="error" style="width: 120px; text-align: center;">Status: Offline</p>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
<div id="version">Version: <?php echo MYAAC_VERSION; ?> (<a id="update" href="#">Check for updates</a>)<br/>
|
|
||||||
<a href="http://<?php echo $_SERVER['HTTP_HOST']; ?>" target="_blank">Preview</a> <span class="separator">|</span> <a href="?action=logout">Logout<img src="images/logout.png" alt="" title="Logout" /></a>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
<h2><?php echo $config['lua']['serverName']; ?> - Admin Panel</h2>
|
|
||||||
<div id="topmenu">
|
|
||||||
<ul>
|
|
||||||
<li class="current"><a href="index.html">Dashboard</a></li>
|
|
||||||
<li><a href="#">Orders</a></li>
|
|
||||||
<li><a href="users.html">Users</a></li>
|
|
||||||
<li><a href="#">Manage</a></li>
|
|
||||||
<li><a href="#">CMS</a></li>
|
|
||||||
<li><a href="#">Statistics</a></li>
|
|
||||||
<li><a href="#">Settings</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="top-panel">
|
|
||||||
<div id="panel">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="report">Sales Report</a></li>
|
|
||||||
<li><a href="#" class="report_seo">SEO Report</a></li>
|
|
||||||
<li><a href="#" class="search">Search</a></li>
|
|
||||||
<li><a href="#" class="feed">RSS Feed</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="wrapper">
|
|
||||||
<div id="content">
|
|
||||||
<div id="rightnow">
|
|
||||||
<h3 class="reallynow">
|
|
||||||
<span>Right Now</span>
|
|
||||||
<a href="#" class="add">Add New Product</a>
|
|
||||||
<a href="#" class="app_add">Some Action</a>
|
|
||||||
<br />
|
|
||||||
</h3>
|
|
||||||
<p class="youhave">You have <a href="#">19 new orders</a>, <a href="#">12 new users</a> and <a href="#">5 new reviews</a>, today you made <a href="#">$1523.63 in sales</a> and a total of <strong>$328.24 profit </strong>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div id="infowrap">
|
|
||||||
<div id="infobox">
|
|
||||||
<h3>Sales for July</h3>
|
|
||||||
<p><img src="img/graph.jpg" width="360" height="266" /></p>
|
|
||||||
</div>
|
|
||||||
<div id="infobox" class="margin-left">
|
|
||||||
<h3>Traffic for July</h3>
|
|
||||||
<p><img src="img/graph2.jpg" alt="a" width="359" height="266" /></p>
|
|
||||||
</div>
|
|
||||||
<div id="infobox">
|
|
||||||
<h3>Last 5 Orders</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Customer</th>
|
|
||||||
<th>Items</th>
|
|
||||||
<th>Grand Total</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Jennifer Kyrnin</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>14.95 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>34.27 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>61.39 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td>5</td>
|
|
||||||
<td>1472.56 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>9.95 €</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="infobox" class="margin-left">
|
|
||||||
<h3>Bestsellers</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Product Name</th>
|
|
||||||
<th>Price</th>
|
|
||||||
<th>Orders</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Apple iPhone 3G 8GB</a></td>
|
|
||||||
<td>199.00 €</td>
|
|
||||||
<td>24</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Fuji FinePix S5800</a></td>
|
|
||||||
<td>365.24 €</td>
|
|
||||||
<td>19</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Canon PIXMA MP140</a></td>
|
|
||||||
<td>59.50 €</td>
|
|
||||||
<td>12</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Apple iPhone 3G 16GB</a></td>
|
|
||||||
<td>199.00 €</td>
|
|
||||||
<td>10</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Prenosnik HP 530 1,6GHz</a></td>
|
|
||||||
<td>499.00 €</td>
|
|
||||||
<td>6</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="infobox">
|
|
||||||
<h3>New Customers</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Customer</th>
|
|
||||||
<th>Orders</th>
|
|
||||||
<th>Average</th>
|
|
||||||
<th>Total</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Jennifer Kyrnin</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>5.6€</td>
|
|
||||||
<td>14.95 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>14.97€</td>
|
|
||||||
<td>34.27 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td>2</td>
|
|
||||||
<td>15.31€</td>
|
|
||||||
<td>61.39 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td>5</td>
|
|
||||||
<td>502.61€</td>
|
|
||||||
<td>1472.56 €</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td>1</td>
|
|
||||||
<td>5.1€</td>
|
|
||||||
<td>9.95 €</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="infobox" class="margin-left">
|
|
||||||
<h3>Last 5 Reviews</h3>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Reviewer</th>
|
|
||||||
<th>Product</th>
|
|
||||||
<th>Action</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Jennifer Kyrnin</a></td>
|
|
||||||
<td><a href="#">Apple iPhone 3G 8GB</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td><a href="#">Prenosnik HP 530 1,6GHz</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td><a href="#">Fuji FinePix S5800</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td><a href="#">Canon PIXMA MP140</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td><a href="#">Prenosnik HP 530 1,6GHz</a></td>
|
|
||||||
<td><a href="#"><img src="img/icons/page_white_link.png" /></a><a href="#"><img src="img/icons/page_white_edit.png" /></a><a href="#"><img src="img/icons/page_white_delete.png" /></a></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar">
|
|
||||||
<ul>
|
|
||||||
<li><h3><a href="#" class="house">Dashboard</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="report">Sales Report</a></li>
|
|
||||||
<li><a href="#" class="report_seo">SEO Report</a></li>
|
|
||||||
<li><a href="#" class="search">Search</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="folder_table">Orders</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="addorder">New order</a></li>
|
|
||||||
<li><a href="#" class="shipping">Shipments</a></li>
|
|
||||||
<li><a href="#" class="invoices">Invoices</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="manage">Manage</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="manage_page">Pages</a></li>
|
|
||||||
<li><a href="#" class="cart">Products</a></li>
|
|
||||||
<li><a href="#" class="folder">Product categories</a></li>
|
|
||||||
<li><a href="#" class="promotions">Promotions</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="user">Players</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="useradd">Add user</a></li>
|
|
||||||
<li><a href="#" class="group">Groups</a></li>
|
|
||||||
<li><a href="#" class="search">Find player</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<div id="credits">
|
|
||||||
Powered by <a href="http://my-aac.org" target="_blank">MyAAC</a>, template by <a href="http://www.bloganje.com">Bloganje</a>
|
|
||||||
</div>
|
|
||||||
<div id="styleswitcher">
|
|
||||||
<ul>
|
|
||||||
<li><a href="javascript: document.cookie='theme='; window.location.reload();" title="Default" id="defswitch">d</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=1'; window.location.reload();" title="Blue" id="blueswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=2'; window.location.reload();" title="Green" id="greenswitch">g</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=3'; window.location.reload();" title="Brown" id="brownswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=4'; window.location.reload();" title="Mix" id="mixswitch">m</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=5'; window.location.reload();" title="Mix" id="defswitch">m</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><br />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@@ -1,309 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<title>Users - Admin Template</title>
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/theme.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/style.css" />
|
|
||||||
<script>
|
|
||||||
var StyleFile = "theme" + document.cookie.charAt(6) + ".css";
|
|
||||||
document.writeln('<link rel="stylesheet" type="text/css" href="css/' + StyleFile + '">');
|
|
||||||
</script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ie-sucks.css" />
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<div id="header">
|
|
||||||
<h2>My eCommerce Admin area</h2>
|
|
||||||
<div id="topmenu">
|
|
||||||
<ul>
|
|
||||||
<li><a href="index.html">Dashboard</a></li>
|
|
||||||
<li><a href="#">Orders</a></li>
|
|
||||||
<li class="current"><a href="#">Users</a></li>
|
|
||||||
<li><a href="#">Manage</a></li>
|
|
||||||
<li><a href="#">CMS</a></li>
|
|
||||||
<li><a href="#">Statistics</a></li>
|
|
||||||
<li><a href="#">Settings</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="top-panel">
|
|
||||||
<div id="panel">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#adduser" class="useradd">Add user</a></li>
|
|
||||||
<li><a href="#" class="group">User groups</a></li>
|
|
||||||
<li><a href="#" class="search">Find user</a></li>
|
|
||||||
<li><a href="#" class="online">Users online</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="wrapper">
|
|
||||||
<div id="content">
|
|
||||||
<div id="box">
|
|
||||||
<h3>Users</h3>
|
|
||||||
<table width="100%">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th width="40px"><a href="#">ID<img src="img/icons/arrow_down_mini.gif" width="16" height="16" align="absmiddle" /></a></th>
|
|
||||||
<th><a href="#">Full Name</a></th>
|
|
||||||
<th><a href="#">Email</a></th>
|
|
||||||
<th width="70px"><a href="#">Group</a></th>
|
|
||||||
<th width="50px"><a href="#">ZIP</a></th>
|
|
||||||
<th width="90px"><a href="#">Registered</a></th>
|
|
||||||
<th width="60px"><a href="#">Action</a></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">232</td>
|
|
||||||
<td><a href="#">Jennifer Hodes</a></td>
|
|
||||||
<td>jennifer.hodes@gmail.com</td>
|
|
||||||
<td>General</td>
|
|
||||||
<td>1000</td>
|
|
||||||
<td>July 2, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">231</td>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td>mark.kyrnin@hotmail.com</td>
|
|
||||||
<td>Affiliate</td>
|
|
||||||
<td>8310</td>
|
|
||||||
<td>June 17, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">230</td>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td>virgilio@somecompany.cz</td>
|
|
||||||
<td>General</td>
|
|
||||||
<td>6200</td>
|
|
||||||
<td>June 31, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">229</td>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td>todd.simonides@gmail.com</td>
|
|
||||||
<td>Wholesale</td>
|
|
||||||
<td>2010</td>
|
|
||||||
<td>June 5, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">228</td>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td>carol@herbusiness.com</td>
|
|
||||||
<td>General</td>
|
|
||||||
<td>3120</td>
|
|
||||||
<td>May 23, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">232</td>
|
|
||||||
<td><a href="#">Jennifer Hodes</a></td>
|
|
||||||
<td>jennifer.hodes@gmail.com</td>
|
|
||||||
<td>General</td>
|
|
||||||
<td>1000</td>
|
|
||||||
<td>July 2, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">231</td>
|
|
||||||
<td><a href="#">Mark Kyrnin</a></td>
|
|
||||||
<td>mark.kyrnin@hotmail.com</td>
|
|
||||||
<td>Affiliate</td>
|
|
||||||
<td>8310</td>
|
|
||||||
<td>June 17, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">230</td>
|
|
||||||
<td><a href="#">Virgílio Cezar</a></td>
|
|
||||||
<td>virgilio@somecompany.cz</td>
|
|
||||||
<td>General</td>
|
|
||||||
<td>6200</td>
|
|
||||||
<td>June 31, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">229</td>
|
|
||||||
<td><a href="#">Todd Simonides</a></td>
|
|
||||||
<td>todd.simonides@gmail.com</td>
|
|
||||||
<td>Wholesale</td>
|
|
||||||
<td>2010</td>
|
|
||||||
<td>June 5, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="a-center">228</td>
|
|
||||||
<td><a href="#">Carol Elihu</a></td>
|
|
||||||
<td>carol@herbusiness.com</td>
|
|
||||||
<td>General</td>
|
|
||||||
<td>3120</td>
|
|
||||||
<td>May 23, 2008</td>
|
|
||||||
<td><a href="#"><img src="img/icons/user.png" title="Show profile" width="16" height="16" /></a><a href="#"><img src="img/icons/user_edit.png" title="Edit user" width="16" height="16" /></a><a href="#"><img src="img/icons/user_delete.png" title="Delete user" width="16" height="16" /></a></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<div id="pager">
|
|
||||||
Page <a href="#"><img src="img/icons/arrow_left.gif" width="16" height="16" /></a>
|
|
||||||
<input size="1" value="1" type="text" name="page" id="page" />
|
|
||||||
<a href="#"><img src="img/icons/arrow_right.gif" width="16" height="16" /></a>of 42
|
|
||||||
pages | View <select name="view">
|
|
||||||
<option>10</option>
|
|
||||||
<option>20</option>
|
|
||||||
<option>50</option>
|
|
||||||
<option>100</option>
|
|
||||||
</select>
|
|
||||||
per page | Total <strong>420</strong> records found
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div id="box">
|
|
||||||
<h3 id="adduser">Add user</h3>
|
|
||||||
<form id="form" action="..." method="post">
|
|
||||||
<fieldset id="personal">
|
|
||||||
<legend>PERSONAL INFORMATION</legend>
|
|
||||||
<label for="lastname">Last name : </label>
|
|
||||||
<input name="lastname" id="lastname" type="text" tabindex="1" />
|
|
||||||
<br />
|
|
||||||
<label for="firstname">First name : </label>
|
|
||||||
<input name="firstname" id="firstname" type="text"
|
|
||||||
tabindex="2" />
|
|
||||||
<br />
|
|
||||||
<label for="email">Email : </label>
|
|
||||||
<input name="email" id="email" type="text"
|
|
||||||
tabindex="2" />
|
|
||||||
<br />
|
|
||||||
<p>Send auto generated password
|
|
||||||
<input name="generatepass" id="yes" type="checkbox"
|
|
||||||
value="yes" tabindex="35" /></p>
|
|
||||||
<label for="pass">Password : </label>
|
|
||||||
<input name="pass" id="pass" type="password"
|
|
||||||
tabindex="2" />
|
|
||||||
<br />
|
|
||||||
<label for="pass-2">Password : </label>
|
|
||||||
<input name="pass-2" id="pass-2" type="password"
|
|
||||||
tabindex="2" />
|
|
||||||
<br />
|
|
||||||
</fieldset>
|
|
||||||
<fieldset id="address">
|
|
||||||
<legend>Address</legend>
|
|
||||||
<label for="street">Street address : </label>
|
|
||||||
<input name="street" id="street" type="text"
|
|
||||||
tabindex="1" />
|
|
||||||
<br />
|
|
||||||
<label for="city">City : </label>
|
|
||||||
<input name="city" id="city" type="text"
|
|
||||||
tabindex="2" />
|
|
||||||
<br />
|
|
||||||
<label for="country">Country : </label>
|
|
||||||
<input name="country" id="country" type="text"
|
|
||||||
tabindex="1" />
|
|
||||||
<br />
|
|
||||||
<label for="state">State/Province : </label>
|
|
||||||
<input name="state" id="state" type="text"
|
|
||||||
tabindex="2" />
|
|
||||||
<br />
|
|
||||||
<label for="zip">Zip/Postal Code : </label>
|
|
||||||
<input name="zip" id="zip" type="text"
|
|
||||||
tabindex="2" />
|
|
||||||
<br />
|
|
||||||
<label for="tel">Telephone : </label>
|
|
||||||
<input name="tel" id="tel" type="text"
|
|
||||||
tabindex="2" />
|
|
||||||
</fieldset>
|
|
||||||
<fieldset id="opt">
|
|
||||||
<legend>OPTIONS</legend>
|
|
||||||
<label for="choice">Group : </label>
|
|
||||||
<select name="choice">
|
|
||||||
<option selected="selected" label="none" value="none">
|
|
||||||
General
|
|
||||||
</option>
|
|
||||||
<optgroup label="Group 1">
|
|
||||||
<option label="cg1a" value="val_1a">Selection group 1a
|
|
||||||
</option>
|
|
||||||
<option label="cg1b" value="val_1b">Selection group 1b
|
|
||||||
</option>
|
|
||||||
<option label="cg1c" value="val_1c">Selection group 1c
|
|
||||||
</option>
|
|
||||||
</optgroup>
|
|
||||||
<optgroup label="Group 2">
|
|
||||||
<option label="cg2a" value="val_2a">Selection group 2a
|
|
||||||
</option>
|
|
||||||
<option label="cg2b" value="val_2a">Selection group 2b
|
|
||||||
</option>
|
|
||||||
</optgroup>
|
|
||||||
<optgroup label="Group 3">
|
|
||||||
<option label="cg3a" value="val_3a">Selection group 3a
|
|
||||||
</option>
|
|
||||||
<option label="cg3a" value="val_3a">Selection group 3b
|
|
||||||
</option>
|
|
||||||
</optgroup>
|
|
||||||
</select>
|
|
||||||
</fieldset>
|
|
||||||
<div align="center">
|
|
||||||
<input id="button1" type="submit" value="Send" />
|
|
||||||
<input id="button2" type="reset" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="sidebar">
|
|
||||||
<ul>
|
|
||||||
<li><h3><a href="#" class="house">Dashboard</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="report">Sales Report</a></li>
|
|
||||||
<li><a href="#" class="report_seo">SEO Report</a></li>
|
|
||||||
<li><a href="#" class="search">Search</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="folder_table">Orders</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="addorder">New order</a></li>
|
|
||||||
<li><a href="#" class="shipping">Shipments</a></li>
|
|
||||||
<li><a href="#" class="invoices">Invoices</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="manage">Manage</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="manage_page">Pages</a></li>
|
|
||||||
<li><a href="#" class="cart">Products</a></li>
|
|
||||||
<li><a href="#" class="folder">Product categories</a></li>
|
|
||||||
<li><a href="#" class="promotions">Promotions</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><h3><a href="#" class="user">Users</a></h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#" class="useradd">Add user</a></li>
|
|
||||||
<li><a href="#" class="group">User groups</a></li>
|
|
||||||
<li><a href="#" class="search">Find user</a></li>
|
|
||||||
<li><a href="#" class="online">Users online</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="footer">
|
|
||||||
<div id="credits">
|
|
||||||
Template by <a href="http://www.bloganje.com">Bloganje</a>
|
|
||||||
</div>
|
|
||||||
<div id="styleswitcher">
|
|
||||||
<ul>
|
|
||||||
<li><a href="javascript: document.cookie='theme='; window.location.reload();" title="Default" id="defswitch">d</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=1'; window.location.reload();" title="Blue" id="blueswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=2'; window.location.reload();" title="Green" id="greenswitch">g</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=3'; window.location.reload();" title="Brown" id="brownswitch">b</a></li>
|
|
||||||
<li><a href="javascript: document.cookie='theme=4'; window.location.reload();" title="Mix" id="mixswitch">m</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><br />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
11
common.php
@@ -21,17 +21,17 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
define('MYAAC', true);
|
define('MYAAC', true);
|
||||||
define('MYAAC_VERSION', '0.2.1');
|
define('MYAAC_VERSION', '0.4.2');
|
||||||
define('DATABASE_VERSION', 3);
|
define('DATABASE_VERSION', 9);
|
||||||
define('TABLE_PREFIX', 'myaac_');
|
define('TABLE_PREFIX', 'myaac_');
|
||||||
define('START_TIME', microtime(true));
|
define('START_TIME', microtime(true));
|
||||||
define('MYAAC_OS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? 'WINDOWS' : 'LINUX');
|
define('MYAAC_OS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? 'WINDOWS' : (strtoupper(PHP_OS) == 'DARWIN' ? 'MAC' : 'LINUX'));
|
||||||
|
|
||||||
// account flags
|
// account flags
|
||||||
define('FLAG_ADMIN', 1);
|
define('FLAG_ADMIN', 1);
|
||||||
@@ -43,6 +43,8 @@ define('FLAG_CONTENT_FORUM', 32);
|
|||||||
define('FLAG_CONTENT_COMMANDS', 64);
|
define('FLAG_CONTENT_COMMANDS', 64);
|
||||||
define('FLAG_CONTENT_SPELLS', 128);
|
define('FLAG_CONTENT_SPELLS', 128);
|
||||||
define('FLAG_CONTENT_MONSTERS', 256);
|
define('FLAG_CONTENT_MONSTERS', 256);
|
||||||
|
define('FLAG_CONTENT_SCREENSHOTS', 512);
|
||||||
|
define('FLAG_CONTENT_MOVIES', 1024);
|
||||||
|
|
||||||
// news
|
// news
|
||||||
define('NEWS', 1);
|
define('NEWS', 1);
|
||||||
@@ -59,6 +61,7 @@ define('LIBS', SYSTEM . 'libs/');
|
|||||||
define('LOGS', SYSTEM . 'logs/');
|
define('LOGS', SYSTEM . 'logs/');
|
||||||
define('PLUGINS', BASE . 'plugins/');
|
define('PLUGINS', BASE . 'plugins/');
|
||||||
define('TEMPLATES', BASE . 'templates/');
|
define('TEMPLATES', BASE . 'templates/');
|
||||||
|
define('TOOLS', BASE . 'tools/');
|
||||||
|
|
||||||
// otserv versions
|
// otserv versions
|
||||||
define('OTSERV', 1);
|
define('OTSERV', 1);
|
||||||
|
21
config.php
@@ -13,7 +13,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -24,6 +24,8 @@ $config = array(
|
|||||||
'template' => 'kathrine', // template used by website (kathrine, tibiacom)
|
'template' => 'kathrine', // template used by website (kathrine, tibiacom)
|
||||||
'template_allow_change' => true, // allow users to choose their own template while browsing website?
|
'template_allow_change' => true, // allow users to choose their own template while browsing website?
|
||||||
|
|
||||||
|
'vocations_amount' => 4, // how much basic vocations your server got (without promotion)
|
||||||
|
|
||||||
// what client version are you using on this OT?
|
// what client version are you using on this OT?
|
||||||
// used for the Downloads page and some templates aswell
|
// used for the Downloads page and some templates aswell
|
||||||
'client' => 1098, // 954 = client 9.54
|
'client' => 1098, // 954 = client 9.54
|
||||||
@@ -43,7 +45,7 @@ $config = array(
|
|||||||
// footer
|
// footer
|
||||||
'footer' => ''/*'<br/>Your Server © 2016. All rights reserved.'*/,
|
'footer' => ''/*'<br/>Your Server © 2016. All rights reserved.'*/,
|
||||||
|
|
||||||
'debug_level' => 0, // 0 - disabled, 1 - show load time, 2 - show db query counter, 3 - both, 4 - memory usage, 5 - load time & load time, 6 - queries & memory usage, 7 - all
|
'debug_level' => 0, // 0 - disabled, 1 - show load time, 2 - show db query counter, 3 - both, 4 - memory usage, 5 - load time & memory usage, 6 - queries & memory usage, 7 - all
|
||||||
|
|
||||||
'language' => 'en', // default language (currently only 'en' available)
|
'language' => 'en', // default language (currently only 'en' available)
|
||||||
'language_allow_change' => false,
|
'language_allow_change' => false,
|
||||||
@@ -54,7 +56,7 @@ $config = array(
|
|||||||
|
|
||||||
// cache system. by default file cache is used
|
// cache system. by default file cache is used
|
||||||
'cache_engine' => 'auto', // apc, eaccelerator, xcache, file, auto, or blank to disable.
|
'cache_engine' => 'auto', // apc, eaccelerator, xcache, file, auto, or blank to disable.
|
||||||
'cache_prefix' => 'myaac_', // have to be unique if running more MyAAC instances on the same server
|
'cache_prefix' => 'myaac_', // have to be unique if running more MyAAC instances on the same server (except file system cache)
|
||||||
|
|
||||||
// database details (leave blank for auto detect from config.lua)
|
// database details (leave blank for auto detect from config.lua)
|
||||||
'database_host' => '',
|
'database_host' => '',
|
||||||
@@ -83,6 +85,7 @@ $config = array(
|
|||||||
'account_welcome_mail' => true, // send welcome email when user registers
|
'account_welcome_mail' => true, // send welcome email when user registers
|
||||||
'account_mail_change' => 2, // how many days user need to change email to account - block hackers
|
'account_mail_change' => 2, // how many days user need to change email to account - block hackers
|
||||||
'account_country' => true, // user will be able to set country of origin when registering account, this information will be viewable in others places aswell
|
'account_country' => true, // user will be able to set country of origin when registering account, this information will be viewable in others places aswell
|
||||||
|
'account_country_recognize' => true, // should country of user be automatically recognized by his IP? This makes an external API call to http://ipinfo.io
|
||||||
'account_change_character_name' => false, // can user change their character name for premium points?
|
'account_change_character_name' => false, // can user change their character name for premium points?
|
||||||
'account_change_character_name_points' => 30, // cost of name change
|
'account_change_character_name_points' => 30, // cost of name change
|
||||||
'account_change_character_sex' => false, // can user change their character sex for premium points?
|
'account_change_character_sex' => false, // can user change their character sex for premium points?
|
||||||
@@ -116,6 +119,12 @@ $config = array(
|
|||||||
'send_mail_when_change_password' => true, // send e-mail with new password when change password to account
|
'send_mail_when_change_password' => true, // send e-mail with new password when change password to account
|
||||||
'send_mail_when_generate_reckey' => true, // send e-mail with rec key (key is displayed on page anyway when generate)
|
'send_mail_when_generate_reckey' => true, // send e-mail with rec key (key is displayed on page anyway when generate)
|
||||||
|
|
||||||
|
// genders (aka sex)
|
||||||
|
'genders' => array(
|
||||||
|
0 => 'Female',
|
||||||
|
1 => 'Male'
|
||||||
|
),
|
||||||
|
|
||||||
// new character config
|
// new character config
|
||||||
'character_samples' => array( // vocations, format: ID_of_vocation => 'Name of Character to copy'
|
'character_samples' => array( // vocations, format: ID_of_vocation => 'Name of Character to copy'
|
||||||
//0 => 'Rook Sample',
|
//0 => 'Rook Sample',
|
||||||
@@ -199,6 +208,9 @@ $config = array(
|
|||||||
|
|
||||||
// gifts/shop system
|
// gifts/shop system
|
||||||
'gifts_system' => false,
|
'gifts_system' => false,
|
||||||
|
|
||||||
|
// support/system
|
||||||
|
'bug_report' => true,
|
||||||
|
|
||||||
// forum
|
// forum
|
||||||
'forum' => 'site', // link to the server forum, set to "site" if you want to use build in forum system, otherwise leave empty if you aren't going to use any forum
|
'forum' => 'site', // link to the server forum, set to "site" if you want to use build in forum system, otherwise leave empty if you aren't going to use any forum
|
||||||
@@ -219,7 +231,8 @@ $config = array(
|
|||||||
'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)
|
||||||
'experiencetable_rows' => 100, // till how many levels in one column
|
'experiencetable_rows' => 100, // till how many levels in one column
|
||||||
|
'date_timezone' => 'Europe/Berlin',
|
||||||
|
|
||||||
'monsters' => array(),
|
'monsters' => array(),
|
||||||
'npc' => array()
|
'npc' => array()
|
||||||
);
|
);
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -55,13 +55,18 @@ require_once(SYSTEM . 'login.php');
|
|||||||
require_once(SYSTEM . 'status.php');
|
require_once(SYSTEM . 'status.php');
|
||||||
require_once(SYSTEM . 'template.php');
|
require_once(SYSTEM . 'template.php');
|
||||||
|
|
||||||
|
$twig->addGlobal('config', $config);
|
||||||
|
|
||||||
// database migrations
|
// database migrations
|
||||||
$tmp = '';
|
$tmp = '';
|
||||||
if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
|
if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
|
||||||
$tmp = (int)$tmp;
|
$tmp = (int)$tmp;
|
||||||
if($tmp < DATABASE_VERSION) { // import if older
|
if($tmp < DATABASE_VERSION) { // import if older
|
||||||
for($i = $tmp + 1; $i <= DATABASE_VERSION; $i++) {
|
for($i = $tmp + 1; $i <= DATABASE_VERSION; $i++) {
|
||||||
require(SYSTEM . 'migrations/' . $i . '.php');
|
$file = SYSTEM . 'migrations/' . $i . '.php';
|
||||||
|
if(file_exists($file)) {
|
||||||
|
require($file);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateDatabaseConfig('database_version', DATABASE_VERSION);
|
updateDatabaseConfig('database_version', DATABASE_VERSION);
|
||||||
|
@@ -28,17 +28,17 @@ function ini_get_bool($a)
|
|||||||
|
|
||||||
switch (strtolower($b))
|
switch (strtolower($b))
|
||||||
{
|
{
|
||||||
case 'on':
|
case 'on':
|
||||||
case 'yes':
|
case 'yes':
|
||||||
case 'true':
|
case 'true':
|
||||||
return 'assert.active' !== $a;
|
return 'assert.active' !== $a;
|
||||||
|
|
||||||
case 'stdout':
|
case 'stdout':
|
||||||
case 'stderr':
|
case 'stderr':
|
||||||
return 'display_errors' === $a;
|
return 'display_errors' === $a;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return (bool) (int) $b;
|
return (bool) (int) $b;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,15 +11,15 @@ CREATE TABLE `myaac_account_actions`
|
|||||||
CREATE TABLE `myaac_bugtracker`
|
CREATE TABLE `myaac_bugtracker`
|
||||||
(
|
(
|
||||||
`account` VARCHAR(255) NOT NULL,
|
`account` VARCHAR(255) NOT NULL,
|
||||||
`type` INT(11) NOT NULL,
|
`type` INT(11) NOT NULL DEFAULT 0,
|
||||||
`status` INT(11) NOT NULL,
|
`status` INT(11) NOT NULL DEFAULT 0,
|
||||||
`text` text NOT NULL,
|
`text` text NOT NULL,
|
||||||
`id` INT(11) NOT NULL,
|
`id` INT(11) NOT NULL DEFAULT 0,
|
||||||
`subject` VARCHAR(255) NOT NULL,
|
`subject` VARCHAR(255) NOT NULL DEFAULT '',
|
||||||
`reply` INT(11) NOT NULL,
|
`reply` INT(11) NOT NULL DEFAULT 0,
|
||||||
`who` INT(11) NOT NULL,
|
`who` INT(11) NOT NULL DEFAULT 0,
|
||||||
`uid` INT(11) NOT NULL AUTO_INCREMENT,
|
`uid` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`tag` INT(11) NOT NULL,
|
`tag` INT(11) NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (`uid`)
|
PRIMARY KEY (`uid`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ CREATE TABLE `myaac_faq`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
|
|
||||||
CREATE TABLE `myaac_forum_sections`
|
CREATE TABLE `myaac_forum_boards`
|
||||||
(
|
(
|
||||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`name` VARCHAR(32) NOT NULL,
|
`name` VARCHAR(32) NOT NULL,
|
||||||
@@ -77,11 +77,11 @@ CREATE TABLE `myaac_forum_sections`
|
|||||||
`hidden` TINYINT(1) NOT NULL DEFAULT 0,
|
`hidden` TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
INSERT INTO `myaac_forum_sections` (`id`, `name`, `description`, `closed`) VALUES (NULL, 'News', 'News commenting', 1);
|
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`, `closed`) VALUES (NULL, 'News', 'News commenting', 0, 1);
|
||||||
INSERT INTO `myaac_forum_sections` (`id`, `name`, `description`) VALUES (NULL, 'Trade', 'Trade offers.');
|
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Trade', 'Trade offers.', 1);
|
||||||
INSERT INTO `myaac_forum_sections` (`id`, `name`, `description`) VALUES (NULL, 'Quests', 'Quest making.');
|
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Quests', 'Quest making.', 2);
|
||||||
INSERT INTO `myaac_forum_sections` (`id`, `name`, `description`) VALUES (NULL, 'Pictures', 'Your pictures.');
|
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Pictures', 'Your pictures.', 3);
|
||||||
INSERT INTO `myaac_forum_sections` (`id`, `name`, `description`) VALUES (NULL, 'Bug Report', 'Report bugs there.');
|
INSERT INTO `myaac_forum_boards` (`id`, `name`, `description`, `ordering`) VALUES (NULL, 'Bug Report', 'Report bugs there.', 4);
|
||||||
|
|
||||||
CREATE TABLE `myaac_forum`
|
CREATE TABLE `myaac_forum`
|
||||||
(
|
(
|
||||||
@@ -112,10 +112,12 @@ CREATE TABLE `myaac_hooks`
|
|||||||
`name` VARCHAR(30) NOT NULL DEFAULT '',
|
`name` VARCHAR(30) NOT NULL DEFAULT '',
|
||||||
`type` INT(2) NOT NULL DEFAULT 0,
|
`type` INT(2) NOT NULL DEFAULT 0,
|
||||||
`file` VARCHAR(100) NOT NULL,
|
`file` VARCHAR(100) NOT NULL,
|
||||||
|
`enabled` INT(1) NOT NULL DEFAULT 1,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
|
|
||||||
CREATE TABLE `myaac_monsters` (
|
CREATE TABLE `myaac_monsters` (
|
||||||
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`hide_creature` tinyint(1) NOT NULL default '0',
|
`hide_creature` tinyint(1) NOT NULL default '0',
|
||||||
`name` varchar(255) NOT NULL,
|
`name` varchar(255) NOT NULL,
|
||||||
`mana` int(11) NOT NULL,
|
`mana` int(11) NOT NULL,
|
||||||
@@ -129,7 +131,8 @@ CREATE TABLE `myaac_monsters` (
|
|||||||
`convinceable` tinyint(1) NOT NULL,
|
`convinceable` tinyint(1) NOT NULL,
|
||||||
`race` varchar(255) NOT NULL,
|
`race` varchar(255) NOT NULL,
|
||||||
`gfx_name` varchar(255) NOT NULL,
|
`gfx_name` varchar(255) NOT NULL,
|
||||||
`file_path` varchar(255) NOT NULL
|
`file_path` varchar(255) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
|
|
||||||
CREATE TABLE `myaac_movies`
|
CREATE TABLE `myaac_movies`
|
||||||
@@ -174,15 +177,13 @@ INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 1);
|
|||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 2);
|
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 2);
|
||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 3);
|
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 3);
|
||||||
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 4);
|
INSERT INTO `myaac_news_categories` (`id`, `icon_id`) VALUES (NULL, 4);
|
||||||
INSERT INTO `myaac_news` (`id`, `type`, `date`, `category`, `title`, `body`, `player_id`, `comments`, `hidden`) VALUES (NULL, '1', UNIX_TIMESTAMP(), '2', 'Hello!', 'MyAAC is just READY to use!', 'slawkens', 'http://my-aac.org', '0');
|
|
||||||
INSERT INTO `myaac_news` (`id`, `type`, `date`, `category`, `title`, `body`, `player_id`, `comments`, `hidden`) VALUES (NULL, '2', UNIX_TIMESTAMP(), '4', 'Hello tickets!', 'http://my-aac.org', 'slawkens', '', '0');
|
|
||||||
|
|
||||||
CREATE TABLE `myaac_notepad`
|
CREATE TABLE `myaac_notepad`
|
||||||
(
|
(
|
||||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`account_id` INT(11) NOT NULL,
|
`account_id` INT(11) NOT NULL,
|
||||||
/*`name` VARCHAR(30) NOT NULL,*/
|
/*`name` VARCHAR(30) NOT NULL,*/
|
||||||
`content` TEXT NOT NULL DEFAULT '',
|
`content` TEXT NOT NULL,
|
||||||
/*`public` TINYINT(1) NOT NULL DEFAULT 0*/
|
/*`public` TINYINT(1) NOT NULL DEFAULT 0*/
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
@@ -204,7 +205,6 @@ CREATE TABLE `myaac_pages`
|
|||||||
CREATE TABLE `myaac_screenshots`
|
CREATE TABLE `myaac_screenshots`
|
||||||
(
|
(
|
||||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||||
`name` VARCHAR(30) NOT NULL,
|
|
||||||
`comment` VARCHAR(255) NOT NULL DEFAULT '',
|
`comment` VARCHAR(255) NOT NULL DEFAULT '',
|
||||||
`image` VARCHAR(255) NOT NULL,
|
`image` VARCHAR(255) NOT NULL,
|
||||||
`thumb` VARCHAR(255) NOT NULL,
|
`thumb` VARCHAR(255) NOT NULL,
|
||||||
@@ -214,7 +214,7 @@ CREATE TABLE `myaac_screenshots`
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
|
|
||||||
INSERT INTO `myaac_screenshots` (`id`, `ordering`, `name`, `comment`, `image`, `thumb`, `author`) VALUES (NULL, 1, 'Demon', 'Demon', 'images/screenshots/demon.jpg', 'images/screenshots/demon_thumb.gif', 'MyAAC');
|
INSERT INTO `myaac_screenshots` (`id`, `ordering`, `comment`, `image`, `thumb`, `author`) VALUES (NULL, 1, 'Demon', 'images/screenshots/demon.jpg', 'images/screenshots/demon_thumb.gif', 'MyAAC');
|
||||||
|
|
||||||
CREATE TABLE `myaac_spells`
|
CREATE TABLE `myaac_spells`
|
||||||
(
|
(
|
||||||
@@ -231,7 +231,6 @@ CREATE TABLE `myaac_spells`
|
|||||||
`conjure_count` TINYINT(3) NOT NULL DEFAULT 0,
|
`conjure_count` TINYINT(3) NOT NULL DEFAULT 0,
|
||||||
`premium` TINYINT(1) NOT NULL DEFAULT 0,
|
`premium` TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
`vocations` VARCHAR(32) NOT NULL,
|
`vocations` VARCHAR(32) NOT NULL,
|
||||||
`cities` VARCHAR(32) NOT NULL,
|
|
||||||
`hidden` TINYINT(1) NOT NULL DEFAULT 0,
|
`hidden` TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE (`spell`)
|
UNIQUE (`spell`)
|
||||||
@@ -243,4 +242,4 @@ CREATE TABLE `myaac_visitors`
|
|||||||
`lastvisit` INT(11) NOT NULL DEFAULT 0,
|
`lastvisit` INT(11) NOT NULL DEFAULT 0,
|
||||||
`page` VARCHAR(100) NOT NULL,
|
`page` VARCHAR(100) NOT NULL,
|
||||||
UNIQUE (`ip`)
|
UNIQUE (`ip`)
|
||||||
) ENGINE = MyISAM;
|
) ENGINE = MyISAM;
|
||||||
|
@@ -169,7 +169,7 @@ if(!$error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!fieldExist('description', 'guilds')) {
|
if(!fieldExist('description', 'guilds')) {
|
||||||
if(query("ALTER TABLE `guilds` ADD `description` TEXT NOT NULL DEFAULT '';"))
|
if(query("ALTER TABLE `guilds` ADD `description` TEXT NOT NULL;"))
|
||||||
success($locale['step_database_adding_field'] . ' guilds.description...');
|
success($locale['step_database_adding_field'] . ' guilds.description...');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@ if(!$error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!fieldExist('comment', 'players')) {
|
if(!fieldExist('comment', 'players')) {
|
||||||
if(query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL DEFAULT '';"))
|
if(query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL;"))
|
||||||
success($locale['step_database_adding_field'] . ' players.comment...');
|
success($locale['step_database_adding_field'] . ' players.comment...');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -218,10 +218,6 @@ if(!$error) {
|
|||||||
if(!$error && (!isset($_SESSION['saved']))) {
|
if(!$error && (!isset($_SESSION['saved']))) {
|
||||||
$content .= '$config[\'installed\'] = true;';
|
$content .= '$config[\'installed\'] = true;';
|
||||||
$content .= PHP_EOL;
|
$content .= PHP_EOL;
|
||||||
// if(strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) {
|
|
||||||
// $content .= '$config[\'friendly_urls\'] = true;';
|
|
||||||
// $content .= PHP_EOL;
|
|
||||||
// }
|
|
||||||
|
|
||||||
$content .= '$config[\'mail_enabled\'] = true;';
|
$content .= '$config[\'mail_enabled\'] = true;';
|
||||||
$content .= PHP_EOL;
|
$content .= PHP_EOL;
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
|
||||||
if(isset($config['installed']) && $config['installed'] && !isset($_SESSION['saved'])) {
|
if(isset($config['installed']) && $config['installed'] && !isset($_SESSION['saved'])) {
|
||||||
echo '<p class="warning">' . $locale['already_installed'] . '</p>';
|
warning($locale['already_installed']);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
require(SYSTEM . 'init.php');
|
require(SYSTEM . 'init.php');
|
||||||
@@ -50,12 +50,12 @@ else {
|
|||||||
else
|
else
|
||||||
$account_db->load($account_id);
|
$account_db->load($account_id);
|
||||||
|
|
||||||
$player_db = $ots->createObject('Player');
|
$player_db = new OTS_Player();
|
||||||
$player_db->find('Admin');
|
$player_db->find('Admin');
|
||||||
$groups = new OTS_Groups_List();
|
$groups = new OTS_Groups_List();
|
||||||
if(!$player_db->isLoaded())
|
if(!$player_db->isLoaded())
|
||||||
{
|
{
|
||||||
$player = $ots->createObject('Player');
|
$player = new OTS_Player();
|
||||||
$player->setName('Admin');
|
$player->setName('Admin');
|
||||||
|
|
||||||
$player->setGroupId($groups->getHighestId());
|
$player->setGroupId($groups->getHighestId());
|
||||||
@@ -84,7 +84,7 @@ else {
|
|||||||
$_SESSION['account'] = $account_db->getId();
|
$_SESSION['account'] = $account_db->getId();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$new_account = $ots->createObject('Account');
|
$new_account = new OTS_Account();
|
||||||
$new_account->create($account);
|
$new_account->create($account);
|
||||||
|
|
||||||
$new_account->setPassword(encrypt($password));
|
$new_account->setPassword(encrypt($password));
|
||||||
@@ -114,36 +114,75 @@ else {
|
|||||||
$_SESSION['account'] = $new_account->getId();
|
$_SESSION['account'] = $new_account->getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
if($player_db->isLoaded())
|
|
||||||
$player_db->save();
|
|
||||||
else
|
|
||||||
$player->save();
|
|
||||||
|
|
||||||
success($locale['step_database_created_account']);
|
success($locale['step_database_created_account']);
|
||||||
$_SESSION['password'] = encrypt($password);
|
$_SESSION['password'] = encrypt($password);
|
||||||
$_SESSION['remember_me'] = true;
|
$_SESSION['remember_me'] = true;
|
||||||
|
|
||||||
|
if($player_db->isLoaded()) {
|
||||||
|
$player_db->save();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$player->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
$player_id = 0;
|
||||||
|
$query = $db->query("SELECT `id` FROM `players` WHERE `name` = " . $db->quote('Admin') . ";");
|
||||||
|
if($query->rowCount() == 1) {
|
||||||
|
$query = $query->fetch();
|
||||||
|
$player_id = $query['id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if(query("INSERT INTO `myaac_news` (`id`, `type`, `date`, `category`, `title`, `body`, `player_id`, `comments`, `hidden`) VALUES (NULL, '1', UNIX_TIMESTAMP(), '2', 'Hello!', 'MyAAC is just READY to use!', " . $player_id . ", 'http://my-aac.org', '0');
|
||||||
|
INSERT INTO `myaac_news` (`id`, `type`, `date`, `category`, `title`, `body`, `player_id`, `comments`, `hidden`) VALUES (NULL, '2', UNIX_TIMESTAMP(), '4', 'Hello tickets!', 'http://my-aac.org', " . $player_id . ", '', '0');")) {
|
||||||
|
success($locale['step_database_created_news']);
|
||||||
|
}
|
||||||
|
|
||||||
$deleted = 'deleted';
|
$deleted = 'deleted';
|
||||||
if(fieldExist('deletion', 'players'))
|
if(fieldExist('deletion', 'players'))
|
||||||
$deleted = 'deletion';
|
$deleted = 'deletion';
|
||||||
|
|
||||||
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Rook Sample') . ' OR `name` = ' . $db->quote('Sorcerer Sample') . ' OR `name` = ' . $db->quote('Druid Sample') . ' OR `name` = ' . $db->quote('Paladin Sample') . ' OR `name` = ' . $db->quote('Knight Sample'));
|
$insert_into_players = "INSERT INTO `players` (`id`, `name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `lastlogout`, `balance`, `$deleted`, `created`, `hidden`, `comment`) VALUES ";
|
||||||
|
$success = true;
|
||||||
|
|
||||||
|
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Rook Sample'));
|
||||||
if($query->rowCount() == 0) {
|
if($query->rowCount() == 0) {
|
||||||
if(query("INSERT INTO `players` (`id`, `name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `lastlogout`, `balance`, `$deleted`, `created`, `hidden`, `comment`) VALUES
|
if(!query($insert_into_players . "(null, 'Rook Sample', 1, 1, 8, 0, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179613, 2453925456, 1, 1255179614, 0, 1, UNIX_TIMESTAMP(), 1, '');"))
|
||||||
(null, 'Rook Sample', 1, 1, 8, 0, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179613, 2453925456, 1, 1255179614, 0, 1, UNIX_TIMESTAMP(), 1, ''),
|
$success = false;
|
||||||
(null, 'Sorcerer Sample', 1, 1, 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179571, 2453925456, 1, 1255179612, 0, 1, UNIX_TIMESTAMP(), 1, ''),
|
|
||||||
(null, 'Druid Sample', 1, 1, 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179655, 2453925456, 1, 1255179658, 0, 1, UNIX_TIMESTAMP(), 1, ''),
|
|
||||||
(null, 'Paladin Sample', 1, 1, 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179854, 2453925456, 1, 1255179858, 0, 1, UNIX_TIMESTAMP(), 1, ''),
|
|
||||||
(null, 'Knight Sample', 1, 1, 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179620, 2453925456, 1, 1255179654, 0, 1, UNIX_TIMESTAMP(), 1, '');"))
|
|
||||||
success($locale['step_database_imported_players']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Sorcerer Sample'));
|
||||||
|
if($query->rowCount() == 0) {
|
||||||
|
if(!query($insert_into_players . "(null, 'Sorcerer Sample', 1, 1, 8, 1, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179571, 2453925456, 1, 1255179612, 0, 1, UNIX_TIMESTAMP(), 1, '');"))
|
||||||
|
$success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Druid Sample'));
|
||||||
|
if($query->rowCount() == 0) {
|
||||||
|
if(!query($insert_into_players . "(null, 'Druid Sample', 1, 1, 8, 2, 185, 185, 4200, 118, 114, 38, 57, 130, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179655, 2453925456, 1, 1255179658, 0, 1, UNIX_TIMESTAMP(), 1, '');"))
|
||||||
|
$success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Paladin Sample'));
|
||||||
|
if($query->rowCount() == 0) {
|
||||||
|
if(!query($insert_into_players . "(null, 'Paladin Sample', 1, 1, 8, 3, 185, 185, 4200, 118, 114, 38, 57, 129, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179854, 2453925456, 1, 1255179858, 0, 1, UNIX_TIMESTAMP(), 1, '');"))
|
||||||
|
$success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $db->query('SELECT `id` FROM `players` WHERE `name` = ' . $db->quote('Knight Sample'));
|
||||||
|
if($query->rowCount() == 0) {
|
||||||
|
if(!query($insert_into_players . "(null, 'Knight Sample', 1, 1, 8, 4, 185, 185, 4200, 118, 114, 38, 57, 131, 0, 35, 35, 0, 100, 11, 2200, 1298, 7, '', 470, 1, 1255179620, 2453925456, 1, 1255179654, 0, 1, UNIX_TIMESTAMP(), 1, '');"))
|
||||||
|
$success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($success) {
|
||||||
|
success($locale['step_database_imported_players']);
|
||||||
|
}
|
||||||
|
|
||||||
$locale['step_finish_desc'] = str_replace('$ADMIN_PANEL$', generateLink(ADMIN_URL, $locale['step_finish_admin_panel'], true), $locale['step_finish_desc']);
|
$locale['step_finish_desc'] = str_replace('$ADMIN_PANEL$', generateLink(ADMIN_URL, $locale['step_finish_admin_panel'], true), $locale['step_finish_desc']);
|
||||||
$locale['step_finish_desc'] = str_replace('$HOMEPAGE$', generateLink(BASE_URL, $locale['step_finish_homepage'], true), $locale['step_finish_desc']);
|
$locale['step_finish_desc'] = str_replace('$HOMEPAGE$', generateLink(BASE_URL, $locale['step_finish_homepage'], true), $locale['step_finish_desc']);
|
||||||
$locale['step_finish_desc'] = str_replace('$LINK$', generateLink('http://my-aac.org', 'http://my-aac.org', true), $locale['step_finish_desc']);
|
$locale['step_finish_desc'] = str_replace('$LINK$', generateLink('http://my-aac.org', 'http://my-aac.org', true), $locale['step_finish_desc']);
|
||||||
?>
|
|
||||||
<p class="success"><?php echo $locale['step_finish_desc']; ?></p>
|
success($locale['step_finish_desc']);
|
||||||
<?php
|
|
||||||
|
|
||||||
if(!isset($_SESSION['installed'])) {
|
if(!isset($_SESSION['installed'])) {
|
||||||
file_get_contents('http://my-aac.org/report_install.php?v=' . MYAAC_VERSION . '&b=' . urlencode(BASE_URL));
|
file_get_contents('http://my-aac.org/report_install.php?v=' . MYAAC_VERSION . '&b=' . urlencode(BASE_URL));
|
||||||
|
@@ -22,7 +22,7 @@ function version_check($name, $ok, $info = '', $warning = false)
|
|||||||
$failed = false;
|
$failed = false;
|
||||||
|
|
||||||
// start validating
|
// start validating
|
||||||
version_check($locale['step_requirements_php_version'], (PHP_VERSION_ID >= 50000), PHP_VERSION);
|
version_check($locale['step_requirements_php_version'], (PHP_VERSION_ID >= 50200), PHP_VERSION);
|
||||||
foreach(array('config.local.php', 'images/guilds', 'images/houses', 'images/screenshots') as $value)
|
foreach(array('config.local.php', 'images/guilds', 'images/houses', 'images/screenshots') as $value)
|
||||||
{
|
{
|
||||||
$perms = (int) substr(decoct(fileperms(BASE . $value)), 2);
|
$perms = (int) substr(decoct(fileperms(BASE . $value)), 2);
|
||||||
|
@@ -40,7 +40,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<p style="text-align: center;">Powered by <a href="http://my-aac.org" target="_blank">MyAAC.</a></p>
|
<p style="text-align: center;"><?php echo base64_decode('UG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vbXktYWFjLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPk15QUFDLjwvYT4='); ?></p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
1
system/cache/signatures/.htaccess
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
deny from all
|
1
system/cache/twig/.htaccess
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
deny from all
|
@@ -5,7 +5,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
@@ -5,17 +5,26 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
function success($message) {
|
function success($message, $return = false) {
|
||||||
|
if($return)
|
||||||
|
return '<p class="success">' . $message . '</p>';
|
||||||
|
|
||||||
echo '<p class="success">' . $message . '</p>';
|
echo '<p class="success">' . $message . '</p>';
|
||||||
}
|
}
|
||||||
function warning($message) {
|
function warning($message, $return = false) {
|
||||||
|
if($return)
|
||||||
|
return '<p class="warning">' . $message . '</p>';
|
||||||
|
|
||||||
echo '<p class="warning">' . $message . '</p>';
|
echo '<p class="warning">' . $message . '</p>';
|
||||||
}
|
}
|
||||||
function error($message) {
|
function error($message, $return = false) {
|
||||||
|
if($return)
|
||||||
|
return '<p class="error">' . $message . '</p>';
|
||||||
|
|
||||||
echo '<p class="error">' . $message . '</p>';
|
echo '<p class="error">' . $message . '</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,10 +227,11 @@ function generateRandomString($length, $lowCase = true, $upCase = false, $numeri
|
|||||||
*
|
*
|
||||||
* @return array Forum sections.
|
* @return array Forum sections.
|
||||||
*/
|
*/
|
||||||
function getForumSections()
|
function getForumBoards()
|
||||||
{
|
{
|
||||||
global $db;
|
global $db, $canEdit;
|
||||||
$sections = $db->query('SELECT `id`, `name`, `description`, `closed` FROM ' . TABLE_PREFIX . 'forum_sections WHERE hidden != 1 ORDER BY `ordering`;');
|
$sections = $db->query('SELECT `id`, `name`, `description`, `closed`' . ($canEdit ? ', `hidden`, `ordering`' : '') . ' FROM `' . TABLE_PREFIX . 'forum_boards` ' . (!$canEdit ? ' WHERE `hidden` != 1' : '') .
|
||||||
|
' ORDER BY `ordering`;');
|
||||||
if($sections)
|
if($sections)
|
||||||
return $sections->fetchAll();
|
return $sections->fetchAll();
|
||||||
|
|
||||||
@@ -379,12 +389,12 @@ function delete_guild($id)
|
|||||||
|
|
||||||
global $db, $ots;
|
global $db, $ots;
|
||||||
foreach($rank_list as $rank_in_guild) {
|
foreach($rank_list as $rank_in_guild) {
|
||||||
if(fieldExist('rank_id', 'players'))
|
if(tableExist('guild_members'))
|
||||||
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;');
|
|
||||||
else if(tableExist('guild_members'))
|
|
||||||
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_members`.`rank_id` as `rank_id` FROM `players`, `guild_members` WHERE `guild_members`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_members`.`player_id` ORDER BY `name`;');
|
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_members`.`rank_id` as `rank_id` FROM `players`, `guild_members` WHERE `guild_members`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_members`.`player_id` ORDER BY `name`;');
|
||||||
else
|
else if(tableExist('guild_membership'))
|
||||||
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;');
|
$players_with_rank = $db->query('SELECT `players`.`id` as `id`, `guild_membership`.`rank_id` as `rank_id` FROM `players`, `guild_membership` WHERE `guild_membership`.`rank_id` = ' . $rank_in_guild->getId() . ' AND `players`.`id` = `guild_membership`.`player_id` ORDER BY `name`;');
|
||||||
|
else
|
||||||
|
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank_in_guild->getId() . ' AND `deleted` = 0;');
|
||||||
|
|
||||||
$players_with_rank_number = $players_with_rank->rowCount();
|
$players_with_rank_number = $players_with_rank->rowCount();
|
||||||
if($players_with_rank_number > 0) {
|
if($players_with_rank_number > 0) {
|
||||||
@@ -441,7 +451,7 @@ function check_name($name, &$error = '')
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return preg_match("/[A-z ']{1,25}/", $name);
|
return preg_match("/[A-z ']/", $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -601,7 +611,7 @@ function check_name_new_char($name, &$error = '')
|
|||||||
$player = new OTS_Player();
|
$player = new OTS_Player();
|
||||||
$player->find($name);
|
$player->find($name);
|
||||||
if($player->isLoaded()) {
|
if($player->isLoaded()) {
|
||||||
$error = 'Player with this name already exist.';
|
$error = 'Character with this name already exist.';
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -614,28 +624,19 @@ function check_name_new_char($name, &$error = '')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$monsters = $db->query(
|
$monsters = $db->query('SELECT `name` FROM `' . TABLE_PREFIX . 'monsters` WHERE `name` LIKE ' . $db->quote($name_lower));
|
||||||
'SELECT ' . $db->fieldName('name') .
|
|
||||||
' FROM ' . $db->tableName(TABLE_PREFIX . 'monsters') .
|
|
||||||
' WHERE ' . $db->fieldName('name') . ' LIKE ' . $db->quote($name_lower));
|
|
||||||
if($monsters->rowCount() > 0) {
|
if($monsters->rowCount() > 0) {
|
||||||
$error = 'Your name cannot contains monster name.';
|
$error = 'Your name cannot contains monster name.';
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$spells_name = $db->query(
|
$spells_name = $db->query('SELECT `name` FROM `' . TABLE_PREFIX . 'spells` WHERE `name` LIKE ' . $db->quote($name_lower));
|
||||||
'SELECT ' . $db->fieldName('name') .
|
|
||||||
' FROM ' . $db->tableName(TABLE_PREFIX . 'spells') .
|
|
||||||
' WHERE ' . $db->fieldName('name') . ' LIKE ' . $db->quote($name_lower));
|
|
||||||
if($spells_name->rowCount() > 0) {
|
if($spells_name->rowCount() > 0) {
|
||||||
$error = 'Your name cannot contains spell name.';
|
$error = 'Your name cannot contains spell name.';
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$spells_words = $db->query(
|
$spells_words = $db->query('SELECT `words` FROM `' . TABLE_PREFIX . 'spells` WHERE `words` = ' . $db->quote($name_lower));
|
||||||
'SELECT ' . $db->fieldName('words') .
|
|
||||||
' FROM ' . $db->tableName(TABLE_PREFIX . 'spells') .
|
|
||||||
' WHERE ' . $db->fieldName('words') . ' = ' . $db->quote($name_lower));
|
|
||||||
if($spells_words->rowCount() > 0) {
|
if($spells_words->rowCount() > 0) {
|
||||||
$error = 'Your name cannot contains spell name.';
|
$error = 'Your name cannot contains spell name.';
|
||||||
return false;
|
return false;
|
||||||
@@ -689,7 +690,7 @@ function check_password($pass)
|
|||||||
if(strspn($pass, "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890") != strlen($pass))
|
if(strspn($pass, "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890") != strlen($pass))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return preg_match("/[A-z0-9]{7,32}/", $pass);
|
return preg_match("/[A-z0-9]/", $pass);
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_mail($email)
|
function check_mail($email)
|
||||||
@@ -751,28 +752,6 @@ function news_place()
|
|||||||
return $news;
|
return $news;
|
||||||
}
|
}
|
||||||
|
|
||||||
function output_errors($errors)
|
|
||||||
{
|
|
||||||
global $template_path;
|
|
||||||
?>
|
|
||||||
<div class="SmallBox" >
|
|
||||||
<div class="MessageContainer" >
|
|
||||||
<div class="BoxFrameHorizontal" style="background-image:url(<?php echo $template_path; ?>/images/content/box-frame-horizontal.gif);" /></div>
|
|
||||||
<div class="BoxFrameEdgeLeftTop" style="background-image:url(<?php echo $template_path; ?>/images/content/box-frame-edge.gif);" /></div>
|
|
||||||
<div class="BoxFrameEdgeRightTop" style="background-image:url(<?php echo $template_path; ?>/images/content/box-frame-edge.gif);" /></div>
|
|
||||||
<div class="ErrorMessage" >
|
|
||||||
<div class="BoxFrameVerticalLeft" style="background-image:url(<?php echo $template_path; ?>/images/content/box-frame-vertical.gif);" />
|
|
||||||
</div>
|
|
||||||
<div class="BoxFrameVerticalRight" style="background-image:url(<?php echo $template_path; ?>/images/content/box-frame-vertical.gif);" /></div>
|
|
||||||
<div class="AttentionSign" style="background-image:url(<?php echo $template_path; ?>/images/content/attentionsign.gif);" />
|
|
||||||
</div><b>The Following Errors Have Occurred:</b><br/>
|
|
||||||
<?php
|
|
||||||
foreach($errors as $field => $message)
|
|
||||||
echo $message . '<br/>';
|
|
||||||
|
|
||||||
echo '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$template_path.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$template_path.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Template place holder
|
* Template place holder
|
||||||
*
|
*
|
||||||
@@ -1149,7 +1128,7 @@ function _mail($to, $subject, $body, $altBody = '', $add_html_tags = true)
|
|||||||
global $mailer, $config;
|
global $mailer, $config;
|
||||||
if(!$mailer)
|
if(!$mailer)
|
||||||
{
|
{
|
||||||
require(SYSTEM . 'libs/phpmailer/class.phpmailer.php');
|
require(SYSTEM . 'libs/phpmailer/PHPMailerAutoload.php');
|
||||||
$mailer = new PHPMailer();
|
$mailer = new PHPMailer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1202,7 +1181,7 @@ function convert_bytes($size)
|
|||||||
function log_append($file, $str)
|
function log_append($file, $str)
|
||||||
{
|
{
|
||||||
$f = fopen(LOGS . $file, 'a');
|
$f = fopen(LOGS . $file, 'a');
|
||||||
fwrite($f, $str . PHP_EOL);
|
fwrite($f, '[' . date(DateTime::RFC1123) . '] ' . $str . PHP_EOL);
|
||||||
fclose($f);
|
fclose($f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1215,8 +1194,11 @@ function load_config_lua($filename)
|
|||||||
die('ERROR: Cannot find ' . $filename . ' file.');
|
die('ERROR: Cannot find ' . $filename . ' file.');
|
||||||
|
|
||||||
$tempFile = @tempnam('/tmp', 'lua');
|
$tempFile = @tempnam('/tmp', 'lua');
|
||||||
$file = fopen($tempFile, 'w');
|
$file = @fopen($tempFile, 'w');
|
||||||
if(!$file) die('Cannot load server config!');
|
if(!$file) {
|
||||||
|
log_append('error.log', '[functions.php] Cannot load config.lua file. Error: ' . print_r(error_get_last(), true));
|
||||||
|
die('Cannot load server config! More info in system/logs/error.log file.');
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: new parser that will also load dofile() includes
|
// TODO: new parser that will also load dofile() includes
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
@@ -84,7 +84,7 @@ class Hooks
|
|||||||
public function load()
|
public function load()
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
$hooks = $db->query('SELECT `name`, `type`, `file` FROM `' . TABLE_PREFIX . 'hooks`;');
|
$hooks = $db->query('SELECT `name`, `type`, `file` FROM `' . TABLE_PREFIX . 'hooks` WHERE `enabled` = 1;');
|
||||||
foreach($hooks as $hook)
|
foreach($hooks as $hook)
|
||||||
$this->register($hook['name'], $hook['type'], $hook['file']);
|
$this->register($hook['name'], $hook['type'], $hook['file']);
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
@@ -14,18 +14,33 @@ require_once(BASE . 'config.php');
|
|||||||
if(file_exists(BASE . 'config.local.php')) // user customizations
|
if(file_exists(BASE . 'config.local.php')) // user customizations
|
||||||
require(BASE . 'config.local.php');
|
require(BASE . 'config.local.php');
|
||||||
|
|
||||||
|
date_default_timezone_set($config['date_timezone']);
|
||||||
// take care of trailing slash at the end
|
// take care of trailing slash at the end
|
||||||
if($config['server_path'][strlen($config['server_path']) - 1] != '/')
|
if($config['server_path'][strlen($config['server_path']) - 1] != '/')
|
||||||
$config['server_path'] .= '/';
|
$config['server_path'] .= '/';
|
||||||
|
|
||||||
// enable gzip compression if supported by the browser
|
// enable gzip compression if supported by the browser
|
||||||
if($config['gzip_output'] && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) && function_exists('ob_gzhandler'))
|
if($config['gzip_output'] && isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false && function_exists('ob_gzhandler'))
|
||||||
ob_start('ob_gzhandler');
|
ob_start('ob_gzhandler');
|
||||||
|
|
||||||
// cache
|
// cache
|
||||||
require_once(SYSTEM . 'libs/cache.php');
|
require_once(SYSTEM . 'libs/cache.php');
|
||||||
$cache = Cache::getInstance($config['cache_engine'], $config['cache_prefix']);
|
$cache = Cache::getInstance($config['cache_engine'], $config['cache_prefix']);
|
||||||
|
|
||||||
|
// twig
|
||||||
|
require_once LIBS . 'Twig/Autoloader.php';
|
||||||
|
Twig_Autoloader::register();
|
||||||
|
|
||||||
|
$twig_loader = new Twig_Loader_Filesystem(SYSTEM . 'templates');
|
||||||
|
$twig = new Twig_Environment($twig_loader, array(
|
||||||
|
'cache' => CACHE . 'twig/'
|
||||||
|
));
|
||||||
|
|
||||||
|
$function = new Twig_SimpleFunction('getStyle', function ($i) {
|
||||||
|
return getStyle($i);
|
||||||
|
});
|
||||||
|
$twig->addFunction($function);
|
||||||
|
|
||||||
// trim values we receive
|
// trim values we receive
|
||||||
if(isset($_POST))
|
if(isset($_POST))
|
||||||
{
|
{
|
||||||
@@ -123,11 +138,11 @@ if($cache->enabled() && $cache->fetch('vocations', $tmp)) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$vocations = new DOMDocument();
|
$vocations = new DOMDocument();
|
||||||
$path_extra = 'XML/';
|
$file = $config['data_path'] . 'XML/vocations.xml';
|
||||||
if($config['otserv_version'] >= OTSERV_FIRST && $config['otserv_version'] <= OTSERV_LAST)
|
if(!@file_exists($file))
|
||||||
$path_extra = '';
|
$file = $config['data_path'] . 'vocations.xml';
|
||||||
|
|
||||||
$vocations->load($config['data_path'] . $path_extra . 'vocations.xml');
|
$vocations->load($file);
|
||||||
|
|
||||||
if(!$vocations)
|
if(!$vocations)
|
||||||
die('ERROR: Cannot load <i>vocations.xml</i> file.');
|
die('ERROR: Cannot load <i>vocations.xml</i> file.');
|
||||||
@@ -135,10 +150,7 @@ else {
|
|||||||
$config['vocations'] = array();
|
$config['vocations'] = array();
|
||||||
foreach($vocations->getElementsByTagName('vocation') as $vocation) {
|
foreach($vocations->getElementsByTagName('vocation') as $vocation) {
|
||||||
$id = $vocation->getAttribute('id');
|
$id = $vocation->getAttribute('id');
|
||||||
//if($id == $vocation->getAttribute('fromvoc'))
|
$config['vocations'][$id] = $vocation->getAttribute('name');
|
||||||
$config['vocations'][$id] = $vocation->getAttribute('name');
|
|
||||||
//else
|
|
||||||
// $config['vocations'][$id] = $vocation->getAttribute('name');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($cache->enabled()) {
|
if($cache->enabled()) {
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* @package MyAAC
|
* @package MyAAC
|
||||||
* @author Slawkens <slawkens@gmail.com>
|
* @author Slawkens <slawkens@gmail.com>
|
||||||
* @copyright 2017 MyAAC
|
* @copyright 2017 MyAAC
|
||||||
* @version 0.2.1
|
* @version 0.4.2
|
||||||
* @link http://my-aac.org
|
* @link http://my-aac.org
|
||||||
*/
|
*/
|
||||||
defined('MYAAC') or die('Direct access not allowed!');
|
defined('MYAAC') or die('Direct access not allowed!');
|
||||||
|
48
system/libs/Twig/Autoloader.php
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Twig.
|
||||||
|
*
|
||||||
|
* (c) 2009 Fabien Potencier
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autoloads Twig classes.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
class Twig_Autoloader
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Registers Twig_Autoloader as an SPL autoloader.
|
||||||
|
*
|
||||||
|
* @param bool $prepend Whether to prepend the autoloader or not.
|
||||||
|
*/
|
||||||
|
public static function register($prepend = false)
|
||||||
|
{
|
||||||
|
if (PHP_VERSION_ID < 50300) {
|
||||||
|
spl_autoload_register(array(__CLASS__, 'autoload'));
|
||||||
|
} else {
|
||||||
|
spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles autoloading of classes.
|
||||||
|
*
|
||||||
|
* @param string $class A class name.
|
||||||
|
*/
|
||||||
|
public static function autoload($class)
|
||||||
|
{
|
||||||
|
if (0 !== strpos($class, 'Twig')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_file($file = dirname(__FILE__).'/../'.str_replace(array('_', "\0"), array('/', ''), $class).'.php')) {
|
||||||
|
require $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
62
system/libs/Twig/BaseNodeVisitor.php
Executable file
@@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Twig.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Twig_BaseNodeVisitor can be used to make node visitors compatible with Twig 1.x and 2.x.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
abstract class Twig_BaseNodeVisitor implements Twig_NodeVisitorInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
final public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
|
||||||
|
{
|
||||||
|
if (!$node instanceof Twig_Node) {
|
||||||
|
throw new LogicException('Twig_BaseNodeVisitor only supports Twig_Node instances.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->doEnterNode($node, $env);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
final public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
|
||||||
|
{
|
||||||
|
if (!$node instanceof Twig_Node) {
|
||||||
|
throw new LogicException('Twig_BaseNodeVisitor only supports Twig_Node instances.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->doLeaveNode($node, $env);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called before child nodes are visited.
|
||||||
|
*
|
||||||
|
* @param Twig_Node $node The node to visit
|
||||||
|
* @param Twig_Environment $env The Twig environment instance
|
||||||
|
*
|
||||||
|
* @return Twig_Node The modified node
|
||||||
|
*/
|
||||||
|
abstract protected function doEnterNode(Twig_Node $node, Twig_Environment $env);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called after child nodes are visited.
|
||||||
|
*
|
||||||
|
* @param Twig_Node $node The node to visit
|
||||||
|
* @param Twig_Environment $env The Twig environment instance
|
||||||
|
*
|
||||||
|
* @return Twig_Node|false The modified node or false if the node must be removed
|
||||||
|
*/
|
||||||
|
abstract protected function doLeaveNode(Twig_Node $node, Twig_Environment $env);
|
||||||
|
}
|
278
system/libs/Twig/Compiler.php
Executable file
@@ -0,0 +1,278 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Twig.
|
||||||
|
*
|
||||||
|
* (c) 2009 Fabien Potencier
|
||||||
|
* (c) 2009 Armin Ronacher
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compiles a node to PHP code.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
class Twig_Compiler implements Twig_CompilerInterface
|
||||||
|
{
|
||||||
|
protected $lastLine;
|
||||||
|
protected $source;
|
||||||
|
protected $indentation;
|
||||||
|
protected $env;
|
||||||
|
protected $debugInfo;
|
||||||
|
protected $sourceOffset;
|
||||||
|
protected $sourceLine;
|
||||||
|
protected $filename;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param Twig_Environment $env The twig environment instance
|
||||||
|
*/
|
||||||
|
public function __construct(Twig_Environment $env)
|
||||||
|
{
|
||||||
|
$this->env = $env;
|
||||||
|
$this->debugInfo = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFilename()
|
||||||
|
{
|
||||||
|
return $this->filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the environment instance related to this compiler.
|
||||||
|
*
|
||||||
|
* @return Twig_Environment The environment instance
|
||||||
|
*/
|
||||||
|
public function getEnvironment()
|
||||||
|
{
|
||||||
|
return $this->env;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the current PHP code after compilation.
|
||||||
|
*
|
||||||
|
* @return string The PHP code
|
||||||
|
*/
|
||||||
|
public function getSource()
|
||||||
|
{
|
||||||
|
return $this->source;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compiles a node.
|
||||||
|
*
|
||||||
|
* @param Twig_NodeInterface $node The node to compile
|
||||||
|
* @param int $indentation The current indentation
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function compile(Twig_NodeInterface $node, $indentation = 0)
|
||||||
|
{
|
||||||
|
$this->lastLine = null;
|
||||||
|
$this->source = '';
|
||||||
|
$this->debugInfo = array();
|
||||||
|
$this->sourceOffset = 0;
|
||||||
|
// source code starts at 1 (as we then increment it when we encounter new lines)
|
||||||
|
$this->sourceLine = 1;
|
||||||
|
$this->indentation = $indentation;
|
||||||
|
|
||||||
|
if ($node instanceof Twig_Node_Module) {
|
||||||
|
$this->filename = $node->getAttribute('filename');
|
||||||
|
}
|
||||||
|
|
||||||
|
$node->compile($this);
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function subcompile(Twig_NodeInterface $node, $raw = true)
|
||||||
|
{
|
||||||
|
if (false === $raw) {
|
||||||
|
$this->addIndentation();
|
||||||
|
}
|
||||||
|
|
||||||
|
$node->compile($this);
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a raw string to the compiled code.
|
||||||
|
*
|
||||||
|
* @param string $string The string
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function raw($string)
|
||||||
|
{
|
||||||
|
$this->source .= $string;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Writes a string to the compiled code by adding indentation.
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function write()
|
||||||
|
{
|
||||||
|
$strings = func_get_args();
|
||||||
|
foreach ($strings as $string) {
|
||||||
|
$this->addIndentation();
|
||||||
|
$this->source .= $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Appends an indentation to the current PHP code after compilation.
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function addIndentation()
|
||||||
|
{
|
||||||
|
$this->source .= str_repeat(' ', $this->indentation * 4);
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a quoted string to the compiled code.
|
||||||
|
*
|
||||||
|
* @param string $value The string
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function string($value)
|
||||||
|
{
|
||||||
|
$this->source .= sprintf('"%s"', addcslashes($value, "\0\t\"\$\\"));
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a PHP representation of a given value.
|
||||||
|
*
|
||||||
|
* @param mixed $value The value to convert
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function repr($value)
|
||||||
|
{
|
||||||
|
if (is_int($value) || is_float($value)) {
|
||||||
|
if (false !== $locale = setlocale(LC_NUMERIC, 0)) {
|
||||||
|
setlocale(LC_NUMERIC, 'C');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->raw($value);
|
||||||
|
|
||||||
|
if (false !== $locale) {
|
||||||
|
setlocale(LC_NUMERIC, $locale);
|
||||||
|
}
|
||||||
|
} elseif (null === $value) {
|
||||||
|
$this->raw('null');
|
||||||
|
} elseif (is_bool($value)) {
|
||||||
|
$this->raw($value ? 'true' : 'false');
|
||||||
|
} elseif (is_array($value)) {
|
||||||
|
$this->raw('array(');
|
||||||
|
$first = true;
|
||||||
|
foreach ($value as $key => $v) {
|
||||||
|
if (!$first) {
|
||||||
|
$this->raw(', ');
|
||||||
|
}
|
||||||
|
$first = false;
|
||||||
|
$this->repr($key);
|
||||||
|
$this->raw(' => ');
|
||||||
|
$this->repr($v);
|
||||||
|
}
|
||||||
|
$this->raw(')');
|
||||||
|
} else {
|
||||||
|
$this->string($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds debugging information.
|
||||||
|
*
|
||||||
|
* @param Twig_NodeInterface $node The related twig node
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function addDebugInfo(Twig_NodeInterface $node)
|
||||||
|
{
|
||||||
|
if ($node->getLine() != $this->lastLine) {
|
||||||
|
$this->write(sprintf("// line %d\n", $node->getLine()));
|
||||||
|
|
||||||
|
// when mbstring.func_overload is set to 2
|
||||||
|
// mb_substr_count() replaces substr_count()
|
||||||
|
// but they have different signatures!
|
||||||
|
if (((int) ini_get('mbstring.func_overload')) & 2) {
|
||||||
|
// this is much slower than the "right" version
|
||||||
|
$this->sourceLine += mb_substr_count(mb_substr($this->source, $this->sourceOffset), "\n");
|
||||||
|
} else {
|
||||||
|
$this->sourceLine += substr_count($this->source, "\n", $this->sourceOffset);
|
||||||
|
}
|
||||||
|
$this->sourceOffset = strlen($this->source);
|
||||||
|
$this->debugInfo[$this->sourceLine] = $node->getLine();
|
||||||
|
|
||||||
|
$this->lastLine = $node->getLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDebugInfo()
|
||||||
|
{
|
||||||
|
ksort($this->debugInfo);
|
||||||
|
|
||||||
|
return $this->debugInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indents the generated code.
|
||||||
|
*
|
||||||
|
* @param int $step The number of indentation to add
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*/
|
||||||
|
public function indent($step = 1)
|
||||||
|
{
|
||||||
|
$this->indentation += $step;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Outdents the generated code.
|
||||||
|
*
|
||||||
|
* @param int $step The number of indentation to remove
|
||||||
|
*
|
||||||
|
* @return Twig_Compiler The current compiler instance
|
||||||
|
*
|
||||||
|
* @throws LogicException When trying to outdent too much so the indentation would become negative
|
||||||
|
*/
|
||||||
|
public function outdent($step = 1)
|
||||||
|
{
|
||||||
|
// can't outdent by more steps than the current indentation level
|
||||||
|
if ($this->indentation < $step) {
|
||||||
|
throw new LogicException('Unable to call outdent() as the indentation would become negative');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->indentation -= $step;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getVarName()
|
||||||
|
{
|
||||||
|
return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false));
|
||||||
|
}
|
||||||
|
}
|
36
system/libs/Twig/CompilerInterface.php
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Twig.
|
||||||
|
*
|
||||||
|
* (c) 2009 Fabien Potencier
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface implemented by compiler classes.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* @deprecated since 1.12 (to be removed in 3.0)
|
||||||
|
*/
|
||||||
|
interface Twig_CompilerInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Compiles a node.
|
||||||
|
*
|
||||||
|
* @param Twig_NodeInterface $node The node to compile
|
||||||
|
*
|
||||||
|
* @return Twig_CompilerInterface The current compiler instance
|
||||||
|
*/
|
||||||
|
public function compile(Twig_NodeInterface $node);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the current PHP code after compilation.
|
||||||
|
*
|
||||||
|
* @return string The PHP code
|
||||||
|
*/
|
||||||
|
public function getSource();
|
||||||
|
}
|
1294
system/libs/Twig/Environment.php
Executable file
250
system/libs/Twig/Error.php
Executable file
@@ -0,0 +1,250 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Twig.
|
||||||
|
*
|
||||||
|
* (c) 2009 Fabien Potencier
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Twig base exception.
|
||||||
|
*
|
||||||
|
* This exception class and its children must only be used when
|
||||||
|
* an error occurs during the loading of a template, when a syntax error
|
||||||
|
* is detected in a template, or when rendering a template. Other
|
||||||
|
* errors must use regular PHP exception classes (like when the template
|
||||||
|
* cache directory is not writable for instance).
|
||||||
|
*
|
||||||
|
* To help debugging template issues, this class tracks the original template
|
||||||
|
* name and line where the error occurred.
|
||||||
|
*
|
||||||
|
* Whenever possible, you must set these information (original template name
|
||||||
|
* and line number) yourself by passing them to the constructor. If some or all
|
||||||
|
* these information are not available from where you throw the exception, then
|
||||||
|
* this class will guess them automatically (when the line number is set to -1
|
||||||
|
* and/or the filename is set to null). As this is a costly operation, this
|
||||||
|
* can be disabled by passing false for both the filename and the line number
|
||||||
|
* when creating a new instance of this class.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
class Twig_Error extends Exception
|
||||||
|
{
|
||||||
|
protected $lineno;
|
||||||
|
protected $filename;
|
||||||
|
protected $rawMessage;
|
||||||
|
protected $previous;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* Set both the line number and the filename to false to
|
||||||
|
* disable automatic guessing of the original template name
|
||||||
|
* and line number.
|
||||||
|
*
|
||||||
|
* Set the line number to -1 to enable its automatic guessing.
|
||||||
|
* Set the filename to null to enable its automatic guessing.
|
||||||
|
*
|
||||||
|
* By default, automatic guessing is enabled.
|
||||||
|
*
|
||||||
|
* @param string $message The error message
|
||||||
|
* @param int $lineno The template line where the error occurred
|
||||||
|
* @param string $filename The template file name where the error occurred
|
||||||
|
* @param Exception $previous The previous exception
|
||||||
|
*/
|
||||||
|
public function __construct($message, $lineno = -1, $filename = null, Exception $previous = null)
|
||||||
|
{
|
||||||
|
if (PHP_VERSION_ID < 50300) {
|
||||||
|
$this->previous = $previous;
|
||||||
|
parent::__construct('');
|
||||||
|
} else {
|
||||||
|
parent::__construct('', 0, $previous);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->lineno = $lineno;
|
||||||
|
$this->filename = $filename;
|
||||||
|
|
||||||
|
if (-1 === $this->lineno || null === $this->filename) {
|
||||||
|
$this->guessTemplateInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->rawMessage = $message;
|
||||||
|
|
||||||
|
$this->updateRepr();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the raw message.
|
||||||
|
*
|
||||||
|
* @return string The raw message
|
||||||
|
*/
|
||||||
|
public function getRawMessage()
|
||||||
|
{
|
||||||
|
return $this->rawMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the filename where the error occurred.
|
||||||
|
*
|
||||||
|
* @return string The filename
|
||||||
|
*/
|
||||||
|
public function getTemplateFile()
|
||||||
|
{
|
||||||
|
return $this->filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the filename where the error occurred.
|
||||||
|
*
|
||||||
|
* @param string $filename The filename
|
||||||
|
*/
|
||||||
|
public function setTemplateFile($filename)
|
||||||
|
{
|
||||||
|
$this->filename = $filename;
|
||||||
|
|
||||||
|
$this->updateRepr();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the template line where the error occurred.
|
||||||
|
*
|
||||||
|
* @return int The template line
|
||||||
|
*/
|
||||||
|
public function getTemplateLine()
|
||||||
|
{
|
||||||
|
return $this->lineno;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the template line where the error occurred.
|
||||||
|
*
|
||||||
|
* @param int $lineno The template line
|
||||||
|
*/
|
||||||
|
public function setTemplateLine($lineno)
|
||||||
|
{
|
||||||
|
$this->lineno = $lineno;
|
||||||
|
|
||||||
|
$this->updateRepr();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function guess()
|
||||||
|
{
|
||||||
|
$this->guessTemplateInfo();
|
||||||
|
$this->updateRepr();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For PHP < 5.3.0, provides access to the getPrevious() method.
|
||||||
|
*
|
||||||
|
* @param string $method The method name
|
||||||
|
* @param array $arguments The parameters to be passed to the method
|
||||||
|
*
|
||||||
|
* @return Exception The previous exception or null
|
||||||
|
*
|
||||||
|
* @throws BadMethodCallException
|
||||||
|
*/
|
||||||
|
public function __call($method, $arguments)
|
||||||
|
{
|
||||||
|
if ('getprevious' == strtolower($method)) {
|
||||||
|
return $this->previous;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new BadMethodCallException(sprintf('Method "Twig_Error::%s()" does not exist.', $method));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function updateRepr()
|
||||||
|
{
|
||||||
|
$this->message = $this->rawMessage;
|
||||||
|
|
||||||
|
$dot = false;
|
||||||
|
if ('.' === substr($this->message, -1)) {
|
||||||
|
$this->message = substr($this->message, 0, -1);
|
||||||
|
$dot = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->filename) {
|
||||||
|
if (is_string($this->filename) || (is_object($this->filename) && method_exists($this->filename, '__toString'))) {
|
||||||
|
$filename = sprintf('"%s"', $this->filename);
|
||||||
|
} else {
|
||||||
|
$filename = json_encode($this->filename);
|
||||||
|
}
|
||||||
|
$this->message .= sprintf(' in %s', $filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->lineno && $this->lineno >= 0) {
|
||||||
|
$this->message .= sprintf(' at line %d', $this->lineno);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($dot) {
|
||||||
|
$this->message .= '.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function guessTemplateInfo()
|
||||||
|
{
|
||||||
|
$template = null;
|
||||||
|
$templateClass = null;
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID >= 50306) {
|
||||||
|
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS | DEBUG_BACKTRACE_PROVIDE_OBJECT);
|
||||||
|
} else {
|
||||||
|
$backtrace = debug_backtrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($backtrace as $trace) {
|
||||||
|
if (isset($trace['object']) && $trace['object'] instanceof Twig_Template && 'Twig_Template' !== get_class($trace['object'])) {
|
||||||
|
$currentClass = get_class($trace['object']);
|
||||||
|
$isEmbedContainer = 0 === strpos($templateClass, $currentClass);
|
||||||
|
if (null === $this->filename || ($this->filename == $trace['object']->getTemplateName() && !$isEmbedContainer)) {
|
||||||
|
$template = $trace['object'];
|
||||||
|
$templateClass = get_class($trace['object']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// update template filename
|
||||||
|
if (null !== $template && null === $this->filename) {
|
||||||
|
$this->filename = $template->getTemplateName();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null === $template || $this->lineno > -1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = new ReflectionObject($template);
|
||||||
|
$file = $r->getFileName();
|
||||||
|
|
||||||
|
// hhvm has a bug where eval'ed files comes out as the current directory
|
||||||
|
if (is_dir($file)) {
|
||||||
|
$file = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$exceptions = array($e = $this);
|
||||||
|
while (($e instanceof self || method_exists($e, 'getPrevious')) && $e = $e->getPrevious()) {
|
||||||
|
$exceptions[] = $e;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ($e = array_pop($exceptions)) {
|
||||||
|
$traces = $e->getTrace();
|
||||||
|
array_unshift($traces, array('file' => $e->getFile(), 'line' => $e->getLine()));
|
||||||
|
|
||||||
|
while ($trace = array_shift($traces)) {
|
||||||
|
if (!isset($trace['file']) || !isset($trace['line']) || $file != $trace['file']) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($template->getDebugInfo() as $codeLine => $templateLine) {
|
||||||
|
if ($codeLine <= $trace['line']) {
|
||||||
|
// update template line
|
||||||
|
$this->lineno = $templateLine;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
31
system/libs/Twig/Error/Loader.php
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Twig.
|
||||||
|
*
|
||||||
|
* (c) 2010 Fabien Potencier
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception thrown when an error occurs during template loading.
|
||||||
|
*
|
||||||
|
* Automatic template information guessing is always turned off as
|
||||||
|
* if a template cannot be loaded, there is nothing to guess.
|
||||||
|
* However, when a template is loaded from another one, then, we need
|
||||||
|
* to find the current context and this is automatically done by
|
||||||
|
* Twig_Template::displayWithErrorHandling().
|
||||||
|
*
|
||||||
|
* This strategy makes Twig_Environment::resolveTemplate() much faster.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
class Twig_Error_Loader extends Twig_Error
|
||||||
|
{
|
||||||
|
public function __construct($message, $lineno = -1, $filename = null, Exception $previous = null)
|
||||||
|
{
|
||||||
|
parent::__construct($message, false, false, $previous);
|
||||||
|
}
|
||||||
|
}
|