Substituir busca do vBulletin por Google AdSense Custom Search

  • Autor Autor imported_NkC
  • Data de início Data de início
Este tópico foi traduzido automaticamente do espanhol. Ver original
I

imported_NkC

Delta
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Primeiro, esclarecer que este guia foi feito por SemperFideles neste post Replace search with Google Custom Search - Page 3 - vBulletin.org Forum e também usarei o guia traduzido que Spika postou no Vbhispano neste post http://www.vbhispano.com/foros/f39/cambiar_barra_busqueda_normal_barra_adsense-17588/#post92633, mas como não vi o guia na seção adequada, vou colocá-lo para futuros usuários que queiram fazer esta implementação, que por sinal é muito boa e útil também se você usa AdSense.

1.- Você deverá acessar sua conta AdSense e criar um novo buscador customizado, estas são as opções que devem usar, as demais podem ficar por padrão:

- Tipo de busca: "Apenas os sites que eu selecionar"
- Sites selecionados: Seu fórum obviamente, e se quiser pode adicionar outros diretórios que tenha em seu domínio, mas deverá usar o arquivo que criaremos depois em seu root.
- Abrir página de resultados: "Abrir os resultados no meu próprio site" e no quadro você deverá colocar seu site, onde colocará o arquivo google.php. http://misitio.com/google.php ou talvez http://misitio.com/foro/google.php
Ver o anexo 3209Ver o anexo 3210
O restante que colocarem não é relevante na verdade para o resultado final, façam a gosto.

Ao finalizar a configuração e o sistema nos der o código, serão 2 códigos.
Ver o anexo 3208

2.- Agora que temos os códigos do AdSense vamos ao nosso:
Painel de Administrador do vBulletin --> Administrador de Estilos --> Adicionar Nova Template
Chamamos de GOOGLE e colamos o seguinte código que está incluído nos dados que o Google AdSense gerou para o arquivo google.php (em verde)


Inserir CODE, HTML ou PHP:
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
  <head>
    <title>{vb:raw vboptions.bbtitle}</title>
    {vb:raw headinclude}
  </head>
  <body>
    
    {vb:raw header}
    
    {vb:raw navbar}
    
    <div id="pagetitle">
      <h1>{vb:raw pagetitle}</h1>
    </div>
    
    <h2 class="blockhead">[COLOR=red]EL TITULO DE TU SITIO[/COLOR]</h2>
    <div class="blockbody">
      <div class="blockrow">

[COLOR=red]<div id="cse-search-results"></div>
<script type="text/javascript">
  var googleSearchIframeName = "cse-search-results";
  var googleSearchFormName = "cse-search-box";
  var googleSearchFrameWidth = 800;
  var googleSearchDomain = "www.google.es";
  var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>[/COLOR]
      </div>
    </div>
    
    {vb:raw footer}
  </body>
</html>
Em vermelho está o que devemos mudar, o título do nosso buscador do fórum e o segundo código vocês substituirão pelo seu código que o Google AdSense deu (é o segundo, o que diz que é para seu arquivo google.php).

3.- Criar o arquivo google.php, este novo arquivo localizaremos na URL que demos ao Google, seja o root ou /forum, etc:

Inserir CODE, HTML ou PHP:
<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################

define('THIS_SCRIPT', 'test');
define('CSRF_PROTECTION', true);  
// change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();

// get special data templates from the datastore
$specialtemplates = array();

// pre-cache templates used by all actions
$globaltemplates = array('GOOGLE',
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
// Si tu sitio se encuentra fuera del root, osea lo tienes en otro directorio, deberes especificarlo en el [COLOR=red]// chdir sino simplemente dejalo con los slash.
// chdir ('ruta/a/vuestro/foro');[/COLOR]
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = construct_navbits(array('' => 'B&uacute;squeda Foro GS Trail'));
$navbar = render_navbar_template($navbits);

// ###### YOUR CUSTOM CODE GOES HERE #####
$pagetitle = 'B&uacute;squeda con Google en Foro GS Trail';

// ###### NOW YOUR TEMPLATE IS BEING RENDERED ######

$templater = vB_Template::create('GOOGLE');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
$templater->register('pagetitle', $pagetitle);
print_output($templater->render());

?>
O que está em vermelho é o que devem modificar, caso seja necessário.

4.- Agora só resta substituir no nosso navbar (copiar e colar do post de Spika):

Na template navbar, procure por:

Inserir CODE, HTML ou PHP:
<form action="search.php?do=process" method="post" id="navbar_search" class="navbar_search">
Substitua por, certifique-se de inserir seu endereço para o arquivo google.php:

Inserir CODE, HTML ou PHP:
<form action="[B][COLOR=Red]http://www.midominio.com/google.php[/COLOR][/B]"  id="cse-search-box">
Abaixo procure por:

Inserir CODE, HTML ou PHP:
<input type="hidden" name="s" value="{vb:raw session.sessionurl}" /> 
<input type="hidden" name="securitytoken" value="{vb:raw bbuserinfo.securitytoken}" /> 
<input type="hidden" name="do" value="process" />
Substitua por:

Inserir CODE, HTML ou PHP:
<input type="hidden" name="cx" value="partner-pub-XXXXXXXXXXXXXXXXXXXX" />
<input type="hidden" name="cof" value="FORID:10" />
<input type="hidden" name="ie" value="ISO-8859-1" />
Os X em vermelho é o seu ID do AdSense que está no Quadro de Busca que o AdSense gerou para você.

Procure por:

Inserir CODE, HTML ou PHP:
<input type="text" value="" name="query" class="textbox" tabindex="99"/>
Substitua por:

Inserir CODE, HTML ou PHP:
<input type="text" value="" name="q" class="textbox" tabindex="99"/>
Procure por:

Inserir CODE, HTML ou PHP:
<input type="image" class="searchbutton" src="{vb:stylevar imgdir_button}/search.png" name="submit" onclick="document.getElementById('navbar_search').submit;" tabindex="100"/>
Substitua por:

Inserir CODE, HTML ou PHP:
<input type="image" class="searchbutton" src="{vb:stylevar imgdir_button}/search.png" name="sa" onclick="document.getElementById('navbar_search').submit;" tabindex="100"/>
Procure por:
</form>
Aparece duas vezes. Abaixo da primeira vez que aparece, adicione isto:

Inserir CODE, HTML ou PHP:
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&amp;lang=es"></script>
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Obrigado, só faltariam algumas capturas de tela, Spika sim as colocou 😀
 
Adicionadas 3 capturas de tela do AdSense, se forem necessárias mais, adicionarei ^^.
 
Olá, pois eu fiz o mesmo e sai quase tudo bem, só que não busca, quando você clica em buscar me redireciona para um site de hospedagem, é algo estranho. Poderiam me dar uma mão? Obrigado
Meu fórum -----> para que vejam a busca

coloquei o arquivo navbar para verem se notam algo mais

<vb:if condition="$vboptions['enablesearches']">
<div id="globalsearch" class="globalsearch">
<form action="http://www.cannabisgaci.com/google.php" id="cse-search-box">
<input type="hidden" name="cx" value="partner-pub-04812485983xxxxx:qwy6ad-9ulp" />
<input type="hidden" name="cof" value="FORID:10" />
<input type="hidden" name="ie" value="ISO-8859-1" />
<span class="textboxcontainer"><span><input type="text" value="" name="q" class="textbox" tabindex="99"/></span></span>
<span class="buttoncontainer"><span><input type="image" class="searchbutton" src="{vb:stylevar imgdir_button}/search.png" name="sa" onclick="document.getElementById('navbar_search').submit;" tabindex="100"/></span></span>
</form>
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&amp;lang=es"></script>
<ul class="navbar_advanced_search">
<li><a href="search.php{vb:raw session.sessionurl_q}" accesskey="4">{vb:rawphrase advanced_search}</a></li>
</ul>
</div>
</vb:if>
</div>
 
Olá, faço tudo o que você diz e me dá este erro


http://i41.tinypic.com/ru380l.jpg

Esse é um erro do Google, não da substituição em si... google search your client has issued a malformed or illegal request - Buscar com Google

Tente perguntar nos fóruns do Google.

Boas, eu fiz o mesmo e sai quase tudo bem, só que não busca. Quando você clica em buscar, ele me redireciona para um site de hospedagem, é algo estranho. Vocês poderiam me dar uma mão? Obrigado
Meu fórum -----> para que vejam a busca

coloquei o arquivo navba aqui caso vejam algo mais

Emmm não me joga para uma página de hospedagem :S... mas também não realiza a busca. Quando isso acontecia comigo era por má configuração, algo que fiz errado no processo. No meu caso, era problema com as rotas do arquivo google.php
 
Bom, estamos melhorando, já não aparece a página em branco, mas não busca, me dá este resultado: div id="cse-search-results">
 
Bom, isso nunca me aconteceu xD

<div id="cse-search-results"></div>

Verifique se isso está bem colocado no seu template, GOOGLE
 
Olha, no template google vejo que faltava o title, mas não sei, vou colar o código para ver se vocês veem algo estranho

{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
<head>
<title>{vb:raw vboptions.bbtitle}</title>
{vb:raw headinclude}
</head>
<body>

{vb:raw header}

{vb:raw navbar}

<div id="pagetitle">
<h1>{vb:raw pagetitle}</h1>
</div>

<h2 class="blockhead">CannabisGaci</h2>
<div class="blockbody">
<div class="blockrow">

div id="cse-search-results"></div>
<script type="text/javascript">
var googleSearchIframeName = "cse-search-results";
var googleSearchFormName = "cse-search-box";
var googleSearchFrameWidth = 800;
var googleSearchDomain = "www.google.es";
var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>



{vb:raw footer}
</body>
</html>


---------- Atualizado às 20:16 ---------- Original às 20:13 ----------

ufff desculpe, já vi, hehehe que feio que fiquei, ainda bem que meu fórum é sobre o que é 🙂))
 
