Example #1
0
 public static function renderMail($viewName, $recipient, $vars = array(), $controllerName = NULL, $noVendorMail = FALSE, $useDefault = true)
 {
     if (!class_exists('VirtueMartControllerVirtuemart')) {
         require VMPATH_SITE . DS . 'controllers' . DS . 'virtuemart.php';
     }
     $controller = new VirtueMartControllerVirtuemart();
     // refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $controller->addViewPath(VMPATH_SITE . DS . 'views');
     $view = $controller->getView($viewName, 'html');
     if (!$controllerName) {
         $controllerName = $viewName;
     }
     $controllerClassName = 'VirtueMartController' . ucfirst($controllerName);
     if (!class_exists($controllerClassName)) {
         require VMPATH_SITE . DS . 'controllers' . DS . $controllerName . '.php';
     }
     //refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $view->addTemplatePath(VMPATH_SITE . '/views/' . $viewName . '/tmpl');
     if (!class_exists('VmTemplate')) {
         require VMPATH_SITE . DS . 'helpers' . DS . 'vmtemplate.php';
     }
     $template = VmTemplate::loadVmTemplateStyle();
     VmTemplate::setTemplate($template);
     if ($template) {
         if (is_array($template) and isset($template['template'])) {
             $view->addTemplatePath(VMPATH_ROOT . DS . 'templates' . DS . $template['template'] . DS . 'html' . DS . 'com_virtuemart' . DS . $viewName);
         } else {
             $view->addTemplatePath(VMPATH_ROOT . DS . 'templates' . DS . $template . DS . 'html' . DS . 'com_virtuemart' . DS . $viewName);
         }
     }
     foreach ($vars as $key => $val) {
         $view->{$key} = $val;
     }
     $user = FALSE;
     if (isset($vars['orderDetails'])) {
         //If the vRequest is there, the update is done by the order list view BE and so the checkbox does override the defaults.
         //$name = 'orders['.$order['details']['BT']->virtuemart_order_id.'][customer_notified]';
         //$customer_notified = vRequest::getVar($name,-1);
         if (!$useDefault and isset($vars['newOrderData']['customer_notified']) and $vars['newOrderData']['customer_notified'] == 1) {
             $user = self::sendVmMail($view, $recipient, $noVendorMail);
             vmdebug('renderMail by overwrite');
         } else {
             $orderstatusForShopperEmail = VmConfig::get('email_os_s', array('U', 'C', 'S', 'R', 'X'));
             if (!is_array($orderstatusForShopperEmail)) {
                 $orderstatusForShopperEmail = array($orderstatusForShopperEmail);
             }
             if (in_array((string) $vars['orderDetails']['details']['BT']->order_status, $orderstatusForShopperEmail)) {
                 $user = self::sendVmMail($view, $recipient, $noVendorMail);
                 vmdebug('renderMail by default');
             } else {
                 $user = -1;
             }
         }
     } else {
         $user = self::sendVmMail($view, $recipient, $noVendorMail);
     }
     if (isset($view->doVendor) && !$noVendorMail) {
         if (isset($vars['orderDetails'])) {
             $order = $vars['orderDetails'];
             $orderstatusForVendorEmail = VmConfig::get('email_os_v', array('U', 'C', 'R', 'X'));
             if (!is_array($orderstatusForVendorEmail)) {
                 $orderstatusForVendorEmail = array($orderstatusForVendorEmail);
             }
             if (in_array((string) $order['details']['BT']->order_status, $orderstatusForVendorEmail)) {
                 self::sendVmMail($view, $view->vendorEmail, TRUE);
             } else {
                 $user = -1;
             }
         } else {
             self::sendVmMail($view, $view->vendorEmail, TRUE);
         }
     }
     return $user;
 }
