Поставила на свой форум в дополнение к обычному поиску по форуму поисковую форму нигмы
Форма может быть полезна как дополнение к имеющемуся поиску для сайтов с открытым контентом, которые регулярно индексируются поисковиками. (На моем сайте эта штучко пока ничего не находит, потому что он создан меньше 2-х недель назад, а вот по сайту 4админс, нигма, бывает, ищет очень даже неплохо и находит то, что не получается найти с помощью обычного поиска.)
Я распетрушила js-код, который предоставляет нигма, и изменила его.
Основные отличия - он меньше js-кода нигмы, который сделан под все 6 форм и их вариации, предоставляемых этим поисковиком на выбор.
В действительности же столько инструкций, сколько содержит этот скрипт, для отдельно взятого сайта не нужно. Кроме того, поскольку в нигмовском скрипте задается стиль фрейма, в котором выводятся результаты поиска, при необходимости изменить этот стиль приходится его забивать поверх указаниями в css с атрибутом !important. В моем же варианте стиль описывается сразу такой, какой нужно.
Ну, и кроме того, в моем варианте скрипт не лежит на постороннем ресурсе.
Вот мой вариант установки нигма-поиска.
1) создаем js-файл в кодировке сайта. Это можно сделать с помощью стандартной программы Notepad, которая есть в виндос. Создаем файл, выбираем кодировку,
В файл копипастим:
- Код: Выделить всё
var nigmaSearch=function(){
var s="http://nigma.ru/";
var u=s+"themes/nigma/SearhForms/v2/img/";
s+="?";
var t=function(a){return document.getElementById(a)};
function f(a){
var g="",
d=0,
b=/(^[a-zA-Zа-яА-Я0-9№_.]*)/;
a=a.toString();
while(d<a.length){
var e=b.exec(a.substr(d));
if(e!=null&&e.length>1&&e[1]!=""){g+=e[1];d+=e[1].length}
else{
if(a[d]==" "){g+="+"}
else{var h=a.charCodeAt(d);var c=h.toString(16);g+="%"+(c.length<2?"0":"")+c.toUpperCase()}d++}
}
return g}
var q=t("nigmaSearch"),
n=t("nigmaSearchText"),
v=n.parentNode.parentNode,
x=q.getElementsByTagName("p")[0].innerHTML,
w=document.location.href;
t("nigmaSearch").onsubmit=function(){
if(n.value.length==0){alert("Что будем искать?");n.focus();return false}
var e=document.createElement("div"),
d=q.getElementsByTagName("input"),
h="",
a="nigma-";
if(!(t("nigmaSearchR1")&&isNaN(x)&&(t("nigmaSearchR1").checked||t("nigmaSearchR1").type=="hidden"))){a=""}
for(var g=0;g<d.length;g++){
if(d[g].name!=""&&d[g].value!="") {
if((d[g].name!="t"||(d[g].name=="t"&&(d[g].checked||d[g].type=="hidden")))&&d[g].name!="encoding"){
h+=a+d[g].name+"="+f(d[g].value)+"&"}
}
}
if(!(h.indexOf("site=")+1)){h+="site="+w.match(/^(?:http:\/\/)?([^\/]+)/i)[1]}
if(h.indexOf("t=site")+1&&x==2) {
e.innerHTML+='<table width="100%"><tr><td> </td><td width="530"><div class="frameHolder"><div class="closeShadow"></div><div id="nigmaSearchClose">Закрыть</div><div class="shadow"></div><div class="frameWrapper"><iframe src="'+s+h+'" scrolling="auto" frameborder="0" id="nigmaSearchFrame"></iframe></div></div></td><td> </td></tr></table>';
e.id="nigmaSearchFrameHolder";
document.body.appendChild(e);
t("nigmaSearchClose").onclick=function(){e.parentNode.removeChild(e)};
window.scrollTo(0,0)
}
else{
if(h.indexOf("t=site")+1&&isNaN(x)){document.location.href=x+(x.indexOf("?")+1?"&":"/?")+h}
else{
if(x==1&&h.indexOf("t=site")+1){var b=1}
var c=window.open(s+h,"nigmaSerachWindow","width="+(b?"750":"1000")+",height="+(b?"650":"700")+",top=30,location=1,status=1,scrollbars=1");
c.focus()
}
}
return false}
};
var nigmaSearchInit=setInterval(function(){
if(document.getElementById("nigmaSearchText")){nigmaSearch();clearInterval(nigmaSearchInit)}
}
,60);
if(document.getElementById("nigmaSearchText")){nigmaSearch();clearInterval(nigmaSearchInit)};
Сохраняем как Javascript.
2) Через менеджер картинок заливаем созданный скрипт на сайт.
3) Идем в тему стиля.
Дописываем инструкции про стиль фрейма, в котором будут выводиться результаты поиска:
- Код: Выделить всё
#nigmaSearch p {display: none;}
#nigmaSearchFrame table, #nigmaSearchFrame td {margin:0; padding:0; border-collapse: separate; border: none;}
#nigmaSearchFrameHolder {position: absolute; top: 90px; left: 0; width: 100%; height: 590px; z-index: 999;}
#nigmaSearchFrameHolder .frameHolder {position: relative; width: 100%; height:100%;}
#nigmaSearchClose {position: absolute; top: -26px; right: 5px; width: 70px; height: 30px; padding: 2px; font: 14px Tahoma, Arial, sans-serif; text-align: center; color: #FFF; background-color: #2D4E70; cursor: pointer; cursor: hand;}
#nigmaSearchFrameHolder .shadow, #nigmaSearchFrameHolder .closeShadow {position: absolute; width: 770px; height: 650px; background:#999; opacity:0.6; -khtml-opacity: 0.6; -moz-opacity:0.6; filter: alpha(Opacity=60);}
#nigmaSearchFrameHolder .closeShadow {top: -21px; right: 0; width: 5px; height: 21px;}
#nigmaSearchFrameHolder .frameWrapper {position: relative; width: 766px; height: 646px; top: -5px; left: -5px; padding: 2px; background-color: #2D4E70;}
#nigmaSearchFrame {width: 766px; height: 646px; background: #FFF;}
#2D4E70 - меняем на цвет, более мене подходящий к цветовой гамме Вашего форума.
4). Идем в шаблоны. Вставляем в то место, где вы хотите, чтобы располагалась форма поиска, следующий код:
- Код: Выделить всё
<form action="http://nigma.ru" method="get" id="nigmaSearch">
<a rel="nofollow" target="_blank" href="http://nigma.ru/index.php">поиск nigma:</a>
<input type="text" name="s" id="nigmaSearchText" size="20" style="padding:0;" />
<input type="image" src="адрес картинки-кнопки найти" style="padding:0;" alt=">>" title="найти" /><br />
<input type="hidden" name="t" value="site" id="nigmaSearchR1" />
<input type="hidden" name="site" value="адрес вашего сайта без http://" />
<input type="hidden" name="encoding" value="{S_CONTENT_ENCODING}" /><p style="display: none">2</p></form>
<script type="text/javascript" src="адрес js-файла, который Вы залили на сайт" charset="{S_CONTENT_ENCODING}"></script>
При необходимости редактируем НТМЛ-разметку, чтобы форма встала так, как Вам нужно.