Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DaRkShAfT

Zend_Modules

Recommended Posts

Oi,

 

Eu tenho a minha aplicação configurada para diferentes módulos, neste caso tenho o default e o admin.

 

Estou utilizando um Bootstrap.php em:

 

- Application

---- configs

---- data

---- modules

-------- admin

-------- default

---- Bootstrap.php

 

...

 

Conclusão eu queria configurar a aplicação para cada módulo ter o seu próprio Bootstrap.php

 

Isto porque eu ao fazer no Bootstrap.php actual o _initView(), estou setando o headTitle() que me vai aparecer em ambos os módulos!

 

Assim eu queria ter o Bootstrap.php para cada módulo, então no Bootstrap.php principal eu carregava o que é comum para ambos, e depois no Bootstrap.php especifico do módulo eu setava o que era somente para esse módulo...

 

Estou falando certo? Ou existe outra solução?

 

Valeu[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Oi,

 

Penso que a única coisa que me faltava era o seguinte:

em application.ini : resources.modules[]= ""

 

Mas eu não sei se era bem isto que eu queria...

 

No entanto eu defini o seguinte:

 

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initView()
{
	$view = new Zend_View;
	$view->headTitle('Admin');

	return $view;
}
}

 

<?php
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initView()
{
	$view = new Zend_View;
	$view->headTitle('Default');
}
}

 

mas qd eu carrego o módulo /admin, ele carrega-me também o Bootstrap.php que está no módulo Default...

 

Por exemplo ele vai-me colocar no title da página: DefaultAdmin :(

 

A minha ideia era colocar no Bootstrap.php da aplicação os seguintes métodos:

 

_initDoctype(), etc...

 

depois em cada Bootstrap.php especifico para cada módulo eu definia os seguintes métodos:

 

_initView(), etc...

 

eu penso que isto assim faça sentido... estou fazendo bem?

 

porque razão ele corre também o Bootstrap.php do módulo Default quando eu estou acedendo ao módulo Admin e vice-versa?

 

Valeu[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem 2 ou 3 Bootstraps? Veja que no blog ele diz que deve ter 3 (1 da aplicação e 1 de cada módulo).

 

Poste como está os seus Bootstraps e o seu application.ini, além da estrutura do projeto.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem 2 ou 3 Bootstraps? Veja que no blog ele diz que deve ter 3 (1 da aplicação e 1 de cada módulo).

 

Poste como está os seus Bootstraps e o seu application.ini, além da estrutura do projeto.

 

Carlos Eduardo

 

Oi,

 

Sim eu tenho 3 Bootstrap.php

 

-- Application

---- Modules

------- Admin

---------- Bootstrap.php

------- Default

---------- Bootstrap.php

---- Bootstrap.php

 

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

appnamespace = "Application"

includePaths.library = APPLICATION_PATH "/../library"
includePaths.models = APPLICATION_PATH "/models"

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "default"
resources.modules[]= ""

resources.frontController.params.displayExceptions = 0
;resources.frontController.params.prefixDefaultModule = "1"

;resources.layout.layout = "layout"
;resources.layout.layoutPath = APPLICATION_PATH "/layouts"
admin.resources.layout.layout = "admin"
admin.resources.layout.layoutPath = APPLICATION_PATH "/modules/admin/layouts"

resources.view[] =

; Autoloader
autoloaderNamespaces.0 = "MyLib_"

resources.frontController.plugins.acl = "Igest_Controller_Plugin_Acl"

 

class Bootstrap extends Zend_Application_Bootstrap_Bootsrap
{
protected function _initView()
{
	$view = new Zend_View;
	$view->setEncoding('UTF-8');
	//$view->headTitle('headTitle');
	$view->skin = 'myskin';

	// Add it to the ViewRenderer
	$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
		'ViewRenderer'
	);
	$viewRenderer->setView($view);

	Zend_Layout::startMvc(
		array(
		'layoutPath' => APPLICATION_PATH . '/modules/default/layouts/scripts',
		'layout' => 'default', // default deve ser o nome do arquivo. Ex: default.phtml
		'pluginClass' => 'MyLib_Plugins_SetLayout' // é aqui onde acontece a magia
		)
	);

	$view->addHelperPath("MyLib/View/Helper", "MyLib_View_Helper");
	$view->addHelperPath("MyLib/View/Helper/admin", "MyLib_View_Helper_Admin");
	$view->addHelperPath("MyLib/View/Helper/editor", "MyLib_View_Helper_Editor");

	$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
	$viewRenderer->setView($view);
	Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

	// return it, so that it can be stored by the bootstrap
	return $view;
}
}

 

class Admin_Bootstrap extends Zend_Application_Module_Bootsrap
{
protected function _initView()
{
	$view = new Zend_View;
	$view->headTitle('Admin');
	$view->skin = 'myskin';

	return $view;
}
}

 

class Default_Bootstrap extends Zend_Application_Module_Bootsrap
{
protected function _initView()
{
	$view = new Zend_View;
	$view->headTitle('Default');

	return $view;
}
}

 

Ele me carrega sempre os 3 Bootstrap.php...

 

Porque tanto quando acedo ao módulo default ou admin o headTitle é sempre a concatenação de Default + Admin... :angry:

 

Fazia sentido ele carregar o Boostrap.php principal e o Bootstrap.php do módulo ao qual estamos a aceder, agora assim não faz sentido nenhum!

 

[]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.