Seite 2 von 2

Verfasst: Sa 5. Mär 2005, 20:51
von Halchteranerin
timo hat geschrieben:und zwar je nach Einstellung des Browsers.
timo, von welcher Einstellung redest du? emergence und ich kennen keine, darueber hatten wir uns weiter oben auch unterhalten. :wink: Ich habe gerade nochmal nachgeschaut, aber ich kann keine Einstellung damit in Zusammenhang bringen. :(

Verfasst: Sa 5. Mär 2005, 20:55
von timo
Im IE-Standard gibt es die nicht, aber es gibt wohl irgendwelche Tools, die die Einstellung verändern können.

Verfasst: Sa 5. Mär 2005, 21:18
von Halchteranerin
ach so, dann kann ich lange suchen ... :wink:

Verfasst: Sa 5. Mär 2005, 22:44
von Cyclist
Ich brauche mal wieder etwas Hilfestellung.

Ich habe bei mir folgendes Suchmodul implementiert und Post auf get umgestellt, aber trotzdem funktioniert die Suche (noch) nicht, es wird immer nur die Startseite aufgerufen. Ich habe zwar verstanden, dass noch etwas an den input-Felder geändert werden muss, weiss aber nicht was genau.

Das ist der verwendete Code inkl. der Änderung von Post auf Get:

INPUT:

Code: Alles auswählen

 $linktarget = "CMS_VALUE[1]"; 
$extratext = "CMS_VALUE[2]"; 

if($linktarget == "") { 
   $linktarget = "_self"; 
} 
if($extratext == "") { 
   $extratext = 0; 
} 
?> 
<table> 
   <tr> 
      <td>Linktarget</td> 
      <td> 
         <select name="CMS_VAR[1]"> 
            <option value="_self"<? if(strcmp("_self", $linktarget) == 0) echo " selected"; ?>>gleiches Fenster (_self)</option> 
            <option value="_new"<? if(strcmp("_new", $linktarget) == 0) echo " selected"; ?>>neues Fenster (_new)</option> 
         </select> 
      </td> 
   </tr> 
   <tr> 
      <td>Zusätzlicher Text zum Artikellink</td> 
      <td> 
         <select name="CMS_VAR[2]"> 
            <option value="0"<? if($extratext == 0) echo " selected"; ?>>kein zusätzlicher Text</option> 
            <option value="1"<? if($extratext == 1) echo " selected"; ?>>Artikelkommentar</option> 
            <option value="2"<? if($extratext == 2) echo " selected"; ?>>Anfang des Artikeltextes</option> 
         </select> 
      </td> 
   </tr> 
</table> 
<? 



OUTPUT:

Code: Alles auswählen

<?php 
//$linkziel = "front_content.php?idcat=51"; 
$linkziel = $auth->url(); 

$ignore_konj = array("und","oder","als","wenn","auch","wo","wie"); 
$ignore_art = array("der","die","das","ein","eine"); 
$ignore = array("ich","du","er","sie","es","wir","ihr","sie"); 

$extratextLength = 200; 


$suchtext = $_GET["suchtext"]; 
?> 

<form name="suche" action="<?= $linkziel ?>" method="get"> 
   <div><span style="font-size: 15px">Erneut suchen:&nbsp;</span> 
   <input name="suchtext" type="text" size="20" value="<?= $suchtext ?>" /> 
   <input name="submit" type="submit" value="Go" /></div><br /><br /> 
</form> 

<?php 
$linktarget = "CMS_VALUE[1]"; 
$extratext = "CMS_VALUE[2]"; 

/* DB Instances */ 
$db = new DB_Contenido; 
$db2 = new DB_Contenido; 

/* Template Instance */ 
cInclude("classes", "class.template.php"); 
$tpl = new Template; 


if($suchtext != "") { 
   while(ereg('  ', $suchtext)) { 
      $suchtext = ereg_replace('  ', ' ', $suchtext); 
   } 
   $suchliste = explode(" ", strtolower($suchtext)); 
   $suchliste = array_diff($suchliste, $ignore_konj, $ignore_art, $ignore); 
   $suchtext = trim(implode(" ", $suchliste)); 

   if($verknuepfung == "oder") { 
      $suchregexp = "(" . str_replace(" ", ")|(", $suchtext) . ")"; 
      $s = ereg_replace("ü", "%FC", strtolower($suchtext)); 
      $s = ereg_replace("ä", "%E4", $s); 
      $s = ereg_replace("ö", "%F6", $s); 
      $suchregexp .= "|$s"; 
      $sql =   "SELECT " . 
               "A.title AS title, " . 
               "A.idart AS idart, " . 
               "A.summary AS comment, " . 
               "B.idcat AS idcat, " . 
               "D.value AS content, " . 
               "A.idartlang AS sideid " . 
            "FROM " . 
               $cfg["tab"]["art_lang"] . " AS A, " . 
               $cfg["tab"]["cat_art"] . " AS B, " . 
               $cfg["tab"]["cat"] . " AS C, " . 
               $cfg["tab"]["content"] . " AS D " . 
            "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' " . 
               "AND (D.value REGEXP '" . $suchregexp . "' " . 
                  "OR A.title REGEXP '" . $suchregexp . "' " . 
                  "OR A.summary REGEXP '" . $suchregexp . "')"; 
   } // end if($verkuepfung) 
   else { 
      $sql =   "SELECT " . 
               "A.title AS title, " . 
               "A.idart AS idart, " . 
               "A.summary AS comment, " . 
               "B.idcat AS idcat, " . 
               "D.value AS content, " . 
               "A.idartlang AS sideid " . 
            "FROM " . 
               $cfg["tab"]["art_lang"] . " AS A, " . 
               $cfg["tab"]["cat_art"] . " AS B, " . 
               $cfg["tab"]["cat"] . " AS C, " . 
               $cfg["tab"]["content"]." AS D " . 
            "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'"; 

      while(list($key, $val) = each($suchliste)) { 
         $suchregexp = "(" . str_replace(" ", ")|(", $val) . ")"; 
         $s = ereg_replace("ü", "%FC", strtolower($val)); 
         $s = ereg_replace("ä", "%E4", $s); 
         $s = ereg_replace("ö", "%F6", $s); 
         $suchregexp .= "|$s"; 
         $sql .=    " AND (D.value REGEXP '" . $suchregexp . "' " . 
                     "OR A.title REGEXP '" . $suchregexp . "' " . 
                     "OR A.summary REGEXP '" . $suchregexp . "')"; 
      } // end while 
      reset($suchliste); 
   } // end else($verknuepfung) 

   $db->query($sql); 

   if($db->num_rows() != 0){ 
      while($db->next_record()) { 
         if ($auth->auth["uid"] == "nobody"){ 
            $sql2 =   "SELECT " . 
                     "public " . 
                  "FROM " . 
                     $cfg["tab"]["cat_lang"] . " " . 
                  "WHERE " . 
                     "idcat = '" . $db->f("idcat") . "'"; 
            $db2->query($sql2); 

            if($db2->next_record()) { 
               if($db2->f("public") == 0) { 
                  continue; 
               } // end if(public) 
            } // end if(next_record) 
         } // end if(auth nobody) 

         $num = 0 + $db->f("sideid"); 
         $results[$num][link] = "front_content.php?" . 
                              "client=" . $client . 
                              "&lang=" . $lang . 
                              "&idcat=" . $db->f("idcat") . 
                              "&idart=" . $db->f("idart"); 
         $results[$num][title] = $db->f("title"); 

         //anzuzeigenden Text ermitteln 
switch($extratext) { 
   case 0: 
      $results[$num][text] = ""; 
      break; 
   case 1: 
      $results[$num][text] = nl2br($db->f("comment")); 
      break; 
   case 2: 
      $results[$num][text] = capiStrTrimSentence(strip_tags(urldecode($db->f("content")), "<br /><br/><br />"), $extratextLength) . "..."; 
      $results[$num][text] = nl2br($results[$num][text]); 
      break; 
} // end switch 
// unnötige Zeilenumbrüche entfernen 
$results[$num][text] = preg_replace("/(?s)^(\<br(.?)(\/?)\>(\\r\\n)?(\&nbsp;|\040)*)+/", "", $results[$num][text]); 
$results[$num][text] = preg_replace("/(?s)(\<br(.?)(\/?)\>(\\r\\n)?(\&nbsp;|\040)*)+/", "<br />", $results[$num][text]); 


         while(list($key, $val) = each($suchliste)) { 
            $hits[$num] +=   substr_count(strtolower(strip_tags(urldecode($db->f("title")))), $val) + 
                        substr_count(strtolower(strip_tags(urldecode($db->f("comment")))), $val) + 
                        substr_count(strtolower(strip_tags(urldecode($db->f("content")))), $val); 
         } // end while 

         reset($suchliste); 
      } // end while(next_record) 

      if(count($hits) > 0) { 
         //anzahl hits speichern 
         $anzahlhits = count($hits); 

         $hits = array_values($hits); 
         $results = array_values($results); 
         array_multisort ($results, SORT_DESC, SORT_NUMERIC, $hits, SORT_DESC, SORT_NUMERIC); 

      } // end if(count hits) 
   } // end if(num_rows) 


   //Ausgabe----------------- 

   /* Start Output buffer */ 
   ob_start(); 

   if(count($hits) > 0) { 
      $tpl->reset(); 
      $tpl->set('s', 'SUCHTEXT', $suchtext); 
      $tpl->set('s', 'TREFFER', $anzahlhits); 

      for($i = 0; $i < count($hits); $i++) { 
         $tpl->set('d', 'ARTIKELNAME', $results[$i][title]); 
         $tpl->set('d', 'TARGET', $linktarget); 
         $tpl->set('d', 'HREF',  $results[$i][link]); 
         $tpl->set('d', 'TEXT',  $results[$i][text]); 
         $tpl->next(); 
      } 
      $tpl->generate('templates/search_found.html'); 
   } // end if(count hits) 
   else { 
      $tpl->reset(); 
      $tpl->set('s', 'SUCHTEXT', $suchtext); 
      $tpl->generate('templates/search_notfound.html'); 
   } // end else (count hits) 
} // end if(suchtext) 

/* Read out buffer */ 
$html = ob_get_contents(); 

/* Clean buffer */ 
ob_end_clean(); 

/* Output buffer-contents */ 
echo $html; 
?> 

search_found.html (kopieren nach "template"):

Code: Alles auswählen

 
<div> 
   Suchergebnisse für "<strong>{SUCHTEXT}</strong>" 
   <br /> 
   Anzahl Treffer: <strong>{TREFFER}</strong> 
</div> 
<br /> 
<!-- BEGIN:BLOCK --> 
<div> 
   <a href="{HREF}" target="{TARGET}"><strong>{ARTIKELNAME}</strong></a><br /> 
   {TEXT} 
</div> 
<br /> 
<!-- END:BLOCK --> 

search_notfound.html :

Code: Alles auswählen

<div class="text"> 
Es wurden keine mit Ihrer Suchanfrage "<strong>{SUCHTEXT}</strong>" übereinstimmenden Dokumente gefunden 
</div>

Verfasst: Sa 5. Mär 2005, 22:53
von Halchteranerin
na ja, stellt sich die Frage, was du genau geaendert hast. Denn die weiteren Aenderungen sind davon abhaengig. Bei mir habe ich

Code: Alles auswählen

<form name='suche' method='POST' action='front_content.php?idcatart=254&lang=1&client=1'> 
in

Code: Alles auswählen

<form name='suche' method='GET' action='front_content.php'>
<input type='hidden' name='idcatart' value='254'>
<input type='hidden' name='lang' value='1'>
<input type='hidden' name='client' value='1'>
geaendert.

Mein Angebot mit der von mir eingesetzten Suche steht uebrigens immer noch. Es gibt nur zwei Module, fuer Ein- und Ausgabe (jeweils mit Ein- und Ausgabe), dafuer braucht man keine zusaetzlichen Dateien (das finde ich persoenlich immer so unuebersichtlich, denn es ist mir mehr als einmal passiert, dass ich ein Modul auf einer anderer Site einsetzen wollte, und da stellte sich heraus, dass ich vergessen habe, die eine oder andere zugehoerige Datei zu kopieren).

Verfasst: Sa 5. Mär 2005, 23:19
von Cyclist
Danke, das wars. Ich hatte zuerst idcat und idcatart vewechselt, darum ging es bei mir nicht... ich merke ich muss noch viel lernen ;) Danke!

Bei deinem Suchmodul wird nur der Titel ausgegeben oder kann man das einstellen? Mir wäre es auch lieber ohne extra Dateien, aber ich würde eben gerne auch den Untertitel angezeigt bekommen.

So hier nun die Lösung

Verfasst: Do 23. Mär 2006, 22:59
von smhh
Hier das Template für die Sucheingabe

Code: Alles auswählen

<div id="searchbox">
<form method="get" action="{SEARCH_URL}" style="padding:0;margin:0;" name="formsearch" id="formsearch">
<input type="hidden" name="idcat" value="{ZIELSEITE}"> 
<input type="hidden" name="lang" value="1"> 
<input type="hidden" name="client" value="1">		
		<table border="0" cellspacing="0" cellpadding="0">
			<tr>
				<td><img src="images/blank.gif" width="70" height="1" border="0"/></td>
				<td><img src="images/blank.gif" width="73" height="1" border="0"/></td>
				<td><img src="images/blank.gif" width="1" height="1" border="0"/></td>
			</tr>
			<tr>
				
        <td width="20" align="right"> 
          <label for="searchterm" class="label_searchbox">{SEARCH_TITLE}</label></td>
				<td><input type="text" name="searchterm" id="searchterm" value="" class="input_searchbox"/></td>
				<td><a href="javascript:document.forms['formsearch'].submit();" style="color: #9d9ea2;">{SEARCH_START}</a>&nbsp;<a href="javascript:document.forms['formsearch'].submit();"><img src="images/navi_pfeil_rechts.gif" alt="{SEARCH_TITLE}" title="{SEARCH_TITLE}" border="0"/></a></td>
			</tr>
		</table>
	</form>
</div>


Das Modul Sucheingabe dann so :
OUTPUT

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Sucheingabe
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     09.08.2005
************************************************/

#Includes
cInclude('classes', 'class.template.php');

#Settings
$template = 'sucheingabe.html';
$cApiClient = new cApiClient($client);
$selected = $cApiClient->getProperty("search","resultpage");


if ( !is_object($tpl) ) {
    $tpl = new Template;
}
$tpl->reset();

//$url = $sess->url("front_content.php?idcat=".$selected);

//$url = $sess->url("front_content.php);

if($_POST['searchterm']!=''){
	$searchterm = $_POST['searchterm'];
}else{
	$searchterm = $_GET['searchterm'];
}

$tpl->set('s', 'SEARCH_TITLE', mi18n("Suche"));	
$tpl->set('s', 'SEARCH_URL', $url);	
$tpl->set('s', 'SEARCH_START', mi18n("Go"));
$tpl->set('s', 'ZIELSEITE', $selected);	

$tpl->generate('templates/'.$template);

?>
funkzt wunderbar !! :P

Hoffe Euch geholfen zu haben :D