/** * Установка системного сообщения * @static * * @param $msg текст сообщения * * @return void */ public static function add($msg, $type = 'info') { $msg = joosString::trim($msg); if ($msg != '') { if (joosCore::is_admin()) { $_s = session_id(); if (empty($_s)) { session_name(md5(JPATH_SITE)); session_start(); } } else { session_name(joosSession::session_cookie_name()); session_start(); } $_SESSION['joostina.mosmsg'] = $msg; } }
public function check() { $param = explode('?', $_SERVER['REQUEST_URI']); parse_str($param[1], $datas); if (isset($datas['user_name']) && joosString::trim($datas['user_name']) != '') { $user = new modelUsers(); $user->user_name = $datas['user_name']; $ret = $user->find() ? 0 : 1; $ret = preg_match(JUSER_NAME_REGEX, $datas['user_name']) ? $ret : false; echo $ret ? 'true' : 'false'; exit; } if (isset($datas['email']) && joosString::trim($datas['email']) != '') { $user = new modelUsers(); $user->email = $datas['email']; echo $user->find() ? 'false' : 'true'; exit; } }
public function prepend_meta_tag($name, $content) { $name = joosString::trim(htmlspecialchars($name, ENT_QUOTES, 'UTF-8')); $n = count(self::$data['meta']); for ($i = 0; $i < $n; $i++) { if (self::$data['meta'][$i][0] == $name) { $content = joosString::trim(htmlspecialchars($content, ENT_QUOTES, 'UTF-8')); self::$data['meta'][$i][1] = $content . self::$data['meta'][$i][1]; return; } } self::instance()->add_meta_tag($name, $content); }
private static function prepare_extra(joosModel $obj, array $extra_data) { if (self::$data === NULL) { $results = array(); $hidden_elements = array(); $wheres_filter = array('true'); $wheres_search = array(); foreach ($extra_data as $key => $value) { switch ($key) { case 'search': $results[] = joosHtml::label(array('for' => 'search_elements'), 'Поиск'); $search_value = joosSession::get_user_state_from_request("search-" . $obj->get_class_name(), 'search', false); $results[] = joosHtml::input(array('name' => 'search_elements', 'id' => 'search_elements'), $search_value); $hidden_elements[] = joosHtml::hidden('search', $search_value); if ($search_value !== false && joosString::trim($search_value) != '') { foreach ($value as $selected_value) { $wheres_search[] = sprintf('%s LIKE ( %s )', joosDatabase::instance()->get_name_quote($selected_value), joosDatabase::instance()->get_quoted("%" . $search_value . "%")); } } break; case 'filter': foreach ($value as $params_key => $params_value) { $field_name = $params_key; $field_title = $value[$field_name]['name']; $results[] = joosHtml::label(array('for' => 'filter_' . $field_name), $field_title); $datas_for_select = array(-1 => 'Всё сразу'); $datas_for_select += isset($value[$field_name]['call_from']) && is_callable($value[$field_name]['call_from']) ? call_user_func($value[$field_name]['call_from'], $obj, $params_key) : array(); $selected_value = joosSession::get_user_state_from_request('filter-' . '-' . $field_name . '-' . $obj->get_class_name(), $field_name, -1); $selected_value = $selected_value === '0' ? '0' : $selected_value; $results[] = joosHtml::dropdown(array('name' => 'filter_' . $field_name, 'data-obj-name' => $field_name, 'class' => 'filter_elements', 'selected' => $selected_value), $datas_for_select); $hidden_elements[] = joosHtml::hidden($field_name, $selected_value); if ($selected_value && $selected_value != -1 or $selected_value === '0') { $wheres_filter[] = sprintf('%s=%s', joosDatabase::instance()->get_name_quote($field_name), joosDatabase::instance()->get_quoted($selected_value)); } } break; case 'extrafilter': $datas_for_select = array(-1 => 'Всё сразу'); foreach ($value as $params_key => $params_value) { $field_name = $params_key; $datas_for_select += array($params_key => $value[$field_name]['name']); } $selected_value = joosSession::get_user_state_from_request("extrafilter-" . $obj->get_class_name(), 'filter_extrafilter', -1); $results[] = joosHtml::label(array('for' => 'filter_extrafilter'), 'Фильтр'); $results[] = joosHtml::dropdown(array('name' => 'filter_extrafilter_selector', 'class' => 'extrafilter_elements', 'options' => $datas_for_select, 'selected' => $selected_value)); $hidden_elements[] = joosHtml::hidden('filter_extrafilter', $selected_value); //self::$data_overload = ( $selected_value && isset($value[$selected_value]['call_from']) && is_callable($value[$selected_value]['call_from']) ) ? call_user_func($value[$selected_value]['call_from'], $obj) : array(); self::$data_overload = $selected_value && isset($value[$selected_value]['call_from']) && is_callable($value[$selected_value]['call_from']) ? $value[$selected_value]['call_from'] : array(); break; default: break; } } $wheres = array(implode(' AND ', $wheres_filter)); if (count($wheres_search) > 0) { $wheres[] = ' (' . implode(' OR ', $wheres_search) . ' )'; } self::$data = array('for_header' => $results, 'hidden_ellements' => implode("\n", $hidden_elements), 'wheres' => implode(' AND ', $wheres), 'data_overload' => self::$data_overload); } return self::$data; }
/** * Цензор текста, заменяет в тексте указанные слова * * @param string $str исходная строка * @param array $censored массив слов для замены * @param string $replacement текст, который будет выводиться в качестве замены * * @return string обработанный текст */ public static function text_censor($str, array $censored, $replacement = '') { $delim = '[-_\'\\"`(){}<>\\[\\]|!?@#%&,.:;^~*+=\\/ 0-9\\n\\r\\t]'; foreach ($censored as $badword) { if ($replacement != '') { $str = preg_replace("/({$delim})(" . str_replace('\\*', '\\w*?', preg_quote($badword, '/')) . ")({$delim})/iu", "\\1{$replacement}\\3", $str); } else { $str = preg_replace("/({$delim})(" . str_replace('\\*', '\\w*?', preg_quote($badword, '/')) . ")({$delim})/ieu", "'\\1'.str_repeat('#', strlen('\\2')).'\\3'", $str); } } return joosString::trim($str); }