Seite 5 von 16

Verfasst: 25.12.2002 20:30
von JLoop©
Sorry war mein fehler einmal hab ich das leerzeichen vergessen nun werden die Topics mit 0.00 zwar wieder angezeigt aber die sind immer oben

Aufsteigend sortiert:

0.00
0.00
0.00
4.00
8.00

Absteigend sortiert:

0.00
0.00
0.00
8.00
4.00

Eigentlich müsste es so sein:

Aufsteigend sortiert:

0.00
0.00
0.00
4.00
8.00

Absteigend sortiert:

8.00
4.00
0.00
0.00
0.00

Kann man das irgendwie hinbekommen?

Grüße JLoop

Verfasst: 25.12.2002 20:36
von saerdnaer
kannst ja mal

Code: Alles auswählen

$order_by = "rating $sort_order"; 
durch

Code: Alles auswählen

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

ersetzen...

ah

Verfasst: 25.12.2002 20:48
von JLoop©
THX!!!! Es funzt jetzt einwandfrei vielen dank für deine Hilfe!!!

Grüße JLoop

Verfasst: 25.12.2002 20:59
von Candy
Hi,
ich auch von mir ein BIG thx an saerdnaer ich hab sowas schon lange gesucht aber ich habe eine frage dazu, kann man das ganze auch irgendwie in den Sort Search Results Mod integrieren also das man dort auch die Posts/Topics nach Bewertung sortieren kann?

Grüße Candy

Verfasst: 26.12.2002 11:09
von saerdnaer
okay: dann hier die zusammenfassung:
viewtopic.php:
suchen:

Code: Alles auswählen

  $sort_order = "DESC";
}
danach einfügen:

Code: Alles auswählen

$toh_sql1 = '';
$toh_sql2 = '';
$toh_sql3 = '';

suchen:

Code: Alles auswählen

          case 'time':
                        $order_by = "t.topic_id $sort_order";
                        break;
danach einfügen:

Code: Alles auswählen

          case 'rating':
                        $order_by = "IF(rating = NULL, 0, rating) $sort_order";
                        $toh_sql1 = ', AVG(rating) AS rating';
                        $toh_sql2 = 'LEFT JOIN ' . RATE_TABLE . ' r ON r.topic_id = t.topic_id '; 
                        $toh_sql3 = 'GROUP BY t.topic_id, u.user_id, u2.user_id';
                        break;
suchen:

Code: Alles auswählen

$mode_types = array("default", [...] 
danach einfügen:

Code: Alles auswählen

$mode_types_text[] = 'Bewertung';
$mode_types[] = 'rating';
suchen:

Code: Alles auswählen

//
// All announcement data, this keeps announcements
// on each viewforum page ...
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username, pt.post_text
        FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2, " . POSTS_TEXT_TABLE . " pt
        WHERE t.forum_id = $forum_id
                AND t.topic_poster = u.user_id
                AND p.post_id = t.topic_last_post_id
                AND p.post_id = pt.post_id
                AND p.poster_id = u2.user_id
                AND t.topic_type = " . POST_ANNOUNCE . "
        ORDER BY $order_by ";
darin suchen:

Code: Alles auswählen

pt.post_text
danach einfügen:

Code: Alles auswählen

$toh_sql1
darin suchen:

Code: Alles auswählen

" . POSTS_TEXT_TABLE . " pt
danach einfügen:

Code: Alles auswählen

$toh_sql2
darin suchen:

Code: Alles auswählen

AND t.topic_type = " . POST_ANNOUNCE . "
danach einfügen

Code: Alles auswählen

$toh_sql3
suchen:

Code: Alles auswählen

//
// Grab all the basic data (all topics except announcements)
// for this forum
//
$sql = "SELECT t.*, 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, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
        WHERE t.forum_id = $forum_id
                AND t.topic_poster = u.user_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
                AND t.topic_type <> " . POST_ANNOUNCE . "
                $limit_topics_time
        ORDER BY t.topic_type DESC, $order_by
        LIMIT $start, ".$board_config['topics_per_page'];
im gefundenen suchen:

Code: Alles auswählen

p2.post_time
danach einfügen:

Code: Alles auswählen

$toh_sql1
im gefundenen suchen:

Code: Alles auswählen

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

Code: Alles auswählen

$toh_sql2
im gefundenen suchen:

Code: Alles auswählen

$limit_topics_time
danach einfügen:

Code: Alles auswählen

$toh_sql3
und falls man den global announcement hack installiert hat muss man noch folgendes machen:
suchen:

Code: Alles auswählen

//
// All GLOBAL announcement data, this keeps GLOBAL announcements
// on each viewforum page ...
//
$sql = "SELECT t.*, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_time, p.post_username
   FROM " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . USERS_TABLE . " u2
   WHERE t.topic_poster = u.user_id
      AND p.post_id = t.topic_last_post_id
      AND p.poster_id = u2.user_id
      AND t.topic_type = " . POST_GLOBAL_ANNOUNCE . "
   ORDER BY $order_by ";
darin suchen:

Code: Alles auswählen

p.post_username
danach einfügen:

Code: Alles auswählen

$toh_sql1
darin suchen:

Code: Alles auswählen

" . USERS_TABLE . " u2
danach einfügen:

Code: Alles auswählen

$toh_sql2
darin suchen:

Code: Alles auswählen

AND t.topic_type = " . POST_GLOBAL_ANNOUNCE . "
danach einfügen

Code: Alles auswählen

$toh_sql3
und vor und nach dem $toh_sql immer ein leerzeichen machen!!!

PS: ich hab den ersten beitrag editert damit man nicht auf alle 3 seiten suchen muss um diese modfikation auch zu machen...

Verfasst: 26.12.2002 19:33
von Candy
Keiner ne idee wie ich das auch beim Sort Search Results Mod hinbekommen kann?? :-?

Candy

Verfasst: 27.12.2002 10:57
von saerdnaer
wo gibts diesen mod?

ah

Verfasst: 27.12.2002 13:02
von Candy
Den gabs auf phpbb.com aber dort gibt es jetzt nur noch ne ältere version (1.0.1) aber ich hatte ihn noch auf dem PC:

Code: Alles auswählen

## EasyMod 0.0.7 compliant
################################################################# 
## MOD Title: 		Sort Search Results
## MOD Author: 		Shannado <sven@shannado.nl> (Sven) http://www.shannado.nl/forumorg
## MOD Description: 	With this MOD an user can sort his/her search results
## MOD Version: 	1.0.3
## 
## Installation Level: 	Easy
## Installation Time: 	10 - 20 Minutes 
## Files To Edit: 	search.php, 
##			search_results_posts.tpl, 
##			search_results_topics.tpl, 
##			lang_main.php
## Included Files: 	N/A
############################################################## 
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered 
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/ 
############################################################## 
## 
## Author Note: 
##
############################################################## 
##
## History:
## ------------
## 0.8.1 beta 
##	- Beta
##
## 0.8.2 beta 
##	- Fixed a typo in OPEN - command
##	- Made the HOW TO phpBB v2.0.1 compliant
##
## 0.8.3 beta 
##	- I didn't work well with the Search back MOD of Niels.
##
## 1.0.0 Final
##	- Final
##
## 1.0.1 Final
##	- Fixed mistakes in the HOW TO
##
## 1.0.2 Final
##	- When used the 'newest posts' link on the index
##	  the pagination & sort did not work well
##
## 1.0.3 FINAL
##	- Made phpBB v2.0.2 complaint and EasyMod 0.0.7 complaint
################################################################# 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
################################################################# 
# 
#-----[ OPEN ]------------------------------------------ 
# 
language/lang_english/lang_main.php

# 
#-----[ FIND ]------------------------------------------ 
# 
//
// That's all Folks!

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
#
$lang['Topic_time'] = 'Topic Time';

# 
#-----[ OPEN ]------------------------------------------ 
# 
search.php

# 
#-----[ FIND ]------------------------------------------ 
# 
$search_forum = ( isset($HTTP_POST_VARS['search_forum']) ) ? intval($HTTP_POST_VARS['search_forum']) : -1;

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
$search_forum = ( isset($HTTP_GET_VARS['search_forum']) ) ? intval($HTTP_GET_VARS['search_forum']) : (($HTTP_POST_VARS['search_forum'])? intval($HTTP_POST_VARS['search_forum']):-1);

# 
#-----[ FIND ]------------------------------------------ 
# 
$sort_by = ( isset($HTTP_POST_VARS['sort_by']) ) ? intval($HTTP_POST_VARS['sort_by']) : 0;

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
$sort_by = ( isset($HTTP_GET_VARS['sort_by']) ) ? $HTTP_GET_VARS['sort_by'] : (($HTTP_POST_VARS['sort_by'])? $HTTP_POST_VARS['sort_by']: 0);

# 
#-----[ FIND ]------------------------------------------ 
# 
if ( isset($HTTP_POST_VARS['sort_dir']) )
{
	$sort_dir = ( $HTTP_POST_VARS['sort_dir'] == 'DESC' ) ? 'DESC' : 'ASC';
}
else
{
	$sort_dir =  'DESC';
}

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
if ( isset($HTTP_POST_VARS['sort_dir']) || isset($HTTP_GET_VARS['sort_dir']) )
{
	if ( isset($HTTP_POST_VARS['sort_dir']) )
	{
		$sort_dir = ( $HTTP_POST_VARS['sort_dir'] == 'DESC' ) ? 'DESC' : 'ASC';
	}
	
	if ( isset($HTTP_GET_VARS['sort_dir']) )
	{
		$sort_dir = ( $HTTP_GET_VARS['sort_dir'] == 'DESC' ) ? 'DESC' : 'ASC';
	}
	
}
else
{
	$sort_dir =  'DESC';
}

# 
#-----[ FIND ]------------------------------------------ 
# 
$sort_by_types = array($lang['Sort_Time'], $lang['Sort_Post_Subject'], $lang['Sort_Topic_Title'], $lang['Sort_Author'], $lang['Sort_Forum']);

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
$sort_by_types = array($lang['Sort_Time'], $lang['Sort_Post_Subject'], $lang['Sort_Topic_Title'], $lang['Sort_Author'], $lang['Sort_Forum'], $lang['Topic_time'], $lang['Views'], $lang['Replies']);

//
// Sorting Search Results - Begin
//

$mod_sort_by = $sort_by;
$mod_sort_dir = $sort_dir;

$s_sort_by = "";
for($i = 0; $i < count($sort_by_types); $i++)
{
	$selected = ( $sort_by == $i ) ? ' selected="selected"' : '';
	$s_sort_by .= "<option value=\"" . $i . "\"$selected>" . $sort_by_types[$i] . "</option>";
}


if($sort_dir == 'ASC')
{
	$s_sort_dir = '<option value="ASC" selected="selected">' . $lang['Sort_Ascending'] . '</option><option value="DESC">' . $lang['Sort_Descending'] . '</option>';
}
else
{
	$s_sort_dir = '<option value="ASC">' . $lang['Sort_Ascending'] . '</option><option value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option>';
}

//
// Sorting Search Results - END
//

# 
#-----[ FIND ]------------------------------------------ 
# 
			if ( $row = $db->sql_fetchrow($result) )
			{
				$search_data = unserialize($row['search_array']);
				for($i = 0; $i < count($store_vars); $i++)
				{
					$$store_vars[$i] = $search_data[$store_vars[$i]];

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
					$sort_by = $mod_sort_by;
					$sort_dir = $mod_sort_dir;

# 
#-----[ FIND ]------------------------------------------ 
# 
			case 4:
				$sql .= 'f.forum_id';
				break;
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
			case 5:
				$sql .= 't.topic_time';
				break;
			case 6:
				$sql .= 't.topic_views';
				break;
			case 7:
				$sql .= 't.topic_replies';
				break;

# 
#-----[ FIND ]------------------------------------------ 
# 
		$base_url = "search.$phpEx?search_id=$search_id";

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
//
// Sorting Search Results - BEGIN
//

		if ( $search_id )
		{
			$hidden_fields .= '<input type="hidden" name="mode" value="' . ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode']  . '" />';
			$s_action = append_sid("search.$phpEx?search_id=$search_id");
			$base_url = "search.$phpEx?search_id=$search_id&sort_by=$sort_by&sort_dir=$sort_dir";
		}
		else
		{
			$hidden_fields .= '<input type="hidden" name="search_id" value="' . $search_id . '" />';
			$s_action = append_sid("search.$phpEx?mode=results");
			$base_url = "search.$phpEx?search_id=$search_id";
		}
		
		$hidden_fields .= '<input type="hidden" name="search_keywords" value="' . ( isset($HTTP_GET_VARS['search_keywords']) ) ? $HTTP_GET_VARS['search_keywords'] : $HTTP_POST_VARS['search_keywords']  . '" />';
		$hidden_fields .= '<input type="hidden" name="search_author" value="' . ( isset($HTTP_GET_VARS['search_author']) ) ? $HTTP_GET_VARS['search_author'] : $HTTP_POST_VARS['search_author']  . '" />';
		$hidden_fields .= '<input type="hidden" name="show_results" value="' . ( isset($HTTP_GET_VARS['show_results']) ) ? $HTTP_GET_VARS['show_results'] : $HTTP_POST_VARS['show_results']  . '" />';
		$hidden_fields .= '<input type="hidden" name="search_terms" value="' . ( isset($HTTP_GET_VARS['search_terms']) ) ? $HTTP_GET_VARS['search_terms'] : $HTTP_POST_VARS['search_terms']  . '" />';
		$hidden_fields .= '<input type="hidden" name="search_fields" value="' . ( isset($HTTP_GET_VARS['search_fields']) ) ? $HTTP_GET_VARS['search_fields'] : $HTTP_POST_VARS['search_fields']  . '" />';
		$hidden_fields .= '<input type="hidden" name="return_chars" value="' . ( isset($HTTP_GET_VARS['return_chars']) ) ? $HTTP_GET_VARS['return_chars'] : $HTTP_POST_VARS['return_chars']  . '" />';
		$hidden_fields .= '<input type="hidden" name="search_cat" value="' . ( isset($HTTP_GET_VARS['search_cat']) ) ? $HTTP_GET_VARS['search_cat'] : $HTTP_POST_VARS['search_cat']  . '" />';
		$hidden_fields .= '<input type="hidden" name="search_forum" value="' . ( isset($HTTP_GET_VARS['search_forum']) ) ? $HTTP_GET_VARS['search_forum'] : $HTTP_POST_VARS['search_forum']  . '" />';
		$hidden_fields .= '<input type="hidden" name="search_time" value="' . ( isset($HTTP_GET_VARS['search_time']) ) ? $HTTP_GET_VARS['search_time'] : $HTTP_POST_VARS['search_time']  . '" />';
//
// Sorting Search Results - END
//

# 
#-----[ FIND ]------------------------------------------ 
# 
			'L_POSTED' => $lang['Posted'], 
			'L_SUBJECT' => $lang['Subject'],

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
			'L_SUBMIT' => $lang['Sort'],
			'L_ORDER' => $lang['Order'],
			'L_SORT_BY' => $lang['Sort_by'],
			'S_SORT_OPTIONS' => $s_sort_by,
			'S_SORT_DIR' => $s_sort_dir,
			'S_HIDDEN_FIELDS' => $hidden_fields,
			'S_SORT_ACTION' => $s_action,

# 
#-----[ FIND ]------------------------------------------ 
# 
//
// Sorting
//
$s_sort_by = "";
for($i = 0; $i < count($sort_by_types); $i++)
{
	$s_sort_by .= '<option value="' . $i . '">' . $sort_by_types[$i] . '</option>';
}

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
//
// Sorting
//
//$s_sort_by = "";
//for($i = 0; $i < count($sort_by_types); $i++)
//{
//	$s_sort_by .= '<option value="' . $i . '">' . $sort_by_types[$i] . '</option>';
//}

# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/SubSilver/search_results_posts.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 
	<td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></span></td>

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
	<form action="{S_SORT_ACTION}" method="POST"><td align="right" nowrap="nowrap"><span class="genmed">{L_SORT_BY} <select class="post" name="sort_by">{S_SORT_OPTIONS}</select>&nbsp;{L_ORDER} <select class="post" name="sort_dir">{S_SORT_DIR}</select>&nbsp;{S_HIDDEN_FIELDS}<input type="submit" name="submit" value="{L_SUBMIT}" class="liteoption" /></span></td></form>

# 
#-----[ OPEN ]------------------------------------------ 
# 
templates/SubSilver/search_results_topics.tpl

# 
#-----[ FIND ]------------------------------------------ 
# 
	<td align="left"><span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></span></td>

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#
	<form action="{S_SORT_ACTION}" method="POST"><td align="right" nowrap="nowrap"><span class="genmed">{L_SORT_BY} <select class="post" name="sort_by">{S_SORT_OPTIONS}</select>&nbsp;{L_ORDER} <select class="post" name="sort_dir">{S_SORT_DIR}</select>&nbsp;{S_HIDDEN_FIELDS}<input type="submit" name="submit" value="{L_SUBMIT}" class="liteoption" /></span></td></form>

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM
Grüße Candy

BTW: Hab nochmal ne frage zu dem Addon für den Topics Order Hack die Topics mit Bewertung werden ja nach der höhe der Bewertung sortiert aber wie werden die mit 0.00 sortiert?Normal nach t.topic_last_post_id?

Verfasst: 30.12.2002 10:29
von Candy
Niemand ne idee wie ich das auch bei dem Mod hinbekommen kann? :-?

Candy :P

Verfasst: 30.12.2002 18:00
von saerdnaer
schick mir mal eine search.php in die dieser mod eingebaut ist per email oder leg sie auf nen server...