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.
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

saerdnaer hat geschrieben:@JLoop©: für die suche musst fu folgendes:

Code: Alles auswählen

$sql .= 'IF(rating = NULL, 0, rating)';
durch folgendes

Code: Alles auswählen

$sql .= 'IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
ersetzen.
und für die topic sortierung folgendes:

Code: Alles auswählen

$order_by = "IF(rating = NULL, 0, rating) $sort_order";
durch folgendes

Code: Alles auswählen

$order_by = "IF(rating = NULL, 0, rating) $sort_order, t.topic_last_post_id $sort_order";
ersetzen
Ich nehme an das erste ist für den Sort Search Results Mod oder?Weil das scheint nicht zu funzen ich bekomme diese fehlermeldung wenn ich da nach Bewertung sortiere:

Code: Alles auswählen

Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'GROUP BY t.topic_id IF(rating = NULL, 0, rating) , t.topic_last_post_id DESC LIM' 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_id ORDER BY GROUP BY t.topic_id IF(rating = NULL, 0, rating) , t.topic_last_post_id DESC LIMIT 0, 50

Line : 794
File : search.php
Ausserdem passt da die sortierung der 0er posts irgendwie net da ich sie in der viewforum.php nach standard sortieren lassen wollte (das wäre dann t.topic_last_post_id) aber in der search.php ist standard ja je nachdem obs als Themen oder Beiträge angezeigt wird:

Code: Alles auswählen

default:
                                $sql .= ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time';
                                break;
Kann man das irgendwie hinbekommen das es dort auch nach standard sortiert wird?

Ich habe es schon so probiert das ich des:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
dadurch ersetze:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time';
aber das gibt nur nen parse error :(

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 »

zeig mit mal den quellcode der search.php als link...

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

Beitrag von JLoop© »

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 »

achso...
suchen:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
durch

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_dir . ', t.topic_last_post_id';
ersetzen durch:

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_order . ', t.topic_last_post_id';
durch

Code: Alles auswählen

$sql .= ' IF(rating = NULL, 0, rating) ' . $sort_dir . ', ' . ( ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time' );
ah
Zuletzt geändert von saerdnaer am 04.02.2003 15:09, insgesamt 1-mal geändert.
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

thx aber nun bekomme ich wieder diese fehlermeldung:
Could not obtain search results

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax near 'GROUP BY t.topic_id IF(rating = NULL, 0, rating) DESC, p2.post_time DESC LIMIT 0' 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, 88, 92, 93, 115, 117, 118) 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 ORDER BY GROUP BY t.topic_id IF(rating = NULL, 0, rating) DESC, p2.post_time DESC LIMIT 0, 50

Line : 794
File : board/search.php
Hier nochmal meine search.php: 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 »

suche:

Code: Alles auswählen

$sql .= " ORDER BY " . $toh_sql3; // ADDED  . $toh_sql3 BY order by rating
ersetzen durch

Code: Alles auswählen

$sql .= " ORDER BY ";
suchen:

Code: Alles auswählen

$sql .= " $sort_dir LIMIT $start, " . $per_page;
danach einfügen:

Code: Alles auswählen

$sql .= ' ' . $toh_sql3; // ADDED BY order by rating
ah
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

suche:

Code: Alles auswählen

$sql .= " ORDER BY " . $toh_sql3; // ADDED  . $toh_sql3 BY order by rating
ersetzen durch

Code: Alles auswählen

$sql .= " ORDER BY ";
suchen:

Code: Alles auswählen

$sql .= " $sort_dir LIMIT $start, " . $per_page;
danach einfügen:

Code: Alles auswählen

$sql .= ' ' . $toh_sql3; // ADDED BY order by rating
ah
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

suche:

Code: Alles auswählen

$sql .= " ORDER BY " . $toh_sql3; // ADDED  . $toh_sql3 BY order by rating
ersetzen durch

Code: Alles auswählen

$sql .= " ORDER BY ";
suchen:

Code: Alles auswählen

$sql .= " $sort_dir LIMIT $start, " . $per_page;
danach einfügen:

Code: Alles auswählen

$sql .= ' ' . $toh_sql3; // ADDED BY order by rating
ah
JLoop©
Mitglied
Beiträge: 291
Registriert: 21.09.2002 15:24

Beitrag von JLoop© »

Hi,
das scheint net zu funzen denn ich bekomme jetzt einen parse error:
Parse error: parse error in board/search.php on line 703
Das wäre diese Zeile:

Code: Alles auswählen

}
        else
        {
                if ( intval($search_id) )
Hier die aktuelle datei: 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 »

da hast du irgendwie noch was eingefügt...
suchen und löschen:

Code: Alles auswählen

        else
        {
                if ( intval($search_id) )
                {
                        $sql = "SELECT search_array
                                FROM " . SEARCH_TABLE . "
                 TO " . SEARCH_TABLE . " (search_id, session_id, search_array)
                                VALUES($search_id, '" . $userdata['session_id'] . "', '" . str_replace("\'", "''", $result_array) . "')";
                        if ( !($result = $db->sql_query($sql)) )
                        {
                                message_die(GENERAL_ERROR, 'Could not insert search results', '', __LINE__, __FILE__, $sql);
                        }
                }
        }
ACHTUNG: Auf die klammern {} aufpassen!!!

ah
Antworten

Zurück zu „phpBB 2.0: Mod Support“