diff --git a/templates/clean-blog/LICENSE b/templates/clean-blog/LICENSE new file mode 100644 index 00000000..610cecd0 --- /dev/null +++ b/templates/clean-blog/LICENSE @@ -0,0 +1,202 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013-2015 Iron Summit Media Strategies, LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/templates/clean-blog/README.md b/templates/clean-blog/README.md new file mode 100644 index 00000000..9435f0e5 --- /dev/null +++ b/templates/clean-blog/README.md @@ -0,0 +1,26 @@ +# [Start Bootstrap](http://startbootstrap.com/) - [Clean Blog](http://startbootstrap.com/template-overviews/clean-blog/) + +[Clean Blog](http://startbootstrap.com/template-overviews/clean-blog/) is a stylish, responsive blog theme for [Bootstrap](http://getbootstrap.com/) created by [Start Bootstrap](http://startbootstrap.com/). This theme features a blog homepage, about page, contact page, and an example post page along with a working PHP contact form. + +## Getting Started + +To use this theme, choose one of the following options to get started: +* Download the latest release on Start Bootstrap +* Fork this repository on GitHub + +## Bugs and Issues + +Have a bug or an issue with this theme? [Open a new issue](https://github.com/IronSummitMedia/startbootstrap-clean-blog/issues) here on GitHub or leave a comment on the [template overview page at Start Bootstrap](http://startbootstrap.com/template-overviews/clean-blog/). + +## Creator + +Start Bootstrap was created by and is maintained by **David Miller**, Managing Parter at [Iron Summit Media Strategies](http://www.ironsummitmedia.com/). + +* https://twitter.com/davidmillerskt +* https://github.com/davidtmiller + +Start Bootstrap is based on the [Bootstrap](http://getbootstrap.com/) framework created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thorton](https://twitter.com/fat). + +## Copyright and License + +Copyright 2013-2015 Iron Summit Media Strategies, LLC. Code released under the [Apache 2.0](https://github.com/IronSummitMedia/startbootstrap-clean-blog/blob/gh-pages/LICENSE) license. \ No newline at end of file diff --git a/templates/clean-blog/UTF-8/lang_de.inc.php b/templates/clean-blog/UTF-8/lang_de.inc.php new file mode 100644 index 00000000..a24ada38 --- /dev/null +++ b/templates/clean-blog/UTF-8/lang_de.inc.php @@ -0,0 +1,78 @@ +Das Plugin Erweiterte Eigenschaften für Einträge (serendipity_event_entryproperties) wird benötigt. Es ist installiert und aktiv.

'); +@define('THEME_EP_NO','

Das Plugin Erweiterte Eigenschaften für Einträge (serendipity_event_entryproperties) wird benötigt. Es ist entweder nicht installiert oder inaktiv. Bitte das Plugin installieren, um alle Features dieses Themes voll zu nutzen.

'); +@define('THEME_INSTRUCTIONS','

Dieses Theme nutzt breite Header-Bilder für unterschiedliche Seitentypen. Standardbilder werden mit dem Theme geliefert, diese sind 1900px breit. Diese Standardbilder können unten in den Einstellungen ausgetauscht werden. Zusaätzlich zu den Standardbildern können für jeden Eintrag und jede statische Seite eigene Header-Bilder definiert werden.

Das Design dieses Theme sieht die Nutzung eines sekundären Untertitels oder einer Verfasserzeile direkt unter dem Eintragstitel vor. Dieser Untertitel und das Eintragsbild können im Abschnitt "Erweiterte Optionen" beim Anlegen oder Bearbeiten einer Seite geändert werden. Optional kann man das Theme so einstellen, dass die ersten 70 Zeichen des Eintrags als Untertitel verwendet werden, wenn kein Untertitel angegeben wurde.

Dieses Theme bietet keine Seitenleisten, kann jedoch optional die Seitenleisten-Plugins Kategorien und Tags in der Archiv-Seite ausgeben. Siehe "' . THEME_PAGE_OPTIONS . '" unten.

Falls das Avatar-Plugin (serendipity_event_gravatar) verwendet wird, sollte dessen Option "Smarty Tag erzeugen" für eine optimale Darstellung auf "Ja" gesetzt werden.

Die Option "Erweiteres Smarty" in serendipity_event_freetag sollte für eine schönere Darstellung im Eintragsfuß ebenfalls auf "Ja" gesetzt sein.

'); +@define('THEME_ENTRY_PROPERTIES_HEADING','Eintragseigenschaften des Clean Blog-Themes'); +@define('THEME_CUSTOM_FIELD_HEADING', 'Freie Felder für Einträge'); +@define('THEME_CUSTOM_FIELD_DEFINITION','Diese optionalen Felder sind nur verfügbar, wenn dieses Theme (clean blog) verwendet wird. Das Ereignis-Plugin serendipity_event_entryproperties (Erweiterte Eigenschaften für Einträge) muss installiert sein, um diese Felder zu verwenden. Der Eintrags-Untertitel wird unter dem Titel des Eintrags ausgegeben und sollte eine kurze Zusammenfassung des Eintrags enthalten. Das Header-Bild eines Eintrags überschreibt das Standard-Header-Bild für Einträge.'); +@define('THEME_ENTRY_SUBTITLE','Untertitel des Eintrags'); +@define('THEME_ENTRY_HEADER_IMAGE','Header-Bild der Eintrags'); + +// Header Images +@define('DEFAULT_HEADER_IMAGE', 'Standard-Header-Bild'); +@define('DEFAULT_HEADER_IMAGE_DESC', 'Dieses Bild wird auf Seiten verwendet, die kein eigenes Header-Bild definieren.'); +@define('ENTRY_DEFAULT_HEADER_IMAGE', 'Standard-Header-Bild für Einträge'); +@define('ENTRY_DEFAULT_HEADER_IMAGE_DESC', 'Dieses Bild wird für Einträge verwendet, die kein eigenes Header-Bild definieren.'); +@define('STATICPAGE_DEFAULT_HEADER_IMAGE', 'Standard-Header-Bild für statische Seiten'); +@define('STATICPAGE_DEFAULT_HEADER_IMAGE_DESC', 'Dieses Bild wird für statische Seiten verwendet, die kein eigenes Header-Bild definieren.'); +@define('STATICPAGE_SPECIFIC_HEADER_IMAGE','Header-Bild für statische Seiten (optional)'); +@define('CONTACTFORM_HEADER_IMAGE', 'Header-Bild für das Kontaktformular'); +@define('ARCHIVE_HEADER_IMAGE', 'Header-Bild für die Archivseite'); + +//Page Options +@define('HOME_LINK_TEXT', 'Text des Home-Links'); +@define('ENTRY_DATE_FORMAT','Datumsformat für Einträge'); +@define('COMMENT_TIME_FORMAT','Zeitformat für Kommentare und Trackbacks'); +@define('WORDS','Textfassung'); +@define('TIMESTAMP','Zeitstempel'); +@define('SUBTITLE_USE_ENTRYBODY','Die ersten 70 Zeichen des Einrags als Untertitel ausgeben, wenn das Feld Untertitel leer gelassen wurde?'); +@define('ENTRYBODY_DETAILED_ONLY','Eintags-Inhalt nur in der Einzelansicht eines Eintrags anzeigen'); +@define('SHOW_COMMENT_LINK','Zeige Link zu den Kommentaren des Eintrags'); +@define('CATEGORIES_ON_ARCHIVE', 'Kategorien auf der Archivseite anzeigen'); +@define('CATEGORIES_ON_ARCHIVE_DESC', 'Das Seitenleisten-Plugin Kategorien (serendipity_plugin_categories) muss installiert und die Option "Smarty-Templating aktivieren?" aktiviert sein, damit Kategorien auf der Archiv-Seite angezeigt werden.'); +@define('TAGS_ON_ARCHIVE', 'Tags auf der Archivseite anzeigen'); +@define('TAGS_ON_ARCHIVE_DESC', 'Das Seitenleisten-Plugin Getaggte Artikel (serendipity_plugin_freetag) muss installiert sein und die Option "Sidebar template" muss auf "archive_freetag.tpl" gesetzt werden, damit Tags auf der Archiv-Seite angezeigt werden.'); + +//Static Pages +@define('STATIC_SHOW_AUTHOR_TEXT','Autorennamen anzeigen'); +@define('STATIC_SHOW_DATE_TEXT','Datum anzeigen'); + +//Navigation +@define('USE_CORENAV', 'Globale Navigation verwenden?'); + +//Social media +@define('TWITTER_URL','Twitter-URL. Icon wird nicht angezeigt, falls leer.'); +@define('FACEBOOK_URL','Facebook-URL. Icon wird nicht angezeigt, falls leer.'); +@define('RSS_URL','RSS feed-URL. Icon wird nicht angezeigt, falls leer.'); +@define('GITHUB_URL','GitHub-URL. Icon wird nicht angezeigt, falls leer.'); +@define('INSTAGRAM_URL','Instagram-URL. Icon wird nicht angezeigt, falls leer.'); +@define('PINTEREST_URL','Pinterest-URL. Icon wird nicht angezeigt, falls leer.'); +@define('COPYRIGHT', 'Copyright'); + +//time ago in words function +@define('ELAPSED_LESS_THAN_MINUTE_AGO','Vor weniger als einer Minute'); +@define('ELAPSED_ONE_MINUTE_AGO','Vor einer Minute'); +@define('ELAPSED_ONE_DAY_AGO','Vor einem Tag'); +@define('ELAPSED_MINUTES_AGO','Vor %s Minuten'); +@define('ELAPSED_HOURS_AGO','Vor %s Stunden'); +@define('ELAPSED_DAYS_AGO','Vor %s Tagen'); +@define('ELAPSED_MONTHS_AGO','Vor %s Monaten'); +@define('ELAPSED_YEARS_AGO','Vor %s Jahren'); //not currently using this, but defining just in case +@define('ELAPSED_ABOUT_ONE_HOUR_AGO','Vor ungefähr einer Stunde'); // greater than 45 minutes, less than 90 minutes +@define('ELAPSED_ABOUT_ONE_MONTH_AGO','Vor ungefähr einem Monat'); // greater than 30 days, less than 60 days +@define('ELAPSED_ABOUT_ONE_YEAR_AGO','Vor ungefähr einem Jahr'); // greater than one year, less than 2 years +@define('ELAPSED_OVER_YEARS_AGO','Vor mehr als %s Jahren');// greater than 2 years diff --git a/templates/clean-blog/archive_categories.tpl b/templates/clean-blog/archive_categories.tpl new file mode 100644 index 00000000..be7337e8 --- /dev/null +++ b/templates/clean-blog/archive_categories.tpl @@ -0,0 +1,32 @@ +{if $categories} +

{$CONST.CATEGORIES}

+ + {/for} + + {elseif $plugin_category.catdepth > $prevdepth} + + {/for} + {/if} + + {/if} + {assign var="prevdepth" value=$plugin_category.catdepth} + {/foreach} + +{/if} \ No newline at end of file diff --git a/templates/clean-blog/archive_freetag.tpl b/templates/clean-blog/archive_freetag.tpl new file mode 100644 index 00000000..4db40923 --- /dev/null +++ b/templates/clean-blog/archive_freetag.tpl @@ -0,0 +1,6 @@ +

{$CONST.EDITOR_TAGS}

+
+{foreach from=$tags key="tag_name" item="plugin_tags" name="each_tag"} + {$tag_name}{if !$smarty.foreach.each_tag.last}{/if} +{/foreach} +
\ No newline at end of file diff --git a/templates/clean-blog/backend_templates/default_staticpage_backend.tpl b/templates/clean-blog/backend_templates/default_staticpage_backend.tpl new file mode 100644 index 00000000..d57bc753 --- /dev/null +++ b/templates/clean-blog/backend_templates/default_staticpage_backend.tpl @@ -0,0 +1,249 @@ +
+ + + +
+
+

{$CONST.STATICPAGE_SECTION_BASIC}

+
+ + {staticpage_input item="headline"} +
+
+ + {staticpage_input item="articleformattitle"} +
+
+
+ {staticpage_input item="content"} +
+{* CUSTOM TO THIS THEME - CUSTOM STATICPAGE HEADER IMAGE *} +
+
+ + + +
+
{$CONST.PREVIEW}
+ +
+
+
+
+ +
+

{$CONST.STATICPAGES_CUSTOM_META_SHOW}

+

+/- {$CONST.TOGGLE_ALL}

+
+
+
+ {staticpage_input item="title_element"} +
+
+ + {staticpage_input item="meta_description"} +
+
+
+ {staticpage_input item="meta_keywords"} +
+
+ + +

{$CONST.STATICPAGES_CUSTOM_STRUCTURE_SHOW}

+

+/- {$CONST.TOGGLE_ALL}

+
+
+
+
+ {staticpage_input item="authorid"} +
+
+
+ {staticpage_input item="articletype"} +
+
+
+
+
+ {staticpage_input item="language"} +
+
+
+ {staticpage_input item="related_category_id"} +
+
+
+
+
+ {staticpage_input item="parent_id"} +
+
+
+ {staticpage_input item="show_childpages"} +
+
+
+
+
+ {staticpage_input item="shownavi"} +
+
+ + {staticpage_input item="show_breadcrumb"} +
+
+
+{* CUSTOM TO THIS THEME - OPTION TO SHOW/HIDE AUTHOR NAME *} +
+
+ + + + +
+{* CUSTOM TO THIS THEME - OPTION TO SHOW/HIDE DATE *} +
+
+ + + + +
+
+
+
+
+ {staticpage_input item="pre_content"} +
+
+
+ +
+ +
+

{$CONST.STATICPAGE_SECTION_META}

+
+
+
+ {staticpage_input item="pagetitle"} +
+
+
+ {staticpage_input item="permalink"} +
+
+
+
+
+ {staticpage_input item="pass"} +
+
+
+ {staticpage_input item="timestamp"} +
+
+
+ +
+

{$CONST.STATICPAGE_SECTION_OPT}

+
+
+
+ {staticpage_input item="publishstatus"} +
+
+
+ {staticpage_input item="is_startpage"} +
+
+
+
+
+ {staticpage_input item="is_404_page"} +
+
+
+ {staticpage_input item="showonnavi"} +
+
+
+
+
+ {staticpage_input item="markup"} +
+
+
+ {staticpage_input item="articleformat"} +
+
+
+ + + {* EXAMPLE FOR CUSTOM STATICPAGE PROPERTIES + +
+ Custom + +
+
+ +
+ +
+
+ +
+
+ END OF EXAMPLE FOR CUSTOM STATICPAGE PROPERTIES *} + +
+ + + +{staticpage_input_finish} + +
+
+ +
+ diff --git a/templates/clean-blog/commentform.tpl b/templates/clean-blog/commentform.tpl new file mode 100644 index 00000000..dd673750 --- /dev/null +++ b/templates/clean-blog/commentform.tpl @@ -0,0 +1,51 @@ +
+
+ +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + {$commentform_replyTo} +
+
+ {serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry} +
+ {if $is_commentform_showToolbar || $is_allowSubscriptions} +
+ {if $is_commentform_showToolbar} +
+ +
+ {/if} + {if $is_allowSubscriptions} +
+ +
+ {/if} +
+ {/if} +{if $is_moderate_comments} +

{$CONST.COMMENTS_WILL_BE_MODERATED}

+{/if} +
+ + +
+
+
\ No newline at end of file diff --git a/templates/clean-blog/comments.tpl b/templates/clean-blog/comments.tpl new file mode 100644 index 00000000..19b9956b --- /dev/null +++ b/templates/clean-blog/comments.tpl @@ -0,0 +1,61 @@ + + {/for} + + {elseif $comment.depth > $prevdepth} + + {/for} + {/if} + + {/if} + {assign var="prevdepth" value=$comment.depth} +{/foreach} + \ No newline at end of file diff --git a/templates/clean-blog/config.inc.php b/templates/clean-blog/config.inc.php new file mode 100644 index 00000000..db791210 --- /dev/null +++ b/templates/clean-blog/config.inc.php @@ -0,0 +1,310 @@ +assign('archiveURL', serendipity_rewriteURL(PATH_ARCHIVE)); + +// show elapsed time in words, such as x hours ago. +function distanceOfTimeInWords($fromTime, $toTime = 0) { + $distanceInSeconds = round(abs($toTime - $fromTime)); + $distanceInMinutes = round($distanceInSeconds / 60); + + if ( $distanceInMinutes <= 1 ) { + if ( $distanceInSeconds < 60 ) { + return ELAPSED_LESS_THAN_MINUTE_AGO; + } + return ELAPSED_ONE_MINUTE_AGO; + } + if ( $distanceInMinutes < 45 ) { + return (sprintf(ELAPSED_MINUTES_AGO, $distanceInMinutes)); + } + if ( $distanceInMinutes < 90 ) { + return ELAPSED_ABOUT_ONE_HOUR_AGO; + } + // less than 24 hours + if ( $distanceInMinutes < 1440 ) { + return (sprintf(ELAPSED_HOURS_AGO, round(floatval($distanceInMinutes) / 60.0))); + } + //less than 48hours + if ( $distanceInMinutes < 2880 ) { + return ELAPSED_ONE_DAY_AGO; + } + // less than 30 days + if ( $distanceInMinutes < 43200 ) { + return (sprintf(ELAPSED_DAYS_AGO, round(floatval($distanceInMinutes) / 1440))); + } + //less than 60 days + if ( $distanceInMinutes < 86400 ) { + return ELAPSED_ABOUT_ONE_MONTH_AGO; + } + // less than 365 days + if ( $distanceInMinutes < 525600 ) { + return (sprintf(ELAPSED_MONTHS_AGO, round(floatval($distanceInMinutes) / 43200))); + } + // less than 2 years + if ( $distanceInMinutes < 1051199 ) { + return ELAPSED_ABOUT_ONE_YEAR_AGO; + } + return (sprintf(ELAPSED_OVER_YEARS_AGO, round(floatval($distanceInMinutes) / 525600))); +} + +// smarty function to use distanceOfTimeInWords function +// call from tpl as {elapsed_time_words from_time=$comment.timestamp} +$serendipity['smarty']->register_function('elapsed_time_words', 'timeAgoInWords'); + +function timeAgoInWords($params, &$smarty) { + return distanceOfTimeInWords($params['from_time'], time()); + } + +if (class_exists('serendipity_event_entryproperties')) { + $ep_msg=THEME_EP_YES; + } else { + $ep_msg=THEME_EP_NO; +} + + +$template_config = array( + array( + 'var' => 'theme_instructions', + 'type' => 'content', + 'default' => $ep_msg . THEME_INSTRUCTIONS . '

' . CATEGORIES_ON_ARCHIVE_DESC . '

' . TAGS_ON_ARCHIVE_DESC . '

', + ), + array( + 'var' => 'default_header_image', + 'name' => DEFAULT_HEADER_IMAGE, + 'description' => DEFAULT_HEADER_IMAGE_DESC, + 'type' => 'media', + 'default' => serendipity_getTemplateFile('img/home-bg.jpg', 'serendipityHTTPPath', true) + ), + array( + 'var' => 'entry_default_header_image', + 'name' => ENTRY_DEFAULT_HEADER_IMAGE, + 'description' => ENTRY_DEFAULT_HEADER_IMAGE_DESC, + 'type' => 'media', + 'default' => serendipity_getTemplateFile('img/post-bg.jpg', 'serendipityHTTPPath', true) + ), + array( + 'var' => 'staticpage_header_image', + 'name' => STATICPAGE_DEFAULT_HEADER_IMAGE, + 'description' => STATICPAGE_DEFAULT_HEADER_IMAGE_DESC, + 'type' => 'media', + 'default' => serendipity_getTemplateFile('img/about-bg.jpg', 'serendipityHTTPPath', true) + ), + array( + 'var' => 'contactform_header_image', + 'name' => CONTACTFORM_HEADER_IMAGE, + 'type' => 'media', + 'default' => serendipity_getTemplateFile('img/contact-bg.jpg', 'serendipityHTTPPath', true) + ), + array( + 'var' => 'archive_header_image', + 'name' => ARCHIVE_HEADER_IMAGE, + 'type' => 'media', + 'default' => serendipity_getTemplateFile('img/archive-bg.jpg', 'serendipityHTTPPath', true) + ), + array( + 'var' => 'date_format', + 'name' => ENTRY_DATE_FORMAT . ' (http://php.net/strftime)', + 'type' => 'string', + 'default' => DATE_FORMAT_ENTRY, + ), + array( + 'var' => 'comment_time_format', + 'name' => COMMENT_TIME_FORMAT, + 'type' => 'select', + 'default' => 'words', + 'select_values' => array('words' => WORDS, + 'time' => TIMESTAMP) + ), + array( + 'var' => 'subtitle_use_entrybody', + 'name' => SUBTITLE_USE_ENTRYBODY, + 'type' => 'boolean', + 'default' => false, + ), + array( + 'var' => 'entrybody_detailed_only', + 'name' => ENTRYBODY_DETAILED_ONLY, + 'type' => 'boolean', + 'default' => true, + ), + array( + 'var' => 'show_comment_link', + 'name' => SHOW_COMMENT_LINK, + 'type' => 'boolean', + 'default' => false, + ), + array( + 'var' => 'categories_on_archive', + 'name' => CATEGORIES_ON_ARCHIVE, + 'description' => CATEGORIES_ON_ARCHIVE_DESC, + 'type' => 'boolean', + 'default' => false, + ), + array( + 'var' => 'tags_on_archive', + 'name' => TAGS_ON_ARCHIVE, + 'description' => TAGS_ON_ARCHIVE_DESC, + 'type' => 'boolean', + 'default' => false, + ), + array( + 'var' => 'use_corenav', + 'name' => USE_CORENAV, + 'type' => 'boolean', + 'default' => true, + ), + array( + 'var' => 'home_link_text', + 'name' => HOME_LINK_TEXT, + 'type' => 'string', + 'default' => $serendipity['blogTitle'], + ), + array( + 'var' => 'twitter_url', + 'name' => TWITTER_URL, + 'type' => 'string', + 'default' => '', + ), + array( + 'var' => 'facebook_url', + 'name' => FACEBOOK_URL, + 'type' => 'string', + 'default' => '', + ), + array( + 'var' => 'rss_url', + 'name' => RSS_URL, + 'type' => 'string', + 'default' => $serendipity['baseURL'] . 'index.php?/feeds/index.rss2', + ), + array( + 'var' => 'github_url', + 'name' => GITHUB_URL, + 'type' => 'string', + 'default' => '', + ), + array( + 'var' => 'instagram_url', + 'name' => INSTAGRAM_URL, + 'type' => 'string', + 'default' => '', + ), + array( + 'var' => 'pinterest_url', + 'name' => PINTEREST_URL, + 'type' => 'string', + 'default' => '', + ), + array( + 'var' => 'copyright', + 'name' => COPYRIGHT, + 'type' => 'string', + 'default' => 'Copyright © ' . $serendipity['blogTitle'] . ' ' . date(Y) . ' | Admin', + ), +); + +// Collapse template options into groups. +$template_global_config = array('navigation' => true); +$template_loaded_config = serendipity_loadThemeOptions($template_config, $serendipity['smarty_vars']['template_option'], true); +serendipity_loadGlobalThemeOptions($template_config, $template_loaded_config, $template_global_config); + +$navlinks_collapse = array( 'use_corenav', 'amount'); +for ($i = 0; $i < $template_loaded_config['amount']; $i++) { + array_push($navlinks_collapse, 'navlink' . $i . 'text' ,'navlink' . $i . 'url'); +} + +$template_config_groups = array( + THEME_README => array('theme_instructions'), + THEME_HEADERS => array('default_header_image', 'entry_default_header_image', 'staticpage_header_image', 'contactform_header_image', 'archive_header_image'), + THEME_PAGE_OPTIONS => array('home_link_text', 'date_format', 'comment_time_format','subtitle_use_entrybody', 'entrybody_detailed_only', 'show_comment_link', 'categories_on_archive', 'tags_on_archive', 'copyright'), + THEME_SOCIAL_LINKS => array('twitter_url', 'facebook_url', 'rss_url', 'github_url', 'instagram_url', 'pinterest_url'), + THEME_NAVIGATION => $navlinks_collapse +); + +// Save custom field variables within the serendipity "Edit/Create Entry" backend. +// Any custom variables can later be queried inside the .tpl files through +// {if $entry.properties.key_value == 'true'}...{/if} + +// Function to get the content of a non-boolean entry variable +function entry_option_get_value($property_key, &$eventData) { + global $serendipity; + if (isset($eventData['properties'][$property_key])) return $eventData['properties'][$property_key]; + if (isset($serendipity['POST']['properties'][$property_key])) return $serendipity['POST']['properties'][$property_key]; + return false; +} + +// Function to store form values into the serendipity database, so that they will be retrieved later. +function entry_option_store($property_key, $property_val, &$eventData) { + global $serendipity; + + $q = "DELETE FROM {$serendipity['dbPrefix']}entryproperties WHERE entryid = " . (int)$eventData['id'] . " AND property = '" . serendipity_db_escape_string($property_key) . "'"; + serendipity_db_query($q); + + if (!empty($property_val)) { + $q = "INSERT INTO {$serendipity['dbPrefix']}entryproperties (entryid, property, value) VALUES (" . (int)$eventData['id'] . ", '" . serendipity_db_escape_string($property_key) . "', '" . serendipity_db_escape_string($property_val) . "')"; + serendipity_db_query($q); + } +} + +function serendipity_plugin_api_pre_event_hook($event, &$bag, &$eventData, &$addData) { + global $serendipity; + + // Check what Event is coming in, only react to those we want. + switch($event) { + + // Displaying the backend entry section + case 'backend_display': + // INFO: The whole 'entryproperties' injection is easiest to store any data you want. The entryproperties plugin + // should actually not even be required to do this, as serendipity loads all properties regardless of the installed plugin + + // The name of the variable + $entry_subtitle_key = 'entry_subtitle'; + $entry_specific_header_image_key = 'entry_specific_header_image'; + + // Check what our special key is set to (checks both POST data as well as the actual data) + $is_entry_subtitle = (function_exists('serendipity_specialchars') ? serendipity_specialchars(entry_option_get_value($entry_subtitle_key, $eventData)) : htmlspecialchars(entry_option_get_value($entry_subtitle_key, $eventData), ENT_COMPAT, LANG_CHARSET)); + $is_entry_specific_header_image = entry_option_get_value ($entry_specific_header_image_key, $eventData); + + // This is the actual HTML output on the backend screen. + //DEBUG: echo '

' . print_r($eventData, true) . '
'; + echo '
'; + echo ' '; + echo '

' . THEME_ENTRY_PROPERTIES_HEADING . '

'; + echo '
'; + echo '

' . THEME_CUSTOM_FIELD_HEADING . '

'; + echo ' ' . THEME_CUSTOM_FIELD_DEFINITION . ''; + echo '
'; + echo '
'; + echo ' '; + echo ' '; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo ' '; + echo ' '; + echo ' '; + echo '
'; + echo '
' . PREVIEW . '
'; + echo ' '; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + echo '
'; + + break; + + // To store the value of our entryproperties + case 'backend_publish': + case 'backend_save': + // Call the helper function with all custom variables here. + entry_option_store('entry_subtitle', $serendipity['POST']['properties']['entry_subtitle'], $eventData); + entry_option_store('entry_specific_header_image', $serendipity['POST']['properties']['entry_specific_header_image'], $eventData); + break; + } +} diff --git a/templates/clean-blog/content.tpl b/templates/clean-blog/content.tpl new file mode 100644 index 00000000..46947f26 --- /dev/null +++ b/templates/clean-blog/content.tpl @@ -0,0 +1,16 @@ +{if $searchresult_tooShort || $searchresult_noEntries} +

{$CONST.SEARCH}

{$content_message}
+{elseif $searchresult_error} +

{$CONST.SEARCH}

{$content_message}
+{elseif $searchresult_results} +

{$CONST.SEARCH}

{$content_message}
+{elseif $subscribe_confirm_error} +

{$CONST.ERROR}

{$content_message}
+{elseif $subscribe_confirm_success} +

{$CONST.SUCCESS}

{$content_message}
+{elseif $content_message} +
{$content_message}
+{/if} + +{$ENTRIES} +{$ARCHIVES} diff --git a/templates/clean-blog/entries.tpl b/templates/clean-blog/entries.tpl new file mode 100644 index 00000000..20d6fa54 --- /dev/null +++ b/templates/clean-blog/entries.tpl @@ -0,0 +1,165 @@ +{serendipity_hookPlugin hook="entries_header" addData="$entry_id"} +{foreach from=$entries item="dategroup"} + {foreach from=$dategroup.entries item="entry"} + {assign var="entry" value=$entry scope="parent"} +
+ {if !$is_single_entry and not $entry.is_extended and not $is_preview} +

{$entry.title}

+ {if $entry.properties.entry_subtitle} +

{$entry.properties.entry_subtitle|escape}

+ {elseif $template_option.subtitle_use_entrybody==true && $template_option.entrybody_detailed_only == true} +

{$entry.body|@strip_tags|@strip|@truncate:70:" ..."}

+ {/if} +
+

{$CONST.POSTED_BY} {$entry.author} {$CONST.ON} {if $template_option.show_comment_link == true}  {/if}{if $entry.is_entry_owner and not $is_preview}  {/if}

+ {/if} + {if $template_option.entrybody_detailed_only != true || $entry.is_extended || $is_single_entry || $is_preview} +
+
+ {if $entry.categories}{foreach from=$entry.categories item="entry_category"}{if $entry_category.category_icon}{$entry_category.category_name|@escape}{/if}{/foreach}{/if} + {$entry.body} + {if $entry.has_extended and not $is_single_entry and not $entry.is_extended} + + {/if} +
+ {if $entry.is_extended} +
+ {$entry.extended} +
+ {/if} + {if $entry.plugin_display_dat} + {$entry.plugin_display_dat} + {/if} + {if $entry.categories or $entry.add_footer} +
+ {if $entry.categories} + {$CONST.CATEGORIES}: + + {foreach from=$entry.categories item="entry_category" name="categories"}{$entry_category.category_name|@escape}{if !$smarty.foreach.categories.last} {/if}{/foreach} + {/if} + {if isset($entry.freetag.extended) && $entry.freetag.extended == 1} + {if $entry.freetag.tags.tags} +
+ {$entry.freetag.tags.description} + + {foreach from=$entry.freetag.tags.tags item="tag"} + {$tag} + {/foreach} +
+ {if $is_single_entry or $is_preview} + + {/if} + {/if} + {else} + {$entry.freetag} + {/if} + {$entry.add_footer} +
+ {/if} +
+ {/if} + + {if $is_single_entry and not $is_preview} + {if $CONST.DATA_UNSUBSCRIBED} +

{$CONST.DATA_UNSUBSCRIBED|@sprintf:$CONST.UNSUBSCRIBE_OK}

+ {/if} + {if $CONST.DATA_TRACKBACK_DELETED} +

{$CONST.DATA_TRACKBACK_DELETED|@sprintf:$CONST.TRACKBACK_DELETED}

+ {/if} + {if $CONST.DATA_TRACKBACK_APPROVED} +

{$CONST.DATA_TRACKBACK_APPROVED|@sprintf:$CONST.TRACKBACK_APPROVED}

+ {/if} + {if $CONST.DATA_COMMENT_DELETED} +

{$CONST.DATA_COMMENT_DELETED|@sprintf:$CONST.COMMENT_DELETED}

+ {/if} + {if $CONST.DATA_COMMENT_APPROVED} +

{$CONST.DATA_COMMENT_APPROVED|@sprintf:$CONST.COMMENT_APPROVED}

+ {/if} + + {if $entry.trackbacks != 0} +
+

{if $entry.trackbacks == 0}{$CONST.NO_TRACKBACKS}{else}{$entry.trackbacks} {$entry.label_trackbacks}{/if}

+

{$CONST.TRACKBACK_SPECIFIC}

+ {serendipity_printTrackbacks entry=$entry.id} +
+ {/if} +
+

{if $entry.comments == 0}{$CONST.NO_COMMENTS}{else}{$entry.comments} {$entry.label_comments}{/if}

+ {if $entry.comments != 0} +

+ {if $entry.viewmode eq $CONST.VIEWMODE_LINEAR} + + {$CONST.COMMENTS_VIEWMODE_THREADED} + {else} + {$CONST.COMMENTS_VIEWMODE_LINEAR} + + {/if} +

+ {/if} + {serendipity_printComments entry=$entry.id mode=$entry.viewmode} + {if $entry.is_entry_owner} +

+ + {if $entry.allow_comments} + + {else} + + {/if} + +

+ {/if} +
+ {foreach from=$comments_messagestack item="message"} +

{$message}

+ {/foreach} + {if $is_comment_added} +

{$CONST.COMMENT_ADDED}

+ {elseif $is_comment_moderate} +

{$CONST.COMMENT_ADDED}: {$CONST.THIS_COMMENT_NEEDS_REVIEW}

+ {elseif not $entry.allow_comments} +

{$CONST.COMMENTS_CLOSED}

+ {else} +
+

{$CONST.ADD_COMMENT}

+ {$COMMENTFORM} +
+ {/if} + {/if} + {$entry.backend_preview} +
+ {if !$is_single_entry and not $entry.is_extended}
{/if} + {/foreach} +{foreachelse} + {if not $plugin_clean_page} +

{$CONST.NO_ENTRIES_TO_PRINT}

+ {/if} +{/foreach} +{if $footer_info or $footer_prev_page or $footer_next_page} + {if $footer_info} +

{$footer_info}

+ {/if} + +{/if} + {serendipity_hookPlugin hook="entries_footer"} diff --git a/templates/clean-blog/entries_archives.tpl b/templates/clean-blog/entries_archives.tpl new file mode 100644 index 00000000..5eae06c1 --- /dev/null +++ b/templates/clean-blog/entries_archives.tpl @@ -0,0 +1,51 @@ +{serendipity_hookPlugin hook="entries_header"} +
+ {if $template_option.categories_on_archive || $template_option.tags_on_archive} +
+ {if $template_option.categories_on_archive} +
+ {serendipity_showPlugin class="serendipity_plugin_categories" template="archive_categories.tpl"} +
+ {/if} + {if $template_option.tags_on_archive} +
+ {serendipity_showPlugin class="serendipity_plugin_freetag" template="archive_freetag.tpl"} +
+ {/if} +
+ {/if} +

{if $category}{$category_info.category_name} - {/if}{$CONST.ARCHIVES}

+ {foreach from=$archives item="archive"} +
+
+
+

{$archive.year}

+ {foreach from=$archive.months item="month"} +
+ {if $template_option.entrybody_detailed_only==true} + {if $month.entry_count} + {$month.date|@formatTime:"%b"} {$month.entry_count} + {else} + + {/if} + {else} +
+ {if $month.entry_count} + + + {else} + + {/if} +
+ {/if} +
+ {/foreach} +
+
+
+ {/foreach} +
+{serendipity_hookPlugin hook="entries_footer"} \ No newline at end of file diff --git a/templates/clean-blog/entries_summary.tpl b/templates/clean-blog/entries_summary.tpl new file mode 100644 index 00000000..9721f1fe --- /dev/null +++ b/templates/clean-blog/entries_summary.tpl @@ -0,0 +1,21 @@ +{serendipity_hookPlugin hook="entries_header"} +{counter start=0 assign='entry_count'} +{foreach from=$entries item="countme"} + {foreach from=$countme.entries item="entry"} + {counter assign='entry_count'} + {/foreach} +{/foreach} + +
+

{if $category}{$category_info.category_name} - {/if}{$entry_count} {$CONST.TOPICS_OF} {$dateRange.0|@formatTime:"%B, %Y"}

+ +
+{serendipity_hookPlugin hook="entries_footer"} \ No newline at end of file diff --git a/templates/clean-blog/img/about-bg.jpg b/templates/clean-blog/img/about-bg.jpg new file mode 100644 index 00000000..af6d4d5c Binary files /dev/null and b/templates/clean-blog/img/about-bg.jpg differ diff --git a/templates/clean-blog/img/archive-bg.jpg b/templates/clean-blog/img/archive-bg.jpg new file mode 100644 index 00000000..5117aa0e Binary files /dev/null and b/templates/clean-blog/img/archive-bg.jpg differ diff --git a/templates/clean-blog/img/contact-bg.jpg b/templates/clean-blog/img/contact-bg.jpg new file mode 100644 index 00000000..27490b69 Binary files /dev/null and b/templates/clean-blog/img/contact-bg.jpg differ diff --git a/templates/clean-blog/img/default_avatar.jpg b/templates/clean-blog/img/default_avatar.jpg new file mode 100644 index 00000000..d07c9a8e Binary files /dev/null and b/templates/clean-blog/img/default_avatar.jpg differ diff --git a/templates/clean-blog/img/home-bg.jpg b/templates/clean-blog/img/home-bg.jpg new file mode 100644 index 00000000..91ca6d94 Binary files /dev/null and b/templates/clean-blog/img/home-bg.jpg differ diff --git a/templates/clean-blog/img/post-bg.jpg b/templates/clean-blog/img/post-bg.jpg new file mode 100644 index 00000000..21750a49 Binary files /dev/null and b/templates/clean-blog/img/post-bg.jpg differ diff --git a/templates/clean-blog/img/post-sample-image.jpg b/templates/clean-blog/img/post-sample-image.jpg new file mode 100644 index 00000000..3fc42829 Binary files /dev/null and b/templates/clean-blog/img/post-sample-image.jpg differ diff --git a/templates/clean-blog/index.tpl b/templates/clean-blog/index.tpl new file mode 100644 index 00000000..1b4553a4 --- /dev/null +++ b/templates/clean-blog/index.tpl @@ -0,0 +1,234 @@ +{if $is_embedded != true} + + + + + + + + {$head_title|default:$blogTitle}{if $head_subtitle} | {$head_subtitle}{/if} +{* CANONICAL *} + {if ($view == "entry" || $view == "start" || $view == "feed" || $view == "plugin" || $staticpage_pagetitle != "" || $robots_index == 'index')} + + {else} + + {/if} + {if ($view == "entry")} + + {/if} + {if ($view == "start")} + + {/if} +{* BOOTSTRAP CORE CSS *} + +{* S9Y CSS *} + + + + {if $entry_id} + + {/if} +{* CUSTOM FONTS *} + + + + + + + +{* HEADER IMAGE *} + {if $view=="entry"} + {if $entry.properties.entry_specific_header_image} + + {else} + + {/if} + {elseif $staticpage_pagetitle && !$plugin_contactform_name} + {if $staticpage_custom.staticpage_header_image} + + {else} + + {/if} + {elseif $plugin_contactform_name} + + {elseif $view=="archive"} + + {else} + + {/if} + {serendipity_hookPlugin hook="frontend_header"} + + + +{else} +{serendipity_hookPlugin hook="frontend_header"} +{/if} +{if $is_raw_mode != true} + {if $template_option.use_corenav} + Skip to main content + + + {/if} + + +{* MAIN CONTENT *} +
+
+
+ {if $view=='404'} +

{$CONST.ERROR_404}

+ + {else} + {$CONTENT} + {/if} +
+
+
+
+{* FOOTER *} + + + +{/if} +{$raw_data} +{serendipity_hookPlugin hook="frontend_footer"} +{if $is_embedded != true} + + +{/if} \ No newline at end of file diff --git a/templates/clean-blog/info.txt b/templates/clean-blog/info.txt new file mode 100644 index 00000000..a0b0c2b0 --- /dev/null +++ b/templates/clean-blog/info.txt @@ -0,0 +1,5 @@ +Name: Clean Blog +Author: s9y theme by Don Chambers. Original bootstrap theme by Iron Summit Media Strategies, LLC. +Date: 2015-06-18 +Require Serendipity: 2.0 +Backend: No \ No newline at end of file diff --git a/templates/clean-blog/js/clean-blog.js b/templates/clean-blog/js/clean-blog.js new file mode 100644 index 00000000..67b4007c --- /dev/null +++ b/templates/clean-blog/js/clean-blog.js @@ -0,0 +1,121 @@ +/*! + * Clean Blog v1.0.0 (http://startbootstrap.com) + * Copyright 2014 Start Bootstrap + * Licensed under Apache 2.0 (https://github.com/IronSummitMedia/startbootstrap/blob/gh-pages/LICENSE) + */ + +// Navigation Scripts to Show Header on Scroll-Up +jQuery(document).ready(function($) { + var MQL = 1170; + + //primary navigation slide-in effect + if ($(window).width() > MQL) { + var headerHeight = $('.navbar-custom').height(); + $(window).on('scroll', { + previousTop: 0 + }, + function() { + var currentTop = $(window).scrollTop(); + //check if user is scrolling up + if (currentTop < this.previousTop) { + //if scrolling up... + if (currentTop > 0 && $('.navbar-custom').hasClass('is-fixed')) { + $('.navbar-custom').addClass('is-visible'); + } else { + $('.navbar-custom').removeClass('is-visible is-fixed'); + } + } else { + //if scrolling down... + $('.navbar-custom').removeClass('is-visible'); + if (currentTop > headerHeight && !$('.navbar-custom').hasClass('is-fixed')) $('.navbar-custom').addClass('is-fixed'); + } + this.previousTop = currentTop; + }); + } +}); +/*global jQuery */ +/*jshint browser:true */ +/*! +* FitVids 1.1 +* +* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com +* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ +* Released under the WTFPL license - http://sam.zoy.org/wtfpl/ +* +*/ + +;(function( $ ){ + + 'use strict'; + + $.fn.fitVids = function( options ) { + var settings = { + customSelector: null, + ignore: null + }; + + if(!document.getElementById('fit-vids-style')) { + // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js + var head = document.head || document.getElementsByTagName('head')[0]; + var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}'; + var div = document.createElement("div"); + div.innerHTML = '

x

'; + head.appendChild(div.childNodes[1]); + } + + if ( options ) { + $.extend( settings, options ); + } + + return this.each(function(){ + var selectors = [ + 'iframe[src*="player.vimeo.com"]', + 'iframe[src*="youtube.com"]', + 'iframe[src*="youtube-nocookie.com"]', + 'iframe[src*="kickstarter.com"][src*="video.html"]', + 'object', + 'embed' + ]; + + if (settings.customSelector) { + selectors.push(settings.customSelector); + } + + var ignoreList = '.fitvidsignore'; + + if(settings.ignore) { + ignoreList = ignoreList + ', ' + settings.ignore; + } + + var $allVideos = $(this).find(selectors.join(',')); + $allVideos = $allVideos.not('object object'); // SwfObj conflict patch + $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. + + $allVideos.each(function(count){ + var $this = $(this); + if($this.parents(ignoreList).length > 0) { + return; // Disable FitVids on this video. + } + if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } + if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) + { + $this.attr('height', 9); + $this.attr('width', 16); + } + var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), + width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), + aspectRatio = height / width; + if(!$this.attr('id')){ + var videoID = 'fitvid' + count; + $this.attr('id', videoID); + } + $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); + $this.removeAttr('height').removeAttr('width'); + }); + }); + }; +// Works with either jQuery or Zepto +})( window.jQuery || window.Zepto ); +jQuery(document).ready(function(){ + jQuery('.content').fitVids(); +}); \ No newline at end of file diff --git a/templates/clean-blog/js/clean-blog.min.js b/templates/clean-blog/js/clean-blog.min.js new file mode 100644 index 00000000..f695d28a --- /dev/null +++ b/templates/clean-blog/js/clean-blog.min.js @@ -0,0 +1 @@ +jQuery(document).ready(function(t){var e=1170;if(t(window).width()>e){var i=t(".navbar-custom").height();t(window).on("scroll",{previousTop:0},function(){var e=t(window).scrollTop();e0&&t(".navbar-custom").hasClass("is-fixed")?t(".navbar-custom").addClass("is-visible"):t(".navbar-custom").removeClass("is-visible is-fixed"):(t(".navbar-custom").removeClass("is-visible"),e>i&&!t(".navbar-custom").hasClass("is-fixed")&&t(".navbar-custom").addClass("is-fixed")),this.previousTop=e})}}),function(t){"use strict";t.fn.fitVids=function(e){var i={customSelector:null,ignore:null};if(!document.getElementById("fit-vids-style")){var r=document.head||document.getElementsByTagName("head")[0],a=".fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}",o=document.createElement("div");o.innerHTML='

x

",r.appendChild(o.childNodes[1])}return e&&t.extend(i,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];i.customSelector&&e.push(i.customSelector);var r=".fitvidsignore";i.ignore&&(r=r+", "+i.ignore);var a=t(this).find(e.join(","));a=a.not("object object"),a=a.not(r),a.each(function(e){var i=t(this);if(!(i.parents(r).length>0||"embed"===this.tagName.toLowerCase()&&i.parent("object").length||i.parent(".fluid-width-video-wrapper").length)){i.css("height")||i.css("width")||!isNaN(i.attr("height"))&&!isNaN(i.attr("width"))||(i.attr("height",9),i.attr("width",16));var a="object"===this.tagName.toLowerCase()||i.attr("height")&&!isNaN(parseInt(i.attr("height"),10))?parseInt(i.attr("height"),10):i.height(),o=isNaN(parseInt(i.attr("width"),10))?i.width():parseInt(i.attr("width"),10),s=a/o;if(!i.attr("id")){var d="fitvid"+e;i.attr("id",d)}i.wrap('
').parent(".fluid-width-video-wrapper").css("padding-top",100*s+"%"),i.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto),jQuery(document).ready(function(){jQuery(".content").fitVids()}); \ No newline at end of file diff --git a/templates/clean-blog/lang_de.inc.php b/templates/clean-blog/lang_de.inc.php new file mode 100644 index 00000000..aabf508b --- /dev/null +++ b/templates/clean-blog/lang_de.inc.php @@ -0,0 +1,78 @@ +Das Plugin Erweiterte Eigenschaften für Einträge (serendipity_event_entryproperties) wird benötigt. Es ist installiert und aktiv.

'); +@define('THEME_EP_NO','

Das Plugin Erweiterte Eigenschaften für Einträge (serendipity_event_entryproperties) wird benötigt. Es ist entweder nicht installiert oder inaktiv. Bitte das Plugin installieren, um alle Features dieses Themes voll zu nutzen.

'); +@define('THEME_INSTRUCTIONS','

Dieses Theme nutzt breite Header-Bilder für unterschiedliche Seitentypen. Standardbilder werden mit dem Theme geliefert, diese sind 1900px breit. Diese Standardbilder können unten in den Einstellungen ausgetauscht werden. Zusaätzlich zu den Standardbildern können für jeden Eintrag und jede statische Seite eigene Header-Bilder definiert werden.

Das Design dieses Theme sieht die Nutzung eines sekundären Untertitels oder einer Verfasserzeile direkt unter dem Eintragstitel vor. Dieser Untertitel und das Eintragsbild können im Abschnitt "Erweiterte Optionen" beim Anlegen oder Bearbeiten einer Seite geändert werden. Optional kann man das Theme so einstellen, dass die ersten 70 Zeichen des Eintrags als Untertitel verwendet werden, wenn kein Untertitel angegeben wurde.

Dieses Theme bietet keine Seitenleisten, kann jedoch optional die Seitenleisten-Plugins Kategorien und Tags in der Archiv-Seite ausgeben. Siehe "' . THEME_PAGE_OPTIONS . '" unten.

Falls das Avatar-Plugin (serendipity_event_gravatar) verwendet wird, sollte dessen Option "Smarty Tag erzeugen" für eine optimale Darstellung auf "Ja" gesetzt werden.

Die Option "Erweiteres Smarty" in serendipity_event_freetag sollte für eine schönere Darstellung im Eintragsfuß ebenfalls auf "Ja" gesetzt sein.

'); +@define('THEME_ENTRY_PROPERTIES_HEADING','Eintragseigenschaften des Clean Blog-Themes'); +@define('THEME_CUSTOM_FIELD_HEADING', 'Freie Felder für Einträge'); +@define('THEME_CUSTOM_FIELD_DEFINITION','Diese optionalen Felder sind nur verfügbar, wenn dieses Theme (clean blog) verwendet wird. Das Ereignis-Plugin serendipity_event_entryproperties (Erweiterte Eigenschaften für Einträge) muss installiert sein, um diese Felder zu verwenden. Der Eintrags-Untertitel wird unter dem Titel des Eintrags ausgegeben und sollte eine kurze Zusammenfassung des Eintrags enthalten. Das Header-Bild eines Eintrags überschreibt das Standard-Header-Bild für Einträge.'); +@define('THEME_ENTRY_SUBTITLE','Untertitel des Eintrags'); +@define('THEME_ENTRY_HEADER_IMAGE','Header-Bild der Eintrags'); + +// Header Images +@define('DEFAULT_HEADER_IMAGE', 'Standard-Header-Bild'); +@define('DEFAULT_HEADER_IMAGE_DESC', 'Dieses Bild wird auf Seiten verwendet, die kein eigenes Header-Bild definieren.'); +@define('ENTRY_DEFAULT_HEADER_IMAGE', 'Standard-Header-Bild für Einträge'); +@define('ENTRY_DEFAULT_HEADER_IMAGE_DESC', 'Dieses Bild wird für Einträge verwendet, die kein eigenes Header-Bild definieren.'); +@define('STATICPAGE_DEFAULT_HEADER_IMAGE', 'Standard-Header-Bild für statische Seiten'); +@define('STATICPAGE_DEFAULT_HEADER_IMAGE_DESC', 'Dieses Bild wird für statische Seiten verwendet, die kein eigenes Header-Bild definieren.'); +@define('STATICPAGE_SPECIFIC_HEADER_IMAGE','Header-Bild für statische Seiten (optional)'); +@define('CONTACTFORM_HEADER_IMAGE', 'Header-Bild für das Kontaktformular'); +@define('ARCHIVE_HEADER_IMAGE', 'Header-Bild für die Archivseite'); + +//Page Options +@define('HOME_LINK_TEXT', 'Text des Home-Links'); +@define('ENTRY_DATE_FORMAT','Datumsformat für Einträge'); +@define('COMMENT_TIME_FORMAT','Zeitformat für Kommentare und Trackbacks'); +@define('WORDS','Textfassung'); +@define('TIMESTAMP','Zeitstempel'); +@define('SUBTITLE_USE_ENTRYBODY','Die ersten 70 Zeichen des Einrags als Untertitel ausgeben, wenn das Feld Untertitel leer gelassen wurde?'); +@define('ENTRYBODY_DETAILED_ONLY','Eintags-Inhalt nur in der Einzelansicht eines Eintrags anzeigen'); +@define('SHOW_COMMENT_LINK','Zeige Link zu den Kommentaren des Eintrags'); +@define('CATEGORIES_ON_ARCHIVE', 'Kategorien auf der Archivseite anzeigen'); +@define('CATEGORIES_ON_ARCHIVE_DESC', 'Das Seitenleisten-Plugin Kategorien (serendipity_plugin_categories) muss installiert und die Option "Smarty-Templating aktivieren?" aktiviert sein, damit Kategorien auf der Archiv-Seite angezeigt werden.'); +@define('TAGS_ON_ARCHIVE', 'Tags auf der Archivseite anzeigen'); +@define('TAGS_ON_ARCHIVE_DESC', 'Das Seitenleisten-Plugin Getaggte Artikel (serendipity_plugin_freetag) muss installiert sein und die Option "Sidebar template" muss auf "archive_freetag.tpl" gesetzt werden, damit Tags auf der Archiv-Seite angezeigt werden.'); + +//Static Pages +@define('STATIC_SHOW_AUTHOR_TEXT','Autorennamen anzeigen'); +@define('STATIC_SHOW_DATE_TEXT','Datum anzeigen'); + +//Navigation +@define('USE_CORENAV', 'Globale Navigation verwenden?'); + +//Social media +@define('TWITTER_URL','Twitter-URL. Icon wird nicht angezeigt, falls leer.'); +@define('FACEBOOK_URL','Facebook-URL. Icon wird nicht angezeigt, falls leer.'); +@define('RSS_URL','RSS feed-URL. Icon wird nicht angezeigt, falls leer.'); +@define('GITHUB_URL','GitHub-URL. Icon wird nicht angezeigt, falls leer.'); +@define('INSTAGRAM_URL','Instagram-URL. Icon wird nicht angezeigt, falls leer.'); +@define('PINTEREST_URL','Pinterest-URL. Icon wird nicht angezeigt, falls leer.'); +@define('COPYRIGHT', 'Copyright'); + +//time ago in words function +@define('ELAPSED_LESS_THAN_MINUTE_AGO','Vor weniger als einer Minute'); +@define('ELAPSED_ONE_MINUTE_AGO','Vor einer Minute'); +@define('ELAPSED_ONE_DAY_AGO','Vor einem Tag'); +@define('ELAPSED_MINUTES_AGO','Vor %s Minuten'); +@define('ELAPSED_HOURS_AGO','Vor %s Stunden'); +@define('ELAPSED_DAYS_AGO','Vor %s Tagen'); +@define('ELAPSED_MONTHS_AGO','Vor %s Monaten'); +@define('ELAPSED_YEARS_AGO','Vor %s Jahren'); //not currently using this, but defining just in case +@define('ELAPSED_ABOUT_ONE_HOUR_AGO','Vor ungefähr einer Stunde'); // greater than 45 minutes, less than 90 minutes +@define('ELAPSED_ABOUT_ONE_MONTH_AGO','Vor ungefähr einem Monat'); // greater than 30 days, less than 60 days +@define('ELAPSED_ABOUT_ONE_YEAR_AGO','Vor ungefähr einem Jahr'); // greater than one year, less than 2 years +@define('ELAPSED_OVER_YEARS_AGO','Vor mehr als %s Jahren');// greater than 2 years diff --git a/templates/clean-blog/lang_en.inc.php b/templates/clean-blog/lang_en.inc.php new file mode 100644 index 00000000..87fa89df --- /dev/null +++ b/templates/clean-blog/lang_en.inc.php @@ -0,0 +1,78 @@ +Extended Property for Entries plugin (serendipity_event_entryproperties) is required for this theme, and is installed.

'); +@define('THEME_EP_NO','

Extended Property for Entries plugin (serendipity_event_entryproperties) is required for this theme, which is not installed or is inactive. Please install the plugin to fully utlize this theme.

'); +@define('THEME_INSTRUCTIONS','

This theme uses wide header images for different page types. Default images are included with the theme. The default images are 1900px wide. These default images can be changed in the configurations settings below. In addition to default images, each entry and static page can define their own unique header image.

This theme was designed to use a secondary subtitle, or byline, directly below the entry title. The entry subtitle, and entry image, is available under the section "Advanced Options" when creating or editing an entry. Alternatively, the theme can be configured to display the first 70 characters of an entry as the subtitle if no subtitle is defined for an entry.

This theme does not use sidebars. This theme can, however, be configured to display categories and entry tags from the respective sidebar plugins on the archive page. See "' . THEME_PAGE_OPTIONS . '" below.

If using the avatar plugin (serendipity_event_gravatar), configure option "Produce smarty tag = yes" for best display of comment avatars.

Configure serendipity_event_freetag option "Extended Smarty = yes" for a nicer display of tags in the entry footer.

'); +@define('THEME_ENTRY_PROPERTIES_HEADING','Theme Clean Blog entry properties'); +@define('THEME_CUSTOM_FIELD_HEADING', 'Custom Entry Fields'); +@define('THEME_CUSTOM_FIELD_DEFINITION','These optional fields are only available when using this theme (clean blog). The event plugin serendipity_event_entryproperties (extended properties for entries) must also be installed to use these fields. The Entry Subtitle field is displayed below the entry title and should be a brief post summary. The entry header image field will overide the default entry header image for this specific entry.'); +@define('THEME_ENTRY_SUBTITLE','Entry Subtitle'); +@define('THEME_ENTRY_HEADER_IMAGE','Entry Header Image'); + +// Header Images +@define('DEFAULT_HEADER_IMAGE', 'Default header image'); +@define('DEFAULT_HEADER_IMAGE_DESC', 'This image will be used on pages which do not define their own header image'); +@define('ENTRY_DEFAULT_HEADER_IMAGE', 'Header image for entries'); +@define('ENTRY_DEFAULT_HEADER_IMAGE_DESC', 'This image will be used for all entries that do not define their own entry-specific header image'); +@define('STATICPAGE_DEFAULT_HEADER_IMAGE', 'Header image for static pages'); +@define('STATICPAGE_DEFAULT_HEADER_IMAGE_DESC', 'This image will be used for all static pages that do not define their own page-specific header image'); +@define('STATICPAGE_SPECIFIC_HEADER_IMAGE','Staticpage Header Image (optional)'); +@define('CONTACTFORM_HEADER_IMAGE', 'Header image for contact form'); +@define('ARCHIVE_HEADER_IMAGE', 'Header image for archive page'); + +//Page Options +@define('HOME_LINK_TEXT', 'Home link text'); +@define('ENTRY_DATE_FORMAT','Entry Date Format'); +@define('COMMENT_TIME_FORMAT','Comment and trackback time format'); +@define('WORDS','Words'); +@define('TIMESTAMP','Timestamp'); +@define('SUBTITLE_USE_ENTRYBODY','Display first 70 characters of entry body as entry subtitle if actual entry subtitle field is blank?'); +@define('ENTRYBODY_DETAILED_ONLY','Show entry body on single entry page view only'); +@define('SHOW_COMMENT_LINK','Show link to entry\'s comments'); +@define('CATEGORIES_ON_ARCHIVE', 'Show categories on archive page'); +@define('CATEGORIES_ON_ARCHIVE_DESC', 'The sidebar categories plugin (serendipity_plugin_categories) must be installed and the option "Enable Smarty-Templates?" must be activated to view categories on the archive page.'); +@define('TAGS_ON_ARCHIVE', 'Show tags on archive page'); +@define('TAGS_ON_ARCHIVE_DESC', 'The show tagged entries plugin (serendipity_plugin_freetag) must be installed and the sidebar template option must be set to "archive_freetag.tpl" to view tags on the archive page.'); + +//Static Pages +@define('STATIC_SHOW_AUTHOR_TEXT','Show Author\'s name'); +@define('STATIC_SHOW_DATE_TEXT','Show date'); + +//Navigation +@define('USE_CORENAV', 'Use global navigation?'); + +//Social media +@define('TWITTER_URL','Twitter URL path. Icon not displayed if blank.'); +@define('FACEBOOK_URL','Facebook URL path. Icon not displayed if blank.'); +@define('RSS_URL','RSS feed URL path. Icon not displayed if blank.'); +@define('GITHUB_URL','GitHub URL path. Icon not displayed if blank.'); +@define('INSTAGRAM_URL','Instagram URL path. Icon not displayed if blank.'); +@define('PINTEREST_URL','Pinterest URL path. Icon not displayed if blank.'); +@define('COPYRIGHT', 'Copyright'); + +//time ago in words function +@define('ELAPSED_LESS_THAN_MINUTE_AGO','Less than a minute ago'); +@define('ELAPSED_ONE_MINUTE_AGO','1 minute ago'); +@define('ELAPSED_ONE_DAY_AGO','1 day ago'); +@define('ELAPSED_MINUTES_AGO','%s minutes ago'); +@define('ELAPSED_HOURS_AGO','%s hours ago'); +@define('ELAPSED_DAYS_AGO','%s days ago'); +@define('ELAPSED_MONTHS_AGO','%s months ago'); +@define('ELAPSED_YEARS_AGO','%s years ago'); //not currently using this, but defining just in case +@define('ELAPSED_ABOUT_ONE_HOUR_AGO','About an hour ago'); // greater than 45 minutes, less than 90 minutes +@define('ELAPSED_ABOUT_ONE_MONTH_AGO','About a month ago'); // greater than 30 days, less than 60 days +@define('ELAPSED_ABOUT_ONE_YEAR_AGO','About a year ago'); // greater than one year, less than 2 years +@define('ELAPSED_OVER_YEARS_AGO','Over %s years ago');// greater than 2 years diff --git a/templates/clean-blog/less/clean-blog.less b/templates/clean-blog/less/clean-blog.less new file mode 100644 index 00000000..5e432f77 --- /dev/null +++ b/templates/clean-blog/less/clean-blog.less @@ -0,0 +1,480 @@ +/*! + * Clean Blog v1.0.0 (http://startbootstrap.com) + * Copyright 2014 Start Bootstrap + * Licensed under Apache 2.0 (https://github.com/IronSummitMedia/startbootstrap/blob/gh-pages/LICENSE) + * Theme ported to Serendipity (http://s9y.org) by Don Chambers + * Font Awesome by Dave Gandy - http://fontawesome.io + */ + +@import "variables.less"; +@import "mixins.less"; + +// Global Components + +body { + .serif; + font-size: 20px; + color: @gray-dark; +} + +// -- Typography + +p { + line-height: 1.5; + margin: 0 0 30px; + a { + text-decoration: underline; + } +} + +h1, +h2, +h3, +h4, +h5, +h6 { + .sans-serif; + font-weight: 800; +} + +a { + color: @gray-dark; + &:hover, + &:focus { + color: @brand-primary; + } +} + +a img { + &:hover, + &:focus { + cursor: zoom-in; + } +} + +blockquote { + color: @gray; + font-style: italic; +} + +hr.small { + max-width: 100px; + margin: 15px auto; + border-width: 4px; + border-color: white; +} +ol, ul { + margin-bottom: 30px; + a { + text-decoration:underline; + } +} + +// Navigation + +.navbar-custom { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 3; + .sans-serif; + .navbar-brand { + font-weight: 800; + } + .nav { + li { + a { + text-decoration:none; + text-transform: uppercase; + font-size: 12px; + font-weight: 800; + letter-spacing: 1px; + } + } + } + @media only screen and (min-width: 768px) { + background: transparent; + border-bottom: 1px solid transparent; + .navbar-brand { + color: white; + padding: 20px; + &:hover, + &:focus { + color: @white-faded; + } + } + .nav { + li { + a { + color: white; + padding: 20px; + &:hover, + &:focus { + color: @white-faded; + } + } + } + } + } + @media only screen and (min-width: 1170px) { + -webkit-transition: background-color 0.3s; + -moz-transition: background-color 0.3s; + transition: background-color 0.3s; + /* Force Hardware Acceleration in WebKit */ + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + &.is-fixed { + /* when the user scrolls down, we hide the header right above the viewport */ + position: fixed; + top: -61px; + background-color: fade(white, 90%); + border-bottom: 1px solid darken(white, 5%); + -webkit-transition: -webkit-transform 0.3s; + -moz-transition: -moz-transform 0.3s; + transition: transform 0.3s; + .navbar-brand { + color: @gray-dark; + &:hover, + &:focus { + color: @brand-primary; + } + } + .nav { + li { + a { + color: @gray-dark; + &:hover, + &:focus { + color: @brand-primary; + } + } + } + } + } + &.is-visible { + /* if the user changes the scrolling direction, we show the header */ + -webkit-transform: translate3d(0, 100%, 0); + -moz-transform: translate3d(0, 100%, 0); + -ms-transform: translate3d(0, 100%, 0); + -o-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + } +} + +// Header + +.intro-header { + background-color: @header-default!important; + background: no-repeat center center; + background-attachment: scroll; + .background-cover; + // NOTE: Background images are set within the HTML using inline CSS! + margin-bottom: 40px; + .site-heading, + .post-heading, + .page-heading { + padding: 100px 0 50px; + color: white; + @media only screen and (min-width: 768px) { + padding: 150px 0; + } + } + .site-heading, + .page-heading { + text-align: center; + h1 { + margin-top: 0; + font-size: 50px; + } + .subheading { + font-size: 24px; + line-height: 1.1; + display: block; + .sans-serif; + font-weight: 300; + margin: 10px 0 0; + } + @media only screen and (min-width: 768px) { + h1 { + font-size: 80px; + } + } + } + .post-heading { + h1 { + font-size: 35px; + } + .subheading, + .meta { + line-height: 1.1; + display: block; + } + .subheading { + .sans-serif; + font-size: 24px; + margin: 10px 0 30px; + font-weight: 600; + } + .meta { + .serif; + font-style: italic; + font-weight: 300; + font-size: 20px; + a { + color: white; + } + } + @media only screen and (min-width: 768px) { + h1 { + font-size: 55px; + } + .subheading { + font-size: 30px; + } + } + } +} + +// Post Preview Pages + +.post-preview { + > a { + color: @gray-dark; + &:hover, + &:focus { + text-decoration: none; + color: @brand-primary; + } + > .post-title { + font-size: 30px; + margin-top: 30px; + margin-bottom: 10px; + } + > .post-subtitle { + margin: 0; + font-weight: 300; + margin-bottom: 10px; + } + } + > .post-meta { + color: @gray; + font-size: 18px; + font-style: italic; + margin-top: 0; + > a { + text-decoration: none; + color: @gray-dark; + &:hover, + &:focus { + color: @brand-primary; + text-decoration: underline; + } + } + } + @media only screen and (min-width: 768px) { + > a { + > .post-title { + font-size: 36px; + } + } + } +} + +// Sections + +.section-heading { + font-size: 36px; + margin-top: 60px; + font-weight: 700; +} + +.caption { + text-align: center; + font-size: 14px; + padding: 10px; + font-style: italic; + margin: 0; + display: block; + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; +} + +footer { + padding: 50px 0 65px; + .list-inline { + margin: 0; + padding: 0; + } + .copyright { + font-size: 14px; + text-align: center; + margin: 20px 0 0 0; + } +} + +// Contact Form Styles + +.floating-label-form-group { + font-size: 14px; + position: relative; + margin-bottom: 0; + padding-bottom: 0.5em; + border-bottom: 1px solid @gray-light; + input, + textarea { + z-index: 1; + position: relative; + padding-right: 0; + padding-left: 0; + border: none; + border-radius: 0; + font-size: 1.5em; + background: none; + box-shadow: none !important; + resize: none; + } + label { + display: block; + z-index: 0; + position: relative; + top: 2em; + margin: 0; + font-size: 0.85em; + line-height: 1.764705882em; + vertical-align: middle; + vertical-align: baseline; + opacity: 0; + -webkit-transition: top 0.3s ease,opacity 0.3s ease; + -moz-transition: top 0.3s ease,opacity 0.3s ease; + -ms-transition: top 0.3s ease,opacity 0.3s ease; + transition: top 0.3s ease,opacity 0.3s ease; + } + &::not(:first-child) { + padding-left: 14px; + border-left: 1px solid @gray-light; + } +} + +.floating-label-form-group-with-value { + label { + top: 0; + opacity: 1; + } +} + +.floating-label-form-group-with-focus { + label { + color: @brand-primary; + } +} + +form .row:first-child .floating-label-form-group { + border-top: 1px solid @gray-light; +} + +// Button Styles + +.btn { + .sans-serif; + text-decoration: none; + text-transform: uppercase; + font-size: 14px; + font-style:normal; + font-weight: 800; + letter-spacing: 1px; + border-radius: 0; + padding: 15px 25px; +} + +.btn-lg { + font-size: 16px; + padding: 25px 35px; +} + +.btn-default.active, .btn-default.focus, .btn-default:active, .btn-default:focus, .btn-default:hover, .open > .dropdown-toggle.btn-default +.open > .dropdown-toggle.btn-default, +.btn-default { + &:active, + &:focus, + &:hover { + background-color: @brand-primary; + border: 1px solid @brand-primary; + color: white; + } +} + +// Pager Styling + +.pager { + + margin: 20px 0 0; + + li { + > a, + > span { + .sans-serif; + text-transform: uppercase; + font-size: 14px; + font-weight: 800; + letter-spacing: 1px; + padding: 15px 25px; + background-color: white; + border-radius: 0; + } + + > a:hover, + > a:focus { + color: white; + background-color: @brand-primary; + border: 1px solid @brand-primary; + } + } + + .disabled { + > a, + > a:hover, + > a:focus, + > span { + color: @gray; + background-color: @gray-dark; + cursor: not-allowed; + } + } +} + +// -- Highlight Color Customization + +::-moz-selection { + color: white; + text-shadow: none; + background: @brand-primary; +} + +::selection { + color: white; + text-shadow: none; + background: @brand-primary; +} + +img::selection { + color: white; + background: transparent; +} + +img::-moz-selection { + color: white; + background: transparent; +} + +body { + webkit-tap-highlight-color: @brand-primary; +} + +@import "serendipity.less"; \ No newline at end of file diff --git a/templates/clean-blog/less/mixins.less b/templates/clean-blog/less/mixins.less new file mode 100644 index 00000000..c3b74c88 --- /dev/null +++ b/templates/clean-blog/less/mixins.less @@ -0,0 +1,22 @@ +// Mixins + +.transition-all() { + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + transition: all 0.5s; +} + +.background-cover() { + -webkit-background-size: cover; + -moz-background-size: cover; + background-size: cover; + -o-background-size: cover; +} + +.serif() { + font-family: 'Lora', 'Times New Roman', serif; +} + +.sans-serif () { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; +} \ No newline at end of file diff --git a/templates/clean-blog/less/serendipity.less b/templates/clean-blog/less/serendipity.less new file mode 100644 index 00000000..8fa739eb --- /dev/null +++ b/templates/clean-blog/less/serendipity.less @@ -0,0 +1,339 @@ +/** Serendipity specific styles **/ +blockquote {padding: 0 20px;} + +.form-control {font-size: 18px;} + +ul.comment-list { + list-style: none; + margin: 0; + padding:0; +} + +.comment-list .comment-children { + list-style: none; + margin-left: 58px; + padding:0; +} + +.comment_any { + margin-bottom: 2.5em; +} + +.comment-list-item, .comment-list-item-body { + overflow: hidden; +} + +.comment-author-heading { + font-size: 0.9em; + margin: 0 0 5px; + text-transform: uppercase; +} + +img.comment_avatar { + clear: left; + float: left; + height: 48px; + margin-right: 10px; + width: 48px; +} + +.avatar_right { + margin-left: 0; +} + +.serendipity_comments .comment_ability { + margin: 15px 0; +} + +.comment-date { + color: @gray; + font-weight: normal; +} + +.comment-meta { + font-size: 0.8em; + margin: 0.5em 0 0 0; +} + +.serendipity_section_commentform{ + margin-top: 2em; +} + +img{ + display: block; + height: auto; + max-width: 100%; + } + +#serendipity_replyTo {max-width: 100%} + +/* If the basic styles for aligning images are changed, the changes + must be ported to htmlarea/ckeditor/wysiwyg-style.css as well. */ +.serendipity_image_left, +.serendipity_image_right, +.serendipity_image_center, +.serendipity_imageComment_center, +.serendipity_imageComment_left, +.serendipity_imageComment_right { + background: transparent; + border: 0 none; + padding: 0!important; + max-width: 100%; +} + +.serendipity_image_left, +.serendipity_imageComment_left { + display: block; + float: left; + margin: 0 1em 1em 0; +} + +.serendipity_image_right, +.serendipity_imageComment_right { + display: block; + float: right; + margin: 0 0 1em 1em; +} + +.serendipity_image_center { + display: block; + margin: 0 auto 1em auto; +} + +.serendipity_imageComment_center { + display: block; + margin: 0 auto 1em auto; +} + +.serendipity_imageComment_img img { + border: none!important; + margin: 0!important; +} + +.serendipity_imageComment_txt { + border: 0; + color: @gray; + display: block; + font-size: .8125em; + font-style: italic; + line-height: 1.5em; + margin: 0; + padding: .5em; + text-align: center; +} + +.page-footer { + padding: 30px 0; +} + +.entry-footer { + padding: 20px 0; +} + +.btn-group-sm > .btn, .btn-sm { + border-radius: 3px!important; + font-size: 12px!important; + line-height: 1.5!important; + padding: 5px 10px!important; +} + +.pager li > a, .pager li > span { + border-color: #ccc; +} + +.category-list { + line-height: 1.6em; +} + +.category-children { + list-style:none; + padding-left: 24px; +} + +.serendipity_freeTag { + margin-left: auto; + margin-right: 0px; + text-align: left; + font-size: 80%; + display: block; + margin-top: 1em; + margin-bottom: 0px; + color: @gray; +} + +.serendipity_freeTag_related { + color: @gray; + display: block; + font-size: 80%; + margin: 10px 0 0 0; + text-align: left; +} + +.serendipity_freeTag a { + font-size: inherit; + text-decoration: none; +} + +.serendipity_freeTag a:hover { + text-decoration: underline; +} + +ul.staticpage_navigation{ + display: block; + list-style-type: none; + margin: 10px 0; + padding:0 +} + +ul.staticpage_navigation li{ + display: inline; + padding: 0 5px 0 0; +} + +.staticpage_breadcrumbs { + color: @gray; + margin: 20px 0; +} + +.staticpage_childpages { + margin: 1em 0; +} + +.staticpage-footer {padding: 30px 0 0 0} + +.serendipity_commentDirection {margin: 1em 0} + +.staticpage_related_category_entry_list {margin-top: 1em} + +.clean-blog_freeTag { + line-height: 2em; + margin: 0.5em 0 +} + +.clean-blog_freeTag a{ /* mimic bootstrap button */ + background-color: #fff; + background-image: none; + border: 1px solid transparent; + border-color: #ccc; + border-radius: 3px !important; + color: #333; + cursor: pointer; + display: inline-block; + font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; + font-size: 12px !important; + font-weight: 800; + letter-spacing: 1px; + line-height: 1.5 !important; + margin-bottom: 0; + -moz-user-select: none; + padding: 5px 10px !important; + text-align: center; + text-decoration: none; + text-transform: uppercase; + vertical-align: middle; + white-space: nowrap; + +} + +.clean-blog_freeTag a:hover, .clean-blog_freeTag a:focus{ + background-color: @brand-primary; + border: 1px solid @brand-primary; + color: white; +} + +.cleanblog_freeTag_related { + color: @gray; + display: block; + font-size: 80%; + margin: 30px 0 0; + text-align: left; +} + +.archive-year { + margin-bottom: 1em; +} + +.archive-year .btn {margin-bottom: 4px;} + +.archive-summary h2 {margin-bottom: 40px} + +.archive-button { + width: 100%; +} + +.btn-default.disabled {background-color:#dddddd;} + +.btn-group .dropdown-menu li i{ + display: inline-block; + left: -3px; + margin-right: 8px; + position: relative; + text-align: center; + width: 1.25em; +} + +.btn-group .dropdown-menu > li > a:focus, +.btn-group .dropdown-menu > li > a:hover { + background-color: @brand-primary; + color: #ffffff; + text-decoration: none; +} + +.fa-comment-o { + vertical-align: 10%!important; +} + +@media only screen and (max-width:767px){ + .dropdown-menu {min-width:140px;} + .dropdown-menu > li > a {padding: 3px 14px} +} + +.contactform_preface { + margin-bottom: 2em; +} + +.modal-dialog {width: 450px} + +#serendipityQuickSearchTermField {width: 100%;} + +.searchterm { + font-style: italic; +} + +table { + margin-bottom: 20px; + max-width: 100%; + width: 100%; +} +table > tbody > tr > td, +table > tbody > tr > th, +table > tfoot > tr > td, +table > tfoot > tr > th, +table > thead > tr > td, +table > thead > tr > th { + border-top: 1px solid #ddd; + line-height: 1.42857; + padding: 8px; + vertical-align: top; +} + +table > thead > tr > th { + border-bottom: 2px solid #ddd; + vertical-align: bottom; +} +table > caption + thead > tr:first-child > td, +table > caption + thead > tr:first-child > th, +table > colgroup + thead > tr:first-child > td, +table > colgroup + thead > tr:first-child > th, +table > thead:first-child > tr:first-child > td, +table > thead:first-child > tr:first-child > th { + border-top: 0 none; +} + +table > tbody + tbody { + border-top: 2px solid #ddd; +} + +table table { + background-color: #fff; +} \ No newline at end of file diff --git a/templates/clean-blog/less/variables.less b/templates/clean-blog/less/variables.less new file mode 100644 index 00000000..1c204a07 --- /dev/null +++ b/templates/clean-blog/less/variables.less @@ -0,0 +1,8 @@ +// Variables + +@brand-primary: #0085A1; +@gray-dark: lighten(black, 25%); +@gray: lighten(black, 50%); +@white-faded: fade(white, 80%); +@gray-light: #eee; +@header-default: #433a31; \ No newline at end of file diff --git a/templates/clean-blog/plugin_contactform.tpl b/templates/clean-blog/plugin_contactform.tpl new file mode 100644 index 00000000..1bfff670 --- /dev/null +++ b/templates/clean-blog/plugin_contactform.tpl @@ -0,0 +1,53 @@ + +
+

{if $plugin_contactform_articleformat}{$plugin_contactform_name}{else}{$plugin_contactform_pagetitle}{/if}

+
+
+
+ {if $is_contactform_error} +

{$plugin_contactform_error}

+ {foreach from=$comments_messagestack item="message"} +

{$message}

+ {/foreach} + {/if} + {if (empty($is_contactform_sent)) && $plugin_contactform_preface} +
{$plugin_contactform_preface}
+ {/if} + {if $is_contactform_sent} +

{$plugin_contactform_sent}

+ {else} +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ {serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry} +
+
+ +
+
+
+
+
+{/if} + \ No newline at end of file diff --git a/templates/clean-blog/plugin_staticpage.tpl b/templates/clean-blog/plugin_staticpage.tpl new file mode 100644 index 00000000..80d8b4ce --- /dev/null +++ b/templates/clean-blog/plugin_staticpage.tpl @@ -0,0 +1,67 @@ +
+
+

{if $staticpage_articleformat}{if $staticpage_articleformattitle}{$staticpage_articleformattitle|@escape}{else}{$staticpage_pagetitle}{/if}{else}{if $staticpage_headline}{$staticpage_headline|@escape}{else}{$staticpage_pagetitle}{/if}{/if}

+ {if $staticpage_show_breadcrumb} +
+ {$template_option.home_link_text} + {foreach name="crumbs" from=$staticpage_navigation.crumbs item="crumb"} +  /  {if !$smarty.foreach.crumbs.last}{/if}{$crumb.name|@escape} + {/foreach} +
+ {/if} +
+ {if $staticpage_pass AND $staticpage_form_pass != $staticpage_pass} +
+
+ {$CONST.STATICPAGE_PASSWORD_NOTICE} + + +
+
+ {else} +
+ {if $staticpage_precontent} +
+ {$staticpage_precontent} +
+ {/if} + {if $staticpage_show_childpages && is_array($staticpage_childpages)} + + {/if} + {if $staticpage_content} +
+ {$staticpage_content} +
+ {/if} +
+ {/if} + {if $staticpage_navigation AND $staticpage_shownavi} + + {/if} + {if $staticpage_navigation AND $staticpage_shownavi} + + {/if} + {if $staticpage_custom.show_author =='true' || $staticpage_custom.show_date =='true' || ($staticpage_adminlink && $staticpage_adminlink.page_user)} +
+ +
+ {/if} +
\ No newline at end of file diff --git a/templates/clean-blog/plugin_staticpage_aboutpage.tpl b/templates/clean-blog/plugin_staticpage_aboutpage.tpl new file mode 100644 index 00000000..04855786 --- /dev/null +++ b/templates/clean-blog/plugin_staticpage_aboutpage.tpl @@ -0,0 +1,53 @@ +
+
+

{if $staticpage_articleformat}{if $staticpage_articleformattitle}{$staticpage_articleformattitle|@escape}{else}{$staticpage_pagetitle}{/if}{else}{if $staticpage_headline}{$staticpage_headline|@escape}{else}{$staticpage_pagetitle}{/if}{/if}

+ {if $staticpage_show_breadcrumb} +
+ {$template_option.home_link_text} + {foreach name="crumbs" from=$staticpage_navigation.crumbs item="crumb"} + » {if !$smarty.foreach.crumbs.last}{/if}{$crumb.name|@escape} + {/foreach} +
+ {/if} +
+ {if $staticpage_pass AND $staticpage_form_pass != $staticpage_pass} +
+
+ {$CONST.STATICPAGE_PASSWORD_NOTICE} + + +
+
+ {else} +
+ {if $staticpage_show_childpages && is_array($staticpage_childpages)} + + {/if} + {if $staticpage_precontent} +
+ {$staticpage_precontent} +
+ {/if} + {/if} + {if $staticpage_navigation AND $staticpage_shownavi} + + {/if} + {if $staticpage_custom.show_author =='true' || $staticpage_custom.show_date =='true' || ($staticpage_adminlink && $staticpage_adminlink.page_user)} +
+ +
+ {/if} +
\ No newline at end of file diff --git a/templates/clean-blog/plugin_staticpage_related_category.tpl b/templates/clean-blog/plugin_staticpage_related_category.tpl new file mode 100644 index 00000000..0b3148e0 --- /dev/null +++ b/templates/clean-blog/plugin_staticpage_related_category.tpl @@ -0,0 +1,62 @@ +
+
+

{if $staticpage_articleformat}{if $staticpage_articleformattitle}{$staticpage_articleformattitle|@escape}{else}{$staticpage_pagetitle}{/if}{else}{if $staticpage_headline}{$staticpage_headline|@escape}{else}{$staticpage_pagetitle}{/if}{/if}

+ {if $staticpage_show_breadcrumb} +
+ {$template_option.home_link_text} + {foreach name="crumbs" from=$staticpage_navigation.crumbs item="crumb"} + » {if !$smarty.foreach.crumbs.last}{/if}{$crumb.name|@escape} + {/foreach} +
+ {/if} +
+ {if $staticpage_pass AND $staticpage_form_pass != $staticpage_pass} +
+
+ {$CONST.STATICPAGE_PASSWORD_NOTICE} + + +
+
+ {else} +
+ {if $staticpage_precontent} +
+ {$staticpage_precontent} +
+ {/if} + {if $staticpage_show_childpages && is_array($staticpage_childpages)} + + {/if} + {if $staticpage_content} +
+ {$staticpage_content} +
+ {/if} +
+ {serendipity_fetchPrintEntries category=$staticpage_related_category_id template="staticpage-entries-listing.tpl" limit=5 noSticky="true" noCache="false" fetchDrafts=false full="false" use_footer="false"} +
+
+ {/if} + {if $staticpage_navigation AND $staticpage_shownavi} + + {/if} + {if $staticpage_custom.show_author =='true' || $staticpage_custom.show_date =='true' || ($staticpage_adminlink && $staticpage_adminlink.page_user)} +
+ +
+ {/if} +
\ No newline at end of file diff --git a/templates/clean-blog/plugin_staticpage_searchresults.tpl b/templates/clean-blog/plugin_staticpage_searchresults.tpl new file mode 100644 index 00000000..5cfed25c --- /dev/null +++ b/templates/clean-blog/plugin_staticpage_searchresults.tpl @@ -0,0 +1,8 @@ +{if $staticpage_results} + +{/if} \ No newline at end of file diff --git a/templates/clean-blog/preview.png b/templates/clean-blog/preview.png new file mode 100644 index 00000000..ca4c10ef Binary files /dev/null and b/templates/clean-blog/preview.png differ diff --git a/templates/clean-blog/preview_fullsize.jpg b/templates/clean-blog/preview_fullsize.jpg new file mode 100644 index 00000000..49f184d1 Binary files /dev/null and b/templates/clean-blog/preview_fullsize.jpg differ diff --git a/templates/clean-blog/preview_iframe.tpl b/templates/clean-blog/preview_iframe.tpl new file mode 100644 index 00000000..8c6f0ad6 --- /dev/null +++ b/templates/clean-blog/preview_iframe.tpl @@ -0,0 +1,67 @@ + + + + + + + + {$CONST.SERENDIPITY_ADMIN_SUITE} +{* BOOTSTRAP CORE CSS *} + +{* S9Y CSS *} +{if $head_link_stylesheet_frontend}{* >= s9y 2.0.2 *} + +{else} + +{/if} +{* CUSTOM FONTS *} + + + + + + {serendipity_hookPlugin hook="backend_header" hookAll="true"} + + + + + +
+
+
+ {if $mode == 'preview'} + {$preview} + {elseif $mode == 'save'} + {$updertHooks} + {if $res} +
{$CONST.ERROR}: {$res}
+ {else} + {if $lastSavedEntry} + + {/if} + {$CONST.ENTRY_SAVED} + {$CONST.VIEW} + {/if} + {/if} +
+
+
+ + + + diff --git a/templates/clean-blog/staticpage-entries-listing.tpl b/templates/clean-blog/staticpage-entries-listing.tpl new file mode 100644 index 00000000..904c705f --- /dev/null +++ b/templates/clean-blog/staticpage-entries-listing.tpl @@ -0,0 +1,17 @@ +{if $entries} +
+ {foreach from=$entries item="dategroup"} + {foreach from=$dategroup.entries item="entry"} + + + {/foreach} + {/foreach} +
+ {if $staticpage_related_category_id >0} + {$CONST.STATICPAGE_ARTICLE_OVERVIEW} »
+ {else} + {$CONST.STATICPAGE_ARTICLE_OVERVIEW} »
+ {/if} +{else} + +{/if} \ No newline at end of file diff --git a/templates/clean-blog/style.css b/templates/clean-blog/style.css new file mode 100644 index 00000000..2fee2272 --- /dev/null +++ b/templates/clean-blog/style.css @@ -0,0 +1,737 @@ +/* CSS crunched with Crunch - http://crunchapp.net/ */ +/*! + * Clean Blog v1.0.0 (http://startbootstrap.com) + * Copyright 2014 Start Bootstrap + * Licensed under Apache 2.0 (https://github.com/IronSummitMedia/startbootstrap/blob/gh-pages/LICENSE) + * Theme ported to Serendipity (http://s9y.org) by Don Chambers + * Font Awesome by Dave Gandy - http://fontawesome.io + */ +body { + font-family: 'Lora', 'Times New Roman', serif; + font-size: 20px; + color: #404040; +} +p { + line-height: 1.5; + margin: 0 0 30px; +} +p a { + text-decoration: underline; +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-weight: 800; +} +a { + color: #404040; +} +a:hover, +a:focus { + color: #0085a1; +} +a img:hover, +a img:focus { + cursor: zoom-in; +} +blockquote { + color: #808080; + font-style: italic; +} +hr.small { + max-width: 100px; + margin: 15px auto; + border-width: 4px; + border-color: white; +} +ol, +ul { + margin-bottom: 30px; +} +ol a, +ul a { + text-decoration: underline; +} +.navbar-custom { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 3; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; +} +.navbar-custom .navbar-brand { + font-weight: 800; +} +.navbar-custom .nav li a { + text-decoration: none; + text-transform: uppercase; + font-size: 12px; + font-weight: 800; + letter-spacing: 1px; +} +@media only screen and (min-width: 768px) { + .navbar-custom { + background: transparent; + border-bottom: 1px solid transparent; + } + .navbar-custom .navbar-brand { + color: white; + padding: 20px; + } + .navbar-custom .navbar-brand:hover, + .navbar-custom .navbar-brand:focus { + color: rgba(255, 255, 255, 0.8); + } + .navbar-custom .nav li a { + color: white; + padding: 20px; + } + .navbar-custom .nav li a:hover, + .navbar-custom .nav li a:focus { + color: rgba(255, 255, 255, 0.8); + } +} +@media only screen and (min-width: 1170px) { + .navbar-custom { + -webkit-transition: background-color 0.3s; + -moz-transition: background-color 0.3s; + transition: background-color 0.3s; + /* Force Hardware Acceleration in WebKit */ + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } + .navbar-custom.is-fixed { + /* when the user scrolls down, we hide the header right above the viewport */ + position: fixed; + top: -61px; + background-color: rgba(255, 255, 255, 0.9); + border-bottom: 1px solid #f2f2f2; + -webkit-transition: -webkit-transform 0.3s; + -moz-transition: -moz-transform 0.3s; + transition: transform 0.3s; + } + .navbar-custom.is-fixed .navbar-brand { + color: #404040; + } + .navbar-custom.is-fixed .navbar-brand:hover, + .navbar-custom.is-fixed .navbar-brand:focus { + color: #0085a1; + } + .navbar-custom.is-fixed .nav li a { + color: #404040; + } + .navbar-custom.is-fixed .nav li a:hover, + .navbar-custom.is-fixed .nav li a:focus { + color: #0085a1; + } + .navbar-custom.is-visible { + /* if the user changes the scrolling direction, we show the header */ + -webkit-transform: translate3d(0, 100%, 0); + -moz-transform: translate3d(0, 100%, 0); + -ms-transform: translate3d(0, 100%, 0); + -o-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +.intro-header { + background-color: #433a31 !important; + background: no-repeat center center; + background-attachment: scroll; + -webkit-background-size: cover; + -moz-background-size: cover; + background-size: cover; + -o-background-size: cover; + margin-bottom: 40px; +} +.intro-header .site-heading, +.intro-header .post-heading, +.intro-header .page-heading { + padding: 100px 0 50px; + color: white; +} +@media only screen and (min-width: 768px) { + .intro-header .site-heading, + .intro-header .post-heading, + .intro-header .page-heading { + padding: 150px 0; + } +} +.intro-header .site-heading, +.intro-header .page-heading { + text-align: center; +} +.intro-header .site-heading h1, +.intro-header .page-heading h1 { + margin-top: 0; + font-size: 50px; +} +.intro-header .site-heading .subheading, +.intro-header .page-heading .subheading { + font-size: 24px; + line-height: 1.1; + display: block; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-weight: 300; + margin: 10px 0 0; +} +@media only screen and (min-width: 768px) { + .intro-header .site-heading h1, + .intro-header .page-heading h1 { + font-size: 80px; + } +} +.intro-header .post-heading h1 { + font-size: 35px; +} +.intro-header .post-heading .subheading, +.intro-header .post-heading .meta { + line-height: 1.1; + display: block; +} +.intro-header .post-heading .subheading { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 24px; + margin: 10px 0 30px; + font-weight: 600; +} +.intro-header .post-heading .meta { + font-family: 'Lora', 'Times New Roman', serif; + font-style: italic; + font-weight: 300; + font-size: 20px; +} +.intro-header .post-heading .meta a { + color: white; +} +@media only screen and (min-width: 768px) { + .intro-header .post-heading h1 { + font-size: 55px; + } + .intro-header .post-heading .subheading { + font-size: 30px; + } +} +.post-preview > a { + color: #404040; +} +.post-preview > a:hover, +.post-preview > a:focus { + text-decoration: none; + color: #0085a1; +} +.post-preview > a > .post-title { + font-size: 30px; + margin-top: 30px; + margin-bottom: 10px; +} +.post-preview > a > .post-subtitle { + margin: 0; + font-weight: 300; + margin-bottom: 10px; +} +.post-preview > .post-meta { + color: #808080; + font-size: 18px; + font-style: italic; + margin-top: 0; +} +.post-preview > .post-meta > a { + text-decoration: none; + color: #404040; +} +.post-preview > .post-meta > a:hover, +.post-preview > .post-meta > a:focus { + color: #0085a1; + text-decoration: underline; +} +@media only screen and (min-width: 768px) { + .post-preview > a > .post-title { + font-size: 36px; + } +} +.section-heading { + font-size: 36px; + margin-top: 60px; + font-weight: 700; +} +.caption { + text-align: center; + font-size: 14px; + padding: 10px; + font-style: italic; + margin: 0; + display: block; + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; +} +footer { + padding: 50px 0 65px; +} +footer .list-inline { + margin: 0; + padding: 0; +} +footer .copyright { + font-size: 14px; + text-align: center; + margin: 20px 0 0 0; +} +.floating-label-form-group { + font-size: 14px; + position: relative; + margin-bottom: 0; + padding-bottom: 0.5em; + border-bottom: 1px solid #eeeeee; +} +.floating-label-form-group input, +.floating-label-form-group textarea { + z-index: 1; + position: relative; + padding-right: 0; + padding-left: 0; + border: none; + border-radius: 0; + font-size: 1.5em; + background: none; + box-shadow: none !important; + resize: none; +} +.floating-label-form-group label { + display: block; + z-index: 0; + position: relative; + top: 2em; + margin: 0; + font-size: 0.85em; + line-height: 1.764705882em; + vertical-align: middle; + vertical-align: baseline; + opacity: 0; + -webkit-transition: top 0.3s ease,opacity 0.3s ease; + -moz-transition: top 0.3s ease,opacity 0.3s ease; + -ms-transition: top 0.3s ease,opacity 0.3s ease; + transition: top 0.3s ease,opacity 0.3s ease; +} +.floating-label-form-group::not(:first-child) { + padding-left: 14px; + border-left: 1px solid #eeeeee; +} +.floating-label-form-group-with-value label { + top: 0; + opacity: 1; +} +.floating-label-form-group-with-focus label { + color: #0085a1; +} +form .row:first-child .floating-label-form-group { + border-top: 1px solid #eeeeee; +} +.btn { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + text-decoration: none; + text-transform: uppercase; + font-size: 14px; + font-style: normal; + font-weight: 800; + letter-spacing: 1px; + border-radius: 0; + padding: 15px 25px; +} +.btn-lg { + font-size: 16px; + padding: 25px 35px; +} +.btn-default.active:active, +.btn-default.focus:active, +.btn-default:active:active, +.btn-default:focus:active, +.btn-default:hover:active, +.open > .dropdown-toggle.btn-default .open > .dropdown-toggle.btn-default:active, +.btn-default:active, +.btn-default.active:focus, +.btn-default.focus:focus, +.btn-default:active:focus, +.btn-default:focus:focus, +.btn-default:hover:focus, +.open > .dropdown-toggle.btn-default .open > .dropdown-toggle.btn-default:focus, +.btn-default:focus, +.btn-default.active:hover, +.btn-default.focus:hover, +.btn-default:active:hover, +.btn-default:focus:hover, +.btn-default:hover:hover, +.open > .dropdown-toggle.btn-default .open > .dropdown-toggle.btn-default:hover, +.btn-default:hover { + background-color: #0085a1; + border: 1px solid #0085a1; + color: white; +} +.pager { + margin: 20px 0 0; +} +.pager li > a, +.pager li > span { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + text-transform: uppercase; + font-size: 14px; + font-weight: 800; + letter-spacing: 1px; + padding: 15px 25px; + background-color: white; + border-radius: 0; +} +.pager li > a:hover, +.pager li > a:focus { + color: white; + background-color: #0085a1; + border: 1px solid #0085a1; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #808080; + background-color: #404040; + cursor: not-allowed; +} +::-moz-selection { + color: white; + text-shadow: none; + background: #0085a1; +} +::selection { + color: white; + text-shadow: none; + background: #0085a1; +} +img::selection { + color: white; + background: transparent; +} +img::-moz-selection { + color: white; + background: transparent; +} +body { + webkit-tap-highlight-color: #0085a1; +} +/** Serendipity specific styles **/ +blockquote { + padding: 0 20px; +} +.form-control { + font-size: 18px; +} +ul.comment-list { + list-style: none; + margin: 0; + padding: 0; +} +.comment-list .comment-children { + list-style: none; + margin-left: 58px; + padding: 0; +} +.comment_any { + margin-bottom: 2.5em; +} +.comment-list-item, +.comment-list-item-body { + overflow: hidden; +} +.comment-author-heading { + font-size: 0.9em; + margin: 0 0 5px; + text-transform: uppercase; +} +img.comment_avatar { + clear: left; + float: left; + height: 48px; + margin-right: 10px; + width: 48px; +} +.avatar_right { + margin-left: 0; +} +.serendipity_comments .comment_ability { + margin: 15px 0; +} +.comment-date { + color: #808080; + font-weight: normal; +} +.comment-meta { + font-size: 0.8em; + margin: 0.5em 0 0 0; +} +.serendipity_section_commentform { + margin-top: 2em; +} +img { + display: block; + height: auto; + max-width: 100%; +} +#serendipity_replyTo { + max-width: 100%; +} +/* If the basic styles for aligning images are changed, the changes + must be ported to htmlarea/ckeditor/wysiwyg-style.css as well. */ +.serendipity_image_left, +.serendipity_image_right, +.serendipity_image_center, +.serendipity_imageComment_center, +.serendipity_imageComment_left, +.serendipity_imageComment_right { + background: transparent; + border: 0 none; + padding: 0!important; + max-width: 100%; +} +.serendipity_image_left, +.serendipity_imageComment_left { + display: block; + float: left; + margin: 0 1em 1em 0; +} +.serendipity_image_right, +.serendipity_imageComment_right { + display: block; + float: right; + margin: 0 0 1em 1em; +} +.serendipity_image_center { + display: block; + margin: 0 auto 1em auto; +} +.serendipity_imageComment_center { + display: block; + margin: 0 auto 1em auto; +} +.serendipity_imageComment_img img { + border: none!important; + margin: 0!important; +} +.serendipity_imageComment_txt { + border: 0; + color: #808080; + display: block; + font-size: .8125em; + font-style: italic; + line-height: 1.5em; + margin: 0; + padding: .5em; + text-align: center; +} +.page-footer { + padding: 30px 0; +} +.entry-footer { + padding: 20px 0; +} +.btn-group-sm > .btn, +.btn-sm { + border-radius: 3px!important; + font-size: 12px!important; + line-height: 1.5!important; + padding: 5px 10px!important; +} +.pager li > a, +.pager li > span { + border-color: #ccc; +} +.category-list { + line-height: 1.6em; +} +.category-children { + list-style: none; + padding-left: 24px; +} +.serendipity_freeTag { + margin-left: auto; + margin-right: 0px; + text-align: left; + font-size: 80%; + display: block; + margin-top: 1em; + margin-bottom: 0px; + color: #808080; +} +.serendipity_freeTag_related { + color: #808080; + display: block; + font-size: 80%; + margin: 10px 0 0 0; + text-align: left; +} +.serendipity_freeTag a { + font-size: inherit; + text-decoration: none; +} +.serendipity_freeTag a:hover { + text-decoration: underline; +} +ul.staticpage_navigation { + display: block; + list-style-type: none; + margin: 10px 0; + padding: 0; +} +ul.staticpage_navigation li { + display: inline; + padding: 0 5px 0 0; +} +.staticpage_breadcrumbs { + color: #808080; + margin: 20px 0; +} +.staticpage_childpages { + margin: 1em 0; +} +.staticpage-footer { + padding: 30px 0 0 0; +} +.serendipity_commentDirection { + margin: 1em 0; +} +.staticpage_related_category_entry_list { + margin-top: 1em; +} +.clean-blog_freeTag { + line-height: 2em; + margin: 0.5em 0; +} +.clean-blog_freeTag a { + /* mimic bootstrap button */ + background-color: #fff; + background-image: none; + border: 1px solid transparent; + border-color: #ccc; + border-radius: 3px !important; + color: #333; + cursor: pointer; + display: inline-block; + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px !important; + font-weight: 800; + letter-spacing: 1px; + line-height: 1.5 !important; + margin-bottom: 0; + -moz-user-select: none; + padding: 5px 10px !important; + text-align: center; + text-decoration: none; + text-transform: uppercase; + vertical-align: middle; + white-space: nowrap; +} +.clean-blog_freeTag a:hover, +.clean-blog_freeTag a:focus { + background-color: #0085a1; + border: 1px solid #0085a1; + color: white; +} +.cleanblog_freeTag_related { + color: #808080; + display: block; + font-size: 80%; + margin: 30px 0 0; + text-align: left; +} +.archive-year { + margin-bottom: 1em; +} +.archive-year .btn { + margin-bottom: 4px; +} +.archive-summary h2 { + margin-bottom: 40px; +} +.archive-button { + width: 100%; +} +.btn-default.disabled { + background-color: #dddddd; +} +.btn-group .dropdown-menu li i { + display: inline-block; + left: -3px; + margin-right: 8px; + position: relative; + text-align: center; + width: 1.25em; +} +.btn-group .dropdown-menu > li > a:focus, +.btn-group .dropdown-menu > li > a:hover { + background-color: #0085a1; + color: #ffffff; + text-decoration: none; +} +.fa-comment-o { + vertical-align: 10%!important; +} +@media only screen and (max-width: 767px) { + .dropdown-menu { + min-width: 140px; + } + .dropdown-menu > li > a { + padding: 3px 14px; + } +} +.contactform_preface { + margin-bottom: 2em; +} +.modal-dialog { + width: 450px; +} +#serendipityQuickSearchTermField { + width: 100%; +} +.searchterm { + font-style: italic; +} +table { + margin-bottom: 20px; + max-width: 100%; + width: 100%; +} +table > tbody > tr > td, +table > tbody > tr > th, +table > tfoot > tr > td, +table > tfoot > tr > th, +table > thead > tr > td, +table > thead > tr > th { + border-top: 1px solid #ddd; + line-height: 1.42857; + padding: 8px; + vertical-align: top; +} +table > thead > tr > th { + border-bottom: 2px solid #ddd; + vertical-align: bottom; +} +table > caption + thead > tr:first-child > td, +table > caption + thead > tr:first-child > th, +table > colgroup + thead > tr:first-child > td, +table > colgroup + thead > tr:first-child > th, +table > thead:first-child > tr:first-child > td, +table > thead:first-child > tr:first-child > th { + border-top: 0 none; +} +table > tbody + tbody { + border-top: 2px solid #ddd; +} +table table { + background-color: #fff; +} diff --git a/templates/clean-blog/trackbacks.tpl b/templates/clean-blog/trackbacks.tpl new file mode 100644 index 00000000..2614b74b --- /dev/null +++ b/templates/clean-blog/trackbacks.tpl @@ -0,0 +1,27 @@ + \ No newline at end of file