From 59241f0170dd5c363114057581b04976b0a86b74 Mon Sep 17 00:00:00 2001 From: "MTECH, LLC" Date: Sun, 5 Jun 2016 14:12:41 -0500 Subject: [PATCH] Testing Commits - Change made to Future Imperfect Theme drafts bug --- .../future-imperfect/assets/css/main.css | 8 +- bl-themes/future-imperfect/assets/js/main.js | 228 ++-- .../future-imperfect/assets/js/skel.min.js | 2 +- bl-themes/future-imperfect/assets/js/util.js | 1172 ++++++++--------- bl-themes/future-imperfect/img/favicon.png | Bin 1005 -> 1640 bytes bl-themes/future-imperfect/img/logo.jpg | Bin 3644 -> 6238 bytes bl-themes/future-imperfect/index.php | 242 ++-- .../future-imperfect/languages/es_AR.json | 7 +- bl-themes/future-imperfect/metadata.json | 4 +- bl-themes/future-imperfect/php/home.php | 25 +- 10 files changed, 857 insertions(+), 831 deletions(-) diff --git a/bl-themes/future-imperfect/assets/css/main.css b/bl-themes/future-imperfect/assets/css/main.css index 6b29d9a6..0267650f 100644 --- a/bl-themes/future-imperfect/assets/css/main.css +++ b/bl-themes/future-imperfect/assets/css/main.css @@ -1407,7 +1407,7 @@ } body { - background: #f4f4f4; + background: #ffffff; } body.is-loading *, body.is-loading *:before, body.is-loading *:after { @@ -3249,7 +3249,7 @@ } #intro .logo:before { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100px' height='100px' viewBox='0 0 100 100' preserveAspectRatio='none' zoomAndPan='disable'%3E%3Cpolygon points='0,0 100,0 100,25 50,0 0,25' style='fill:%23f4f4f4' /%3E%3Cpolygon points='0,100 100,100 100,75 50,100 0,75' style='fill:%23f4f4f4' /%3E%3C/svg%3E"); + background-image: src("/bl-themes/future-imperfect/img/logo.png"); background-position: top left; background-repeat: no-repeat; background-size: 100% 100%; @@ -3264,8 +3264,8 @@ #intro .logo img { display: block; - margin-left: -0.25em; - width: 4.5em; + margin-left: 0em; + width: 4.0em; } #intro header h2 { diff --git a/bl-themes/future-imperfect/assets/js/main.js b/bl-themes/future-imperfect/assets/js/main.js index 1cde899f..8b9d1df6 100644 --- a/bl-themes/future-imperfect/assets/js/main.js +++ b/bl-themes/future-imperfect/assets/js/main.js @@ -1,115 +1,115 @@ -/* - Future Imperfect by HTML5 UP - html5up.net | @n33co - Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) -*/ - -(function($) { - - skel.breakpoints({ - xlarge: '(max-width: 1680px)', - large: '(max-width: 1280px)', - medium: '(max-width: 980px)', - small: '(max-width: 736px)', - xsmall: '(max-width: 480px)' - }); - - $(function() { - - var $window = $(window), - $body = $('body'), - $menu = $('#menu'), - $sidebar = $('#sidebar'), - $main = $('#main'); - - // Disable animations/transitions until the page has loaded. - $body.addClass('is-loading'); - - $window.on('load', function() { - window.setTimeout(function() { - $body.removeClass('is-loading'); - }, 100); - }); - - // Fix: Placeholder polyfill. - $('form').placeholder(); - - // Prioritize "important" elements on medium. - skel.on('+medium -medium', function() { - $.prioritize( - '.important\\28 medium\\29', - skel.breakpoint('medium').active - ); - }); - - // IE<=9: Reverse order of main and sidebar. - if (skel.vars.IEVersion <= 9) - $main.insertAfter($sidebar); - - // Menu. - $menu - .appendTo($body) - .panel({ - delay: 500, - hideOnClick: true, - hideOnSwipe: true, - resetScroll: true, - resetForms: true, - side: 'right', - target: $body, - visibleClass: 'is-menu-visible' - }); - - // Search (header). - var $search = $('#search'), - $search_input = $search.find('input'); - - $body - .on('click', '[href="#search"]', function(event) { - - event.preventDefault(); - - // Not visible? - if (!$search.hasClass('visible')) { - - // Reset form. - $search[0].reset(); - - // Show. - $search.addClass('visible'); - - // Focus input. - $search_input.focus(); - - } - - }); - - $search_input - .on('keydown', function(event) { - - if (event.keyCode == 27) - $search_input.blur(); - - }) - .on('blur', function() { - window.setTimeout(function() { - $search.removeClass('visible'); - }, 100); - }); - - // Intro. - var $intro = $('#intro'); - - // Move to main on <=large, back to sidebar on >large. - skel - .on('+large', function() { - $intro.prependTo($main); - }) - .on('-large', function() { - $intro.prependTo($sidebar); - }); - - }); - +/* + Future Imperfect by HTML5 UP + html5up.net | @n33co + Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) +*/ + +(function($) { + + skel.breakpoints({ + xlarge: '(max-width: 1680px)', + large: '(max-width: 1280px)', + medium: '(max-width: 980px)', + small: '(max-width: 736px)', + xsmall: '(max-width: 480px)' + }); + + $(function() { + + var $window = $(window), + $body = $('body'), + $menu = $('#menu'), + $sidebar = $('#sidebar'), + $main = $('#main'); + + // Disable animations/transitions until the page has loaded. + $body.addClass('is-loading'); + + $window.on('load', function() { + window.setTimeout(function() { + $body.removeClass('is-loading'); + }, 100); + }); + + // Fix: Placeholder polyfill. + $('form').placeholder(); + + // Prioritize "important" elements on medium. + skel.on('+medium -medium', function() { + $.prioritize( + '.important\\28 medium\\29', + skel.breakpoint('medium').active + ); + }); + + // IE<=9: Reverse order of main and sidebar. + if (skel.vars.IEVersion <= 9) + $main.insertAfter($sidebar); + + // Menu. + $menu + .appendTo($body) + .panel({ + delay: 500, + hideOnClick: true, + hideOnSwipe: true, + resetScroll: true, + resetForms: true, + side: 'right', + target: $body, + visibleClass: 'is-menu-visible' + }); + + // Search (header). + var $search = $('#search'), + $search_input = $search.find('input'); + + $body + .on('click', '[href="#search"]', function(event) { + + event.preventDefault(); + + // Not visible? + if (!$search.hasClass('visible')) { + + // Reset form. + $search[0].reset(); + + // Show. + $search.addClass('visible'); + + // Focus input. + $search_input.focus(); + + } + + }); + + $search_input + .on('keydown', function(event) { + + if (event.keyCode == 27) + $search_input.blur(); + + }) + .on('blur', function() { + window.setTimeout(function() { + $search.removeClass('visible'); + }, 100); + }); + + // Intro. + var $intro = $('#intro'); + + // Move to main on <=large, back to sidebar on >large. + skel + .on('+large', function() { + $intro.prependTo($main); + }) + .on('-large', function() { + $intro.prependTo($sidebar); + }); + + }); + })(jQuery); \ No newline at end of file diff --git a/bl-themes/future-imperfect/assets/js/skel.min.js b/bl-themes/future-imperfect/assets/js/skel.min.js index 688de7c9..4f6a6749 100644 --- a/bl-themes/future-imperfect/assets/js/skel.min.js +++ b/bl-themes/future-imperfect/assets/js/skel.min.js @@ -1,2 +1,2 @@ -/* skel.js v3.0.0 | (c) n33 | skel.io | MIT licensed */ +/* skel.js v3.0.0 | (c) n33 | skel.io | MIT licensed */ var skel=function(){"use strict";var t={breakpointIds:null,events:{},isInit:!1,obj:{attachments:{},breakpoints:{},head:null,states:{}},sd:"/",state:null,stateHandlers:{},stateId:"",vars:{},DOMReady:null,indexOf:null,isArray:null,iterate:null,matchesMedia:null,extend:function(e,n){t.iterate(n,function(i){t.isArray(n[i])?(t.isArray(e[i])||(e[i]=[]),t.extend(e[i],n[i])):"object"==typeof n[i]?("object"!=typeof e[i]&&(e[i]={}),t.extend(e[i],n[i])):e[i]=n[i]})},newStyle:function(t){var e=document.createElement("style");return e.type="text/css",e.innerHTML=t,e},_canUse:null,canUse:function(e){t._canUse||(t._canUse=document.createElement("div"));var n=t._canUse.style,i=e.charAt(0).toUpperCase()+e.slice(1);return e in n||"Moz"+i in n||"Webkit"+i in n||"O"+i in n||"ms"+i in n},on:function(e,n){var i=e.split(/[\s]+/);return t.iterate(i,function(e){var a=i[e];if(t.isInit){if("init"==a)return void n();if("change"==a)n();else{var r=a.charAt(0);if("+"==r||"!"==r){var o=a.substring(1);if(o in t.obj.breakpoints)if("+"==r&&t.obj.breakpoints[o].active)n();else if("!"==r&&!t.obj.breakpoints[o].active)return void n()}}}t.events[a]||(t.events[a]=[]),t.events[a].push(n)}),t},trigger:function(e){return t.events[e]&&0!=t.events[e].length?(t.iterate(t.events[e],function(n){t.events[e][n]()}),t):void 0},breakpoint:function(e){return t.obj.breakpoints[e]},breakpoints:function(e){function n(t,e){this.name=this.id=t,this.media=e,this.active=!1,this.wasActive=!1}return n.prototype.matches=function(){return t.matchesMedia(this.media)},n.prototype.sync=function(){this.wasActive=this.active,this.active=this.matches()},t.iterate(e,function(i){t.obj.breakpoints[i]=new n(i,e[i])}),window.setTimeout(function(){t.poll()},0),t},addStateHandler:function(e,n){t.stateHandlers[e]=n},callStateHandler:function(e){var n=t.stateHandlers[e]();t.iterate(n,function(e){t.state.attachments.push(n[e])})},changeState:function(e){t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].sync()}),t.vars.lastStateId=t.stateId,t.stateId=e,t.breakpointIds=t.stateId===t.sd?[]:t.stateId.substring(1).split(t.sd),t.obj.states[t.stateId]?t.state=t.obj.states[t.stateId]:(t.obj.states[t.stateId]={attachments:[]},t.state=t.obj.states[t.stateId],t.iterate(t.stateHandlers,t.callStateHandler)),t.detachAll(t.state.attachments),t.attachAll(t.state.attachments),t.vars.stateId=t.stateId,t.vars.state=t.state,t.trigger("change"),t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].active?t.obj.breakpoints[e].wasActive||t.trigger("+"+e):t.obj.breakpoints[e].wasActive&&t.trigger("-"+e)})},generateStateConfig:function(e,n){var i={};return t.extend(i,e),t.iterate(t.breakpointIds,function(e){t.extend(i,n[t.breakpointIds[e]])}),i},getStateId:function(){var e="";return t.iterate(t.obj.breakpoints,function(n){var i=t.obj.breakpoints[n];i.matches()&&(e+=t.sd+i.id)}),e},poll:function(){var e="";e=t.getStateId(),""===e&&(e=t.sd),e!==t.stateId&&t.changeState(e)},_attach:null,attach:function(e){var n=t.obj.head,i=e.element;return i.parentNode&&i.parentNode.tagName?!1:(t._attach||(t._attach=n.firstChild),n.insertBefore(i,t._attach.nextSibling),e.permanent&&(t._attach=i),!0)},attachAll:function(e){var n=[];t.iterate(e,function(t){n[e[t].priority]||(n[e[t].priority]=[]),n[e[t].priority].push(e[t])}),n.reverse(),t.iterate(n,function(e){t.iterate(n[e],function(i){t.attach(n[e][i])})})},detach:function(t){var e=t.element;return t.permanent||!e.parentNode||e.parentNode&&!e.parentNode.tagName?!1:(e.parentNode.removeChild(e),!0)},detachAll:function(e){var n={};t.iterate(e,function(t){n[e[t].id]=!0}),t.iterate(t.obj.attachments,function(e){e in n||t.detach(t.obj.attachments[e])})},attachment:function(e){return e in t.obj.attachments?t.obj.attachments[e]:null},newAttachment:function(e,n,i,a){return t.obj.attachments[e]={id:e,element:n,priority:i,permanent:a}},init:function(){t.initMethods(),t.initVars(),t.initEvents(),t.obj.head=document.getElementsByTagName("head")[0],t.isInit=!0,t.trigger("init")},initEvents:function(){t.on("resize",function(){t.poll()}),t.on("orientationChange",function(){t.poll()}),t.DOMReady(function(){t.trigger("ready")}),window.onload&&t.on("load",window.onload),window.onload=function(){t.trigger("load")},window.onresize&&t.on("resize",window.onresize),window.onresize=function(){t.trigger("resize")},window.onorientationchange&&t.on("orientationChange",window.onorientationchange),window.onorientationchange=function(){t.trigger("orientationChange")}},initMethods:function(){document.addEventListener?!function(e,n){t.DOMReady=n()}("domready",function(){function t(t){for(r=1;t=n.shift();)t()}var e,n=[],i=document,a="DOMContentLoaded",r=/^loaded|^c/.test(i.readyState);return i.addEventListener(a,e=function(){i.removeEventListener(a,e),t()}),function(t){r?t():n.push(t)}}):!function(e,n){t.DOMReady=n()}("domready",function(t){function e(t){for(h=1;t=i.shift();)t()}var n,i=[],a=!1,r=document,o=r.documentElement,s=o.doScroll,c="DOMContentLoaded",d="addEventListener",u="onreadystatechange",l="readyState",f=s?/^loaded|^c/:/^loaded|c/,h=f.test(r[l]);return r[d]&&r[d](c,n=function(){r.removeEventListener(c,n,a),e()},a),s&&r.attachEvent(u,n=function(){/^c/.test(r[l])&&(r.detachEvent(u,n),e())}),t=s?function(e){self!=top?h?e():i.push(e):function(){try{o.doScroll("left")}catch(n){return setTimeout(function(){t(e)},50)}e()}()}:function(t){h?t():i.push(t)}}),Array.prototype.indexOf?t.indexOf=function(t,e){return t.indexOf(e)}:t.indexOf=function(t,e){if("string"==typeof t)return t.indexOf(e);var n,i,a=e?e:0;if(!this)throw new TypeError;if(i=this.length,0===i||a>=i)return-1;for(0>a&&(a=i-Math.abs(a)),n=a;i>n;n++)if(this[n]===t)return n;return-1},Array.isArray?t.isArray=function(t){return Array.isArray(t)}:t.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Object.keys?t.iterate=function(t,e){if(!t)return[];var n,i=Object.keys(t);for(n=0;i[n]&&e(i[n],t[i[n]])!==!1;n++);}:t.iterate=function(t,e){if(!t)return[];var n;for(n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])===!1)break},window.matchMedia?t.matchesMedia=function(t){return""==t?!0:window.matchMedia(t).matches}:window.styleMedia||window.media?t.matchesMedia=function(t){if(""==t)return!0;var e=window.styleMedia||window.media;return e.matchMedium(t||"all")}:window.getComputedStyle?t.matchesMedia=function(t){if(""==t)return!0;var e=document.createElement("style"),n=document.getElementsByTagName("script")[0],i=null;e.type="text/css",e.id="matchmediajs-test",n.parentNode.insertBefore(e,n),i="getComputedStyle"in window&&window.getComputedStyle(e,null)||e.currentStyle;var a="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return e.styleSheet?e.styleSheet.cssText=a:e.textContent=a,"1px"===i.width}:t.matchesMedia=function(t){if(""==t)return!0;var e,n,i,a,r={"min-width":null,"max-width":null},o=!1;for(i=t.split(/\s+and\s+/),e=0;er["max-width"]||null!==r["min-height"]&&cr["max-height"]?!1:!0},navigator.userAgent.match(/MSIE ([0-9]+)/)&&RegExp.$1<9&&(t.newStyle=function(t){var e=document.createElement("span");return e.innerHTML=' ",e})},initVars:function(){var e,n,i,a=navigator.userAgent;e="other",n=0,i=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(RegExp.$1),!1):void 0}),t.vars.browser=e,t.vars.browserVersion=n,e="other",n=0,i=[["ios",/([0-9_]+) like Mac OS X/,function(t){return t.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(t){return 0}],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(t){return t.replace("_",".").replace("_","")}],["wp",/Windows Phone ([0-9\.]+)/,null],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(i[2]?i[2](RegExp.$1):RegExp.$1),!1):void 0}),t.vars.os=e,t.vars.osVersion=n,t.vars.IEVersion="ie"==t.vars.browser?t.vars.browserVersion:99,t.vars.touch="wp"==t.vars.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),t.vars.mobile="wp"==t.vars.os||"android"==t.vars.os||"ios"==t.vars.os||"bb"==t.vars.os}};return t.init(),t}();!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.skel=e()}(this,function(){return skel}); diff --git a/bl-themes/future-imperfect/assets/js/util.js b/bl-themes/future-imperfect/assets/js/util.js index bdb8e9f0..ecf7b371 100644 --- a/bl-themes/future-imperfect/assets/js/util.js +++ b/bl-themes/future-imperfect/assets/js/util.js @@ -1,587 +1,587 @@ -(function($) { - - /** - * Generate an indented list of links from a nav. Meant for use with panel(). - * @return {jQuery} jQuery object. - */ - $.fn.navList = function() { - - var $this = $(this); - $a = $this.find('a'), - b = []; - - $a.each(function() { - - var $this = $(this), - indent = Math.max(0, $this.parents('li').length - 1), - href = $this.attr('href'), - target = $this.attr('target'); - - b.push( - '' + - '' + - $this.text() + - '' - ); - - }); - - return b.join(''); - - }; - - /** - * Panel-ify an element. - * @param {object} userConfig User config. - * @return {jQuery} jQuery object. - */ - $.fn.panel = function(userConfig) { - - // No elements? - if (this.length == 0) - return $this; - - // Multiple elements? - if (this.length > 1) { - - for (var i=0; i < this.length; i++) - $(this[i]).panel(userConfig); - - return $this; - - } - - // Vars. - var $this = $(this), - $body = $('body'), - $window = $(window), - id = $this.attr('id'), - config; - - // Config. - config = $.extend({ - - // Delay. - delay: 0, - - // Hide panel on link click. - hideOnClick: false, - - // Hide panel on escape keypress. - hideOnEscape: false, - - // Hide panel on swipe. - hideOnSwipe: false, - - // Reset scroll position on hide. - resetScroll: false, - - // Reset forms on hide. - resetForms: false, - - // Side of viewport the panel will appear. - side: null, - - // Target element for "class". - target: $this, - - // Class to toggle. - visibleClass: 'visible' - - }, userConfig); - - // Expand "target" if it's not a jQuery object already. - if (typeof config.target != 'jQuery') - config.target = $(config.target); - - // Panel. - - // Methods. - $this._hide = function(event) { - - // Already hidden? Bail. - if (!config.target.hasClass(config.visibleClass)) - return; - - // If an event was provided, cancel it. - if (event) { - - event.preventDefault(); - event.stopPropagation(); - - } - - // Hide. - config.target.removeClass(config.visibleClass); - - // Post-hide stuff. - window.setTimeout(function() { - - // Reset scroll position. - if (config.resetScroll) - $this.scrollTop(0); - - // Reset forms. - if (config.resetForms) - $this.find('form').each(function() { - this.reset(); - }); - - }, config.delay); - - }; - - // Vendor fixes. - $this - .css('-ms-overflow-style', '-ms-autohiding-scrollbar') - .css('-webkit-overflow-scrolling', 'touch'); - - // Hide on click. - if (config.hideOnClick) { - - $this.find('a') - .css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)'); - - $this - .on('click', 'a', function(event) { - - var $a = $(this), - href = $a.attr('href'), - target = $a.attr('target'); - - if (!href || href == '#' || href == '' || href == '#' + id) - return; - - // Cancel original event. - event.preventDefault(); - event.stopPropagation(); - - // Hide panel. - $this._hide(); - - // Redirect to href. - window.setTimeout(function() { - - if (target == '_blank') - window.open(href); - else - window.location.href = href; - - }, config.delay + 10); - - }); - - } - - // Event: Touch stuff. - $this.on('touchstart', function(event) { - - $this.touchPosX = event.originalEvent.touches[0].pageX; - $this.touchPosY = event.originalEvent.touches[0].pageY; - - }) - - $this.on('touchmove', function(event) { - - if ($this.touchPosX === null - || $this.touchPosY === null) - return; - - var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX, - diffY = $this.touchPosY - event.originalEvent.touches[0].pageY, - th = $this.outerHeight(), - ts = ($this.get(0).scrollHeight - $this.scrollTop()); - - // Hide on swipe? - if (config.hideOnSwipe) { - - var result = false, - boundary = 20, - delta = 50; - - switch (config.side) { - - case 'left': - result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta); - break; - - case 'right': - result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta)); - break; - - case 'top': - result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta); - break; - - case 'bottom': - result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta)); - break; - - default: - break; - - } - - if (result) { - - $this.touchPosX = null; - $this.touchPosY = null; - $this._hide(); - - return false; - - } - - } - - // Prevent vertical scrolling past the top or bottom. - if (($this.scrollTop() < 0 && diffY < 0) - || (ts > (th - 2) && ts < (th + 2) && diffY > 0)) { - - event.preventDefault(); - event.stopPropagation(); - - } - - }); - - // Event: Prevent certain events inside the panel from bubbling. - $this.on('click touchend touchstart touchmove', function(event) { - event.stopPropagation(); - }); - - // Event: Hide panel if a child anchor tag pointing to its ID is clicked. - $this.on('click', 'a[href="#' + id + '"]', function(event) { - - event.preventDefault(); - event.stopPropagation(); - - config.target.removeClass(config.visibleClass); - - }); - - // Body. - - // Event: Hide panel on body click/tap. - $body.on('click touchend', function(event) { - $this._hide(event); - }); - - // Event: Toggle. - $body.on('click', 'a[href="#' + id + '"]', function(event) { - - event.preventDefault(); - event.stopPropagation(); - - config.target.toggleClass(config.visibleClass); - - }); - - // Window. - - // Event: Hide on ESC. - if (config.hideOnEscape) - $window.on('keydown', function(event) { - - if (event.keyCode == 27) - $this._hide(event); - - }); - - return $this; - - }; - - /** - * Apply "placeholder" attribute polyfill to one or more forms. - * @return {jQuery} jQuery object. - */ - $.fn.placeholder = function() { - - // Browser natively supports placeholders? Bail. - if (typeof (document.createElement('input')).placeholder != 'undefined') - return $(this); - - // No elements? - if (this.length == 0) - return $this; - - // Multiple elements? - if (this.length > 1) { - - for (var i=0; i < this.length; i++) - $(this[i]).placeholder(); - - return $this; - - } - - // Vars. - var $this = $(this); - - // Text, TextArea. - $this.find('input[type=text],textarea') - .each(function() { - - var i = $(this); - - if (i.val() == '' - || i.val() == i.attr('placeholder')) - i - .addClass('polyfill-placeholder') - .val(i.attr('placeholder')); - - }) - .on('blur', function() { - - var i = $(this); - - if (i.attr('name').match(/-polyfill-field$/)) - return; - - if (i.val() == '') - i - .addClass('polyfill-placeholder') - .val(i.attr('placeholder')); - - }) - .on('focus', function() { - - var i = $(this); - - if (i.attr('name').match(/-polyfill-field$/)) - return; - - if (i.val() == i.attr('placeholder')) - i - .removeClass('polyfill-placeholder') - .val(''); - - }); - - // Password. - $this.find('input[type=password]') - .each(function() { - - var i = $(this); - var x = $( - $('
') - .append(i.clone()) - .remove() - .html() - .replace(/type="password"/i, 'type="text"') - .replace(/type=password/i, 'type=text') - ); - - if (i.attr('id') != '') - x.attr('id', i.attr('id') + '-polyfill-field'); - - if (i.attr('name') != '') - x.attr('name', i.attr('name') + '-polyfill-field'); - - x.addClass('polyfill-placeholder') - .val(x.attr('placeholder')).insertAfter(i); - - if (i.val() == '') - i.hide(); - else - x.hide(); - - i - .on('blur', function(event) { - - event.preventDefault(); - - var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); - - if (i.val() == '') { - - i.hide(); - x.show(); - - } - - }); - - x - .on('focus', function(event) { - - event.preventDefault(); - - var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']'); - - x.hide(); - - i - .show() - .focus(); - - }) - .on('keypress', function(event) { - - event.preventDefault(); - x.val(''); - - }); - - }); - - // Events. - $this - .on('submit', function() { - - $this.find('input[type=text],input[type=password],textarea') - .each(function(event) { - - var i = $(this); - - if (i.attr('name').match(/-polyfill-field$/)) - i.attr('name', ''); - - if (i.val() == i.attr('placeholder')) { - - i.removeClass('polyfill-placeholder'); - i.val(''); - - } - - }); - - }) - .on('reset', function(event) { - - event.preventDefault(); - - $this.find('select') - .val($('option:first').val()); - - $this.find('input,textarea') - .each(function() { - - var i = $(this), - x; - - i.removeClass('polyfill-placeholder'); - - switch (this.type) { - - case 'submit': - case 'reset': - break; - - case 'password': - i.val(i.attr('defaultValue')); - - x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); - - if (i.val() == '') { - i.hide(); - x.show(); - } - else { - i.show(); - x.hide(); - } - - break; - - case 'checkbox': - case 'radio': - i.attr('checked', i.attr('defaultValue')); - break; - - case 'text': - case 'textarea': - i.val(i.attr('defaultValue')); - - if (i.val() == '') { - i.addClass('polyfill-placeholder'); - i.val(i.attr('placeholder')); - } - - break; - - default: - i.val(i.attr('defaultValue')); - break; - - } - }); - - }); - - return $this; - - }; - - /** - * Moves elements to/from the first positions of their respective parents. - * @param {jQuery} $elements Elements (or selector) to move. - * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations. - */ - $.prioritize = function($elements, condition) { - - var key = '__prioritize'; - - // Expand $elements if it's not already a jQuery object. - if (typeof $elements != 'jQuery') - $elements = $($elements); - - // Step through elements. - $elements.each(function() { - - var $e = $(this), $p, - $parent = $e.parent(); - - // No parent? Bail. - if ($parent.length == 0) - return; - - // Not moved? Move it. - if (!$e.data(key)) { - - // Condition is false? Bail. - if (!condition) - return; - - // Get placeholder (which will serve as our point of reference for when this element needs to move back). - $p = $e.prev(); - - // Couldn't find anything? Means this element's already at the top, so bail. - if ($p.length == 0) - return; - - // Move element to top of parent. - $e.prependTo($parent); - - // Mark element as moved. - $e.data(key, $p); - - } - - // Moved already? - else { - - // Condition is true? Bail. - if (condition) - return; - - $p = $e.data(key); - - // Move element back to its original location (using our placeholder). - $e.insertAfter($p); - - // Unmark element as moved. - $e.removeData(key); - - } - - }); - - }; - +(function($) { + + /** + * Generate an indented list of links from a nav. Meant for use with panel(). + * @return {jQuery} jQuery object. + */ + $.fn.navList = function() { + + var $this = $(this); + $a = $this.find('a'), + b = []; + + $a.each(function() { + + var $this = $(this), + indent = Math.max(0, $this.parents('li').length - 1), + href = $this.attr('href'), + target = $this.attr('target'); + + b.push( + '' + + '' + + $this.text() + + '' + ); + + }); + + return b.join(''); + + }; + + /** + * Panel-ify an element. + * @param {object} userConfig User config. + * @return {jQuery} jQuery object. + */ + $.fn.panel = function(userConfig) { + + // No elements? + if (this.length == 0) + return $this; + + // Multiple elements? + if (this.length > 1) { + + for (var i=0; i < this.length; i++) + $(this[i]).panel(userConfig); + + return $this; + + } + + // Vars. + var $this = $(this), + $body = $('body'), + $window = $(window), + id = $this.attr('id'), + config; + + // Config. + config = $.extend({ + + // Delay. + delay: 0, + + // Hide panel on link click. + hideOnClick: false, + + // Hide panel on escape keypress. + hideOnEscape: false, + + // Hide panel on swipe. + hideOnSwipe: false, + + // Reset scroll position on hide. + resetScroll: false, + + // Reset forms on hide. + resetForms: false, + + // Side of viewport the panel will appear. + side: null, + + // Target element for "class". + target: $this, + + // Class to toggle. + visibleClass: 'visible' + + }, userConfig); + + // Expand "target" if it's not a jQuery object already. + if (typeof config.target != 'jQuery') + config.target = $(config.target); + + // Panel. + + // Methods. + $this._hide = function(event) { + + // Already hidden? Bail. + if (!config.target.hasClass(config.visibleClass)) + return; + + // If an event was provided, cancel it. + if (event) { + + event.preventDefault(); + event.stopPropagation(); + + } + + // Hide. + config.target.removeClass(config.visibleClass); + + // Post-hide stuff. + window.setTimeout(function() { + + // Reset scroll position. + if (config.resetScroll) + $this.scrollTop(0); + + // Reset forms. + if (config.resetForms) + $this.find('form').each(function() { + this.reset(); + }); + + }, config.delay); + + }; + + // Vendor fixes. + $this + .css('-ms-overflow-style', '-ms-autohiding-scrollbar') + .css('-webkit-overflow-scrolling', 'touch'); + + // Hide on click. + if (config.hideOnClick) { + + $this.find('a') + .css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)'); + + $this + .on('click', 'a', function(event) { + + var $a = $(this), + href = $a.attr('href'), + target = $a.attr('target'); + + if (!href || href == '#' || href == '' || href == '#' + id) + return; + + // Cancel original event. + event.preventDefault(); + event.stopPropagation(); + + // Hide panel. + $this._hide(); + + // Redirect to href. + window.setTimeout(function() { + + if (target == '_blank') + window.open(href); + else + window.location.href = href; + + }, config.delay + 10); + + }); + + } + + // Event: Touch stuff. + $this.on('touchstart', function(event) { + + $this.touchPosX = event.originalEvent.touches[0].pageX; + $this.touchPosY = event.originalEvent.touches[0].pageY; + + }) + + $this.on('touchmove', function(event) { + + if ($this.touchPosX === null + || $this.touchPosY === null) + return; + + var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX, + diffY = $this.touchPosY - event.originalEvent.touches[0].pageY, + th = $this.outerHeight(), + ts = ($this.get(0).scrollHeight - $this.scrollTop()); + + // Hide on swipe? + if (config.hideOnSwipe) { + + var result = false, + boundary = 20, + delta = 50; + + switch (config.side) { + + case 'left': + result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta); + break; + + case 'right': + result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta)); + break; + + case 'top': + result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta); + break; + + case 'bottom': + result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta)); + break; + + default: + break; + + } + + if (result) { + + $this.touchPosX = null; + $this.touchPosY = null; + $this._hide(); + + return false; + + } + + } + + // Prevent vertical scrolling past the top or bottom. + if (($this.scrollTop() < 0 && diffY < 0) + || (ts > (th - 2) && ts < (th + 2) && diffY > 0)) { + + event.preventDefault(); + event.stopPropagation(); + + } + + }); + + // Event: Prevent certain events inside the panel from bubbling. + $this.on('click touchend touchstart touchmove', function(event) { + event.stopPropagation(); + }); + + // Event: Hide panel if a child anchor tag pointing to its ID is clicked. + $this.on('click', 'a[href="#' + id + '"]', function(event) { + + event.preventDefault(); + event.stopPropagation(); + + config.target.removeClass(config.visibleClass); + + }); + + // Body. + + // Event: Hide panel on body click/tap. + $body.on('click touchend', function(event) { + $this._hide(event); + }); + + // Event: Toggle. + $body.on('click', 'a[href="#' + id + '"]', function(event) { + + event.preventDefault(); + event.stopPropagation(); + + config.target.toggleClass(config.visibleClass); + + }); + + // Window. + + // Event: Hide on ESC. + if (config.hideOnEscape) + $window.on('keydown', function(event) { + + if (event.keyCode == 27) + $this._hide(event); + + }); + + return $this; + + }; + + /** + * Apply "placeholder" attribute polyfill to one or more forms. + * @return {jQuery} jQuery object. + */ + $.fn.placeholder = function() { + + // Browser natively supports placeholders? Bail. + if (typeof (document.createElement('input')).placeholder != 'undefined') + return $(this); + + // No elements? + if (this.length == 0) + return $this; + + // Multiple elements? + if (this.length > 1) { + + for (var i=0; i < this.length; i++) + $(this[i]).placeholder(); + + return $this; + + } + + // Vars. + var $this = $(this); + + // Text, TextArea. + $this.find('input[type=text],textarea') + .each(function() { + + var i = $(this); + + if (i.val() == '' + || i.val() == i.attr('placeholder')) + i + .addClass('polyfill-placeholder') + .val(i.attr('placeholder')); + + }) + .on('blur', function() { + + var i = $(this); + + if (i.attr('name').match(/-polyfill-field$/)) + return; + + if (i.val() == '') + i + .addClass('polyfill-placeholder') + .val(i.attr('placeholder')); + + }) + .on('focus', function() { + + var i = $(this); + + if (i.attr('name').match(/-polyfill-field$/)) + return; + + if (i.val() == i.attr('placeholder')) + i + .removeClass('polyfill-placeholder') + .val(''); + + }); + + // Password. + $this.find('input[type=password]') + .each(function() { + + var i = $(this); + var x = $( + $('
') + .append(i.clone()) + .remove() + .html() + .replace(/type="password"/i, 'type="text"') + .replace(/type=password/i, 'type=text') + ); + + if (i.attr('id') != '') + x.attr('id', i.attr('id') + '-polyfill-field'); + + if (i.attr('name') != '') + x.attr('name', i.attr('name') + '-polyfill-field'); + + x.addClass('polyfill-placeholder') + .val(x.attr('placeholder')).insertAfter(i); + + if (i.val() == '') + i.hide(); + else + x.hide(); + + i + .on('blur', function(event) { + + event.preventDefault(); + + var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); + + if (i.val() == '') { + + i.hide(); + x.show(); + + } + + }); + + x + .on('focus', function(event) { + + event.preventDefault(); + + var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']'); + + x.hide(); + + i + .show() + .focus(); + + }) + .on('keypress', function(event) { + + event.preventDefault(); + x.val(''); + + }); + + }); + + // Events. + $this + .on('submit', function() { + + $this.find('input[type=text],input[type=password],textarea') + .each(function(event) { + + var i = $(this); + + if (i.attr('name').match(/-polyfill-field$/)) + i.attr('name', ''); + + if (i.val() == i.attr('placeholder')) { + + i.removeClass('polyfill-placeholder'); + i.val(''); + + } + + }); + + }) + .on('reset', function(event) { + + event.preventDefault(); + + $this.find('select') + .val($('option:first').val()); + + $this.find('input,textarea') + .each(function() { + + var i = $(this), + x; + + i.removeClass('polyfill-placeholder'); + + switch (this.type) { + + case 'submit': + case 'reset': + break; + + case 'password': + i.val(i.attr('defaultValue')); + + x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); + + if (i.val() == '') { + i.hide(); + x.show(); + } + else { + i.show(); + x.hide(); + } + + break; + + case 'checkbox': + case 'radio': + i.attr('checked', i.attr('defaultValue')); + break; + + case 'text': + case 'textarea': + i.val(i.attr('defaultValue')); + + if (i.val() == '') { + i.addClass('polyfill-placeholder'); + i.val(i.attr('placeholder')); + } + + break; + + default: + i.val(i.attr('defaultValue')); + break; + + } + }); + + }); + + return $this; + + }; + + /** + * Moves elements to/from the first positions of their respective parents. + * @param {jQuery} $elements Elements (or selector) to move. + * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations. + */ + $.prioritize = function($elements, condition) { + + var key = '__prioritize'; + + // Expand $elements if it's not already a jQuery object. + if (typeof $elements != 'jQuery') + $elements = $($elements); + + // Step through elements. + $elements.each(function() { + + var $e = $(this), $p, + $parent = $e.parent(); + + // No parent? Bail. + if ($parent.length == 0) + return; + + // Not moved? Move it. + if (!$e.data(key)) { + + // Condition is false? Bail. + if (!condition) + return; + + // Get placeholder (which will serve as our point of reference for when this element needs to move back). + $p = $e.prev(); + + // Couldn't find anything? Means this element's already at the top, so bail. + if ($p.length == 0) + return; + + // Move element to top of parent. + $e.prependTo($parent); + + // Mark element as moved. + $e.data(key, $p); + + } + + // Moved already? + else { + + // Condition is true? Bail. + if (condition) + return; + + $p = $e.data(key); + + // Move element back to its original location (using our placeholder). + $e.insertAfter($p); + + // Unmark element as moved. + $e.removeData(key); + + } + + }); + + }; + })(jQuery); \ No newline at end of file diff --git a/bl-themes/future-imperfect/img/favicon.png b/bl-themes/future-imperfect/img/favicon.png index 517c6c127f5793d143f271e7008b55c45bcb4c25..73ddfa1309c8d536fd216610354ecd3678a991df 100644 GIT binary patch literal 1640 zcmX|CX;c$e6rSuMAt;MM1*;qtO3kgCB*P>Bk3f}H+%@11w=cklOo_suzTEHZo}jWVAC z001o{I4}x5#l}S@qPx!nqALIpSA_(En}3sQm7zIXezk=^yk9W9tM_7V+-i%)?)!0L z5Sg*tb&eyRx;V`_%r&G}v0USM#rExcdD}qlI!>X?%k8Zxy&ZF8B?}QK2EO4pr zE2R$yISk5f9UNKndCG72DrY%J$@4J#L*b53ECs_wP zS7*nq!I?CNZ{%+7%z#~04yvb96S4ubjfe|4LX5k*tK98gZ80}kRDc;>12594+}ooN zk=gvwbQX^5f<#MW$P5JZmsqq=TO_w@t;A54DBVFvcRsHk88xQXOXjrLwCv6va5$L{ zDNGD()ewD>c`Id^=DB$fW`vL}h-Q3KDiP7cOVUCoi)`Ub)5F%a6@)TFP#k&PraSxX z54#4Uj6bB3xa;c7TI{3)u?Xggxr4e34q`<-EGB5PIrCm|RHiH+xAu?fEPpTFc9&Ve zc0sRaJaM1mMny^BbLx)pL$eH>g2~;S1kfvwPjd!Vl64Wo*>oN=CxTdmE2pKi(Nu&9 z-&03HX326{>=#3`$Er^BU`K$F9heQehW>&Kp>2KXI$k9`7&d-R&3!mtuwyIJxs zfiXpyeaiyA2x1AvXQ5D1>$$NLlEy?2?ylQxdrg$E#{P<+vGMKTkC;8`l(surneJHz1~HP_VRW)y4C} z2?ggqS7Z@=3OCQ)gWrZJeG^>$zjMU$o2Mvm8JdxC8hgp~XtrWr_;;~f($#SkGyEV>N z!+!kBf7hqo`{{QYGxfQME{4Jo<4!<}cziI;*KDOey|E0UZYi%l`e{A`IU+aaZ5W6e zeT_uD?=;lN!gNN;kK|A2wGTTl=0nxm)Ha?Mk}TbqwZ!*X;HZc0;Ww)w?`X zM@jy3a9T56;~^d%gl8tAHK1R-?{X`Y&9)c~%Zy^vd{IG0Op4j28N%}85J78LT^BVJ zJ@7x-cU)0o8SE*IJjjGG;8D{0!LG~ zV$gC$JElZ<8h)RjSq~`@yN|PV-gV8-_AN@NtxzaADw^u#)^ss>*Hz>ofoGCI9SQzj^ok#rZT8uBwm%IN>NiWB(?R z*uBao#jKn7mDn0Wrp&UTtA403ICEVX5P|34d%0A)NshZpdi==AQC6KC4JpP~u}(|l z^PAQR7nd=)5?rhYE=P+mxR(fuAf;X;$qwAsGbv*2cUKkLj!*0pyH zrCy_M>-(pUowAYBCYI^U>;7sgd*J#uH_vM{1I9{|`Hf3)onHmZY_By|)-uQj63fB) zNj;-YF2{B&Li|p3UDamz;JSBWtua0Yz5a<}u=8l}KxOmO-q@U!y@0-C{X)rIC6*&~ z&zS<^2;m1e(*xFCfWNKg<}JQnJbx|r1BXRJ-X^TPE2#y`0ZytdJ#8N@prB%M60?LE V&pNnBPx&r%6OXR9FeUSIu^J=B^nFVvZj#AnEt?Ju^X9#8 z-g`T<`{r8{)7e}um$kmW-eWeKpU@H~^`>lxhgh~pE-x=X?d|P-U0Yi_hoM|EsR0KE z2M(*%+NRd6udm;lpPwHko0pu+o12^L?CeYp5y=TsPF-AF1jFI*ZxMj&@)9^cK7L^` znci`uX!QI2YRGlz2)6FpHE1>STJL*DWnAVYl0TTjaOW3GkRb z7K`P(*XzB<6@1J~fX>;*4MvZ&6An6#&xJc-;elFPTdPQZFG-R;7K<@-o6W|ms-V7V z^g^M8XxL5EF;9{wG!_f(v6A9o}t9WZ@Xb{C{LLInP0@KseY=3{h$eGXQV{L7D7ik^_ zMe5W0gvSha0A%7$2|$tBZnq2hKy`I>5mtxd*R>Ovn3&Mv zS2rYv1R~VkdY1$O0k*rls|!9pKF*v@&5tZ1fy2>V{alwv0wod&c6fNG3r>_w6NlIm z2xMbpBRHI{YKVf;-rlb1m>cWr>bNKx6NoK=y;1^Ggm@-G73z9>d)fK9F2c)dYikRa ztLIaQjdy^7z0&P8N@Cd?adL7}_!+7_b6JB=oFFD}sDupE8SEAE|7eKC>AJE52ny;< z?DYYOJz7bOjg7I>(^D--&PM)nvPxJ+EI!XA0N(C!IQqd}scbp`NT(Ir#<9vscX-}h z?*zW+$)hy(tN#&{Bj8T5+wvGd=pqr62xHpD#zvAJ>=EC3?lms~C>ItMeo&U(Brea* z%_;1dga37;uO^*Jr5=Vtp`V35a)pw6-^XI55Lx{0#iAoik$=$47T#pz$t z*V)UBJ?m=k00000NkvXXu0mjflz!ZO diff --git a/bl-themes/future-imperfect/img/logo.jpg b/bl-themes/future-imperfect/img/logo.jpg index 7c522026661c11ae4dc29b25e3df706987d2c3be..a9c4c17b42dc9300514b6a67b48d0ba7394cfa97 100644 GIT binary patch literal 6238 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 literal 3644 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 - - - - - - - - - -
- - - - - - - - -
- - whereAmI()=='home') || ($Url->whereAmI()=='tag') || ($Url->whereAmI()=='blog') ) - { - include(PATH_THEME_PHP.'home.php'); - } - elseif($Url->whereAmI()=='post') - { - include(PATH_THEME_PHP.'post.php'); - } - elseif($Url->whereAmI()=='page') - { - include(PATH_THEME_PHP.'page.php'); - } - ?> - -
- - - - -
- - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + whereAmI()=='home') || ($Url->whereAmI()=='tag') || ($Url->whereAmI()=='blog') ) + { + include(PATH_THEME_PHP.'home.php'); + } + elseif($Url->whereAmI()=='post') + { + include(PATH_THEME_PHP.'post.php'); + } + elseif($Url->whereAmI()=='page') + { + include(PATH_THEME_PHP.'page.php'); + } + ?> + +
+ + + + +
+ + + + + + + + + + + + + diff --git a/bl-themes/future-imperfect/languages/es_AR.json b/bl-themes/future-imperfect/languages/es_AR.json index 1da18e71..9aa94671 100644 --- a/bl-themes/future-imperfect/languages/es_AR.json +++ b/bl-themes/future-imperfect/languages/es_AR.json @@ -2,6 +2,11 @@ "theme-data": { "name": "Future Imperfect", - "description": "Tema limpio y adaptable para todo tipo de dispositivos creado por @n33co portado por Diego Najar para Bludit." + "description": "Tema limpio y adaptable para todo tipo de dispositivos creado por @n33co portado por Diego Najar para Bludit.", + "author": "n33co", + "email": "", + "website": "http://html5up.net", + "version": "1.0", + "releaseDate": "2015-11-01" } } \ No newline at end of file diff --git a/bl-themes/future-imperfect/metadata.json b/bl-themes/future-imperfect/metadata.json index 99c75bbc..23c23b98 100644 --- a/bl-themes/future-imperfect/metadata.json +++ b/bl-themes/future-imperfect/metadata.json @@ -3,8 +3,8 @@ "email": "", "website": "http://html5up.net", "version": "1.1", - "releaseDate": "2015-11-11", + "releaseDate": "2015-11.11", "license": "CCA 3.0", - "compatible": "1.0,1.1,1.1.2,1.3", + "requires": "Bludit v1.1", "notes": "" } diff --git a/bl-themes/future-imperfect/php/home.php b/bl-themes/future-imperfect/php/home.php index 11f90320..9712a7b0 100644 --- a/bl-themes/future-imperfect/php/home.php +++ b/bl-themes/future-imperfect/php/home.php @@ -1,33 +1,28 @@ -
- +
-

title() ?>

description() ?>

- -
- user(); + user(); + // Default author is the username. + $author = $User->username(); + + // If the user complete the first name or last name this will be the author. if( Text::isNotEmpty($User->firstName()) || Text::isNotEmpty($User->lastName()) ) { - // Author = First name and Last name $author = $User->firstName().' '.$User->lastName(); } - else { - // Author = username - $author = $User->username(); - } ?>
@@ -66,7 +61,7 @@ - +
@@ -84,4 +79,4 @@ echo '
  • '; } ?> - \ No newline at end of file +