vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   Add-On Releases - [AJAX] Live Search (https://vborg.vbsupport.ru/showthread.php?t=235461)

Adrian Schneider 06-25-2011 06:10 PM

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

8thos 07-07-2011 12:14 AM

Interesting.

taavipost 07-07-2011 12:29 AM

Installed :P

8thos 07-07-2011 04:06 PM

Quote:

Originally Posted by TheWindows7Site (Post 2015090)
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

danswano 07-07-2011 10:12 PM

I want to use this mod with sphinx but it's not working, anyone has the code modification to let it work with sphinx?

victorvu 07-15-2011 07:04 AM

Hi:

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

Thanks.

8thos 07-15-2011 04:02 PM

Not working for me in 4.1.4. Wack.

Speedster123 08-16-2011 07:46 PM

Not working with Chrome, vB 4.1.0

apn3a 08-20-2011 05:37 PM

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!

8thos 08-20-2011 10:17 PM

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.


All times are GMT. The time now is 07:41 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.01370 seconds
  • Memory Usage 1,786KB
  • 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
  • (1)bbcode_code_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)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