Dashboard more responsive
This commit is contained in:
parent
fc79801a81
commit
9827b18b43
|
@ -14,12 +14,10 @@ echo '
|
|||
<tbody>
|
||||
';
|
||||
|
||||
unset($pagesParents[NO_PARENT_CHAR]);
|
||||
|
||||
foreach($pagesParents as $parentKey=>$pageList)
|
||||
foreach($pagesParents[NO_PARENT_CHAR] as $key=>$db)
|
||||
{
|
||||
// Parent page
|
||||
$Page = $pages[$parentKey];
|
||||
$Page = $pages[$key];
|
||||
|
||||
$friendlyURL = Text::isEmpty($Url->filters('page')) ? '/'.$Page->key() : '/'.$Url->filters('page').'/'.$Page->key();
|
||||
|
||||
|
@ -31,18 +29,27 @@ echo '
|
|||
echo '<td><a target="_blank" href="'.$Page->permalink().'">'.$friendlyURL.'</a></td>';
|
||||
echo '</tr>';
|
||||
|
||||
// Children
|
||||
foreach($pageList as $Page)
|
||||
// If the page has children
|
||||
if(isset($pagesParents[$Page->key()]))
|
||||
{
|
||||
$friendlyURL = Text::isEmpty($Url->filters('page')) ? '/'.$Page->key() : '/'.$Url->filters('page').'/'.$Page->key();
|
||||
// Get the children
|
||||
$children = $pagesParents[$Page->key()];
|
||||
|
||||
echo '<tr class="children">';
|
||||
echo '<td class="children">';
|
||||
echo '<a href="'.HTML_PATH_ADMIN_ROOT.'edit-page/'.$Page->key().'">'.($Page->published()?'':'<span class="label-draft">'.$Language->g('Draft').'</span> ').($Page->title()?$Page->title():'<span class="label-empty-title">'.$Language->g('Empty title').'</span> ').'</a>';
|
||||
echo '</td>';
|
||||
echo '<td class="uk-text-center">'.$Page->position().'</td>';
|
||||
echo '<td><a target="_blank" href="'.$Page->permalink().'">'.$friendlyURL.'</a></td>';
|
||||
echo '</tr>';
|
||||
foreach($children as $keyChildren=>$dbChildren)
|
||||
{
|
||||
// Parent page
|
||||
$Page = $pages[$keyChildren];
|
||||
|
||||
$friendlyURL = Text::isEmpty($Url->filters('page')) ? '/'.$Page->key() : '/'.$Url->filters('page').'/'.$Page->key();
|
||||
|
||||
echo '<tr class="children">';
|
||||
echo '<td class="children">';
|
||||
echo '<a href="'.HTML_PATH_ADMIN_ROOT.'edit-page/'.$Page->key().'">'.($Page->published()?'':'<span class="label-draft">'.$Language->g('Draft').'</span> ').($Page->title()?$Page->title():'<span class="label-empty-title">'.$Language->g('Empty title').'</span> ').'</a>';
|
||||
echo '</td>';
|
||||
echo '<td class="uk-text-center">'.$Page->position().'</td>';
|
||||
echo '<td><a target="_blank" href="'.$Page->permalink().'">'.$friendlyURL.'</a></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,9 +12,9 @@ class dbPages extends dbJSON
|
|||
'tags'=> array('inFile'=>false, 'value'=>array()),
|
||||
'status'=> array('inFile'=>false, 'value'=>'draft'),
|
||||
'date'=> array('inFile'=>false, 'value'=>''),
|
||||
'dateModified'=> array('inFile'=>false, 'value'=>''),
|
||||
'position'=> array('inFile'=>false, 'value'=>0),
|
||||
'coverImage'=> array('inFile'=>false, 'value'=>''),
|
||||
'checksum'=> array('inFile'=>false, 'value'=>'')
|
||||
'coverImage'=> array('inFile'=>false, 'value'=>'')
|
||||
);
|
||||
|
||||
function __construct()
|
||||
|
@ -76,10 +76,6 @@ class dbPages extends dbJSON
|
|||
}
|
||||
}
|
||||
|
||||
// Create Hash
|
||||
$serialize = serialize($dataForDb+$dataForFile);
|
||||
$dataForDb['checksum'] = sha1($serialize);
|
||||
|
||||
// Make the directory. Recursive.
|
||||
if( Filesystem::mkdir(PATH_PAGES.$key, true) === false ) {
|
||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to create the directory '.PATH_PAGES.$key);
|
||||
|
@ -124,6 +120,9 @@ class dbPages extends dbJSON
|
|||
$args['date'] = $this->db[$args['key']]['date'];
|
||||
}
|
||||
|
||||
// Modified date
|
||||
$args['dateModified'] = Date::current(DB_DATE_FORMAT);
|
||||
|
||||
// Verify arguments with the database fields.
|
||||
foreach($this->dbFields as $field=>$options)
|
||||
{
|
||||
|
@ -162,10 +161,6 @@ class dbPages extends dbJSON
|
|||
}
|
||||
}
|
||||
|
||||
// Create Hash
|
||||
$serialize = serialize($dataForDb+$dataForFile);
|
||||
$dataForDb['checksum'] = sha1($serialize);
|
||||
|
||||
// Move the directory from old key to new key.
|
||||
if($newKey!==$args['key'])
|
||||
{
|
||||
|
|
|
@ -11,8 +11,8 @@ class dbPosts extends dbJSON
|
|||
'tags'=> array('inFile'=>false, 'value'=>array()),
|
||||
'allowComments'=> array('inFile'=>false, 'value'=>0),
|
||||
'date'=> array('inFile'=>false, 'value'=>''),
|
||||
'coverImage'=> array('inFile'=>false, 'value'=>''),
|
||||
'checksum'=> array('inFile'=>false, 'value'=>'')
|
||||
'dateModified'=> array('inFile'=>false, 'value'=>''),
|
||||
'coverImage'=> array('inFile'=>false, 'value'=>'')
|
||||
);
|
||||
|
||||
private $numberPosts = array(
|
||||
|
@ -160,10 +160,6 @@ class dbPosts extends dbJSON
|
|||
}
|
||||
}
|
||||
|
||||
// Create Hash
|
||||
$serialize = serialize($dataForDb+$dataForFile);
|
||||
$dataForDb['checksum'] = sha1($serialize);
|
||||
|
||||
// Make the directory.
|
||||
if( Filesystem::mkdir(PATH_POSTS.$key) === false ) {
|
||||
Log::set(__METHOD__.LOG_SEP.'Error occurred when trying to create the directory '.PATH_POSTS.$key);
|
||||
|
@ -194,6 +190,10 @@ class dbPosts extends dbJSON
|
|||
public function edit($args)
|
||||
{
|
||||
if( $this->delete($args['key']) ) {
|
||||
|
||||
// Modified date
|
||||
$args['dateModified'] = Date::current(DB_DATE_FORMAT);
|
||||
|
||||
return $this->add($args);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,83 +0,0 @@
|
|||
/* Blogme hacks */
|
||||
|
||||
#wrapper {
|
||||
width: 1100px !important;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
min-width: 12em !important;
|
||||
}
|
||||
|
||||
article.post {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
article.post div.title h1 {
|
||||
font-weight: normal;
|
||||
margin: 0 !important;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
article.post div.info {
|
||||
font-size: 0.9em;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
article.post div.info > span {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
div.cover-image {
|
||||
border-bottom: 1px solid rgba(160, 160, 160, 0.3);
|
||||
display: flex;
|
||||
left: -3em;
|
||||
margin: -3em 0 3em;
|
||||
position: relative;
|
||||
width: calc(100% + 6em);
|
||||
}
|
||||
|
||||
h2.blog-title {
|
||||
font-size: 2em;
|
||||
font-weight: normal;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
.plugin ul {
|
||||
list-style: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.plugin li {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.plugin-pages ul.children {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
/* Just for Plugin tags */
|
||||
.plugin-tags li {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#menu-bottom {
|
||||
bottom: 0;
|
||||
display: block;
|
||||
margin: 20px;
|
||||
background: rgba(220, 220, 220, 0.52);
|
||||
position: fixed;
|
||||
right: 0;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#menu-bottom > a {
|
||||
margin: 0 10px;
|
||||
}
|
|
@ -1,72 +0,0 @@
|
|||
/*
|
||||
Future Imperfect by HTML5 UP
|
||||
html5up.net | @n33co
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
/* Button */
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Form */
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
input[type="tel"],
|
||||
select,
|
||||
textarea {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Post */
|
||||
|
||||
.post {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
.post > header {
|
||||
border-bottom: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Mini Post */
|
||||
|
||||
.mini-post {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
#header {
|
||||
border-bottom: solid 1px #dedede;
|
||||
}
|
||||
|
||||
#header .links {
|
||||
border-left: solid 1px #dedede;
|
||||
}
|
||||
|
||||
#header .main ul li {
|
||||
border-left: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
|
||||
#sidebar > * {
|
||||
border-top: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Menu */
|
||||
|
||||
#menu {
|
||||
border-left: solid 1px #dedede;
|
||||
}
|
||||
|
||||
#menu > * {
|
||||
border-top: solid 1px #dedede;
|
||||
}
|
|
@ -1,123 +0,0 @@
|
|||
/*
|
||||
Future Imperfect by HTML5 UP
|
||||
html5up.net | @n33co
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
/* List */
|
||||
|
||||
ul.posts article:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
ul.posts article .image {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
ul.posts article header {
|
||||
display: table-cell;
|
||||
padding-right: 1em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Author */
|
||||
|
||||
.author .name {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.author img {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* Post */
|
||||
|
||||
.post:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post > header:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post > header .title {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 65%;
|
||||
}
|
||||
|
||||
.post > header .meta {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.post > footer:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post > footer .actions {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.post > footer .stats {
|
||||
display: inline-block;
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
/* Mini Post */
|
||||
|
||||
.mini-post .image {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
#header:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
#header h1 {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#header .links {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#header .main {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* Wrapper */
|
||||
|
||||
/* Sidebar */
|
||||
|
||||
#sidebar {
|
||||
display: table-cell;
|
||||
margin-right: 0;
|
||||
padding-right: 3em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Main */
|
||||
|
||||
#main {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,8 +0,0 @@
|
|||
/*
|
||||
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);
|
|
@ -1,6 +0,0 @@
|
|||
/*! 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);
|
|
@ -1,115 +0,0 @@
|
|||
/*
|
||||
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: 1200px)',
|
||||
large: '(max-width: 1010px)',
|
||||
medium: '(max-width: 1200px)',
|
||||
small: '(max-width: 1100px)',
|
||||
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);
|
File diff suppressed because one or more lines are too long
|
@ -1,587 +0,0 @@
|
|||
(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);
|
Binary file not shown.
Before Width: | Height: | Size: 1005 B |
|
@ -1,62 +0,0 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<!-- Include HTML meta tags -->
|
||||
<?php include(PATH_THEME_PHP.'head.php') ?>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Main -->
|
||||
<div id="main">
|
||||
|
||||
<?php
|
||||
if( ($Url->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');
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Show the sidebar if the user is in home -->
|
||||
<?php if( ($Url->whereAmI()=='home') || ($Url->whereAmI()=='tag') || ($Url->whereAmI()=='blog') ) { ?>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<section id="sidebar">
|
||||
<?php include(PATH_THEME_PHP.'sidebar.php') ?>
|
||||
</section>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<?php Theme::jquery() ?>
|
||||
<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>
|
||||
<!--[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>
|
||||
|
||||
<!-- Plugins Site Body End -->
|
||||
<?php Theme::plugins('siteBodyEnd') ?>
|
||||
|
||||
<div id="menu-bottom">
|
||||
<?php
|
||||
//echo '<a href="'.HTML_PATH_THEME.'">'.$L->g('Home').'</a>';
|
||||
echo '<a href="#">'.$L->g('Top').'</a>';
|
||||
?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Blogme",
|
||||
"description": "Minimalistisches und übersichtliches Theme, das die Verwendung von Hauptbildern unterstützt. Das Theme basiert auf dem Theme Future Imperfect."
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Blogme",
|
||||
"description": "Minimalistisches und übersichtliches Theme, das die Verwendung von Hauptbildern unterstützt. Das Theme basiert auf dem Theme Future Imperfect."
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Blogme",
|
||||
"description": "Minimalist and clean, with cover image supported, based on Future Imperfect."
|
||||
},
|
||||
"top": "Top"
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Blogme",
|
||||
"description": "Мінімалістська та чиста тема, з підтримкою зображення обкладинки, на основі Future Imperfect."
|
||||
},
|
||||
"top": "Top"
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"author": "n33co",
|
||||
"email": "",
|
||||
"website": "https://github.com/dignajar/bludit-themes",
|
||||
"version": "1.1",
|
||||
"releaseDate": "2016-01-21",
|
||||
"license": "CCA 3.0",
|
||||
"compatible": "1.0,1.1,1.1.2,1.3",
|
||||
"notes": "This theme is based on Future Imperfect, all credits to the author n33co."
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
<?php
|
||||
Theme::charset('utf-8');
|
||||
Theme::viewport('width=device-width, initial-scale=1');
|
||||
|
||||
Theme::title();
|
||||
Theme::description();
|
||||
|
||||
Theme::favicon('favicon.png');
|
||||
?>
|
||||
|
||||
<!--[if lte IE 8]><script src="<?php echo HTML_PATH_THEME ?>assets/js/ie/html5shiv.js"></script><![endif]-->
|
||||
<link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/main.css">
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/ie9.css" /><![endif]-->
|
||||
<!--[if lte IE 8]><link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/ie8.css" /><![endif]-->
|
||||
<link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/bludit.css">
|
||||
|
||||
<?php
|
||||
|
||||
// Add local Fonts Awesome
|
||||
Theme::fontAwesome();
|
||||
|
||||
// Plugins for head
|
||||
Theme::plugins('siteHead');
|
||||
|
||||
?>
|
|
@ -1,67 +0,0 @@
|
|||
<?php foreach ($posts as $Post): ?>
|
||||
|
||||
<article class="post">
|
||||
|
||||
<!-- Plugins Post Begin -->
|
||||
<?php Theme::plugins('postBegin') ?>
|
||||
|
||||
<!-- Post's header -->
|
||||
<header>
|
||||
<div class="title">
|
||||
<h1><a href="<?php echo $Post->permalink() ?>"><?php echo $Post->title() ?></a></h1>
|
||||
<div class="info"><span><i class="fa fa-clock-o"></i> <?php echo $Post->date() ?></span><span><i class="fa fa-user"></i> <?php echo Text::isNotEmpty($Post->user('firstName'))?$Post->user('firstName'):$Post->user('username') ?></span></div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="cover-image">
|
||||
<!-- Cover Image -->
|
||||
<?php
|
||||
if($Post->coverImage()) {
|
||||
echo '<img src="'.$Post->coverImage().'" alt="Cover Image">';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<!-- Post's content, the first part if has pagebrake -->
|
||||
<?php echo $Post->content(false) ?>
|
||||
|
||||
<!-- Post's footer -->
|
||||
<footer>
|
||||
<!-- Read more button -->
|
||||
<?php if($Post->readMore()) { ?>
|
||||
<ul class="actions">
|
||||
<li><a href="<?php echo $Post->permalink() ?>" class="button"><?php $Language->p('Read more') ?></a></li>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
|
||||
<!-- Post's tags -->
|
||||
<ul class="stats">
|
||||
<?php
|
||||
$tags = $Post->tags(true);
|
||||
|
||||
foreach($tags as $tagKey=>$tagName) {
|
||||
echo '<li><a href="'.HTML_PATH_ROOT.$Url->filters('tag').'/'.$tagKey.'">'.$tagName.'</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
<!-- Plugins Post End -->
|
||||
<?php Theme::plugins('postEnd') ?>
|
||||
|
||||
</article>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
<!-- Pagination -->
|
||||
<ul class="actions pagination">
|
||||
<?php
|
||||
if( Paginator::get('showNewer') ) {
|
||||
echo '<li><a href="'.Paginator::urlPrevPage().'" class="button previous">Previous Page</a></li>';
|
||||
}
|
||||
|
||||
if( Paginator::get('showOlder') ) {
|
||||
echo '<li><a href="'.Paginator::urlNextPage().'" class="button next">Next Page</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
|
@ -1,29 +0,0 @@
|
|||
<a href="<?php echo $Site->url() ?>"><h2 class="blog-title"><?php echo $Site->title() ?></h2></a>
|
||||
|
||||
<article class="post">
|
||||
|
||||
<!-- Plugins Page Begin -->
|
||||
<?php Theme::plugins('pageBegin') ?>
|
||||
|
||||
<!-- Page's header -->
|
||||
<header>
|
||||
<div class="title">
|
||||
<h1><a href="<?php echo $Page->permalink() ?>"><?php echo $Page->title() ?></a></h1>
|
||||
<div class="info"><?php echo $Page->description() ?></div>
|
||||
</div>
|
||||
</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() ?>
|
||||
|
||||
<!-- Plugins Page End -->
|
||||
<?php Theme::plugins('pageEnd') ?>
|
||||
|
||||
</article>
|
|
@ -1,45 +0,0 @@
|
|||
<a href="<?php echo $Site->url() ?>"><h2 class="blog-title"><?php echo $Site->title() ?></h2></a>
|
||||
|
||||
<article class="post">
|
||||
|
||||
<!-- Plugins Post Begin -->
|
||||
<?php Theme::plugins('postBegin') ?>
|
||||
|
||||
<!-- Post's header -->
|
||||
<header>
|
||||
<div class="title">
|
||||
<h1><a href="<?php echo $Post->permalink() ?>"><?php echo $Post->title() ?></a></h1>
|
||||
<div class="info"><span><i class="fa fa-clock-o"></i> <?php echo $Post->date() ?></span><span><i class="fa fa-user"></i> <?php echo Text::isNotEmpty($Post->user('firstName'))?$Post->user('firstName'):$Post->user('username') ?></span></div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="cover-image">
|
||||
<!-- Cover Image -->
|
||||
<?php
|
||||
if($Post->coverImage()) {
|
||||
echo '<img src="'.$Post->coverImage().'" alt="Cover Image">';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<!-- Post's content, the first part if has pagebrake -->
|
||||
<?php echo $Post->content(true) ?>
|
||||
|
||||
<!-- Post's footer -->
|
||||
<footer>
|
||||
<!-- Post's tags -->
|
||||
<ul class="stats">
|
||||
<?php
|
||||
$tags = $Post->tags(true);
|
||||
|
||||
foreach($tags as $tagKey=>$tagName) {
|
||||
echo '<li><a href="'.HTML_PATH_ROOT.$Url->filters('tag').'/'.$tagKey.'">'.$tagName.'</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
<!-- Plugins Post End -->
|
||||
<?php Theme::plugins('postEnd') ?>
|
||||
|
||||
</article>
|
|
@ -1,41 +0,0 @@
|
|||
<!-- Intro -->
|
||||
<section id="intro">
|
||||
<header>
|
||||
<h2><?php echo $Site->title() ?></h2>
|
||||
<p><?php echo $Site->slogan() ?></p>
|
||||
</header>
|
||||
</section>
|
||||
|
||||
<?php Theme::plugins('siteSidebar') ?>
|
||||
|
||||
<!-- Footer -->
|
||||
<section id="footer">
|
||||
<ul class="icons">
|
||||
<?php
|
||||
if(trim($Site->twitter())) {
|
||||
echo '<li><a href="'.$Site->twitter().'" class="fa-twitter"><span class="label">Twitter</span></a></li>';
|
||||
}
|
||||
|
||||
if($Site->facebook()) {
|
||||
echo '<li><a href="'.$Site->facebook().'" class="fa-facebook"><span class="label">Facebook</span></a></li>';
|
||||
}
|
||||
|
||||
if($Site->instagram()) {
|
||||
echo '<li><a href="'.$Site->instagram().'" class="fa-instagram"><span class="label">Instagram</span></a></li>';
|
||||
}
|
||||
|
||||
if($Site->github()) {
|
||||
echo '<li><a href="'.$Site->github().'" class="fa-github"><span class="label">Github</span></a></li>';
|
||||
}
|
||||
|
||||
if( $plugins['all']['pluginRSS']->installed() ) {
|
||||
echo '<li><a href="'.DOMAIN_BASE.'rss.xml'.'" class="fa-rss"><span class="label">RSS</span></a></li>';
|
||||
}
|
||||
|
||||
if( $plugins['all']['pluginSitemap']->installed() ) {
|
||||
echo '<li><a href="'.DOMAIN_BASE.'sitemap.xml'.'" class="fa-sitemap"><span class="label">Sitemap</span></a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<p class="copyright"><?php echo $Site->footer() ?> | <a href="http://www.bludit.com">Bludit</a></p>
|
||||
</section>
|
|
@ -1,21 +0,0 @@
|
|||
.plugin ul {
|
||||
list-style: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.plugin li {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.plugin-pages ul.children {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
/* Just for Plugin tags */
|
||||
.plugin-tags li {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
|
@ -1,72 +0,0 @@
|
|||
/*
|
||||
Future Imperfect by HTML5 UP
|
||||
html5up.net | @n33co
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
/* Button */
|
||||
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
button,
|
||||
.button {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Form */
|
||||
|
||||
input[type="text"],
|
||||
input[type="password"],
|
||||
input[type="email"],
|
||||
input[type="tel"],
|
||||
select,
|
||||
textarea {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Post */
|
||||
|
||||
.post {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
.post > header {
|
||||
border-bottom: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Mini Post */
|
||||
|
||||
.mini-post {
|
||||
border: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
#header {
|
||||
border-bottom: solid 1px #dedede;
|
||||
}
|
||||
|
||||
#header .links {
|
||||
border-left: solid 1px #dedede;
|
||||
}
|
||||
|
||||
#header .main ul li {
|
||||
border-left: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
|
||||
#sidebar > * {
|
||||
border-top: solid 1px #dedede;
|
||||
}
|
||||
|
||||
/* Menu */
|
||||
|
||||
#menu {
|
||||
border-left: solid 1px #dedede;
|
||||
}
|
||||
|
||||
#menu > * {
|
||||
border-top: solid 1px #dedede;
|
||||
}
|
|
@ -1,123 +0,0 @@
|
|||
/*
|
||||
Future Imperfect by HTML5 UP
|
||||
html5up.net | @n33co
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
*/
|
||||
|
||||
/* List */
|
||||
|
||||
ul.posts article:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
ul.posts article .image {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
ul.posts article header {
|
||||
display: table-cell;
|
||||
padding-right: 1em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Author */
|
||||
|
||||
.author .name {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.author img {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
/* Post */
|
||||
|
||||
.post:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post > header:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post > header .title {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 65%;
|
||||
}
|
||||
|
||||
.post > header .meta {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.post > footer:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
.post > footer .actions {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.post > footer .stats {
|
||||
display: inline-block;
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
/* Mini Post */
|
||||
|
||||
.mini-post .image {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
#header:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block;
|
||||
}
|
||||
|
||||
#header h1 {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#header .links {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#header .main {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* Wrapper */
|
||||
|
||||
/* Sidebar */
|
||||
|
||||
#sidebar {
|
||||
display: table-cell;
|
||||
margin-right: 0;
|
||||
padding-right: 3em;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Main */
|
||||
|
||||
#main {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,8 +0,0 @@
|
|||
/*
|
||||
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);
|
|
@ -1,6 +0,0 @@
|
|||
/*! 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);
|
|
@ -1,115 +0,0 @@
|
|||
/*
|
||||
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);
|
File diff suppressed because one or more lines are too long
|
@ -1,587 +0,0 @@
|
|||
(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);
|
Binary file not shown.
Before Width: | Height: | Size: 1005 B |
Binary file not shown.
Before Width: | Height: | Size: 3.6 KiB |
|
@ -1,108 +0,0 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Future Imperfect by HTML5 UP
|
||||
html5up.net | @n33co
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
|
||||
Bludit CMS
|
||||
bludit.com | @bludit
|
||||
MIT license
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<!-- Include HTML meta tags -->
|
||||
<?php include(PATH_THEME_PHP.'head.php') ?>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Wrapper -->
|
||||
<div id="wrapper">
|
||||
|
||||
<!-- Header -->
|
||||
<header id="header">
|
||||
<h1><a href="<?php echo $Site->url() ?>"><?php echo $Site->title() ?></a></h1>
|
||||
<nav class="links">
|
||||
<ul>
|
||||
<?php
|
||||
$parents = $pagesParents[NO_PARENT_CHAR];
|
||||
foreach($parents as $Parent) {
|
||||
echo '<li><a href="'.$Parent->permalink().'">'.$Parent->title().'</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</nav>
|
||||
<nav class="main">
|
||||
<ul>
|
||||
<li class="menu"><a class="fa-bars" href="#menu">Menu</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- Menu -->
|
||||
<section id="menu">
|
||||
|
||||
<!-- Links -->
|
||||
<section>
|
||||
<ul class="links">
|
||||
<?php
|
||||
$parents = $pagesParents[NO_PARENT_CHAR];
|
||||
foreach($parents as $Parent) {
|
||||
echo '<li>';
|
||||
echo '<a href="'.$Parent->permalink().'">
|
||||
<h3>'.$Parent->title().'</h3>
|
||||
<p>'.$Parent->description().'</p>
|
||||
</a>';
|
||||
echo '</li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- Actions -->
|
||||
<section>
|
||||
<ul class="actions vertical">
|
||||
<li><a href="<?php echo $Site->url().'admin/' ?>" class="button big fit"><?php $L->p('Login') ?></a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<!-- Main -->
|
||||
<div id="main">
|
||||
|
||||
<?php
|
||||
if( ($Url->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');
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<section id="sidebar">
|
||||
<?php include(PATH_THEME_PHP.'sidebar.php') ?>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<?php Theme::jquery() ?>
|
||||
<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>
|
||||
<!--[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>
|
||||
|
||||
<!-- Plugins Site Body End -->
|
||||
<?php Theme::plugins('siteBodyEnd') ?>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Future Imperfect",
|
||||
"description": "Übersichtliches responsives Theme von @n33co, von Diego Najar für Bludit angepasst."
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Future Imperfect",
|
||||
"description": "Übersichtliches responsives Theme von @n33co, von Diego Najar für Bludit angepasst."
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Future Imperfect",
|
||||
"description": "Clean and very responsive theme by @n33co adapted by Diego Najar for Bludit."
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Future Imperfect",
|
||||
"description": "Tema limpio y adaptable para todo tipo de dispositivos creado por @n33co portado por Diego Najar para Bludit."
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Future Imperfect",
|
||||
"description": "Чиста та дуже адаптивна тема від @n33co адаптована Diego Najar для Bludit."
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"author": "n33co",
|
||||
"email": "",
|
||||
"website": "http://html5up.net",
|
||||
"version": "1.1",
|
||||
"releaseDate": "2015-11-11",
|
||||
"license": "CCA 3.0",
|
||||
"compatible": "1.0,1.1,1.1.2,1.3",
|
||||
"notes": ""
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
<?php
|
||||
Theme::charset('utf-8');
|
||||
Theme::viewport('width=device-width, initial-scale=1');
|
||||
|
||||
Theme::title();
|
||||
Theme::description();
|
||||
|
||||
Theme::favicon('favicon.png');
|
||||
?>
|
||||
|
||||
<!--[if lte IE 8]><script src="<?php echo HTML_PATH_THEME ?>assets/js/ie/html5shiv.js"></script><![endif]-->
|
||||
<link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/main.css">
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/ie9.css" /><![endif]-->
|
||||
<!--[if lte IE 8]><link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/ie8.css" /><![endif]-->
|
||||
<link rel="stylesheet" href="<?php echo HTML_PATH_THEME ?>assets/css/bludit.css">
|
||||
|
||||
<?php
|
||||
|
||||
// Add local Fonts Awesome
|
||||
Theme::fontAwesome();
|
||||
|
||||
// Plugins for head
|
||||
Theme::plugins('siteHead');
|
||||
|
||||
?>
|
|
@ -1,87 +0,0 @@
|
|||
<!-- For each post on this page -->
|
||||
<?php foreach ($posts as $Post): ?>
|
||||
|
||||
<article class="post">
|
||||
|
||||
<!-- Show plugins, Hook: Post Begin -->
|
||||
<?php Theme::plugins('postBegin') ?>
|
||||
|
||||
<!-- Post's header -->
|
||||
<header>
|
||||
<!-- Post's title and description -->
|
||||
<div class="title">
|
||||
<h2><a href="<?php echo $Post->permalink() ?>"><?php echo $Post->title() ?></a></h2>
|
||||
<p><?php echo $Post->description() ?></p>
|
||||
</div>
|
||||
|
||||
<!-- Post's date, author name and author avatar -->
|
||||
<div class="meta">
|
||||
<?php
|
||||
// Post's username
|
||||
$User = $Post->user();
|
||||
|
||||
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();
|
||||
}
|
||||
?>
|
||||
<time class="published" datetime="2015-11-01"><?php echo $Post->date() ?></time>
|
||||
<div class="author"><span class="name"><?php echo $author ?></span><img src="<?php echo $User->profilePicture() ?>" alt=""></div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Cover Image -->
|
||||
<?php
|
||||
if($Post->coverImage()) {
|
||||
echo '<a href="'.$Post->permalink().'" class="image featured"><img src="'.$Post->coverImage().'" alt="Cover Image"></a>';
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- Post's content, the first part if has pagebrake -->
|
||||
<?php echo $Post->content(false) ?>
|
||||
|
||||
<!-- Post's footer -->
|
||||
<footer>
|
||||
|
||||
<!-- Read more button -->
|
||||
<?php if($Post->readMore()) { ?>
|
||||
<ul class="actions">
|
||||
<li><a href="<?php echo $Post->permalink() ?>" class="button big"><?php $Language->p('Read more') ?></a></li>
|
||||
</ul>
|
||||
<?php } ?>
|
||||
|
||||
<!-- Post's tags -->
|
||||
<ul class="stats">
|
||||
<?php
|
||||
$tags = $Post->tags(true);
|
||||
|
||||
foreach($tags as $tagKey=>$tagName) {
|
||||
echo '<li><a href="'.HTML_PATH_ROOT.$Url->filters('tag').'/'.$tagKey.'">'.$tagName.'</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
<!-- Show plugins, Hook: Post End -->
|
||||
<?php Theme::plugins('postEnd') ?>
|
||||
|
||||
</article>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
<!-- Pagination -->
|
||||
<ul class="actions pagination">
|
||||
<?php
|
||||
if( Paginator::get('showNewer') ) {
|
||||
echo '<li><a href="'.Paginator::urlPrevPage().'" class="button big previous">Previous Page</a></li>';
|
||||
}
|
||||
|
||||
if( Paginator::get('showOlder') ) {
|
||||
echo '<li><a href="'.Paginator::urlNextPage().'" class="button big next">Next Page</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
|
@ -1,27 +0,0 @@
|
|||
<article class="post">
|
||||
|
||||
<!-- Plugins Page Begin -->
|
||||
<?php Theme::plugins('pageBegin') ?>
|
||||
|
||||
<!-- Post's header -->
|
||||
<header>
|
||||
<div class="title">
|
||||
<h2><a href="<?php echo $Page->permalink() ?>"><?php echo $Page->title() ?></a></h2>
|
||||
<p><?php echo $Page->description() ?></p>
|
||||
</div>
|
||||
</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() ?>
|
||||
|
||||
<!-- Plugins Page End -->
|
||||
<?php Theme::plugins('pageEnd') ?>
|
||||
|
||||
</article>
|
|
@ -1,58 +0,0 @@
|
|||
<article class="post">
|
||||
|
||||
<!-- Plugins Post Begin -->
|
||||
<?php Theme::plugins('postBegin') ?>
|
||||
|
||||
<!-- Post's header -->
|
||||
<header>
|
||||
<div class="title">
|
||||
<h2><a href="<?php echo $Post->permalink() ?>"><?php echo $Post->title() ?></a></h2>
|
||||
<p><?php echo $Post->description() ?></p>
|
||||
</div>
|
||||
<div class="meta">
|
||||
<?php
|
||||
// Get the user who created the post.
|
||||
$User = $Post->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 = $User->firstName().' '.$User->lastName();
|
||||
}
|
||||
?>
|
||||
<time class="published" datetime="2015-11-01"><?php echo $Post->date() ?></time>
|
||||
<div class="author"><span class="name"><?php echo $author ?></span><img src="<?php echo $User->profilePicture() ?>" alt=""></div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Cover Image -->
|
||||
<?php
|
||||
if($Post->coverImage()) {
|
||||
echo '<a href="'.$Post->permalink().'" class="image featured"><img src="'.$Post->coverImage().'" alt="Cover Image"></a>';
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- Post's content, the first part if has pagebrake -->
|
||||
<?php echo $Post->content() ?>
|
||||
|
||||
<!-- Post's footer -->
|
||||
<footer>
|
||||
|
||||
<!-- Post's tags -->
|
||||
<ul class="stats">
|
||||
<?php
|
||||
$tags = $Post->tags(true);
|
||||
|
||||
foreach($tags as $tagKey=>$tagName) {
|
||||
echo '<li><a href="'.HTML_PATH_ROOT.$Url->filters('tag').'/'.$tagKey.'">'.$tagName.'</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
<!-- Plugins Post End -->
|
||||
<?php Theme::plugins('postEnd') ?>
|
||||
|
||||
</article>
|
|
@ -1,42 +0,0 @@
|
|||
<!-- Intro -->
|
||||
<section id="intro">
|
||||
<a href="<?php echo $Site->url() ?>" class="logo"><img src="<?php echo HTML_PATH_THEME ?>img/logo.jpg" alt=""></a>
|
||||
<header>
|
||||
<h2><?php echo $Site->title() ?></h2>
|
||||
<p><?php echo $Site->description() ?></p>
|
||||
</header>
|
||||
</section>
|
||||
|
||||
<?php Theme::plugins('siteSidebar') ?>
|
||||
|
||||
<!-- Footer -->
|
||||
<section id="footer">
|
||||
<ul class="icons">
|
||||
<?php
|
||||
if($Site->twitter()) {
|
||||
echo '<li><a href="'.$Site->twitter().'" class="fa-twitter"><span class="label">Twitter</span></a></li>';
|
||||
}
|
||||
|
||||
if($Site->facebook()) {
|
||||
echo '<li><a href="'.$Site->facebook().'" class="fa-facebook"><span class="label">Facebook</span></a></li>';
|
||||
}
|
||||
|
||||
if($Site->instagram()) {
|
||||
echo '<li><a href="'.$Site->instagram().'" class="fa-instagram"><span class="label">Instagram</span></a></li>';
|
||||
}
|
||||
|
||||
if($Site->github()) {
|
||||
echo '<li><a href="'.$Site->github().'" class="fa-github"><span class="label">Github</span></a></li>';
|
||||
}
|
||||
|
||||
if( $plugins['all']['pluginRSS']->installed() ) {
|
||||
echo '<li><a href="'.DOMAIN_BASE.'rss.xml'.'" class="fa-rss"><span class="label">RSS</span></a></li>';
|
||||
}
|
||||
|
||||
if( $plugins['all']['pluginSitemap']->installed() ) {
|
||||
echo '<li><a href="'.DOMAIN_BASE.'sitemap.xml'.'" class="fa-sitemap"><span class="label">Sitemap</span></a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
<p class="copyright"><?php echo $Site->footer() ?> | Design: <a href="http://html5up.net">HTML5 UP</a></p>
|
||||
</section>
|
|
@ -154,7 +154,7 @@ blockquote p {
|
|||
}
|
||||
|
||||
.plugin-pages ul.children {
|
||||
margin-left: 10px;
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
|
||||
/* Only for Plugin tags */
|
||||
|
|
Loading…
Reference in New Issue