vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Add-On Releases - Live Search 1.0 (AJAX) (https://vborg.vbsupport.ru/showthread.php?t=154694)

coderphp 08-07-2007 10:00 PM

Live Search 1.0 (AJAX)
 
About the hack
==============

The hack adds a quick live search form to your forum's at any place you want it,
results are to be shown exactly under the search field as you type (by ajax)

Supported browsers
==============

IE6, IE7, FF2, Opera 9

Demo
====================

http://www.montadaphp.net
right under the logo :)

How to Install
==============

1- Add the following code to the end of ur "headinclude" template:
Code:

<script type="text/javascript">
/***********************************************
* Drop Down/ Overlapping Content- ? Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function getposOffset(overlay, offsettype){
var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
var parentEl=overlay.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}
function overlay(curobj, subobjstr, opt_position){
if (document.getElementById){
var subobj=document.getElementById(subobjstr)
subobj.style.display="block"
var xpos=getposOffset(curobj, "left")+((typeof opt_position!="undefined" && opt_position.indexOf("right")!=-1)? -(subobj.offsetWidth-curobj.offsetWidth) : 0)
var ypos=getposOffset(curobj, "top")+((typeof opt_position!="undefined" && opt_position.indexOf("bottom")!=-1)? curobj.offsetHeight : 0)
subobj.style.left=xpos+"px"
subobj.style.top=ypos+"px"
return false
}
else
return true
}

function overlayclose(subobj){
document.getElementById(subobj).style.display="none"
}
var xmlHttp3
function showHint(word)
{
document.getElementById('search_results').innerHTML = '<p></p><p></p><p align="center" class="smallfont"><img src="images/progress.gif" />Searching..</p>';
    xmlHttp3=GetXmlHttpObject3()
    if (xmlHttp3==null)
    {
        alert ("Browser does not support HTTP Request")
        return
    }
    var url="ajax_search.php"
    url=url+"?query="+word
    xmlHttp3.onreadystatechange=stateChanged3
    xmlHttp3.open("GET",url,true)
    xmlHttp3.send(null)
}

function stateChanged3()
{
    if (xmlHttp3.readyState==4 || xmlHttp3.readyState=="complete")
    {
        document.getElementById("search_results"). innerHTML='<div align="left"><a href="#" onClick="overlayclose(\'search_results\'); return false">x</a></div>'+xmlHttp3.responseText;
return overlay(this, 'search_results')
    }
}

function GetXmlHttpObject3()
{
    var objXMLHttp3=null
    if (window.XMLHttpRequest)
    {
        objXMLHttp3=new XMLHttpRequest()
    }
    else if (window.ActiveXObject)
    {
        objXMLHttp3=new ActiveXObject("Microsoft.XMLHTTP")
    }
    return objXMLHttp3
}
</script>

2- Add the following code wherever you want the search field to appear, for me i added to the "header" template exactly under the logo:
Code:

<form action="search.php?do=process" method="post">
<input type="hidden" name="do" value="process" />
<input type="hidden" name="quicksearch" value="1" />
<input type="hidden" name="childforums" value="1" />
<input type="hidden" name="exactname" value="1" />
<input type="hidden" name="s" value="$session[sessionhash]" />
Live search <input type="text" name="query" size="25" class="header_search_field" onkeyup="showHint(this.value)" />
</form>
<div id="search_results" class="smallfont" style="position:absolute; border: 2px solid orange; color:blue; background-color: white; width: 300px; padding: 8px; display:none;overflow:auto; height:200px">
<div align="left"><a href="#" onClick="overlayclose('search_results'); return false">x</a></div>
</div>

3- Upload the contents of folder "Upload" to ur froum's home directory.

and u r done

If u like the hack please dont forget to click INSTALL :)

beduino 08-08-2007 07:01 PM

Interesting!
Tks 4 share
Beduino

JD45 08-08-2007 07:12 PM

Could this be integrated in to the existing search field instead of creating another one?

coderphp 08-08-2007 07:18 PM

Quote:

Originally Posted by JD45 (Post 1312976)
Could this be integrated in to the existing search field instead of creating another one?

of course it could

How?
do steps 1 and 3
then
add the onclick event to the search field:
Code:

onkeyup="showHint(this.value)"
then, after the field, add the hidden div where the search results appears:
Code:

<div id="search_results" class="smallfont" style="position:absolute; border: 2px solid orange; color:blue; background-color: white; width: 300px; padding: 8px; display:none">
<div align="left"><a href="#" onClick="overlayclose('search_results'); return false">x</a></div>
</div>


ahmedeldeep 08-08-2007 07:27 PM

Goog work mahmoud

coderphp 08-08-2007 07:28 PM

Quote:

Originally Posted by ahmedeldeep (Post 1312993)
Goog work mahmoud

thanx ahmed for ur support ;)

dethfire 08-08-2007 07:57 PM

how server intensive is this? could it be abused?

coderphp 08-08-2007 08:01 PM

Quote:

Originally Posted by dethfire (Post 1313017)
how server intensive is this? could it be abused?

there is no limitation for the search frequency, as the code is to be executed on every key press

for me i didnt suffer from any abuse of usage
u can decide ur self if it is suitable for u or not :)

iogames 08-08-2007 09:04 PM

Queries?

cairocairo 08-08-2007 10:01 PM

Goog work mahmoud


All times are GMT. The time now is 09:38 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01097 seconds
  • Memory Usage 1,748KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_code_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete