Zum Inhalt springen

mm_forum Verborgene Threads aus der Suche entfernen?

Erstellt am 14. März 2013 · 1 Antwort · letzte Antwort am 15. März 2013

Tags: Suche, Frage

patrickdadzio ·

Hallo,

ich möchte gerne, dass bei mm_forum die verborgenen threads nicht mehr über die Suche gefunden werdne können.
Ich vermute mal, dass ich den Suchindex löschen und neu aufbauen lassen muss, oder?
Gibt es irgendwo eine integrierte Funktion um den Suchindex zu löschen?

Beste Grüße,
Patrick.

patrickdadzio ·

Ich habe es jetzt so gelöst, dass ich die Suchergebnisse vor der verwendung prüfe, ob der Beitrag oder die Diskussion gelöscht oder versteckt sind.

Hierzu habe ich in der Datei class.tx_mmforum_pi4.php in der Funktion get_search_results() die Zeile

return $search_array;

durch

// prüfen, ob die Einträge in $search_array nicht in gelöschten oder versteckten Threads stehen		
$new_search_array = array();
foreach($search_array as $key=>$value) 
{
	$keep = true;
	$query = $GLOBALS['TYPO3_DB']->SELECTquery(
		'uid,topic_id,deleted,hidden',         	// SELECT ...
		'tx_mmforum_posts',     				// FROM ...
		'uid=' . $key,    						// WHERE...
		'',            							// GROUP BY...
		'',    									// ORDER BY...
		''            							// LIMIT ...
	);
	$res = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $query);
	while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))
	{
		// prüfen ob der Beitrag gelöscht oder versteckt ist
		if($row['deleted']!=0 || $row['hidden']!=0)
		{
			$keep = false;
		}
		else
		{
			// prüfen, ob der Thread in dem der Beitrag steht gelöscht oder versteckt ist					
			$iquery = $GLOBALS['TYPO3_DB']->SELECTquery(
				'deleted,hidden',         				// SELECT ...
				'tx_mmforum_topics',     				// FROM ...
				'uid=' . $row['topic_id'],				// WHERE...
				'',            							// GROUP BY...
				'',    									// ORDER BY...
				''            							// LIMIT ...
			);
			$ires = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $iquery);
			while($irow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($ires))
			{
				if($irow['deleted']!=0 || $irow['hidden']!=0)
				{
					$keep = false;
				}
			}					
		}
	}
	if($keep == true)
	{
		$new_search_array[$key] = $value;
	}
}
return $new_search_array;

ersetzt.