Sim, como te disse, você comeu um <, teste com este código:

HTML:
{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
  <head>
    <title>{vb:raw vboptions.bbtitle}</title>
    {vb:raw headinclude}
  </head>
  <body>
    
    {vb:raw header}
    
    {vb:raw navbar}
    
    <div id="pagetitle">
      <h1>{vb:raw pagetitle}</h1>
    </div>
    
    <h2 class="blockhead">EL TITULO DE TU SITIO</h2>
    <div class="blockbody">
      <div class="blockrow">

<div id="cse-search-results"></div>
<script type="text/javascript">
var googleSearchIframeName = "cse-search-results";
var googleSearchFormName = "cse-search-box";
var googleSearchFrameWidth = 800;
var googleSearchDomain = "www.google.es";
var googleSearchPath = "/cse";
</script>
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script>
      </div>
    </div>
    
    {vb:raw footer}
  </body>
</html>

substitua completamente por esse que te deixei, esse está correto.
 
muito obrigado, tenho uma dúvida, isso economiza largura de banda no servidor?
 
Não tinha pensado nisso, mas sim, porque a busca é feita pelo Google, não pelo seu fórum 😀
 
olá, bom dia

preciso que me ajudem sobre a rota a colocar


// ######################### REQUIRE BACK-END ############################
// Se o seu site se encontra fora do root, ou seja, você o tem em outro diretório, deverá especificá-lo no // chdir, senão simplesmente deixe com as barras.

// chdir ('rota/para/seu/fórum');





seria colocar a rota
// chdir ('/var/www/vhosts/universosymbian.org/httpdocs/
');
 
Nop, o que eu queria dizer é que se o seu arquivo google.php se encontra em uma rota diferente do seu fórum, de nível inferior pode ser.

Por exemplo, se você tem o arquivo google.php em: Welcome to misitio.com! Search Results Powered by OXiDE search ....radical results (TM) e seu fórum está em http://misitio.com/foro você deverá deixar desta forma:

chdir ('/foro');

Igual é melhor que você suba o arquivo google.php para o root do seu fórum, assim você evita possíveis erros ^^.
meu fórum se encontra na raiz, não tenho pasta chamada foro.

o buscador funciona bem para mim, mas tenho erros nos logs.

espero sua ajuda, obrigado.
 
Não sei na verdade, mas tente apagando isto:

// chdir ('caminho/para/seu/fórum');

do seu google.php
 
vou testar e te aviso, obrigado nikagando
 
Não sei na verdade, mas tente apagando isto:

// chdir ('caminho/para/seu/fórum');

do seu google.php

Nika, tudo o que começa com // são comentários!!!. Para que essa seção funcione, não pode ter essas 2 barras.

E no meu caso, também dava erro, solucionei colocando o endereço assim:

chdir ('/home/xxx/public_html/fóruns')

Mas me dá um erro de ilegalidade. Erro que vejo que aparece para muitas pessoas.

Abraços!.
 
Nika, tudo o que começa com // são comentários!!!. Para que essa seção funcione, não pode ter essas 2 barras.

E no meu caso, também dava erro, solucionei colocando o endereço assim:

chdir ('/home/xxx/public_html/fóruns')

Mas me dá um erro de ilegalidade. Erro que vejo que aparece para muitas pessoas.

Abraços!.

Olá, eu tenho assim: // ;
Apaguei o
chdir e o resto e funciona sem nenhum problema.

 
Eu também estou com os // mas disse isso pensando que talvez tivesse tirado os // e só tivesse o chdir. De qualquer forma, isso depende de onde você coloca o arquivo google.php, se você o tem na raiz do fórum não precisa especificar o caminho chdir.
 
Voltar
Topo