Re: [fw-general] Setting a layout for a specific module

2010-04-02 Thread Graham Anderson
On Thursday 01 April 2010 15:58:07 Diego Potapczuk wrote:
>I'm trying to specify a layout for a module but the old way is not working
>anymore, don´t know if something has changed.

The default layout plugin will accept a stack of paths in LIFO order. This 
allows a very simple hack to always ensure that any module can have it's own 
default layout which will automatically override the default module layout.

class App_Controller_Plugin_Layout extends Zend_Controller_Plugin_Layout
{

public function __construct ($layout = null)
{
parent::__construct ($layout);
}

public function preDispatch(Zend_Controller_Request_Abstract $request)
{
// Insert current module layout dir to to overide any default layouts
if ( $request->getModuleName() != 'default' ) {

$layoutPath = APPLICATION_PATH . '/modules/' .
  $request->getModuleName() . '/views/layouts';

$paths = array();
$paths[] = $this->getLayout()->getViewScriptPath();
$paths[] = $layoutPath;

$this->getLayout()->setViewScriptPath($paths);
}
} 
}

Asssuming you set the following application config value:

resources.layout.layout  = "default"

Now any module with a default.phtml layout will override the default module 
layout.

e.g APPLICATION_PATH/modules/foobar/views/layouts/default.phtml


Cheers the noo,
Graham

-- 
“What can be asserted without proof can be dismissed without proof.”
- Christopher Hitchens


Re: [fw-general] Setting a layout for a specific module

2010-04-01 Thread Paul
That is not going to work as the config is run during application 
bootstrap, which is done before routing.


See Mathew's post for more info - 
http://weierophinney.net/matthew/archives/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.html


On 4/1/2010 9:58 AM, Diego Potapczuk wrote:
I'm trying to specify a layout for a module but the old way is not 
working anymore, don´t know if something has changed.


Here is how I'm trying:

;;; View
resources.view.encoding = "utf-8"
resources.view.doctype = "XHTML1_TRANSITIONAL"
resources.view.contentType = "text/html;charset=utf-8"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "conteudos-digitais/layout"
resources.layout.viewSuffix = "php"
conteudoDigital.resources.layout.layout = "conteudos-digitais/layout"
espacoAberto.resources.layout.layout = "espaco-aberto/layout"



::: Diego Potapczuk


Re: [fw-general] Setting a layout for a specific module

2010-04-01 Thread scs
Check this:
http://blog.vandenbos.org/2009/07/19/zend-framework-module-specific-layout/
It says the path is module path relative. That might be the issue..

scs

On Thu, Apr 1, 2010 at 5:19 PM, Diego Potapczuk  wrote:
> This is exactry whay I'm trying to do, but it is not working.
> (modulename.resources.layout.layoutPath = "views/layouts")
>
> Fixed it another way.
>
>
> ::: Diego Potapczuk
>
> »» Analista de sistemas
> »» Tel: (71) 3287-8343 / (71) 9144-3062
> »» http://www.diegoliveira.com.br
>
>
> On Thu, Apr 1, 2010 at 11:07 AM, scs  wrote:
>>
>> Hi,
>> I am not sure whether this is the reason or not(-I am doing this via a
>> plugin-) but you can try to define the layoutPath as well:
>> modulename.resources.layout.layoutPath = "views/layouts"
>>
>> scs
>>
>> On Thu, Apr 1, 2010 at 4:58 PM, Diego Potapczuk 
>> wrote:
>> > I'm trying to specify a layout for a module but the old way is not
>> > working
>> > anymore, don´t know if something has changed.
>> >
>> > Here is how I'm trying:
>> >
>> > ;;; View
>> > resources.view.encoding = "utf-8"
>> > resources.view.doctype = "XHTML1_TRANSITIONAL"
>> > resources.view.contentType = "text/html;charset=utf-8"
>> > resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
>> > resources.layout.layout = "conteudos-digitais/layout"
>> > resources.layout.viewSuffix = "php"
>> > conteudoDigital.resources.layout.layout = "conteudos-digitais/layout"
>> > espacoAberto.resources.layout.layout = "espaco-aberto/layout"
>> >
>> >
>> >
>> > ::: Diego Potapczuk
>> >
>
>


Re: [fw-general] Setting a layout for a specific module

2010-04-01 Thread Diego Potapczuk
This is exactry whay I'm trying to do, but it is not working.
(modulename.resources.layout.layoutPath = "views/layouts")

Fixed it another way.


::: Diego Potapczuk

»» Analista de sistemas
»» Tel: (71) 3287-8343 / (71) 9144-3062
»» http://www.diegoliveira.com.br


On Thu, Apr 1, 2010 at 11:07 AM, scs  wrote:

> Hi,
> I am not sure whether this is the reason or not(-I am doing this via a
> plugin-) but you can try to define the layoutPath as well:
> modulename.resources.layout.layoutPath = "views/layouts"
>
> scs
>
> On Thu, Apr 1, 2010 at 4:58 PM, Diego Potapczuk 
> wrote:
> > I'm trying to specify a layout for a module but the old way is not
> working
> > anymore, don´t know if something has changed.
> >
> > Here is how I'm trying:
> >
> > ;;; View
> > resources.view.encoding = "utf-8"
> > resources.view.doctype = "XHTML1_TRANSITIONAL"
> > resources.view.contentType = "text/html;charset=utf-8"
> > resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
> > resources.layout.layout = "conteudos-digitais/layout"
> > resources.layout.viewSuffix = "php"
> > conteudoDigital.resources.layout.layout = "conteudos-digitais/layout"
> > espacoAberto.resources.layout.layout = "espaco-aberto/layout"
> >
> >
> >
> > ::: Diego Potapczuk
> >
>


Re: [fw-general] Setting a layout for a specific module

2010-04-01 Thread scs
Hi,
I am not sure whether this is the reason or not(-I am doing this via a
plugin-) but you can try to define the layoutPath as well:
modulename.resources.layout.layoutPath = "views/layouts"

scs

On Thu, Apr 1, 2010 at 4:58 PM, Diego Potapczuk  wrote:
> I'm trying to specify a layout for a module but the old way is not working
> anymore, don´t know if something has changed.
>
> Here is how I'm trying:
>
> ;;; View
> resources.view.encoding = "utf-8"
> resources.view.doctype = "XHTML1_TRANSITIONAL"
> resources.view.contentType = "text/html;charset=utf-8"
> resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
> resources.layout.layout = "conteudos-digitais/layout"
> resources.layout.viewSuffix = "php"
> conteudoDigital.resources.layout.layout = "conteudos-digitais/layout"
> espacoAberto.resources.layout.layout = "espaco-aberto/layout"
>
>
>
> ::: Diego Potapczuk
>


[fw-general] Setting a layout for a specific module

2010-04-01 Thread Diego Potapczuk
I'm trying to specify a layout for a module but the old way is not working
anymore, don´t know if something has changed.

Here is how I'm trying:

;;; View
resources.view.encoding = "utf-8"
resources.view.doctype = "XHTML1_TRANSITIONAL"
resources.view.contentType = "text/html;charset=utf-8"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "conteudos-digitais/layout"
resources.layout.viewSuffix = "php"
conteudoDigital.resources.layout.layout = "conteudos-digitais/layout"
espacoAberto.resources.layout.layout = "espaco-aberto/layout"



::: Diego Potapczuk