Example #2
0
 /**
  * Prepares a view for rendering email, then renders and sends
  *
  * @param object $controller
  * @param string $viewName View which will render the email
  * @param string $recipient shopper@whatever.com
  * @param array $vars variables to assign to the view
  */
 public function renderMail($viewName, $recipient, $vars = array(), $controllerName = null, $noVendorMail = false)
 {
     if (!class_exists('VirtueMartControllerVirtuemart')) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . 'virtuemart.php';
     }
     // 		$format = (VmConfig::get('order_html_email',1)) ? 'html' : 'raw';
     $controller = new VirtueMartControllerVirtuemart();
     //Todo, do we need that? refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $controller->addViewPath(JPATH_VM_SITE . DS . 'views');
     $view = $controller->getView($viewName, 'html');
     if (!$controllerName) {
         $controllerName = $viewName;
     }
     $controllerClassName = 'VirtueMartController' . ucfirst($controllerName);
     if (!class_exists($controllerClassName)) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . $controllerName . '.php';
     }
     //Todo, do we need that? refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $view->addTemplatePath(JPATH_VM_SITE . '/views/' . $viewName . '/tmpl');
     $vmtemplate = VmConfig::get('vmtemplate', 'default');
     if ($vmtemplate == 'default') {
         $app = JFactory::getApplication('site');
         if (JVM_VERSION == 2) {
             $q = 'SELECT `template` FROM `#__template_styles` WHERE `client_id`="0" AND `home`="1"';
         } else {
             $q = 'SELECT `template` FROM `#__templates_menu` WHERE `client_id`="0" AND `menuid`="0"';
         }
         $db = JFactory::getDbo();
         $db->setQuery($q);
         $template = $db->loadResult();
     } else {
         $template = $vmtemplate;
     }
     if ($template) {
         $view->addTemplatePath(JPATH_ROOT . DS . 'templates' . DS . $template . DS . 'html' . DS . 'com_virtuemart' . DS . $viewName);
     } else {
         if (isset($db)) {
             $err = $db->getErrorMsg();
         } else {
             $err = 'The selected vmtemplate is not existing';
         }
         if ($err) {
             vmError('renderMail get Template failed: ' . $err);
         }
     }
     foreach ($vars as $key => $val) {
         $view->{$key} = $val;
     }
     $user = self::sendVmMail($view, $recipient, $noVendorMail);
     if (isset($view->doVendor) && !$noVendorMail) {
         self::sendVmMail($view, $view->vendorEmail, true);
     }
     return $user;
 }
Example #3
0
 private static function getVMView($viewName, $vars = array(), $controllerName = NULL, $layout = 'default', $format = 'html')
 {
     $originallayout = JRequest::getVar('layout');
     if (!class_exists('VirtueMartControllerVirtuemart')) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . 'virtuemart.php';
     }
     // 		$format = (VmConfig::get('order_html_email',1)) ? 'html' : 'raw';
     // calling this resets the layout
     $controller = new VirtueMartControllerVirtuemart();
     JRequest::setVar('layout', $layout);
     //Todo, do we need that? refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $controller->addViewPath(JPATH_VM_SITE . DS . 'views');
     $view = $controller->getView($viewName, $format);
     $view->assignRef('layout', $layout);
     $view->assignRef('format', $format);
     $view->setLayout($layout);
     if (!$controllerName) {
         $controllerName = $viewName;
     }
     $controllerClassName = 'VirtueMartController' . ucfirst($controllerName);
     if (!class_exists($controllerClassName)) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . $controllerName . '.php';
     }
     //Todo, do we need that? refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $view->addTemplatePath(JPATH_VM_SITE . '/views/' . $viewName . '/tmpl');
     $vmtemplate = VmConfig::get('vmtemplate', 'default');
     if ($vmtemplate == 'default') {
         if (JVM_VERSION >= 2) {
             $q = 'SELECT `template` FROM `#__template_styles` WHERE `client_id`="0" AND `home`="1"';
         } else {
             $q = 'SELECT `template` FROM `#__templates_menu` WHERE `client_id`="0" AND `menuid`="0"';
         }
         $db = JFactory::getDbo();
         $db->setQuery($q);
         $template = $db->loadResult();
     } else {
         $template = $vmtemplate;
     }
     if ($template) {
         $view->addTemplatePath(JPATH_ROOT . DS . 'templates' . DS . $template . DS . 'html' . DS . 'com_virtuemart' . DS . $viewName);
     } else {
         if (isset($db)) {
             $err = $db->getErrorMsg();
         } else {
             $err = 'The selected vmtemplate is not existing';
         }
         if ($err) {
             vmError('renderMail get Template failed: ' . $err);
         }
     }
     foreach ($vars as $key => $val) {
         $view->{$key} = $val;
     }
     ob_start();
     $html = $view->display();
     $html2 = ob_get_clean();
     JRequest::setVar('layout', $originallayout);
     return $html . $html2;
 }
