I'm running up-to-date DEV versions of Panels, Ctools, and Panelizer. Everything has been working fine, but tonight I tried to enable the "Allow Panel Choice" option for one of our entity types. Two problems:
1. admin/config/content/panelizer/node/page.page_manager/list
This page (on all enabled entity types) brings up a WSOD.
2. Various inline PHP errors (and in logs):
Warning: array_key_exists(): The first argument should be either a string or an integer in ctools_get_plugins() (line 233 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: array_key_exists(): The first argument should be either a string or an integer in ctools_get_plugins() (line 306 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: array_key_exists(): The first argument should be either a string or an integer in ctools_get_plugins() (line 316 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_plugin_load_includes() (line 459 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_plugin_load_includes() (line 459 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_plugin_load_includes() (line 459 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_plugin_load_includes() (line 459 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_plugin_load_includes() (line 459 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_plugin_load_includes() (line 459 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_plugin_load_includes() (line 459 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in isset or empty in ctools_get_plugins() (line 319 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in ctools_get_plugins() (line 319 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Illegal offset type in ctools_get_plugins() (line 329 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/ctools/includes/plugins.inc).
Warning: Invalid argument supplied for foreach() in panelizer_export_ui_switcher_page() (line 717 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/panelizer/panelizer.module).
Warning: Invalid argument supplied for foreach() in panelizer_export_ui_switcher_page() (line 724 of /data/disk/o4906883674/static/ecitizen-1.1-7.19-dev/profiles/ecitizen/modules/contrib/panelizer/panelizer.module).
Any ideas?
Comments
Comment #1
merlinofchaos commentedWell. It looks like something is causing all of the panelizer entity plugins to fail to be read, somehow.
What that is...I can't tell. Solving this likely is going to mean debugging a site that is actually experiencing this issue. I suspect that the problem is local to the site, and might have something to do with the file system or a bad cache file. Or something.
One thing to check: You don't somehow have two copies of panelizer in your site, do you? This happens quite commonly when people have an install profile.
Comment #2
broeker commentedYou were correct that this seems to be site specific:
To start debugging, I disabled our custom theme and switched to Bartik. Everything started working correctly, so I re-enabled our custom theme to diagnose. Lo and behold, it all started working again with no changes or other alterations to the theme. I have no idea why but something must have been "stuck" somewhere that became "unstuck" simply by disabling and re-enabling our theme.
Comment #3
merlinofchaos commentedI'm going to guess that flushed a bad cache. Now, that leaves the question of: How did bad data get into the cache. And, will it happen again?
Keep an eye on your site for awhile to make sure this doesn't recur before you consider it fixed, just to be safe.
Comment #4
broeker commentedSorry to re-open but the problem appeared again, and I have now traced it (I think) to a simple hook_entity_info_alter() function that we have in a custom glue module:
When this function is included, everything (including the Fieldable Panel Pane above) works correctly as long as we don't have Allow Panel Choice enabled.
When that is enabled, everything goes haywire, until we remove the hook_entity_info_alter() function from our module and clear cache.
At that point, all of the errors go away and Allow Panel Choice works -- but of course we lose our custom Fieldable Panel Pane.
Any ideas?
Comment #5
broeker commentedI now believe the above comment is wrong also, as the error is now re-appearing even with our custom module completely disabled. I will update when I have something more definitive...
Comment #6
merlinofchaos commentedIt looks like something is somehow corrupting the list of plugin files in the plugin cache. It probably isn't related to your custom code. It's hard to guess, but you might start using error_log and trying to trace what exactly is going on when the cache is corrupted. Those kinds of errors happen most often when the cache is rebuilt in an incomplete system, like in a hook_boot or something when not all modules are loaded.
Comment #7
minneapolisdan commentedI encountered this same issue.
I was having trouble not being able to edit/customize the panel choices on a node. I could edit them within an individual node's panelizer setttings, but the change wasn't showing up after save.
I checked "allow panel choice", really just for the heck of it, since I was getting stymied, and then I had the big page of errors you described and WSOD when trying to edit my panelizer settings, under Configuration.
I switched from my Omega theme to Bartik and all the problems went away. I made my settings to Panelizer and once done, switched back to my Omega theme, and all was well.
Comment #8
minneapolisdan commentedI originally had a custom node template using regular old Panels, before switching to Panelizer. Not sure if that's relevant, but thought I'd mention it.
Comment #9
damienmckenna@minneapolisdan: Out of interest, had you disabled use of the admin theme entirely or maybe disabled it for node editing, thus causing the Omega subtheme to load? I'm confused as to why the theme would affect it, though Omega v3 does a bunch of heavy lifting in different places.
Comment #10
damienmckennaI've not seen this in several months of using the current 3.x-dev codebase. If you're still experiencing the problem please reopen the issue and provide more details. Thank you.
Comment #11
scuis commentedThank you all. I had the same problem and I solved it by disabling and re-enabling my theme. It's an Omega 4 based theme and before Panelizer I've created and used a layout in Node View. Later I deleted all layout files but I didn't disable the setup in Node View. I guess this could be the problem.
Now everything is working fine.
Comment #12
scuis commentedNow everything is cleared, no errors, no customized hooks or modules, but the problem is back. In my case when I click "list" it show an empty white page. I assume it's an Omega 4 incompatibility. It has a panelizer-view-mode.tpl.php but doesn't seem to be the problem.
Here is the code:
print render($title_prefix);if (!empty($title)):<
print $title_element;print $title_attributes;>if (!empty($entity_url)):print $entity_url; ">
print $title;else:print $title;endif;print $title_element;>
endif;print render($title_suffix);print $content;Comment #13
labboy0276 commentedI was experiencing this with Panopoly + Kalatheme on just one site. Running drush rr fixes the problem.
Something is not kosher, with this setup for this site. Thought I would just post the quick fix to it.
Sorry to comment on a previosuly closed thread.
Comment #14
feyp commentedComment #15
patrickscheffer commentedA registry rebuild fixed this for me.
Comment #16
lucas.constantino commentedI'm having this issue now with 7.x-3.1. "drush cc menu" solved it for me. "drush cc all" brought back the problem. "drush cc menu" solved it again. Confused O.o
Comment #17
damienmckennaI'll be releasing 3.2 soon, which doesn't have this issue.