Beispiel #1
0
 function save($id, $vars, &$errors)
 {
     global $ost;
     $tpl = null;
     $vars['name'] = Format::striptags(trim($vars['name']));
     if ($id && $id != $vars['tpl_id']) {
         $errors['err'] = __('Internal error occurred');
     }
     if (!$vars['name']) {
         $errors['name'] = __('Name is required');
     } elseif (($tid = EmailTemplateGroup::getIdByName($vars['name'])) && $tid != $id) {
         $errors['name'] = __('Template name already exists');
     }
     if (!$id && ($vars['tpl_id'] && !($tpl = EmailTemplateGroup::lookup($vars['tpl_id'])))) {
         $errors['tpl_id'] = __('Invalid template set specified');
     }
     if ($errors) {
         return false;
     }
     $sql = ' updated=NOW() ' . ' ,name=' . db_input($vars['name']) . ' ,isactive=' . db_input($vars['isactive']) . ' ,notes=' . db_input(Format::sanitize($vars['notes']));
     if ($vars['lang_id']) {
         // TODO: Validation of lang_id
         $sql .= ',lang=' . db_input($vars['lang_id']);
     }
     if ($id) {
         $sql = 'UPDATE ' . EMAIL_TEMPLATE_GRP_TABLE . ' SET ' . $sql . ' WHERE tpl_id=' . db_input($id);
         if (db_query($sql)) {
             return true;
         }
         $errors['err'] = sprintf(__('Unable to update %s.'), __('this template set')) . ' ' . __('Internal error occurred');
     } else {
         if (isset($vars['id'])) {
             $sql .= ', tpl_id=' . db_input($vars['id']);
         }
         $sql = 'INSERT INTO ' . EMAIL_TEMPLATE_GRP_TABLE . ' SET created=NOW(), ' . $sql;
         if (!db_query($sql) || !($new_id = db_insert_id())) {
             $errors['err'] = sprintf(__('Unable to create %s.'), __('this template set')) . ' ' . __('Internal error occurred');
             return false;
         }
         if ($tpl && ($info = $tpl->getInfo())) {
             $sql = 'INSERT INTO ' . EMAIL_TEMPLATE_TABLE . '
                 (created, updated, tpl_id, code_name, subject, body)
                 SELECT NOW() as created, NOW() as updated, ' . db_input($new_id) . ' as tpl_id, code_name, subject, body
                 FROM ' . EMAIL_TEMPLATE_TABLE . ' WHERE tpl_id=' . db_input($tpl->getId());
             if (!db_query($sql) || !db_insert_id()) {
                 return false;
             }
         }
         return $new_id;
     }
     return false;
 }
 function save($id, $vars, &$errors)
 {
     global $ost;
     $tpl = null;
     $vars['name'] = Format::striptags(trim($vars['name']));
     if ($id && $id != $vars['tpl_id']) {
         $errors['err'] = 'Internal error. Try again';
     }
     if (!$vars['name']) {
         $errors['name'] = 'Name required';
     } elseif (($tid = EmailTemplateGroup::getIdByName($vars['name'])) && $tid != $id) {
         $errors['name'] = 'Template name already exists';
     }
     if (!$id && (!$vars['tpl_id'] || !($tpl = EmailTemplateGroup::lookup($vars['tpl_id'])))) {
         $errors['tpl_id'] = 'Selection required';
     }
     if ($errors) {
         return false;
     }
     $sql = ' updated=NOW() ' . ' ,name=' . db_input($vars['name']) . ' ,isactive=' . db_input($vars['isactive']) . ' ,notes=' . db_input($vars['notes']);
     if ($id) {
         $sql = 'UPDATE ' . EMAIL_TEMPLATE_GRP_TABLE . ' SET ' . $sql . ' WHERE tpl_id=' . db_input($id);
         if (db_query($sql)) {
             return true;
         }
         $errors['err'] = 'Unable to update the template. Internal error occurred';
     } elseif ($tpl && ($info = $tpl->getInfo())) {
         $sql = 'INSERT INTO ' . EMAIL_TEMPLATE_GRP_TABLE . ' SET created=NOW(), ' . $sql;
         if (!db_query($sql) || !($new_id = db_insert_id())) {
             $errors['err'] = 'Unable to create template. Internal error';
             return false;
         }
         $sql = 'INSERT INTO ' . EMAIL_TEMPLATE_TABLE . '
                 (created, updated, tpl_id, code_name, subject, body)
                 SELECT NOW() as created, NOW() as updated, ' . db_input($new_id) . ' as tpl_id, code_name, subject, body
                 FROM ' . EMAIL_TEMPLATE_TABLE . ' WHERE tpl_id=' . db_input($tpl->getId());
         if (db_query($sql) && db_insert_id()) {
             return $new_id;
         }
     }
     return false;
 }