Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
[AJAX] Live Search Details »»
[AJAX] Live Search
Version: 4.0.6, by mad@Max mad@Max is offline
Developer Last Online: Jun 2013 Show Printable Version Email this Page

Category: Add-On Releases - Version: 4.0.x Rating:
Released: 02-09-2010 Last Update: 05-28-2010 Installs: 327
Uses Plugins Template Edits Auto-Templates
Additional Files  
No support by the author.

Description: Search without reload pages: by threads, by users with many sort criteria.

Features:
  • search only, if typed >= 3 symbols;
  • header to window with button close;
  • message about no result;
  • limit number of threads;
  • highlight words in result
  • trim title of thread, if it large (optional)
  • edit position of pop-up window
  • work with vBadvanced
  • limit the number of displayed results
  • group permission
  • search by your own forums
  • sort results of search
  • mod makes only one query to db
  • full compatibility with styles and browsers
  • search by individual words
  • integrate option into standard search
  • search only the specified length of each word
  • users search
  • interval requests
  • wrote 2 js class
  • able to drag'n'drop window
  • Search by threads now produced on an index table thread (fulltext - optional), which increases the speed of search
  • Changed the type of floating window (refused vbmenu)
  • popup transplanted to the div's in tact vb4 (tried to get the maximum sync with the style and API)
  • (for non english users) offer the ability to change the keyboard layout: if by the word search returns zero results, it will try to verify whether the correct layout are the words, checking every word of the existence of the database as a dictionary. In functions_livesearch.php you can find table of characters

Installation:
Upload all files from folder upload to forum folder.
Import product.

History:
4.0.0 - initial release
4.0.1 - fixed some issues, compatibility with 4.0.x
4.0.5 - rewrote js engine
4.0.6 - fix bug with chrome, fix overlay, some js optimization
If you like this hack, please, click INSTALL and Nominate for MOTM

Download Now

File Type: zip [AJAX] Live Search Eng v4.0.6.zip (12.9 KB, 1854 views)

Screenshots

File Type: png lsa4.png (36.5 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
5 благодарности(ей) от:
btedition, caoanh204, Elric, Slowpoked

Comments
  #182  
Old 06-25-2011, 06:10 PM
Adrian Schneider's Avatar
Adrian Schneider Adrian Schneider is offline
 
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Noticed the above still had some problems with Chrome.

Updated to 4.0.6, ran it through an un-minifier, and ended up with this:

Code:
/**
 * [YUI] Live Search Main Script Version 4.0.5
 * 
 * @author mad@Max
 */
(function() {
    var g = YAHOO.util, e = g.Dom, c = g.Event, i = YAHOO.lang;
    i
            .augmentObject(
                    YAHOO.vBulletin.lsa,
                    {
                        init : function() {
                            c.removeListener(this.textobj, "focus", this.start);
                            c.on(this.textobj, "blur", this.winop, this, true);
                            c.on(this.textobj, "focus", this.winop, this, true);
                            c.on(this.textobj, "keyup", function(a) {
                                a = a || window.event;
                                PHP.in_array(a.keyCode || a.which, [ 37, 39,
                                        32, 36, 35 ]) > -1
                                        || this.get()
                            }, this, true);
                            c.on("lsarld", "click", this.get, this, true);
                            c.on("lsacls", "click", this.winop, this, true)
                        },
                        load : function() {
                            YAHOO.util.Connect
                                    .asyncRequest(
                                            "POST",
                                            this.bb
                                                    + "/ajaxlivesearch.php?do=lsawin",
                                            {
                                                success : function(a) {
                                                    if (a.responseXML) {
                                                        this.cont = document
                                                                .createElement("div");
                                                        this.cont.id = "lsa_cont";
                                                        this.cont.style.position = "absolute";
                                                        this.cont.style.display = "none";
                                                        this.cont.innerHTML = a.responseXML
                                                                .getElementsByTagName("lsagetwin")[0].firstChild.nodeValue;
                                                        document.body
                                                                .appendChild(this.cont);
                                                        this.textobj.value = "";
                                                        this.resobj = e
                                                                .get("lsa_results");
                                                        this.init();
                                                        (new g.DD(this.cont.id))
                                                                .setHandleElId("lsadd");
                                                        this.winop();
                                                        init_collapsers()
                                                    }
                                                },
                                                failure : vBulletin_AJAX_Error_Handler,
                                                timeout : vB_Default_Timeout,
                                                scope : this
                                            }, SESSIONURL + "securitytoken="
                                                    + SECURITYTOKEN
                                                    + "&do=lsawin")
                        },
                        winop : function(a) {
                            if (this.cont.style.display == "none") {
                                this.textobj.value = "";
                                this.resobj.innerHTML = vbphrase.lsa_wait;
                                this.cont.style.display = "block";
                                center_element(this.cont)
                            } else {
                                if (c.getTarget(do_an_e(a)).id == "lsacls")
                                    this.cont.style.display = "none";
                                this.textobj.value = this.textobj.value
                                        || vbphrase.live_search
                            }
                        },
                        get : function() {
                            var a = PHP.trim(this.textobj.value), h = e
                                    .get("lsawithword").value > 0, b = "";
                            if (a.length >= this.min) {
                                b = a;
                                if (!h) {
                                    var d = a.split(" ");
                                    b = "";
                                    for ( var f in d)
                                        d[f].length < this.min
                                                || (b += (b ? " " : "") + d[f])
                                }
                            }
                            if (b.length >= this.min) {
                                if (h || !(d.length > 1 && b != a)) {
                                    this.timeout && this.timeout.cancel();
                                    this.timeout = i.later(500, this,
                                            this.send, b)
                                }
                            } else
                                this.resobj.innerHTML = vbphrase.lsa_wait
                        },
                        send : function(a) {
                            var h = new vB_Hidden_Form(null), b = this.resobj, d = e
                                    .get("lsaloading");
                            h.add_variables_from_object(e.get("lsform"));
                            e.removeClass(d, "hidden");
                            g.Connect.isCallInProgress(this.req)
                                    && g.Connect.abort(this.req);
                            var f = new vB_AJAX_Handler(true);
                            f.callback = function(j) {
                                e.addClass(d, "hidden");
                                b.innerHTML = j.responseXML
                                        .getElementsByTagName("ajaxlivesearch")[0].firstChild.nodeValue
                            };
                            
                            var sendData = "&do=search&"
                                + h
                                .build_query_string()
                                .replace(
                                        /lsazone=([a-z0-9]+)&/g,
                                        function(j,k,l) { 
                                            try {
                                                var test = RegExp.rightContext;

                                            } catch (e) {
                                                return (l == 24 ? "lsazone="
                                                        : ",") + k + '';
                                            }
                                            return (
                                                    l == 24 ? "lsazone="
                                                    : ",")
                                                    + k
                                                    + (RegExp.rightContext
                                                            .search(/^lsasort/) == 0 ? "&"
                                                            : "");
                                        })
                        + "keyword="
                        + PHP.urlencode(a);
                            
                            
                            
                            f
                                    .send(
                                            "ajaxlivesearch.php?do=search",
                                            sendData );
                            this.req = f.conn
                        }
                    })
})();
Really quick and dirty. Looks like the RegExp.rightContext chokes under that one condition in Chrome. Used a try/catch to handle it prior.

HTH
Reply With Quote
  #183  
Old 07-07-2011, 12:14 AM
8thos's Avatar
8thos 8thos is offline
 
Join Date: Aug 2010
Location: Pensacola, FL
Posts: 772
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Interesting.
Reply With Quote
  #184  
Old 07-07-2011, 12:29 AM
taavipost taavipost is offline
 
Join Date: Jan 2010
Posts: 35
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Installed :P
Reply With Quote
  #185  
Old 07-07-2011, 04:06 PM
8thos's Avatar
8thos 8thos is offline
 
Join Date: Aug 2010
Location: Pensacola, FL
Posts: 772
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by TheWindows7Site View Post
Just an FYI, if you have custom search boxes you can enable this mod for them by putting id="lsa_input" in your custom searchbox <input line
Thanks! Where would I put this in my navtab custom search? https://vborg.vbsupport.ru/showthread.php?t=265810
Reply With Quote
  #186  
Old 07-07-2011, 10:12 PM
danswano danswano is offline
 
Join Date: Jan 2009
Posts: 33
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I want to use this mod with sphinx but it's not working, anyone has the code modification to let it work with sphinx?
Reply With Quote
  #187  
Old 07-15-2011, 07:04 AM
victorvu victorvu is offline
 
Join Date: Mar 2011
Posts: 134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi:

It did not work for me. Do I need to upload two files .js in the do_not_upload folder?

Thanks.
Reply With Quote
  #188  
Old 07-15-2011, 04:02 PM
8thos's Avatar
8thos 8thos is offline
 
Join Date: Aug 2010
Location: Pensacola, FL
Posts: 772
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not working for me in 4.1.4. Wack.
Reply With Quote
  #189  
Old 08-16-2011, 07:46 PM
Speedster123 Speedster123 is offline
 
Join Date: Mar 2008
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not working with Chrome, vB 4.1.0
Reply With Quote
  #190  
Old 08-20-2011, 05:37 PM
apn3a apn3a is offline
 
Join Date: Oct 2004
Location: Athens Greece
Posts: 39
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There is a way to have the results into a drop down menu instead of the popup window?

And who can we move that popup window to specific position? Let's say under the search box

Thank you!
Reply With Quote
  #191  
Old 08-20-2011, 10:17 PM
8thos's Avatar
8thos 8thos is offline
 
Join Date: Aug 2010
Location: Pensacola, FL
Posts: 772
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

One day it started working on my site. It was real random but I turned it off as it was annoying the crap out of me every time I typed in a couple letters and automatically began searching instead of showing a list like most ajax powered search boxes.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:59 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.09178 seconds
  • Memory Usage 2,355KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (4)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (2)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete