Add new frontend theme 2k15

2k15 is basically 2k11, but up to date. Changes include:

- mobile-first CSS
- toggle-style smallscreen nav instead of select menu
- different choice of webfonts
- updated JS assets
- removed some JS cruft (plugins that are no longer necessary)
- reduced visual style (no, it's NOT 'flat design'!)
- simplified layout (number of columns depends on resolution)
- reduced theme options

Note: 2k15 is NOT compatible with the 2k11 user.css generator.
Currently, there is no 2k15 user.css generator. I don't intend
on building one at the moment.

Also note that I do NOT suggest 2k15 should replace 2k11 as the
default or standard theme in s9y.
This commit is contained in:
Matthias Mees 2015-02-10 12:18:51 +01:00
parent 753b6a5863
commit 2d90abe4d3
37 changed files with 2570 additions and 0 deletions

View File

@ -0,0 +1,15 @@
<?php
// Theme-Optionen
@define('TWOK15_INSTR', '<b>Hinweis:</b> 2k15 mag <em>aussehen</em>, als sei es im Prinzip wie 2k11 - unter der Haube ist es (technisch gesehen) ein völlig anderes Theme. Es ist daher <strong>nicht</strong> kompatibel mit dem user.css-Generator für 2k11.');
@define('TWOK15_HEADER_IMG','Bannergrafik im Kopfbereich einbinden? (1296 Pixel breit; Feld leeren um Ausgabe zu unterdrücken)');
@define('TWOK15_USE_CORENAV', 'Globale Navigation einbinden?');
@define('TWOK15_WEBFONTS', 'Einen von Google gehosteten Webfont nutzen?');
@define('TWOK15_NOWEBFONT', 'Keinen Webfont einbinden');
@define('TWOK15_USERSTYLES', 'user.css einbinden? (Muss selbst im Themeverzeichnis angelegt werden!)');
@define('TWOK15_REFCOMMENTS', 'Kommentaren (falls vorhanden) einen Link zum Kommentar, auf den geantwortet wurde, hinzufügen?');
// Sprachkonstanten
@define('TWOK15_PLINK_TEXT', 'Link');
@define('TWOK15_PLINK_TITLE', 'Permanenter Link zu diesem Kommentar');
@define('TWOK15_PLACE_SEARCH', 'Suchbegriff(e)');
@define('TWOK15_SEND_MAIL', 'Senden');
@define('TWOK15_REPLYORIGIN', 'Antwort auf');

View File

@ -0,0 +1,15 @@
<?php
// Theme options
@define('TWOK15_INSTR', '<b>Hinweis:</b> While 2k15 may <em>look</em> as if it were basically the same as 2k11, it is a completely different theme from a technical point of view. Because of that, it is <strong>not</strong> compatible with the user.css generator for 2k11.');
@define('TWOK15_HEADER_IMG','Use a banner image in the header? (1296 pixels wide; leave box empty to not use a banner)');
@define('TWOK15_USE_CORENAV', 'Use global navigation?');
@define('TWOK15_WEBFONTS', 'Use a webfont, hosted by Google?');
@define('TWOK15_NOWEBFONT', 'Include no webfont');
@define('TWOK15_USERSTYLES', 'Include user.css? (You need to create that file in your theme directory!)');
@define('TWOK15_REFCOMMENTS', 'Add link to related comment to comments (if they are replies to another comment)?');
// Lang constants
@define('TWOK15_PLINK_TEXT', 'Link');
@define('TWOK15_PLINK_TITLE', 'Permanent link for this comment');
@define('TWOK15_PLACE_SEARCH', 'Search term(s)');
@define('TWOK15_SEND_MAIL', 'Send');
@define('TWOK15_REPLYORIGIN', 'Origin');

View File

@ -0,0 +1,61 @@
<div id="serendipityCommentFormC" class="serendipityCommentForm">
<div id="serendipity_replyform_0"></div>
<a id="serendipity_CommentForm"></a>
{if $is_moderate_comments}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.COMMENTS_WILL_BE_MODERATED}</p>
{/if}
<form id="serendipity_comment" action="{$commentform_action}#feedback" method="post">
<input type="hidden" name="serendipity[entry_id]" value="{$commentform_id}">
<div class="form_field">
<label for="serendipity_commentform_name">{$CONST.NAME}{if $required_fields.name}*{/if}</label>
<input id="serendipity_commentform_name" type="text" name="serendipity[name]" value="{$commentform_name}"{if $required_fields.name} required{/if}>
</div>
<div class="form_field">
<label for="serendipity_commentform_email">{$CONST.EMAIL}{if $required_fields.email}*{/if}</label>
<input id="serendipity_commentform_email" type="email" name="serendipity[email]" value="{$commentform_email}"{if $required_fields.email} required{/if}>
</div>
{if $spice.inputtwitter}
<div id="serendipity_commentspice_twitter" class="form_field">
<label for="serendipity_commentform_twitter">{$spice.inputtwitterlabel}</label>
<input id="serendipity_commentform_twitter" name="serendipity[twitter]" type="text" value="{$spice.inputtwittervalue}">
</div>
{/if}
<div class="form_field">
<label for="serendipity_commentform_url">{$CONST.HOMEPAGE}{if $required_fields.url}*{/if}</label>
<input id="serendipity_commentform_url" type="url" name="serendipity[url]" value="{$commentform_url}" placeholder="http://example.org" {if $required_fields.url} required{/if}>
</div>
{if $spice.inputarticle}
<div id="serendipity_commentspice_rss" class="form_select spicehidden">
<label for="serendipity_commentform_rss">{$spice.inputarticlelabel}</label>
<select id="serendipity_commentform_rss" class="commentspice_rss_input" name="serendipity[promorss]"></select>
</div>
{/if}
<div class="form_select">
<label for="serendipity_replyTo">{$CONST.IN_REPLY_TO}</label>
{$commentform_replyTo}
</div>
<div class="form_tarea">
<label for="serendipity_commentform_comment">{$CONST.COMMENT}{if $required_fields.comment}*{/if}</label>
<textarea id="serendipity_commentform_comment" rows="10" name="serendipity[comment]"{if $required_fields.comment} required{/if}>{$commentform_data}</textarea>
</div>
{serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry}
{if $is_commentform_showToolbar}
<div class="form_check">
<input id="checkbox_remember" type="checkbox" name="serendipity[remember]" {$commentform_remember}> <label for="checkbox_remember">{$CONST.REMEMBER_INFO}</label>
</div>
{if $is_allowSubscriptions}
<div class="form_check">
<input id="checkbox_subscribe" type="checkbox" name="serendipity[subscribe]" {$commentform_subscribe}> <label for="checkbox_subscribe">{$CONST.SUBSCRIBE_TO_THIS_ENTRY}</label>
</div>
{/if}
{/if}
<div class="form_buttons">
<input id="serendipity_submit" type="submit" name="serendipity[submit]" value="{$CONST.SUBMIT_COMMENT}">
<input id="serendipity_preview" type="submit" name="serendipity[preview]" value="{$CONST.PREVIEW}">
</div>
</form>
</div>

View File

@ -0,0 +1,45 @@
{foreach from=$comments item=comment name="comments"}
<article id="c{$comment.id}" class="comment {cycle values="odd,even"}{if $comment.depth > 8} commentlevel-9{else} commentlevel-{$comment.depth}{/if}">
<header class="clearfix">
<h4>{if $comment.url}<a href="{$comment.url}">{/if}{$comment.author|@default:$CONST.ANONYMOUS}{if $comment.url}</a>{/if}{if $comment.spice_twitter_name and not $comment.spice_twitter_followme} (<a href="{$comment.spice_twitter_url}"{if $comment.spice_twitter_nofollow} rel="nofollow"{/if}>@{$comment.spice_twitter_name}</a>){/if} {$CONST.ON} <time datetime="{$comment.timestamp|@serendipity_html5time}">{$comment.timestamp|@formatTime:$template_option.date_format}</time>:</h4>
{if $comment.spice_twitter_name && $comment.spice_twitter_followme}
<div class="twitter_follow">
{$comment.spice_twitter_followme}
</div>
{/if}
</header>
<div class="clearfix">
{if $comment.avatar}{$comment.avatar}{/if}
{if $comment.body == 'COMMENT_DELETED'}
<p class="msg-warning"><span class="icon-attention-circled" aria-hidden="true"></span> {$CONST.COMMENT_IS_DELETED}</p>
{else}
{$comment.body}
{/if}
</div>
<footer>
{if $comment.spice_article_name}
<p>{$comment.spice_article_prefix}: <a{if $comment.spice_article_nofollow} rel="nofollow"{/if} href="{$comment.spice_article_url}">{$comment.spice_article_name}</a></p>
{/if}
<ul class="meta">
<li><time>{$comment.timestamp|@formatTime:'%H:%M'}</time></li>
<li><a class="comment_source_trace" href="#c{$comment.id}" title="{$CONST.TWOK15_PLINK_TITLE}">{$CONST.TWOK15_PLINK_TEXT}</a></li>
{if $entry.is_entry_owner}
<li><a class="comment_source_ownerlink" href="{$comment.link_delete}" title="{$CONST.COMMENT_DELETE_CONFIRM|@sprintf:$comment.id:$comment.author}">{$CONST.DELETE}</a></li>
{/if}
{if $template_option.refcomments == true}
{if $comment.parent_id != '0'}
<li><a class="reply_origin" href="#c{$comment.parent_id}" title="{$CONST.TWOK15_REPLYORIGIN}: {$CONST.COMMENT} #c{$comment.parent_id}">{$CONST.TWOK15_REPLYORIGIN}</a></li>
{/if}
{/if}
{if $entry.allow_comments AND $comment.body != 'COMMENT_DELETED'}
<li><a id="serendipity_reply_{$comment.id}" class="comment_reply" href="#serendipity_CommentForm">{$CONST.REPLY}</a>
<div id="serendipity_replyform_{$comment.id}" class="visuallyhidden"></div></li>
{/if}
</ul>
</footer>
</article>
{foreachelse}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.NO_COMMENTS}</p>
{/foreach}

View File

@ -0,0 +1,18 @@
{foreach from=$comments_by_authors item="entry_comments"}
<article class="post">
<h2 class="post-title"><a href="{$entry_comments.link}">{$entry_comments.title|default:$entry_comments.link}</a></h2>
<div class="comments_for_entry">{$entry_comments.tpl_comments}</div>
</article>
{/foreach}
{if $footer_info or $footer_prev_page or $footer_next_page}
<nav class="pagination clearfix">
{if $footer_info}<h3>{$footer_info}</h3>{/if}
{if $footer_prev_page||$footer_next_page}
<ul>
<li class="prev-page">{if $footer_prev_page}<a href="{$footer_prev_page}"><span class="icon-angle-circled-left" aria-hidden="true"></span><span class="fallback-text">{$CONST.PREVIOUS_PAGE}</span></a>{else}<span class="no-page"><span class="icon-angle-circled-left" aria-hidden="true"></span><span class="fallback-text">{$CONST.NO_ENTRIES_TO_PRINT}</span></span>{/if}</li>
<li class="next-page">{if $footer_next_page}<a href="{$footer_next_page}"><span class="icon-angle-circled-right" aria-hidden="true"></span><span class="fallback-text">{$CONST.NEXT_PAGE}</span></a>{else}<span class="no-page"><span class="icon-angle-circled-right" aria-hidden="true"></span><span class="fallback-text">{$CONST.NO_ENTRIES_TO_PRINT}</span></span>{/if}</li>
</ul>
{/if}
</nav>
{/if}
{serendipity_hookPlugin hook="comments_by_author_footer" hookAll="true"}

View File

@ -0,0 +1,112 @@
<?php
if (IN_serendipity !== true) { die ("Don't hack!"); }
@serendipity_plugin_api::load_language(dirname(__FILE__));
$serendipity['smarty']->assign(array('currpage' => "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'],
'currpage2' => $_SERVER['REQUEST_URI']));
if (!function_exists('serendipity_smarty_html5time')) {
function serendipity_smarty_html5time($timestamp) {
return date("c", $timestamp);
}
if( defined('Smarty::SMARTY_VERSION') ) {
$serendipity['smarty']->registerPlugin('modifier', 'serendipity_html5time', 'serendipity_smarty_html5time');
} else {
// old Smarty 2 syntax
$serendipity['smarty']->register_modifier('serendipity_html5time', 'serendipity_smarty_html5time');
}
}
if (class_exists('serendipity_event_spamblock')) {
$required_fieldlist = serendipity_db_query("SELECT value FROM {$serendipity['dbPrefix']}config WHERE name LIKE '%spamblock%required_fields'", true, 'assoc');
} elseif (class_exists('serendipity_event_commentspice')) {
$required_fieldlist = serendipity_db_query("SELECT value FROM {$serendipity['dbPrefix']}config WHERE name LIKE '%commentspice%required_fields'", true, 'assoc');
}
if (is_array($required_fieldlist)) {
$required_fields = explode(',', $required_fieldlist['value']);
$smarty_required_fields = array();
foreach($required_fields AS $required_field) {
$required_field = trim($required_field);
if (empty($required_field)) continue;
$smarty_required_fields[$required_field] = $required_field;
}
$serendipity['smarty']->assign('required_fields', $smarty_required_fields);
}
$template_config = array(
array(
'var' => 'info2k15',
'name' => 'info2k15',
'type' => 'custom',
'custom' => TWOK15_INSTR,
),
array(
'var' => 'date_format',
'name' => GENERAL_PLUGIN_DATEFORMAT . " (http://php.net/strftime)",
'type' => 'select',
'default' => DATE_FORMAT_ENTRY,
'select_values' => array(DATE_FORMAT_ENTRY => DATE_FORMAT_ENTRY,
'%A, %e. %B %Y' => '%A, %e. %B %Y',
'%a, %e. %B %Y' => '%a, %e. %B %Y',
'%e. %B %Y' => '%e. %B %Y',
'%d.%m.%y' => '%d.%m.%y',
'%d.%m.%Y' => '%d.%m.%Y',
'%A, %m/%d/%Y' => '%A, %m/%d/%Y',
'%a, %m/%d/%y' => '%a, %m/%d/%y',
'%m/%d/%y' => '%m/%d/%y',
'%m/%d/%Y' => '%m/%d/%Y',
'%Y-%m-%d' => '%Y-%m-%d')
),
array(
'var' => 'header_img',
'name' => TWOK15_HEADER_IMG,
'type' => 'media',
'default' => serendipity_getTemplateFile('header.jpg', 'serendipityHTTPPath', true)
),
array(
'var' => 'webfonts',
'name' => TWOK15_WEBFONTS,
'type' => 'select',
'default' => 'none',
'select_values' => array('none' => TWOK15_NOWEBFONT,
'osans' => 'Open Sans',
'ssans' => 'Source Sans Pro',
'rsans' => 'Roboto',
'lsans' => 'Lato',
'mserif' => 'Merriweather',
'dserif' => 'Droid Serif')
),
array(
'var' => 'userstyles',
'name' => TWOK15_USERSTYLES,
'type' => 'boolean',
'default' => false
),
array(
'var' => 'refcomments',
'name' => TWOK15_REFCOMMENTS,
'type' => 'boolean',
'default' => false
),
array(
'var' => 'use_corenav',
'name' => TWOK15_USE_CORENAV,
'type' => 'boolean',
'default' => true
)
);
$template_config_groups = NULL;
$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);
if ($_SESSION['serendipityUseTemplate']) {
$template_loaded_config['use_corenav'] = false;
}

View File

@ -0,0 +1,7 @@
{if $searchresult_tooShort or $searchresult_error or $searchresult_noEntries or $searchresult_results}
<p class="msg-notice search-msg"><span class="icon-info-circled" aria-hidden="true"></span> <b>{$CONST.QUICKSEARCH}:</b> {$content_message}</p>
{elseif $content_message}
<p class="msg-notice content-msg"><span class="icon-info-circled" aria-hidden="true"></span> {$content_message}</p>
{/if}
{$ENTRIES}
{$ARCHIVES}

