Thread: Add-On Releases - [AJAX] Live Search
View Single Post
  #181  
Old 06-25-2011, 04:33 PM
Adrian Schneider's Avatar
Adrian Schneider Adrian Schneider is offline
 
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If anyone is having problems with it not working, it seems that the minifcation is causing some problems on some browsers (all newer, unfortunately).

Here is what we did to make it work:

Replace clientscript/ajax_live_search_init.js (4.0.5) with
Code:
/**
 * [YUI] Live Search Initialise Script Version 4.0.5
 *
 * @author mad@Max
 */
(function() {
    var b = YAHOO.util;
    YAHOO.vBulletin.lsaobj = function(c, a) {
        this.timeout = this.resobj = this.cont = this.req = null;
        this.textobj = b.Dom.get(c);
        this.textobj.value = vbphrase.live_search;
        this.textobj.setAttribute("autocomplete", "off");
        this.min = 3;
        b.Event.on(this.textobj, "focus", this.start, this, true);
        this.bb = location.href.search(/www\./) > -1 ? a.search(/www\./) < 0 ? "http://www."
                + (a.substring(0, 7) == "http://" ? a.substring(7) : a)
                : a
                : a.search(/www\./) > -1 ? a.replace(/www\./, "") : a
    };
    YAHOO.vBulletin.lsaobj.prototype.start = function() {
        this.textobj.value = vbphrase.lsa_loading;
        b.Get.script( [ "clientscript/yui/dragdrop/dragdrop-min.js",
                "clientscript/ajax_live_search-min.js" ], {
            onSuccess : function() {
                this.load()
            },
            scope : this
        })
    }
})();
Replace clientscript/ajax_live_search-min.js (4.0.5) with
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
                            };
                            f
                                    .send(
                                            "ajaxlivesearch.php?do=search",
                                            "&do=search&"
                                                    + h
                                                            .build_query_string()
                                                            .replace(
                                                                    /lsazone=([a-z0-9]+)&/g,
                                                                    function(j,
                                                                            k,
                                                                            l) {
                                                                        return (l == 24 ? "lsazone="
                                                                                : ",")
                                                                                + k
                                                                                + (RegExp.rightContext
                                                                                        .search(/^lsasort/) == 0 ? "&"
                                                                                        : "")
                                                                    })
                                                    + "keyword="
                                                    + PHP.urlencode(a));
                            this.req = f.conn
                        }
                    })
})();
Hopefully this helps!
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01395 seconds
  • Memory Usage 1,823KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete