سؤال

لديّ قالب بريد إلكتروني في عرض وأريد أن أكتب عملية تعتبر موحدة تستعد لرسائل البريد الإلكتروني ليتم إرسالها. لأن هذا هو موحد ليس لدي أي إمكانية الوصول إلى وحدة التحكم. هل هي طريقة لتقديم عرض؟

هل كانت مفيدة؟

المحلول

هذا ما أستخدمه:

private function render($template, array $data = array()){
    $path = Yii::getPathOfAlias('application.views.email').'/'.$template.'.php';
    if(!file_exists($path)) throw new Exception('Template '.$path.' does not exist.');
    return $this->renderFile($path, $data, true);
}

يستغرق قالب البريد الإلكتروني من طرق العرض/البريد الإلكتروني.

نصائح أخرى

إذا فشل كل شيء آخر (كما في حالتي):

<?php


    /**
    * Renders a view file & returns result.
    * @param string $_viewFile_ view file path
    * @param array $_data_ optional data to be extracted as local view variables
    * @param boolean $_return_ whether to return the rendering result instead of displaying it
    * @return mixed the rendering result if required. Null otherwise.
         */
public function myRenderPartial($_viewFile_,$_data_=null,$_return_=true) {

    if(is_array($_data_))
        extract($_data_,EXTR_PREFIX_SAME,'data');
    else
        $data=$_data_;

    if($_return_)
    {
        ob_start();
        ob_implicit_flush(false);
        require(YiiBase::getPathOfAlias("application.views").$_viewFile_.'.php');
        return ob_get_clean();
    }
    else
    {
        require($_viewFile_);
    }
}   

?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top