Ir para conteúdo
gust.php

Zend2 email template

Recommended Posts

Fala galera, boa noite.

 

Estou tentando usar um template para enviar email de dentro do sistema, o email já é enviado só que não consigo achar o template. Estou tentando assim:

 

Isso esta no meu controller:


$resolver->setMap(array(
            'mailTemplate' => __DIR__ .  '/view/application/mail/os-mail.phtml'
        ));

A mensagem que chega é:

Warning: include(/var/www/html/sgt/module/Application/src/Application/Controller/view/application/mail/os-mail.phtml): failed to open stream: No such file or directory in

 

Ja tentei assim :


   'mailTemplate' =>  '../../../view/application/mail/os-mail.phtml'

 

A mensagem que chega é:

Warning: include(../../../view/application/mail/os-mail.phtml): failed to open stream: No such file or directory in

 

Tenho certeza que o caminho esta errado, agora como sair do Controller e ir para view ..?

Compartilhar este post


Link para o post
Compartilhar em outros sites
APPLICATION_PATH . '/modules/my_module/view/application/mail/os-mail.phtml'

Veja o nome das pastas corretamente antes de copiar e colar. 

Outro detalhe, não é responsabilidade do controller disparar emails. Muito menos renderizar as views destes templates de emails.


Pesquise por Events e Listeners
https://framework.zend.com/manual/2.3/en/tutorials/tutorial.eventmanager.html
 

Desta forma você isola, seguindo os princípios do S.O.L.I.D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams, bom dia

 

Cara, obrigado pela resposta. No caso então, seria interessante eu criar um modulo para envio, tratar as informações no meu Controller e passar isso para o modulo renderizar e enviar ?

 

Ou uma classe bastaria?

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, gust.php disse:

Ou uma classe bastaria?

Not!

O Events no ZF é uma implementação do pattern observer, que permite que você escute vários eventos que ocorrem na aplicação. 

Se você separar isso, pode usar em outros lugares e claro, mantém a organização de forma mais profissional da aplicação.

Para passar as informações do controller para o observer. Veja este tutorial.

http://www.michaelgallego.fr/blog/2013/05/12/understanding-the-zend-framework-2-event-manager/

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Gustavo2503
      Qual função substituir para dar o mesmo resultado?
    • Por erick.major
      Oi pessoal,
      Eu desenvolvi um template Volt e pretendo usá-lo como um padrão para os outros. Há um exemplo do meu código abaixo:
      {# LOCKED MODE #} {% if session.get('locked_mode', true) is not empty and session.get('locked_mode', true) is true %}     {{ partial('locked_mode_view') }} {# UNLOCKED MODE #} {% else %} <div class="row">     {{ partial('unlocked_mode_view') }}     {% block content %}         {{ partial('unlocked_mode_content') }}     {% endblock %} </div> {% endif %} Enquanto ele estava compilando, o compilador mostrava esse erro:
      Embedding blocks into other blocks is not supported in... Eu não entendi esse erro. O que posso fazer nesta situação?
    • Por isaque_cb2
      Olá! eu estava aqui fazendo meu site, quando me deparei com o problema de fazer um menu "bonito" baixei este template depois de ver o exemplo na net, mas ele é muito complicado pra mim, não sou profissional (mas sou programador iniciante em c#)
      TEMPLATE
      mas se alguém puder me ajudar a criar uma pagina deste tipo, sem tantos códigos, eu agradeço, pois do jeito que está eu não consigo nem alterar as cores...
      pode ser com tutoriais, dicas, videos, etc...
       
      ~Grato desde já~
    • Por hyper_pixel
      Estou com problema com tradução, tema gringo coloquei a tradução do mario sam mas não ativa pelo que entendi por que a tradução e foi feita para o rwd é isso? pois tenho outro site com o rwd que funciona normalmente. Nesse coloquei a pasta no caminho e nao faz e efeito   app\locale\pt_BR\    depois joguei dentro da pasta do tema ativo e depois dentro da default e não muda nada app/design/frontend/tm_themes/theme760/locale/pt_BR    app/design/frontend/default/default/locale/pt_BR   Vi tutoriais de onde comprei de como instalar nova linguagem para que apareça no combo para que o usuário escolha, não quero isso quero que a loja fique em português e pronto. No Back and também nao traduziu, esta em ingles mas aparece no store config a opção (português brasil) mas só isso, não muda nada. Pelo que entendi o magento não sabe da pasta que tem traduções, nivel de código posso programar. como faco par que ele leia a pasta com os csvs a tratuza todo o site, carrinho rodape admin etc Obrigado    
    • Por gust.php
      Prezados, bom dia.   Estou tentando diferenciar o layout de um modulo dos demais, todos os modulos do meu sistema tem um mesmo layout com o mesmo menu, quero que todos fiquem igual ao layout do modulo Application, e o modulo cliente seja diferente. Estou tentando assim:   No modulo Application o arquivos module.config.php esta assim:     'view_manager' => array( 'display_not_found_reason' => true,          'display_exceptions'       => true,          'doctype'                  => 'HTML5',          'not_found_template'       => 'error/404',          'exception_template'       => 'error/index',          'template_map' => array(              'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',              'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',              'error/404'               => __DIR__ . '/../view/error/404.phtml',              'error/index'             => __DIR__ . '/../view/error/index.phtml', ),          'template_path_stack' => array(             'application' => __DIR__ . '/../view', ), 'strategies' => array( 'ViewJsonStrategy', ), ),     Em todos os outros modulos estou fazendo assim:     'view_manager' => array( 'display_not_found_reason' => true,          'display_exceptions'       => true,          'doctype'                  => 'HTML5',          'not_found_template'       => 'error/404',          'exception_template'       => 'error/index',          'template_map' => array(              'layout/layout'           => __DIR__ . '/../../Application/view/layout/layout.phtml',  ----> Estou usando o layout de Application, esta funcionando.              'cadastro/index/index' => __DIR__ . '/../view/cadastro/index/index.phtml',              'error/404'               => __DIR__ . '/../view/error/404.phtml',              'error/index'             => __DIR__ . '/../view/error/index.phtml',          ),     Quando faço o login, chamo a rota homecli. Beleza, isso funciona. Só que, quando logo com um outro usuário qualquer, ele carrega o layout do cliente, ele não carrega mais o layout do Application, ele sempre carrega o layout do cliente.   Arquivo module.config.php modulo cliente:     'view_manager' => array( 'display_not_found_reason' => true,          'display_exceptions'       => true,          'doctype'                  => 'HTML5',          'not_found_template'       => 'error/404',          'exception_template'       => 'error/index',          'template_map' => array(              'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',              'cliente/index/index' => __DIR__ . '/../view/cliente/index/index.phtml',              'error/404'               => __DIR__ . '/../view/error/404.phtml',              'error/index'             => __DIR__ . '/../view/error/index.phtml', ),    
×

Informação importante

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