Änderungen in der plugin_internal.inc.php

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Manja
Regular
Posts: 13
Joined: Wed Aug 30, 2006 10:43 am
Location: Germany
Contact:

Änderungen in der plugin_internal.inc.php

Post by Manja »

Erstmal hallo an alle Forenleser und fleißigen Helferlein!

Nachdem mein Blog läuft (v. 1.0.1) und ich mit Hilfe der bereits im Forum vorhandenen Themen die meisten technischen Problemchen gelöst habe, bleiben doch noch ein paar Fragen übrig, die die optische Anpassung betreffen.
Das CSS steht soweit, allerdings bin ich mit den internen Plugins noch nicht so zufrieden - speziell mit dem Categories-Plugin.
Erstmal eine Frage vorweg: im Admin-Bereich, wo die Template-Verwendung für das Categories-Plugin erst aktiviert werden muss, steht der Hinweis, dass dies mit Performance-Einbußen verbunden ist. Wie stark macht sich das denn bemerkbar? Ich weiß ja nicht, ob das von der Anzahl der Kategorien und/oder Einträge abhängt, deshalb habe ich es bei meinem "jungfräulichen" Blog nicht ausprobiert. Generell würde ich schon gerne die tpl dafür verwenden, aber wenn die Geschwindigkeit spürbar zu wünschen übrig lässt, muss ich mir halt das interne Plugin zurechtbasteln ...
Womit wir gleich beim nächsten Punkt wären: ich habe mir mal die plugin_internal.inc.php angesehen um zu sehen, was wo und wie ausgegeben wird. Da würde ich gerne ein paar Sachen ändern, allerdings nicht ohne Rückfrage, ob das so in Ordnung ist, da meine php-Kenntnisse doch eher überschaubar sind ...

1.
Categories-Plugin: die Liste dafür wird ja schon mit id="serendipity_categories_list" versehen (Zeile 1425), das würde ich lieber per externer CSS-Datei machen und die Inline-Styles dahinter rauslöschen (warum stehen die da überhaupt?).

2.
Categories-Plugin: der Link "Alle Kategorien" soll weg, den finde ich irgendwie unnütz, da man mit dem Klick auf die Blog-Startseite das selbe erreicht (korrigiert mich, falls ich was übersehen habe ...).
Ist es in Ordnung, den Code dafür einfach zu löschen (Zeile 1510-1518)? Müsste doch gehen, ist ein if-Block:

Code: Select all

if (!$smarty) {
            $html .= sprintf(
                '<div class="category_link_all"><br /><a href="%s" title="%s">%s</a></div>',

                $serendipity['serendipityHTTPPath'] . $serendipity['indexFile'],
                ALL_CATEGORIES,
                ALL_CATEGORIES
            );
}
3.
Analog zu Frage 1 würde ich noch gern diverse andere Inline-Styles entfernen und in die style.css auslagern (beim Syndication-Plugin z.B.). Kann ich das machen, oder sind die Inline-Styles aus einem bestimmten Grund vorhanden?

4.
Abschließende Frage: die geänderte plugin_internal.inc.php muss die alte ersetzen im Ordner 'include', richtig? (Ich frage deshalb, weil bei einigen Templates auch verschiedene *.inc.php-Dateien im Template-Ordner zu finden sind.)

Puh ... jetzt habe ich erstmal meinen Merkzettel abgearbeitet und hoffe nun, dass mir jemand helfen kann.

Dickes Dankeschön schonmal im Voraus,
Grüße Manja
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Änderungen in der plugin_internal.inc.php

Post by garvinhicking »

Hi!

Super, das freut ja erstmal zu hören. :)

Was die Performance-Einbußen angeht, das kann man leider so pauschal nicht sagen. Ich schätze, dass die Erzeugung des Kategorie-Plugins ca. 30-40% langsamer mit Smarty ausgeführt wird, als intern. Absolut fällt das evtl. nicht ins gewicht, wenn das plugin z.b. 0.12 statt 0.14 sekunden benötigt. Das musst Du also leider für Dich entscheiden. :)

Die internal Plugin-Date zu editieren würde ich Dir nicht empfehlen. Dadurch werden zukünftige Updates für Dich schwieriger, weil Du jedesmal die Datei überarbeiten müsstest.
1.
Categories-Plugin: die Liste dafür wird ja schon mit id="serendipity_categories_list" versehen (Zeile 1425), das würde ich lieber per externer CSS-Datei machen und die Inline-Styles dahinter rauslöschen (warum stehen die da überhaupt?).
Der Grund, warum wir Smarty-Templates eingefügt haben war genau der: Einerseits wollten Leute die inline-Styles bei sich löschen, andererseits werden die inline-styles aber benötigt um in jedem template identische ausgaben zu erzeugen.

Zu 2-4: Ja, den könntest Du löschen. Wie aber oben geschrieben, ich empfehle nicht an diese plugin zu doktorn. Maximal würde ich Dir empfehlen die Pluginklasse als 'Serendipity_event_mycategory.php" auszulagern und somit dein eigenes kategorien-plugin zu installieren.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Manja
Regular
Posts: 13
Joined: Wed Aug 30, 2006 10:43 am
Location: Germany
Contact:

Post by Manja »

Hallo Garvin,

das war ja eine schnelle Antwort - da habe ich ja dreimal solange an meinem Post gesessen :shock: :D

Nochmal zur Performance des Kategorie-Plugins: du schreibst, dass die Erzeugung des Plugins langsamer abläuft. Du meinst das "Holen" der tpl-Vorlage mittels Smarty? Denn das Auslesen der Kategorien und Quellcode schreiben mittels php muss ja so oder so erfolgen, egal ob internes Plugin oder externe tpl. Ergo kann ich das mit meinem nackten Blog ausprobieren, weil sich an der Geschwindigkeit auch mit "vollem" Blog nichts verändert, weil der Vorgang an sich der selbe ist, richtig?

Zu der serendipity_event_mycategory.php-Idee:
Nachdem ich mir gerade fünf Minuten lang höchst fasziniert diese Idee habe durch den Kopf gehen lassen ... eine Frage dazu: geht das wirklich so einfach? Code auslagern, Datei in entsprechenden Ordner packen und ins plugin-Verzeichnis hochladen? Sollte dann in der Admin-Oberfläche verfügbar sein, denke ich. Hm, klingt spannend! Aber trotzdem muss ich bei einem s9y-Update prüfen, ob ihr irgendwelche Verbesserungen oder neue Schmankerl in das originale interne Kategorie-Plugin eingebaut habt ...
Du meinst, die Performance wäre mit so einem Selfmade-Plugin besser als mit dem Smarty-Template?

Eine Sache noch zu den Inline-Styles: ich dachte mir schon, dass du jetzt bestimmt die Template-Kompatibilität als Grund nennst :wink: . Es wäre doch aber auf jeden Fall eine Überlegung wert, diese Styles explizit in das Standard-Stylesheet zu übernehmen und zu kommentieren. Einerseits vermute ich, dass ein fehlendes oder gesetztes "padding-bottom: 2px;" nicht wirklich ein Layout zerreißt und andererseits kann man sich z.B. beim Kategorie-Plugin schonmal totsuchen bei der Frage, warum keine Listensymbole erscheinen und wo man das ändert ... Naja, nur so ein Gedanke ...

Aber danke erstmal für deine schnelle Hilfe :)

Grüße Manja
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!
Nochmal zur Performance des Kategorie-Plugins: du schreibst, dass die Erzeugung des Plugins langsamer abläuft. Du meinst das "Holen" der tpl-Vorlage mittels Smarty? Denn das Auslesen der Kategorien und Quellcode schreiben mittels php muss ja so oder so erfolgen, egal ob internes Plugin oder externe tpl. Ergo kann ich das mit meinem nackten Blog ausprobieren, weil sich an der Geschwindigkeit auch mit "vollem" Blog nichts verändert, weil der Vorgang an sich der selbe ist, richtig?
Wenn Smarty benutzt wird, muss das Array mit Kategorien zweimal durchlaufen werden, plus die Variablen in ein .tpl zugewiesen werden und das .tpl geparst werden. Je mehr Kategorien Du also später hast, desto länger wird das Smarty-Template geparst werden; man kann also nicht einfach pauschal sagen "0.12s dauert das smarty parsing, also kommt das oben drauf". Es verläuft also eher nicht-linear anhand der Kategorienanzahl.
Zu der serendipity_event_mycategory.php-Idee:
Nachdem ich mir gerade fünf Minuten lang höchst fasziniert diese Idee habe durch den Kopf gehen lassen ... eine Frage dazu: geht das wirklich so einfach? Code auslagern, Datei in entsprechenden Ordner packen und ins plugin-Verzeichnis hochladen? Sollte dann in der Admin-Oberfläche verfügbar sein, denke ich. Hm, klingt spannend! Aber trotzdem muss ich bei einem s9y-Update prüfen, ob ihr irgendwelche Verbesserungen oder neue Schmankerl in das originale interne Kategorie-Plugin eingebaut habt ...
Ja, so einfach geht das mit Serendipity's toller Plugin-API. :) Den Code musst Du natürlich so anpassen dass Du die klasse von "serendipity_categories_plugin" umbenennst in "serendipity_plugin_mycategories" oder so. Auf Updates prüfen musst Du dann später natürlich, das stimmt. Aber zumindest verliert so dein plugin erstmal nach dem update nicht an funktion für dich, sondern du musst nur neue features nachrüsten.
Du meinst, die Performance wäre mit so einem Selfmade-Plugin besser als mit dem Smarty-Template?
Definitiv. Versprochen.
Eine Sache noch zu den Inline-Styles: ich dachte mir schon, dass du jetzt bestimmt die Template-Kompatibilität als Grund nennst :wink: . Es wäre doch aber auf jeden Fall eine Überlegung wert, diese Styles explizit in das Standard-Stylesheet zu übernehmen und zu kommentieren.
Das würde wenig helfen, denn die inline styles müsste man weiterhin drinhalten, und hätte dann nur doppelt soviel CSS - und die leute würden sich wundern warum sich nichts ändert wenn man in der style.css editiert. :)
Einerseits vermute ich, dass ein fehlendes oder gesetztes "padding-bottom: 2px;" nicht wirklich ein Layout zerreißt
Da vermutest Du falsch ;) Du hättest solche Templates mal sehen sollen, es gibt mehrere die das padding weglassen und dadurch die XML-Icons überlappen würden. :)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Manja
Regular
Posts: 13
Joined: Wed Aug 30, 2006 10:43 am
Location: Germany
Contact:

Post by Manja »

Wenn Smarty benutzt wird, muss das Array mit Kategorien zweimal durchlaufen werden, plus die Variablen in ein .tpl zugewiesen werden und das .tpl geparst werden. Je mehr Kategorien Du also später hast, desto länger wird das Smarty-Template geparst werden; man kann also nicht einfach pauschal sagen "0.12s dauert das smarty parsing, also kommt das oben drauf". Es verläuft also eher nicht-linear anhand der Kategorienanzahl.
Hm, okay, dann ist die tpl wohl doch keine so gute Idee, wenn man noch nicht weiß, wieviele Kategorien es mal werden sollen. Nicht dass das Blog dann irgendwann unvermittelt ab der 27. Kategorie den Schleichgang einlegt ...
Ja, so einfach geht das mit Serendipity's toller Plugin-API. :) Den Code musst Du natürlich so anpassen dass Du die klasse von "serendipity_categories_plugin" umbenennst in "serendipity_plugin_mycategories" oder so.
Habe ich gestern Abend und heute probiert. Hat nicht geklappt. Jetzt wollte ich mich gerade hier ausheulen und stelle beim nochmaligen Lesen deines Posts fest, dass ich bei der Umbenennung einfach nur das Wort "plugin" an der falschen Stelle stehen hatte :oops:
Jetzt funktioniert das einfach so! Da bin ich glatt schon wieder fasziniert ...
Das würde wenig helfen, denn die inline styles müsste man weiterhin drinhalten, und hätte dann nur doppelt soviel CSS - und die leute würden sich wundern warum sich nichts ändert wenn man in der style.css editiert. :)
Auch wieder wahr. Aber ein kompletter Inline-Style-Kahlschlag wäre trotzdem eine Option. Vielleicht mit Serendipity 2.0? :wink:
Du hättest solche Templates mal sehen sollen, es gibt mehrere die das padding weglassen und dadurch die XML-Icons überlappen würden. :)
Die Icons sind so klein, da kann fast nichts überlappen. Aber nun gut, bei mir bekommen sie ein padding-top mit 2px, weil sie aufgrund des Zeilenabstandes sonst an der "Decke" kleben würden, was dein Argument schon wieder unterstützt :)

Viele Grüße
Manja
Post Reply