Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Удавалось кому нибудь подружить Custom Search Engine от гугла с сайтом?

Ответить
Настройки темы
[решено] Удавалось кому нибудь подружить Custom Search Engine от гугла с сайтом?

Аватара для Vampire

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


Сообщения: 126
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Пытаюсь подпружить Custom Search Engine от гугла с сайтом. Зарегился на гугле, настроил поисковик, получил 2 кода, один для вызова поискового запроса с кнопочкой сеарчь, а другой с выводом результата. Оба этих кода поставил на одной страничке. Если забивать в форму английское слово, то поиск срабатывает и выдает результаты, а вот если его по русски спросить, то ничего не выходит. Если разнести эти 2 кода на разные странички, то и с русским языком проблем не возникает, но охота сделать на одной. Еще нашел решение этой проблемы - выставить кодировку на странице в utf-8, но опять-же хочется иметь страничку с windows-1251.

Есть идеи?
поисковик от гугла http://www.google.com/coop/cse/
страничка, на которой у меня возникли проблемы: http://tools-of-death.ru/2.html

-------
http://tools-of-death.ru - Tools of Death - Энциклопедия орудий смерти! - Все то, что нас убивает.


Отправлено: 20:32, 16-09-2007

 

Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


А сам код?
попробуй переводить из одной кодировки в другую строку которую передал через search до выполнения скрипта

iconv -- Преобразовывает символы строки в другую кодировку

string iconv ( string in_charset, string out_charset, string str )

Производит преобразование кодировки символов строки str из начальной кодировки in_charset в конечную out_charset. Возвращает строку в новой кодировке, или FALSE в случае ошибки.

Если добавить //TRANSLIT к параметру out_charset будет включена транслитеризация. Это означает, что вслучае, когда символа нет в конечной кодировке, он заменяется одним или несколькими аналогами. Если добавить //IGNORE, то символы, которых нет в конечной кодировке, будут опущены. Иначе, будет возвращена строка str, обрезанная до первого недопустимого символа

PHP код: Выделить весь код

<?php

echo iconv("KOI8-U""UTF-8""Пора переходить на юникод.");
?>

php.ru

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Отправлено: 22:34, 16-09-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Vampire

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


Сообщения: 126
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Там все с помощью яваскрипта происходит.
Вот код вызова формы поиска:
Код: Выделить весь код
<!-- Google CSE Search Box Begins -->
<form id="searchbox_000809898124376604728:dywleb5svrq" action="http://tools-of-death.ru/2.html">
  <input type="hidden" name="cx" value="000809898124376604728:dywleb5svrq" />
  <input name="q" type="text" size="40" />
  <input type="submit" name="sa" value="Search" />
  <input type="hidden" name="cof" value="FORID:11" />
</form>
<!-- Google CSE Search Box Ends -->
А вот код вызова полученных результатов поиска:
Код: Выделить весь код
<!-- Google Search Result Snippet Begins -->
<div id="results_000809898124376604728:dywleb5svrq"></div>
<script type="text/javascript">
  var googleSearchIframeName = "results_000809898124376604728:dywleb5svrq";
  var googleSearchFormName = "searchbox_000809898124376604728:dywleb5svrq";
  var googleSearchFrameborder = 0;
  var googleSearchFrameWidth = 600;
  var googleSearchFrameHeight = "300px";
  var googleSearchDomain = "www.google.com";
  var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>
<!-- Google Search Result Snippet Ends -->
А вот листинг того яваскрипта, который упомянут в предыдущем коде, только там такая мешанина фиг разберешь
Код: Выделить весь код
(function(){var f=null,a=window,j="sitesearch",s=a.googleSearchResizeIframe||a.googleSearchPath&&a.googleSearchPath=="/cse"&&typeof a.googleSearchResizeIframe=="undefined",p,o,k;function t(c,b,l,m){var d={},g=c.split(l);for(var e=0;e<g.length;e++){var h=g[e],n=h.indexOf(b);if(n>0){var i=h.substring(0,n);if(m){i=i.toUpperCase()}else{i=i.toLowerCase()}var w=h.substring(n+1,h.length);d[i]=w}}return d}function x(){var c=document.location.search;if(c.length<1){return""}c=c.substring(1,c.length);var b=
t(c,"=","&",false);if(a.googleSearchQueryString!="q"&&b[a.googleSearchQueryString]){b.q=b[a.googleSearchQueryString];delete b[a.googleSearchQueryString]}if(b.cof){var l=t(decodeURIComponent(b.cof),":",";",true),m=l.FORID;if(m){p=parseInt(m,10)}}var d=document.getElementById(a.googleSearchFormName);if(d){if(d.q&&b.q&&(!b.ie||b.ie.toLowerCase()=="utf-8")){d.q.value=decodeURIComponent(b.q.replace(/\+/g," "))}if(d[j]){for(var g=0;g<d[j].length;g++){if(b[j]==f&&d[j][g].value==""){d[j][g].checked=true}else if(d[j][g].value==
b[j]){d[j][g].checked=true}else{d[j][g].checked=false}}}}var e="";for(var h in b){e+="&"+h+"="+b[h]}return e.substring(1,e.length)}function q(c,b){if(b){return"&"+c+"="+encodeURIComponent(b)}else{return""}}function r(c,b){if(c){return Math.max(c,b)}else{return b}}function u(){var c="http://";if(a.googleSearchDomain){c+=a.googleSearchDomain}else{c+="www.google.com"}if(a.googleSearchPath){c+=a.googleSearchPath}else{c+="/custom"}c+="?";if(a.googleSearchQueryString){a.googleSearchQueryString=a.googleSearchQueryString.toLowerCase()}c+=
x();c+=q("ad","w"+o);c+=q("num",k);c+=q("adtest",a.googleAdtest);if(s){var b=a.location.href,l=b.indexOf("#");if(l!=-1){b=b.substring(0,l)}c+=q("rurl",b)}return c}function v(){o=a.googleSearchNumAds;if(!o){o=9}k=a.googleNumSearchResults;if(k){k=Math.min(k,20)}else{k=10}var c={};c[9]=795;c[10]=795;c[11]=500;var b={};b[9]=300+90*k;b[10]=300+50*Math.min(o,4)+90*k;b[11]=300+50*o+90*k;var l=u();if(!a.googleSearchFrameborder){a.googleSearchFrameborder="0"}var m=document.getElementById(a.googleSearchIframeName);
if(m&&c[p]){var d=r(a.googleSearchFrameWidth,c[p]),g=r(a.googleSearchFrameHeight,b[p]),e=document.createElement("iframe"),h={name:"googleSearchFrame",src:l,frameBorder:a.googleSearchFrameborder,width:d,height:g,marginWidth:"0",marginHeight:"0",hspace:"0",vspace:"0",allowTransparency:"true",scrolling:"no"};for(var n in h){e.setAttribute(n,h[n])}m.appendChild(e);if(e.attachEvent){e.attachEvent("onload",function(i){window.scrollTo(0,0)})}else{e.addEventListener("load",function(){window.scrollTo(0,0)},
false)}if(s){a.setInterval(function(){if(a.location.hash&&a.location.hash!="#"){var i=a.location.hash.substring(1)+"px";if(e.height!=i&&i!="0px"){e.height=i}}},10)}}a.googleSearchIframeName=f;a.googleSearchFormName=f;a.googleSearchResizeIframe=f;a.googleSearchQueryString=f;a.googleSearchDomain=f;a.googleSearchPath=f;a.googleSearchFrameborder=f;a.googleSearchFrameWidth=f;a.googleSearchFrameHeight=f;a.googleSearchNumAds=f;a.googleNumSearchResults=f;a.googleAdtest=f}v()})();

-------
http://tools-of-death.ru - Tools of Death - Энциклопедия орудий смерти! - Все то, что нас убивает.


Отправлено: 23:06, 16-09-2007 | #3


Аватара для Vampire

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


Сообщения: 126
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Нашел одну зацепку в явоскрипте. Теперь возник вопрос, как с помощью яваскрипта преобразовать русские символы переданные с помощью метода get и превращенные в %EF%F0%EE%E2%E5%F0%EA%E0 преобразовать в русские символы в кодировке win-1251?

-------
http://tools-of-death.ru - Tools of Death - Энциклопедия орудий смерти! - Все то, что нас убивает.


Отправлено: 00:49, 17-09-2007 | #4


Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


%EF%F0%EE%E2%E5%F0%EA%E0 это и есть утф8.. я тебе написал функцию (пхп) которая переводит из одной кодирвки в другую.. на яве я такой не знаю %)
PHP код: Выделить весь код

