Page 1 of 1
Posting-Reihenfolge ändern
Posted: Fri Jan 06, 2006 3:33 pm
by Tine
Hallo,
Ich würde gerne wissen, ob es irgend möglich ist, die Posting-Rehienfolge in einigen Kategorien so zu verändern, dass der älteste Eintrag immer oben steht, und die neueren dann darunter. Ich brauche das für eine ziemlich lange Geschichte, die ich leider nicht in ein einziges Posting reingequetscht bekomme. Daher sollte der erste Eintrag (also das erste Kapitel) logischerweise oben stehen, wie bei 'nem Buch.
Die *normalen* Weblog-Kategorien sollen natürlich weiterhin in der alten Art und Weise die Posts anzeigen.
Kann mir jemand erklären, wie das geht? Oder ob es überhaupt geht? Und falls nicht, wie schaffe ich es, ein Posting "beliebig" lang werden zu lassen, oder geht das wegen der Table Tags nicht?! Hab mal gehört, dass man einen Table nicht beliebig erweitern kann, ist das richtig? Oder bin ich da auf dem Holzweg?
Vielen Dank.
Tine
Re: Posting-Reihenfolge ändern
Posted: Fri Jan 06, 2006 3:41 pm
by garvinhicking
Ja, das geht indem Du mit PHP-Code deine include/genpage.inc.php editierst. Den Code dort kannst Du theoretisch mit etwas PHP-Wissen auch in die config.inc.php Deines Templates auslagern.
Grob ginge das so, Du suchst den Tei:
Code: Select all
case 'read':
if (isset($serendipity['GET']['id'])) {
$entry = array(serendipity_fetchEntry('id', $serendipity['GET']['id']));
if (!is_array($entry) || count($entry) < 1) {
unset($serendipity['GET']['id']);
$entry = array(array());
}
serendipity_printEntries($entry, 1);
} else {
serendipity_printEntries(serendipity_fetchEntries($serendipity['range'], true, $serendipity['fetchLimit']));
}
break;
und änderst das in:
Code: Select all
case 'read':
if (isset($serendipity['GET']['id'])) {
$entry = array(serendipity_fetchEntry('id', $serendipity['GET']['id']));
if (!is_array($entry) || count($entry) < 1) {
unset($serendipity['GET']['id']);
$entry = array(array());
}
serendipity_printEntries($entry, 1);
} else {
$order = 'timestamp DESC';
if ($serendipity['GET']['category'] == 3) {
$order = 'timestamp ACS';
}
serendipity_printEntries(serendipity_fetchEntries($serendipity['range'], true, $serendipity['fetchLimit'], null, null, $order));
}
break;
Dort habe ich eine IF-Abfrageeingefügt,die die Sortierreihenfolge umgekrht bei Kategorie #3. Das kannst Du für beliebige andereKategorien dann auch einfügen.
Das wäre die einfachsteMethode.
Du kannst Postings so lang werden lassen, wie Du magst.
Viele Grüße,
Garvin
Posted: Fri Jan 06, 2006 3:58 pm
by Tine
Okay, ich hab das so gemacht, aber leider kommt folgende Fehlermeldung:
Code: Select all
Query failed:
SELECT
e.id,
e.title,
e.timestamp,
e.comments,
e.exflag,
e.authorid,
e.trackbacks,
e.isdraft,
e.allow_comments,
e.last_modified,
a.realname AS author,
a.email
, e.body, e.extended
FROM
serendipity_entries AS e
LEFT JOIN serendipity_authors a
ON e.authorid = a.authorid
LEFT JOIN serendipity_entrycat ec
ON e.id = ec.entryid
LEFT JOIN serendipity_category c
ON ec.categoryid = c.categoryid
LEFT JOIN serendipity_authorgroups AS acl_a
ON acl_a.authorid = 1
LEFT JOIN serendipity_access AS acl_acc
ON ( acl_acc.artifact_mode = 'read'
AND acl_acc.artifact_type = 'category'
AND acl_acc.artifact_id = c.categoryid
)
WHERE ( c.category_left BETWEEN 2 AND 3) AND e.timestamp <= '1136558807' AND (
c.categoryid IS NULL
OR ( acl_acc.groupid = acl_a.groupid OR acl_acc.groupid = 0)
OR ( acl_acc.artifact_id IS NULL
)
)
GROUP BY e.id
ORDER BY timestamp ACS
LIMIT 15
/ You have an error in your SQL syntax near 'ACS LIMIT 15' at line 43
Hab bloß Copy & Paste gemacht, da kann man nicht allzuviel falsch machen...*?* Kannst Du mir nochmal helfen, bitte?
Tine
Posted: Fri Jan 06, 2006 4:21 pm
by Tine
...oder verrat mir, wie ich die Postinglänge verändere.
Danke für Deine Hilfe.
Tine
Posted: Fri Jan 06, 2006 5:33 pm
by Tine
Ich hab mal gegooglet:
Statt ACS hab ich mal ASC da reingeschrieben, und nun kommt auch keine Fehlermeldung mehr.

Posted: Fri Jan 06, 2006 6:33 pm
by garvinhicking
Ja, sorry, das war leider ein TIppfehler bei mir
Grüße,
Garvin
Posted: Sat Jan 07, 2006 11:41 am
by Tine
Kein Problem, kann ja mal passieren.
Vielen Dank für's helfen.

Posted: Sat Jan 07, 2006 11:58 am
by Tine
Achso, nochwas: Wenn ich da mehrere Kategorien so sortieren will, welchen Operator muss ich nehmen? OR?
Sorry, ich weiss, ich nerve etwas...

Posted: Sat Jan 07, 2006 12:53 pm
by garvinhicking
Genau, entweder den "OR" Operator, oderhalt den IF-Block für jedeKategorie kopieren..
Viele Grüße,
Garvin