示例#1
0
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 * 25-11-2015
 */
/*
Универсальный юнит для вывода записей по множеству критериев
[unit]
file = last-pages.php
limit = 3
[/unit]
Значение ключей по-умолчанию см. переменную $def
*/
# используем кэширование
$home_cache_time = (int) mso_get_option('home_cache_time', 'templates', 0);
$home_cache_key = getinfo('template') . '-' . __FILE__ . '-' . mso_current_paged() . '-' . $UNIT_NUM;
if ($home_cache_time > 0 and $k = mso_get_cache($home_cache_key)) {
    echo $k;
} else {
    $def = array('limit' => 3, 'cat_id' => "0", 'page_id' => "0", 'pagination' => false, 'type' => 'blog', 'order' => 'page_date_publish', 'order_asc' => 'desc', 'cut' => '»»»', 'show_cut' => false, 'date_now' => true, 'page_id_autor' => 0, 'thumb' => true, 'thumb_width' => 100, 'thumb_height' => 100, 'class_thumb' => 'b-left mar15-r rounded', 'content' => true, 'content_words' => 0, 'content_chars' => 0, 'content_cut' => '...', 'content_start' => '<div class="mso-page-content clearfix">', 'content_end' => '</div>', 'line1' => '[title][date]', 'line2' => '[thumb]', 'line3' => '', 'line4' => '[cat]', 'line5' => '<p class="t-right"><a href="[page_url]">Читать дальше</a></p>', 'title_start' => '<h4>', 'title_end' => '</h4>', 'block_start' => '<div class="layout-center flex flex-wrap pad5-rl">', 'block_end' => '</div>', 'page_start' => '<div class="w32 w48-tablet w100-phone pad20 mar15-tb bor1px bor-solid bor-gray400 rounded">', 'page_end' => '</div>', 'date' => 'j F Y, H:i', 'date_start' => '<p class="italic t90 i-calendar"><time datetime="[page_date_publish_iso]">', 'date_end' => '</time></p>', 'cat_start' => '<p class="i-folder t90">', 'cat_end' => '', 'cat_sep' => ',&NBSP;', 'tag_start' => '<p class="i-tag t90">', 'tag_end' => '</p>', 'tag_sep' => ',&NBSP;', 'author_start' => '', 'author_end' => '', 'read' => '»»»', 'read_start' => '<p>', 'read_end' => '</p>', 'comments_count_start' => '', 'comments_count_end' => '', 'placehold' => true, 'placehold_path' => 'http://placehold.it/', 'placehold_pattern' => '[W]x[H].png', 'placehold_file' => 'data', 'placehold_data_bg' => '#EEEEEE', 'pagination_start' => '', 'pagination_end' => '', 'exclude_page_allow' => true, 'exclude_page_add' => true);
    $UNIT = mso_merge_array($UNIT, $def);
    ob_start();
    $b = new Block_pages(array('limit' => $UNIT['limit'], 'cat_id' => $UNIT['cat_id'], 'page_id' => $UNIT['page_id'], 'pagination' => $UNIT['pagination'], 'type' => $UNIT['type'], 'order' => $UNIT['order'], 'order_asc' => $UNIT['order_asc'], 'cut' => $UNIT['cut'], 'show_cut' => $UNIT['show_cut'], 'date_now' => $UNIT['date_now'], 'page_id_autor' => $UNIT['page_id_autor'], 'exclude_page_allow' => $UNIT['exclude_page_allow']));
    if ($b->go) {
        $b->output(array('block_start' => $UNIT['block_start'], 'block_end' => $UNIT['block_end'], 'content' => $UNIT['content'], 'content_words' => $UNIT['content_words'], 'content_chars' => $UNIT['content_chars'], 'content_cut' => $UNIT['content_cut'], 'content_start' => $UNIT['content_start'], 'content_end' => $UNIT['content_end'], 'thumb' => $UNIT['thumb'], 'thumb_width' => $UNIT['thumb_width'], 'thumb_height' => $UNIT['thumb_height'], 'thumb_class' => $UNIT['class_thumb'], 'line1' => $UNIT['line1'], 'line2' => $UNIT['line2'], 'line3' => $UNIT['line3'], 'line4' => $UNIT['line4'], 'line5' => $UNIT['line5'], 'title_start' => $UNIT['title_start'], 'title_end' => $UNIT['title_end'], 'page_start' => $UNIT['page_start'], 'page_end' => $UNIT['page_end'], 'date' => $UNIT['date'], 'date_start' => $UNIT['date_start'], 'date_end' => $UNIT['date_end'], 'cat_start' => $UNIT['cat_start'], 'cat_end' => $UNIT['cat_end'], 'cat_sep' => $UNIT['cat_sep'], 'tag_start' => $UNIT['tag_start'], 'tag_end' => $UNIT['tag_end'], 'tag_sep' => $UNIT['tag_sep'], 'author_start' => $UNIT['author_start'], 'author_end' => $UNIT['author_end'], 'read' => $UNIT['read'], 'read_start' => $UNIT['read_start'], 'read_end' => $UNIT['read_end'], 'comments_count_start' => $UNIT['comments_count_start'], 'comments_count_end' => $UNIT['comments_count_start'], 'placehold' => $UNIT['placehold'], 'placehold_path' => $UNIT['placehold_path'], 'placehold_pattern' => $UNIT['placehold_pattern'], 'placehold_file' => $UNIT['placehold_file'], 'placehold_data_bg' => $UNIT['placehold_data_bg'], 'pagination_start' => $UNIT['pagination_start'], 'pagination_end' => $UNIT['pagination_end'], 'exclude_page_add' => $UNIT['exclude_page_add']));
    }
    mso_add_cache($home_cache_key, ob_get_flush(), $home_cache_time * 60);
}
# end of file
示例#2
0
文件: index.php 项目: rb2/MaxSite-CMS
function paginator_go($r = array())
{
    global $MSO;
    $r_orig = $r;
    if (!$r) {
        return $r;
    }
    if (!isset($r['maxcount']) || $r['maxcount'] == '1') {
        return $r;
    }
    if (!isset($r['limit'])) {
        return $r;
    }
    if (!isset($r['type'])) {
        $r['type'] = false;
    }
    if (!isset($r['next_url'])) {
        $r['next_url'] = 'next';
    }
    $options = mso_get_option('paginator', 'plugins', array());
    if (!isset($options['page_count'])) {
        $options['page_count'] = '10';
    }
    if (!isset($options['returnOrder'])) {
        $options['returnOrder'] = '0';
    }
    if (!isset($options['lang_next'])) {
        $options['lang_next'] = t('Следующая');
    }
    if (!isset($options['lang_prior'])) {
        $options['lang_prior'] = t('Предыдущая');
    }
    if (!isset($options['lang_last'])) {
        $options['lang_last'] = t('Последняя');
    }
    if (!isset($options['lang_first'])) {
        $options['lang_first'] = t('Первая');
    }
    $current_paged = mso_current_paged($r['next_url']);
    if ($current_paged > $r['maxcount']) {
        $current_paged = $r['maxcount'];
    }
    if ($r['type'] !== false) {
        $type = $r['type'];
    } else {
        $type = $MSO->data['type'];
    }
    $a_cur_url = $MSO->data['uri_segment'];
    if ($type != 'page_404') {
        $cur_url = getinfo('site_url') . $type;
    } else {
        $cur_url = getinfo('site_url');
    }
    foreach ($a_cur_url as $val) {
        if ($val == $r['next_url']) {
            break;
        } else {
            if ($val != $type) {
                $cur_url .= '/@@' . $val;
            }
        }
    }
    $cur_url = str_replace('//@@', '/', $cur_url);
    $cur_url = str_replace('@@', '', $cur_url);
    $returnOrder = $options['returnOrder'] == '1' ? 'true' : 'false';
    $id = mt_rand(1, 999);
    echo '<script>$(document).ready(function() {$("#pag' . $id . '").paginator({pagesTotal:' . $r['maxcount'] . ', pagesSpan:' . $options['page_count'] . ', pageCurrent:' . $current_paged . ', baseUrl:"' . $cur_url . '/next/", returnOrder:' . $returnOrder . ', lang: {next:"' . $options['lang_next'] . '", last:"' . $options['lang_last'] . '", prior:"' . $options['lang_prior'] . '", first:"' . $options['lang_first'] . '", arrowRight:String.fromCharCode(8594), arrowLeft:String.fromCharCode(8592)}});})</script>' . NR . '<div id="pag' . $id . '" class="paginator"></div>' . NR;
    return $r_orig;
}
header = заголовок
text = текст с html без переносов
link = ссылка
img = адрес картинки
[/slide]
*/
// где выводить записи
$slidesjs_output = mso_get_option('slidesjs_output', 'templates', array());
if (!$slidesjs_output) {
    return;
}
// ничего не отмечено - нигде не показывать
if (!in_array('all', $slidesjs_output)) {
    if (!in_array(getinfo('type'), $slidesjs_output)) {
        return;
    } elseif (mso_current_paged() > 1) {
        return;
    }
    // на страницах пагинации не показывать (или показывать?..)
}
// опции слайдера
$slides_def = '
[slide]
header = заголовок1
text = текст с html без переносов
link = http://maxsite.org/
img = TEMPLATE_URL/images/placehold/1140x300.png
[/slide]

[slide]
header = заголовок2
示例#4
0
文件: page.php 项目: buyvolov/cms
function _mso_sql_build_author($r, &$pag)
{
    $CI =& get_instance();
    if ($r['slug']) {
        $slug = $r['slug'];
    } else {
        $slug = mso_segment(2);
    }
    // если slug есть число, то выполняем поиск по id
    if (!is_numeric($slug)) {
        $id = 0;
    } else {
        $id = (int) $slug;
    }
    $offset = 0;
    if ($r['pagination']) {
        # пагинация
        # для неё нужно при том же запросе указываем общее кол-во записей и кол-во на страницу
        # сама пагинация выводится отдельным плагином
        # запрос один в один, кроме limit и юзеров
        $CI->db->select('SQL_BUFFER_RESULT ' . $CI->db->dbprefix('page') . '.`page_id`', false);
        $CI->db->from('page');
        if ($r['page_status']) {
            $CI->db->where('page_status', $r['page_status']);
        }
        if ($r['type']) {
            if (is_array($r['type'])) {
                $CI->db->where_in('page_type_name', $r['type']);
            } else {
                $CI->db->where('page_type_name', $r['type']);
            }
        }
        // if ($r['date_now']) $CI->db->where('page_date_publish < ', 'DATE_ADD(NOW(), INTERVAL "' . $r['time_zone'] . '" HOUR_MINUTE)', false);
        if ($r['date_now'] and $r['page_id_date_now']) {
            $CI->db->where_not_in('page.page_id', $r['page_id_date_now']);
        }
        $CI->db->join('page_type', 'page_type.page_type_id = page.page_type_id');
        $CI->db->where('page.page_id_autor', $id);
        $CI->db->group_by('page.page_id');
        if ($function_add_custom_sql = $r['function_add_custom_sql']) {
            $function_add_custom_sql();
        }
        $query = $CI->db->get();
        $pag_row = $query->num_rows();
        if ($pag_row > 0) {
            $pag['maxcount'] = ceil($pag_row / $r['limit']);
            // всего станиц пагинации
            $pag['limit'] = $r['limit'];
            // записей на страницу
            $current_paged = mso_current_paged($r['pagination_next_url']);
            if ($current_paged > $pag['maxcount']) {
                $current_paged = $pag['maxcount'];
            }
            $offset = $current_paged * $pag['limit'] - $pag['limit'];
        } else {
            $pag = false;
        }
    } else {
        $pag = false;
    }
    // теперь сами страницы
    if (!$r['all_fields']) {
        if ($r['content']) {
            $CI->db->select('page.page_id, page_type_name, page_slug, page_title, page_date_publish, page_status, users_nik, page_content, page_view_count, page_rating, page_rating_count, page_password, page_comment_allow, page_id_parent, users_avatar_url, page.page_id_autor, users_description, users_login');
        } else {
            $CI->db->select('page.page_id, page_type_name, page_slug, page_title, "" AS page_content, page_date_publish, page_status, users_nik, page_view_count, page_rating, page_rating_count, page_password, page_comment_allow, users_avatar_url, page.page_id_autor, users_description, users_login', false);
        }
    } else {
        $CI->db->select('page.*, page_type.*, users.*');
    }
    $CI->db->from('page');
    if ($r['page_status']) {
        $CI->db->where('page_status', $r['page_status']);
    }
    // if ($r['date_now']) $CI->db->where('page_date_publish < ', 'DATE_ADD(NOW(), INTERVAL "' . $r['time_zone'] . '" HOUR_MINUTE)', false);
    if ($r['date_now'] and $r['page_id_date_now']) {
        $CI->db->where_not_in('page.page_id', $r['page_id_date_now']);
    }
    if ($r['only_feed']) {
        $CI->db->where('page.page_feed_allow', '1');
    }
    if ($r['type']) {
        if (is_array($r['type'])) {
            $CI->db->where_in('page_type_name', $r['type']);
        } else {
            $CI->db->where('page_type_name', $r['type']);
        }
    }
    $CI->db->join('users', 'users.users_id = page.page_id_autor');
    $CI->db->join('page_type', 'page_type.page_type_id = page.page_type_id');
    $CI->db->where('page.page_id_autor', $id);
    $CI->db->order_by($r['order'], $r['order_asc']);
    $CI->db->group_by('page.page_id');
    if (!$r['no_limit']) {
        if ($pag and $offset) {
            $CI->db->limit($r['limit'], $offset);
        } else {
            $CI->db->limit($r['limit']);
        }
    }
    if ($function_add_custom_sql = $r['function_add_custom_sql']) {
        $function_add_custom_sql();
    }
}
示例#5
0
$CI->table->set_heading('ID', ' ', t('Ник'), t('Актив.'), t('Кол.'), t('Последний вход'), t('E-mail'), t('Сайт'));
// для пагинации нам нужно знать общее количество записей
// только после этого выполняем запрос
$pag = array();
// для пагинации
$pag['limit'] = 30;
// записей на страницу
$offset = 0;
$CI->db->select('comusers_id');
$CI->db->from('comusers');
$query = $CI->db->get();
$pag_row = $query->num_rows();
if ($pag_row > 0) {
    $pag['maxcount'] = ceil($pag_row / $pag['limit']);
    // всего станиц пагинации
    $current_paged = mso_current_paged();
    if ($current_paged > $pag['maxcount']) {
        $current_paged = $pag['maxcount'];
    }
    $offset = $current_paged * $pag['limit'] - $pag['limit'];
} else {
    $pag = false;
}
$CI->db->select('comusers_id, comusers_nik, comusers_email, comusers_url, comusers_activate_key, comusers_activate_string, comusers_date_registr, comusers_last_visit, comusers_count_comments');
$CI->db->from('comusers');
$CI->db->order_by('comusers_id');
if ($pag) {
    if ($pag and $offset) {
        $CI->db->limit($pag['limit'], $offset);
    } else {
        $CI->db->limit($pag['limit']);
示例#6
0
文件: admin.php 项目: LeonisX/cms
$tmpl = array('table_open' => '<table class="page tablesorter">', 'row_alt_start' => '<tr class="alt">', 'cell_alt_start' => '<td class="alt">');
$CI->table->set_template($tmpl);
// шаблон таблицы
$CI->table->set_heading('ID', '&bull;', '+', t('Текст'));
# подготавливаем выборку из базы
$CI->db->select('SQL_CALC_FOUND_ROWS comments_id, comments_users_id, comments_comusers_id, comments_author_name, comments_date, comments_content, comments_approved, comments_author_ip, users.users_nik, comusers.comusers_nik, page.page_title, page.page_slug', false);
$CI->db->from('comments');
$CI->db->join('users', 'users.users_id = comments.comments_users_id', 'left');
$CI->db->join('comusers', 'comusers.comusers_id = comments.comments_comusers_id', 'left');
$CI->db->join('page', 'page.page_id = comments.comments_page_id', 'left');
if (!$f_all_comments) {
    $CI->db->where('comments_approved', 0);
}
$CI->db->order_by('comments_date', 'desc');
$limit = 20;
$CI->db->limit($limit, mso_current_paged() * $limit - $limit);
// не более $limit
$query = $CI->db->get();
$pagination = mso_sql_found_rows($limit);
// определим общее кол-во записей для пагинации
mso_hook('pagination', $pagination);
// если есть данные, то выводим
if ($query->num_rows() > 0) {
    $this_url = $MSO->config['site_admin_url'] . 'comments/';
    $view_url = $MSO->config['site_url'] . 'page/';
    foreach ($query->result_array() as $row) {
        $id = $row['comments_id'];
        // для вывода делаем чекбокс + hidden всех комментов для того, чтобы проверить тех,
        // которые окажутся не отмечены - их POST не передает
        $id_out = '<input type="checkbox" name="f_check_comments[' . $id . ']">' . NR;
        $act = '<a href="' . $this_url . 'edit/' . $id . '">' . t('Изменить') . '</a>';
示例#7
0
文件: common.php 项目: rettebinu/cms
function mso_link_rel($rel = 'canonical', $add = '', $url_only = false)
{
    if (!$rel) {
        return;
    }
    // пустой тип
    if ($rel == 'canonical') {
        if ($add) {
            return '<link rel="canonical" ' . $add . '>';
        } else {
            // для разных типов данных формируем разный канонический адрес
            // он напрямую зависит от типа
            $url = '';
            // если есть хук canonical, то выполняем его
            // если хук вернул какое-то значение, то это $url
            // если нет, то выполняем типовое определение канонического адреса
            if (mso_hook_present('canonical')) {
                $url = mso_hook('canonical');
            }
            if (!$url) {
                if (is_type('page') or is_type('category') or is_type('tag') or is_type('author') or is_type('users') or mso_segment(1) == 'sitemap' or mso_segment(1) == 'contact') {
                    if (mso_segment(2)) {
                        $url = getinfo('site_url') . mso_segment(1) . '/' . mso_segment(2);
                    } else {
                        $url = getinfo('site_url') . mso_segment(1);
                    }
                } elseif (is_type('home')) {
                    $url = getinfo('site_url');
                }
            }
            // echo $url;
            // пагинация
            if (($cur = mso_current_paged()) > 1) {
                if (is_type('home')) {
                    $url .= 'home/next/' . $cur;
                } else {
                    $url .= '/next/' . $cur;
                }
            }
            if ($url) {
                if ($url_only) {
                    return $url;
                } else {
                    return '<link rel="canonical" href="' . $url . '">';
                }
            }
        }
    } else {
        if ($add) {
            return '<link rel="' . $rel . '" ' . $add . '>';
        }
    }
}
示例#8
0
文件: index.php 项目: rb2/MaxSite-CMS
function pagination_go($r = array())
{
    global $MSO;
    $r_orig = $r;
    if (!$r) {
        return $r;
    }
    if (!isset($r['maxcount'])) {
        return $r;
    }
    if (!isset($r['limit'])) {
        return $r;
    }
    // нужно указать сколько записей выводить
    if (!isset($r['type'])) {
        $r['type'] = false;
    }
    // можно задать свой тип
    if (!isset($r['next_url'])) {
        $r['next_url'] = 'next';
    }
    $options = mso_get_option('plugin_pagination', 'plugins', array());
    // получаем опции
    if (!isset($r['range'])) {
        $r['range'] = isset($options['range']) ? (int) $options['range'] : 3;
    }
    if (!isset($r['sep'])) {
        $r['sep'] = isset($options['sep']) ? $options['sep'] : ' &middot; ';
    }
    if (!isset($r['sep2'])) {
        $r['sep2'] = isset($options['sep2']) ? $options['sep2'] : ' | ';
    }
    if (!isset($r['format'])) {
        // $r['format'] =
        $r['format'][] = isset($options['format_first']) ? $options['format_first'] : '« ' . tf('Первая');
        $r['format'][] = isset($options['format_prev']) ? $options['format_prev'] : '‹ ' . tf('предыдущая');
        $r['format'][] = isset($options['format_next']) ? $options['format_next'] : tf('следующая') . ' ›';
        $r['format'][] = isset($options['format_last']) ? $options['format_last'] : tf('последняя') . ' »';
    }
    # текущая пагинация вычисляется по адресу url
    # должно быть /next/6 - номер страницы
    $current_paged = mso_current_paged($r['next_url']);
    if ($current_paged > $r['maxcount']) {
        $current_paged = $r['maxcount'];
    }
    if ($r['type'] !== false) {
        $type = $r['type'];
    } else {
        $type = $MSO->data['type'];
    }
    // текущий урл сделаем
    $a_cur_url = $MSO->data['uri_segment'];
    // $cur_url = getinfo('site_url') . $type;
    if ($type != 'page_404') {
        $cur_url = getinfo('site_url') . $type;
    } else {
        $cur_url = getinfo('site_url');
    }
    // pr($cur_url);
    foreach ($a_cur_url as $val) {
        #if ($val == 'next') break; // next - дальше не нужно
        if ($val == $r['next_url']) {
            break;
        } else {
            if ($val != $type) {
                $cur_url .= '/@@' . $val;
            }
        }
    }
    $cur_url = str_replace('//@@', '/', $cur_url);
    $cur_url = str_replace('@@', '', $cur_url);
    // pr($cur_url);
    if ($type == 'home') {
        $home_url = getinfo('site_url');
    } else {
        $home_url = $cur_url;
    }
    //pr($home_url);
    $out = _pagination($r['maxcount'], $current_paged, $cur_url . '/' . $r['next_url'] . '/', $r['range'], $cur_url, '', $r['sep'], $home_url, $r['sep2']);
    if ($out) {
        $out = str_replace(array('%FIRST%', '%PREV%', '%NEXT%', '%LAST%'), $r['format'], $out);
        echo NR . '<div class="pagination">' . $out . '</div>' . NR;
    }
    return $r_orig;
}
示例#9
0
文件: index.php 项目: Kmartynov/cms
function pagination_go($r = array())
{
    global $MSO;
    $r_orig = $r;
    if (!$r) {
        return $r;
    }
    if (!isset($r['maxcount'])) {
        return $r;
    }
    if (!isset($r['limit'])) {
        return $r;
    }
    // нужно указать сколько записей выводить
    if (!isset($r['type'])) {
        $r['type'] = false;
    }
    // можно задать свой тип
    if (!isset($r['next_url'])) {
        $r['next_url'] = 'next';
    }
    $options = mso_get_option('plugin_pagination', 'plugins', array());
    // получаем опции
    if (!isset($r['range'])) {
        $r['range'] = isset($options['range']) ? (int) $options['range'] : 3;
    }
    if (!isset($r['sep'])) {
        $r['sep'] = isset($options['sep']) ? $options['sep'] : ' ';
    }
    if (!isset($r['sep2'])) {
        $r['sep2'] = isset($options['sep2']) ? $options['sep2'] : ' ';
    }
    if (!isset($r['format'])) {
        // $r['format'] =
        $r['format'][] = isset($options['format_first']) ? $options['format_first'] : '&lt;&lt;';
        $r['format'][] = isset($options['format_prev']) ? $options['format_prev'] : '&lt;';
        $r['format'][] = isset($options['format_next']) ? $options['format_next'] : '&gt;';
        $r['format'][] = isset($options['format_last']) ? $options['format_last'] : '&gt;&gt;';
    }
    # текущая пагинация вычисляется по адресу url
    # должно быть /next/6 - номер страницы
    $current_paged = mso_current_paged($r['next_url']);
    if ($current_paged > $r['maxcount']) {
        $current_paged = $r['maxcount'];
    }
    if ($r['type'] !== false) {
        $type = $r['type'];
    } else {
        $type = $MSO->data['type'];
    }
    // текущий адрес
    $cur_url = mso_current_url(true);
    // в текущем адресе нужно исключить пагинацию next
    if (preg_match("!/" . $r['next_url'] . "/!is", $cur_url, $matches, PREG_OFFSET_CAPTURE)) {
        $cur_url = substr($cur_url, 0, $matches[0][1]);
    }
    if ($type == 'home' and $current_paged == 1) {
        $cur_url = $cur_url . 'home';
    }
    // pr($cur_url);
    if ($type == 'home') {
        $home_url = getinfo('site_url');
    } else {
        $home_url = $cur_url;
    }
    $out = _pagination($r['maxcount'], $current_paged, $cur_url . '/' . $r['next_url'] . '/', $r['range'], $cur_url, '', $r['sep'], $home_url, $r['sep2']);
    if ($out) {
        $out = str_replace(array('%FIRST%', '%PREV%', '%NEXT%', '%LAST%'), $r['format'], $out);
        echo '<div class="pagination"><nav>' . $out . '</nav></div>';
    }
    return $r_orig;
}
示例#10
0
function mso_sql_found_rows($limit = 20, $pagination_next_url = 'next')
{
    $CI =& get_instance();
    // определим общее кол-во записей
    $query_row = $CI->db->query('SELECT FOUND_ROWS() as found_rows', false);
    if ($query_row->num_rows() > 0) {
        $ar = $query_row->result_array();
        $found_rows = $ar[0]['found_rows'];
        $maxcount = ceil($found_rows / $limit);
        // всего страниц пагинации
        $current_paged = mso_current_paged($pagination_next_url);
        if ($current_paged > $maxcount) {
            $current_paged = $maxcount;
        }
        $offset = $current_paged * $limit - $limit;
        $out = array('limit' => $limit, 'offset' => $offset, 'found_rows' => $found_rows, 'maxcount' => $maxcount, 'next_url' => $pagination_next_url);
    } else {
        $out = false;
    }
    $CI->db->cache_delete_all();
    return $out;
}