netcat 3.0 extra версия 3.0
Extra Customised
Проект: CMS NetCat
Пользователь: Гость (гостевой доступ)
вход в систему вход в систему
Инструменты Отчеты Техническая поддержка Поиск Блог про NetCat
Обновления системы: NetCat 3Системные сообщения: 109928
Структура и контент

Пользователи

Дизайн

Управление > Дизайн > Макеты дизайна > Поиск по сайту с использованием Яндекс.Сервер

Поиск по сайту с использованием Яндекс.Сервер

Перед использованием необходимо зарегистрировать ip сервера на сайте http://xml.yandex.ru/
%Header
<center>
<form action='' method=get>
<input type=text name=text value=\"".htmlspecialchars($text)."\" style='width: 90%;'><input type=submit value=Найти>
</form>
</center>
".(!$text?"$current_sub[Description]":"")."
<style>
body {margin:0; padding:0; background-color:white;}
body, td {font-family:Arial, Geneva CY, Sans-Serif;}


ol.results {margin:0 0 1.7em 0px; padding:0 0 0 21px}
ol.results li {margin-bottom:1em; padding:0;;}
ol.results div.title {font-size: 13px;}
ol.results div.text {padding-bottom:0.1em;}
ol.results div.info {color:#333333; margin-top:0.3em; overflow: hidden;}
ol.results div.info a {color:#000000;}
ol.results div.info a:visited {color:#800080;}
ol.results div.info span.count {font-size:11px;}
</style>
";
$page=$curPos+0;
if (!isset($numdoc)) $numdoc=10;
else $numdoc+=0;

$html['ERROR']['complete']="<h1>%s</h1>\n";
$html['RESPONSE']['open']="<div class=\"refblock\">\n";
$html['WORDSTAT']['complete']="Статистика слов: %s<br><br>\n";
$html['RESULTS']['open']="</div>\n<ol class=\"results\" start=".(($page)*$numdoc+1).">\n";
$html['RESULTS']['close']="</ol>\n";
$html['GROUP']['open']="\t<li>\n";
$html['GROUP']['close']="\t</li>\n";
$html['TITLE']['open']="\t\t<div class=\"title\">".urldecode($info[URL])."%s";
$html['TITLE']['cdata']="%s";
$html['TITLE']['close']="</a></div>\n";
$html['HLWORD']['complete']="<b>%s</b>";
$html['HEADLINE']['open']="\t\t<div class=\"info\">%s";
$html['HEADLINE']['complete']="\t\t<div class=\"info\">%s</div>\n";
$html['HEADLINE']['cdata']="%s";
$html['HEADLINE']['close']="\t\t</div>";
$html['PASSAGES']['open']="\t\t<div class=\"text\">\n";
$html['PASSAGES']['close']="\t\t</div>\n";
$html['PASSAGE']['open']="\t\t\t<span>%s";
$html['PASSAGE']['complete']="\t\t\t<span>%s</span><br>\n";
$html['PASSAGE']['cdata']="%s";
$html['PASSAGE']['close']="</span><br>\n";
$html['PROPERTIES']['open']="\t\t<div class=\"info\"><span style=\"color:#93948D;\">".$info[HREF]." ".$info[SIZE]." ".$info[MODTIME];
$html['PROPERTIES']['close']="</span></div>\n";

	function html($i,$xmlTree)
	{
		global $info, $html;
		$xmlTree[$i]['value']=iconv("UTF-8","CP1251",$xmlTree[$i]['value']);

		switch($xmlTree[$i]['tag'])
		{
			case 'URL': $info[URL]="<a href='".urldecode($xmlTree[$i]['value'])."'>"; $info[HREF]=$xmlTree[$i]['value']; $html['TITLE']['open']="\t\t<div class=\"title\">".$info[URL]."%s"; break;
			case 'MODTIME': $Y=substr($xmlTree[$i]['value'],0,4); $m=substr($xmlTree[$i]['value'],4,2); $d=substr($xmlTree[$i]['value'],6,2); $info[MODTIME]="$d.$m.$Y"; break;
			case 'SIZE': if(!$info[TITLE][exist]) printf($html['TITLE']['open'].$html['TITLE']['close'],$info[HREF]); else $info[TITLE][exist]=0; $info[SIZE]=round($xmlTree[$i]['value']/1024)." Kb"; break;
			case 'CHARSET': $info[CHARSET]=$xmlTree[$i]['value']; $html['PROPERTIES']['open']="\t\t<div class=\"info\"><span style=\"color:#93948D;\">".substr(urldecode($info[HREF]),0,100)."  ·  ".$info[SIZE]." ".($info[MODTIME]?" ·  ".$info[MODTIME]:""); break;
			case 'REQID': $info[REQID]=$xmlTree[$i]['value']; break;
			case 'TITLE': $info[TITLE][exist]=1; if($xmlTree[$i]['type']=='complete') $html['TITLE']['complete']="\t\t<div class=\"title\">$info[URL]%s</a></div>\n"; break;
			case 'FOUND': if($xmlTree[$i]['level']==5&&$xmlTree[$i]['attributes']['PRIORITY']=='strict') $info[totRows]=$xmlTree[$i]['value']; break;
		}
		printf($html[$xmlTree[$i]['tag']][$xmlTree[$i]['type']],htmlspecialchars($xmlTree[$i]['value']));
	}


	$xmlTree=array();
	$xml_parser = xml_parser_create();

	if ($text)
	{
		$fp = @fsockopen ("xmlsearch.yandex.ru", 80, $errno, $errstr, 5);
		if (!$fp)
		{
			echo "<h1>Сервис временно недоступен</h1><error $errstr ($errno)><br>\n";
		}
		else
		{
			$data="<"."?xml version='1.0' encoding='cp1251'?".">
			<request>
				<query>$text &lt;&lt; url=\"$HTTP_HOST*\"</query>
				<maxpassages>3</maxpassages>
				<max-title-length>100</max-title-length>
				<max-headline-length>150</max-headline-length>
				<max-passage-length>100</max-passage-length>
				".($page?"<page>$page</page>":"")."
				<groupings>
					<groupby attr='d' mode='flat' groups-on-page='$numdoc' docs-in-group='1' curcateg='-1'/>
				</groupings>
			</request> ";

			$request="POST /xmlsearch/ HTTP/1.0\r\nAccept: */*\r\nAccept-Language: ru\r\nHost: xmlsearch.yandex.ru\r\nConnection: Close\r\n";
			$request.="Content-Length: ".strlen($data)."\r\n\r\n$data";
			fputs ($fp, $request);

			while (!feof($fp))
			{
				$line=fgets($fp,4000);
				if (!trim($line)) break;
			}

			while (!feof($fp)) $xml.=fread($fp,4000);
			xml_parse_into_struct ($xml_parser, $xml,$xmlTree);
			unset($xml);

			$num=count($xmlTree);
			for($i=0;$i<$num;$i++) html($i,$xmlTree);
		}
	}
echo "

".opt($nav['LocalQuery']="?text=$text&q=$info[REQID]&numdoc=$numdoc","")."
".opt($nav['curPos']=$curPos,"")."
".opt($nav['maxRows']=1,"")."
".opt($nav['totRows']=ceil($info['totRows']/10),"")."
".($nav[totRows]?"<center>".browse_messages($nav, 10)."<br><b>Всего: $info[totRows]</b></center>":"")."
© 2012 CND Group | О программе | Карта сайта Реклама: сервер поддержка NetCat (351) 725-03-89
icq 161143544 support@resident.com.ru
Зарегистрироваться
Логин:
Пароль:
Забыли пароль?