Вход Регистрация
Файл: muzxit.ru/incfiles/classes/sitemap.php
Строк: 139
<?php

/**
* @package     JohnCMS
* @link        http://johncms.com
* @copyright   Copyright (C) 2008-2011 JohnCMS Community
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      http://johncms.com/about
*/

defined('_IN_JOHNCMS') or die('Restricted access');
class 
sitemap {
    
// Настройки карты форума
    
private $cache_forum_map 72;           // Время кэширования карты форума (часов)
    
private $cache_forum_contents 48;      // Время кэширования оглавления форума (часов)
    
private $cache_forum_file 'map_forum'// Имя файла кэша (без расширения)

    // Настройки карты Библиотеки
    
private $cache_lib_map 72;         // Время кэширования карты библиотеки (часов)
    
private $cache_lib_contents 48;    // Время кэширования оглавления библиотеки (часов)
    
private $cache_lib_file 'map_lib'// Имя файла кэша (без расширения)

    // Системные настройки
    
private $links_count 140// Число ссылок в блоке
    
private $set;               // Системные настройки модуля
    
private $page;              //

    /*
    -----------------------------------------------------------------
    Задаем настройки
    -----------------------------------------------------------------
    */
    
function __construct() {
        global 
$set;
        
$this->set = isset($set['sitemap']) ? unserialize($set['sitemap']) : array();
        
$this->page = isset($_GET['p']) ? abs(intval($_GET['p'])) : 0;
    }

    
/*
    -----------------------------------------------------------------
    Карта сайта
    -----------------------------------------------------------------
    */
    
public function site() {
        return (
$this->set['forum'] ? '<p><b>Forum Map</b><br />' $this->forum_map() . '</p>' '') .
        (
$this->set['lib'] ? '<p><b>Library Map</b><br />' $this->library_map() . '</p>' '');
    }

    
/*
    -----------------------------------------------------------------
    Содержание разделов форума
    -----------------------------------------------------------------
    */
    
public function forum_contents() {
        global 
$set$id$lng;
        
$file ROOTPATH 'files/cache/' $this->cache_forum_file '_' $id . ($this->page '_' $this->page '') . '.dat';
        if (!
$id)
            return 
functions::display_error($lng['error_wrong_data']);
        if (
file_exists($file) && filemtime($file) > (time() - $this->cache_forum_contents 3600)) {
            return 
file_get_contents($file);
        } else {
            
$req mysql_query("SELECT * FROM `forum` WHERE `id` = '$id' AND `type` = 'r'");
            if (
mysql_num_rows($req)) {
                
$row = array();
                
$res mysql_fetch_assoc($req);
                
$req_t mysql_query("SELECT * FROM `forum` WHERE `refid` = '$id' AND `type` = 't' AND `close` != '1' ORDER BY `time` DESC LIMIT " . ($this->page $this->links_count) . ", " $this->links_count);
                if (
mysql_num_rows($req_t)) {
                    while ((
$res_t mysql_fetch_assoc($req_t)) !== false$row[] = '<a href="' $set['homeurl'] . '/forum/index.php?id=' $res_t['id'] . '">' $res_t['text'] . '</a>';
                    
$out '<div class="phdr"><b>' $lng['forum'] . '</b> | ' $res['text'] . '</div><div class="menu">' implode('<br />' "rn"$row) . '</div>';
                    return 
file_put_contents($file$out) ? $out 'Forum Contents cache error';
                }
            }
        }
        return 
false;
    }

    
/*
    -----------------------------------------------------------------
    Содержание разделов Библиотеки
    -----------------------------------------------------------------
    */
    
public function library_contents() {
        global 
$set$id$lng;
        
$file ROOTPATH 'files/cache/' $this->cache_lib_file '_' $id . ($this->page '_' $this->page '') . '.dat';
        if (!
$id)
            return 
functions::display_error($lng['error_wrong_data']);
        if (
file_exists($file) && filemtime($file) > (time() - $this->cache_lib_contents 3600)) {
            return 
file_get_contents($file);
        } else {
            
$req mysql_query("SELECT * FROM `lib` WHERE `id` = '$id' AND `type` = 'cat' AND `ip` = '0'");
            if (
mysql_num_rows($req)) {
                
$row = array();
                
$res mysql_fetch_assoc($req);
                
$req_a mysql_query("SELECT * FROM `lib` WHERE `refid` = '$id' AND `type` = 'bk' AND `moder` = '1' ORDER BY `time` ASC LIMIT " . ($this->page $this->links_count) . ", " $this->links_count);
                if (
mysql_num_rows($req_a)) {
                    while ((
$res_a mysql_fetch_assoc($req_a)) !== false$row[] = '<a href="' $set['homeurl'] . '/library/index.php?id=' $res_a['id'] . '">' functions::checkout($res_a['name']) . '</a>';
                    
$out '<div class="phdr"><b>' $lng['library'] . '</b> | ' $res['text'] . '</div><div class="menu">' implode('<br />' "rn"$row) . '</div>';
                    return 
file_put_contents($file$out) ? $out 'Library Contents cache error';
                }
            }
        }
        return 
false;
    }

    
/*
    -----------------------------------------------------------------
    Кэш карты Форума
    -----------------------------------------------------------------
    */
    
private function forum_map() {
        global 
$set;
        
$file ROOTPATH 'files/cache/' $this->cache_forum_file '.dat';
        if (
file_exists($file) && filemtime($file) > (time() - $this->cache_forum_map 3600)) {
            return 
file_get_contents($file);
        } else {
            
$req mysql_query("SELECT * FROM `forum` WHERE `type` = 'r'");
            if (
mysql_num_rows($req)) {
                while ((
$res mysql_fetch_assoc($req)) !== false) {
                    
$count mysql_result(mysql_query("SELECT COUNT(*) FROM `forum` WHERE `refid` = '" $res['id'] . "' AND `type` = 't' AND `close` != '1'"), 0);
                    if (
$count) {
                        
$text html_entity_decode($res['text']);
                        
$text mb_substr($text040);
                        
$pages ceil($count $this->links_count);
                        if (
$pages 1) {
                            for (
$i 0$i $pages$i++) {
                                
$out[] = '<a href="' $set['homeurl'] . '/forum/contents.php?id=' $res['id'] . '&amp;p=' $i '">' functions::checkout($text) . ' (' . ($i 1) . ')</a>';
                            }
                        } else {
                            
$out[] = '<a href="' $set['homeurl'] . '/forum/contents.php?id=' $res['id'] . '">' functions::checkout($text) . '</a>';
                        }
                    }
                }
                if(isset(
$out))
                    return 
file_put_contents($fileimplode('<br />' "rn"$out)) ? implode('<br />'$out) : 'Forum cache error';
            }
        }
        return 
false;
    }

    
/*
    -----------------------------------------------------------------
    Кэш карты Библиотеки
    -----------------------------------------------------------------
    */
    
private function library_map() {
        global 
$set;
        
$file ROOTPATH 'files/cache/' $this->cache_lib_file '.dat';
        if (
file_exists($file) && filemtime($file) > (time() - $this->cache_lib_map 3600)) {
            return 
file_get_contents($file);
        } else {
            
$req mysql_query("SELECT * FROM `lib` WHERE `type` = 'cat' AND `ip` = '0'");
            if (
mysql_num_rows($req)) {
                while ((
$res mysql_fetch_assoc($req)) !== false) {
                    
$count mysql_result(mysql_query("SELECT COUNT(*) FROM `lib` WHERE `refid` = '" $res['id'] . "' AND `type` = 'bk' AND `moder` = '1'"), 0);
                    if (
$count) {
                        
$text html_entity_decode($res['text']);
                        
$text mb_substr($text040);
                        
$pages ceil($count $this->links_count);
                        if (
$pages 1) {
                            for (
$i 0$i $pages$i++) {
                                
$out[] = '<a href="' $set['homeurl'] . '/library/contents.php?id=' $res['id'] . '&amp;p=' $i '">' functions::checkout($text) . ' (' . ($i 1) . ')</a>';
                            }
                        } else {
                            
$out []= '<a href="../library/contents.php?id=' $res['id'] . '">' functions::checkout($text) . '</a>';
                        }
                    }
                }
                if(isset(
$out))
                    return 
file_put_contents($fileimplode('<br />' "rn"$out)) ? implode('<br />'$out) : 'Library cache error';
            }
        }
        return 
false;
    }
}
Онлайн: 0
Реклама