В шаблоне страницы вывод поисковой формы:
Code
<div align="center">
<b>Данный пример демонстрирует использование скрипта для фильтрации результатов поиска по сайту по букве алфавита</b>
</p>
</div>
<hr>
<?$PHPCODE$("filtersearchbyalph.php")?>
<b>Данный пример демонстрирует использование скрипта для фильтрации результатов поиска по сайту по букве алфавита</b>
</p>
</div>
<hr>
<?$PHPCODE$("filtersearchbyalph.php")?>
filtersearchbyalph.php создаем из ниже указанного PHP скрипта, и заменяем на ссылку залитого скрипта.
PHP скрипт:
Его скачиваем в архиве уже готовый , или используем блокнот и сохраняем с расширением php с таким названием filtersearchbyalph.php ниже приведенный код вставляется в блокнот:
Code
<?
if ((count($_POST)>0) && $_POST['q'])
{
$___notjson=1;
$ch = curl_init();
curl_setopt_array($ch, array(CURLOPT_URL => "/search/?q=".$_POST['q'],
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 5,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)")
);
$data = curl_exec($ch);
curl_close($ch);
preg_match("/<table\s+[^>]*?\s*class=[\'\"]?\s*eBlock\s*[\'\"]?/si",$data,$matches,PREG_OFFSET_CAPTURE);
$data=substr($data,$matches[0][1]);
$matches="none";
preg_match_all("/<div\s+[^>]*?\s*class=[\'\"]?\s*eTitle\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
$mydata=array();
$myalph=array();
foreach ($matches[0] as $key => $value)
{
$mydata[$key]=array();
$mydata[$key][0]=$value;
preg_match("/>\s*(\p{L})[^<]+</iu",$value,$matches0);
if (!isset($matches0[1])) next;
$matches0[1]=mb_strtoupper($matches0[1],'UTF-8');
if (!isset($myalph[$matches0[1]])) $myalph[$matches0[1]]=array();
array_push($myalph[$matches0[1]],$key);
}
preg_match_all("/<div\s+[^>]*?\s*class=[\'\"]?\s*eMessage\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][1]=$value;
preg_match_all("/<div\s+[^>]*?\s*class=[\'\"]?\s*eDetails\s*[\'\"]?.*?\s*<\/div>/si",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][2]=$value;
$html="<div>
<form name=\"sortform\" action=\"/php/example005/filtersearchbyalph.php\" method=\"post\" onsubmit=\"_uPostForm(this,{dataType:'script'});return false;\" onerror=\"alert('Error');\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
<tr><td>";
foreach ($myalph as $key => $value) $html.=" <input type=\"submit\" value=\"".$key."\" onclick=\"document.sortform.letter.value='".$key."'\">";
$html.="</td></tr></table>
<input type=\"hidden\" name=\"q\" value=\"".$_POST['q']."\">
<input type=\"hidden\" name=\"letter\" value=\"\">
</form></div><table>";
if (!$_POST['letter']) foreach ($mydata as $value) $html.="<tr><td>".$value[0].$value[1].$value[2]."</td></tr><tr><td> </td></tr>";
else foreach ($myalph[$_POST['letter']] as $value) $html.="<tr><td>".$mydata[$value][0].$mydata[$value][1].$mydata[$value][2]."</td></tr><tr><td> </td></tr>";
$html.="</table><br><hr><br>";
$html=str_replace("\n"," ",$html);
$html=str_replace("'","'",$html);
echo "$('#sortsearch').html('$html')";
return;
}
?>
<div id='sortsearch'></div>
<form action="/php/example005/filtersearchbyalph.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">
Поисковый запрос: </p><input type="text" name="q" />
<input type="submit" value="Поиск"></p>
</form>
if ((count($_POST)>0) && $_POST['q'])
{
$___notjson=1;
$ch = curl_init();
curl_setopt_array($ch, array(CURLOPT_URL => "/search/?q=".$_POST['q'],
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 5,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)")
);
$data = curl_exec($ch);
curl_close($ch);
preg_match("/<table\s+[^>]*?\s*class=[\'\"]?\s*eBlock\s*[\'\"]?/si",$data,$matches,PREG_OFFSET_CAPTURE);
$data=substr($data,$matches[0][1]);
$matches="none";
preg_match_all("/<div\s+[^>]*?\s*class=[\'\"]?\s*eTitle\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
$mydata=array();
$myalph=array();
foreach ($matches[0] as $key => $value)
{
$mydata[$key]=array();
$mydata[$key][0]=$value;
preg_match("/>\s*(\p{L})[^<]+</iu",$value,$matches0);
if (!isset($matches0[1])) next;
$matches0[1]=mb_strtoupper($matches0[1],'UTF-8');
if (!isset($myalph[$matches0[1]])) $myalph[$matches0[1]]=array();
array_push($myalph[$matches0[1]],$key);
}
preg_match_all("/<div\s+[^>]*?\s*class=[\'\"]?\s*eMessage\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][1]=$value;
preg_match_all("/<div\s+[^>]*?\s*class=[\'\"]?\s*eDetails\s*[\'\"]?.*?\s*<\/div>/si",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][2]=$value;
$html="<div>
<form name=\"sortform\" action=\"/php/example005/filtersearchbyalph.php\" method=\"post\" onsubmit=\"_uPostForm(this,{dataType:'script'});return false;\" onerror=\"alert('Error');\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
<tr><td>";
foreach ($myalph as $key => $value) $html.=" <input type=\"submit\" value=\"".$key."\" onclick=\"document.sortform.letter.value='".$key."'\">";
$html.="</td></tr></table>
<input type=\"hidden\" name=\"q\" value=\"".$_POST['q']."\">
<input type=\"hidden\" name=\"letter\" value=\"\">
</form></div><table>";
if (!$_POST['letter']) foreach ($mydata as $value) $html.="<tr><td>".$value[0].$value[1].$value[2]."</td></tr><tr><td> </td></tr>";
else foreach ($myalph[$_POST['letter']] as $value) $html.="<tr><td>".$mydata[$value][0].$mydata[$value][1].$mydata[$value][2]."</td></tr><tr><td> </td></tr>";
$html.="</table><br><hr><br>";
$html=str_replace("\n"," ",$html);
$html=str_replace("'","'",$html);
echo "$('#sortsearch').html('$html')";
return;
}
?>
<div id='sortsearch'></div>
<form action="/php/example005/filtersearchbyalph.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">
Поисковый запрос: </p><input type="text" name="q" />
<input type="submit" value="Поиск"></p>
</form>
Примечание: php-скрипт обрабатывает столько материалов, сколько возвращает поисковый скрипт сайта. Если вы хотите, чтобы скрипт работал с большим количеством результатов, чем те, которые возвращаются по умолчанию, измените соответствующую настройку в панеле управления сайтом.
Мне нравится
+20
|