Posting-Reihenfolge ändern

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Tine

Posting-Reihenfolge ändern

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Posting-Reihenfolge ändern

Post 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
# 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/
Tine

Post 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
Tine

Post by Tine »

...oder verrat mir, wie ich die Postinglänge verändere.

Danke für Deine Hilfe.
Tine
Tine

Post by Tine »

Ich hab mal gegooglet:

Statt ACS hab ich mal ASC da reingeschrieben, und nun kommt auch keine Fehlermeldung mehr. :D
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Ja, sorry, das war leider ein TIppfehler bei mir :)

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/
Tine

Post by Tine »

Kein Problem, kann ja mal passieren.

Vielen Dank für's helfen. :)
Tine

Post by Tine »

Achso, nochwas: Wenn ich da mehrere Kategorien so sortieren will, welchen Operator muss ich nehmen? OR?

Sorry, ich weiss, ich nerve etwas... :roll:
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Genau, entweder den "OR" Operator, oderhalt den IF-Block für jedeKategorie kopieren..

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/
Post Reply