$string=iconv("UTF-8""WINDOWS-1251"$string); 


Только вроде она не переводит сразу в кодировку WINDOWS-1251.. сначала надо в исо а потом в кирилицу %)
ЗЫ: а мешанину мог бы и разобрать....... тебе же лучше потом будет
Код: Выделить весь код
( function()
	{
	var f=null,a=window,j="sitesearch",s=a.googleSearchResizeIframe||a.googleSearchPath&&a.googleSearchPath=="/cse"&&typeof a.googleSearchResizeIframe=="undefined",p,o,k;
	
	function t(c,b,l,m) {
		var d={},g=c.split(l);
		for(var e=0;e<g.length;e++) {
			var h=g[e],n=h.indexOf(b);
			if(n>0) {
				var i=h.substring(0,n);
				if(m) {
					i=i.toUpperCase()
				} else {
					i=i.toLowerCase()
				}
				var w=h.substring(n+1,h.length);
				d[i]=w
			}
		}
		return d
	}
	
	function x(){ 
		var c=document.location.search;
		if(c.length<1) {
			return""
		}
		c=c.substring(1,c.length);
		var b=t(c,"=","&",false);
		if(a.googleSearchQueryString!="q"&&b[a.googleSearchQueryString]) {
			b.q=b[a.googleSearchQueryString];
			delete b[a.googleSearchQueryString]
		}
		if(b.cof) {
			var l=t(decodeURIComponent(b.cof),":",";",true),m=l.FORID;
			if(m) {
				p=parseInt(m,10)
			}
		}
		var d=document.getElementById(a.googleSearchFormName);
		if(d) {
			if(d.q&&b.q&&(!b.ie||b.ie.toLowerCase()=="utf-8")) {
				d.q.value=decodeURIComponent(b.q.replace(/\+/g," "))
			}
			if(d[j]) {
				for(var g=0;g<d[j].length;g++) {
					if(b[j]==f&&d[j][g].value=="") {
						d[j][g].checked=true
					} else if(d[j][g].value==b[j]) {
						d[j][g].checked=true
					}else {
						d[j][g].checked=false
					}
				}
			}
		}
		var e="";
		for(var h in b) {
			e+="&"+h+"="+b[h]
		}
		return e.substring(1,e.length)
	}
	
	function q(c,b) {
		if(b) {
			return"&"+c+"="+encodeURIComponent(b)
		} else {
			return""
		}
	}
	
	function r(c,b) {
		if(c) {
			return Math.max(c,b)
		}else {
			return b
		}
	}
	
	function u() {
	var c="http://";
	if(a.googleSearchDomain) {
		c+=a.googleSearchDomain
	} else {
		c+="www.google.com"
	}
	if(a.googleSearchPath) {
		c+=a.googleSearchPath
	} else {
		c+="/custom"}c+="?";
		if(a.googleSearchQueryString) {
			a.googleSearchQueryString=a.googleSearchQueryString.toLowerCase()
		}
		c+=x();
		c+=q("ad","w"+o);
		c+=q("num",k);
		c+=q("adtest",a.googleAdtest);
		if(s) {
			var b=a.location.href,l=b.indexOf("#");
			if(l!=-1) {
				b=b.substring(0,l)
			}
			c+=q("rurl",b)
		}
		return c
	}
	
	function v() {
		o=a.googleSearchNumAds;
		if(!o) {
			o=9
		}
		k=a.googleNumSearchResults;
		if(k) {
			k=Math.min(k,20)
		} else {
			k=10
		} 
		var c={};
		c[9]=795;
		c[10]=795;
		c[11]=500;
		var b={};
		b[9]=300+90*k;
		b[10]=300+50*Math.min(o,4)+90*k;
		b[11]=300+50*o+90*k;
		var l=u();
		if(!a.googleSearchFrameborder) {
			a.googleSearchFrameborder="0"
		} 
		var m=document.getElementById(a.googleSearchIframeName);
		if(m&&c[p]) {
			var d=r(a.googleSearchFrameWidth,c[p]), g=r(a.googleSearchFrameHeight, b[p]), e=document.createElement("iframe"), 	h={name:"googleSearchFrame",src:l,frameBorder:a.googleSearchFrameborder,width:d,height:g,marginWidth:"0",marginHeight:"0",hspace:"0",vspace:"0",allowTransparency:"true",scrolling:"no"};
			for(var n in h) { 
				e.setAttribute(n,h[n])
			}
			m.appendChild(e);
			if(e.attachEvent) {
				e.attachEvent("onload",function(i) {			window.scrollTo(0,0)})
			} else {
				e.addEventListener("load",function(){window.scrollTo(0,0)},false)
			} if(s) {
				a.setInterval(function() { 
					if(a.location.hash&&a.location.hash!="#") {
						var i=a.location.hash.substring(1)+"px";
						if(e.height!=i&&i!="0px") {
							e.height=i
						}
					}
				},10)
			}
		}
		a.googleSearchIframeName=f;
		a.googleSearchFormName=f;
		a.googleSearchResizeIframe=f;
		a.googleSearchQueryString=f;
		a.googleSearchDomain=f;
		a.googleSearchPath=f;
		a.googleSearchFrameborder=f;
		a.googleSearchFrameWidth=f;
		a.googleSearchFrameHeight=f;
		a.googleSearchNumAds=f;
		a.googleNumSearchResults=f;
		a.googleAdtest=f
	}
	v()
} )();
ЗЫ: для пхп нашел специальный класс перекодирования На основе его можеш написать преобразование на джаве...

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Последний раз редактировалось Hitsi, 17-09-2007 в 03:41.