127
templates/2k15/entries.tpl Normal file
View File

@ -0,0 +1,127 @@
{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}
<article class="post{if $dategroup.is_sticky} sticky{/if} clearfix">
<header>
<h2 class="post-title"><a href="{$entry.link}">{$entry.title}</a></h2>
<span class="post-info">{$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {$CONST.ON} <time datetime="{$entry.timestamp|@serendipity_html5time}">{$entry.timestamp|@formatTime:$template_option.date_format}</time></span>
</header>
<div class="clearfix">
{$entry.body}
</div>
{if $entry.has_extended and not $is_single_entry and not $entry.is_extended}
<a class="read-more" href="{$entry.link}#extended">{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title}</a>
{/if}
{if $entry.is_extended}
<div id="extended" class="clearfix">
{$entry.extended}
</div>
{/if}
<footer class="post-info">
<ul class="meta">
{if $entry.categories}
<li><span class="info-label">{$CONST.CATEGORIES}: </span>{foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}</li>
{/if}
{if $entry.has_comments}
<li><a href="{$entry.link}#comments" title="{$entry.comments} {$entry.label_comments}{if $entry.has_trackbacks}, {$entry.trackbacks} {$entry.label_trackbacks}{/if}">{$entry.comments} {$entry.label_comments}</a></li>
{/if}
</ul>
{$entry.add_footer}
{$entry.plugin_display_dat}
</footer>
<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
rdf:about="{$entry.link_rdf}"
trackback:ping="{$entry.link_trackback}"
dc:title="{$entry.title_rdf|@default:$entry.title}"
dc:identifier="{$entry.rdf_ident}" />
</rdf:RDF>
-->
{if $is_single_entry and not $use_popups and not $is_preview}
{if $CONST.DATA_UNSUBSCRIBED}
<p class="msg-success"><span class="icon-ok-circled" aria-hidden="true"></span> {$CONST.DATA_UNSUBSCRIBED|@sprintf:$CONST.UNSUBSCRIBE_OK}</p>
{/if}
{if $CONST.DATA_TRACKBACK_DELETED}
<p class="msg-success"><span class="icon-ok-circled" aria-hidden="true"></span> {$CONST.DATA_TRACKBACK_DELETED|@sprintf:$CONST.TRACKBACK_DELETED}</p>
{/if}
{if $CONST.DATA_TRACKBACK_APPROVED}
<p class="msg-success"><span class="icon-ok-circled" aria-hidden="true"></span> {$CONST.DATA_TRACKBACK_APPROVED|@sprintf:$CONST.TRACKBACK_APPROVED}</p>
{/if}
{if $CONST.DATA_COMMENT_DELETED}
<p class="msg-success"><span class="icon-ok-circled" aria-hidden="true"></span> {$CONST.DATA_COMMENT_DELETED|@sprintf:$CONST.COMMENT_DELETED}</p>
{/if}
{if $CONST.DATA_COMMENT_APPROVED}
<p class="msg-success"><span class="icon-ok-circled" aria-hidden="true"></span> {$CONST.DATA_COMMENT_APPROVED|@sprintf:$CONST.COMMENT_APPROVED}</p>
{/if}
<section id="trackbacks" class="clearfix">
<h3>{$CONST.TRACKBACKS}</h3>
<a class="trackback-url" rel="nofollow" href="{$entry.link_trackback}" title="{$CONST.TRACKBACK_SPECIFIC_ON_CLICK|@escape}">{$CONST.TRACKBACK_SPECIFIC}</a>
<p class="msg-notice trackback-hint"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.TRACKBACK_SPECIFIC_ON_CLICK|@escape:html}</p>
{serendipity_printTrackbacks entry=$entry.id}
</section>
{/if}
{if $is_single_entry and not $is_preview}
<section id="comments" class="clearfix">
<h3>{$CONST.COMMENTS}</h3>
<span class="comment-view">{$CONST.DISPLAY_COMMENTS_AS} {if $entry.viewmode eq $CONST.VIEWMODE_LINEAR}{$CONST.COMMENTS_VIEWMODE_LINEAR} | <a href="{$entry.link_viewmode_threaded}#comments" rel="nofollow">{$CONST.COMMENTS_VIEWMODE_THREADED}</a>{else}<a rel="nofollow" href="{$entry.link_viewmode_linear}#comments">{$CONST.COMMENTS_VIEWMODE_LINEAR}</a> | {$CONST.COMMENTS_VIEWMODE_THREADED}{/if}</span>
{serendipity_printComments entry=$entry.id mode=$entry.viewmode}
{if $entry.is_entry_owner}
{if $entry.allow_comments}
<a class="comments-enable" href="{$entry.link_deny_comments}">{$CONST.COMMENTS_DISABLE}</a>
{else}
<a class="comments-enable" href="{$entry.link_allow_comments}">{$CONST.COMMENTS_ENABLE}</a>
{/if}
{/if}
</section>
<a id="feedback"></a>
{foreach from=$comments_messagestack item="message"}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$message}</p>
{/foreach}
{if $is_comment_added}
<p class="msg-success"><span class="icon-ok-circled" aria-hidden="true"></span> {$CONST.COMMENT_ADDED}</p>
{elseif $is_comment_moderate}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.COMMENT_ADDED}: {$CONST.THIS_COMMENT_NEEDS_REVIEW}</p>
{elseif not $entry.allow_comments}
<p class="msg-warning"><span class="icon-attention-circled" aria-hidden="true"></span> {$CONST.COMMENTS_CLOSED}</p>
{else}
<section id="reply" class="clearfix">
<h3>{$CONST.ADD_COMMENT}</h3>
{$COMMENTFORM}
</section>
{/if}
{/if}
{$entry.backend_preview}
</article>
{/foreach}
{foreachelse}
{if not $plugin_clean_page}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.NO_ENTRIES_TO_PRINT}</p>
{/if}
{/foreach}
{if not $is_preview}
{if $staticpage_pagetitle == ''}
<nav class="pagination clearfix">
{if $footer_info}<h3>{$footer_info}</h3>{/if}
{if $footer_prev_page||$footer_next_page}
<ul>
<li class="prev-page">{if $footer_prev_page}<a href="{$footer_prev_page}"><span class="icon-angle-circled-left" aria-hidden="true"></span><span class="fallback-text">{$CONST.PREVIOUS_PAGE}</span></a>{else}<span class="no-page"><span class="icon-angle-circled-left" aria-hidden="true"></span><span class="fallback-text">{$CONST.NO_ENTRIES_TO_PRINT}</span></span>{/if}</li>
<li class="next-page">{if $footer_next_page}<a href="{$footer_next_page}"><span class="icon-angle-circled-right" aria-hidden="true"></span><span class="fallback-text">{$CONST.NEXT_PAGE}</span></a>{else}<span class="no-page"><span class="icon-angle-circled-right" aria-hidden="true"></span><span class="fallback-text">{$CONST.NO_ENTRIES_TO_PRINT}</span></span>{/if}</li>
</ul>
{/if}
</nav>
{/if}
{/if}
{serendipity_hookPlugin hook="entries_footer"}

View File

@ -0,0 +1,20 @@
{serendipity_hookPlugin hook="entries_header"}
<article id="archives" class="clearfix">
<h2>{$CONST.ARCHIVES}</h2>
{foreach from=$archives item="archive"}
<section class="{cycle values="odd,even"}">
<h3>{$archive.year}</h3>
<ul class="year">
{foreach from=$archive.months item="month"}
<li class="month">
<span class="date">{if $month.entry_count}<a href="{$month.link}" title="{$CONST.VIEW_FULL}">{/if}{$month.date|@formatTime:"%B"}{if $month.entry_count}</a>{/if}:</span>
<span class="count">{if $month.entry_count}<a href="{$month.link_summary}" title="{$CONST.VIEW_TOPICS}">{/if}{$month.entry_count} {$CONST.ENTRIES}{if $month.entry_count}</a>{/if}</span>
</li>
{/foreach}
</ul>
</section>
{/foreach}
</article>
{serendipity_hookPlugin hook="entries_footer"}

View File

@ -0,0 +1,15 @@
{serendipity_hookPlugin hook="entries_header"}
<article id="archives" class="clearfix">
<h2>{$CONST.TOPICS_OF} {$dateRange.0|@formatTime:"%B %Y"}</h2>
<ul class="summary">
{foreach from=$entries item="sentries"}
{foreach from=$sentries.entries item="entry"}
<li><a href="{$entry.link}">{$entry.title}</a>
<span>{$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {$CONST.ON} <time datetime="{$entry.timestamp|@serendipity_html5time}">{$entry.timestamp|@formatTime:$template_option.date_format}</time></span>
</li>
{/foreach}
{/foreach}
</ul>
</article>
{serendipity_hookPlugin hook="entries_footer"}

Binary file not shown.

View File

@ -0,0 +1,19 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2015 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="search" unicode="&#xe800;" d="m643 386q0 103-74 176t-176 74-177-74-73-176 73-177 177-73 176 73 74 177z m286-465q0-29-22-50t-50-21q-30 0-50 21l-191 191q-100-69-223-69-80 0-153 31t-125 84-84 125-31 153 31 152 84 126 125 84 153 31 152-31 126-84 84-126 31-152q0-123-69-223l191-191q21-21 21-51z" horiz-adv-x="928.6" />
<glyph glyph-name="ok-circled" unicode="&#xe801;" d="m717 440q0 16-11 26l-50 50q-11 11-25 11t-26-11l-227-227-126 126q-11 11-25 11t-26-11l-50-50q-10-10-10-26 0-15 10-25l202-202q10-10 25-10 15 0 25 10l303 303q11 10 11 25z m140-90q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
<glyph glyph-name="help-circled" unicode="&#xe803;" d="m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
<glyph glyph-name="info-circled" unicode="&#xe804;" d="m571 82v89q0 8-5 13t-12 5h-54v286q0 8-5 13t-13 5h-178q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h53v-179h-53q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h250q7 0 12 5t5 13z m-71 500v89q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-89q0-8 5-13t13-5h107q8 0 13 5t5 13z m357-232q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
<glyph glyph-name="attention-circled" unicode="&#xe805;" d="m429 779q116 0 215-58t156-156 57-215-57-215-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58z m71-696v106q0 8-5 13t-12 5h-107q-8 0-13-5t-6-13v-106q0-8 6-13t13-6h107q7 0 12 6t5 13z m-1 192l10 346q0 7-6 10-5 5-13 5h-123q-8 0-13-5-6-3-6-10l10-346q0-6 5-10t14-4h103q8 0 13 4t6 10z" horiz-adv-x="857.1" />
<glyph glyph-name="menu" unicode="&#xe807;" d="m857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
<glyph glyph-name="angle-circled-left" unicode="&#xe812;" d="m507 72l57 56q11 11 11 26t-11 25l-171 171 171 171q11 11 11 25t-11 25l-57 57q-10 11-25 11t-25-11l-253-253q-11-11-11-25t11-25l253-254q11-10 25-10t25 10z m350 278q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
<glyph glyph-name="angle-circled-right" unicode="&#xe813;" d="m400 72l253 253q11 11 11 25t-11 25l-253 253q-10 11-25 11t-25-11l-57-56q-11-11-11-26t11-25l171-171-171-171q-11-11-11-25t11-26l57-57q11-10 25-10t25 10z m457 278q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z" horiz-adv-x="857.1" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Binary file not shown.

BIN
templates/2k15/img/xml.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

96
templates/2k15/index.tpl Normal file
View File

@ -0,0 +1,96 @@
{if $is_embedded != true}
<!doctype html>
<!--[if IE 8 ]> <html class="no-js lt-ie9" lang="{$lang}"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="{$lang}"> <!--<![endif]-->
<head>
<meta charset="{$head_charset}">
<title>{$head_title|@default:$blogTitle}{if $head_subtitle} | {$head_subtitle}{/if}</title>
<meta name="generator" content="Serendipity v.{$head_version}">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="dns-prefetch" href="//ajax.googleapis.com">
{if $template_option.webfonts == 'osans'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'ssans'}
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:400italic,700italic,400,700">
{elseif $template_option.webfonts == 'rsans'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'lsans'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'mserif'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Merriweather:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'dserif'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Droid+Serif:400,400italic,700,700italic">
{/if}
<link rel="stylesheet" href="{$head_link_stylesheet}">
<!--[if lte IE 8]>
<link rel="stylesheet" href="{serendipity_getFile file="oldie.css"}">
<![endif]-->
{if $template_option.userstyles == true}
<link rel="stylesheet" href="{serendipity_getFile file="user.css"}">
{/if}
<script src="{serendipity_getFile file="scripts/modernizr/modernizr.js"}"></script>
<link rel="alternate" type="application/rss+xml" title="{$blogTitle} RSS feed" href="{$serendipityBaseURL}{$serendipityRewritePrefix}feeds/index.rss2">
<link rel="alternate" type="application/x.atom+xml" title="{$blogTitle} Atom feed" href="{$serendipityBaseURL}{$serendipityRewritePrefix}feeds/atom.xml">
{if $entry_id}
<link rel="pingback" href="{$serendipityBaseURL}comment.php?type=pingback&amp;entry_id={$entry_id}">
{/if}
{serendipity_hookPlugin hook="frontend_header"}
</head>
<body class="columns-{if $leftSidebarElements > 0 && $rightSidebarElements > 0}3{else}2{/if}{if $template_option.webfonts != 'none'} {$template_option.webfonts}{/if}">
{else}
{serendipity_hookPlugin hook="frontend_header"}
{/if}
{if $is_raw_mode != true}
<header id="banner" class="clearfix">
<a id="identity" href="{$serendipityBaseURL}">
<h1>{$blogTitle}</h1>
<span>{$blogDescription}</span>
</a>
<form id="searchform" action="{$serendipityHTTPPath}{$serendipityIndexFile}" method="get" role="search">
<input type="hidden" name="serendipity[action]" value="search">
<input id="serendipityQuickSearchTermField" name="serendipity[searchTerm]" type="search" placeholder="{$CONST.TWOK15_PLACE_SEARCH}" value="">
<label for="serendipityQuickSearchTermField"><span class="icon-search" aria-hidden="true"></span><span class="fallback-text">{$CONST.QUICKSEARCH}</span></label>
<input id="searchsend" name="serendipity[searchButton]" type="submit" value="{$CONST.GO}">
</form>
{serendipity_hookPlugin hook="quicksearch_plugin" hookAll="true"}
</header>
{if $template_option.header_img}
<div id="logo">
<img src="{$template_option.header_img|escape}" alt="">
</div>
{/if}
<div id="navbar">
<a id="open-nav" class="nav-toggle" href="#site-nav"><span class="icon-menu" aria-hidden="true"></span><span class="fallback-text">Navigation</span></a>
<nav id="site-nav" class="nav-collapse">
<ul>{foreach from=$navlinks item="navlink" name="sbnav"}{if $navlink.title!=""&&$navlink.href!=""}<li>{if $currpage==$navlink.href or $currpage2==$navlink.href}<span>{else}<a href="{$navlink.href}">{/if}{$navlink.title}{if $currpage==$navlink.href or $currpage2==$navlink.href}</span>{else}</a>{/if}</li>{/if}{/foreach}</ul>
</nav>
</div>
<main id="primary">
{$CONTENT}
</main>
{if $leftSidebarElements > 0}
<aside id="secondary" class="clearfix">
{serendipity_printSidebar side="left"}
</aside>
{/if}
{if $rightSidebarElements > 0}
<aside id="{if $leftSidebarElements > 0}tertiary{else}secondary{/if}" class="clearfix">
{serendipity_printSidebar side="right"}
</aside>
{/if}
<footer id="colophon" class="clearfix">
<p lang="en">Powered by <a href="http://s9y.org">Serendipity</a> <abbr title="and">&amp;</abbr> the <i>2k15</i> theme.</p>
</footer>
<script src="{serendipity_getFile file="scripts/master.js"}"></script>
{/if}
{$raw_data}
{serendipity_hookPlugin hook="frontend_footer"}
{if $is_embedded != true}
</body>
</html>
{/if}

4
templates/2k15/info.txt Normal file
View File

@ -0,0 +1,4 @@
Name: 2k15
Author: Matthias Mees, mm@yellowled.de
Date: 2015-02-10
Require Serendipity: 2.0

View File

@ -0,0 +1,15 @@
<?php
// Theme-Optionen
@define('TWOK15_INSTR', '<b>Hinweis:</b> 2k15 mag <em>aussehen</em>, als sei es im Prinzip wie 2k11 - unter der Haube ist es (technisch gesehen) ein völlig anderes Theme. Es ist daher <strong>nicht</strong> kompatibel mit dem user.css-Generator für 2k11.');
@define('TWOK15_HEADER_IMG','Bannergrafik im Kopfbereich einbinden? (1296 Pixel breit; Feld leeren um Ausgabe zu unterdrücken)');
@define('TWOK15_USE_CORENAV', 'Globale Navigation einbinden?');
@define('TWOK15_WEBFONTS', 'Einen von Google gehosteten Webfont nutzen?');
@define('TWOK15_NOWEBFONT', 'Keinen Webfont einbinden');
@define('TWOK15_USERSTYLES', 'user.css einbinden? (Muss selbst im Themeverzeichnis angelegt werden!)');
@define('TWOK15_REFCOMMENTS', 'Kommentaren (falls vorhanden) einen Link zum Kommentar, auf den geantwortet wurde, hinzufügen?');
// Sprachkonstanten
@define('TWOK15_PLINK_TEXT', 'Link');
@define('TWOK15_PLINK_TITLE', 'Permanenter Link zu diesem Kommentar');
@define('TWOK15_PLACE_SEARCH', 'Suchbegriff(e)');
@define('TWOK15_SEND_MAIL', 'Senden');
@define('TWOK15_REPLYORIGIN', 'Antwort auf');

View File

@ -0,0 +1,15 @@
<?php
// Theme options
@define('TWOK15_INSTR', '<b>Hinweis:</b> While 2k15 may <em>look</em> as if it were basically the same as 2k11, it is a completely different theme from a technical point of view. Because of that, it is <strong>not</strong> compatible with the user.css generator for 2k11.');
@define('TWOK15_HEADER_IMG','Use a banner image in the header? (1296 pixels wide; leave box empty to not use a banner)');
@define('TWOK15_USE_CORENAV', 'Use global navigation?');
@define('TWOK15_WEBFONTS', 'Use a webfont, hosted by Google?');
@define('TWOK15_NOWEBFONT', 'Include no webfont');
@define('TWOK15_USERSTYLES', 'Include user.css? (You need to create that file in your theme directory!)');
@define('TWOK15_REFCOMMENTS', 'Add link to related comment to comments (if they are replies to another comment)?');
// Lang constants
@define('TWOK15_PLINK_TEXT', 'Link');
@define('TWOK15_PLINK_TITLE', 'Permanent link for this comment');
@define('TWOK15_PLACE_SEARCH', 'Search term(s)');
@define('TWOK15_SEND_MAIL', 'Send');
@define('TWOK15_REPLYORIGIN', 'Origin');

271
templates/2k15/oldie.css Normal file
View File

@ -0,0 +1,271 @@
html {
padding: 16px 0;
padding: 1rem 0;
background-color: #ddd;
box-sizing: border-box; }
body {
margin-left: auto;
margin-right: auto;
max-width: 720px;
max-width: 45rem;
border-top: 2px solid #aaa;
border-bottom: 2px solid #aaa; }
blockquote {
margin: 16px 40px;
margin: 1rem 2.5rem; }
#banner {
padding: 0 16px;
padding: 0 1rem; }
#identity {
float: left;
width: 62%; }
#searchform {
padding-top: 56px;
padding-top: 3.5rem;
float: right;
width: 38%; }
#searchform label {
top: 58px;
top: 3.625rem; }
#logo img {
margin: 16px 0 0;
margin: 1rem 0 0; }
#navbar {
padding: 0 16px;
padding: 0 1rem;
margin-top: 0; }
#navbar a, #navbar span {
border-right: 1px solid #294564; }
#navbar li:last-child a, #navbar li:last-child span {
border-right: 0; }
#site-nav {
left: -8px;
left: -0.5rem;
position: relative; }
#site-nav ul {
padding: 0; }
#site-nav li {
display: inline-block; }
#site-nav li > span {
position: relative; }
#site-nav li > span:after {
border-color: #294564 transparent;
border-style: solid;
border-width: 8px 8px 0;
content: '';
display: block;
margin: -8px;
position: absolute;
bottom: 0;
left: 50%;
width: 0;
z-index: 10; }
#site-nav a, #site-nav span, #site-nav li:first-child a, #site-nav li:first-child span {
padding: 4px 8px;
padding: 0.25rem 0.5rem; }
#primary {
padding: 0 16px;
padding: 0 1rem; }
.commentlevel-1, .depth_10 {
margin-left: 16px;
margin-left: 1rem; }
.commentlevel-2, .depth_20 {
margin-left: 32px;
margin-left: 2rem; }
.commentlevel-3, .depth_30 {
margin-left: 48px;
margin-left: 3rem; }
.commentlevel-4, .depth_40 {
margin-left: 64px;
margin-left: 4rem; }
.commentlevel-5, .depth_50 {
margin-left: 80px;
margin-left: 5rem; }
.commentlevel-6, .depth_60 {
margin-left: 96px;
margin-left: 6rem; }
.commentlevel-7, .depth_70 {
margin-left: 112px;
margin-left: 7rem; }
.commentlevel-8, .depth_80 {
margin-left: 128px;
margin-left: 8rem; }
.commentlevel-9, .depth_90 {
margin-left: 144px;
margin-left: 9rem; }
.form_field input, .form_field select, .form_select input, .form_select select {
max-width: 400px;
max-width: 25rem; }
#archives > section {
float: left;
width: 50%; }
#archives .odd {
clear: left; }
.serendipity_image_left, .serendipity_imageComment_left {
margin: 24px 16px 24px 0;
margin: 1.5rem 1rem 1.5rem 0;
float: left; }
.clearfix .serendipity_image_left, .clearfix .serendipity_imageComment_left {
margin: 16px 16px 16px 0;
margin: 1rem 1rem 1rem 0; }
.serendipity_image_right, .serendipity_imageComment_right {
margin: 24px 0 24px 16px;
margin: 1.5rem 0 1.5rem 1rem;
float: right; }
.clearfix .serendipity_image_right, .clearfix .serendipity_imageComment_right {
margin: 16px 0 16px 16px;
margin: 1rem 0 1rem 1rem; }
.serendipity_imageComment_left, .serendipity_imageComment_right {
display: inline; }
#secondary, #tertiary {
padding: 0 16px;
padding: 0 1rem; }
.widget {
margin-bottom: 16px;
margin-bottom: 1rem;
box-sizing: border-box;
float: left;
width: 50%; }
.widget:nth-child(odd) {
padding-right: 16px;
padding-right: 1rem;
clear: left; }
.widget:nth-child(even) {
padding-left: 16px;
padding-left: 1rem; }
#colophon {
padding: 0 16px;
padding: 0 1rem; }
html {
padding: 24px 0;
padding: 1.5rem 0; }
body {
max-width: 1152px;
max-width: 72rem;
width: 92%; }
#banner {
padding: 16px 32px 0;
padding: 1rem 2rem 0; }
#searchform {
padding-left: 32px;
padding-left: 2rem; }
#logo img {
margin: 16px 0 -16px;
margin: 1rem 0 -1rem; }
#navbar {
margin: 16px 0;
margin: 1rem 0;
padding: 0 32px;
padding: 0 2rem; }
#site-nav {
left: -16px;
left: -1rem; }
#site-nav a, #site-nav span, #site-nav li:first-child a, #site-nav li:first-child span {
padding: 4px 16px;
padding: 0.25rem 1rem; }
#primary {
padding: 0 16px 0 32px;
padding: 0 1rem 0 2rem;
float: left;
width: 62%; }
.columns-3 #primary {
padding: 0;
left: 25%;
position: relative;
width: 50%; }
#secondary {
margin-top: 8px;
margin-top: 0.5rem; }
#secondary, #tertiary {
padding: 0 32px 0;
padding: 0 2rem 0;
float: right;
width: 38%; }
.columns-3 #secondary, .columns-3 #tertiary {
margin-top: 8px;
margin-top: 0.5rem;
width: 25%; }
.columns-3 #secondary {
float: left;
left: -50%;
position: relative; }
.widget {
float: none;
width: 100%; }
.widget:nth-child(odd), .widget:nth-child(even) {
padding-left: 0;
padding-right: 0; }
#colophon {
padding: 0 32px;
padding: 0 2rem;
clear: both;
text-align: left; }
.js .nav-collapse {
max-height: none;
position: relative; }
.nav-toggle {
display: none !important;
visibility: hidden; }
.js .nav-collapse {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: relative;
width: auto; }
.js .nav-collapse.closed {
max-height: none; }
.nav-collapse li {
width: auto; }
.nav-toggle {
display: none !important;
visibility: hidden; }
.meta li {
margin-right: 0.4em; }
.meta li:after {
content: ''; }

View File

@ -0,0 +1,35 @@
<table class="calendar">
<thead>
<tr>
{foreach from=$plugin_calendar_dow item="dow"}
<th scope="col"><abbr title="{$dow.date|@formatTime:"%A":false}">{$dow.date|@formatTime:"%a":false}</abbr></th>
{/foreach}
</tr>
</thead>
<tfoot>
<tr>
<td class="prev">
{if $plugin_calendar_head.minScroll le $plugin_calendar_head.month_date}
<a href="{$plugin_calendar_head.uri_previous}">&larr;<span> {$CONST.BACK}</span></a>
{/if}
</td>
<td class="month" colspan="5">
<a href="{$plugin_calendar_head.uri_month}">{$plugin_calendar_head.month_date|formatTime:"%B '%y":false}</a>
</td>
<td class="next">
{if $plugin_calendar_head.maxScroll ge $plugin_calendar_head.month_date}
<a href="{$plugin_calendar_head.uri_next}"><span>{$CONST.FORWARD} </span>&rarr;</a>
{/if}
</td>
</tr>
</tfoot>
<tbody>
{foreach from=$plugin_calendar_weeks item="week"}
<tr>
{foreach from=$week.days item="day"}
<td class="{$day.classes}"{if isset($day.properties.Title)} title="{$day.properties.Title}"{/if}>{if isset($day.properties.Active) and $day.properties.Active}<a href="{$day.properties.Link}">{/if}{$day.name|@default:"&#160;"}{if isset($day.properties.Active) and $day.properties.Active}</a>{/if}</td>
{/foreach}
</tr>
{/foreach}
</tbody>
</table>

View File

@ -0,0 +1,22 @@
{if $is_form}
<form id="serendipity_category_form" action="{$form_url}" method="post">
{/if}
<ul>
{foreach from=$categories item="plugin_category"}
<li id="category_{$plugin_category.categoryid}" class="category_depth{$plugin_category.catdepth}">
{if $is_form}
<input type="checkbox" name="serendipity[multiCat][]" value="{$plugin_category.categoryid}">
{/if}
{if !empty($category_image)}
<a class="serendipity_xml_icon" href="{$plugin_category.feedCategoryURL}"><span class="icon-rss" aria-hidden="true"></span><span class="fallback-text">XML</span></a>
{/if}
<a href="{$plugin_category.categoryURL}" title="{$plugin_category.category_description|escape}">{$plugin_category.category_name|escape}</a>
</li>
{/foreach}
</ul>
{if $is_form}
<input id="category_submit" type="submit" name="serendipity[isMultiCat]" value="{$CONST.GO}">
{/if}
{if $is_form}
</form>
{/if}

View File

@ -0,0 +1,13 @@
<aside class="search-results clearfix">
<h3>{$CONST.COMMENT_SEARCHRESULTS|sprintf:$comment_searchresults}:</h3>
{if $comment_results}
<ul>
{foreach from=$comment_results item="result"}
<li><span>{if $result.type == 'TRACKBACK'}<a href="{$result.url|escape}">{else}<b>{/if}{$result.author|escape}{if $result.type == 'TRACKBACK'}</a>{else}</b>{/if} {$CONST.IN} <a href="{$result.permalink|escape}">{$result.title|escape}</a> {$CONST.ON} <time datetime="{$result.ctimestamp|@serendipity_html5time}">{$result.ctimestamp|@formatTime:$template_option.date_format}</time>:</span>
{$result.comment|@strip_tags|@truncate:200:" ... "}</li>
{/foreach}
</ul>
{else}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.NO_ENTRIES_TO_PRINT}</p>
{/if}
</aside>

View File

@ -0,0 +1,48 @@
<article class="post clearfix">
<h2 class="post-title">{if $plugin_contactform_articleformat}{$plugin_contactform_name}{else}{$plugin_contactform_pagetitle}{/if}</h2>
{$plugin_contactform_preface}
{if $is_contactform_sent}
<p class="msg-success"><span class="icon-ok-circled" aria-hidden="true"></span> {$plugin_contactform_sent}</p>
{else}
{if $is_contactform_error}
<p class="msg-warning"><span class="icon-attention-circled" aria-hidden="true"></span> {$plugin_contactform_error}</p>
{foreach from=$comments_messagestack item="message"}
<p class="msg-warning"><span class="icon-attention-circled" aria-hidden="true"></span> {$message}</p>
{/foreach}
{/if}
<div class="serendipityCommentForm">
<a id="serendipity_CommentForm"></a>
<form id="serendipity_comment" action="{$commentform_action}#feedback" method="post">
<input type="hidden" name="serendipity[subpage]" value="{$commentform_sname}">
<input type="hidden" name="serendipity[commentform]" value="true">
<div class="form_field">
<label for="serendipity_commentform_name">{$CONST.NAME}{if $required_fields.name}*{/if}</label>
<input id="serendipity_commentform_name" type="text" name="serendipity[name]" value="{$commentform_name}"{if $required_fields.name} required{/if}>
</div>
<div class="form_field">
<label for="serendipity_commentform_email">{$CONST.EMAIL}{if $required_fields.email}*{/if}</label>
<input id="serendipity_commentform_email" type="email" name="serendipity[email]" value="{$commentform_email}"{if $required_fields.email} required{/if}>
</div>
<div class="form_field">
<label for="serendipity_commentform_url">{$CONST.HOMEPAGE}{if $required_fields.url}*{/if}</label>
<input id="serendipity_commentform_url" type="url" name="serendipity[url]" value="{$commentform_url}"{if $required_fields.url} required{/if}>
</div>
<div class="form_tarea">
<label for="serendipity_commentform_comment">{$CONST.COMMENT}{if $required_fields.comment}*{/if}</label>
<textarea id="serendipity_commentform_comment" rows="10" name="serendipity[comment]"{if $required_fields.comment} required{/if}>{$commentform_data}</textarea>
</div>
{serendipity_hookPlugin hook="frontend_comment" data=$commentform_entry}
<div class="form_buttons">
<input id="serendipity_submit" type="submit" name="serendipity[submit]" value="{$CONST.TWOK15_SEND_MAIL}">
</div>
</form>
</div>
{/if}
</article>

View File

@ -0,0 +1,115 @@
<ul class="serendipity_findmore clearfix">
{if NOT $findmore_disabled_services.twitter}
<li><a rel="nofollow" href="http://twitter.com/intent/tweet?text={$entrydata.title|escape}%20-%20{$entrydata.url|escape:'url'}"><img src="{$entrydata.path}twitter.png" alt="Twitter"></a></li>
{/if}
{if NOT $findmore_disabled_services.delicious}
<li><a rel="nofollow" href="http://del.icio.us/post?url={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}delicious.png" alt="Bookmark {$entrydata.title|escape} at del.icio.us"></a></li>
{/if}
{if NOT $findmore_disabled_services.facebook}
<li><a rel="nofollow" href="http://www.facebook.com/share.php?u={$entrydata.url|escape:'url'}&amp;t={$entrydata.title|escape}"><img src="{$entrydata.path}facebook.png" alt="Facebook"></a></li>
{/if}
{if NOT $findmore_disabled_services.google}
<li><a rel="nofollow" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape}"><img src="{$entrydata.path}googlebookmark.png" alt="Google Bookmarks"></a></li>
{/if}
{if NOT $findmore_disabled_services.friendfeed}
<li><a rel="nofollow" href="http://www.friendfeed.com/share?title={$entrydata.title|escape}&amp;link={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}friendfeed.png" alt="FriendFeed"></a></li>
{/if}
{if NOT $findmore_disabled_services.digg}
<li><a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}diggman.png" alt="Digg {$entrydata.title|escape}"></a></li>
{/if}
{if NOT $findmore_disabled_services.mixx}
<li><a rel="nofollow" href="http://www.mixx.com/submit?page_url={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}mixx-button4.png" alt="Mixx {$entrydata.title|escape}"></a></li>
{/if}
{if NOT $findmore_disabled_services.bloglines}
<li><a rel="nofollow" href="http://www.bloglines.com/citations?url={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}bloglines.png" alt="Bloglines {$entrydata.title|escape}"></a></li>
{/if}
{if NOT $findmore_disabled_services.technorati}
<li><a rel="nofollow" href="http://technorati.com/search/{$entrydata.url|escape:'url'}" title="Technorati {$entrydata.title|escape}"><img src="{$entrydata.path}technorati.png" alt="Technorati {$entrydata.title|escape}"></a></li>
{/if}
{if NOT $findmore_disabled_services.fark}
<li><a rel="nofollow" href="http://cgi.fark.com/cgi/fark/edit.pl?new_url={$entrydata.url|escape:'url'}&amp;new_comment={$entrydata.title|escape:'url'}&amp;new_link_other=&amp;linktype=Misc"><img src="{$entrydata.path}fark.png" alt="Fark this: {$entrydata.title|escape}"></a></li>
{/if}
{if NOT $findmore_disabled_services.yahoo}
<li><a rel="nofollow" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?t={$entrydata.title|escape:'url'}&amp;u={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}yahoomyweb.png" alt="Bookmark {$entrydata.title|escape} at YahooMyWeb"></a></li>
{/if}
{if NOT $findmore_disabled_services.furl}
<li><a rel="nofollow" href="http://www.furl.net/storeIt.jsp?t={$entrydata.title|escape:'url'}&amp;u={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}furl.png" alt="Bookmark {$entrydata.title|escape} at Furl.net"></a></li>
{/if}
{if NOT $findmore_disabled_services.reddit}
<li><a rel="nofollow" href="http://reddit.com/submit?url={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}reddit.png" alt="Bookmark {$entrydata.title|escape} at reddit.com"></a></li>
{/if}
{if NOT $findmore_disabled_services.blinklist}
<li><a rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url={$entrydata.url|escape:'url'}&amp;Title={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}blinklist.png" alt="Bookmark {$entrydata.title|escape} at blinklist.com"></a></li>
{/if}
{if NOT $findmore_disabled_services.spurl}
<li><a rel="nofollow" href="http://www.spurl.net/spurl.php?title={$entrydata.title|escape:'url'}&amp;url={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}spurl.png" alt="Bookmark {$entrydata.title|escape} at Spurl.net"></a></li>
{/if}
{if NOT $findmore_disabled_services.newsvine}
<li><a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u={$entrydata.url|escape:'url'}&amp;h={$entrydata.title|escape:'url'}" title="Bookmark {$entrydata.title|escape} at NewsVine"><img src="{$entrydata.path}newsvine.png" alt="Bookmark {$entrydata.title|escape} at NewsVine"></a></li>
{/if}
{if NOT $findmore_disabled_services.simpy}
<li><a rel="nofollow" href="http://www.simpy.com/simpy/LinkAdd.do?href={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}simpy.png" alt="Bookmark {$entrydata.title|escape} at Simpy.com"></a></li>
{/if}
{if NOT $findmore_disabled_services.blogmarks}
<li><a rel="nofollow" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}blogmarks.png" alt="Bookmark {$entrydata.title|escape} at blogmarks"></a></li>
{/if}
{if NOT $findmore_disabled_services.wists}
<li><a rel="nofollow" href="http://wists.com/r.php?c=&amp;r={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}wists.png" alt="Bookmark {$entrydata.title|escape} with wists"></a></li>
{/if}
{if NOT $findmore_disabled_services.misterwong}
<li><a rel="nofollow" href="http://www.mister-wong.de/index.php?action=addurl&amp;bm_url={$entrydata.url|escape:'url'}&amp;bm_description={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}wong18.gif" alt="wong it!"></a></li>
{/if}
{if NOT $findmore_disabled_services.addthis}
<li><a rel="nofollow" href="http://www.addthis.com/bookmark.php?pub=&amp;url={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}"><img src="{$entrydata.path}button0-bm.gif" alt="Bookmark using any bookmark manager!"></a></li>
{/if}
{if NOT $findmore_disabled_services.stumbleupon}
<li><a rel="nofollow" href="http://www.stumbleupon.com/submit?url={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}stumbleupon.gif" alt="Stumble It!"></a></li>
{/if}
{if NOT $findmore_disabled_services.printthis}
<li><a rel="nofollow" href="http://www.printfriendly.com/print?url={$entrydata.url|escape:'url'}"><img src="{$entrydata.path}printfriendly.png" alt="Print this article!"></a></li>
{/if}
{if NOT $findmore_disabled_services.tellafriend}
<li><a rel="nofollow" href="mailto:?subject={$entrydata.title|escape}&amp;body={$entrydata.url|escape:'url'}';"><img src="{$entrydata.path}email_link.png" alt="E-mail this story to a friend!"></a></li>
{/if}
{if NOT $findmore_disabled_services.identica}
<li><a rel="nofollow" href="http://identi.ca/notice/new?status_textarea={$entrydata.title|escape:'url'}%20-%20{$entrydata.url|escape:'url'}"><img src="{$entrydata.path}identica.png" alt="Identi.ca"></a></li>
{/if}
</ul>
{if NOT $findmore_disabled_services.facebook OR NOT $findmore_disabled_services.gplus OR NOT $findmore_disabled_services.spreadly}
<ul class="serendipity_findmore_like clearfix">
{if NOT $findmore_disabled_services.facebook}
<li class="facebook_like findmore_like_button">
{if $findmore_lazyload}
<script>
var fb_like = '<iframe src="http://www.facebook.com/plugins/like.php?href={$entrydata.url|escape:'url'}&amp;layout=standard&amp;show-faces=true&amp;width=300&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:300px; height:30px"></iframe>';
insertLazyLoadButton(fb_like, "facebook", '{$entrydata.path}', '{$findmore_lazyload_text}');
</script>
{else}
<iframe src="http://www.facebook.com/plugins/like.php?href={$entrydata.url|escape:'url'}&amp;layout=standard&amp;show-faces=true&amp;width=300&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:100%; height:30px"></iframe>
{/if}
</li>
{/if}
{if NOT $findmore_disabled_services.plusone}
<li class="google_like findmore_like_button">
{if $findmore_lazyload}
<script>
var gplus_like = '<div class="gplus_like"><div class="g-plusone" data-size="medium" data-href="{$entrydata.url}"></div>{literal}<script type="text/javascript">window.___gcfg = {lang: "en"}; (function() { var po = document.createElement("script"); po.type = "text/javascript"; po.async = true; po.src = "https://apis.google.com/js/plusone.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s); })(); <\/script></div>';
{/literal}
insertLazyLoadButton(gplus_like, "gplus", '{$entrydata.path}', '{$findmore_lazyload_text}');
</script>
{else}
<g:plusone annotation="none" href="{$entrydata.url}"></g:plusone>
{/if}
</li>
{/if}
{if NOT $findmore_disabled_services.spreadly}
<li class="spreadly_like findmore_like_button">
{if $findmore_lazyload}
<a href="http://spread.ly/?url={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}&amp;tags={$entrydata.properties.freetag_tagList|escape:'url'}&amp;social={if $findmore_spreadly_social}1{else}0{/if}" rel="like"><img src="http://spread.ly/img/like-button.jpg" alt="Like"></a>
{else}
<iframe scrolling="no" frameborder="0" marginwidth="0" marginheight="0" style="overflow: hidden; width: 100px; height: {if $findmore_spreadly_social}24px;{else}24px{/if}" src="http://button.spread.ly/?url={$entrydata.url|escape:'url'}&amp;title={$entrydata.title|escape:'url'}&amp;tags={$entrydata.properties.freetag_tagList|escape:'url'}&amp;social={if $findmore_spreadly_social}1{else}0{/if}" allowtransparency="true"></iframe>
{/if}
</li>
{/if}
</ul>
{/if}

View File

@ -0,0 +1,11 @@
<div class="serendipity_staticblock clearfix">
{if $staticblock.title}
<h3>{$staticblock.title}</h3>
{/if}
{if $staticblock.body}
<div class="clearfix">{$staticblock.body}</div>
{/if}
{if $staticblock.extended}
<div class="clearfix">{$staticblock.extended}</div>
{/if}
</div>

View File

@ -0,0 +1,38 @@
<article id="page-{$staticpage_pagetitle|@makeFilename}" class="post clearfix">
<h2 class="post-title">{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}</h2>
{if is_array($staticpage_childpages)}
<ul id="child-pages">
{foreach from=$staticpage_childpages item="childpage"}
<li><a href="{$childpage.permalink|@escape}" title="{$childpage.pagetitle|@escape}">{$childpage.pagetitle|@escape}</a></li>
{/foreach}
</ul>
{/if}
{if $staticpage_pass AND $staticpage_form_pass != $staticpage_pass}
<form class="staticpage_password_form" action="{$staticpage_form_url}" method="post">
<fieldset>
<legend>{$CONST.STATICPAGE_PASSWORD_NOTICE}</legend>
<input name="serendipity[pass]" type="password" value="">
<input name="submit" type="submit" value="{$CONST.GO}" >
</fieldset>
</form>
{else}
{if $staticpage_precontent}
{$staticpage_precontent}
{/if}
{if $staticpage_content}
{$staticpage_content}
{/if}
{/if}
{if $staticpage_author or $staticpage_lastchange}
<footer class="page-info post-info">
<ul class="meta">
{if $staticpage_author}
<li>{$CONST.POSTED_BY} {$staticpage_author|@escape}</li>
{/if}
{if $staticpage_lastchange}
<li>{$CONST.ON} <time datetime="{$staticpage_lastchange|@serendipity_html5time}">{$staticpage_lastchange|date_format:$template_option.date_format}</time></li>
{/if}
</ul>
</footer>
{/if}
</article>

View File

@ -0,0 +1,13 @@
<aside class="search-results clearfix">
<h3>{$CONST.STATICPAGE_SEARCHRESULTS|sprintf:$staticpage_searchresults}</h3>
{if $staticpage_results}
<ul>
{foreach from=$staticpage_results item="result"}
<li><span><a href="{$result.permalink|@escape}" title="{$result.pagetitle|@escape}">{$result.headline}</a> ({$result.realname})</span>
{$result.content|@strip_tags|@strip|@truncate:200:" ... "}</li>
{/foreach}
</ul>
{else}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.NO_ENTRIES_TO_PRINT}</p>
{/if}
</aside>

View File

@ -0,0 +1,21 @@
{if !empty($staticpage_jsStr)}
<div class="staticpage_sbJsList">
{$staticpage_jsStr}
</div>
{/if}
{if !$staticpage_jsStr or empty($staticpage_jsStr)}
<ul class="plainList">
{if $frontpage_path}
<li><a href="{$frontpage_path}">{$CONST.PLUGIN_STATICPAGELIST_FRONTPAGE_LINKNAME}</a></li>
{/if}
{if is_array($staticpage_listContent) and !empty($staticpage_listContent)}
{foreach name="pageList" from=$staticpage_listContent item="pageList"}
{if !empty($pageList.permalink)}
<li class="depth_{$pageList.depth}"><a href="{$pageList.permalink}" title="{$pageList.pagetitle}">{$pageList.headline|truncate:20:"..."}</a></li>
{else}
<li class="depth_{$pageList.depth}">{$pageList.headline|truncate:20:"..."}</li>
{/if}
{/foreach}
{/if}
</ul>
{/if}

BIN
templates/2k15/preview.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -0,0 +1,53 @@
<!doctype html>
<!--[if IE 8 ]> <html class="no-js lt-ie9" lang="{$lang}"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="{$lang}"> <!--<![endif]-->
<head>
<meta charset="{$head_charset}">
<title>{$CONST.SERENDIPITY_ADMIN_SUITE}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="dns-prefetch" href="//ajax.googleapis.com">
{if $template_option.webfonts == 'osans'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'ssans'}
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Source+Sans+Pro:400italic,700italic,400,700">
{elseif $template_option.webfonts == 'rsans'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'lsans'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'mserif'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Merriweather:400,400italic,700,700italic">
{elseif $template_option.webfonts == 'dserif'}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Droid+Serif:400,400italic,700,700italic">
{/if}
<link rel="stylesheet" href="{$serendipityHTTPPath}{$serendipityRewritePrefix}serendipity.css">
<!--[if lte IE 8]>
<link rel="stylesheet" href="{serendipity_getFile file="oldie.css"}">
<![endif]-->
{if $template_option.userstyles == true}
<link rel="stylesheet" href="{serendipity_getFile file="user.css"}">
{/if}
<script src="{serendipity_getFile file="scripts/modernizr/modernizr.js"}"></script>
{serendipity_hookPlugin hook="backend_header" hookAll="true"}
<script src="{serendipity_getFile file='admin/js/plugins.js'}"></script>
<script src="{serendipity_getFile file='admin/serendipity_editor.js'}"></script>
<script type="text/javascript">
window.onload = function() {ldelim}
parent.document.getElementById('serendipity_iframe').style.height = document.getElementById('main').offsetHeight
+ parseInt(document.getElementById('main').style.marginTop)
+ parseInt(document.getElementById('main').style.marginBottom)
+ 'px';
parent.document.getElementById('serendipity_iframe').scrolling = 'no';
parent.document.getElementById('serendipity_iframe').style.border = 0;
{rdelim}
</script>
</head>
<body style="padding: 0; margin: 0;"{if $template_option.webfonts != 'none'} class="{$template_option.webfonts}"{/if}>
<div id="main" class="clearfix" style="padding: 0; margin: 5px auto; width: 98%;">
<main id="primary">
{$preview}
</main>
</div>
<script src="{serendipity_getFile file="scripts/master.js"}"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,14 @@
{if $is_raw_mode}
<div id="serendipity{$pluginside}SideBar">
{/if}
{foreach from=$plugindata item=item}
<section class="widget {$item.class}">
{if $item.title != ""}
<h3>{$item.title}</h3>
{/if}
{$item.content}
</section>
{/foreach}
{if $is_raw_mode}
</div>
{/if}

1310
templates/2k15/style.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
{foreach from=$trackbacks item=trackback}
<article id="c{$trackback.id}" class="trackback">
<h4><cite>{$trackback.author|@default:$CONST.ANONYMOUS}</cite> {$CONST.ON} <time datetime="{$trackback.timestamp|@serendipity_html5time}">{$trackback.timestamp|@formatTime:$template_option.date_format}</time>: <a href="{$trackback.url|@strip_tags}">{$trackback.title}</a></h4>
{if $trackback.body == ''}
<p class="msg-notice no-content"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.NO_ENTRIES_TO_PRINT}</p>
{else}
<details>
<summary>{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$trackback.title}</summary>
<div class="clearfix">
{$trackback.body|@strip_tags|@escape:all}
</div>
</details>
{/if}
</article>
{foreachelse}
<p class="msg-notice"><span class="icon-info-circled" aria-hidden="true"></span> {$CONST.NO_TRACKBACKS}</p>
{/foreach}