Page 1 of 2

Archive sehr eigenartig (Kategorie-Modus?)

Posted: Mon Jul 17, 2006 11:17 pm
by stm999999999
Mir ist gerade folgendes passiert/aufgefallen:

Wenn ich auf eine Kategorie klicke und dann im Archiv-Plugin auf einen Monat, dann bekomme ich auf einmal (bislang fiel es mir jedenfalls nicht auf) nur noch die Artikel angezeigt, die zu Monat UND Kategorie passen? Ehrlich gesagt, etwas irritierend, weil man als Besucher da keinen Zusammenhang sieht, nur weil man vorher in einer Kategorie geguckt hat ...

Und man erkennt diesen Fehler IMO auch nicht, weil im Title steht einfach nur "Einträge für Juli 2006" und nicht was wie "Einträge für Juli 2006 in Kategorie X"

dito für Tags statt Kategorien.

Daher zwei Bitten: Einmal vielleicht dieses Verhalten generell im Plugin konfigurieren zu können und zum anderen, sollte im Title ein Hinweis auftauchen, wie oben geschrieben.

Nebenbei: Ich lasse mir gerade wie bei den Kategorien hinter den Monaten im Archiv-Plugin die Artikelzahl anzeigen: Da steht für Juli eine 30, obwohl es nur 12 Artikel gibt!? Zählt das Plugin da Artikel in mehreren Kategorien mehrfach?

Re: Archive sehr eigenartig (Kategorie-Modus?)

Posted: Tue Jul 18, 2006 11:39 am
by garvinhicking
Hi!

Also wenn ich in einer Kategorie bin die auch zeitlich eingeschränkt ist, steht bei mir im Titel des Blogs der Kategoriename, und darunter "Einträge für Juli 2006". So ist es auch gedacht, und ist es immer gewesen. :)

Macht ja auch user-interfacemäßig Sinn, IMHO.

Evtl. gibt dein Template ja head_title und head_subtitle nicht korrekt mit aus?

Da es mit dem Plugin nichts zu tun hat sondern ein generelles s9y verhalten, müsste man dafür eine prinzipielle neue Option einfügen. Da würde ich mich nicht gegen sträuben, wenn das jemand machen möchte. :)
Nebenbei: Ich lasse mir gerade wie bei den Kategorien hinter den Monaten im Archiv-Plugin die Artikelzahl anzeigen: Da steht für Juli eine 30, obwohl es nur 12 Artikel gibt!? Zählt das Plugin da Artikel in mehreren Kategorien mehrfach?
Hm, könntest Du das versuchen zu debuggen ob es von mehreren KAtegorien abhängig ist? Das würde mir einiges an Zeit sparen. :)

Grüße,
Garvin

Re: Archive sehr eigenartig (Kategorie-Modus?)

Posted: Thu Jul 20, 2006 8:29 pm
by stm999999999
Also wenn ich in einer Kategorie bin die auch zeitlich eingeschränkt ist, steht bei mir im Titel des Blogs der Kategoriename, und darunter "Einträge für Juli 2006". So ist es auch gedacht, und ist es immer gewesen. :)

Macht ja auch user-interfacemäßig Sinn, IMHO.
Äh, ja, jetzt wo Du das sagst, fällt mir das auch auf. Hm, da ist ja wirklich was! :-)

Hoffentlich sind meine Besucher nicht so begriffsstutzig wie ich! ;->



Mein Problem: Wenn man in einer Kategorie ist und dann ins Archiv/den Kalender geht, dann ist in diesem Augenblick kein Hinweis, daß sich diese Aktion auf die akutelle Kategeroie bezieht. Vielleicht zum Überlegen: Irgendwie einen Hinweis im Archiv "Kategorie-Archiv" oder "Archiv für $Kategorie-Name"?



Nebenbei: Ich lasse mir gerade wie bei den Kategorien hinter den Monaten im Archiv-Plugin die Artikelzahl anzeigen: Da steht für Juli eine 30, obwohl es nur 12 Artikel gibt!? Zählt das Plugin da Artikel in mehreren Kategorien mehrfach?
Hm, könntest Du das versuchen zu debuggen ob es von mehreren KAtegorien abhängig ist? Das würde mir einiges an Zeit sparen. :)
Das kann ich gerne versuchen, nur weiß ich im Moment nicht wirklich wo ich da anfangen soll, bzw. was genau Du wissen willst?

Re: Archive sehr eigenartig (Kategorie-Modus?)

Posted: Fri Jul 21, 2006 10:29 am
by garvinhicking
Hi!

Prinzipiell könntest Du so einen Hinweis auf die aktuelle Kategorie natürlich selber in die plugin_categories.tpl reinbasteln (und $category_info z.B. auslesen).

Aber die Idee gefällt mir gut, dass im Titel o.ä. des Seitenleisten-Plugins einzubauen. Ich versuche es mir zu merken und in Kürze umzusetzen. Tritt mich in ner Woche nochmal falls ich es vergessen sollte ;)
Das kann ich gerne versuchen, nur weiß ich im Moment nicht wirklich wo ich da anfangen soll, bzw. was genau Du wissen willst?
Du könntest ein paar Testkategorien erstellen und dann Einträge darein setzen und schauen wie sich die Anzahl verändert wenn Du einen Eintrag mehreren Kategorien zuweist?

Viele Grüße,
Garvin

Re: Archive sehr eigenartig (Kategorie-Modus?)

Posted: Fri Jul 21, 2006 5:16 pm
by stm999999999
Aber die Idee gefällt mir gut, dass im Titel o.ä. des Seitenleisten-Plugins einzubauen. Ich versuche es mir zu merken und in Kürze umzusetzen. Tritt mich in ner Woche nochmal falls ich es vergessen sollte ;)
OK, wenn Du micht tritts, wenn ich vergessen sollte zu treten! :-)

Eines noch, um noch ein Problem dabei anzusprechen:

Dasselbe Verhalten gibt es ja auch, wenn man im Kalender ein Monat/Tag anklickt - ich weiß nur rein optisch nicht, wo man dort einen Hinweis reinschreiben sollte :-(
Du könntest ein paar Testkategorien erstellen und dann Einträge darein setzen und schauen wie sich die Anzahl verändert wenn Du einen Eintrag mehreren Kategorien zuweist?
Ok, mache ich.

Posted: Fri Jul 21, 2006 6:20 pm
by stm999999999
OK, ich habe ein Muster gefunden:

a) s9y zählt doppelt:

Wenn ich einen Artikel alleine in einer Kategorie (ohne Unterkategorien) stehen habe, dann zeigt das Archiv (2). Wenn ich zwei drin habe, dann (4).

b) Konfussion mit Unterkategorien:

es bleibt bei a) s9y zähtl doppelt. Aber als Basis verwendet das Archiv eine weitere fehlerhafte Basis:

Hat ein Artikel zwei Kategorien, eine davon Unterkategorie der anderen, dann zählt dieser Artikel je Kategorie, also hier zweimal. Und dann nach a) nochmal doppelt.

Folgende Voraussage kann getroffen werden: Wähle Kategorie A. Zähle in der Kategorienanzeige die Zahlen in () für diese Kategorie und jede Unterkategorie, verdopple das und Du bekommst die Zahl im Archiv-Plugin.

Eine Kategoriezuweisung, die parallel zur angezeigten Kategorie ist, schadet hingegen nicht.

Oder auf Ebene der Artikel gezählt: Ein Artikel zählt für jede (Unter)kategorie einzeln.


Beispiel auf blog.stephan.manske-net.de

test3-2 enthält einen Artikel mit nur einer Kategorie -> Archiv (2)

test3 enthält einen Artikel mit einer Kategorie (zählt als 1), test3-1 enthält 2 Artikel, test3-2 einen. Macht zusammen 4, obwohl der in test3-2 auch bereits in test3-1 gezählt wurde. Und dann nochmal x2=8. Voila.

Richtig wäre (so auch die Anzahl der angezeigten Artikel in der Übersicht) 3.

Posted: Mon Jul 24, 2006 1:10 pm
by garvinhicking
Hi!

Okay, sowas hatte ich befürchtet. Das SQL dafür ist sehr komplex, dass mus warten bis hier wieder Temperaturen unter 25° stattfinden. :)

Grüße,
Garvin

