Saerdnaers Topics Order Hack - Nach Bewertung sortieren?

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Candy
Mitglied
Beiträge: 314
Registriert: 09.11.2002 21:15

Beitrag von Candy »

Hab sie hier mal hochgeladen search.php

Grüße Candy
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

okay dann wollen wir mal....
search.php:
suchen:

Code: Alles auswählen

$sort_by_types = array($lang['Sort_Time'], $lang['Sort_Post_Subject'], [...]
danach einfügen:

Code: Alles auswählen

$sort_by_types[] = 'Bewertung'; // ADDED BY order by rating
suchen:

Code: Alles auswählen

        //
        // Look up data ...
        //
        if ( $search_results != '' )
        {
danach einfügen:

Code: Alles auswählen

          // BEGIN order by rating
                if ( $sort_by == 8 )
                {
                        $toh_sql1 = ', AVG(rating) AS rating';
                        $toh_sql2 = 'LEFT JOIN ' . RATE_TABLE . ' r ON r.topic_id = t.topic_id ';
                        $toh_sql3 = ' GROUP BY ' . ( ( $show_results == 'posts' ) ? 'p.post_id' : 't.topic_id' );
                }
                else
                {
                        $toh_sql1 = '';
                        $toh_sql2 = '';
                        $toh_sql3 = '';
                }
                // END order by rating
suchen:

Code: Alles auswählen

                        $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
                                FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
                                WHERE p.post_id IN ($search_results)
                                        AND pt.post_id = p.post_id
                                        AND f.forum_id = p.forum_id
                                        AND p.topic_id = t.topic_id
                                        AND p.poster_id = u.user_id";
im gefunden suchen:

Code: Alles auswählen

u.user_sig_bbcode_uid
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql1
im oben gefunden suchen:

Code: Alles auswählen

POSTS_TEXT_TABLE . " pt
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql2
nach dem oben gefundenem einfügen:

Code: Alles auswählen

// ADDED  $toh_sql1 AND  $toh_sql2 BY order by rating
suchen:

Code: Alles auswählen

                        $sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time 
                                FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
                                WHERE t.topic_id IN ($search_results)
                                        AND t.topic_poster = u.user_id
                                        AND f.forum_id = t.forum_id
                                        AND p.post_id = t.topic_first_post_id
                                        AND p2.post_id = t.topic_last_post_id
                                        AND u2.user_id = p2.poster_id";
im oben gefundenem suchen:

Code: Alles auswählen

p2.post_time
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql1
im oben gefundenem suchen:

Code: Alles auswählen

USERS_TABLE . " u2
danach in der gleichen zeile einfügen:

Code: Alles auswählen

 $toh_sql2
nach dem oben gefundenem einfügen:

Code: Alles auswählen

// ADDED  $toh_sql1 AND  $toh_sql2 BY order by rating
suchen:

Code: Alles auswählen

$sql .= " ORDER BY ";
ersetzen durch:

Code: Alles auswählen

$sql .= $toh_sql3 . " ORDER BY "; // ADDED  . $toh_sql3 BY order by rating
suchen:

Code: Alles auswählen

                        case 7:
                                $sql .= 't.topic_replies';
                                break
danach einfügen:

Code: Alles auswählen

                        // BEGIN order by rating
                        case 8:
                                $sql .= 'IF(rating = NULL, 0, rating)';
                                break;
                        // END order by rating
das wärs...
sollte funktionieren ;-)

ah
Zuletzt geändert von saerdnaer am 22.01.2003 16:47, insgesamt 4-mal geändert.
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

Hi,
ich habe nun in mein Board auch deinen Mod für die Sortierung nach Bewertung im Sort Search Results Mod eingebaut aber ich irgendwo scheint da noch ein problem zu sein denn ich bekomme diese Fehlermeldung wenn ich nach Bewertung sortieren möchte:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'GROUP BY t.topic_id, u.user_id, u2.user_idIF(rating = NULL, 0, rating) DESC LIMI' at line 7

SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid , AVG(rating) AS rating FROM phpbb_forums f, phpbb_topics t, phpbb_users u, phpbb_posts p, phpbb_posts_text pt LEFT JOIN phpbb_rate_results r ON r.topic_id = t.topic_id WHERE p.post_id IN (109, 114, 112, 148, 115) AND pt.post_id = p.post_id AND f.forum_id = p.forum_id AND p.topic_id = t.topic_id AND p.poster_id = u.user_id ORDER BY GROUP BY t.topic_id, u.user_id, u2.user_idIF(rating = NULL, 0, rating) DESC LIMIT 0, 15

Line : 794
File : search.php
Woran kann das liegen?

Grüße JLoop
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

ich hab den obrigen post mal ediert....

ah
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

Was genau hast du denn verändert?Weil ich bekomme immernoch ne fehlermeldung :(

Grüße JLoop
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

was für einen bekommst du denn?
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

Eine ähnliche wie die, die ich ein Posting höher gepostet habe:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'BY t.topic_id ORDER BY IF(rating = NULL, 0, rating) DESC LIMIT 0, 50' at line 8

SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time , AVG(rating) AS rating FROM phpbb_topics t, phpbb_forums f, phpbb_users u, phpbb_posts p, phpbb_posts p2, phpbb_users u2 LEFT JOIN phpbb_rate_results r ON r.topic_id = t.topic_id WHERE t.topic_id IN (87, 89, 91, 113) AND t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_idGROUP BY t.topic_id ORDER BY IF(rating = NULL, 0, rating) DESC LIMIT 0, 50

Line : 797
File : search.php
Grüße JLoop
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

dacht ich mir doch....
suche:

Code: Alles auswählen

$toh_sql3 = 'GROUP BY ' . ( ( $show_results == 'posts' ) ? 'p.post_id' : 't.topic_id' );
ersetzen druch

Code: Alles auswählen

$toh_sql3 = ' GROUP BY ' . ( ( $show_results == 'posts' ) ? 'p.post_id' : 't.topic_id' );
ah
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

thx funzt jetzt einwandfrei aber mir ist da noch etwas aufgefallen was auch Candy schon gefragt hatte wonach werden die Posts mit der Bewertung 0.00 sortiert wenn ich z.b. nach Bewertung "Absteigend" sortiere?Absteigend nach Eröffnungsdatum oder werden die dann nicht sortiert?Hoffe du verstehst was ich meine ist etwas schwer zu erklären :)

Grüße JLoop

BTW: Sorry das ich solange net geantwortet habe aber ich hatte einige robs mit meinem Board :)
Die Rechtschreibfehler in meinen Beiträgen sind nur zur Zierde :D
Benutzeravatar
MiXa
Mitglied
Beiträge: 811
Registriert: 12.01.2003 14:16
Kontaktdaten:

wo finde ich denn saerdnaers "Topics Order Hack"

Beitrag von MiXa »

hallo,

wo finde ich denn saerdnaers "Topics Order Hack"

(ich will ihn in ein bereits bestehendes phpbb 2.0.3 einzubauen)

ich kann wirklich nichts finden - suche schon länger :roll:

danke
Antworten

Zurück zu „phpBB 2.0: Mod Support“