Try this workaround to solve problem with TextSearchExpanded.
(I'm sorry for the $this->lang['xxx'] coding, please replace them with the original content...)

<?php
 $etc = "<span class='textsearch_etc'>...</span>";
 $output = $this->FormOpen("", "", "get");
 $output .= '
 <table border="0" cellspacing="0" cellpadding="0">
 <tr><td>'
.$this->lang['search_for'].': </td>
<td><input name="phrase" size="40" value="'
;
 if (isset($_REQUEST["phrase"]))
 {
  $output .= $this->htmlspecialchars_ent(stripslashes($_REQUEST["phrase"]));
 }
 $output .= '" /> <input type="submit" value="'.$this->lang['search'].'"/></td></tr>
</table>'
;
 $output .= $this->FormClose();
 
 if (isset($_REQUEST["phrase"]) && $phrase = $_REQUEST["phrase"])
 {
    $phrase = stripslashes($phrase);
    $output .= "<br />";
    $results = $this->FullTextSearch($phrase);

  switch (count($results))
  {
   case 0: $output .= sprintf($this->lang['zero_result_for'], $phrase); break;
   case 1: $output .= sprintf($this->lang['one_result_for'], $phrase); break;
   default: $output .= sprintf($this->lang['n_results_for'], $phrase, count($results)); break;
  }
  $phrase = str_replace("\"", "", $phrase);
  if ($results)
  {
   $output .= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
   $STORE_FORMATING_AS_TEXT = 1;
   #preg_quote
  $phrase = preg_replace('/(\.|\\|\?|\[|\^|\]|\$|\(|\)\|{\|\}|\=|\!|\<|\>|\||\:|\/)/', "\\\\$1", $phrase);
   $phrase = preg_replace('/\-\S*|\s\+/', ' ', " $phrase ");
   $phrase = preg_replace(array('/^ +| +$/', '/ \*/', '/\*\w*/', '/ +/'), array('', '', '$1\S*', '|'), $phrase);
   foreach ($results as $i => $page)
   {
    preg_match_all("/(.{0,120})($phrase)(.{0,120})/is",$page['body'],$matchString);
    $text = $this->htmlspecialchars_ent(implode('<br />',$matchString[0]));
    $text = str_replace('<br />', "$etc<br />$etc", $text);
    //   include("formatters/wakka.php");
    $highlightMatch = preg_replace("/($phrase)/i","<span class='textsearch_keywords'>$1</span>",$text,-1);
    $matchText = "$etc$highlightMatch$etc";
    $output .= "<tr>
 <td valign=\"top\" align=\"right\">
 <table>
  <tr>
   <td valign=\"top\" align=\"left\" bgcolor=\"#DDDDDD\">
    <font color=\"white\" size=\"-3\">
    "
.($i+1)."
    </font>
   </td>
  </tr>
 </table>
 </td>
 <!-- link -->
 <td valign=\"top\">
 "
.$this->Link($page["tag"])."
 </td>
 <!-- date of last update -->
 <td valign=\"top\" align=\"right\">
  <font color=\"gray\" size=\"-3\">
  $page[time]
  </font>
 </td>
 </tr>
 <tr>
 <td>
   
 </td>
 <td colspan=\"2\">
  $matchText
 </td>
 </tr>
 <tr>
 <td>
   
 </td>
 </tr>
 "
;
  }
  $output .= "</table>";
 }
}
$output = $this->ReturnSafeHtml($output);
echo $output;
?>


Every action in Wikka should use the coding :
$output = "....";
...
$output .= ".....";
...
print($this->ReturnSafeHtml($output));

To prevent javascript attack, but this is another problem.

--DotMG


As part of the SemanticMarkup drive, why not replace all that tag-soup table with:

$highlightMatch = preg_replace("/($phrase)/i","<em><em>$1</em></em>",$text,-1);
$matchText = "…".$highlightMatch."…";
$output .= "\n<p>".($i+1)." ".$this->Link($page["tag"])." — ".$page[time]."</p>";
$output .= "\n<blockquote>".$matchText."</blockquote>\n";


You remove all the unnecessary table and presentational spans. Use CSS to present the double emphasis exactly how you want, that is what CSS is there for. --IanAndolina

There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki