Page 1 of 1
News nach Kategorie sortieren
Posted: Fri Mar 06, 2009 11:14 pm
by susiklein
Ich habe eine Newskategorie mit Unterkategorien erstellt. Nun sortiert das Modul ja nach dem eingetragenen Datum. nun habe ich die news mit folgendem Parameter {news category="Monatsnews*" summarytemplate="huki-newstemp_page" sortby="news_category" sortasc="true"} aufrufen wollen. Leider tritt keine Änderung ein. Was mache ich nun falsch?
Danke für eure Hilfe
Re: News nach Kategorie sortieren
Posted: Sat Mar 07, 2009 7:58 am
by antibart
Deine Paramater sollten folgendes ausgeben:
Zeige alle News aus der Kategorie Monatsnews INKL. aller Unterkategorien (wg *), geordnet nach Datum in umgekehrter Reihenfolge (neuester Artikel ganz unten).
sortby="news_category" bewirkt in deinem Fall nichts, da Du ja nur eine Kategorie (Monatsnews) angegeben hast. Wenn Du nach Kategorien sortieren möchtest, müssen es natürlich mehrere Kategorien sein.
Dein Ziel scheint zu sein (so ganz wird das aus deiner Frage nicht klar), nach Unterkategorien zu sortieren.
EDIT: Du kannst natürlich mal die Hauptkategorie weglassen und nur die Unterkategorien im Parameter category auflisten (getrennt durch Komma).
Ansonsten bliebe dir nur die Lösung, aus den Unterkategorien Hauptkatgorien zu machen.
Re: News nach Kategorie sortieren
Posted: Sat Mar 07, 2009 10:12 am
by susiklein
Hab ich versucht.
{news category="Januar,Februar" summarytemplate="huki-newstemp_page" sortby="news_category" sortasc="true"}
steht jetzt da.
Aber nach wie vor wird nichts so sortiert, wie es sein sollte.
Re: News nach Kategorie sortieren
Posted: Sat Mar 07, 2009 10:29 am
by antibart
...
Ich hab (teilweise) Mist erzählt ... und die falsche Spekulation demnach mal weg editiert.
Eben nochmal getestet
Der Tipp "Nur Unterkategorien anzuzeigen", geht zwar... wie Du eben ja auch selbst auch festgestellt hast...
Scheinbar hat aber der Parameter sortasc="true' dennoch keine Wirkung auf Unterkategorien. Sie werden immer in der gleichen Reihenfolge gezeigt.
Demnach unterliegt natürlich die Reihenfolge der Kategorien auch irgendeiner Regel . Wie Du sie im Parameter aufistet, ist dabei egal...
Ich vermute, es ist der Erstellungszeitpunkt der Kategorie. Also so, wie sie in der Liste aufgezeigt werden.
Lösch doch zum Test mal beide Unterkategorien und erstelle sie in umgekehrter Reigenfolge neu.
...
Re: News nach Kategorie sortieren
Posted: Sat Mar 07, 2009 11:38 am
by antibart
antibart wrote:
Ich vermute, es ist der Erstellungszeitpunkt der Kategorie. Also so, wie sie in der Kargorie aufgeziegt werden.
Ich hab es mal getestet. es scheint so zu sein: die Reihenfolge der Kategorien unterliegt scheinbar dem Erstellungszeitpunkt und das lässt sich durch sortasc nicht ändern. Also musst Du die Kategorien noch einmal erstellen.
Re: News nach Kategorie sortieren
Posted: Sun Mar 08, 2009 6:46 am
by cyberman
Hab gerade mal eben in die action.default.php des News-Moduls reingeschaut
if (isset($params['sortby']))
{
if ($params['sortby'] == 'news_category')
{
$query1 .= "ORDER BY 'long_name', 'news_date' ";
}
else if ($params['sortby'] == 'random')
{
$query1 .= "ORDER BY RAND() ";
$sortrandom = true;
}
else if( $params['sortby'] == 'news_extra')
{
$query1 .= "ORDER BY mn.news_extra ";
}
else {
$query1 .= "ORDER BY mn." . str_replace("'", '', str_replace(';', '', $params['sortby'])) . " ";
}
}
else
{
$query1 .= "ORDER BY news_date ";
}
Interessant ist die rote Zeile (=128-130) - trotz des Parameters sortby='news_category' wird nach news_date sortiert
Hab gerade nix zu testen da, man könnte die Zeile
Code: Select all
$query1 .= "ORDER BY 'long_name', 'news_date' ";
aber mal durch
Code: Select all
$query1 .= "ORDER BY news_category";
ersetzen.
Re: News nach Kategorie sortieren
Posted: Sun Mar 08, 2009 8:41 pm
by NaN
Ich würde da eher einfach das 'news_date' rausnehmen.
Die Spalte für die Kategorie heißt - soweit ich es in Erinnerung habe - tatsächlich 'long_name'.
Re: News nach Kategorie sortieren
Posted: Mon Mar 09, 2009 9:50 pm
by cyberman
Gerade mal geschaut ... 'news_category_name' und 'long_name' enthält die Kategorie.