Posted: Mon Jul 24, 2006 2:05 pm
by stm999999999
OK - Danke, daß Du Dich dann also heute nacht drum kümmerst! :P

Im Ernst: Ich will mein Blog demnächst "richtig" online gehen lassen, da würde ich alle Testeinträge gerne entfernen. Brauchst Du diese hier noch, oder kannst Du das in einer Testinstallation nachvollziehen?

Posted: Mon Jul 24, 2006 4:08 pm
by garvinhicking
Hi!

Nein, die Testeinträge kannst du ruhig löschen, ich weiß nun wie ich das Problem reproduzieren und analysieren kann, danke. Es kann jedoch eine Weile dauern bis ich das hinkriege. Das ist wirklich Gehirnakrobatik. :)

Viele Grüße,
Garvin

Posted: Mon Jul 24, 2006 4:23 pm
by stm999999999
Wenn Du mir sagtst, in welchen Dateien/Funktionen das ganze gemacht wird, dann kann ich (vielleicht!) auch mal einen Blick drauf werfen.

Posted: Mon Jul 24, 2006 4:32 pm
by garvinhicking
Hi!

Das müsste in der include/plugins_internal.inc.php sein, Klasse serendipity_archives_plugin, methode generate_content.

Dort nach $show_count suchen.

Das wiederrum spricht die serendipity_fetchEntries() (include/functions_entries.inc.php) an, die die zentrale Anlieferung von Daten abgibt. Darin kannst Du dann $query ausgeben was als SQL Abfrage verwendet wird. Besonderes Augenmerk ist dort aof GROUP BYs und COUNTs zu werfen. Und zu beachten dass MySQL und PostgreSQL und SQLite alle dre unterschiedliche Arten von Aggregatsfunktionen/Gruppierungen auswerten und jeweils unterschiedlich mit DISTINCT umgehen.

Viele Grüße,
Garvin

Posted: Mon Jul 24, 2006 4:42 pm
by stm999999999
Shit, MySQL habe ich ja mal gelernt, aber die anderen!?!?

OK, wenn ich dafür mal die Zeit haben sollte ...

Posted: Mon Jul 24, 2006 4:48 pm
by garvinhicking
Hi!

Das zentrale problem von Pgsql ist, dass man nach "GROUP BY" ALLE Spalten angeben muss.

SELECT id, name GROUP BY name

ging also nicht, sondern nur:

SELECT id, name GROUP BY name, id

Was wiederrum dann bei 3 gleichen Namen 3 Ergebnisse liefern würde, bei MySQL jedoch nur 1 Ergebnisset. Daher muss man da mit "DISTINCT" arbeiten, was wiederum SQLite nicht mag und man es daher mit einem IF davor/danachsetzen muss. :)

Grüße,
Garvin

Posted: Wed Aug 02, 2006 11:53 pm
by stm999999999
Ok, ich bin noch nicht dazu gekommen, mich in die Untiefen dieser sql-Abfragen zu stürzen. Allerdings fiel mir eben spontan etwas ein, was vielleicht weiterhelfen könnte:

Auf jeder Überblicksseite findet sich doch so ein Footer der Art " (Seite 1 von 1, insgesamt 4 Einträge)"

Dort stimmt die Anzahl!

Das heißt z.B. auf http://blog.stephan.manske-net.de/archi ... 7/C10.html findet sich ein Eintrag. Unten steht auch sauber "1". Aber im Archiv-Plugin "2"

Oder auch hier http://blog.stephan.manske-net.de/archives/2006/07.html

Gemäß "meiner Formel" 8 Kategorien, die alle parallel zueinander sind, mal 2 = 16 in der Seitenleiste. In Wahrheit nur 4 Einträge und voila unten steht auch "4 Einträge"!

Also irgendwie muß schon sql-Code existieren, der richtig zählt! Und nu einfach adaptieren! :-)

Posted: Thu Aug 03, 2006 2:52 pm
by garvinhicking
Hi!

Ein klares Jein. :)

Diese Abfrage gezieht sich leider auf die aktuellen Darstellungsoptionen, während das Seitenleistenplugin in den Archiven leider das auf die Anzahl pro Monat herunterbrechen muss und daher nach anderen Kriterien gruppieren und sortieren muss. :)

Viele Grüße,
Garvin