Example #4
0
 private static function renderMail($viewName, $recipient, $vars = array(), $controllerName = NULL, $noVendorMail = FALSE, $useDefault = true)
 {
     if (!class_exists('VirtueMartControllerVirtuemart')) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . 'virtuemart.php';
     }
     $controller = new VirtueMartControllerVirtuemart();
     $controller->addViewPath(JPATH_VM_SITE . DS . 'views');
     $view = $controller->getView($viewName, 'html');
     if (!$controllerName) {
         $controllerName = $viewName;
     }
     $controllerClassName = 'VirtueMartController' . ucfirst($controllerName);
     if (!class_exists($controllerClassName)) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . $controllerName . '.php';
     }
     $view->addTemplatePath(JPATH_VM_SITE . '/views/' . $viewName . '/tmpl');
     $vmtemplate = VmConfig::get('vmtemplate', 'default');
     if ($vmtemplate == 'default') {
         if (JVM_VERSION >= 2) {
             $q = 'SELECT `template` FROM `#__template_styles` WHERE `client_id`="0" AND `home`="1"';
         } else {
             $q = 'SELECT `template` FROM `#__templates_menu` WHERE `client_id`="0" AND `menuid`="0"';
         }
         $db = JFactory::getDbo();
         $db->setQuery($q);
         $template = $db->loadResult();
     } else {
         $template = $vmtemplate;
     }
     if ($template) {
         $view->addTemplatePath(JPATH_ROOT . DS . 'templates' . DS . $template . DS . 'html' . DS . 'com_virtuemart' . DS . $viewName);
     }
     foreach ($vars as $key => $val) {
         $view->{$key} = $val;
     }
     $user = FALSE;
     $user = OPCcheckout::sendVmMail($view, $recipient, $noVendorMail);
 }
 private function notifyCustomer($order, $order_info)
 {
     $lang = JFactory::getLanguage();
     $filename = 'com_virtuemart';
     $lang->load($filename, JPATH_ADMINISTRATOR);
     if (!class_exists('VirtueMartControllerVirtuemart')) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . 'virtuemart.php';
     }
     if (!class_exists('shopFunctionsF')) {
         require JPATH_VM_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php';
     }
     $controller = new VirtueMartControllerVirtuemart();
     $controller->addViewPath(JPATH_VM_ADMINISTRATOR . DS . 'views');
     $view = $controller->getView('orders', 'html');
     if (!$controllerName) {
         $controllerName = 'orders';
     }
     $controllerClassName = 'VirtueMartController' . ucfirst($controllerName);
     if (!class_exists($controllerClassName)) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . $controllerName . '.php';
     }
     $view->addTemplatePath(JPATH_COMPONENT_ADMINISTRATOR . '/views/orders/tmpl');
     $db = JFactory::getDBO();
     $q = "SELECT CONCAT_WS(' ',first_name, middle_name , last_name) AS full_name, email, order_status_name\n\t\t\tFROM #__virtuemart_order_userinfos\n\t\t\tLEFT JOIN #__virtuemart_orders\n\t\t\tON #__virtuemart_orders.virtuemart_user_id = #__virtuemart_order_userinfos.virtuemart_user_id\n\t\t\tLEFT JOIN #__virtuemart_orderstates\n\t\t\tON #__virtuemart_orderstates.order_status_code = #__virtuemart_orders.order_status\n\t\t\tWHERE #__virtuemart_orders.virtuemart_order_id = '" . $order['virtuemart_order_id'] . "'\n\t\t\tAND #__virtuemart_orders.virtuemart_order_id = #__virtuemart_order_userinfos.virtuemart_order_id";
     $db->setQuery($q);
     $db->query();
     $view->user = $db->loadObject();
     $view->order = $order;
     JRequest::setVar('view', 'orders');
     $user = $this->sendVmMail($view, $order_info['details']['BT']->email, false);
     if (isset($view->doVendor)) {
         $this->sendVmMail($view, $view->vendorEmail, true);
     }
 }
