Hi!
Ich würde gerne die Extension "Search in Tables" insofern ändern, dass sie mir Ergebnisse der Suche in tt_news nach bestimmten Kategorien ausgibt. Die Kategorien sind in der Tabelle tt_news_cat_mm gespeichert. Kann ich folgenden Code des Setups so verändern, dass er mir nur die Einträge der Tabelle tt_news ausgibt, bei denen das Feld uid_foreign der Tabelle tt_news_cat_mm einen bestimmmten Wert hat?
Oder hat jemand eine andere Idee für dieses Problem? (ich möchte allerdings nicht die Suche von tt_news verwenden)
#### TT_NEWS is provided as an example###
tt_news = 1
tt_news.name = Suche
tt_news.fields = title,short,bodytext,keywords,author
tt_news.pidList = 5
tt_news.recursive = 100
tt_news.orderBy = crdate DESC
tt_news.selectAdditionalParams =
Hallo
Ein bischen länger her. BIst du schon auf eine Lösung gestossen oder hast du es ganz anders gemacht. Ich habe ähnliches vor. Ich will nach Category filtern können und nach Author und nach Location.
Hallo,
nein leider. ich habe mir selbst ein php skript gebastelt.
lg, marlen
wie hast du denn das gemacht? Ich muss langsam eine Lösung finden. Würdes du das script evtl veröffentlichen und wie hast du es eingebunden?
Danke
Hallo Sebastian!
Ich kann dir gerne den Code senden. Das PHP Skript ist nur sehr an meine Webseite angepaßt.
Ich habe die Möglichkeit nach News Beiträgen mit einer bestimmten Kategorie (Veranstaltungen, Aktion, News) zu suchen und kann außerdem einen Bezirk von Wien wählen.
Das Skript dursucht rekursiv alle Seiten der Webseite, weil überall News Beiträge vorkommen können. Der Nachteil ist allerdings, das man nur nach einen Suchbegriff suchen kann.
Ich habe einfach das Element "PHP Skript" auf einer Seite eingefügt und den Code reingeschrieben. Vergiß nicht die richtige Seite bei <form action=> einzutragen.
Viel Glück!
<?
//include "fileadmin/templates/scripts/var.inc";
include_once "fileadmin/templates/scripts/verlinken.inc";
?>
<!-- FORMULAR -->
<br>
<form action="index.php?id=584" method="post" >
<label for="name"><div style="width:85px; float: left;">Suchbegriff</div> <div><input type="text" name="suchbegriff" value="<?echo $_POST["suchbegriff"]?>" size="20"/></div>
<label for="name"><div style="width:85px; float: left;">Bereich</div></label>
<select name="bereich" size="4">
<option value="1" <?if ($_POST["bereich"] == 1 or !$_POST["bereich"]) {echo selected;}?>>alle 3 Bereiche</option>
<option value="9" <?if ($_POST["bereich"] == 9) {echo selected;}?>> -- News</option>
<option value="7" <?if ($_POST["bereich"] == 7) {echo selected;}?>> -- Veranstaltungen</option>
<option value="8" <?if ($_POST["bereich"] == 8-) {echo selected;}?>> -- Aktionen</option>
</select><br />
<label for="name"><div style="width:85px; float: left;">Bezirk</div></label>
<div>
<select name="bezirk">
<option value="1" <?if ($_POST["bezirk"] == 1) {echo selected;}?>>ganz Wien</option>
<option value="46" <?if ($_POST["bezirk"] == 46) {echo selected;}?>>1. Bezirk</option>
<option value="45" <?if ($_POST["bezirk"] == 45) {echo selected;}?>>2. Bezirk</option>
<option value="44" <?if ($_POST["bezirk"] == 44) {echo selected;}?>>3. Bezirk</option>
<option value="43" <?if ($_POST["bezirk"] == 43) {echo selected;}?>>4. Bezirk</option>
<option value="42" <?if ($_POST["bezirk"] == 42) {echo selected;}?>>5. Bezirk</option>
<option value="41" <?if ($_POST["bezirk"] == 41) {echo selected;}?>>6. Bezirk</option>
<option value="40" <?if ($_POST["bezirk"] == 40) {echo selected;}?>>7. Bezirk</option>
<option value="39" <?if ($_POST["bezirk"] == 39) {echo selected;}?>>8. Bezirk</option>
<option value="38" <?if ($_POST["bezirk"] == 38-) {echo selected;}?>>9. Bezirk</option>
<option value="55" <?if ($_POST["bezirk"] == 55) {echo selected;}?>>10. Bezirk</option>
<option value="54" <?if ($_POST["bezirk"] == 54) {echo selected;}?>>11. Bezirk</option>
<option value="53" <?if ($_POST["bezirk"] == 53) {echo selected;}?>>12. Bezirk</option>
<option value="52" <?if ($_POST["bezirk"] == 52) {echo selected;}?>>13. Bezirk</option>
<option value="51" <?if ($_POST["bezirk"] == 51) {echo selected;}?>>14. Bezirk</option>
<option value="50" <?if ($_POST["bezirk"] == 50) {echo selected;}?>>15. Bezirk</option>
<option value="49" <?if ($_POST["bezirk"] == 49) {echo selected;}?>>16. Bezirk</option>
<option value="48" <?if ($_POST["bezirk"] == 48-) {echo selected;}?>>17. Bezirk</option>
<option value="47" <?if ($_POST["bezirk"] == 47) {echo selected;}?>>18. Bezirk</option>
<option value="60" <?if ($_POST["bezirk"] == 60) {echo selected;}?>>19. Bezirk</option>
<option value="59" <?if ($_POST["bezirk"] == 59) {echo selected;}?>>20. Bezirk</option>
<option value="58" <?if ($_POST["bezirk"] == 58-) {echo selected;}?>>21. Bezirk</option>
<option value="57" <?if ($_POST["bezirk"] == 57) {echo selected;}?>>22. Bezirk</option>
<option value="56" <?if ($_POST["bezirk"] == 56) {echo selected;}?>>23. Bezirk</option>
</select>
</div>
<br>
<input type="submit" name="submit" value="suche"/>
</form>
<br><br>
<?
//DATUM
$heute = time();
if(isset($_POST["submit"]) AND $_POST["suchbegriff"] != "")
{
$suchbegriff=trim($_POST["suchbegriff"]);
$suchbegriff = str_replace(";","",$suchbegriff);
$uid_foreign =($_POST["bereich"]);
$pid = ($_POST["bezirk"]);
if (($uid_foreign == 1) AND ($pid == 1))
{
//DB ABFRAGE ALLE BEREICHE & GANZ WIEN
//echo "DB ABFRAGE ALLE BEREICHE & GANZ WIEN<br><br>";
echo 'Suche nach "<b>'.$suchbegriff.'</b>"<br><br>';
$sql = "SELECT * FROM tt_news WHERE (title LIKE '%$suchbegriff%' OR short LIKE '%$suchbegriff%' OR bodytext LIKE '%$suchbegriff%') and (deleted = 0) AND (hidden = 0) AND (starttime=0 OR starttime < '$heute') AND (endtime=0 OR endtime > '$heute') ORDER BY datetime";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0)
{
while($data = mysql_fetch_array($result))
{
$id=$data["uid"];
$pid=$data["pid"];
$pid_neu=verlinken($pid);
$link=$data["pid"];
$ergebnis_title=htmlentities($data["title"]);
$ergebnis_short=htmlentities($data["short"]);
$ergebnis_bodytext=htmlentities($data["bodytext"]);
echo "<b>".$ergebnis_title."</b><br>";
echo $ergebnis_short."<br>";
echo "<a href='http://www.einkaufsstrassen.at/index.php?id=$pid_neu&tx_ttnews[tt_news]=$id&tx_ttnews[backPid]=$link&cHash=55cc94ed0e'>...mehr</a><br><br>";
}
} // end: if (mysql_num_rows($result)>0)
else
{
echo "<b>Keine Ergebnisse gefunden.</b>";
}
}
elseif (($uid_foreign == 1) AND ($pid != 1))
{
//DB ABFRAGE ALLE BEREICHE & BEZIRK
//echo "DB ABFRAGE ALLE BEREICHE & BEZIRK<br><br>";
echo 'Suche nach "<b>'.$suchbegriff.'</b>"<br><br>';
rekursion($pid);
?>
<script type="text/javascript">
<!--
if(!document.getElementById('titel'))
{
document.write("<b>Keine Ergebnisse gefunden.</b>");
}
//-->
</script>
<?
} //end: DB ABFRAGE ALLE BEREICHE & BEZIRK
elseif (($uid_foreign != 1) AND ($pid == 1))
{
//DB ABFRAGE BEREICHE IN GANZ WIEN
//echo "DB ABFRAGE BEREICHE IN GANZ WIEN<br><br>";
echo 'Suche nach "<b>'.$suchbegriff.'</b>"<br><br>';
$sql_cat = "SELECT * FROM tt_news_cat_mm WHERE uid_foreign='$uid_foreign'";
$result_cat = mysql_query($sql_cat);
while($data_cat = mysql_fetch_array($result_cat))
{
$cat= $data_cat["uid_local"];
$sql = "SELECT * FROM tt_news WHERE uid='$cat' AND (title LIKE '%$suchbegriff%' OR short LIKE '%$suchbegriff%' OR bodytext LIKE '%$suchbegriff%') and (deleted = 0) AND (hidden = 0) AND (starttime=0 OR starttime < '$heute') AND (endtime=0 OR endtime > '$heute') ORDER BY datetime";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0)
{
$erg=1;
while($data = mysql_fetch_array($result))
{
$id=$data["uid"];
$pid=$data["pid"];
$pid_neu=verlinken($pid);
$link=$data["pid"];
$ergebnis_title=htmlentities($data["title"]);
$ergebnis_short=htmlentities($data["short"]);
$ergebnis_bodytext=htmlentities($data["bodytext"]);
echo "<b>".$ergebnis_title."</b><br>";
echo $ergebnis_short."<br>";
echo "<a href='http://www.einkaufsstrassen.at/index.php?id=$pid_neu&tx_ttnews[tt_news]=$id&tx_ttnews[backPid]=$link&cHash=55cc94ed0e'>...mehr</a><br><br>";
}
} // end: if (mysql_num_rows($result)>0)
} //end; while($data_cat = mysql_fetch_array($result_cat))
if (!isset($erg))
{
echo "<b>Keine Ergebnisse gefunden.</b>";
}
} //end DB ABFRAGE BEREICHE IN GANZ WIEN
elseif (($uid_foreign != 1) AND ($pid != 1))
{
$start="start";
//DB ABFRAGE BEREICHE IN BEZIRKEN
//echo "DB ABFRAGE BEREICHE IN BEZIRKEN<br><br>";
echo 'Suche nach "<b>'.$suchbegriff.'</b>"<br><br>';
rekursion_cat($pid,$uid_foreign,$start);
?>
<script type="text/javascript">
<!--
if(!document.getElementById('titel'))
{
document.write("<b>Keine Ergebnisse gefunden.</b>");
}
//-->
</script>
<?
} //end DB ABFRAGE BEREICHE IN BEZIRKEN
} //end submit
//***************** FUNKTION REKURSION PAGES*****************//
function rekursion($pid)
{
global $suchbegriff;
$sql = "SELECT * FROM pages WHERE (pid = '$pid') and (deleted = 0) AND (hidden = 0)";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0)
{
while($data = mysql_fetch_array($result))
{
$pid=$data["uid"];
//echo $pid."<br>";
$sql1 = "SELECT * FROM tt_news WHERE (pid='$pid') AND (title LIKE '%$suchbegriff%' OR short LIKE '%$suchbegriff%' OR bodytext LIKE '%$suchbegriff%') and (deleted = 0) AND (hidden = 0) AND (starttime=0 OR starttime < '$heute') AND (endtime=0 OR endtime > '$heute') ORDER BY datetime";
$result1 = mysql_query($sql1);
if (mysql_num_rows($result1)>0)
{
while($data1 = mysql_fetch_array($result1))
{
$id=$data1["uid"];
$pid=$data1["pid"];
$pid_neu=verlinken($pid);
$link=$data1["pid"];
$ergebnis_title=htmlentities($data1["title"]);
$ergebnis_short=htmlentities($data1["short"]);
$ergebnis_bodytext=htmlentities($data1["bodytext"]);
echo "<b><div id='titel'>".$ergebnis_title."</div></b><br>";
echo $ergebnis_short."<br>";
echo "<a href='http://www.einkaufsstrassen.at/index.php?id=$pid_neu&tx_ttnews[tt_news]=$id&tx_ttnews[backPid]=$link&cHash=55cc94ed0e'>...mehr</a><br><br>";
}
}
rekursion($pid);
}
}
//return $ergebnis;
} // end function rekursion($pid)
//***************** FUNKTION REKURSION PAGES inkl BEREICHSSUCHE*****************//
function rekursion_cat($pid, $uid_foreign,$ergebnis)
{
global $suchbegriff;
$sql = "SELECT * FROM pages WHERE (pid = '$pid') and (deleted = 0) AND (hidden = 0)";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0)
{
while($data = mysql_fetch_array($result))
{
$pid=$data["uid"];
//echo $pid."<br>";
$sql_cat = "SELECT * FROM tt_news_cat_mm WHERE uid_foreign='$uid_foreign'";
$result_cat = mysql_query($sql_cat);
while($data_cat = mysql_fetch_array($result_cat))
{
$cat= $data_cat["uid_local"];
$sql2 = "SELECT * FROM tt_news WHERE uid='$cat' AND pid='$pid' AND (title LIKE '%$suchbegriff%' OR short LIKE '%$suchbegriff%' OR bodytext LIKE '%$suchbegriff%') and (deleted = 0) AND (hidden = 0) AND (starttime=0 OR starttime < '$heute') AND (endtime=0 OR endtime > '$heute') ORDER BY datetime";
$result2 = mysql_query($sql2);
if (mysql_num_rows($result2)>0)
{
while($data2 = mysql_fetch_array($result2))
{
$id=$data2["uid"];
$pid=$data2["pid"];
$pid_neu=verlinken($pid);
$link=$data2["pid"];
$ergebnis_title=htmlentities($data2["title"]);
$ergebnis_short=htmlentities($data2["short"]);
$ergebnis_bodytext=htmlentities($data2["bodytext"]);
//$ergebnis="ja";
//echo "UID ".$uid_foreign."<br>";
echo "<b><div id='titel'>".$ergebnis_title."</div></b><br>";
echo $ergebnis_short."<br>";
echo "<a href='http://
www.einkaufsstrassen.at/index.php?id=$pid_neu&tx_ttnews[tt_news]=$id&tx_ttnews[backPid]=$link&cHash=55cc94ed0e'>...mehr</a><br><br>";
}
} // end: if (mysql_num_rows($result)>0)
} //end; while($data_cat = mysql_fetch_array($result_cat))
rekursion_cat($pid, $uid_foreign,$ergebnis);
}
}
} // end function rekursion($pid)
?>