Seite 1 von 1

Suchfunktion listet Offline-Artikel?!

Verfasst: Di 14. Feb 2006, 10:53
von alderim
Hallo,
Die Suchfunktion listet bei mir auch Artikel, die Offline sind. Das darf nicht sein.. Wie kann man das verhindern?

UND

Kann man die Suche auf die Navigations-bezeichnungen einschränken,
also auf die tatsächlich sichtbaren Bezeichnungen der Menupunkte?

Danke für Tipps!
a.

Verfasst: Di 14. Feb 2006, 10:56
von Halchteranerin
bloede Frage: WELCHE Suchfunktion? Bitte nur den Link zum Modul, nicht den Quelltext posten!

Verfasst: Di 14. Feb 2006, 10:58
von alderim
die volltextsuche bei 4.4.

einen link kann ich leider datenschutztechnisch nicht hinzufügen, ich hoffe es gibt auch eine ferndiagnose :oops:

Verfasst: Di 14. Feb 2006, 11:00
von Halchteranerin
ich frage nochmal: WELCHE??? Es gibt inzwischen etliche Versionen fuer 4.4 (ich weiss, wovon ich spreche).

Verfasst: Di 14. Feb 2006, 11:01
von Halchteranerin
und was soll der Schwachsinn mit "datenschutztechnisch"? Was hat ein oeffentliches Modul bitte mit Datenschutz zu tun? Du solltest dir mal das Bundesdatenschutzgesetz anschauen. :shock: :roll:

Verfasst: Di 14. Feb 2006, 11:12
von alderim
bitte um Milde..
Ich habe die Seite neu zur Betreuung übernommen und arbeite mich gerade ein.

Datenschutztechnisch meine ich, ich kann den Link zur Seite nicht angeben, da diese noch nicht fertig ist und artikel gefunden werden, die NICHT öffentlich gemacht werden DÜRFEN.
Man könnte es also auch Betriebsgeheimnissverratstechnisch nennen. :wink:

im Suchmodul steht folgender Eintrag:

History:
04.07.2003 - Anpassung Contenido 4.3.1 Beta - Carsten Hallwachs c.ha@gmx.de
16.09.2002 - Fehlermeldung beseitigt, wenn ein Leerzeichen am Ende des Suchbegriffs stand (danke Svaen)
16.09.2002 - Statt der Zusammenfassung wurde der Titel angezeigt (danke Svaen)
16.09.2002 - Multisort erweitert. (danke Frank)
18.09.2002 - noch etwas MySQL-tauglicher gemacht durch das ersetzen von deutschen Umlauten (danke an Peter)
-------------------------------------------------------------------------------------------------------------------------------
*/

TITEL:
Suchmodul v1

BESCHREIBUNG:
Bietet eine Volltextsuche. Durchsucht Titel,Beschreibung und Content.
(c) webmaster@zu-hause.biz 16.09.2002

Verfasst: Di 14. Feb 2006, 11:42
von alderim
Gibt es eine Möglichkeit, daß dieses Modul ausschließlich online-artikel bzw. artikel analog der Navigation listet?

Verfasst: Di 14. Feb 2006, 15:30
von Halchteranerin
Ich fragte nach dem Quelltext des Moduls. :twisted: Oder glaubst du, dass ich (oder jemand anders) stundenlang suche, woher dein Modul stammt? Wie soll man, ohne das Modul zu kennen, dir sagen koennen, was du aendern musst? Du musst die SQL-Abfrage soweit aendern, dass geprueft wird, ob ein Artikel online ist oder nicht. Wie das Attribut dazu heisst, weiss ich gerade nicht aus dem Kopf.

Verfasst: Di 14. Feb 2006, 15:36
von rezeptionist

Verfasst: Di 14. Feb 2006, 15:36
von alderim
hä?
" Bitte nur den Link zum Modul, nicht den Quelltext posten! "

also hier der Quelltext:

Code: Alles auswählen

