Merge remote-tracking branch 'upstream/master'
|
@ -7,13 +7,18 @@
|
||||||
// Array with all pages.
|
// Array with all pages.
|
||||||
$pages = array();
|
$pages = array();
|
||||||
|
|
||||||
|
// Array with all published pages.
|
||||||
$pagesPublished = array();
|
$pagesPublished = array();
|
||||||
|
|
||||||
// Array with all pages, order by parent.
|
// Array with all pages, order by parent.
|
||||||
$pagesParents = array(NO_PARENT_CHAR=>array());
|
$pagesParents = array(NO_PARENT_CHAR=>array());
|
||||||
|
|
||||||
|
// Array with all published pages, ordery by parent.
|
||||||
$pagesParentsPublished = array();
|
$pagesParentsPublished = array();
|
||||||
|
|
||||||
|
// Array with all published parent pages
|
||||||
|
$parents = array();
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// Main
|
// Main
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
|
@ -183,6 +183,7 @@ function buildAllPages()
|
||||||
global $pagesParentsPublished;
|
global $pagesParentsPublished;
|
||||||
global $pagesPublished;
|
global $pagesPublished;
|
||||||
global $dbPages;
|
global $dbPages;
|
||||||
|
global $parents;
|
||||||
|
|
||||||
// Get the page list
|
// Get the page list
|
||||||
$list = $dbPages->getDB();
|
$list = $dbPages->getDB();
|
||||||
|
@ -236,5 +237,7 @@ function buildAllPages()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$parents = $pagesParentsPublished[NO_PARENT_CHAR];
|
||||||
|
|
||||||
return $pages;
|
return $pages;
|
||||||
}
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
Forty by HTML5 UP
|
||||||
|
html5up.net | @ajlkn
|
||||||
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Button */
|
||||||
|
|
||||||
|
.button {
|
||||||
|
border: solid 2px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.next {
|
||||||
|
padding-right: 1.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.next:before, .button.next:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tiles */
|
||||||
|
|
||||||
|
.tiles article {
|
||||||
|
width: 50%;
|
||||||
|
-ms-behavior: url("assets/js/ie/backgroundsize.min.htc");
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Banner */
|
||||||
|
|
||||||
|
#banner {
|
||||||
|
-ms-behavior: url("assets/js/ie/backgroundsize.min.htc");
|
||||||
|
}
|
||||||
|
|
||||||
|
#banner:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Menu */
|
||||||
|
|
||||||
|
#menu {
|
||||||
|
background: #242943;
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
Forty by HTML5 UP
|
||||||
|
html5up.net | @ajlkn
|
||||||
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Spotlights */
|
||||||
|
|
||||||
|
.spotlights > section:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spotlights > section > .image {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spotlights > section > .content {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tiles */
|
||||||
|
|
||||||
|
.tiles:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tiles article {
|
||||||
|
padding: 8em 4em 6em 4em ;
|
||||||
|
float: left;
|
||||||
|
height: auto;
|
||||||
|
max-height: none;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header */
|
||||||
|
|
||||||
|
#header .logo {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header nav {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Banner */
|
||||||
|
|
||||||
|
#banner {
|
||||||
|
padding: 7em 0 4em 0 ;
|
||||||
|
background-attachment: scroll;
|
||||||
|
height: auto;
|
||||||
|
max-height: none;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#banner > .inner .content {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#banner > .inner .content > * {
|
||||||
|
margin-left: 0;
|
||||||
|
margin: 0 0 2em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#banner.major {
|
||||||
|
height: auto;
|
||||||
|
max-height: none;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Contact */
|
||||||
|
|
||||||
|
#contact:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contact > .inner > * {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Menu */
|
||||||
|
|
||||||
|
#menu .inner {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
<component lightWeight="true">
|
||||||
|
<attach event="onpropertychange" onevent="handlePropertychange()" />
|
||||||
|
<attach event="ondetach" onevent="restore()" />
|
||||||
|
<attach event="onresize" for="window" onevent="handleResize()" />
|
||||||
|
<script type="text/javascript">
|
||||||
|
var rsrc=/url\(["']?(.*?)["']?\)/,positions={top:0,left:0,bottom:1,right:1,center:0.5},doc=element.document;init(); function init(){var b=doc.createElement("div"),a=doc.createElement("img"),c,d;b.style.position="absolute";b.style.zIndex=-1;b.style.top=0;b.style.right=0;b.style.left=0;b.style.bottom=0;b.style.overflow="hidden";a.style.position="absolute";a.style.width=a.style.width="auto";b.appendChild(a);element.insertBefore(b,element.firstChild);d=[element.currentStyle.backgroundPositionX,element.currentStyle.backgroundPositionY];element.bgsExpando=c={wrapper:b,img:a,backgroundSize:element.currentStyle["background-size"], backgroundPositionX:positions[d[0]]||parseFloat(d[0])/100,backgroundPositionY:positions[d[1]]||parseFloat(d[1])/100};"auto"==element.currentStyle.zIndex&&(element.style.zIndex=0);"static"==element.currentStyle.position&&(element.style.position="relative");refreshDisplay(element,c)&&(refreshDimensions(element,c),refreshBackgroundImage(element,c,function(){updateBackground(element,c)}))} function refreshDisplay(b,a){var c=b.currentStyle.display;c!=a.display&&(a.display=c,a.somethingChanged=!0);return"none"!=c}function refreshDimensions(b,a){var c=b.offsetWidth-(parseFloat(b.currentStyle.borderLeftWidth)||0)-(parseFloat(b.currentStyle.borderRightWidth)||0),d=b.offsetHeight-(parseFloat(b.currentStyle.borderTopWidth)||0)-(parseFloat(b.currentStyle.borderBottomWidth)||0);if(c!=a.innerWidth||d!=a.innerHeight)a.innerWidth=c,a.innerHeight=d,a.somethingChanged=!0} function refreshBackgroundImage(b,a,c){var d=a.img,e=(rsrc.exec(b.currentStyle.backgroundImage)||[])[1];if(e&&e!=a.backgroundSrc){a.backgroundSrc=e;a.somethingChanged=!0;d.onload=function(){var b=d.width,e=d.height;1==b&&1==e||(a.imgWidth=b,a.imgHeight=e,a.constrain=!1,c(),d.style.visibility="visible",d.onload=null)};d.style.visibility="hidden";d.src=a.backgroundSrc;if(d.readyState||d.complete)d.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",d.src=a.backgroundSrc;a.ignoreNextPropertyChange= !0;b.style.backgroundImage="none"}else c()} function updateBackground(b,a){if(a.somethingChanged){var c=a.img,d=a.innerWidth/a.innerHeight,e=a.imgWidth/a.imgHeight,f=a.constrain;"contain"==a.backgroundSize?e>d?(a.constrain=d="width",e=Math.floor((a.innerHeight-a.innerWidth/e)*a.backgroundPositionY),c.style.top=e+"px",d!=f&&(c.style.width="100%",c.style.height="auto",c.style.left=0)):(a.constrain=d="height",e=Math.floor((a.innerWidth-a.innerHeight*e)*a.backgroundPositionX),c.style.left=e+"px",d!=f&&(c.style.width="auto",c.style.height="100%", c.style.top=0)):"cover"==a.backgroundSize&&(e>d?(a.constrain=d="height",e=Math.floor((a.innerHeight*e-a.innerWidth)*a.backgroundPositionX),c.style.left=-e+"px",d!=f&&(c.style.width="auto",c.style.height="100%",c.style.top=0)):(a.constrain=d="width",e=Math.floor((a.innerWidth/e-a.innerHeight)*a.backgroundPositionY),c.style.top=-e+"px",d!=f&&(c.style.width="100%",c.style.height="auto",c.style.left=0)));a.somethingChanged=!1}} function handlePropertychange(){var b=element.bgsExpando;b.ignoreNextPropertyChange?b.ignoreNextPropertyChange=!1:refreshDisplay(element,b)&&(refreshDimensions(element,b),refreshBackgroundImage(element,b,function(){updateBackground(element,b)}))}function handleResize(){var b=element.bgsExpando;"none"!=b.display&&(refreshDimensions(element,b),updateBackground(element,b))} function restore(){var b=element.bgsExpando;try{element.style.backgroundImage="url('"+b.backgroundSrc+"')",element.removeChild(b.wrapper),element.bgsExpando=null}catch(a){}};
|
||||||
|
</script>
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*
|
||||||
|
HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||||
|
*/
|
||||||
|
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
|
||||||
|
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
|
||||||
|
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
|
||||||
|
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
|
||||||
|
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
|
|
@ -0,0 +1,6 @@
|
||||||
|
/*! Respond.js v1.4.2: min/max-width media query polyfill
|
||||||
|
* Copyright 2014 Scott Jehl
|
||||||
|
* Licensed under MIT
|
||||||
|
* http://j.mp/respondjs */
|
||||||
|
|
||||||
|
!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;b<t.length;b++){var c=t[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!p[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(w(c.styleSheet.rawCssText,e,f),p[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!s||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}x()};y(),c.update=y,c.getEmValue=u,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);
|
|
@ -0,0 +1,2 @@
|
||||||
|
/* jquery.scrollex v0.2.1 | (c) @ajlkn | github.com/ajlkn/jquery.scrollex | MIT licensed */
|
||||||
|
!function(t){function e(t,e,n){return"string"==typeof t&&("%"==t.slice(-1)?t=parseInt(t.substring(0,t.length-1))/100*e:"vh"==t.slice(-2)?t=parseInt(t.substring(0,t.length-2))/100*n:"px"==t.slice(-2)&&(t=parseInt(t.substring(0,t.length-2)))),t}var n=t(window),i=1,o={};n.on("scroll",function(){var e=n.scrollTop();t.map(o,function(t){window.clearTimeout(t.timeoutId),t.timeoutId=window.setTimeout(function(){t.handler(e)},t.options.delay)})}).on("load",function(){n.trigger("scroll")}),jQuery.fn.scrollex=function(l){var s=t(this);if(0==this.length)return s;if(this.length>1){for(var r=0;r<this.length;r++)t(this[r]).scrollex(l);return s}if(s.data("_scrollexId"))return s;var a,u,h,c,p;switch(a=i++,u=jQuery.extend({top:0,bottom:0,delay:0,mode:"default",enter:null,leave:null,initialize:null,terminate:null,scroll:null},l),u.mode){case"top":h=function(t,e,n,i,o){return t>=i&&o>=t};break;case"bottom":h=function(t,e,n,i,o){return n>=i&&o>=n};break;case"middle":h=function(t,e,n,i,o){return e>=i&&o>=e};break;case"top-only":h=function(t,e,n,i,o){return i>=t&&n>=i};break;case"bottom-only":h=function(t,e,n,i,o){return n>=o&&o>=t};break;default:case"default":h=function(t,e,n,i,o){return n>=i&&o>=t}}return c=function(t){var i,o,l,s,r,a,u=this.state,h=!1,c=this.$element.offset();i=n.height(),o=t+i/2,l=t+i,s=this.$element.outerHeight(),r=c.top+e(this.options.top,s,i),a=c.top+s-e(this.options.bottom,s,i),h=this.test(t,o,l,r,a),h!=u&&(this.state=h,h?this.options.enter&&this.options.enter.apply(this.element):this.options.leave&&this.options.leave.apply(this.element)),this.options.scroll&&this.options.scroll.apply(this.element,[(o-r)/(a-r)])},p={id:a,options:u,test:h,handler:c,state:null,element:this,$element:s,timeoutId:null},o[a]=p,s.data("_scrollexId",p.id),p.options.initialize&&p.options.initialize.apply(this),s},jQuery.fn.unscrollex=function(){var e=t(this);if(0==this.length)return e;if(this.length>1){for(var n=0;n<this.length;n++)t(this[n]).unscrollex();return e}var i,l;return(i=e.data("_scrollexId"))?(l=o[i],window.clearTimeout(l.timeoutId),delete o[i],e.removeData("_scrollexId"),l.options.terminate&&l.options.terminate.apply(this),e):e}}(jQuery);
|
|
@ -0,0 +1,2 @@
|
||||||
|
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
|
||||||
|
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
|
|
@ -0,0 +1,352 @@
|
||||||
|
/*
|
||||||
|
Forty by HTML5 UP
|
||||||
|
html5up.net | @ajlkn
|
||||||
|
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)',
|
||||||
|
xxsmall: '(max-width: 360px)'
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies parallax scrolling to an element's background image.
|
||||||
|
* @return {jQuery} jQuery object.
|
||||||
|
*/
|
||||||
|
$.fn._parallax = (skel.vars.browser == 'ie' || skel.vars.browser == 'edge' || skel.vars.mobile) ? function() { return $(this) } : function(intensity) {
|
||||||
|
|
||||||
|
var $window = $(window),
|
||||||
|
$this = $(this);
|
||||||
|
|
||||||
|
if (this.length == 0 || intensity === 0)
|
||||||
|
return $this;
|
||||||
|
|
||||||
|
if (this.length > 1) {
|
||||||
|
|
||||||
|
for (var i=0; i < this.length; i++)
|
||||||
|
$(this[i])._parallax(intensity);
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!intensity)
|
||||||
|
intensity = 0.25;
|
||||||
|
|
||||||
|
$this.each(function() {
|
||||||
|
|
||||||
|
var $t = $(this),
|
||||||
|
on, off;
|
||||||
|
|
||||||
|
on = function() {
|
||||||
|
|
||||||
|
$t.css('background-position', 'center 100%, center 100%, center 0px');
|
||||||
|
|
||||||
|
$window
|
||||||
|
.on('scroll._parallax', function() {
|
||||||
|
|
||||||
|
var pos = parseInt($window.scrollTop()) - parseInt($t.position().top);
|
||||||
|
|
||||||
|
$t.css('background-position', 'center ' + (pos * (-1 * intensity)) + 'px');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
off = function() {
|
||||||
|
|
||||||
|
$t
|
||||||
|
.css('background-position', '');
|
||||||
|
|
||||||
|
$window
|
||||||
|
.off('scroll._parallax');
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
skel.on('change', function() {
|
||||||
|
|
||||||
|
if (skel.breakpoint('medium').active)
|
||||||
|
(off)();
|
||||||
|
else
|
||||||
|
(on)();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$window
|
||||||
|
.off('load._parallax resize._parallax')
|
||||||
|
.on('load._parallax resize._parallax', function() {
|
||||||
|
$window.trigger('scroll');
|
||||||
|
});
|
||||||
|
|
||||||
|
return $(this);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
|
||||||
|
var $window = $(window),
|
||||||
|
$body = $('body'),
|
||||||
|
$wrapper = $('#wrapper'),
|
||||||
|
$header = $('#header'),
|
||||||
|
$banner = $('#banner');
|
||||||
|
|
||||||
|
// Disable animations/transitions until the page has loaded.
|
||||||
|
$body.addClass('is-loading');
|
||||||
|
|
||||||
|
$window.on('load pageshow', function() {
|
||||||
|
window.setTimeout(function() {
|
||||||
|
$body.removeClass('is-loading');
|
||||||
|
}, 100);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Clear transitioning state on unload/hide.
|
||||||
|
$window.on('unload pagehide', function() {
|
||||||
|
window.setTimeout(function() {
|
||||||
|
$('.is-transitioning').removeClass('is-transitioning');
|
||||||
|
}, 250);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Fix: Enable IE-only tweaks.
|
||||||
|
if (skel.vars.browser == 'ie' || skel.vars.browser == 'edge')
|
||||||
|
$body.addClass('is-ie');
|
||||||
|
|
||||||
|
// Fix: Placeholder polyfill.
|
||||||
|
$('form').placeholder();
|
||||||
|
|
||||||
|
// Prioritize "important" elements on medium.
|
||||||
|
skel.on('+medium -medium', function() {
|
||||||
|
$.prioritize(
|
||||||
|
'.important\\28 medium\\29',
|
||||||
|
skel.breakpoint('medium').active
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Scrolly.
|
||||||
|
$('.scrolly').scrolly({
|
||||||
|
offset: function() {
|
||||||
|
return $header.height() - 2;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Tiles.
|
||||||
|
var $tiles = $('.tiles > article');
|
||||||
|
|
||||||
|
$tiles.each(function() {
|
||||||
|
|
||||||
|
var $this = $(this),
|
||||||
|
$image = $this.find('.image'), $img = $image.find('img'),
|
||||||
|
$link = $this.find('.link'),
|
||||||
|
x;
|
||||||
|
|
||||||
|
// Image.
|
||||||
|
|
||||||
|
// Set image.
|
||||||
|
$this.css('background-image', 'url(' + $img.attr('src') + ')');
|
||||||
|
|
||||||
|
// Set position.
|
||||||
|
if (x = $img.data('position'))
|
||||||
|
$image.css('background-position', x);
|
||||||
|
|
||||||
|
// Hide original.
|
||||||
|
$image.hide();
|
||||||
|
|
||||||
|
// Link.
|
||||||
|
if ($link.length > 0) {
|
||||||
|
|
||||||
|
$x = $link.clone()
|
||||||
|
.text('')
|
||||||
|
.addClass('primary')
|
||||||
|
.appendTo($this);
|
||||||
|
|
||||||
|
$link = $link.add($x);
|
||||||
|
|
||||||
|
$link.on('click', function(event) {
|
||||||
|
|
||||||
|
var href = $link.attr('href');
|
||||||
|
|
||||||
|
// Prevent default.
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
// Start transitioning.
|
||||||
|
$this.addClass('is-transitioning');
|
||||||
|
$wrapper.addClass('is-transitioning');
|
||||||
|
|
||||||
|
// Redirect.
|
||||||
|
window.setTimeout(function() {
|
||||||
|
|
||||||
|
if ($link.attr('target') == '_blank')
|
||||||
|
window.open(href);
|
||||||
|
else
|
||||||
|
location.href = href;
|
||||||
|
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Header.
|
||||||
|
if (skel.vars.IEVersion < 9)
|
||||||
|
$header.removeClass('alt');
|
||||||
|
|
||||||
|
if ($banner.length > 0
|
||||||
|
&& $header.hasClass('alt')) {
|
||||||
|
|
||||||
|
$window.on('resize', function() {
|
||||||
|
$window.trigger('scroll');
|
||||||
|
});
|
||||||
|
|
||||||
|
$window.on('load', function() {
|
||||||
|
|
||||||
|
$banner.scrollex({
|
||||||
|
bottom: $header.height() + 10,
|
||||||
|
terminate: function() { $header.removeClass('alt'); },
|
||||||
|
enter: function() { $header.addClass('alt'); },
|
||||||
|
leave: function() { $header.removeClass('alt'); $header.addClass('reveal'); }
|
||||||
|
});
|
||||||
|
|
||||||
|
window.setTimeout(function() {
|
||||||
|
$window.triggerHandler('scroll');
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Banner.
|
||||||
|
$banner.each(function() {
|
||||||
|
|
||||||
|
var $this = $(this),
|
||||||
|
$image = $this.find('.image'), $img = $image.find('img');
|
||||||
|
|
||||||
|
// Parallax.
|
||||||
|
$this._parallax(0.275);
|
||||||
|
|
||||||
|
// Image.
|
||||||
|
if ($image.length > 0) {
|
||||||
|
|
||||||
|
// Set image.
|
||||||
|
$this.css('background-image', 'url(' + $img.attr('src') + ')');
|
||||||
|
|
||||||
|
// Hide original.
|
||||||
|
$image.hide();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Menu.
|
||||||
|
var $menu = $('#menu'),
|
||||||
|
$menuInner;
|
||||||
|
|
||||||
|
$menu.wrapInner('<div class="inner"></div>');
|
||||||
|
$menuInner = $menu.children('.inner');
|
||||||
|
$menu._locked = false;
|
||||||
|
|
||||||
|
$menu._lock = function() {
|
||||||
|
|
||||||
|
if ($menu._locked)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$menu._locked = true;
|
||||||
|
|
||||||
|
window.setTimeout(function() {
|
||||||
|
$menu._locked = false;
|
||||||
|
}, 350);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
$menu._show = function() {
|
||||||
|
|
||||||
|
if ($menu._lock())
|
||||||
|
$body.addClass('is-menu-visible');
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
$menu._hide = function() {
|
||||||
|
|
||||||
|
if ($menu._lock())
|
||||||
|
$body.removeClass('is-menu-visible');
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
$menu._toggle = function() {
|
||||||
|
|
||||||
|
if ($menu._lock())
|
||||||
|
$body.toggleClass('is-menu-visible');
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
$menuInner
|
||||||
|
.on('click', function(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
})
|
||||||
|
.on('click', 'a', function(event) {
|
||||||
|
|
||||||
|
var href = $(this).attr('href');
|
||||||
|
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
|
// Hide.
|
||||||
|
$menu._hide();
|
||||||
|
|
||||||
|
// Redirect.
|
||||||
|
window.setTimeout(function() {
|
||||||
|
window.location.href = href;
|
||||||
|
}, 250);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$menu
|
||||||
|
.appendTo($body)
|
||||||
|
.on('click', function(event) {
|
||||||
|
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
$body.removeClass('is-menu-visible');
|
||||||
|
|
||||||
|
})
|
||||||
|
.append('<a class="close" href="#menu">Close</a>');
|
||||||
|
|
||||||
|
$body
|
||||||
|
.on('click', 'a[href="#menu"]', function(event) {
|
||||||
|
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
// Toggle.
|
||||||
|
$menu._toggle();
|
||||||
|
|
||||||
|
})
|
||||||
|
.on('click', function(event) {
|
||||||
|
|
||||||
|
// Hide.
|
||||||
|
$menu._hide();
|
||||||
|
|
||||||
|
})
|
||||||
|
.on('keydown', function(event) {
|
||||||
|
|
||||||
|
// Hide on escape.
|
||||||
|
if (event.keyCode == 27)
|
||||||
|
$menu._hide();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
})(jQuery);
|
|
@ -0,0 +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(
|
||||||
|
'<a ' +
|
||||||
|
'class="link depth-' + indent + '"' +
|
||||||
|
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
|
||||||
|
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
|
||||||
|
'>' +
|
||||||
|
'<span class="indent-' + indent + '"></span>' +
|
||||||
|
$this.text() +
|
||||||
|
'</a>'
|
||||||
|
);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
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 = $(
|
||||||
|
$('<div>')
|
||||||
|
.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);
|
After Width: | Height: | Size: 192 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 1005 B |
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,135 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Forty by HTML5 UP
|
||||||
|
html5up.net | @ajlkn
|
||||||
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
|
-->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<base href="<?php echo HTML_PATH_THEME ?>" target="_blank">
|
||||||
|
|
||||||
|
<?php
|
||||||
|
// <meta charset="utf-8">
|
||||||
|
Theme::charset('utf-8');
|
||||||
|
|
||||||
|
// <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
||||||
|
Theme::viewport('width=device-width, initial-scale=1, user-scalable=no');
|
||||||
|
|
||||||
|
// <title>...</title>
|
||||||
|
Theme::title();
|
||||||
|
|
||||||
|
// <description>...</description>
|
||||||
|
Theme::description();
|
||||||
|
|
||||||
|
// Favicon
|
||||||
|
Theme::favicon('favicon.png');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]-->
|
||||||
|
<link rel="stylesheet" href="assets/css/main.css" />
|
||||||
|
<!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]-->
|
||||||
|
<!--[if lte IE 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]-->
|
||||||
|
|
||||||
|
<?php
|
||||||
|
// Add local Fonts Awesome
|
||||||
|
Theme::fontAwesome();
|
||||||
|
|
||||||
|
// Load plugins, hook: Site head
|
||||||
|
Theme::plugins('siteHead');
|
||||||
|
?>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- Wrapper -->
|
||||||
|
<div id="wrapper">
|
||||||
|
|
||||||
|
<!-- Header -->
|
||||||
|
<header id="header" class="alt">
|
||||||
|
<a href="<?php echo $Site->url() ?>" class="logo"><strong><?php echo $Site->title() ?></strong></a>
|
||||||
|
<nav>
|
||||||
|
<a href="#menu">Menu</a>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Menu -->
|
||||||
|
<nav id="menu">
|
||||||
|
<ul class="links">
|
||||||
|
<?php
|
||||||
|
foreach($parents as $Parent) {
|
||||||
|
echo '<li><a href="'.$Parent->permalink().'">'.$Parent->title().'</a></li>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</ul>
|
||||||
|
<ul class="actions vertical">
|
||||||
|
<li><a href="<?php echo $Site->url().'admin/' ?>" class="button big fit"><?php $L->p('Log in') ?></a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Title and description -->
|
||||||
|
<?php
|
||||||
|
if( ($Url->whereAmI()=='home') || ($Url->whereAmI()=='tag') ) {
|
||||||
|
?>
|
||||||
|
|
||||||
|
<section id="banner" class="major">
|
||||||
|
<div class="inner">
|
||||||
|
<header class="major">
|
||||||
|
<h1><?php echo $Site->title() ?></h1>
|
||||||
|
</header>
|
||||||
|
<div class="content">
|
||||||
|
<p><?php echo $Site->description() ?></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- Main -->
|
||||||
|
<div id="main">
|
||||||
|
<?php
|
||||||
|
if( ($Url->whereAmI()=='home') || ($Url->whereAmI()=='tag') ) {
|
||||||
|
include(THEME_DIR_PHP.'home.php');
|
||||||
|
}
|
||||||
|
elseif($Url->whereAmI()=='page') {
|
||||||
|
include(THEME_DIR_PHP.'page.php');
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer id="footer">
|
||||||
|
<div class="inner">
|
||||||
|
<ul class="icons">
|
||||||
|
<li><a href="#" class="icon alt fa-twitter"><span class="label">Twitter</span></a></li>
|
||||||
|
<li><a href="#" class="icon alt fa-facebook"><span class="label">Facebook</span></a></li>
|
||||||
|
<li><a href="#" class="icon alt fa-instagram"><span class="label">Instagram</span></a></li>
|
||||||
|
<li><a href="#" class="icon alt fa-github"><span class="label">GitHub</span></a></li>
|
||||||
|
<li><a href="#" class="icon alt fa-linkedin"><span class="label">LinkedIn</span></a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="copyright">
|
||||||
|
<li>© Untitled</li>
|
||||||
|
<li>Design: <a href="https://html5up.net">HTML5 UP</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Scripts -->
|
||||||
|
<?php Theme::jquery() ?>
|
||||||
|
<script src="assets/js/jquery.scrolly.min.js"></script>
|
||||||
|
<script src="assets/js/jquery.scrollex.min.js"></script>
|
||||||
|
<script src="assets/js/skel.min.js"></script>
|
||||||
|
<script src="assets/js/util.js"></script>
|
||||||
|
<!--[if lte IE 8]><script src="assets/js/ie/respond.min.js"></script><![endif]-->
|
||||||
|
<script src="assets/js/main.js"></script>
|
||||||
|
|
||||||
|
<!-- Plugins Site Body End -->
|
||||||
|
<?php Theme::plugins('siteBodyEnd') ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"theme-data":
|
||||||
|
{
|
||||||
|
"name": "Forty",
|
||||||
|
"description": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"author": "n33co",
|
||||||
|
"email": "",
|
||||||
|
"website": "http://html5up.net",
|
||||||
|
"version": "1.5",
|
||||||
|
"releaseDate": "2016-09-18",
|
||||||
|
"license": "CCA 3.0",
|
||||||
|
"compatible": "1.5",
|
||||||
|
"notes": ""
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
<section id="one" class="tiles">
|
||||||
|
<?php
|
||||||
|
foreach($parents as $Page) {
|
||||||
|
echo '<article>';
|
||||||
|
echo '<header class="major">';
|
||||||
|
echo '<h3>';
|
||||||
|
echo '<a href="'.$Page->permalink().'" class="link">'.$Page->title().'</a>';
|
||||||
|
echo '</h3>';
|
||||||
|
echo '<p>'.$Page->description().'</p>';
|
||||||
|
echo '</header>';
|
||||||
|
echo '</article>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</section>
|
|
@ -0,0 +1,28 @@
|
||||||
|
<section id="one">
|
||||||
|
|
||||||
|
<!-- Plugins Page Begin -->
|
||||||
|
<?php Theme::plugins('pageBegin') ?>
|
||||||
|
|
||||||
|
<!-- Page title -->
|
||||||
|
<div class="inner">
|
||||||
|
<header class="major">
|
||||||
|
<h1><?php echo $Page->title() ?></h1>
|
||||||
|
<p><?php echo $Page->description() ?></p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Cover Image -->
|
||||||
|
<?php
|
||||||
|
if($Page->coverImage()) {
|
||||||
|
echo '<a href="'.$Page->permalink().'" class="image featured"><img src="'.$Page->coverImage().'" alt="Cover Image"></a>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- Post's content, the first part if has pagebrake -->
|
||||||
|
<?php echo $Page->content() ?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Plugins Page End -->
|
||||||
|
<?php Theme::plugins('pageEnd') ?>
|
||||||
|
|
||||||
|
</section>
|
|
@ -13,9 +13,8 @@
|
||||||
<nav class="links">
|
<nav class="links">
|
||||||
<ul>
|
<ul>
|
||||||
<?php
|
<?php
|
||||||
$parents = $pagesParentsPublished[NO_PARENT_CHAR];
|
foreach($parents as $Page) {
|
||||||
foreach($parents as $Parent) {
|
echo '<li><a href="'.$Page->permalink().'">'.$Page->title().'</a></li>';
|
||||||
echo '<li><a href="'.$Parent->permalink().'">'.$Parent->title().'</a></li>';
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -34,12 +33,11 @@
|
||||||
<section>
|
<section>
|
||||||
<ul class="links">
|
<ul class="links">
|
||||||
<?php
|
<?php
|
||||||
$parents = $pagesParents[NO_PARENT_CHAR];
|
foreach($parents as $Page) {
|
||||||
foreach($parents as $Parent) {
|
|
||||||
echo '<li>';
|
echo '<li>';
|
||||||
echo '<a href="'.$Parent->permalink().'">
|
echo '<a href="'.$Page->permalink().'">
|
||||||
<h3>'.$Parent->title().'</h3>
|
<h3>'.$Page->title().'</h3>
|
||||||
<p>'.$Parent->description().'</p>
|
<p>'.$Page->description().'</p>
|
||||||
</a>';
|
</a>';
|
||||||
echo '</li>';
|
echo '</li>';
|
||||||
}
|
}
|
||||||
|
@ -56,41 +54,45 @@
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<!-- Main -->
|
||||||
<div id="main">
|
<div id="main">
|
||||||
|
<?php
|
||||||
<?php
|
if( ($Url->whereAmI()=='home') || ($Url->whereAmI()=='tag') || ($Url->whereAmI()=='blog') ) {
|
||||||
if( ($Url->whereAmI()=='home') || ($Url->whereAmI()=='tag') || ($Url->whereAmI()=='blog') )
|
include(THEME_DIR_PHP.'home.php');
|
||||||
{
|
}
|
||||||
include(THEME_DIR_PHP.'home.php');
|
elseif($Url->whereAmI()=='post') {
|
||||||
}
|
include(THEME_DIR_PHP.'post.php');
|
||||||
elseif($Url->whereAmI()=='post')
|
}
|
||||||
{
|
elseif($Url->whereAmI()=='page') {
|
||||||
include(THEME_DIR_PHP.'post.php');
|
include(THEME_DIR_PHP.'page.php');
|
||||||
}
|
}
|
||||||
elseif($Url->whereAmI()=='page')
|
?>
|
||||||
{
|
|
||||||
include(THEME_DIR_PHP.'page.php');
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Sidebar -->
|
<!-- Sidebar -->
|
||||||
<section id="sidebar">
|
<section id="sidebar">
|
||||||
<?php include(THEME_DIR_PHP.'sidebar.php') ?>
|
<?php
|
||||||
|
include(THEME_DIR_PHP.'sidebar.php');
|
||||||
|
?>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Scripts -->
|
<!-- Scripts -->
|
||||||
<?php Theme::jquery() ?>
|
<?php
|
||||||
|
// Local jQuery
|
||||||
|
Theme::jquery();
|
||||||
|
?>
|
||||||
|
|
||||||
<script src="<?php echo HTML_PATH_THEME ?>assets/js/skel.min.js"></script>
|
<script src="<?php echo HTML_PATH_THEME ?>assets/js/skel.min.js"></script>
|
||||||
<script src="<?php echo HTML_PATH_THEME ?>assets/js/util.js"></script>
|
<script src="<?php echo HTML_PATH_THEME ?>assets/js/util.js"></script>
|
||||||
<!--[if lte IE 8]><script src="<?php echo HTML_PATH_THEME ?>assets/js/ie/respond.min.js"></script><![endif]-->
|
<!--[if lte IE 8]><script src="<?php echo HTML_PATH_THEME ?>assets/js/ie/respond.min.js"></script><![endif]-->
|
||||||
<script src="<?php echo HTML_PATH_THEME ?>assets/js/main.js"></script>
|
<script src="<?php echo HTML_PATH_THEME ?>assets/js/main.js"></script>
|
||||||
|
|
||||||
<!-- Plugins Site Body End -->
|
<?php
|
||||||
<?php Theme::plugins('siteBodyEnd') ?>
|
// Plugins, site body end
|
||||||
|
Theme::plugins('siteBodyEnd');
|
||||||
|
?>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|