Compare commits
43 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
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 | ||
![]() |
fa3f61f7db | ||
![]() |
be6fd3af0e | ||
![]() |
915a1720e2 |
47
CHANGELOG
@@ -1,3 +1,50 @@
|
||||
[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]
|
||||
- added Swedish translation by Sizaro
|
||||
- fixed some bugs with installlation & characters & houses
|
||||
|
||||
[0.2.0 - 21.05.2017]
|
||||
- added option to change character sex for premium points
|
||||
- moved site_closed to database, now you can close your site through admin panel
|
||||
|
@@ -5,7 +5,7 @@ Official website: http://my-aac.org
|
||||
|
||||
### REQUIREMENTS
|
||||
|
||||
- PHP 5.1.0 or later
|
||||
- PHP 5.2.0 or later
|
||||
- MySQL database
|
||||
- PDO PHP Extension
|
||||
- XML PHP Extension
|
||||
|
@@ -1 +1,49 @@
|
||||
<?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');
|
||||
|
||||
// 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>
|
||||
<div id="footer">
|
||||
Powered by <a href="http://my-aac.org" target="_blank">MyAAC</a>
|
||||
<?php echo base64_decode('UG93ZXJlZCBieSA8YSBocmVmPSJodHRwOi8vbXktYWFjLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPk15QUFDLjwvYT4='); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?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
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
session_start();
|
||||
|
||||
define('MYAAC', true);
|
||||
define('MYAAC_VERSION', '0.2.0');
|
||||
define('DATABASE_VERSION', 3);
|
||||
define('MYAAC_VERSION', '0.3.0');
|
||||
define('DATABASE_VERSION', 7);
|
||||
define('TABLE_PREFIX', 'myaac_');
|
||||
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
|
||||
define('FLAG_ADMIN', 1);
|
||||
@@ -43,6 +43,8 @@ define('FLAG_CONTENT_FORUM', 32);
|
||||
define('FLAG_CONTENT_COMMANDS', 64);
|
||||
define('FLAG_CONTENT_SPELLS', 128);
|
||||
define('FLAG_CONTENT_MONSTERS', 256);
|
||||
define('FLAG_CONTENT_SCREENSHOTS', 512);
|
||||
define('FLAG_CONTENT_MOVIES', 1024);
|
||||
|
||||
// news
|
||||
define('NEWS', 1);
|
||||
@@ -59,6 +61,7 @@ define('LIBS', SYSTEM . 'libs/');
|
||||
define('LOGS', SYSTEM . 'logs/');
|
||||
define('PLUGINS', BASE . 'plugins/');
|
||||
define('TEMPLATES', BASE . 'templates/');
|
||||
define('TOOLS', BASE . 'tools/');
|
||||
|
||||
// otserv versions
|
||||
define('OTSERV', 1);
|
||||
|
13
config.php
@@ -13,7 +13,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
|
||||
@@ -24,6 +24,8 @@ $config = array(
|
||||
'template' => 'kathrine', // template used by website (kathrine, tibiacom)
|
||||
'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?
|
||||
// used for the Downloads page and some templates aswell
|
||||
'client' => 1098, // 954 = client 9.54
|
||||
@@ -54,7 +56,7 @@ $config = array(
|
||||
|
||||
// cache system. by default file cache is used
|
||||
'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_host' => '',
|
||||
@@ -83,6 +85,7 @@ $config = array(
|
||||
'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_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_points' => 30, // cost of name change
|
||||
'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_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
|
||||
'character_samples' => array( // vocations, format: ID_of_vocation => 'Name of Character to copy'
|
||||
//0 => 'Rook Sample',
|
||||
|
@@ -21,7 +21,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
|
||||
@@ -61,7 +61,10 @@ if(fetchDatabaseConfig('database_version', $tmp)) { // we got version
|
||||
$tmp = (int)$tmp;
|
||||
if($tmp < DATABASE_VERSION) { // import if older
|
||||
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);
|
||||
|
@@ -28,17 +28,17 @@ function ini_get_bool($a)
|
||||
|
||||
switch (strtolower($b))
|
||||
{
|
||||
case 'on':
|
||||
case 'yes':
|
||||
case 'true':
|
||||
return 'assert.active' !== $a;
|
||||
case 'on':
|
||||
case 'yes':
|
||||
case 'true':
|
||||
return 'assert.active' !== $a;
|
||||
|
||||
case 'stdout':
|
||||
case 'stderr':
|
||||
return 'display_errors' === $a;
|
||||
case 'stdout':
|
||||
case 'stderr':
|
||||
return 'display_errors' === $a;
|
||||
|
||||
default:
|
||||
return (bool) (int) $b;
|
||||
default:
|
||||
return (bool) (int) $b;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2,6 +2,7 @@ CREATE TABLE `myaac_account_actions`
|
||||
(
|
||||
`account_id` INT(11) NOT NULL,
|
||||
`ip` INT(11) NOT NULL DEFAULT 0,
|
||||
`ipv6` BINARY(16) NOT NULL DEFAULT 0,
|
||||
`date` INT(11) NOT NULL DEFAULT 0,
|
||||
`action` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
KEY (`account_id`)
|
||||
@@ -111,10 +112,12 @@ CREATE TABLE `myaac_hooks`
|
||||
`name` VARCHAR(30) NOT NULL DEFAULT '',
|
||||
`type` INT(2) NOT NULL DEFAULT 0,
|
||||
`file` VARCHAR(100) NOT NULL,
|
||||
`enabled` INT(1) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = MyISAM;
|
||||
|
||||
CREATE TABLE `myaac_monsters` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`hide_creature` tinyint(1) NOT NULL default '0',
|
||||
`name` varchar(255) NOT NULL,
|
||||
`mana` int(11) NOT NULL,
|
||||
@@ -128,7 +131,8 @@ CREATE TABLE `myaac_monsters` (
|
||||
`convinceable` tinyint(1) NOT NULL,
|
||||
`race` 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;
|
||||
|
||||
CREATE TABLE `myaac_movies`
|
||||
@@ -173,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, 3);
|
||||
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`
|
||||
(
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`account_id` INT(11) NOT NULL,
|
||||
/*`name` VARCHAR(30) NOT NULL,*/
|
||||
`content` TEXT NOT NULL DEFAULT '',
|
||||
`content` TEXT NOT NULL,
|
||||
/*`public` TINYINT(1) NOT NULL DEFAULT 0*/
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = MyISAM;
|
||||
@@ -203,7 +205,6 @@ CREATE TABLE `myaac_pages`
|
||||
CREATE TABLE `myaac_screenshots`
|
||||
(
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(30) NOT NULL,
|
||||
`comment` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`image` VARCHAR(255) NOT NULL,
|
||||
`thumb` VARCHAR(255) NOT NULL,
|
||||
@@ -213,7 +214,7 @@ CREATE TABLE `myaac_screenshots`
|
||||
PRIMARY KEY (`id`)
|
||||
) 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`
|
||||
(
|
||||
@@ -230,7 +231,6 @@ CREATE TABLE `myaac_spells`
|
||||
`conjure_count` TINYINT(3) NOT NULL DEFAULT 0,
|
||||
`premium` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
`vocations` VARCHAR(32) NOT NULL,
|
||||
`cities` VARCHAR(32) NOT NULL,
|
||||
`hidden` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE (`spell`)
|
||||
@@ -242,4 +242,4 @@ CREATE TABLE `myaac_visitors`
|
||||
`lastvisit` INT(11) NOT NULL DEFAULT 0,
|
||||
`page` VARCHAR(100) NOT NULL,
|
||||
UNIQUE (`ip`)
|
||||
) ENGINE = MyISAM;
|
||||
) ENGINE = MyISAM;
|
||||
|
@@ -169,7 +169,7 @@ if(!$error) {
|
||||
}
|
||||
|
||||
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...');
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@ if(!$error) {
|
||||
}
|
||||
|
||||
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...');
|
||||
}
|
||||
}
|
||||
@@ -218,10 +218,6 @@ if(!$error) {
|
||||
if(!$error && (!isset($_SESSION['saved']))) {
|
||||
$content .= '$config[\'installed\'] = true;';
|
||||
$content .= PHP_EOL;
|
||||
// if(strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) {
|
||||
// $content .= '$config[\'friendly_urls\'] = true;';
|
||||
// $content .= PHP_EOL;
|
||||
// }
|
||||
|
||||
$content .= '$config[\'mail_enabled\'] = true;';
|
||||
$content .= PHP_EOL;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
||||
if(isset($config['installed']) && $config['installed'] && !isset($_SESSION['saved'])) {
|
||||
echo '<p class="warning">' . $locale['already_installed'] . '</p>';
|
||||
warning($locale['already_installed']);
|
||||
}
|
||||
else {
|
||||
require(SYSTEM . 'init.php');
|
||||
@@ -50,12 +50,12 @@ else {
|
||||
else
|
||||
$account_db->load($account_id);
|
||||
|
||||
$player_db = $ots->createObject('Player');
|
||||
$player_db = new OTS_Player();
|
||||
$player_db->find('Admin');
|
||||
$groups = new OTS_Groups_List();
|
||||
if(!$player_db->isLoaded())
|
||||
{
|
||||
$player = $ots->createObject('Player');
|
||||
$player = new OTS_Player();
|
||||
$player->setName('Admin');
|
||||
|
||||
$player->setGroupId($groups->getHighestId());
|
||||
@@ -84,7 +84,7 @@ else {
|
||||
$_SESSION['account'] = $account_db->getId();
|
||||
}
|
||||
else {
|
||||
$new_account = $ots->createObject('Account');
|
||||
$new_account = new OTS_Account();
|
||||
$new_account->create($account);
|
||||
|
||||
$new_account->setPassword(encrypt($password));
|
||||
@@ -114,36 +114,75 @@ else {
|
||||
$_SESSION['account'] = $new_account->getId();
|
||||
}
|
||||
|
||||
if($player_db->isLoaded())
|
||||
$player_db->save();
|
||||
else
|
||||
$player->save();
|
||||
|
||||
success($locale['step_database_created_account']);
|
||||
$_SESSION['password'] = encrypt($password);
|
||||
$_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';
|
||||
if(fieldExist('deletion', 'players'))
|
||||
$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("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
|
||||
(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, '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']);
|
||||
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, '');"))
|
||||
$success = false;
|
||||
}
|
||||
|
||||
|
||||
$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('$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']);
|
||||
?>
|
||||
<p class="success"><?php echo $locale['step_finish_desc']; ?></p>
|
||||
<?php
|
||||
|
||||
success($locale['step_finish_desc']);
|
||||
|
||||
if(!isset($_SESSION['installed'])) {
|
||||
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;
|
||||
|
||||
// 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)
|
||||
{
|
||||
$perms = (int) substr(decoct(fileperms(BASE . $value)), 2);
|
||||
|
@@ -40,7 +40,7 @@
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</body>
|
||||
</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
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
@@ -5,7 +5,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
@@ -5,7 +5,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
|
@@ -5,7 +5,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
@@ -379,12 +379,12 @@ function delete_guild($id)
|
||||
|
||||
global $db, $ots;
|
||||
foreach($rank_list as $rank_in_guild) {
|
||||
if(fieldExist('rank_id', 'players'))
|
||||
$players_with_rank = $db->query('SELECT `id`, `rank_id` FROM `players` WHERE `rank_id` = ' . $rank->getId() . ' AND `deleted` = 0;');
|
||||
else if(tableExist('guild_members'))
|
||||
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`;');
|
||||
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`;');
|
||||
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();
|
||||
if($players_with_rank_number > 0) {
|
||||
@@ -689,7 +689,7 @@ function check_password($pass)
|
||||
if(strspn($pass, "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890") != strlen($pass))
|
||||
return false;
|
||||
|
||||
return preg_match("/[A-z0-9]{7,32}/", $pass);
|
||||
return preg_match("/[A-z0-9]/", $pass);
|
||||
}
|
||||
|
||||
function check_mail($email)
|
||||
@@ -1149,7 +1149,7 @@ function _mail($to, $subject, $body, $altBody = '', $add_html_tags = true)
|
||||
global $mailer, $config;
|
||||
if(!$mailer)
|
||||
{
|
||||
require(SYSTEM . 'libs/phpmailer/class.phpmailer.php');
|
||||
require(SYSTEM . 'libs/phpmailer/PHPMailerAutoload.php');
|
||||
$mailer = new PHPMailer();
|
||||
}
|
||||
|
||||
|
@@ -5,7 +5,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
@@ -84,7 +84,7 @@ class Hooks
|
||||
public function load()
|
||||
{
|
||||
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)
|
||||
$this->register($hook['name'], $hook['type'], $hook['file']);
|
||||
}
|
||||
|
@@ -5,7 +5,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
defined('MYAAC') or die('Direct access not allowed!');
|
||||
@@ -26,6 +26,20 @@ if($config['gzip_output'] && (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !
|
||||
require_once(SYSTEM . 'libs/cache.php');
|
||||
$cache = Cache::getInstance($config['cache_engine'], $config['cache_prefix']);
|
||||
|
||||
// twig
|
||||
require_once LIBS . 'Twig/Autoloader.php';
|
||||
Twig_Autoloader::register();
|
||||
|
||||
$loader = new Twig_Loader_Filesystem(SYSTEM . 'templates');
|
||||
$twig = new Twig_Environment($loader, array(
|
||||
'cache' => CACHE . 'twig/',
|
||||
));
|
||||
|
||||
$function = new Twig_SimpleFunction('getStyle', function ($i) {
|
||||
return getStyle($i);
|
||||
});
|
||||
$twig->addFunction($function);
|
||||
|
||||
// trim values we receive
|
||||
if(isset($_POST))
|
||||
{
|
||||
@@ -123,11 +137,11 @@ if($cache->enabled() && $cache->fetch('vocations', $tmp)) {
|
||||
}
|
||||
else {
|
||||
$vocations = new DOMDocument();
|
||||
$path_extra = 'XML/';
|
||||
if($config['otserv_version'] >= OTSERV_FIRST && $config['otserv_version'] <= OTSERV_LAST)
|
||||
$path_extra = '';
|
||||
$file = $config['data_path'] . 'XML/vocations.xml';
|
||||
if(!@file_exists($file))
|
||||
$file = $config['data_path'] . 'vocations.xml';
|
||||
|
||||
$vocations->load($config['data_path'] . $path_extra . 'vocations.xml');
|
||||
$vocations->load($file);
|
||||
|
||||
if(!$vocations)
|
||||
die('ERROR: Cannot load <i>vocations.xml</i> file.');
|
||||
@@ -135,10 +149,7 @@ else {
|
||||
$config['vocations'] = array();
|
||||
foreach($vocations->getElementsByTagName('vocation') as $vocation) {
|
||||
$id = $vocation->getAttribute('id');
|
||||
//if($id == $vocation->getAttribute('fromvoc'))
|
||||
$config['vocations'][$id] = $vocation->getAttribute('name');
|
||||
//else
|
||||
// $config['vocations'][$id] = $vocation->getAttribute('name');
|
||||
$config['vocations'][$id] = $vocation->getAttribute('name');
|
||||
}
|
||||
|
||||
if($cache->enabled()) {
|
||||
|
@@ -5,7 +5,7 @@
|
||||
* @package MyAAC
|
||||
* @author Slawkens <slawkens@gmail.com>
|
||||
* @copyright 2017 MyAAC
|
||||
* @version 0.2.0
|
||||
* @version 0.3.0
|
||||
* @link http://my-aac.org
|
||||
*/
|
||||
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);
|
||||
}
|
||||
}
|