Example #6
0
 public static function renderMail($viewName, $recipient, $vars = array(), $controllerName = NULL, $noVendorMail = FALSE, $useDefault = true)
 {
     if (!class_exists('VirtueMartControllerVirtuemart')) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . 'virtuemart.php';
     }
     // 		$format = (VmConfig::get('order_html_email',1)) ? 'html' : 'raw';
     $controller = new VirtueMartControllerVirtuemart();
     //Todo, do we need that? refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $controller->addViewPath(JPATH_VM_SITE . DS . 'views');
     $view = $controller->getView($viewName, 'html');
     if (!$controllerName) {
         $controllerName = $viewName;
     }
     $controllerClassName = 'VirtueMartController' . ucfirst($controllerName);
     if (!class_exists($controllerClassName)) {
         require JPATH_VM_SITE . DS . 'controllers' . DS . $controllerName . '.php';
     }
     //Todo, do we need that? refering to http://forum.virtuemart.net/index.php?topic=96318.msg317277#msg317277
     $view->addTemplatePath(JPATH_VM_SITE . '/views/' . $viewName . '/tmpl');
     $vmtemplate = VmConfig::get('vmtemplate', 'default');
     if ($vmtemplate == 'default') {
         if (JVM_VERSION == 2) {
             $q = 'SELECT `template` FROM `#__template_styles` WHERE `client_id`="0" AND `home`="1"';
         } else {
             $q = 'SELECT `template` FROM `#__templates_menu` WHERE `client_id`="0" AND `menuid`="0"';
         }
         $db = JFactory::getDbo();
         $db->setQuery($q);
         $template = $db->loadResult();
     } else {
         $template = $vmtemplate;
     }
     if ($template) {
         $view->addTemplatePath(JPATH_ROOT . DS . 'templates' . DS . $template . DS . 'html' . DS . 'com_virtuemart' . DS . $viewName);
     } else {
         if (isset($db)) {
             $err = $db->getErrorMsg();
         } else {
             $err = 'The selected vmtemplate is not existing';
         }
         if ($err) {
             vmError('renderMail get Template failed: ' . $err);
         }
     }
     foreach ($vars as $key => $val) {
         $view->{$key} = $val;
     }
     $user = FALSE;
     if (isset($vars['orderDetails'])) {
         //If the JRequest is there, the update is done by the order list view BE and so the checkbox does override the defaults.
         //$name = 'orders['.$order['details']['BT']->virtuemart_order_id.'][customer_notified]';
         //$customer_notified = JRequest::getVar($name,-1);
         if (!$useDefault and isset($vars['newOrderData']['customer_notified']) and $vars['newOrderData']['customer_notified'] == 1) {
             $user = self::sendVmMail($view, $recipient, $noVendorMail);
             vmdebug('renderMail by overwrite');
         } else {
             $orderstatusForShopperEmail = VmConfig::get('email_os_s', array('U', 'C', 'S', 'R', 'X'));
             if (!is_array($orderstatusForShopperEmail)) {
                 $orderstatusForShopperEmail = array($orderstatusForShopperEmail);
             }
             if (in_array((string) $vars['orderDetails']['details']['BT']->order_status, $orderstatusForShopperEmail)) {
                 $user = self::sendVmMail($view, $recipient, $noVendorMail);
                 vmdebug('renderMail by default');
             } else {
                 $user = -1;
             }
         }
     } else {
         $user = self::sendVmMail($view, $recipient, $noVendorMail);
     }
     if (isset($view->doVendor) && !$noVendorMail) {
         if (isset($vars['orderDetails'])) {
             $order = $vars['orderDetails'];
             $orderstatusForVendorEmail = VmConfig::get('email_os_v', array('U', 'C', 'R', 'X'));
             if (!is_array($orderstatusForVendorEmail)) {
                 $orderstatusForVendorEmail = array($orderstatusForVendorEmail);
             }
             if (in_array((string) $order['details']['BT']->order_status, $orderstatusForVendorEmail)) {
                 self::sendVmMail($view, $view->vendorEmail, TRUE);
             } else {
                 $user = -1;
             }
         } else {
             self::sendVmMail($view, $view->vendorEmail, TRUE);
         }
     }
     return $user;
 }