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.
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.