From dc399437d0b6a35efcaeff0ef857089150a78393 Mon Sep 17 00:00:00 2001 From: Vladyslav Date: Mon, 9 Jul 2018 20:23:39 +0300 Subject: [PATCH] New navigation menu in admin panel +The side navigation menu in the admin panel has been completely changed. +When clicking on the links, the selected sub-item of the menu is saved using the file cookie (it works a little incorrectly). +Completely centered administration image in the admin panel. --- Admin/admin.php | 295 ++++++++++++++++++++++++----------------- Admin/jquery.cookie.js | 117 ++++++++++++++++ img/admin/admin.css | 144 ++++++++++++++------ 3 files changed, 392 insertions(+), 164 deletions(-) create mode 100644 Admin/jquery.cookie.js diff --git a/Admin/admin.php b/Admin/admin.php index 0c5fc58f..97e198c4 100644 --- a/Admin/admin.php +++ b/Admin/admin.php @@ -351,13 +351,15 @@ if (!empty($_GET['p'])) { Admin Panel - <?php echo $subpage; ?> - - - - - - - + + + + + + + + + @@ -434,129 +436,182 @@ if (!empty($_GET['p'])) { } + + +
-
+
-
-
-
-
+

+ + + + + +

+
+
+
+ -
- +
+
+ CheckLogin()) + { + if($_POST || $_GET) { - if($_POST || $_GET) + if($_GET['p'] and $_GET['p']!="search") { - if($_GET['p'] and $_GET['p']!="search") - { - $filename = 'Templates/'.$_GET['p'].'.tpl'; - if(file_exists($filename)) include($filename); - else include('Templates/404.tpl'); - } - else include('Templates/search.tpl'); - - if(isset($_POST['p']) && isset($_POST['s']) && $_POST['p'] and $_POST['s']) - { - $filename = 'Templates/results_'.$_POST['p'].'.tpl'; - if(file_exists($filename)) include($filename); - else include('Templates/404.tpl'); - } + $filename = 'Templates/'.$_GET['p'].'.tpl'; + if(file_exists($filename)) include($filename); + else include('Templates/404.tpl'); + } + else include('Templates/search.tpl'); + + if(isset($_POST['p']) && isset($_POST['s']) && $_POST['p'] and $_POST['s']) + { + $filename = 'Templates/results_'.$_POST['p'].'.tpl'; + if(file_exists($filename)) include($filename); + else include('Templates/404.tpl'); } - else include('Templates/home.tpl'); } - else include('Templates/login.tpl'); - ?> -
+ else include('Templates/home.tpl'); + } + else include('Templates/login.tpl'); + ?>
+
diff --git a/Admin/jquery.cookie.js b/Admin/jquery.cookie.js new file mode 100644 index 00000000..c7f3a59b --- /dev/null +++ b/Admin/jquery.cookie.js @@ -0,0 +1,117 @@ +/*! + * jQuery Cookie Plugin v1.4.1 + * https://github.com/carhartl/jquery-cookie + * + * Copyright 2013 Klaus Hartl + * Released under the MIT license + */ +(function (factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // CommonJS + factory(require('jquery')); + } else { + // Browser globals + factory(jQuery); + } +}(function ($) { + + var pluses = /\+/g; + + function encode(s) { + return config.raw ? s : encodeURIComponent(s); + } + + function decode(s) { + return config.raw ? s : decodeURIComponent(s); + } + + function stringifyCookieValue(value) { + return encode(config.json ? JSON.stringify(value) : String(value)); + } + + function parseCookieValue(s) { + if (s.indexOf('"') === 0) { + // This is a quoted cookie as according to RFC2068, unescape... + s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); + } + + try { + // Replace server-side written pluses with spaces. + // If we can't decode the cookie, ignore it, it's unusable. + // If we can't parse the cookie, ignore it, it's unusable. + s = decodeURIComponent(s.replace(pluses, ' ')); + return config.json ? JSON.parse(s) : s; + } catch(e) {} + } + + function read(s, converter) { + var value = config.raw ? s : parseCookieValue(s); + return $.isFunction(converter) ? converter(value) : value; + } + + var config = $.cookie = function (key, value, options) { + + // Write + + if (value !== undefined && !$.isFunction(value)) { + options = $.extend({}, config.defaults, options); + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setTime(+t + days * 864e+5); + } + + return (document.cookie = [ + encode(key), '=', stringifyCookieValue(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join('')); + } + + // Read + + var result = key ? undefined : {}; + + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling $.cookie(). + var cookies = document.cookie ? document.cookie.split('; ') : []; + + for (var i = 0, l = cookies.length; i < l; i++) { + var parts = cookies[i].split('='); + var name = decode(parts.shift()); + var cookie = parts.join('='); + + if (key && key === name) { + // If second argument (value) is a function it's a converter... + result = read(cookie, value); + break; + } + + // Prevent storing a cookie that we couldn't decode. + if (!key && (cookie = read(cookie)) !== undefined) { + result[name] = cookie; + } + } + + return result; + }; + + config.defaults = {}; + + $.removeCookie = function (key, options) { + if ($.cookie(key) === undefined) { + return false; + } + + // Must not alter options, thus extending a fresh object... + $.cookie(key, '', $.extend({}, options, { expires: -1 })); + return !$.cookie(key); + }; + +})); diff --git a/img/admin/admin.css b/img/admin/admin.css index c53cb573..71866c9f 100644 --- a/img/admin/admin.css +++ b/img/admin/admin.css @@ -1,24 +1,24 @@ -BODY -{ -COLOR: #000; -font-size:10pt; -background:#FFF; -margin-top:0px; -margin-bottom:0px; -margin-left:0px; -margin-right:0px; -font-family: Verdana, Arial, Helvetica, sans-serif; -overflow-x: hidden; +body { + color: #000; + font-size:10pt; + background:#FFF; + margin:0px; + font-family: Verdana, Arial, Helvetica, sans-serif; + overflow-x: hidden; +} + +.center-img { + text-align: center; } .none { - color:#C0C0C0; + color:#C0C0C0; } /* Fix */ .online1, .online2, .online3, .online4, .online5 {width:12px; height:12px;} /* Oberer Layer mit Menue ohne Werbung */ -#ltop1 {position:relative; padding-left: 25%; width:100%; min-width:980px; height:100px; z-index:2; background-image:url(../un/l/mp.gif); background-repeat:repeat-x; left:0px; top:0px;} +#ltop1 {position:relative; width:100%; min-width:980px; height:100px; z-index:2; background-image:url(../un/l/mp.gif); background-repeat:repeat-x; left:0px; top:0px;} /* Oberer Layer mit Menue mit Werbung */ #ltop2 {position:relative; padding-left: 25%; width:100%; min-width:980px; height:100px; z-index:2; background-image:url(../un/l/mw.gif); background-repeat:repeat-x; left:0px; top:0px;} @@ -95,7 +95,6 @@ overflow-x: hidden; #lplz1 {position:relative; width:250px; height:310px; float:left;} #lplz2, #lplz3 {position:relative; height:400px; width:500px;} - /* Textmenue: Punkt1 | Punkt2 | Punkt3 */ .txt_menue {font-size:10pt;} @@ -124,7 +123,6 @@ li.dl {margin-top:2px;} #n3 {background-image:url(../un/l/n3.gif);} #n4 {background-image:url(../un/l/n4.gif);} - /* - VERALTET - Abstand der oberen Navigation von Links */ /* #navileft {margin-left:231px;} */ @@ -151,14 +149,12 @@ li.dl {margin-top:2px;} .c5 {color:#FF0000;} .c6 {color:#B500A3;} - /* Dicke Schrift */ .b {font-weight:bold} /* Duenne Schrift */ .t {font-weight:normal;} - /* Links */ a:link, a:visited { color: #71D000; text-decoration: none; font-weight:bold;} a:active { color: #FF8000; text-decoration: none; font-weight:bold;} @@ -167,28 +163,10 @@ a:hover {color: #00BC00; text-decoration: none; font-weight:bold;} a:link.clink, a:visited.clink, a:active.clink {color:#666; text-decoration:none; font-weight:normal;} a:hover.clink {color:#00C000; text-decoration:none; font-weight:normal;} - -/* Navi Table left */ -#navi_table {width:116px;} - -/* Navigation links */ -.menu {font-weight: normal; FONT-SIZE: 12px;} -.menu a,.menu a:link,.menu a:active,.menu a:visited {font-weight:normal; display:block; color:#000; padding-left:12px; FONT-SIZE:12px; padding-bottom:3px; padding-TOP:3px;} -.menu a:hover {color:#00C000; cursor:pointer; background-image:url(../un/a/n12.gif); background-repeat:no-repeat;} - - - - h1, h2, h3, span, form, img, li {margin:0; padding:0;} h1 {font-size:18pt;} h2 {font-size:13.5pt;} - - - - - - /* Hintergrundbild fuer kleine Karte */ .mbg {background-image:url(../un/m/map.jpg); z-index:1;} @@ -220,7 +198,6 @@ table.map_infobox_grey tr {background-color: #FFF;} /* Koordinatenanzeige auf grosser Karte links oben */ .map_show_xy_xxl {position:absolute; width:200px; height:80px; z-index:500; left:10px; top:10px;} - /* Koordinaten xy der kleinen Karte */ .mx1,.mx2,.mx3,.mx4,.mx5,.mx6,.mx7,.my1,.my2,.my3,.my4,.my5,.my6,.my7 {position:absolute; z-index:30; width:35px; height:12px; font-size:7pt; text-align:center;} @@ -240,7 +217,6 @@ table.map_infobox_grey tr {background-color: #FFF;} .my2{left:194px; top:110px;} .my1{left:230px; top:90px;} - /* Felder kleine Karte */ .mt1{position:absolute; z-index:1; left:229px; top:57px;} .mt2{position:absolute; z-index:2; left:266px; top:77px;} @@ -298,7 +274,6 @@ table.map_infobox_grey tr {background-color: #FFF;} .mt48{position:absolute; z-index:12; left:198px; top:277px;} .mt49{position:absolute; z-index:13; left:235px; top:297px;} - /* Div Layer fur die Details auf der rechten Seite */ .map_details_right {position:absolute; width:230px; height:110px; z-index:3; left:325px; top:100px;} /* Div Layer fur die Details auf der rechten Seite */ @@ -410,7 +385,6 @@ input.f80 { width:80px;} input.f30 { width:30px;} input.std {font-weight:bold; font-size:8pt; height:14pt;} /* Berichte, Nachrichten verschieben */ - /* Rahmenfarbe der Tabelle */ .tbg {background-color: #C0C0C0; width:100%; text-align:center; font-size:10pt;} @@ -420,7 +394,6 @@ table.tbg tr {background-color: #FFFFFF;} /* Hintergrundbild für Tabellenkopf */ .rbg {background-color: #FFFFFF; font-weight:bold; background-image: url(../un/a/c2.gif);} - /* Tabellenzeile Grau */ table.tbg tr.cbg1 td, td.cbg1 {background-color:#F5F5F5} table.tbg td.cbg2 {background-color:#71D000} @@ -442,7 +415,6 @@ table.tbg td.re {border-right:1px solid #71D000} .dlist1, .dlist3 {width:35px;} .dlist2 {width:3px; font-size:10px;} - /* Allianz Forum */ .forumline {background-color: #000000; border: 1px #c0c0c0 solid;} .forum_h1 { font-weight: bold; font-size: 11px ; letter-spacing: 1px; color : #000000} @@ -473,7 +445,6 @@ td.row11 {background-color:#FFF; PADDING-Left:4px;} td.row12 {background-color:#FFF; PADDING-Left:6px; PADDING-RIGHT:6px;} td.row2 {background-color:#FEFEFE; } - .maintitle { font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; text-decoration: none; line-height : 120%; color : #000000; @@ -544,7 +515,6 @@ table#member td.hab {width:25%; text-align:center;} table#member td.vil {width:20%; text-align:center;} table#member td.on {width:5%; text-align:center;} - .dropdown {border:#71D000 solid; border-width:1px; font-size:10pt;} input.dynamic_img, img.dynamic_img { background-position: center top; @@ -635,4 +605,90 @@ input#btn_search {width:97px; background-image: url(b/search.gif);} visibility: visible; opacity: 1; } -/* End of tooltips */ \ No newline at end of file +/* End of tooltips */ + +/* Start Accordeon Menu */ +#menu { + width: 220px; + border: 1px solid #999; + margin: 0 auto; + padding: 0; + list-style: none; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.4); + -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.4); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.4); + overflow: hidden; + font: normal 14px Helvetica, Arial, sans-serif; +} + +#menu li a { + display: block; + position: relative; + padding: 10px 15px; + background: #ccc; + border-top: 1px solid #eee; + border-bottom: 1px solid #999; + text-decoration: none; + text-shadow: 0px 1px 1px #ffffff; + color: #606060; +} + +#menu li a:hover, +#menu li a.active { + background: rgb(190, 190, 190); + text-shadow: 0px 1px 1px #ffffff; + color: #3b3b3b; +} + +#menu li ul { + display: none; + list-style: none; + margin: 0; + padding: 0; +} + +#menu li ul li a { + font-size: 12px; + padding: 8px 15px; + background: #ececec; + border-bottom: 1px dotted #ccc; +} +#menu li ul li a:after { + content: "ยป"; + float: left; + margin-right: 6px; + line-height: 1em; +} +#menu li ul li a:hover, +#menu li ul li a.active { + background: #dedede; + color: green; + padding-left: 18px; +} +/* selector */ +#menu li.sub > a:before { + content: ''; + height: 6px; + width: 6px; + display: block; + border: 1px solid #606060; + border-right-width: 0; + border-top-width: 0; + -ms-transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + position: absolute; + right: 20px; + top: 14px; +} +/* active selector */ +#menu li.sub > a:hover:before, +#menu li.sub > a.active:before{ + border: 1px solid #00a00c; + border-right-width: 0; + border-top-width: 0; +} +/* End Accordeon Menu */