Foros del Web » Programando para Internet » PHP » Zend »

Zend_Mail + Plantillas, baseUrl retorna vacio

Estas en el tema de Zend_Mail + Plantillas, baseUrl retorna vacio en el foro de Zend en Foros del Web. Holaaaa, un poco difícil de poner el título en pocas palabras... pero bueno. Estoy haciendo un sistema de plantillas para los mails. Mi sistema es ...
  #1 (permalink)  
Antiguo 11/08/2011, 15:23
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 1
Zend_Mail + Plantillas, baseUrl retorna vacio

Holaaaa, un poco difícil de poner el título en pocas palabras... pero bueno.

Estoy haciendo un sistema de plantillas para los mails. Mi sistema es algo así:

Código PHP:
class Model_Mail {

    private 
$themplate;
    private 
$user;
        
    private 
$fromMail "[email protected]";
    private 
$fromName "mail";
    private 
$subject;
    private 
$bodyHTML;
    private 
$bodyTEXT;
    

    public function 
Model_Mail($user){
        
$this->user $user;
        
        
$this->themplate = new Zend_View();
        
$this->themplate->setScriptPath(APPLICATION_PATH '/emails/');
        
$this->themplate->setHelperPath(APPLICATION_PATH '/helpers/');
    }

    public function 
sendMail() {
        
$mail = new Zend_Mail('UTF-8');
        
        
$mail->setFrom($this->fromMail$this->fromName);
        
$mail->addTo($this->user->email$this->user->name ' ' $this->user->lastname);
        
$mail->setSubject($this->subject);
        
        
$mail->setBodyHtml($this->bodyHTML);
        
$mail->setBodyText($this->bodyTEXT);
        
        
$mail->send();
    }    
    
    public function 
welcome() {
        
$this->subject '¡Bienvenid@!';
        
        
// variables
        
$this->themplate->user $this->user;
        
        
$this->bodyHTML $this->themplate->render('welcomeHTML.phtml');
        
$this->bodyTEXT $this->themplate->render('welcomeTEXT.phtml');
        
        return 
$this;        
    } 
Las llamadas a la clase son así:

Código PHP:
 $mail = new Model_Mail($user);
 
$mail->welcome()->sendMail(); 
Las templates, os las podéis imaginar, nada especial. La cuestión es que en las plantillas, uso algunos helpers (por eso los registré) con $this->themplate->setHelperPath(APPLICATION_PATH . '/helpers/') PERO, hay uno que "no funciona" el baseUrl() me devuelve siempre rutas vacías, y lo necesito para crear enlaces, imágenes, etc.

Supongo que hay algo que me olvido a la hora de hacer el Zend_View.... pero no veo qué es....

A alguien se le ocurre?

¡¡Gracias!!
  #2 (permalink)  
Antiguo 11/08/2011, 15:32
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend_Mail + Plantillas, baseUrl retorna vacio

El view helper baseUrl te va a devolver el baseUrl que este en el FrontController, donde estas instanciando ?, o lo que quieres es el base + el dominio ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 11/08/2011, 15:36
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Zend_Mail + Plantillas, baseUrl retorna vacio

Qué rápido

Pues busco algo como "http://www.mi-dominio.com/" que és lo que me retorna en las otras views..
  #4 (permalink)  
Antiguo 11/08/2011, 15:38
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend_Mail + Plantillas, baseUrl retorna vacio

Te retorna lo que va despues del dominio, si quieres el dominio utiliza Zend_View_Helper_ServerUrl.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 11/08/2011, 15:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Zend_Mail + Plantillas, baseUrl retorna vacio

Ahora me acabas de romper.

El $this->serverUrl() devuelve exactamente lo que buscaba... però entonce squé me está devolviendo baseUrl() normalmente?

Está difinido así:
Código PHP:
function baseUrl()
    {
        
$fc Zend_Controller_Front::getInstance();
        
$request $fc->getRequest();
        return 
$request->getBaseUrl();
    } 
Y normalmente lo uso para hacer mis enlaces:
Código PHP:
<a href="<?php echo $this->baseUrl()."/seccion"?>">seccion</a>
.. lo estoy haciendo mal?


¡Gracias!
  #6 (permalink)  
Antiguo 11/08/2011, 16:19
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Zend_Mail + Plantillas, baseUrl retorna vacio

Hace un echo y vas a ver que te devuelve, '/', a menos que tengas el proyecto en un subdirectorio por ejemplo /projects/myapp/index.php que te devolveria como base /projects/myapp, pero no te incluye el dominio.

Y para generar url's deberias utilizar el view helper correspondiente Zend_View_Helper_Url y cuando utilizas baseUrl le puedes pasar por parametro la uri(lo mismo vale para ServerUrl), algo asi:

Código PHP:
Ver original
  1. <a href="<?php echo $this->baseUrl('/seccion');  ?>">seccion</a>

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 11/08/2011, 16:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Zend_Mail + Plantillas, baseUrl retorna vacio

Ok, muchas gracias, creo que llevo bastante tiempo haciéndolo mal... jeje

Etiquetas: frameworks-y-php-orientado-a-objetos, plantillas, zend_mail
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:37.