Example #1
0
File: wxml.php Project: cruide/wasp
 /**
  * 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;
 }
Example #2
0
 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);
 }
Example #3
0
 /**
  * Метод-экшен по умолчанию
  * 
  */
 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');
 }
Example #4
0
File: i18n.php Project: cruide/wasp
 /**
  * Установка текущего языка
  */
 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;
 }
Example #5
0
 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];
 }
Example #6
0
 public function __unset($name)
 {
     if (array_key_isset($name, $this->_properties)) {
         unset($this->_properties[$name]);
     }
 }
Example #7
0
 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');
 }
Example #8
0
 /**
  * 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;
 }