public function display($content) { if (!$this->render) { if (!headers_sent() && array_count($this->_headers) > 0) { foreach ($this->_headers as $key => $val) { header($val); } } http_cache_off(); if (!Cookie::isSaved()) { cookie()->save(); } if (wasp_strlen($content) > 102400) { @ini_set('zlib.output_compression', 1); } echo $this->getDebugInfo($content); return; } $templater = new \Smarty(); $templater->enableSecurity('Wasp_Smarty_Security'); $templater->setTemplateDir($this->getThemePath() . DIR_SEP); $temp_dir = TEMP_DIR . DIR_SEP . 'smarty' . DIR_SEP . $this->getThemeName(); if (!is_dir($temp_dir)) { wasp_mkdir($temp_dir); } $templater->setCompileDir($temp_dir . DIR_SEP); if (array_count($this->_assigns) > 0) { foreach ($this->_assigns as $key => $val) { $templater->assign($key, $val); } } $templater->assign('content', $content); if (function_exists('memory_get_peak_usage')) { $templater->assign('max_mem_use', get_mem_use(true)); } else { $templater->assign('max_mem_use', '-//-'); } $out = $templater->fetch($this->_layout); if (!headers_sent() && array_count($this->_headers) > 0) { foreach ($this->_headers as $key => $val) { header($val); } } if (!Cookie::isSaved()) { cookie()->save(); } if (wasp_strlen($out) > 102400) { ini_set('zlib.output_compression', 1); } unset($templater); memory_clear(); /** * Add CSS */ if (array_count($this->_css_list) > 0) { $_ = "\n\t\t<!-- DYNAMIC CSS -->\n"; foreach ($this->_css_list as $key => $val) { if (preg_match('/^http/is', $val)) { $_ .= "\t\t<link href=\"{$val}\" rel=\"stylesheet\" type=\"text/css\" />\n"; } else { $url = $this->getThemeUrl() . '/css/' . $val; $_ .= "\t\t<link href=\"{$url}\" rel=\"stylesheet\" type=\"text/css\" />\n"; } } $out = preg_replace('#\\<\\/head\\>#is', $_ . "</head>\n", $out); unset($_, $key, $val, $url); } /** * Add JS */ if (array_count($this->_js_list) > 0) { $info = "\n\t\t<!-- :position DYNAMIC JS -->\n"; foreach ($this->_js_list as $pos => $item) { $_ = str_replace(':position', wasp_strtoupper($pos), "\n\t\t<!-- :position DYNAMIC JS -->\n"); if (array_count($item) > 0) { foreach ($item as $key => $val) { if (preg_match('/^http/is', $val)) { $_ .= "\t\t<script type=\"text/javascript\" src=\"{$val}\"></script>\n"; } else { $url = $this->getThemeUrl() . '/js/' . $val; $_ .= "\t\t<script type=\"text/javascript\" src=\"{$url}\"></script>\n"; } } $out = preg_replace("#\\<\\/{$pos}\\>#is", $_ . "</{$pos}>\n", $out); unset($_, $key, $val, $url); } } unset($pos, $item); } echo $this->getDebugInfo($out); }
public function anyAdd() { $confirm = $this->input->post('confirm'); $form = $this->input->post('form'); $errors = []; if (!empty($confirm) && $confirm == 'ok') { $validator = new \Wasp\Validator($form, $this->validation); if (!$validator->checkAll()) { $errors = $validator->getMessages(); } $check_user = $this->users->getByEmail($form['email']); $user_data = []; if (!empty($check_user->id)) { if (!isset($errors['email']) || !is_array($errors['email'])) { $errors['email'] = []; } $errors['email'][] = 'Такой пользователь уже есть'; } if (!is_alphanum($form['passwd1']) || !is_alphanum($form['passwd2']) || wasp_strlen($form['passwd1']) > 16 || wasp_strlen($form['passwd1']) < 6 || wasp_strlen($form['passwd2']) > 16 || wasp_strlen($form['passwd2']) < 6 || $form['passwd1'] != $form['passwd2']) { if (!isset($errors['passwd1']) || !is_array($errors['passwd1'])) { $errors['passwd1'] = []; } $errors['passwd1'][] = 'Неверное указан пароль'; } if (array_count($errors) == 0) { $current_user = $this->auth->getAuthUser(); $group_level = $this->users->getGroupLevel($form['group_id']); $passwd = password_crypt($form['passwd1']); $user_data['email'] = $form['email']; $user_data['password'] = $passwd; if ($this->users->groupIdExists($form['group_id']) && ($group_level < $current_user->group->level || $this->auth->isRoot())) { $user_data['group_id'] = intval($form['group_id']); $user_data['blocked'] = intval($form['blocked']); } if ($this->auth->isAdmin()) { foreach ($form as $key => $val) { if (!array_key_isset($key, $user_data)) { $user_data[$key] = $val; } } } $id = $this->users->create($user_data); redirect(['controller' => 'users', 'method' => 'edit', 'id' => $id, 'message' => 'Пользователь успешно добавлен в систему.']); } } $this->layout->useThemeCss('datepicker.css')->useThemeJs('bootstrap-datepicker.js', false); return $this->ui->assign('errors', $errors)->assign('form', $form)->assign('groups', $this->users->getGroups())->fetch('users/add'); }
/** * Protectedm method for check one rule * * @param string $key * @param mixed $value */ protected function _check($key, $value) { if (!array_key_isset($key, $this->rules)) { return false; } if (!is_scalar($value)) { return false; } $rules = $this->rules[$key]; if (is_callable($rules)) { return $rules($key, $value); } if (isset($rules['required']) && $rules['required'] == true && $value == '') { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['required']); return false; } if ((!isset($rules['required']) || $rules['required'] == false) && $value == '') { return true; } if (isset($rules['regexp']) && !empty($rules['regexp']) && !preg_match($rules['regexp'], $value, $tmp)) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['regexp']); return false; } else { if (isset($rules['validator'])) { $validator = 'is_' . $rules['validator']; if (!$validator($value)) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['regexp']); } } } if (isset($rules['maxlen']) && wasp_strlen($value) > intval($rules['maxlen'])) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['maxlen'], ['maxlen' => intval($rules['maxlen'])]); return false; } if (isset($rules['minlen']) && wasp_strlen($value) < intval($rules['minlen'])) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['minlen'], ['minlen' => intval($rules['minlen'])]); return false; } if (isset($rules['max'])) { if (!is_numeric($value)) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['numeric']); return false; } else { if ($value > $rules['max']) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['max'], ['max' => intval($rules['max'])]); return false; } } } if (isset($rules['min'])) { if (!is_numeric($value)) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['numeric']); return false; } else { if ($value < $rules['min']) { $this->messages[$key] = !empty($rules['message']) ? $rules['message'] : ufl($this->errors['min'], ['min' => intval($rules['min'])]); return false; } } } return true; }