/**
  * Check usage of template code in other templates
  *
  * @param   Mage_Core_Model_Email_Template $template
  * @return  boolean
  */
 public function checkCodeUsage(Mage_Core_Model_Email_Template $template)
 {
     if ($template->getTemplateActual() != 0 || is_null($template->getTemplateActual())) {
         $select = $this->_read->select()->from($this->_templateTable, new Zend_Db_Expr('COUNT(template_id)'))->where('template_id!=?', $template->getId())->where('template_code=?', $template->getTemplateCode());
         $countOfCodes = $this->_read->fetchOne($select);
         return $countOfCodes > 0;
     } else {
         return false;
     }
 }
Example #2
0
 /**
  * Check usage of template code in other templates
  *
  * @param Mage_Core_Model_Email_Template $template
  * @return boolean
  */
 public function checkCodeUsage(Mage_Core_Model_Email_Template $template)
 {
     if ($template->getTemplateActual() != 0 || is_null($template->getTemplateActual())) {
         $select = $this->_getReadAdapter()->select()->from($this->getMainTable(), 'COUNT(*)')->where('template_id != :template_id')->where('template_code = :template_code');
         $bind = array('template_id' => $template->getId(), 'template_code' => $template->getTemplateCode());
         $result = $this->_getReadAdapter()->fetchOne($select, $bind);
         if ($result) {
             return true;
         }
     }
     return false;
 }
 /**
  * Prepares template for saving, validates input data
  *
  * @param   Mage_Core_Model_Email_Template $template
  * @return  array
  */
 protected function _prepareSave(Mage_Core_Model_Email_Template $template)
 {
     $data = array();
     $data['template_code'] = $template->getTemplateCode();
     $data['template_text'] = $template->getTemplateText();
     $data['template_type'] = (int) $template->getTemplateType();
     $data['template_subject'] = $template->getTemplateSubject();
     $data['template_sender_name'] = $template->getTemplateSenderName();
     $data['template_sender_email'] = $template->getTemplateSenderEmail();
     if (!$template->getAddedAt()) {
         $template->setAddedAt(AO::getSingleton('core/date')->gmtDate());
         $template->setModifiedAt(AO::getSingleton('core/date')->gmtDate());
     }
     $data['modified_at'] = $template->getModifiedAt();
     $data['added_at'] = $template->getAddedAt();
     if ($this->checkCodeUsage($template)) {
         AO::throwException(AO::helper('core')->__('Duplicate Of Template Code'));
     }
     $validators = array('template_code' => array(Zend_Filter_Input::ALLOW_EMPTY => false), 'template_type' => 'Alnum');
     $validateInput = new Zend_Filter_Input(array(), $validators, $data);
     if (!$validateInput->isValid()) {
         $errorString = '';
         foreach ($validateInput->getMessages() as $message) {
             if (is_array($message)) {
                 foreach ($message as $str) {
                     $errorString .= $str . "\n";
                 }
             } else {
                 $errorString .= $message . "\n";
             }
         }
         AO::throwException($errorString);
     }
     return $data;
 }