Отправлено: 02:31, 17-09-2007 | #5


Аватара для Vampire

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


Сообщения: 126
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Спасибо за приведение мешанины в нормальный вид. Сам я ее кусками только в нужных местах к нормальному виду привел. Вручную долго ее приводить, а из автоматики ничего под рукой нету

В пхп делать не хочу, так как все на джаве сделано, вот и хочу гугловскую джаву переделать под свои нужды

Класс перекодирования гляну, а на яве случаем ничего нету уже предусмотренного для перекодировки из одной таблицы в другую, ведь наверное не я один этим заморачиваюсь?

-------
http://tools-of-death.ru - Tools of Death - Энциклопедия орудий смерти! - Все то, что нас убивает.


Отправлено: 18:03, 17-09-2007 | #6


Аватара для steelcat

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Сегодня уперся в такую же проблему с кодировками. Ларчик открывается довольно просто -- для кодировки KOI8-R в код формы поиска нужно добавить следующий код:

Код: Выделить весь код
<input type="hidden" name="ie" value="KOI8-R" />

Отправлено: 09:50, 10-10-2007 | #7


Аватара для Vampire

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


Сообщения: 126
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


А с кодировкой windows-1251 нужно вставить что-то типа:
Код: Выделить весь код
<input type="hidden" name="ie" value="windows-1251" />
Так?

Я до этого просто скачал аваскрипт гугловский и его немного поковеркал, там где в форму обратно передавался запрос.

-------
http://tools-of-death.ru - Tools of Death - Энциклопедия орудий смерти! - Все то, что нас убивает.


Отправлено: 21:19, 10-10-2007 | #8


Аватара для steelcat

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, так должно работать. К сожаления, пока не наберу 3 постов, не могу дать ссылки на документацию.

Отправлено: 07:05, 11-10-2007 | #9


Аватара для Vampire

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


Сообщения: 126
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Так напиши еще чего-нить интересного и будет 3 пост
Сам додумался на прописывание строчки с кодировкой или подсказал кто?

-------
http://tools-of-death.ru - Tools of Death - Энциклопедия орудий смерти! - Все то, что нас убивает.


Отправлено: 00:16, 12-10-2007 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Удавалось кому нибудь подружить Custom Search Engine от гугла с сайтом?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Everything Search Engine - поиск файлов mbgroot Наборы обновлений для Windows XP/2003/Windows 7 40 23-01-2021 20:53
Помогите доделать диск. Обьясните пошагово, если кому-нибудь не трудно Alex Fly Автоматическая установка Windows 2000/XP/2003 4 26-02-2009 01:19
[решено] Верстка. Форма "Google Custom Search" "рвет" дизайн. Anonymous234 Вебмастеру 4 26-07-2007 14:27
LindowsOS 3.0spx кому-нибудь знакома? Alex Sid Хочу все знать 2 05-08-2003 20:39




 
Переход