')
+ .append(i.clone())
+ .remove()
+ .html()
+ .replace(/type="password"/i, 'type="text"')
+ .replace(/type=password/i, 'type=text')
+ );
+
+ if (i.attr('id') != '')
+ x.attr('id', i.attr('id') + '-polyfill-field');
+
+ if (i.attr('name') != '')
+ x.attr('name', i.attr('name') + '-polyfill-field');
+
+ x.addClass('polyfill-placeholder')
+ .val(x.attr('placeholder')).insertAfter(i);
+
+ if (i.val() == '')
+ i.hide();
+ else
+ x.hide();
+
+ i
+ .on('blur', function(event) {
+
+ event.preventDefault();
+
+ var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
+
+ if (i.val() == '') {
+
+ i.hide();
+ x.show();
+
+ }
+
+ });
+
+ x
+ .on('focus', function(event) {
+
+ event.preventDefault();
+
+ var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
+
+ x.hide();
+
+ i
+ .show()
+ .focus();
+
+ })
+ .on('keypress', function(event) {
+
+ event.preventDefault();
+ x.val('');
+
+ });
+
+ });
+
+ // Events.
+ $this
+ .on('submit', function() {
+
+ $this.find('input[type=text],input[type=password],textarea')
+ .each(function(event) {
+
+ var i = $(this);
+
+ if (i.attr('name').match(/-polyfill-field$/))
+ i.attr('name', '');
+
+ if (i.val() == i.attr('placeholder')) {
+
+ i.removeClass('polyfill-placeholder');
+ i.val('');
+
+ }
+
+ });
+
+ })
+ .on('reset', function(event) {
+
+ event.preventDefault();
+
+ $this.find('select')
+ .val($('option:first').val());
+
+ $this.find('input,textarea')
+ .each(function() {
+
+ var i = $(this),
+ x;
+
+ i.removeClass('polyfill-placeholder');
+
+ switch (this.type) {
+
+ case 'submit':
+ case 'reset':
+ break;
+
+ case 'password':
+ i.val(i.attr('defaultValue'));
+
+ x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
+
+ if (i.val() == '') {
+ i.hide();
+ x.show();
+ }
+ else {
+ i.show();
+ x.hide();
+ }
+
+ break;
+
+ case 'checkbox':
+ case 'radio':
+ i.attr('checked', i.attr('defaultValue'));
+ break;
+
+ case 'text':
+ case 'textarea':
+ i.val(i.attr('defaultValue'));
+
+ if (i.val() == '') {
+ i.addClass('polyfill-placeholder');
+ i.val(i.attr('placeholder'));
+ }
+
+ break;
+
+ default:
+ i.val(i.attr('defaultValue'));
+ break;
+
+ }
+ });
+
+ });
+
+ return $this;
+
+ };
+
+ /**
+ * Moves elements to/from the first positions of their respective parents.
+ * @param {jQuery} $elements Elements (or selector) to move.
+ * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
+ */
+ $.prioritize = function($elements, condition) {
+
+ var key = '__prioritize';
+
+ // Expand $elements if it's not already a jQuery object.
+ if (typeof $elements != 'jQuery')
+ $elements = $($elements);
+
+ // Step through elements.
+ $elements.each(function() {
+
+ var $e = $(this), $p,
+ $parent = $e.parent();
+
+ // No parent? Bail.
+ if ($parent.length == 0)
+ return;
+
+ // Not moved? Move it.
+ if (!$e.data(key)) {
+
+ // Condition is false? Bail.
+ if (!condition)
+ return;
+
+ // Get placeholder (which will serve as our point of reference for when this element needs to move back).
+ $p = $e.prev();
+
+ // Couldn't find anything? Means this element's already at the top, so bail.
+ if ($p.length == 0)
+ return;
+
+ // Move element to top of parent.
+ $e.prependTo($parent);
+
+ // Mark element as moved.
+ $e.data(key, $p);
+
+ }
+
+ // Moved already?
+ else {
+
+ // Condition is true? Bail.
+ if (condition)
+ return;
+
+ $p = $e.data(key);
+
+ // Move element back to its original location (using our placeholder).
+ $e.insertAfter($p);
+
+ // Unmark element as moved.
+ $e.removeData(key);
+
+ }
+
+ });
+
+ };
+
+})(jQuery);
\ No newline at end of file
diff --git a/bl-themes/log-master/img/favicon.png b/bl-themes/log-master/img/favicon.png
new file mode 100644
index 00000000..60349a2b
Binary files /dev/null and b/bl-themes/log-master/img/favicon.png differ
diff --git a/bl-themes/log-master/index.php b/bl-themes/log-master/index.php
new file mode 100644
index 00000000..8decdef4
--- /dev/null
+++ b/bl-themes/log-master/index.php
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ';
+ echo Theme::js('assets/js/ie/respond.min.js');
+ echo '';
+ echo Theme::js('assets/js/main.js');
+ ?>
+
+
+
+
\ No newline at end of file
diff --git a/bl-themes/log-master/languages/de_CH.json b/bl-themes/log-master/languages/de_CH.json
new file mode 100644
index 00000000..cb692331
--- /dev/null
+++ b/bl-themes/log-master/languages/de_CH.json
@@ -0,0 +1,7 @@
+{
+ "theme-data":
+ {
+ "name": "Log",
+ "description": "Theme, das sich vor allem für Blogs eignet."
+ }
+}
diff --git a/bl-themes/log-master/languages/de_DE.json b/bl-themes/log-master/languages/de_DE.json
new file mode 100644
index 00000000..cb692331
--- /dev/null
+++ b/bl-themes/log-master/languages/de_DE.json
@@ -0,0 +1,7 @@
+{
+ "theme-data":
+ {
+ "name": "Log",
+ "description": "Theme, das sich vor allem für Blogs eignet."
+ }
+}
diff --git a/bl-themes/log-master/languages/en.json b/bl-themes/log-master/languages/en.json
new file mode 100644
index 00000000..fd9d9621
--- /dev/null
+++ b/bl-themes/log-master/languages/en.json
@@ -0,0 +1,7 @@
+{
+ "theme-data":
+ {
+ "name": "Log",
+ "description": "Ideal theme to create a professional blog."
+ }
+}
\ No newline at end of file
diff --git a/bl-themes/log-master/languages/es.json b/bl-themes/log-master/languages/es.json
new file mode 100644
index 00000000..d8968388
--- /dev/null
+++ b/bl-themes/log-master/languages/es.json
@@ -0,0 +1,7 @@
+{
+ "theme-data":
+ {
+ "name": "Log",
+ "description": "Tema ideal para crear un blog profesional."
+ }
+}
\ No newline at end of file
diff --git a/bl-themes/log-master/metadata.json b/bl-themes/log-master/metadata.json
new file mode 100644
index 00000000..d3c0905d
--- /dev/null
+++ b/bl-themes/log-master/metadata.json
@@ -0,0 +1,10 @@
+{
+ "author": "HTML5Up",
+ "email": "",
+ "website": "https://html5up.net",
+ "version": "1.0",
+ "releaseDate": "2017-10-08",
+ "license": "CCA 3.0",
+ "compatible": "2.0, 2.1",
+ "notes": ""
+}
diff --git a/bl-themes/log-master/php/head.php b/bl-themes/log-master/php/head.php
new file mode 100644
index 00000000..f804fa66
--- /dev/null
+++ b/bl-themes/log-master/php/head.php
@@ -0,0 +1,29 @@
+';
+ echo Theme::js('assets/js/ie/html5shiv.js');
+ echo '';
+
+ echo Theme::css('assets/css/main.css');
+
+ echo '';
+
+ echo '';
+
+ echo Theme::css('assets/css/bludit.css');
+
+ echo Theme::fontAwesome();
+
+ Theme::plugins('siteHead');
+?>
\ No newline at end of file
diff --git a/bl-themes/log-master/php/home.php b/bl-themes/log-master/php/home.php
new file mode 100644
index 00000000..fe16daa4
--- /dev/null
+++ b/bl-themes/log-master/php/home.php
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 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();
+ }
+ ?>
+ date() ?>
+
+
+
+
+ coverImage()) {
+ echo ' ';
+ }
+ ?>
+
+
+ content(false) ?>
+
+
+
+
+
+ readMore()) { ?>
+
+
+
+
+
+ tags(true);
+
+ foreach($tags as $tagKey=>$tagName) {
+ echo ''.$tagName.' ';
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bl-themes/log-master/php/page.php b/bl-themes/log-master/php/page.php
new file mode 100644
index 00000000..f1ef6e82
--- /dev/null
+++ b/bl-themes/log-master/php/page.php
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+ coverImage()) {
+ echo ' ';
+ }
+ ?>
+
+
+ content() ?>
+
+
+
+
+
\ No newline at end of file
diff --git a/bl-themes/log-master/php/sidebar.php b/bl-themes/log-master/php/sidebar.php
new file mode 100644
index 00000000..eb3c76ab
--- /dev/null
+++ b/bl-themes/log-master/php/sidebar.php
@@ -0,0 +1,45 @@
+
+
+
+ title() ?>
+ slogan() ?>
+
+
+
+
+
+
+
diff --git a/bl-themes/log-master/screenshot.png b/bl-themes/log-master/screenshot.png
new file mode 100644
index 00000000..58ffd612
Binary files /dev/null and b/bl-themes/log-master/screenshot.png differ