Ejemplo n.º 1
0
 function onsubmit($data = null)
 {
     global $lang, $panel, $action;
     $result = 0;
     $dummyarr = array();
     $errors = array();
     $content = array();
     $lang_loaded = false;
     $l = null;
     foreach ($this->validators as $valid_arr) {
         # array('subject', 'subject', 'notEmpty', false, false, 'func1,func2');
         list($vid, $field, $validatorname, $empty, $halt, $funcs) = $valid_arr;
         $includepath = SMARTY_DIR . 'plugins/';
         $string = @$_POST[$field];
         // execute functions on string
         if ($string) {
             $func_arr = explode(',', $funcs);
             foreach ($func_arr as $f) {
                 $string = @$f($string);
             }
         }
         include_once $includepath . 'validate_criteria.' . $validatorname . '.php';
         # smarty_validate_criteria_notEmpty
         $valid_f = 'smarty_validate_criteria_' . $validatorname;
         if (!$valid_f($string, $empty, $dummyarr, $dummyarr)) {
             if (!$lang_loaded) {
                 $lang = lang_load('admin.' . ADMIN_PANEL);
                 $l = $lang['admin'][ADMIN_PANEL][ADMIN_PANEL_ACTION];
             }
             $errors[$field] = isset($l['error'][$field]) ? $l['error'][$field] : htmlspecialchars($field);
             if ($halt) {
                 break;
             }
         } else {
             $content[$field] = $string;
         }
     }
     if (!$errors) {
         $result = parent::onsubmit($content);
     } else {
         $this->smarty->assign('error', $errors);
         $result = apply_filters("admin_{$panel}_{$action}_onerror", $this->onerror());
     }
     return $result;
 }