Skip to:
Content
Pages
Categories
Search
Top
Bottom

BP 1.2 : \"bp_filter_request is not defined\"

  • @grosbouff

    Participant

    Hi, I have a problem here when loading a member page of my own component.

    It says : “bp_filter_request is not defined”.

    The (core) function bp_filter_request is called inside my custom ajax.js :

    jQuery(document).ready( function() {

    var j = jQuery;

    /*load initial content*/

    if ( j(‘div.classified3s’).length ) {

    bp_filter_request( j.cookie(‘bp-classified3s-type’), j.cookie(‘bp-classified3s-filter’), ‘classified3s’, ‘div.classified3s’, j.cookie(‘bp-classified3s-page’), j.cookie(‘bp-classified3s-search-terms’) );

    }

    and the ajax.js file is loaded with this function :

    function classified3s_add_js() {

    global $bp;

    if (bp_is_user_classified3s()) {

    wp_enqueue_script( ‘bp-classified3s-ajax’, get_stylesheet_directory_uri() . ‘/classified3s/_inc/js/ajax.js’, array(‘dtheme-ajax-js’) );

    }

    }

    add_action( ‘wp_print_scripts’, ‘classified3s_add_js’, 1 );

    So I guess it should be workins as the function bp_filter_request is inside the file enqueued as ‘dtheme-ajax-js’.

    Any idea ?

    Thanks a lot !

Viewing 9 replies - 1 through 9 (of 9 total)
  • @sbrajesh

    Participant

    this is a scope and closure issue.

    the function will not be avilable outside the closure it was defined.It has a local scope in global.js.

    your better option would be copy it and define in your file until Andy puts it in the global scope.

    @apeatling

    Keymaster

    I’m off to bed but will look at this in the morning, can you open a ticket please?

    @grosbouff

    Participant

    @mrmaz

    Participant

    I just ran into this same problem myself and came to the same conclusion as Brajesh. I ended up duplicating the function, which bugs me, but I can’t think of a *simple* workaround.

    The really annoying part is that it only needs to be in the global scope for the initial page load. Everything else works fine.

    The only way I can think of would be to use jQuery to bind events (or data arrays) to a globally available element, and then have the core code execute the events or retrieve the data arrays to get the custom filter parameters, which it would then pass to bp_filter_request() in a loop in its own scope.

    @mrmaz

    Participant

    I just posted a solution to this ticket if anybody would like to test it out.

    @grosbouff

    Participant

    Could you post the link here ?

    @mrmaz

    Participant

    I posted the patch to your ticket here: https://trac.buddypress.org/ticket/1628

    @mrmaz

    Participant

    Has anyone come up with a better solution for this yet? I don’t want to start duplicating JS just to get it into scope.

    @mrmaz

    Participant

    Andy just moved all of the request functions into the global scope! Wooooot! Take a look at the trunk.

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘BP 1.2 : \"bp_filter_request is not defined\"’ is closed to new replies.
Skip to toolbar