WordPress.org

Ready to get started?Download WordPress

Forums

Lazy Widget Loader
[resolved] Conflict with Widget Logic and work-around (7 posts)

  1. Mike
    Member
    Posted 2 years ago #

    After installing & activating the plugin, when I went to the Widgets section of the wp-admin panel, the following error was displayed at the top of the screen:

    Warning: Cannot use a scalar value as an array in /home/user/public_html/wp-content/plugins/lazy-widget-loader/lazy-widget-loader.php on line 471

    Turns out it's a conflict with the Widget Logic plugin, which I had already installed and activated. Well, there's a simple work-around. Deactivate both plugins, activate Lazy Widget Loader first, then activate Widget Logic second. Works fine as long as you activate in that order!

    http://wordpress.org/extend/plugins/lazy-widget-loader/

  2. itthinx
    Member
    Plugin Author

    Posted 2 years ago #

    Thanks for your feedback Mike, that's interesting ...

    This is line 471 in the current revision:

    $wp_registered_widget_controls[$id]['params'][0]['lazy-widget-loader-widget-id'] = $id;

    Actually it's not an error but a warning, anyhow, I wonder what happens here. I'll take a closer look and get back when I find out.

  3. itthinx
    Member
    Plugin Author

    Posted 2 years ago #

    Looks like Widget Logic assumes to use an id if it doesn't recognize $wp_registered_widget_control[$id]['params'][0] as an array, this is from widget_logic.php:

    function widget_logic_expand_control() {
    
    ...
    
    		if (!array_key_exists(0,$wp_registered_widget_controls[$id]['params'])  || is_array($wp_registered_widget_controls[$id]['params'][0]))
    			$wp_registered_widget_controls[$id]['params'][0]['id_for_wl']=$id;
    		else
    		{	// some older widgets put number in to params directly (which messes up the 'templates' in WP2.5)
    			array_push($wp_registered_widget_controls[$id]['params'],$id);
    			$wp_registered_widget_controls[$id]['height']+=40;					// this is really a pre2.5 thing - discard?
    		}
    
    ...
    
    }

    The condition to set $wp_registered_widget_controls[$id]['params'][0]['id_for_wl'] is a logical implication:

    The key 0 does not exist in $wp_registered_widget_controls[$id]['params'] OR $wp_registered_widget_controls[$id]['params'][0] is an array.

    and seems to be motivated to make things compatible with WP2.5? Hmmm ... Lazy Widget Loader doesn't want to be compatible with anything prior 3.0 and requires $wp_registered_widget_controls[$id]['params'][0] to be an array. That's where the hiccup comes up :)

    Without digging deeper ... as both plugins add their stuff to widget controls, if you let Lazy Widget Loader do it first (*) it won't care about what Widget Logic does after, because it doesn't get affected by it.

    (*) by installing it first it get's a chance to add its handlers before Widget Logic does

  4. Mike
    Member
    Posted 2 years ago #

    Darn, I'm still getting that "Cannot use a scalar value as an array" warning. On my other WP site, my trick of activating Lazy Widget Loader first, then activating Widget Logic second eliminated the warning. But on this site, I'm getting that warning even if I leave Widget Logic deactivated. I'm wondering if I may need to delete Widget Logic entirely and reinstall. I'll try to bring in the Widget Logic author into the discussion.

  5. itthinx
    Member
    Plugin Author

    Posted 2 years ago #

    After testing on WP 3.2.1 with Widget Logic 0.48 and Lazy Widget Loader 1.1.0 I could not reproduce the Warning. See also my comment here: http://www.itthinx.com/plugins/lazy-widget-loader/#comment-173

    Looks like something else is interfering here ... AFAICS the Warning is thrown because at some place the parameter is turned into a scalar when it's supposed to be an array. So, I suppose there's another plugin interfering ...

  6. itthinx
    Member
    Plugin Author

    Posted 2 years ago #

    I've just released an update of the plugin (1.2.1) which should avoid any issues related to the warning reported.

    If anyone encounters further issues, needs help or is curious about the whys and whats involved, please get in touch with me.

    Many thanks to Mike at Intown Elite who kindly provided lots of valuable feedback and help in resolving this issue.

  7. itthinx
    Member
    Plugin Author

    Posted 2 years ago #

    In order to centralize support for this plugin, please direct any further comments at the plugin's page:

    Feedback is welcome!

    If you need help, have problems, want to leave feedback or want to provide constructive criticism, please do it at the Lazy Widget Loader plugin page.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic