本文整理汇总了PHP中mso_slug函数的典型用法代码示例。如果您正苦于以下问题:PHP mso_slug函数的具体用法?PHP mso_slug怎么用?PHP mso_slug使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了mso_slug函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: captcha_go
function captcha_go($args = array())
{
global $MSO;
# сама картинка формируется в img.php
# в ней мы передаем сессию, текущую страницу и время (против кэширования)
echo '
<div class="captcha"><label for="comments_captha">' . tf('Введите нижние символы') . '</label>
<input type="text" name="comments_captha" id="comments_captha" value="" maxlength="4" class="comments_captha"> <img src="' . getinfo('plugins_url') . 'captcha/img.php?image=' . $MSO->data['session']['session_id'] . '&page=' . mso_slug(mso_current_url()) . '&code=' . time() . '" alt="" title="' . tf('Защита от спама: введите только нижние символы') . '"> <span>' . t('(обязательно)') . '</span><br><br></div>
';
}
示例2: global_cache_key
function global_cache_key($dir = true)
{
$cache_key = $_SERVER['REQUEST_URI'];
$cache_key = str_replace('/', '-', $cache_key);
$cache_key = mso_slug(' ' . $cache_key);
if ($dir) {
$cache_key = 'html/' . $cache_key . '.html';
} else {
$cache_key = $cache_key . '.html';
}
return $cache_key;
}
示例3: admin_menu_menu
function admin_menu_menu($args = array())
{
global $admin_menu, $MSO;
$admin_url = getinfo('site_admin_url');
$nr = "\n";
$out = '';
if (count($MSO->data['uri_segment']) > 1) {
$cur_url2 = $MSO->data['uri_segment'][2];
// второй сегмент
# текущий урл строится из сегментов от второго до последнего
$cur_url = $MSO->data['uri_segment'];
$cur_url = array_slice($cur_url, 1);
$cur_url = implode('/', $cur_url);
if (!$cur_url) {
$cur_url = 'home';
}
} else {
$cur_url = 'home';
$cur_url2 = 'home';
}
// если меню не содержит подменю, то не выводим его
$admin_menu1 = $admin_menu;
foreach ($admin_menu1 as $key => $value) {
if (count($admin_menu1[$key]) < 2) {
unset($admin_menu1[$key]);
}
}
// pr($admin_menu1);
foreach ($admin_menu1 as $key => $value) {
$out .= $nr . '<ul class="admin-menu admin-menu-' . ($key ? $key : 'beginning') . '">';
$out .= $nr . '<li class="admin-menu-top"><a href="#" class="admin-menu-section">' . _mso_del_menu_pod($value['']) . '</a>';
if (count($value) > 1) {
$out .= $nr . ' <ul class="admin-submenu">';
foreach ($value as $url => $name) {
if ($value[''] == $name) {
continue;
}
if ($url == $cur_url or $url == $cur_url2) {
$selected = ' class="admin-menu-selected admin-menu-' . mso_slug($url) . '"';
} else {
$selected = ' class="admin-menu-' . mso_slug($url) . '"';
}
$out .= $nr . ' <li' . $selected . ' title="' . _mso_del_menu_pod($name) . '"><a href="' . $admin_url . $url . '">' . _mso_del_menu_pod($name) . '</a></li>';
}
$out .= $nr . ' </ul>';
}
$out .= $nr . ' </li>' . $nr . '</ul>' . $nr;
}
return $out;
}
示例4: last_pages_widget_custom
//.........这里部分代码省略.........
if ($arg['page_type']) {
$CI->db->where('page_type_name', $arg['page_type']);
}
$CI->db->join('page_type', 'page_type.page_type_id = page.page_type_id');
$CI->db->join('comments', 'comments.comments_page_id = page.page_id AND comments_approved = 1', 'left');
if ($arg['exclude_cat']) {
$CI->db->join('cat2obj', 'cat2obj.page_id = page.page_id', 'left');
$CI->db->where_not_in('cat2obj.category_id', $arg['exclude_cat']);
}
if ($arg['include_cat']) {
$CI->db->join('cat2obj', 'cat2obj.page_id = page.page_id', 'left');
$CI->db->where_in('cat2obj.category_id', $arg['include_cat']);
}
$CI->db->order_by($arg['sort'], $arg['sort_order']);
$CI->db->group_by('page.page_id');
$CI->db->group_by('comments_page_id');
$CI->db->limit($arg['count']);
$query = $CI->db->get();
if ($query->num_rows() > 0) {
$pages = $query->result_array();
require_once getinfo('common_dir') . 'category.php';
require_once getinfo('common_dir') . 'meta.php';
$all_cat = mso_cat_array_single();
// все рубрики
$out = '';
foreach ($pages as $key => $page) {
// метаполе превьюшки
if (strpos($arg['format'], '%IMG_PREV%') !== false) {
if ($img_prev = mso_get_meta($arg['img_prev'], 'page', $page['page_id'])) {
if (isset($img_prev[0]['meta_value']) and $img_prev[0]['meta_value']) {
$img_prev = '<img src="' . $img_prev[0]['meta_value'] . '" alt="" ' . $arg['img_prev_attr'] . '> ';
} else {
$img_prev = '<img src="' . $arg['img_prev_def'] . '" alt="" ' . $arg['img_prev_attr'] . '> ';
}
} else {
if ($arg['img_prev_def']) {
$img_prev = '<img src="' . $arg['img_prev_def'] . '" alt="" ' . $arg['img_prev_attr'] . '> ';
} else {
$img_prev = '';
}
}
} else {
$img_prev = '';
}
$out .= $arg['format'];
$out = str_replace('%TITLE%', mso_page_title(mso_slug($page['page_slug']), $page['page_title'], '', '', true, false), $out);
$out = str_replace('%URL%', getinfo('site_url') . 'page/' . mso_slug($page['page_slug']), $out);
$out = str_replace('%DATE%', mso_page_date($page['page_date_publish'], $arg['date_format'], '', '', false), $out);
if ($page['page_count_comments']) {
$comments_format = str_replace('%COUNT%', $page['page_count_comments'], $arg['comments_format']);
} else {
$comments_format = '';
}
$out = str_replace('%COMMENTS%', $comments_format, $out);
$page_content = $page['page_content'];
$page_content = mso_hook('content', $page_content);
$page_content = mso_hook('content_auto_tag', $page_content);
$page_content = mso_hook('content_balance_tags', $page_content);
$page_content = mso_hook('content_out', $page_content);
$out = str_replace('%TEXT%', mso_balance_tags(mso_auto_tag(mso_hook('content_complete', $page['page_content']))), $out);
if (strpos($arg['format'], '%TEXT_PREV%') !== false) {
$page_content = $page['page_content'];
$page_content = mso_hook('content', $page_content);
$page_content = mso_hook('content_auto_tag', $page_content);
$page_content = mso_hook('content_complete', $page_content);
$page_content = mso_str_word(strip_tags($page_content), $arg['max_words']) . ' ...';
$out = str_replace('%TEXT_PREV%', $page_content, $out);
}
# если есть cut, то обрабатываем и его
$page_content = str_replace('[xcut', '[cut', $page_content);
if (preg_match('/\\[cut(.*?)?\\]/', $page_content, $matches)) {
$page_content = explode($matches[0], $page_content, 2);
$page_content = $page_content[0];
$page_content = mso_hook('content_complete', $page_content);
}
$out = str_replace('%TEXT_CUT%', mso_balance_tags(mso_auto_tag($page_content)), $out);
$out = str_replace('%IMG_PREV%', $img_prev, $out);
if (is_type_slug('page', mso_slug($page['page_slug']))) {
$out = str_replace('<li>', '<li class="current_url_page">', $out);
}
if (isset($arg['include_cat'][0]) and is_page_cat($arg['include_cat'][0])) {
$out = str_replace('<li>', '<li class="current_url_cat">', $out);
}
if (isset($arg['include_cat'][0]) and is_type_slug('category', $all_cat[$arg['include_cat'][0]]['category_slug']) and in_array($page['page_id'], $all_cat[$arg['include_cat'][0]]['pages'])) {
$out = str_replace('<li>', '<li class="current_url_allcat">', $out);
}
}
$out = $arg['header'] . $arg['block_start'] . NR . $out . $arg['block_end'];
$out = str_replace('</li>', '<div class="clearfix"></div></li>', $out);
$out .= $arg['text_posle'];
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
// отметим текущую рубрику. Поскольку у нас к кэше должен быть весь список и не делать кэш для каждого url
// то мы просто перед отдачей заменяем текущий url на url с li.current_url
$current_url = getinfo('siteurl') . mso_current_url();
// текущий урл
$out = str_replace('<a href="' . $current_url . '">', '<a href="' . $current_url . '" class="current_url">', $out);
return $out;
}
}
示例5: mso_view_ini
//.........这里部分代码省略.........
// служебные замены
$mr = str_replace('&', '&', $mr);
$mr = str_replace('"', '"', $mr);
if (preg_match('|_serialize_|A', $mr)) {
$mr = preg_replace('|_serialize_|A', '', $mr, 1);
$mr = @unserialize($mr);
}
if (!is_array($mr)) {
$mr = array($mr);
}
} else {
$mr = array();
}
// $mr теперь массив!
$values = explode('#', $values);
if ($values) {
foreach ($values as $val) {
$ar = explode('||', $val);
if (isset($ar[0])) {
$mr1 = trim($ar[0]);
}
// ключ чекбокса
if (isset($ar[1])) {
$mr2 = trim($ar[1]);
} else {
$mr2 = $mr1;
}
if (in_array($mr1, $mr)) {
$checked = 'checked="checked"';
} else {
$checked = '';
}
//для каждого чекбокса свой ключ!
$mkey = $options_key . '_' . mso_slug($mr1) . '_m_s_o_' . $options_type;
$name_f1 = 'f_options[' . $mkey . ']';
$f .= '<label><input type="checkbox" name="' . $name_f . '[]" value="' . $mr1 . '" ' . $checked . '> ' . t($mr2) . '</label>' . $delimer . NR;
}
$f .= '<input type="hidden" name="f_all_checkbox[' . $options_key . '_m_s_o_' . $options_type . ']">' . NR;
}
} elseif ($type == 'radio') {
$values = explode('#', $values);
// все значения разделены #
if ($values) {
foreach ($values as $val) {
$ar = explode('||', $val);
if (isset($ar[0])) {
$mr1 = trim($ar[0]);
}
// ключ
if (isset($ar[1])) {
$mr2 = trim($ar[1]);
} else {
$mr2 = $mr1;
}
if ($value == trim($mr1)) {
$checked = 'checked="checked"';
} else {
$checked = '';
}
// преобразование в html
$mr2 = str_replace('_QUOT_', '"', $mr2);
$mr2 = str_replace('<', '<', $mr2);
$mr2 = str_replace('>', '>', $mr2);
$f .= '<label><input type="radio" name="' . $name_f . '" value="' . $mr1 . '" ' . $checked . '> ' . t($mr2) . '</label>' . $delimer . NR;
}
}
示例6: last_comments_widget_custom
function last_comments_widget_custom($options = array(), $num = 1)
{
if (!isset($options['count'])) {
$options['count'] = 5;
}
if (!isset($options['words'])) {
$options['words'] = 20;
}
if (!isset($options['maxchars'])) {
$options['maxchars'] = 20;
}
if (!isset($options['header'])) {
$options['header'] = '';
}
$options['count'] = (int) $options['count'];
if ($options['count'] < 1) {
$options['count'] = 5;
}
$options['words'] = (int) $options['words'];
if ($options['words'] < 1) {
$options['words'] = 20;
}
$options['maxchars'] = (int) $options['maxchars'];
if ($options['maxchars'] < 1) {
$options['maxchars'] = 20;
}
$cache_key = 'last_comments_widget_' . $num . mso_md5(serialize($options));
$k = mso_get_cache($cache_key, true);
if ($k) {
return $k;
}
// да есть в кэше
require_once getinfo('common_dir') . 'comments.php';
// функции комментариев
$comments = mso_get_comments(false, array('limit' => $options['count'], 'order' => 'desc'));
$out = '';
if ($comments) {
// сгруппируем все комментарии по записям
$arr_com_page = array();
$arr_com_page_title = array();
foreach ($comments as $comment) {
$arr_com_page[$comment['page_id']][$comment['comments_id']] = $comment;
$arr_com_page_title[$comment['page_id']] = $comment['page_title'];
}
// выводим по странично
foreach ($arr_com_page as $key => $comments) {
$out .= '<h5>' . $arr_com_page_title[$key] . '</h5>';
$comments = array_reverse($comments);
// чтобы комментарии были в привычном порядке сверху вниз
$out .= '<ul class="mso-widget-list">';
foreach ($comments as $comment) {
extract($comment);
if ($comment['comments_users_id']) {
$css_style_add = 'last_comment_users ' . ' mso-last-comment-users-' . $comment['comments_users_id'];
} elseif ($comment['comments_comusers_id']) {
$css_style_add = 'last_comment_comusers ' . ' mso-last-comment-comusers-' . $comment['comments_comusers_id'];
} else {
$css_style_add = 'last_comment_anonim';
}
$out .= '<li class="' . $css_style_add . '"><a href="' . getinfo('siteurl') . 'page/' . mso_slug($page_slug) . '#comment-' . $comments_id . '"><b>';
if ($comments_users_id) {
$out .= $users_nik;
} elseif ($comments_comusers_id) {
if ($comusers_nik) {
$out .= $comusers_nik;
} else {
$out .= t('Комментатор') . ' ' . $comusers_id;
}
} elseif ($comments_author_name) {
$out .= $comments_author_name;
} else {
$out .= ' ' . t('Аноним');
}
$comments_content_1 = strip_tags($comments_content);
// удалим тэги
$comments_content = mso_str_word($comments_content_1, $options['words']);
// ограничение на количество слов
// если старый и новый текст после обрезки разные, значит добавим в конце ...
if ($comments_content_1 != $comments_content) {
$comments_content .= '...';
}
// каждое слово нужно проверить на длину и если оно больше maxchars, то добавить пробел в wordwrap
$words = explode(' ', $comments_content);
foreach ($words as $key => $word) {
$words[$key] = mso_wordwrap($word, $options['maxchars'], ' ');
}
$comments_content = implode(' ', $words);
$out .= ' »</b> ' . strip_tags($comments_content) . '</a>';
$out .= '</li>' . NR;
}
$out .= '</ul>';
}
if ($options['header']) {
$out = $options['header'] . $out;
}
}
mso_add_cache($cache_key, $out, false, true);
// сразу в кэш добавим
return trim($out);
}
示例7: mso_slug
*/
$f_header = $post['f_header'];
if (isset($post['f_tags']) and $post['f_tags']) {
$f_tags = $post['f_tags'];
} else {
$f_tags = '';
}
if (isset($post['f_menu_order'])) {
$page_menu_order = (int) $post['f_menu_order'];
} else {
$page_menu_order = '';
}
if (isset($post['f_slug']) and $post['f_slug']) {
$f_slug = $post['f_slug'];
} else {
$f_slug = mso_slug($f_header);
}
if (isset($post['f_password']) and $post['f_password']) {
$f_password = $post['f_password'];
} else {
$f_password = '';
}
if (isset($post['f_cat'])) {
$f_cat = $post['f_cat'];
} else {
$f_cat = array();
}
// все мета
$f_options = '';
if (isset($post['f_options'])) {
foreach ($post['f_options'] as $key => $val) {
示例8: mso_slug
$old_link = '';
}
if (!isset($item['wp']['post_name'])) {
$slug = mso_slug($item['title']);
} else {
$slug = urldecode($item['wp']['post_name']);
}
$slug_new = mso_slug($slug);
// если $slug = числу, то нужно его заменить на заголовок
$i = (int) $slug;
if ((string) $slug != (string) $i) {
$i = false;
}
// slug не число
if ($i) {
$slug_new = mso_slug($item['title']);
}
$comment_allow = $item['wp']['comment_status'] == 'open' ? '1' : '0';
if (!isset($item['content'])) {
$content = '';
} else {
$content = $item['content'];
}
$content = str_replace(chr(10), "<br>", $content);
$content = str_replace(chr(13), "", $content);
$content = str_replace('<!--more-->', '[cut]', $content);
$post_date = $item['wp']['post_date'];
if ($post_date == '0000-00-00 00:00:00') {
$post_date = date('Y-m-d H:i:s');
}
$data = array('page_id_autor' => $MSO->data['session']['users_id'], 'page_title' => $item['title'], 'page_content' => $content, 'page_status' => $status, 'page_type_id' => $page_type_id, 'page_slug' => $slug_new, 'page_comment_allow' => $comment_allow, 'page_tags' => $tag, 'page_date_publish' => $post_date, 'page_id_cat' => implode(',', $cat1));
示例9: tf
if ($f = mso_page_foreach('comments-do')) {
require $f;
} else {
echo '<h1 class="comments">' . tf('Последние комментарии') . '</h1>';
echo '<p class="info"><a href="' . getinfo('siteurl') . 'comments/feed">' . tf('Подписаться по RSS') . '</a>';
echo '<br><a href="' . getinfo('siteurl') . 'users">' . tf('Список комментаторов') . '</a></p>';
}
echo '<div class="comments">';
if ($comments) {
echo '<ul>';
foreach ($comments as $comment) {
if ($f = mso_page_foreach('comments')) {
require $f;
// подключаем кастомный вывод
continue;
// следующая итерация
}
extract($comment);
echo '<li><span><a href="' . getinfo('siteurl') . 'page/' . mso_slug($page_slug) . '#comment-' . $comments_id . '" name="comment-' . $comments_id . '">' . $page_title . '</a>';
echo ' | ' . $comments_url;
echo '</span><br>' . $comments_date;
echo '</span><br>' . $comments_content;
echo '</li>';
// pr($comment);
}
echo '</ul>';
}
echo '</div>';
}
echo NR . '</div><!-- class="type type_comments" -->' . NR;
require getinfo('template_dir') . 'main-end.php';
示例10: mso_segment
*/
# подготовка данных
$min_search_chars = 2;
// минимальное кол-во симоволов при поиске
$search = mso_segment(2);
$search = mso_strip(strip_tags($search));
$searh_to_text = mb_strtolower($search, 'UTF8');
if ($f = mso_page_foreach('search-head-meta')) {
require $f;
} else {
mso_head_meta('title', $search);
}
$search_len = true;
// поисковая фраза более 2 символов
// параметры для получения страниц
if (!$search or $search_len = strlen(mso_slug($search)) < $min_search_chars) {
$search = tf('Поиск');
$pages = false;
// нет страниц
$categories = false;
// нет рубрик
$tags = false;
// нет меток
} else {
$par = array('limit' => 7, 'cut' => false, 'type' => false);
// подключаем кастомный вывод, где можно изменить массив параметров $par для своих задач
if ($f = mso_page_foreach('search-mso-get-pages')) {
require $f;
}
$pages = mso_get_pages($par, $pagination);
// получим все - второй параметр нужен для сформированной пагинации
示例11: mso_get_comuser
function mso_get_comuser($id = 0, $args = array())
{
global $MSO;
if (!$id) {
// не указан id, получаем его из сессии
if (isset($MSO->data['session']['comuser']) and $MSO->data['session']['comuser']) {
$id = $MSO->data['session']['comuser']['comusers_id'];
} else {
$id = mso_segment(2);
}
// или сегмент в url
}
if (!$id) {
return array();
}
// нет номера, выходим
if (!is_numeric($id)) {
return array();
}
// если id указан не номером, выходим
if (!isset($args['limit'])) {
$args['limit'] = 20;
}
if (!isset($args['tags'])) {
$args['tags'] = '<p><img><strong><em><i><b><u><s><font><pre><code><blockquote>';
}
if (!isset($args['order'])) {
$args['order'] = 'comments_date';
}
if (!isset($args['asc'])) {
$args['asc'] = 'desc';
}
$CI =& get_instance();
$CI->db->select('comusers.*, COUNT(comments_comusers_id) as comusers_count_comment_real');
$CI->db->from('comusers');
$CI->db->where('comusers_id', $id);
$CI->db->limit(1);
// отдавать все комменты, включая и неотмодерированные
//$CI->db->where('comments.comments_approved', '1');
$CI->db->join('comments', 'comusers.comusers_id = comments.comments_comusers_id', 'left');
$CI->db->group_by('comments_comusers_id');
$query = $CI->db->get();
if ($query->num_rows() > 0) {
$comuser = $query->result_array();
// данные комюзера
// pr($comuser);
$comuser_count_comment_first = $comuser[0]['comusers_count_comments'];
// первоначальное значание колво комментариев
// подсоединим к нему [comments] - все его комментарии
$CI->db->select('comments.*, page.page_id, page.page_title, page.page_slug');
$CI->db->from('comments');
$CI->db->where('comments_comusers_id', $id);
// $CI->db->where('page.page_status', 'publish');
// $CI->db->where('page_date_publish <', date('Y-m-d H:i:s'));
$CI->db->where('comments.comments_approved', '1');
$CI->db->join('page', 'page.page_id = comments.comments_page_id');
$CI->db->order_by('comments_date', $args['asc']);
if ($args['limit']) {
$CI->db->limit($args['limit']);
}
$query = $CI->db->get();
$comments = array();
// все комменты
if ($query->num_rows() > 0) {
// нужно обработать тексты комментариев на предмет всяких хуков и лишних тэгов
$comments = $query->result_array();
foreach ($comments as $key => $comment) {
$comments[$key]['comments_content'] = mso_comments_content($comment['comments_content']);
}
$comuser[0]['comments'] = $comments;
// $comuser[0]['comments'] = $query->result_array();
$comuser[0]['comusers_count_comments'] = count($comments);
} else {
$comuser[0]['comments'] = array();
}
if ($comuser_count_comment_first != count($comments)) {
mso_comuser_set_count_comment($id, count($comments));
}
// в секцию meta добавим все метаполя данного юзера
$CI->db->select('meta_key, meta_value');
$CI->db->from('meta');
$CI->db->where('meta_table', 'comusers');
$CI->db->where('meta_id_obj', $id);
$query = $CI->db->get();
if ($query->num_rows() > 0) {
// переделаем полученный массив в key = value
foreach ($query->result_array() as $val) {
$comuser[0]['comusers_meta'][$val['meta_key']] = $val['meta_value'];
}
} else {
$comuser[0]['comusers_meta'] = array();
}
// от вских гадостей
$comuser[0]['comusers_url'] = mso_xss_clean($comuser[0]['comusers_url']);
if ($comuser[0]['comusers_url'] and strpos($comuser[0]['comusers_url'], 'http://') === false) {
$comuser[0]['comusers_url'] = 'http://' . $comuser[0]['comusers_url'];
}
$comuser[0]['comusers_msn'] = mso_xss_clean($comuser[0]['comusers_msn']);
// twitter
$comuser[0]['comusers_msn'] = mso_slug(str_replace('@', '', $comuser[0]['comusers_msn']));
//.........这里部分代码省略.........
示例12: mso_upload
function mso_upload($config_library = array(), $field_userfile = 'f_userfile', $r = array())
{
$CI =& get_instance();
$CI->load->library('upload', $config_library);
$CI->upload->initialize($config_library);
// если была отправка файла, то нужно заменить поле имени с русского на что-то другое
// это ошибка при копировании на сервере - он не понимает русские буквы
if (isset($_FILES[$field_userfile]['name'])) {
$f_temp = $_FILES[$field_userfile]['name'];
// оставим только точку
$f_temp = str_replace('.', '__mso_t__', $f_temp);
$f_temp = mso_slug($f_temp);
// остальное как обычно mso_slug
$f_temp = str_replace('__mso_t__', '.', $f_temp);
$ext = str_replace('.', '', strrchr($f_temp, '.'));
// расширение файла
if ($f_temp == '.' . $ext) {
// имя файла состоит только из расширения «.jpg»
$f_temp = '1' . $f_temp;
}
// добавляем к нему единицу
$_FILES[$field_userfile]['name'] = $f_temp;
}
$res = $CI->upload->do_upload($field_userfile);
if (!isset($r['message1'])) {
$r['message1'] = '<div class="update">' . t('Загрузка выполнена') . '</div>';
}
if (!isset($r['message2'])) {
$r['message2'] = '<div class="error">' . t('Не удалось перименовать файл в нижний регистр') . '</div>';
}
// описание файла
if (!isset($r['userfile_title'])) {
$r['userfile_title'] = false;
}
// файл, где хранится описание
if (!isset($r['fn_mso_descritions'])) {
$r['fn_mso_descritions'] = false;
}
// нужно ли менять размер
if (!isset($r['userfile_resize'])) {
$r['userfile_resize'] = true;
}
if (!isset($r['userfile_resize_size'])) {
$r['userfile_resize_size'] = false;
}
// какой размер
// водяной знак
if (!isset($r['userfile_water'])) {
$r['userfile_water'] = false;
}
// нужен ли водяной знак
if (!isset($r['userfile_water_file'])) {
$r['userfile_water_file'] = false;
}
// файл водяного знака
if (!isset($r['water_type'])) {
$r['water_type'] = 1;
}
// тип водяного знака
// миниатюры всегда хранятся в подкаталоге mini
if (!isset($r['userfile_mini'])) {
$r['userfile_mini'] = true;
}
// делать миниатюру?
if (!isset($r['userfile_mini_size'])) {
$r['userfile_mini_size'] = false;
}
// размер миниатюры
if (!isset($r['mini_type'])) {
$r['mini_type'] = 1;
}
// тип миниатюры
// превьюхи всегда хранятся в подкаталоге _mso_i
if (!isset($r['prev_size'])) {
$r['prev_size'] = 100;
}
// размер превьюхи
if ($res) {
echo $r['message1'];
// если это файл картинки, то нужно сразу сделать скриншот маленький в _mso_i 100px, который будет выводиться в
// списке файлов
$up_data = $CI->upload->data();
// файл нужно поменять к нижнему регистру
if ($up_data['file_name'] != strtolower($up_data['file_name'])) {
// переименуем один раз
if (rename($up_data['full_path'], $up_data['file_path'] . strtolower('__' . $up_data['file_name']))) {
// потом второй в уже нужный - это из-за бага винды
rename($up_data['file_path'] . strtolower('__' . $up_data['file_name']), $up_data['file_path'] . strtolower($up_data['file_name']));
$up_data['file_name'] = strtolower($up_data['file_name']);
$up_data['full_path'] = $up_data['file_path'] . $up_data['file_name'];
// echo '<div class="update">' . $up_data['full_path'] . $up_data['file_name'] . '</div>';
} else {
echo $r['message2'];
}
}
// если указано описание файла и файл, где это описание хранится
if ($r['userfile_title'] and $r['fn_mso_descritions']) {
$fn_descr = trim(strip_tags($r['userfile_title']));
// описание файла
$fn_descr = str_replace('"', '', $fn_descr);
//.........这里部分代码省略.........
示例13: sitemap
function sitemap($arg = '')
{
if (mso_segment(2) == 'cat') {
return sitemap_cat($arg);
}
global $MSO;
// кэш строим по url, потому что у он меняется от пагинации
$cache_key = 'sitemap' . serialize($MSO->data['uri_segment']);
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$options = mso_get_option('plugin_sitemap', 'plugins', array());
// получаем опции
if (!isset($options['limit'])) {
$options['limit'] = 30;
} else {
$options['limit'] = (int) $options['limit'];
}
if ($options['limit'] < 2) {
$options['limit'] = 30;
}
$out = '';
// параметры для получения страниц
$par = array('limit' => $options['limit'], 'custom_type' => 'home', 'content' => false, 'cat_order' => 'category_id_parent', 'cat_order_asc' => 'asc');
if ($f = mso_page_foreach('sitemap-mso-get-pages')) {
require $f;
}
$pages = mso_get_pages($par, $pagination);
// получим все
if ($pages) {
$out .= '<div class="page_content"><div class="sitemap">' . NR . mso_hook('sitemap_do');
$out .= '<div class="sitemap-link"><a href="' . getinfo('siteurl') . 'sitemap/cat">' . tf('Группировка по рубрикам') . '</a>' . NR . '</div>';
$first = true;
foreach ($pages as $page) {
$date = mso_date_convert('m/Y', $page['page_date_publish']);
if ($first) {
$out .= '<h3>' . $date . '</h3>' . NR . '<ul>' . NR;
$first = false;
} elseif ($date1 != $date) {
$out .= '</ul>' . NR . '<h3>' . $date . '</h3>' . NR . '<ul>' . NR;
}
$slug = mso_slug($page['page_slug']);
$out .= '<li>' . mso_date_convert('d', $page['page_date_publish']) . ': <a href="' . getinfo('siteurl') . 'page/' . $slug . '" title="' . htmlspecialchars($page['page_title']) . '">' . htmlspecialchars($page['page_title']) . '</a>';
if ($page['page_categories']) {
$out .= ' <span>(' . mso_page_cat_link($page['page_categories'], ' → ', '', '', false) . ')</span>';
}
# синонимы ссылок
/*
. ' ('
. '<a href="' . getinfo('siteurl') . $slug . '" title="slug: ' . $slug . '">slug</a>, '
. '<a href="' . getinfo('siteurl') . 'page/' . $page['page_id'] . '" title="page: ' . $page['page_id'] . '">page: ' . $page['page_id'] . '</a>, '
. '<a href="' . getinfo('siteurl') . $page['page_id'] . '" title="id: ' . $page['page_id'] . '">id: ' . $page['page_id'] . '</a>)'
*/
# /синонимы ссылок
$out .= '</li>' . NR;
$date1 = $date;
}
$out .= '</ul>' . NR . mso_hook('sitemap_posle') . '</div></div>' . NR;
}
$pagination['type'] = '';
ob_start();
mso_hook('pagination', $pagination);
$out .= ob_get_contents();
ob_end_clean();
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
}
示例14: mso_show_sidebar
function mso_show_sidebar($sidebar = '1', $block_start = '<div class="widget widget_[NUMW] widget_[SB]_[NUMW] [FN] [FN]_[NUMF]"><div class="w0"><div class="w1">', $block_end = '</div><div class="w2"></div></div></div>', $echo = true)
{
global $MSO, $page;
// чтобы был доступ к параметрам страниц в условиях виджетов
static $num_widget = array();
// номер виджета по порядку в одном сайдбаре
$widgets = mso_get_option('sidebars-' . $sidebar, 'sidebars', array());
$out = '';
if ($widgets) {
foreach ($widgets as $widget) {
$usl_res = 1;
// предполагаем, что нет условий, то есть всегда true
// имя виджета может содержать номер через пробел
$arr_w = explode(' ', $widget);
// в массив
if (sizeof($arr_w) > 1) {
$widget = trim($arr_w[0]);
// первый - функция
$num = trim($arr_w[1]);
// второй - номер виджета
if (isset($arr_w[2])) {
$u = $arr_w;
// поскольку у нас разделитель пробел, то нужно до конца все подбить в одну строчку
$u[0] = $u[1] = '';
$usl = trim(implode(' ', $u));
// текст условия, is_type('home') or is_type('category')
$usl = 'return ( ' . $usl . ' ) ? 1 : 0;';
$usl_res = eval($usl);
// выполяем
if ($usl_res === false) {
$usl_res = 1;
}
// возможно произошла ошибка
}
} else {
$num = 0;
// номер виджета не указан, значит 0
}
// номер функции виджета может быть не только числом, но и текстом
// если текст, то нужно его преобразовать в slug, чтобы исключить
// некоректную замену [NUMF] для стилей
$num = mso_slug($num);
// двойной - заменим на один - защита id в форме админки
$num = str_replace('--', '-', $num);
if (function_exists($widget) and $usl_res === 1) {
if ($temp = $widget($num)) {
if (isset($num_widget[$sidebar]['numw'])) {
$numw = ++$num_widget[$sidebar]['numw'];
$num_widget[$sidebar]['numw'] = $numw;
} else {
$numw = $num_widget[$sidebar]['numw'] = 1;
}
$st = str_replace('[FN]', $widget, $block_start);
// название функции виджета
$st = str_replace('[NUMF]', $num, $st);
// номер функции
$st = str_replace('[NUMW]', $numw, $st);
//
$st = str_replace('[SB]', $sidebar, $st);
// номер сайдбара
$en = str_replace('[FN]', $widget, $block_end);
$en = str_replace('[NUMF]', $num, $en);
$en = str_replace('[NUMW]', $numw, $en);
$en = str_replace('[SB]', $sidebar, $en);
// обрамим содержимое виджета в div.widget-content
/*
if (stripos($temp, mso_get_val('widget_header_end', '</span></h2>')) !== false)
{
// есть вхождение заголовка виджета <h2>
$temp = str_replace(mso_get_val('widget_header_end', '</span></h2>'), mso_get_val('widget_header_end', '</span></h2>') . '<div class="widget-content">', $temp);
$en = '</div>' . $en;
}
else
{
$temp = '<div class="widget-content">' . $temp . '</div>';
}
*/
$out .= $st . $temp . $en;
}
}
}
if ($echo) {
echo $out;
} else {
return $out;
}
}
}
示例15: array
<?php
// mso_hook('widgets_show_form');
// pr($MSO->sidebars);
$error = '';
$all_name_sidebars = array();
// все сайдбары
$form = '';
if ($MSO->sidebars) {
// есть сайдбары
foreach ($MSO->sidebars as $name => $sidebar) {
// у сайддара уже может быть определены виджеты - считываем их из опций
// потому что мы их будем там хранить
// это простой массив с именами виджетов
$options = mso_get_option('sidebars-' . mso_slug($name), 'sidebars', array());
$count_rows = count($options) + 1;
if ($count_rows < 5) {
$count_rows = 5;
}
$options = implode("\n", $options);
// разделим по строкам
$form .= '<h2>' . $sidebar['title'] . ':</h2>';
$form .= '<textarea class="admin_sidebars" id="f_sidebars[' . $name . ']" name="f_sidebars[' . $name . ']" rows="' . $count_rows . '">';
$form .= htmlspecialchars($options);
$form .= '</textarea>';
$all_name_sidebars[$name] = $sidebar['title'];
}
} else {
$error .= '<div class="error">' . t('Сайдбары не определены. Обычно они регистрируются в файле <b>functions.php</b> вашего шаблона. Например:') . ' <br><b>mso_register_sidebar(\'1\', \'' . t('Первый сайдбар') . '\');</b></div>';
}