2010-07-16 10 views
9

मैं एक कस्टम क्लास बनाना चाहता हूं जो एक HTML ईमेल उत्पन्न करेगा। मैं चाहता हूं कि ईमेल की सामग्री "ईमेल व्यू स्क्रिप्ट" निर्देशिका से आती है। तो अवधारणा यह होगी कि मैं एक HTML ईमेल व्यू स्क्रिप्ट बना सकता हूं, वैसे ही मैं एक सामान्य दृश्य स्क्रिप्ट (कक्षा चर निर्दिष्ट करने में सक्षम होना) आदि बना सकता हूं, और दृश्य स्क्रिप्ट ईमेल के HTML निकाय के रूप में प्रस्तुत की जाएगी।नियंत्रक के बाहर ज़ेंड फ्रेमवर्क आंशिक दृश्य सहायक का उपयोग कैसे करें या देखें?

उदाहरण के लिए

, नियंत्रक में:

$email = My_Email::specialWelcomeMessage($toEmail, $firstName, $lastName); 
$email->send(); 

My_Email::specialWelcomeMessage() समारोह कुछ इस तरह करना होगा:

public static function specialWelcomeMessage($toEmail, $firstName, $lastName) { 
    $mail = new Zend_Mail(); 
    $mail->setTo($toEmail); 
    $mail->setFrom($this->defaultFrom); 
    $mail->setTextBody($this->view->renderPartial('special-welcome-message.text.phtml', array('firstName'=>$firstName, 'lastName'=>$lastName)); 
} 

आदर्श रूप में, यह सबसे अच्छा होगा अगर मैं specialWelcomeMessage() बनाने के लिए एक तरह से मिल सकता है फ़ंक्शन एक्ट इस प्रकार आसान है:

public static function specialWelcomeMessage($toEmail, $firstName, $lastName) { 
    $this->firstName = $firstName; 
    $this->lastName = $lastName; 
    //the text body and HTML body would be rendered automatically by being named $functionName.text.phtml and $functionName.html.phtml just like how controller actions/views happen 
} 

Wh

<p>Thank you <?php echo $this->firstName; ?> <?php echo $this->lastName; ?>.</p> 

मैं कैसे एक दृश्य स्क्रिप्ट या नियंत्रक के बाहर से आंशिक दृश्य सहायक कहेंगे: Ich तो विशेष स्वागत-message.text.phtml और विशेष स्वागत-message.html.phtml लिपियों प्रस्तुत करना होगा ? क्या मैं इसे सही तरीके से देख रहा हूं? या क्या इस समस्या का बेहतर समाधान है?

उत्तर

11

के बारे में क्या:

public static function specialWelcomeMessage($toEmail, $firstName, $lastName) { 
    $view = new Zend_View; 
    $view->setScriptPath('pathtoyourview'); 
    $view->firstName = $firstName; 
    $view->lastName = $lastName; 
    $content = $view->render('nameofyourview.phtml'); 
    $mail = new Zend_Mail(); 
    $mail->setTo($toEmail); 
    $mail->setFrom($this->defaultFrom); 
    $mail->setTextBody($content); 
} 

तुम जैसे आपने कहा, क्यों क्रिया का नाम या नियंत्रक आप कॉल कर रहे मिल का उपयोग नहीं और एक चर के रूप में भेजें गतिशील रूप से आपकी कार्रवाई नाम के साथ स्क्रिप्ट पथ को बदलना चाहते हैं, तो , या बेहतर अभी भी एक डिफ़ॉल्ट पैरामीटर। इससे मदद मिलेगी:

http://framework.zend.com/manual/en/zend.controller.request.html

संबंधित मुद्दे