本文整理汇总了PHP中mso_get_cache函数的典型用法代码示例。如果您正苦于以下问题:PHP mso_get_cache函数的具体用法?PHP mso_get_cache怎么用?PHP mso_get_cache使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了mso_get_cache函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parents_out_way_to
function parents_out_way_to($page_id = 0)
{
$cache_key = 'parents_out_way_to' . $page_id;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$r = '';
$CI =& get_instance();
$CI->db->select('page_id, page_id_parent, page_title, page_slug');
$CI->db->where('page_id', $page_id);
$CI->db->order_by('page_menu_order');
$query = $CI->db->get('page');
$result = $query->result_array();
if ($result) {
foreach ($result as $key => $page2) {
extract($page2);
$r = $page_title;
if ($page_id_parent > 0) {
$parents = parents_out_way_parents($page_id_parent);
if ($parents) {
$r = $parents . ' <span class="arr">→</span> ' . $page_title;
}
}
}
}
mso_add_cache($cache_key, $r);
// в кэш
return $r;
}
示例2: authors_widget_custom
function authors_widget_custom($options = array(), $num = 1)
{
// кэш
$cache_key = 'authors_widget_custom' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$out = '';
if (!isset($options['header'])) {
$options['header'] = t('Авторы');
}
// получаем всех авторов
$CI =& get_instance();
$CI->db->select('users_nik, users_id');
$CI->db->order_by('users_nik');
$query = $CI->db->get('users');
if ($query->num_rows() > 0) {
$users = $query->result_array();
$out = '';
foreach ($users as $user) {
$out .= NR . '<li><a href="' . getinfo('siteurl') . 'author/' . $user['users_id'] . '">' . $user['users_nik'] . '</a></li>';
}
if ($out) {
$out = $options['header'] . '<ul class="mso-widget-list">' . $out . '</ul>' . NR;
}
}
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
}
示例3: links_widget_custom
function links_widget_custom($options = array(), $num = 1)
{
// кэш
$cache_key = 'links_widget_custom' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$out = '';
if (!isset($options['header'])) {
$options['header'] = '';
}
if (isset($options['links'])) {
$links = explode("\n", $options['links']);
// разбиваем по строкам
foreach ($links as $row) {
$ar_link = explode('|', $row);
// разбиваем по |
// всего должно быть 5 элементов
if (isset($ar_link[0]) and trim($ar_link[0])) {
$href = trim($ar_link[0]);
// адрес
if ($href and isset($ar_link[1]) and trim($ar_link[1])) {
$title = trim($ar_link[1]);
// название
if (isset($ar_link[2]) and trim($ar_link[2])) {
$descr = '<div>' . trim($ar_link[2]) . '</div>';
} else {
$descr = '';
}
if (isset($ar_link[3]) and trim($ar_link[3])) {
$noindex1 = '';
$noindex2 = '';
$nofollow = ' rel="nofollow"';
} else {
$noindex1 = $noindex2 = $nofollow = '';
}
if (isset($ar_link[4]) and trim($ar_link[4])) {
$blank = ' target="_blank"';
} else {
$blank = '';
}
// обычный вывод списком
$out .= NR . '<li>' . $noindex1 . '<a href="' . $href . '" title="' . htmlspecialchars($title) . '"' . $nofollow . $blank . '>' . $title . '</a>' . $descr . $noindex2 . '</li>';
}
}
}
}
if ($out) {
$out = $options['header'] . NR . '<ul class="mso-widget-list">' . $out . NR . '</ul>' . NR;
}
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
}
示例4: page_comments_widget_custom
function page_comments_widget_custom($options = array(), $num = 1)
{
// кэш
$cache_key = 'page_comments_widget_custom' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$out = '';
if (!isset($options['header'])) {
$options['header'] = '';
}
if (!isset($options['limit'])) {
$options['limit'] = 10;
}
if (!isset($options['format'])) {
$options['format'] = '[A][TITLE][/A] <sup>[COUNT]</sup>';
}
$CI =& get_instance();
$CI->db->select('page_slug, page_title, COUNT(comments_id) AS page_count_comments', false);
$CI->db->from('page');
$CI->db->where('page_date_publish <', date('Y-m-d H:i:s'));
// $CI->db->where('page_date_publish < ', 'NOW()', false);
$CI->db->where('page_status', 'publish');
$CI->db->join('comments', 'comments.comments_page_id = page.page_id AND comments_approved = 1', 'left');
$CI->db->order_by('page_count_comments', 'desc');
$CI->db->limit($options['limit']);
$CI->db->group_by('page.page_id');
$CI->db->group_by('comments_page_id');
$query = $CI->db->get();
if ($query->num_rows() > 0) {
$pages = $query->result_array();
$link = '<a href="' . getinfo('siteurl') . 'page/';
$out .= '<ul class="mso-widget-list">' . NR;
foreach ($pages as $page) {
if ($page['page_count_comments'] > 0) {
$out1 = $options['format'];
$out1 = str_replace('[TITLE]', $page['page_title'], $out1);
$out1 = str_replace('[COUNT]', $page['page_count_comments'], $out1);
$out1 = str_replace('[A]', $link . $page['page_slug'] . '" title="' . tf('Комментариев: ') . $page['page_count_comments'] . '">', $out1);
$out1 = str_replace('[/A]', '</a>', $out1);
$out .= '<li>' . $out1 . '</li>' . NR;
}
}
$out .= '</ul>' . NR;
if ($options['header']) {
$out = $options['header'] . $out;
}
}
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
}
示例5: global_cache_start
function global_cache_start($arg = array())
{
if ($k = mso_get_cache(global_cache_key(), true)) {
// да есть в кэше
$CI =& get_instance();
$mq = $CI->db->query_count;
// колво sql-запросов
$k = str_replace('<!--global_cache_footer-->', ' | Cache ON (' . $mq . 'sql)', $k);
echo $k;
return true;
}
ob_start();
return false;
}
示例6: catclouds_widget_custom
function catclouds_widget_custom($options = array(), $num = 1)
{
// кэш
$cache_key = 'catclouds_widget_custom' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
// формат вывода %SIZE% %URL% %TAG% %COUNT%
// параметры $min_size $max_size $block_start $block_end
// сортировка
$out = '';
if (!isset($options['header'])) {
$options['header'] = '';
}
if (!isset($options['block_start'])) {
$options['block_start'] = '<div class="catclouds">';
}
if (!isset($options['block_end'])) {
$options['block_end'] = '</div>';
}
if (!isset($options['min_size'])) {
$min_size = 90;
} else {
$min_size = (int) $options['min_size'];
}
if (!isset($options['max_size'])) {
$max_size = 230;
} else {
$max_size = (int) $options['max_size'];
}
if (!isset($options['cat_id'])) {
$cat_id = 0;
} else {
$cat_id = (int) $options['cat_id'];
}
if (!isset($options['format'])) {
$options['format'] = '<span style="font-size: %SIZE%%"><a href="%URL%">%CAT%</a><sub style="font-size: 7pt;">%COUNT%</sub></span>';
}
if (!isset($options['sort'])) {
$sort = 0;
} else {
$sort = (int) $options['sort'];
}
$url = getinfo('siteurl') . 'category/';
require_once getinfo('common_dir') . 'category.php';
// функции мета
$all_cat = mso_cat_array_single('page', 'category_name', 'ASC', 'blog');
$catcloud = array();
foreach ($all_cat as $key => $val) {
if ($cat_id) {
// выводим саму рубрику и всех её детей
if ($val['category_id'] == $cat_id or $val['category_id_parent'] == $cat_id) {
if (count($val['pages']) > 0) {
// кол-во страниц в этой рубрике > 0
$catcloud[$val['category_name']] = array('count' => count($val['pages']), 'slug' => $val['category_slug']);
}
}
} else {
if (count($val['pages']) > 0) {
// кол-во страниц в этой рубрике > 0
$catcloud[$val['category_name']] = array('count' => count($val['pages']), 'slug' => $val['category_slug']);
}
}
}
asort($catcloud);
$min = reset($catcloud);
$min = $min['count'];
$max = end($catcloud);
$max = $max['count'];
if ($max == $min) {
$max++;
}
// сортировка перед выводом
if ($sort == 0) {
arsort($catcloud);
} elseif ($sort == 1) {
asort($catcloud);
} elseif ($sort == 2) {
ksort($catcloud);
} elseif ($sort == 3) {
krsort($catcloud);
} else {
arsort($catcloud);
}
// по умолчанию
foreach ($catcloud as $cat => $ar) {
$count = $ar['count'];
$slug = $ar['slug'];
$font_size = round(($count - $min) / ($max - $min) * ($max_size - $min_size) + $min_size);
$af = str_replace(array('%SIZE%', '%URL%', '%CAT%', '%COUNT%'), array($font_size, $url . $slug, $cat, $count), $options['format']);
$out .= $af . ' ';
}
if ($out) {
$out = $options['header'] . $options['block_start'] . $out . $options['block_end'];
}
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
//.........这里部分代码省略.........
示例7: last_pages_unit_widget_custom
function last_pages_unit_widget_custom($arg = array(), $num = 1)
{
if (!isset($arg['header'])) {
$arg['header'] = mso_get_val('widget_header_start', '<div class="mso-widget-header"><span>') . t('Последние записи') . mso_get_val('widget_header_end', '</span></div>');
}
if (!isset($arg['cache_time'])) {
$arg['cache_time'] = 0;
}
if (!isset($arg['prefs'])) {
$arg['prefs'] = '';
}
$out = '';
$cache_key = 'last_pages_unit_widget-' . serialize($arg) . '-' . $num;
if ($arg['cache_time'] > 0 and $out = mso_get_cache($cache_key)) {
return $out;
# да есть в кэше
}
$units = mso_section_to_array('[unit]' . $arg['prefs'] . '[/unit]', '!\\[unit\\](.*?)\\[\\/unit\\]!is');
ob_start();
if ($units and isset($units[0]) and $units[0]) {
$UNIT = $units[0];
require dirname(realpath(__FILE__)) . '/last-pages.php';
}
$out = $arg['header'] . ob_get_clean();
if ($arg['cache_time'] > 0) {
mso_add_cache($cache_key, $out, $arg['cache_time'] * 60);
}
return $out;
}
示例8: page_views_widget_custom
function page_views_widget_custom($options = array(), $num = 1)
{
// кэш
$cache_key = 'page_views_widget_custom' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$out = '';
if (!isset($options['header'])) {
$options['header'] = '';
}
if (!isset($options['limit'])) {
$options['limit'] = 10;
}
if (!isset($options['page_type'])) {
$options['page_type'] = 0;
}
if (!isset($options['format'])) {
$options['format'] = '[A][TITLE][/A] <sup>[COUNT]</sup>';
}
# получаем все записи как есть
# в полученном массиве меняем общее кол-во прочтений на кол-во прочтений в сутки
# сортируем массив по новомк значению
$curdate = time();
$CI =& get_instance();
$CI->db->select('page_slug, page_title, page_id, page_view_count, page_date_publish');
$CI->db->where('page_status', 'publish');
$CI->db->where('page_view_count > ', '0');
if ($options['page_type']) {
$CI->db->where('page_type_id', $options['page_type']);
}
$CI->db->where('page_date_publish <', date('Y-m-d H:i:s'));
$CI->db->order_by('page_id', 'desc');
$query = $CI->db->get('page');
if ($query->num_rows() > 0) {
$pages = $query->result_array();
foreach ($pages as $key => $val) {
// если еще сутки не прошли, то ставим общее колво прочтений
if ($curdate - strtotime($val['page_date_publish']) > 86400) {
$pages[$key]['sutki'] = round($val['page_view_count'] / ($curdate - strtotime($val['page_date_publish'])) * 86400);
} else {
$pages[$key]['sutki'] = $val['page_view_count'];
}
}
usort($pages, 'page_views_cmp');
// отсортируем по ['sutki']
// сам вывод
$link = '<a href="' . getinfo('siteurl') . 'page/';
$i = 1;
foreach ($pages as $page) {
if ($page['sutki'] > 0) {
if ($i > $options['limit']) {
break;
}
// лимит
$out1 = $options['format'];
$out1 = str_replace('[TITLE]', $page['page_title'], $out1);
$out1 = str_replace('[COUNT]', $page['sutki'], $out1);
$out1 = str_replace('[ALLCOUNT]', $page['page_view_count'], $out1);
$out1 = str_replace('[A]', $link . $page['page_slug'] . '" title="' . tf('Просмотров в сутки: ') . $page['sutki'] . '">', $out1);
$out1 = str_replace('[/A]', '</a>', $out1);
$out .= '<li>' . $out1 . '</li>' . NR;
$i++;
} else {
break;
}
// всё
}
if ($out) {
$out = '<ul class="mso-widget-list">' . NR . $out . '</ul>' . NR;
if ($options['header']) {
$out = $options['header'] . $out;
}
}
}
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
}
示例9: category_widget_custom
function category_widget_custom($options = array(), $num = 1)
{
if (!isset($options['include'])) {
$options['include'] = array();
}
if (!isset($options['exclude'])) {
$options['exclude'] = array();
}
if (!isset($options['format'])) {
$options['format'] = '[LINK][TITLE]<sup>[COUNT]</sup>[/LINK]<br>[DESCR]';
}
if (!isset($options['format_current'])) {
$options['format_current'] = '<span>[TITLE]<sup>[COUNT]</sup></span><br>[DESCR]';
}
if (!isset($options['header'])) {
$options['header'] = '';
}
if (!isset($options['hide_empty'])) {
$options['hide_empty'] = 0;
}
if (!isset($options['order'])) {
$options['order'] = 'category_name';
}
if (!isset($options['order_asc'])) {
$options['order_asc'] = 'ASC';
}
if (!isset($options['include_child'])) {
$options['include_child'] = 0;
}
if (!isset($options['nofollow'])) {
$options['nofollow'] = false;
}
if (!isset($options['group_header_no_link'])) {
$options['group_header_no_link'] = false;
}
$cache_key = 'category_widget' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
$all = $k;
} else {
/*
$type = 'page',
$parent_id = 0,
$order = 'category_menu_order',
$asc = 'asc',
$child_order = 'category_menu_order',
$child_asc = 'asc',
$in = false,
$ex = false,
$in_child = false,
$hide_empty = false,
$only_page_publish = false,
$date_now = true,
$get_pages = true
*/
$all = mso_cat_array('page', 0, $options['order'], $options['order_asc'], $options['order'], $options['order_asc'], $options['include'], $options['exclude'], $options['include_child'], $options['hide_empty'], true, true, false);
mso_add_cache($cache_key, $all);
// сразу в кэш добавим
}
// pr($all);
$out = mso_create_list($all, array('childs' => 'childs', 'format' => $options['format'], 'format_current' => $options['format_current'], 'class_ul' => 'mso-widget-list', 'title' => 'category_name', 'link' => 'category_slug', 'current_id' => false, 'prefix' => 'category/', 'count' => 'pages_count', 'slug' => 'category_slug', 'id' => 'category_id', 'menu_order' => 'category_menu_order', 'id_parent' => 'category_id_parent', 'nofollow' => $options['nofollow'], 'group_header_no_link' => $options['group_header_no_link']));
if ($out and $options['header']) {
$out = $options['header'] . $out;
}
return $out;
}
示例10: mso_pages_data
/**
* возвращает массив структуры всех pages
* включается title description keywords date dir url, а также массива $DATA в variables.php
* date — время создания файла text.php (или явно заданное в $DATA['date'])
*
* @param $include — включить только указанные страницы
* @param $exclude — исключить указанные страницы
* @param $dir — основной каталог, если не указано то это PAGES_DIR
* @param $url — основной http-путь, если не указано то это BASE_URL
*
* @return array
*
* [home] => Array (
* // обязательные
* [page] => home
* [title] => Blog
* [description] => Best page
* [keywords] =>
* [date] => 2014-10-22 12:56
* [dir] => путь к странице
* [url] => http-адрес страницы
*
* // все что задано в $DATA
* [menu_name] => home
* [menu_class] => icon star
* [menu_order] => 23
* [cat] => news, blog
* [tag] => first, second
* )
*/
function mso_pages_data($include = array(), $exclude = array(), $dir = false, $url = false, $cache_time = 3600)
{
static $cache = array();
// кеш хранится как массив с ключам = входящим параметрам
$cache_key = md5(serialize($include) . serialize($exclude) . serialize($dir) . serialize($url));
// уже получали данные, отдаем результат
if (isset($cache[$cache_key])) {
return $cache[$cache_key];
} else {
// возможно есть данные в файловом кеше
if ($out = mso_get_cache('pages_data' . $cache_key, $cache_time)) {
$cache[$cache_key] = $out;
// статичный кеш
return $out;
}
}
$out = array();
// путь на сервере
if ($dir === false) {
$dir = PAGES_DIR;
}
// url-путь
if ($url === false) {
$url = BASE_URL;
}
$pages = mso_get_dirs($dir, $exclude, 'variables.php');
if ($pages) {
if ($include) {
$pages = array_intersect($include, $pages);
}
// для вложенных страниц добавляем префикс равный отличию от PAGES_DIR
// pages/about => about
// pages/blog/about => blog/about
$prefix = str_replace(PAGES_DIR, '', $dir);
foreach ($pages as $page) {
if (!file_exists($dir . $page . '/text.php')) {
continue;
}
// если нет text.php выходим
$page_k = $prefix . $page;
if ($page == HOME_PAGE) {
$out[$page_k] = array('page' => '/');
} else {
$out[$page_k] = array('page' => $page_k);
}
// обнуляем данные
$TITLE = '';
$META = array();
$DATA = array();
// считываем данные
require $dir . $page . '/variables.php';
$out[$page_k]['title'] = $TITLE;
$out[$page_k]['description'] = isset($META['description']) ? $META['description'] : '';
$out[$page_k]['keywords'] = isset($META['keywords']) ? $META['keywords'] : '';
// дата создания text.php
$out[$page_k]['date'] = date('Y-m-d H:i', filemtime($dir . $page . '/text.php'));
// путь на сервере
$out[$page_k]['dir'] = $dir . $page;
// url
$out[$page_k]['url'] = $url . $page;
if (isset($DATA)) {
$out[$page_k] = array_merge($out[$page_k], $DATA);
}
}
}
$cache[$cache_key] = $out;
// статичный кеш
mso_add_cache('pages_data' . $cache_key, $out);
// файловый
return $out;
//.........这里部分代码省略.........
示例11: twitter_go
function twitter_go($url = false, $count = 5, $format = '<p><strong>%DATE%</strong><br>%TITLE% <a href="%LINK%">>>></a></p>', $format_date = 'd/m/Y H:i:s', $max_word_description = false, $show_nick = true)
{
if (!$url) {
return false;
}
# проверим кеш, может уже есть в нем все данные
$cache_key = 'rss/' . 'twitter_go' . $url . $count . $format . $format_date . (int) $max_word_description;
$k = mso_get_cache($cache_key, true);
if ($k) {
return $k;
}
// да есть в кэше
if (!defined('MAGPIE_CACHE_AGE')) {
define('MAGPIE_CACHE_AGE', 600);
}
// время кэширования MAGPIE
require_once getinfo('common_dir') . 'magpierss/rss_fetch.inc';
$rss = fetch_rss($url);
$rss = array_slice($rss->items, 0, $count);
$out = '';
foreach ($rss as $item) {
$out .= $format;
if ($show_nick) {
$item['title'] = preg_replace('|(\\S+): (.*)|si', '<strong>\\1:</strong> \\2', $item['title']);
} else {
$item['title'] = preg_replace('|(\\S+): (.*)|si', '\\2', $item['title']);
}
// подсветим ссылки
$item['title'] = preg_replace('|(http:\\/\\/)(\\S+)|si', '<a rel="nofollow" href="http://\\2" target="_blank">\\2</a>', $item['title']);
$out = str_replace('%TITLE%', $item['title'], $out);
// [title] = [description] = [summary]
if ($max_word_description) {
$item['description'] = mso_str_word($item['description'], $max_word_description) . '...';
}
$item['description'] = preg_replace('|(\\S+): (.*)|si', '<strong>\\1:</strong> \\2', $item['description']);
$item['description'] = preg_replace('|(http:\\/\\/)(\\S+)|si', '<a rel="nofollow" href="http://\\2" target="_blank">\\2</a>', $item['description']);
$out = str_replace('%DESCRIPTION%', $item['description'], $out);
// [title] = [description] = [summary]
$out = str_replace('%DATE%', date($format_date, (int) $item['date_timestamp']), $out);
// [pubdate]
$out = str_replace('%LINK%', $item['link'], $out);
// [link] = [guid]
}
mso_add_cache($cache_key, $out, 600, true);
return $out;
}
示例12: exit
<?php
if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}
/**
* MaxSite CMS
* (c) http://max-3000.com/
*/
header('Content-type: text/html; charset=utf-8');
header('Content-Type: application/rss+xml');
$cache_key = mso_md5('feed_' . mso_current_url());
$k = mso_get_cache($cache_key);
if ($k) {
return print $k;
}
// да есть в кэше
ob_start();
require_once getinfo('common_dir') . 'page.php';
// основные функции страниц
require_once getinfo('common_dir') . 'category.php';
// функции рубрик
$this->load->helper('xml');
$time_zone = getinfo('time_zone');
// 2.00 -> 200
$time_zone_server = date('O') / 100;
// +0100 -> 1.00
$time_zone = $time_zone + $time_zone_server;
// 3
$time_zone = number_format($time_zone, 2, '.', '');
// 3.00
示例13: links_widget_custom
function links_widget_custom($options = array(), $num = 1)
{
// кэш
$cache_key = 'links_widget_custom' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$out = '';
if (!isset($options['header'])) {
$options['header'] = '';
}
if (!isset($options['screenshot'])) {
$options['screenshot'] = 0;
}
if (isset($options['links'])) {
$links = explode("\n", $options['links']);
// разбиваем по строкам
foreach ($links as $row) {
$ar_link = explode('|', $row);
// разбиваем по |
// всего должно быть 5 элементов
if (isset($ar_link[0]) and trim($ar_link[0])) {
$href = trim($ar_link[0]);
// адрес
if ($href and isset($ar_link[1]) and trim($ar_link[1])) {
$title = trim($ar_link[1]);
// название
if (isset($ar_link[2]) and trim($ar_link[2])) {
$descr = '<div>' . trim($ar_link[2]) . '</div>';
} else {
$descr = '';
}
if (isset($ar_link[3]) and trim($ar_link[3])) {
//$noindex1 = '<noindex>';
//$noindex2 = '</noindex>';
$noindex1 = '';
$noindex2 = '';
$nofollow = ' rel="nofollow"';
} else {
$noindex1 = $noindex2 = $nofollow = '';
}
if (isset($ar_link[4]) and trim($ar_link[4])) {
$blank = ' target="_blank"';
} else {
$blank = '';
}
if (!$options['screenshot']) {
// обычный вывод списком
$out .= NR . '<li>' . $noindex1 . '<a href="' . $href . '" title="' . htmlspecialchars($title) . '"' . $nofollow . $blank . '>' . $title . '</a>' . $descr . $noindex2 . '</li>';
} else {
// скриншоты
$href_w = str_replace('http://', '', $href);
if ($options['screenshot'] == 1) {
$width = '120';
$height = '83';
$s = 'm';
} elseif ($options['screenshot'] == 2) {
$width = '202';
$height = '139';
$s = 's';
} elseif ($options['screenshot'] == 3) {
$width = '305';
$height = '210';
$s = 'n';
} else {
$width = '400';
$height = '275';
$s = 'b';
}
$out .= NR . '<p>' . $noindex1 . '<a href="' . $href . '" title="' . htmlspecialchars($title) . '"' . $nofollow . $blank . '>' . '<img src="http://webmorda.kz/site2img/?s=' . $s . '&u=' . $href_w . '" alt="' . htmlspecialchars($title) . '" title="' . $title . '" width="' . $width . '" height="' . $height . '"></a>' . $descr . '' . $noindex2 . '</p>';
/*
http://www.webmorda.kz/api.html
http://webmorda.kz/site2img/?u={1}&s={2}&q={3}&r={4}
*/
}
}
}
}
}
if ($out) {
if (!$options['screenshot']) {
// обычным списком
$out = $options['header'] . NR . '<ul class="is_link links">' . $out . NR . '</ul>' . NR;
} else {
// скриншоты
$out = $options['header'] . NR . '<div class="links">' . $out . '</div><div class="break"></div>' . NR;
}
}
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
}
示例14: tagclouds_widget_custom
function tagclouds_widget_custom($options = array(), $num = 1)
{
// кэш
$cache_key = 'tagclouds_widget_custom' . serialize($options) . $num;
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
// формат вывода %SIZE% %URL% %TAG% %COUNT%
// параметры $min_size $max_size $block_start $block_end
// сортировка
if (!isset($options['header'])) {
$options['header'] = '';
}
if (!isset($options['block_start'])) {
$options['block_start'] = '<div class="tagclouds">';
}
if (!isset($options['block_end'])) {
$options['block_end'] = '</div>';
}
if (!isset($options['min_size'])) {
$min_size = 90;
} else {
$min_size = (int) $options['min_size'];
}
if (!isset($options['max_size'])) {
$max_size = 230;
} else {
$max_size = (int) $options['max_size'];
}
if (!isset($options['max_num'])) {
$max_num = 50;
} else {
$max_num = (int) $options['max_num'];
}
if (!isset($options['min_count'])) {
$min_count = 0;
} else {
$min_count = (int) $options['min_count'];
}
if (!isset($options['format'])) {
$options['format'] = '<span style="font-size: %SIZE%%"><a href="%URL%">%TAG%</a><sub style="font-size: 7pt;">%COUNT%</sub></span>';
}
if (!isset($options['sort'])) {
$sort = 0;
} else {
$sort = (int) $options['sort'];
}
require_once getinfo('common_dir') . 'meta.php';
// функции мета
$tagcloud = mso_get_all_tags_page();
asort($tagcloud);
$min = reset($tagcloud);
$max = end($tagcloud);
if ($max == $min) {
$max++;
}
// сортировка перед выводом
if ($sort == 0) {
arsort($tagcloud);
} elseif ($sort == 1) {
asort($tagcloud);
} elseif ($sort == 2) {
ksort($tagcloud);
} elseif ($sort == 3) {
krsort($tagcloud);
} else {
arsort($tagcloud);
}
// по умолчанию
$url = getinfo('siteurl') . 'tag/';
$out = '';
$i = 0;
foreach ($tagcloud as $tag => $count) {
if ($min_count) {
if ($count < $min_count) {
continue;
}
}
$font_size = round(($count - $min) / ($max - $min) * ($max_size - $min_size) + $min_size);
$af = str_replace(array('%SIZE%', '%URL%', '%TAG%', '%COUNT%'), array($font_size, $url . urlencode($tag), $tag, $count), $options['format']);
// альтернативный синтаксис с []
$af = str_replace(array('[SIZE]', '[URL]', '[TAG]', '[COUNT]'), array($font_size, $url . urlencode($tag), $tag, $count), $af);
$out .= $af . ' ';
$i++;
if ($max_num != 0 and $i == $max_num) {
break;
}
}
if ($out) {
$out = $options['header'] . $options['block_start'] . $out . $options['block_end'];
}
mso_add_cache($cache_key, $out);
// сразу в кэш добавим
return $out;
}
示例15: mso_get_comusers_all
function mso_get_comusers_all($args = array())
{
$cache_key = mso_md5('mso_get_comusers_all');
$k = mso_get_cache($cache_key);
if ($k) {
return $k;
}
// да есть в кэше
$comusers = array();
$CI =& get_instance();
$CI->db->select('*');
$CI->db->from('comusers');
$query = $CI->db->get();
if ($query->num_rows() > 0) {
$comusers = $query->result_array();
mso_add_cache($cache_key, $comusers);
}
// получим все мета одним запросом
$CI->db->select('meta_id_obj, meta_key, meta_value');
$CI->db->where('meta_table', 'comusers');
$CI->db->order_by('meta_id_obj');
$query = $CI->db->get('meta');
if ($query->num_rows() > 0) {
$all_meta = $query->result_array();
} else {
$all_meta = array();
}
// переделываем формат массива, чтобы индекс был равен номеру комюзера
$r_array = array();
foreach ($all_meta as $val) {
$r_array[$val['meta_id_obj']][$val['meta_key']] = $val['meta_value'];
}
$all_meta = $r_array;
// получить все номера страниц, где оставил комментарий комюзер
$CI->db->select('comments_id, comments_page_id, comments_comusers_id');
$CI->db->where('comments_comusers_id >', '0');
$CI->db->order_by('comments_comusers_id, comments_page_id');
$query = $CI->db->get('comments');
if ($query->num_rows() > 0) {
$all_comments = $query->result_array();
} else {
$all_comments = array();
}
// переделываем массив под удобный формат
$r_array = array();
$all_comments_page_id = array();
// тут массив номеров страниц, где участвовал комюзер
foreach ($all_comments as $val) {
$r_array[$val['comments_comusers_id']][$val['comments_id']] = $val['comments_page_id'];
$all_comments_page_id[$val['comments_comusers_id']][$val['comments_page_id']] = $val['comments_page_id'];
}
$all_comments = $r_array;
// добавляем в каждого комюзера элемент массива meta, comments и comments_pages_id
$r_array = array();
foreach ($comusers as $key => $val) {
$r_array[$key] = $val;
if (isset($all_meta[$val['comusers_id']])) {
$r_array[$key]['meta'] = $all_meta[$val['comusers_id']];
} else {
$r_array[$key]['meta'] = array();
}
if (isset($all_comments[$val['comusers_id']])) {
$r_array[$key]['comments'] = $all_comments[$val['comusers_id']];
} else {
$r_array[$key]['comments'] = array();
}
if (isset($all_comments_page_id[$val['comusers_id']])) {
$r_array[$key]['comments_pages_id'] = $all_comments_page_id[$val['comusers_id']];
} else {
$r_array[$key]['comments_pages_id'] = array();
}
}
$comusers = $r_array;
mso_add_cache($cache_key, $comusers);
return $comusers;
}