Page 1 of 1

Plugin includeentry - {$entry.plugin_display_dat} und 2k11

Posted: Fri Sep 27, 2013 4:05 pm
by Timbalu
Whow, ich bin immer wieder erstaunt, was es alles so gibt in unserem kleinen Serendipity Universum!

Gestern stieß ich auf der Suche nach weiteren Backend Textareas in Plugins, auf das includeentry Plugin, das einige höchst interessante Sachen machen kann. Außer wenigen Forenbeiträgen hier, ist nur eine genauere Erklärung in Garvins Serendipity Buch (siehe github-pdf *) zu finden.

Ich würde mich sehr freuen noch mehr von (ausgefallenen) Beispielen zu hören, wofür ihr dieses Plugin so gebraucht. Mir fiel gleich ein Thread ein, der sich entry eigene contactforms wünschte und die man mit includeentry bestimmt recht zielsicher erreichen könnte.

(*) 6.5.3 Textformatierung: Eintragsdaten einfügen serendipity event includeentry, Serendipity Buch, page 373

- - - - - - - - - - - - - -

Ganz nebenbei ist mir dabei ein kleiner "Bug" im 2k11 aufgefallen, den man mit folgendem template file und einer kleinen Änderung in der entries.tpl leicht beheben kann.

plugin_staticblock.tpl

Code: Select all

    <div class="clearfix serendipity_staticblock_header">
        <span class="serendipity_byline block_level">
            <span class="single_user">{$CONST.POSTED_BY} <a href="{$staticblock.link_author}">{$staticblock.author}</a> {$CONST.ON} </span>
            <time datetime="{$staticblock.timestamp|@serendipity_html5time}" pubdate>{$staticblock.timestamp|@formatTime:$template_option.date_format}</time>
        </span>
        <h4 class="clearfix serendipity_title staticblock_title">{$staticblock.title}</h4>
    </div>
    
    <div class="serendipity_staticblock_entry">
        <div class="clearfix content serendipity_entry_body">{$staticblock.body}</div>
        <div id="extended" class="clearfix content">{$staticblock.extended}</div>
    </div>
entries.tpl ab line 60 (siehe verschobenes $entry.plugin_display_dat)

Code: Select all

        {/if}
            {$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 $entry.plugin_display_dat}
        <div class="clearfix content plugin_display_dat">
            {$entry.plugin_display_dat}
        </div>
    {/if}

    {if $is_single_entry and not $is_preview}
Mein erster css Entwurf sieht so aus

Code: Select all

/* serendipity_event_includeentry */
.plugin_display_dat {
    background-color: rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 4px 4px 4px 4px;
    box-shadow: 1px 1px 3px rgb(119, 119, 119); /* #777777; */
    margin: 2em auto;
    padding: 0.5em;
}
.serendipity_staticblock_header span,
.serendipity_staticblock_header time {
    text-align: right;
}
.staticblock_title{
    text-align: left;
}
.serendipity_staticblock_entry {
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.2);
    padding: 1em;
}
.serendipity_staticblock_entry > pre {
    /*background: none repeat scroll 0 0 rgba(0, 0, 0, 0);*/
    /*border: medium none;*/
    margin: 0;
    /*padding: 0;*/
}
Vielleicht kann uns Yellowled, dies so (oder so ähnlich) fest einbauen.

- - - - - - - - - - - - - -

@Garvin
https://github.com/s9y/additional_plugi ... y.php#L360
Müsste das nicht eher

Code: Select all

$this->staticblock['author'] = $serendipity['serendipityUser'];
heißen? ($serendipity['author']; gibt es gar nicht.)

Re: Plugin includeentry - {$entry.plugin_display_dat} und 2k

Posted: Sat Sep 28, 2013 2:06 pm
by yellowled
Ich sehe da keinen Bug in 2k11. Es „bedenkt“ halt dieses Plugin und seine Möglichkeiten nicht ausdrücklich, das gilt aber für einige andere (wenig genutzte) Plugins auch.

Ich habe Dein Template und Deine Styles (noch) nicht getestet, habe aber ein bisschen Bauchweh damit, weil ja durchaus auch Anwendungsfälle denkbar sind, in denen dieser statische Block eben nicht in einem separaten Block unter dem Eintrag stehen soll. (Gut, die kann man ohnehin nicht alle abdecken.)

Sinnvoll nutzbar scheint mir das nur in einem angepassten Template zu sein, aber nicht in einem Default-Template – zumindest nicht, ohne dem Ding zig Theme-Options mitzugeben. Das möchte ich in 2k11 generell vermeiden.

Aber ich schaue mir das Plugin vorher definitiv noch einmal genauer im Testblog an.

YL

Re: Plugin includeentry - {$entry.plugin_display_dat} und 2k

Posted: Sat Sep 28, 2013 5:41 pm
by yellowled
Mal sehen, ob ich das Plugin richtig verstehe. Man kann damit:

A. Eintrags-„Schablonen“ anlegen, also z.B. für wiederkehrende Einträge, die immer nach dem gleichen Schema aufgebaut sind, um sich dabei Tipparbeit zu sparen und nur noch die Teile des Eintrags eingeben zu müssen, die sich ändern.

B. Statische Textblöcke erstellen, die man zufällig oder gezielt an Einträge anhängen kann.

C. Innerhalb des Eintragstextes eines Artikels Inhalte aus anderen Artikeln über Platzhalter einbinden, z.B. aber auch die statischen Textblöcke.

Der Teil, auf den Du Dich beziehst, ist B. B wird standardmäßig über die plugin_staticblock.tpl ausgegeben, man kann jedoch auch andere .tpl-Dateien dafür erzeugen und verwenden. Die Position ist auch gar nicht so wichtig, denn die kann der Autor ja theoretisch über diese „Include-Tags“ ändern.

Es braucht also (soweit ich sehe) für eine Einbindung in 2k11 nur eine „Standardposition“ im Template und eine zum Template passende Gestaltung für diese Textblöcke. „Besondere“ Gestaltungen für spezielle Textblöcke könnte man über die user.css updatesicher lösen, spezielle Formatierungen dieser Blöcke über eigene Template-Dateien (ebenfalls updatesicher) und spezielle Positionen im Eintrag, indem man die „Include-Tags“ verwendet, anstatt den Block an den Eintrag anzuhängen. Richtig?

Da die Option im Eintragseditor schon “Attach a static block” heißt, würde ich tatsächlich statische Blöcke an den Eintragsinhalt anhängen wollen – das produziert am ehesten das zu erwartende Ergebnis, wenn man nichts anpasst. Ich denke, der Default-Block sollte nicht großartig optisch angepasst sein (weil man nicht absehen kann, wofür er verwendet wird), aber es über Markup bzw. Klassen relativ leicht machen, ihn bei Bedarf anderweitig zu gestalten.

Passt?

YL

Re: Plugin includeentry - {$entry.plugin_display_dat} und 2k

Posted: Sat Sep 28, 2013 6:05 pm
by Timbalu
Ja genau!

Für dich, bzw 2k11, relevant ist wohl nur die oder eine angepasste 'plugin_staticblock.tpl' und das sie aus dem <footer> rausrückt (das war, was ich als "Bug" bezeichnete). Ob nach oben oder unten (letzteres ist default in /default und /bulletproof) ist natürlich deine Wahl.

Die zusätzlichen <div> Blöcke mit den zusätzlichen serendipity_staticblock_* Klassen sind m.E. wichtig, damit man das bei Bedarf über die user.css anpassen kann und wahrscheinlich per default auch schon etwas vorbelegt, damit die darin benutzten 2k11 Klassen auch wirken.

Ehrlich gesagt war ich mit der Frage, wozu dieser Block eigentlich dringend per default den ('author'), 'timestamp' und 'title' als "header" (siehe original) benötigt, auch noch nicht so richtig fertig. Deshalb suche ich auch vielfältige Beispiele für Nutzungen, die außerhalb von "Entry Block-Werbung" liegen. Wie gesagt kam mir da der entry-contactform request, oder vielleicht irgendwelche Signaturen, o.Ä. in den Sinn.

Re: Plugin includeentry - {$entry.plugin_display_dat} und 2k

Posted: Sat Sep 28, 2013 8:52 pm
by yellowled
Timbalu wrote:Ehrlich gesagt war ich mit der Frage, wozu dieser Block eigentlich dringend per default den ('author'), 'timestamp' und 'title' als "header" (siehe original) benötigt, auch noch nicht so richtig fertig.
Ich hab’s jetzt so committed, dass header, entry und extended entry ausgegeben werden, wenn sie Inhalt haben. Anwendungsfälle für timestamp und author sehe ich da auch nicht, und wenn, kann man sich immer noch ein angepasstes zusätzliches Template schreiben.

Das Ganze wird komplett ungestyled am Ende des Eintrags, aber im Eintragsinhalt ausgegeben (die Gestaltung erfolgt quasi über Fallback aus den generellen Styles des 2k11-Stylesheets), hat aber hinreichend Wrapper mit Klassen, um es bei Bedarf gestalten zu können.

YL

Re: Plugin includeentry - {$entry.plugin_display_dat} und 2k

Posted: Tue Oct 01, 2013 9:55 am
by garvinhicking
Hi!
@Garvin
https://github.com/s9y/additional_plugi ... y.php#L360
Müsste das nicht eher

Code: Select all

$this->staticblock['author'] = $serendipity['serendipityUser'];
heißen? ($serendipity['author']; gibt es gar nicht.)
Ja, ich glaube da hast Du Recht!

Grüße,
Garvin