I tried out the Acquia Marina theme with this new module I'm developing. It has a hook_menu page callback that generates some HTML. The callback does not render in at all AM even though it does with all other themes tested. Using with Fusion 7.x-1-0-alpha2 and Skinr 7.x-2.0-alpha1.

I had a look at the page render array with hook_page_alter(). In the content region where the content should appear, this shows up instead...

  [content] => Array (
     [system_main] => Array (
        [main] => Array (
           [#markup] => The requested page "/sites/all/themes/acquia_marina/js/acquia-marina-script.js?lyj8uy" could not be found.
           )

I'm pretty certain this is wrong. JS to intercept and output a simple HTML string?

Comments

sheena_d’s picture

Priority: Major » Normal
Status: Active » Postponed (maintainer needs more info)

The Acquia Marina 7.x-2.x branch is not compatible with Fusion 7.x-1.x or Skinr. Please upgrade to Fusion 7.x-2.x branch and Fusion Accelerator 7.x-2.x branch and let us know if the issue persists. Please note that you must completely disable and *uninstall* Skinr before enabling Fusion Accelerator in order to avoid conflicts.

Diogenes’s picture

Status: Postponed (maintainer needs more info) » Active

Thanks for the rapid reply...

OK - now have correct versions installed. This is rather complicated, innit?

Have all options enabled for Fusion Accelerator. I also have the same problem as before.

The module is rendering page content in 2 div containers. The first container is 70% wide and has an editable greeting. In the second container (30% wide), a login block (or user menu block) is rendered with code rather than relying on the page/region/block rendering sequence.

In short, a $block object is home brewed and then passed to theme('block', $block);

Now here is the mystery - theme('block', $block) is supposed to render the HTML, and if I take that output and pass it to drupal_set_message(), the block renders fine - but the content region below has nothing in it - not even the content of the first container.

And if I use hook_page_alter() as before, I get a similar message as before.

I will tweak the home brew recipe. In the meantime, I would appreciate some guidance about the best approach to solving this.

sheena_d’s picture

Status: Active » Postponed (maintainer needs more info)

Have you tested your custom code in a non Fusion based theme to confirm whether the odd behavior is indeed a Fusion and/or Marina issue rather than a problem with your custom code?

In order to help test or troubleshoot anything related to this with Fusion, I would need an exact copy of your custom code with instructions on how to replicate the issue.

Diogenes’s picture

The module works with everything except Fusion and AM so it looks like it's an issue with Fusion (that's your base theme?). But there are watchdog errors that show up with AM.

If you do a fresh install with D7 with the Acquia Marina theme, log out and then log in (make the login block appear). Have a look a the watchdog reports.

I'm running on a WAMP stack.

Diogenes’s picture

StatusFileSize
new34.61 KB

Oops - here is the screenshot

The code can be downloaded from the Members Page sandbox. This module creates a members page at /members with 2 view modes - anonymous and logged in.

The module is called Members. The Members page creates a login block or user-menu block from code, so they should show up on the members page regardless of the admin block settings.

As I mentioned, it works with everything except Fusion and AM, and I tried out 10 different themes. It looks like Fusion has issues.

sheena_d’s picture

The 404 errors you found in watchdog were related to a couple of references to obsolete javascript files that were not removed from .info and a broken image link within the theme's CSS. The attached patch will resolve these issues.

I would think that this is not related to your original issue, however. I will take a look at your module and see if I can pinpoint what within Fusion is interfering.

sheena_d’s picture

Category: bug » support
Status: Postponed (maintainer needs more info) » Closed (won't fix)

After a thorough look at your module and testing it with Fusion, it seems that there are a number of non-standard things happening in your module, which are conflicting with some of Fusion's functionality.

Mainly, in your page callback function, members_page(), you are returning a string rather than a render array, and this causes you to bypass the Drupal render system. You are also bypassing the render system when you build the user menu block within this same function. All of this results in page content that does not follow what our theme is expecting to see in a properly implemented installation of Drupal. This obviously causes problems.

This is not a bug in Fusion. Fusion depends on the standardized output that is expected from Drupal functionality and we cannot support anything that is outside of that scope. If you want to use your custom module along with the Fusion theming system, I would suggest reviewing your strategy for rendering your module's pages and attempt to push your module's output into the realm of Drupal standards.

Cheers,
Sheena