Skip to content

Conversation

@GunnarLieb
Copy link
Contributor

Problem

After upgrading to ColdBox 7.5.2, the Renderer.cfc was calling discoverViewPaths() to locate a layout before checking if the layout name was
empty. When a module had layoutParentLookup = true and called event.noLayout() (which sets the layout to an empty string), the framework tried to
locate a layout with an empty name, causing the error:

The layout [] was not found in the module path: [/modules_app/akibase/layouts/]

Solution

I reorganized the code in /coldbox/system/web/Renderer.cfc:608-637 to:

  1. First check if the layout is empty (len( cbox_currentLayout ) eq 0)
  2. If empty, just render the view without any layout discovery
  3. Only call discoverViewPaths() when we know the layout is not empty

Problem

 After upgrading to ColdBox 7.5.2, the Renderer.cfc was calling discoverViewPaths() to locate a layout before checking if the layout name was
  empty. When a module had layoutParentLookup = true and called event.noLayout() (which sets the layout to an empty string), the framework tried to
  locate a layout with an empty name, causing the error:

  The layout [] was not found in the module path: [/modules_app/akibase/layouts/]

  Solution

  I reorganized the code in /coldbox/system/web/Renderer.cfc:608-637 to:
  1. First check if the layout is empty (len( cbox_currentLayout ) eq 0)
  2. If empty, just render the view without any layout discovery
  3. Only call discoverViewPaths() when we know the layout is not empty
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant