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; }
/** * 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; }
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; }
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); } }
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; }