Ir para conteúdo

POWERED BY:

Arquivado

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

cassiombc

[Resolvido] Modulos

Recommended Posts

Galera

segue o passo passo do tutorial do mathias, mas gostaria de saber por exemplo,

eu crio o module empresa, e depois crio o layoutEmp.phtml.

So que quando eu vou acessar a pagina aparece o layout antigo e com as imagens nao identificadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você seguiu direitinho era para ter funcionado ... mas vamos lá:

 

Primeiro poste o seu application.ini e certifique-se que você esta colocando o layout.phtml no diretório certo...

 

modules/empresa/views/scripts/layoutempresa.phtml

 

Lembre-se que a linha abaixo é extremamente importante para que funcione:

 

; layouts 
resources.layout.layout = "layout"

 

E qual versão do zend você esta trabalhando?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

aplication.ini

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.date.timezone = "America/Sao_Paulo"


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

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

appnamespace = "Application"

resources.frontController.moduleDirectory = APPLICATION_PATH  "/modules"
resources.modules[]= ""
resources.layout.layout = "layout"

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.router.routes.categoria.route="categoria/:categoria"
resources.router.routes.categoria.defaults.controller = servico
resources.router.routes.categoria.defaults.action = "index"
resources.router.routes.categoria.defaults.categoria = null



resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
[staging : production]


[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

 

A versão mais atual a 1.12.0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.date.timezone = "America/Sao_Paulo"


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

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

appnamespace = "Application"

resources.frontController.moduleDirectory = APPLICATION_PATH  "/modules"
resources.modules[]= ""
resources.layout.layout = "layout"

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1
resources.router.routes.categoria.route="categoria/:categoria"
resources.router.routes.categoria.defaults.controller = servico
resources.router.routes.categoria.defaults.action = "index"
resources.router.routes.categoria.defaults.categoria = null



resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gera esse erro

Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script 'layout.phtml' not found in path (C:/xampp/htdocs/seatech/application/views\scripts/;./views\scripts/)'

 

mas ai eu desfiz

Compartilhar este post


Link para o post
Compartilhar em outros sites

O artigo que você está seguindo é este aqui? Atente-se a parte importante:

 

Agora, vamos à mágica… (ok, não tem mágica, mas é bem legal). Criamos um arquivo chamado layout.phtml para cada módulo e deixamos ele dentro da pasta raiz da view do respectivo módulo.

 

Você criou estes arquivos corretamente? Qual a sua estrutura de diretórios e arquivos (dá um print)? Como está o seu application.ini neste momento?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha estrutura

|Source Files
|-application
|-|configs
 |--|aplication.ini
 |--|navigation.ini
|-|controllers
 |--|ErrorController.php
 |--|IndexController.php
|-|layouts
 |--|scripts
  |---|layout.phtml
|-|modules
 |--|empresa
  |---|controllers
   |----|IndexController.php
  |---|models
  |---|views
   |----|filters
   |----|helpers
   |----|scripts
    |-----|layoutempresa.phtml
  |---|Bootstrap.php
|-|views
 |--|helpers
 |--|scripts
  |---|error
   |----|error.phtml
  |---|index
   |----|index.phtml
|-|Bootsrap.php
|docs
|-|README.txt
|library
|-|Zend
|-|ZendX
|public
|-|css
 |--|images
 |--|jQuery
  |---|imagens
 |--|style.css
 |--|style2.css
|-|script
 |--|jQuery
  |---|jquery-1.8.1.min.js
  |---|jquery-ui-1.8.23.custom.min.js
  |---|jquery.cycle.all.js
 |--|htacess
 |--|index.php
|test files
|Important Files
|Include Path

 

aplication.ini(ate o prezado momento)

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.date.timezone = "America/Sao_Paulo"

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

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

appnamespace = "Application"


resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH  "/modules"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.frontController.params.displayExceptions = 1
resources.router.routes.categoria.route="categoria/:categoria"
resources.router.routes.categoria.defaults.controller = servico
resources.router.routes.categoria.defaults.action = "index"
resources.router.routes.categoria.defaults.categoria = null
resources.modules[]= ""
resources.layout.layout = "layout"




[staging : production]


[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

 

Ele esta lendo o layout default e as figuras não aparecem, fica como se o caminho estivesse errado mas eu olho no codigo fonte e ta tudo ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu application.ini e a estrutura dos arquivos está totalmente diferente do que está sendo falado no artigo.

 

http://matiasrezende.com.br/blog/zend-framework/trabalhando-com-layouts-diferentes-por-modulo-no-zend-framework/

 

Sugiro que você leia novamente e tente entender o que está sendo feito e como está sendo feito.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande, eu acho que consegui, veja bem o que eu ralizei

 

1- criei o modulo admin(que não tinha criado)

2- criei o modulo default(que nao tinha criado)

3- realizei os outros comandos necessarios sobre o modulo default e admin(no cmd)

4- adicionei os outros paramentros no aplication.ini

|-

 resources.frontController.defaultModule = "default"
         resources.frontController.prefixDefaultModule = "true"

5- e tentei acessar mas não consegui.(so que minutos antes comecei um projeto do zero realizando os passos que estava em seututorial ) e tentei acessar os modulos digitando locahost:8080/nomedoprojeto/public/nomedomodulo(default ou admin) e obtive sucesso.

6- analisei que nesse mesmo projeto criado do zero (o mencionado no ponto 5) nao habilitei o layout (atraves do zf tools como comando "zf enable layout")

7- Atraves desta experiência fiz o mesmo no projeto atual so que no caso desativei o layout(zf disable layout) promovendo assim que no modulo default (como o nome ja dis default= "padrão") irá ficar minha pagina principal.

8- inserir neste meu projeto o zf_navigation com o zf_route atraves dos seus tutoriais

9- quando eu clicava na opção do menu que eu desejava acessar (ex. no menu existe a opção empresa) ele me mostrava na url da seguinte maneia locahost:8080/nomedoprojeto/public/nomedomodulo/nomedomodulo

10- me recordei que nas routes o nome do action influi na minha url então removi de todos o action, pois a minha intenção atraves do route é possibilitar a navegação de paginas as suas ações serão tratadas em seu controlador (ex. na pagina "faleconosco" eu nao tenho nenhuma ação apenas irei mostrar os serviços disponiveis, nesse caso o controlador não terá muito uso, mas ao acessar o fale-conosco/formulário nesse caso irei atraves do controlador de fale conosco no modulo fale conosco realizar as operações necessarias)

11- apos remover esse nome do action no navigation.ini consegui navegar pelas paginas de acordo com o modulo.

 

 

Minha questão é, existe algum problema em remover no navigation.ini o nome do action ,de cada parte?

Na opções serviços eu tenho um sub-menu, so que não consigo abrir as paginas

por cusa da categora como eu posso ajustar?

(ex. tenho a opção no meu menu SERVICO-> T.I, so que quando eu clico nele a minha URL fica locahost:8080/nomedoprojeto/public/nomedomodulo/categoria/nomedomodulo)

 

Matias para esta minha solução acima citada apenas eliminei a opção de rotas.

então as minhas urls ficam:

localhost:8080/meuprojeto/public/nomedomodulo

 

 

VOu seguir em frente algo mais eu posto por aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Matias

Estou com um problemão quando eu crio um novo arquivo.phtml na pasta index de cada modulo e adiciono algo novo, que vou acessar

localhost:8080/public/nomedomodulo/arquivo

 

ele nao faz nada

E eu ja dicionei a ação arquivoAction no controller.

 

da o seguinte erro

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)'

Compartilhar este post


Link para o post
Compartilhar em outros sites

O sistema não está encontrando o ErrorController para exibir o erro que realmente está acontecendo. Normalmente meus projetos ficam assim:

 

 

- application
-- models
-- modules
--- admin
---- controllers
---- views
--- default
---- controllers
----- IndexController.php
----- ErrorController.php
---- views

 

Quando iniciamos um projeto pelo zend tool, ele cria o controller em uma pasta dentro do application. Para aplicações modulares eu acho que fica estranho, por isto eu copio o IndexController e o ErrorController para a pasta de controllers dentro do módulo default.

 

Provavelmente é algo neste sentido o seu problema.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande, estou com um dos mesmo problemas do inicio, o que acontece é o seguinte:

tenho o modulo admin/views/scripts/index/pagina.phtml ele renderizar uma pagina com layout default, mas as imagens nao aparece elas ficam como se o caminho estivesse errado.

 

Sobre o anterior apenas copiei o que voce pediu e ainda copiei o error.phtml

 

 

Eu notei que o aplication.ini do tutorial existe uma parte que contem:

; view
resources.view.doctype = "HTML5"
resources.view.encoding = "UTF-8"
resources.view.charset = "UTF-8"
resources.view.helperPath.App_View_Helper = "App/Helpers/View"

 

quando insiro isto ele dis que o layout nao foi encontrado.

 

no caso como vai ser esse helpers?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande, estou com um dos mesmo problemas do inicio, o que acontece é o seguinte:

tenho o modulo admin/views/scripts/index/pagina.phtml ele renderizar uma pagina com layout default, mas as imagens nao aparece elas ficam como se o caminho estivesse errado.

 

Sobre o anterior apenas copiei o que voce pediu e ainda copiei o error.phtml

 

 

Eu notei que o aplication.ini do tutorial existe uma parte que contem:

; view
resources.view.doctype = "HTML5"
resources.view.encoding = "UTF-8"
resources.view.charset = "UTF-8"
resources.view.helperPath.App_View_Helper = "App/Helpers/View"

 

quando insiro isto ele dis que o layout nao foi encontrado.

 

no caso como vai ser esse helpers?

as views filhas daquele modulo, não herdam o layout

 

exemplo

 

module/empresa/views/script/layout.phtml

meu layout para esse modulo esta definido.

eu crio uma novo view missao.phtml

module/empresa/views/script/index/missao.phtml

e no controller eu crio a função

 

public function missaoAction()

{

}

 

so que quando eu clico no link missao ele abre uma pagina com o layout default e as gravuras do layout default com erro.

 

Quando eu altero o nome do arquivo layout no modulo ele abre o layout default.

 

ex.: Se eu tenho no meu modulo o layout.phtml, funciona ok mas se eu altero para layoutempresa.phtml ele abre o default, será que o probelmas é esse tb?

Compartilhar este post


Link para o post
Compartilhar em outros sites

GRAÇAS A DEUS CONSEGUI ACHAR O QUE ERA O PROBLEMA.

 

todo layout ao iniciar um projeto possui a div com id=content,

esta div puxa o conteudo que voce quer inserir no seu index.

Explicando melhor:

 

Eu tenho na minha aplicaçao nos meus modulos o LAYOUT.PHTML com toda sua estrutura de divs

WRAPPER

FOOTER

CONTENT

 

NÂO remova a div de id content deixe ela la com o seu

    <?php echo $this->layout()->content; ?> 

 

faça o layout do jeito que voce quer de maneira que o seu miolo (o seu conteudo fique vazio, pois voce vai alterar "eu acho" apenas aquele local o restante da pagina ficara da mesma maneira) fique vazio

 

EX.:

<body>
aqui tem seu topo(com a logo)

so que aqui voce deixa vazio

Aqui seu footer(com selos de qualidade)
<body>

 

va até o seu index.phtml e adicione o que desejas, e teste(ate ai tudo bem , mas e as outras paginas?)

 

va até o seu Indexcontroller(seja onde for modulo ou sem modulo) e adicione uma nova função(que será a pagina nova que voce vai querer exibir com o layout que voce definiu)

"novafuncaoFunction"

logo apos adicione uma nova view na pasta index, novaview.phtml(ok)

 

agora quando voce adicione o que voce quiser (lembre-se seu head e etc. ja estao definido apenas o conteudo"o miolo")

 

quando voce acessar localhost\public\index\novafuncao

 

aparecera a pagina com o layout definido e o conteudo que voce definiu no novafuncao.phtml

 

mas ai como redirecionar do index para esta pagina??

 

VOce cria um link da seguinte maneira

 

<a href="<?php echo $this->url(array('controller' => 'index','action' => 'novafuncao'));?>">Abrir a pagina novafuncao</a>

 

onde olhando direito para esta parte ele esta chamando o controlador apontando qual controlador depois a ação que sera chamada.

 

Bem pessoal qualquer Dúvida meu e-mail é cassiombc@gmail.com

 

Estou aprendendo tambem mais eu acho que juntos podemso aprender um pouco mais e descobrir algo novo.

 

Grato a todos que me ajudaram ou tentaram me ajudar.

 

Moderador pode fechar o Topico

 

Que DEUS Possa vos iluminar com muita luz e muita PAZ.

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.