2k11 um Einzelnutzer-Modus erweitern
Ich weiß, Matthias hört es nicht gerne, aber ich bin immernoch der Meinung, dass 2k11 einen Einzelnutzer-Modus benötigt, da der überwiegende Teil der Nutzer sein Blog alleine verwaltet/befüllt. Da finde ich so Dinge wie Name des Autors einfach überflüssig. Daher bastel ich jetzt an einer Konzeptstudie, an welchen Stellen man was ändern/erweitern muss, damit man diesen Modus hat.
Ergänzungen werden nach und nach wohl eingepflegt, damit die Sache ordentlich dokumentiert ist.
Sollte etwas unklar sein oder Verbesserungsvorschläge, einfach in die Kommentare damit
Update am 15:10.2012: Code für Vorlage der statischen Seiten ergänzt
config.inc.php
Hier muss man in den Variablen einen neuen array am Ende einfügen. Bitte darauf achten, dass nach dem vorhergehenden array ein Komma gesetzt werden muss, sonst läd die Seite nicht mehr.
array(
'var' => 'use_corenav',
'name' => TWOK11_USE_CORENAV,
'type' => 'boolean',
'default' => true
),
array(
'var' => 'single_user',
'name' => TWOK11_SINGLEUSER,
'type' => 'boolean',
'default' => false
)
);
lang_de.inc.php
Damit in den Template-Einstellungen ein ordentlicher Text steht, muss noch die Sprachvariable definiert werden…
@define('TWOK11_SINGLEUSER', 'Einzelnutzer-Modus (blendet den Autor des Artikels aus und legt das Datum in die Fußzeile)');
Diese Änderung muss bei Bedarf in allen Dateien mit der Bezeichnung lang_*.inc.php ergänzt werden, natürlich mit passender Übersetzung
Achtung: Die Sprachdateien sind sowohl im Hauptverzeichnis (Codierung ISO-8859-1) und im Unterverzeichnis UTF-8 (Codierung UTF-8) zu finden. Ich hatte das übersehen und mich erst gewundert, warum die Variable nicht korrekt dargestellt wurde. Matthias half mir da aber auf die Sprünge
entries.tpl
Im header-Bereich muss man einfach die Zeile für Autor und Datum (die Zeile nach h2) um eine if-Abfrage erweitern.
{if not $template_option.single_user}<span class="serendipity_byline block_level"><span class="single_user">{$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {$CONST.ON} </span><time datetime="{$entry.timestamp|@serendipity_html5time}" pubdate>{$entry.timestamp|@formatTime:$template_option.date_format}</time>{if $entry.is_entry_owner and not $is_preview} | <a href="{$entry.link_edit}">{$CONST.EDIT_ENTRY}</a>{/if}</span>{/if}
Außerdem muss/sollte man die Fußzeile noch ein wenig erweitern, damit dort sowohl das Datum des Beitrags als auch der Bearbeiten-Link auftauchen.
Dazu schreibt man nach
<footer class="clearfix">
das Datum rein
{if $template_option.single_user}<time datetime="{$entry.timestamp|@serendipity_html5time}" pubdate>{$entry.timestamp|@formatTime:$template_option.date_format}</time> | {/if}
Für den Bearbeiten-Link schreibt man im footer-Bereich vor die Zeile
{$entry.add_footer}
noch
{if $template_option.single_user and $entry.is_entry_owner and not $is_preview} | <a href="{$entry.link_edit}">{$CONST.EDIT_ENTRY}</a>{/if}
entries_summary.tpl
In der Artikelübersicht des Archivs bin ich recht rigoros vorgegangen, es wird einfach die gesamte zweite Zeile ausgeblendet. Ich hatte überlegt, das Datum davor oder dahinter ausgeben zu lassen, aber eigentlich macht das keinen Sinn, denn die Artikel sind sowieso nach Alter sortiert und einen Mehrwert bringt das Datum an dieser Stelle dann nicht.
{if not $template_option.single_user}<span class="serendipity_byline block_level"><span class="single_user">{$CONST.POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {$CONST.ON} </span><time datetime="{$entry.timestamp|@serendipity_html5time}" pubdate>{$entry.timestamp|@formatTime:$template_option.date_format}</time></span>{/if}
Wer das Datum vor dem Artikel haben möchte, kann vor dem a-Bereich einfach die folgende Zeile einfügen:
{if $template_option.single_user}<time datetime="{$entry.timestamp|@serendipity_html5time}" pubdate>{$entry.timestamp|@formatTime:$template_option.date_format}</time> {/if}
plugin_staticpage.tpl
Damit auf statischen Seiten der Autor ebenfalls unterdrückt wird, muss man ein paar if-Bedingungen erweitern…
Im footer-Bereich muss man dazu in folgendem Block
{if $staticpage_author and not $template_option.single_user}
<span class="single_user"><span class="visuallyhidden">{$CONST.POSTED_BY} </span>{$staticpage_author|@escape}
{/if}
{if $staticpage_author AND $staticpage_lastchange and not $template_option.single_user} | </span>{/if}
um die Abfrage
and not $template_option.single_user
erweitern.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
== ERROR-REPORT (BETA/ALPHA-BUILDS) ==Notice: Only variable references should be returned by reference in /var/www/virtual/bauigel/bernd.distler.ws/include/db/mysqli.inc.php on line 101.
== ERROR-REPORT (BETA/ALPHA-BUILDS) ==For more details set $serendipity['production'] = 'debug' in serendipity_config_local.inc.php to receive a stack-trace.
Notice: Only variable references should be returned by reference in /var/www/virtual/bauigel/bernd.distler.ws/include/db/mysqli.inc.php on line 101.
For more details set $serendipity['production'] = 'debug' in serendipity_config_local.inc.php to receive a stack-trace.
Grischa am :
Ich hatte auch schon mal überlegt, ob ich mir nicht mal nen Fork zu Matthias’ Repository auf GitHub mache und daraus ein konfigurierbares 2k11 mache. Da könnte dann auch Deine Option rein, fände ich für mich auch interessant.
Es gibt immer mal wieder Optionen, die User gerne hätten, z.B. Header Hintergrund wie bei mir. Matthias hat allerdings eine recht klare Idee, wie 2k11 sein soll, und da passen Optionen wie damals bei BP nicht rein.
Tja.. Bräuchte wohl mal wieder etwas mehr Zeit für S9y.
Grischa schrieb auch: Real Time Web für Server
Bernd am :
Hallo Grischa!
Wüsste ich wie es geht, hätte ich vermutlich auch einfach einen GIT-Fork gemacht. Aber ich wollte erst mal so für mich probieren ob es geht bzw. wie aufwändig es ist.
Verständlich, da sich je nach gewünschtem Feature auch der Wartungsaufwand deutlich erhöhen würde. Allerdings muss ich auch sagen, dass ich die jetzige Methode, den Autor per CSS auszublenden nicht besonders hübsch finde, da dazu im Template extra zusätzliche Definitionen aufgenommen werden mussten. Eine Lösung über Smarty finde ich da einfacher und eleganter. Ich bin aber kein Programmierer/Designer, um zu beurteilen, was im Detail an Aufwand hinter meiner Lösung stecken würde. Sie funktioniert einfach für mich. Demzufolge erhebe ich auch keinen Anspruch darauf, dass Matthias das aufnehmen müsste.
Vielleicht findet sich ja doch mal Zeit, dass ein kleiner Fork von 2k11 entsteht. Ich habe das aber (unabhängig meiner nicht vorhandenen GIT-Kenntnisse) immer gescheut, da mir der Aufwand zu groß wäre, die Änderungen am 2k11-Zweig in den Fork aufzunehmen, die ja doch immer mal wieder kommen.