Ausgabe:
<?php
echo "<center><table width=\"80%\" border=\"0\"><tr><td align=left>
<form name=\"suche\" method=\"POST\" action=\"".$auth->url()."\" >
<input type=\"text\" size=\"9\" style=\"width:120px\" name=\"suche\" value=\"$suche\"> 
<INPUT TYPE=\"submit\" VALUE=\"Suchen\"></FORM></td></tr>";
if($suche){
	$suche = trim($suche);
	$suchregexp = "(".str_replace(" ",")|(",$suche).")";
        $s=ereg_replace("ü", "%FC",strtolower($suche));
        $s=ereg_replace("ä", "%E4",$s);
        $s=ereg_replace("ö", "%F6",$s);
        $suchregexp .=  "|$s";
	$suchliste = explode(" ",strtolower($suche));

	$sql = "SELECT A.title AS title,A.idart AS idart,A.summary AS comment,B.idcat AS idcat,C.parentid AS parentid,D.value AS content,A.idartlang AS sideid ";
	$sql .= "FROM " . $cfg["tab"]["art_lang"] . " AS A, " . $cfg["tab"]["cat_art"] . " AS B, " . $cfg["tab"]["cat"] . " AS C, " . $cfg["tab"]["content"] . " AS D ";
	$sql .= "WHERE A.idart=B.idart AND A.idartlang=D.idartlang AND B.idcat=C.idcat AND C.idclient='$client' AND idlang='$lang' AND online='1'";
	$sql .= " AND (D.value REGEXP '$suchregexp' OR A.title REGEXP '$suchregexp' OR A.summary REGEXP '$suchregexp')";

	$db->query($sql);
	if ($db->num_rows() != 0){
		for ($i=0; $i<$db->num_rows(); $i++) {
			$db->next_record();
			if ($auth->auth["uid"] == "nobody"){
				$sql2 = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$db->f("idcat")."'";
				$db2 = new DB_Contenido; $db2->query($sql2); $db2->next_record();
				if($db2->f("public") == 0)continue;
			}
			$num = 0 + $db->f("sideid");
			$results[$num][link] = "front_content.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&subid=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart");
			$results[$num][title] = $db->f("title");
			switch ("CMS_VALUE[2]") {
				case 0: $results[$num][text] = "";break;
				case 1: $results[$num][text] = $db->f("comment");break;
				case 2: $results[$num][text] .= substr(strip_tags(rawurldecode($db->f("content"))),0,100)."...";
			}
			for($x=0;$x<count($suchliste);$x++){
				$hits[$num] += substr_count(strtolower($db->f("title")), $suchliste[$x]) + 
				substr_count(strtolower($db->f("comment")), $suchliste[$x]) + 
				substr_count(strtolower($db->f("content")), $suchliste[$x]);
			}
		}
		if(count($hits) > 0){
			$hits = array_values($hits);
			$results = array_values($results);
			array_multisort ($results, SORT_DESC, SORT_NUMERIC, $hits, SORT_DESC, SORT_NUMERIC);
			for ($i=0; $i<count($hits); $i++){
				echo "<tr><td class=\"suchtext\" align=left  style=\"border: 0px; border-top:1px; border-color: #E4E4E4; border-style: solid;\">  <img src=\"images/navi_haupt_bull_ma.gif\" align=\"absmiddle\">  <a href=\"".$results[$i][link].'&navmark='.$navmark."\" id=\"fontCMS_VALUE[0]\"";
				if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";}
				echo ">".$results[$i][title]."</a> <!--<span class=\"suchtext\">(".$hits[$i]." Treffer)--><BR>";
				echo $results[$i][text]."</span></td></tr>";
			}
		} else { echo "<tr><td align=left style=\"border: 0px; border-top:1px; border-color: #E4E4E4; border-style: solid;\"><span class=\"suchtext\">Keine passenden Seiten gefunden</span></td></tr>"; }
	} else { echo "<tr><td align=left style=\"border: 0px; border-top:1px; border-color: #E4E4E4; border-style: solid;\"><span class=\"suchtext\">Keine passenden Seiten gefunden</span></td></tr>"; }
}
echo "</table><br><br></center>";
?>

Verfasst: Di 14. Feb 2006, 15:38
von rezeptionist
alderim hat geschrieben:hä?
" Bitte nur den Link zum Modul, nicht den Quelltext posten! "

also hier der Quelltext:
lach :!:

Verfasst: Di 14. Feb 2006, 18:16
von Halchteranerin
alderim hat geschrieben:" Bitte nur den Link zum Modul, nicht den Quelltext posten!"
Ja, richtig! Den Link zum Quelltext des Moduls und nicht irgendwelche Auszuege aus der History und weiss der Geier was, die keinen Interessieren. Fuer heute habe ich aber die Lust verloren, sorry. Morgen vielleicht wieder, oder heute noch jemand, dessen Geduld noch nicht aufgebraucht ust.

Verfasst: Di 14. Feb 2006, 19:45
von Beleuchtfix
ganz schnell:
in der sql Abfrage nach where suchen und dann muss da noch and online=1"; dazu.

Viel Erfolg
Florian