/** * Process function * * @param obj $node */ private static function _process($node) { $occurance = []; $result = []; if ($node->childNodes != null) { foreach ($node->childNodes as $key => $child) { if (array_key_isset($child->nodeName, $occurance)) { $occurance[$child->nodeName]++; } else { $occurance[$child->nodeName] = 1; } } } if ($node->nodeType == XML_TEXT_NODE) { $result = html_entity_decode(htmlentities($node->nodeValue, ENT_COMPAT, 'UTF-8'), ENT_COMPAT, 'UTF-8'); } else { if ($node->nodeType == XML_CDATA_SECTION_NODE) { $result = html_entity_decode(htmlentities($node->nodeValue, ENT_COMPAT, 'UTF-8'), ENT_COMPAT, 'UTF-8'); } else { if ($node->hasChildNodes()) { $children = $node->childNodes; for ($i = 0; $i < $children->length; $i++) { $child = $children->item($i); if ($child->nodeName != '#text' && $child->nodeName != '#cdata-section') { if ($occurance[$child->nodeName] > 1) { $result[$child->nodeName][] = self::_process($child); } else { $result[$child->nodeName] = self::_process($child); } } else { if ($child->nodeName == '#cdata-section') { $text = self::_process($child); if (trim($text) != '') { // $result[$child->nodeName] = self::_process($child); $result['#text'] = (string) $text; } } else { if ($child->nodeName == '#text') { $text = self::_process($child); if (trim($text) != '') { // $result[$child->nodeName] = self::_process($child); $result[$child->nodeName] = (string) $text; } } } } } } if ($node->hasAttributes()) { $attributes = $node->attributes; if (!is_null($attributes)) { foreach ($attributes as $key => $attr) { $result['@' . $attr->name] = $attr->value; } } } } } return $result; }
public function __construct() { parent::__construct(); if (self::$_saved === null) { self::$_saved = false; } if (self::$_need_save === null) { self::$_need_save = false; } $tmp = input()->cookie(); if (array_count($tmp) > 0) { if (array_key_isset('PHPSESSID', $tmp)) { unset($tmp['PHPSESSID']); } if (array_count($tmp) > 0) { foreach ($tmp as $key => $val) { if (is_varible_name($key)) { if ($val != '') { $this->_properties[$key] = unserialize(@gzuncompress(base64_decode($val))); } else { $this->_properties[$key] = ''; } } } } } unset($tmp); }
/** * Метод-экшен по умолчанию * */ public function anyDefault() { $confirm = $this->input->post('confirm'); $form = $this->input->post('form'); $errors = []; $user = auth()->getAuthUser(); if (!empty($confirm) && $confirm == 'ok') { $validator = new \Wasp\Validator($form, $this->validation); if (!$validator->checkAll()) { $errors = $validator->getMessages(); } else { $profile = $user->profile; foreach ($profile->toArray() as $key => $val) { if (array_key_isset($key, $form)) { $profile->{$key} = $form[$key]; } } $profile->save(); redirect(['controller' => 'profile', 'method' => 'default', 'id' => $id]); } } $this->layout->useThemeCss('datepicker.css')->useThemeJs('bootstrap-datepicker.js', false); return $this->ui->assign('errors', $errors)->assign('user', $user)->assign('groups', Group::get())->fetch('profile/index.tpl'); }
/** * Установка текущего языка */ public function setCurrentLang($lang_id) { $lang_id = strtoupper($lang_id); if (array_key_isset($lang_id, $this->lagnuages)) { Cookie::mySelf()->set('LANG', $lang_id); } return $this; }
public function files($name = '', $xss = false) { if (!array_key_isset('FILES', $this->properties)) { return false; } if (empty($name)) { return $this->properties['FILES']; } if (!isset($this->properties['FILES'][$name])) { return false; } if (is_array($this->properties['FILES'][$name])) { foreach ($this->properties['FILES'][$name] as $key => $val) { if ($xss) { $this->properties['FILES'][$name][$key] = $this->_xss_clean($val); } else { $this->properties['FILES'][$name][$key] = $val; } } } else { return $xss ? $this->_xss_clean($this->properties['FILES'][$name]) : $this->properties['FILES'][$name]; } return $this->properties['FILES'][$name]; }
public function __unset($name) { if (array_key_isset($name, $this->_properties)) { unset($this->_properties[$name]); } }
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; }