With both Quicktabs and Panelizer installed, adding or editing an instance gives a 500 error:
PHP Fatal error: Call to a member function optionsForm() on a non-object in /media/sf_nextgen/sites/all/modules/contrib/quicktabs/quicktabs.admin.inc on line 317

It looks like Panelizer does something to nodes that Quicktabs doesn't like so the workaround for me was to disable nodes on Quicktabs since I don't need it:

diff --git a/sites/all/modules/contrib/quicktabs/quicktabs.admin.inc b/sites/all/modules/contrib/quicktabs/quicktabs.admin.inc
index ea320a5..4d9b5c7 100644
--- a/sites/all/modules/contrib/quicktabs/quicktabs.admin.inc
+++ b/sites/all/modules/contrib/quicktabs/quicktabs.admin.inc
@@ -306,15 +306,17 @@ function _quicktabs_form(array $tab, $qt) {
   ctools_include('plugins');
   $contents = ctools_get_plugins('quicktabs', 'contents');
   foreach ($contents as $name => $info) {
-    if (isset($info['dependencies'])) {
-      foreach ($info['dependencies'] as $dep) {
-        // Do not load the options form for any plugin that is missing dependencies.
-        if (!module_exists($dep)) continue 2;
-      }
+    if ($name !== 'node') {
+	if (isset($info['dependencies'])) {
+		foreach ($info['dependencies'] as $dep) {
+			// Do not load the options form for any plugin that is missing dependencies.
+			if (!module_exists($dep)) continue 2;
+		}
+	}
+	$tabtypes[$name] = $name;
+      $content_provider = quick_content_factory($name, $tab);
+	$form = array_merge_recursive($form, $content_provider->optionsForm($delta, $qt));
     }
-    $tabtypes[$name] = $name;
-    $content_provider = quick_content_factory($name, $tab);
-    $form = array_merge_recursive($form, $content_provider->optionsForm($delta, $qt));
   }
 
   $form['type'] = array(

Obviously, this fix doesn't work for everyone, but it's a start.

Comments

a.milkovsky’s picture

I just added the check and it fixed for me

320 + if (is_object($content_provider)) {
321   $form = array_merge_recursive($form, $content_provider->optionsForm($delta, $qt));
322 + }
socialnicheguru’s picture

was #1 done in quicktabs or panelizer

papagrande’s picture

The fix in #1 would be in quicktabs.admin.inc.

broeker’s picture

Just verifying that this error still exists, and that the code posted in OP fixes the issue (albeit by handicapping Quicktabs). I also don't need nodes but it would be great to find a real fix. (Fix in #1 did not work on this end).

broeker’s picture

Scratch that; the fix does initially eliminate the Server 500 error but it does not allow me to add a QT instance to panelizer -- it throws this AJAX error:

An AJAX HTTP error occurred.
HTTP Result Code: 500
Debugging information follows.
Path: /panels/ajax/editor/add-pane/panelizer%3Adefault%3Auser%3Auser.page_manager%3Adefault/center/block/quicktabs-client_access/form
StatusText: error
ResponseText

and then the Server 500 error returns when I visit the Panelizer content settings screen. Back to the drawing board.

broeker’s picture

StatusFileSize
new2.45 KB

Here is some progress, there are actually two things going on in my case:

1. The fix from #1 does in fact work

2. But not with the latest version of Ctools dev -- see here:

http://drupal.org/node/1910434

I manually applied the fix from #1 in this post, and #3 in the post above and my QT/Panelizer setup is working again.

Attached patch seems like a harmless fix to the first problem -- I'm not clear if the other issue should actually be a Ctools fix, or if there is something in QT that should be fixed.

socialnicheguru’s picture

this patch is not correct

broeker’s picture

StatusFileSize
new559 bytes

Bah, I'm not sure what happened there here is the correct patch.

jason.fisher’s picture

Status: Active » Reviewed & tested by the community

Patch worked here with the latest dev.

socialnicheguru’s picture

seems it is in the feb 12 dev version

netw3rker’s picture

Status: Reviewed & tested by the community » Closed (fixed)

This is in fact already applied. Thanks for contributing everyone!