示例#1
0
    public function generateMap() {
        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }
        
        $is_end = false;
        
        // Заносим в карту категории
        $results = cmsCore::c('db')->query("SELECT id, pubdate FROM cms_uc_cats WHERE parent_id != 0 AND NSDiffer = '' AND published = 1");

        if (cmsCore::c('db')->num_rows($results)) {
            while ($cat = cmsCore::c('db')->fetch_assoc($results)) {
                $last_date = cmsCore::c('db')->get_field('cms_uc_items', "category_id='". $cat['id'] ."' ORDER BY pubdate DESC", 'pubdate');
                $last_date = explode(' ', !empty($last_date) ? $last_date : $cat['pubdate']);

                $this->writeMapItem(array(
                    'loc' => cmsCore::c('config')->host .'/catalog/'. $cat['id'],
                    'changefreq' => 'daily',
                    'priority' => '0.8',
                    'lastmod' => $last_date[0]
                ));
            }
        }
        
        $item_nums = 0;
        
        // Заносим в карту материалы
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT id, pubdate FROM cms_uc_items WHERE published = 1 ORDER BY pubdate ASC LIMIT ". $item_nums .', 1000');
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($item = cmsCore::c('db')->fetch_assoc($results)) {
                    $last_date = explode(' ', $item['pubdate']);

                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host .'/catalog/item'. $item['id'] .'.html',
                        'changefreq' => 'weekly',
                        'priority' => '0.7',
                        'lastmod' => $last_date[0]
                    ));
                    
                    $item_nums++;
                }
                
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#2
0
    public function generateMap() {
        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }
        
        $is_end = false;
        $item_nums = 0;
        
        // Заносим в карту категории
        $results = cmsCore::c('db')->query("SELECT id FROM cms_faq_cats WHERE published = 1 ORDER BY id ASC");

        if (cmsCore::c('db')->num_rows($results)) {
            while ($cat = cmsCore::c('db')->fetch_assoc($results)) {
                $last_date = cmsCore::c('db')->get_field('cms_faq_quests', "category_id='". $cat['id'] ."' ORDER BY answerdate DESC", 'answerdate');
                $last_date = explode(' ', !empty($last_date) ? $last_date : date('Y-m-d'));

                $this->writeMapItem(array(
                    'loc' => cmsCore::c('config')->host .'/'. $cat['seolink'],
                    'changefreq' => 'daily',
                    'priority' => '0.8',
                    'lastmod' => $last_date[0]
                ));
            }
        }
        
        // Заносим в карту вопросы
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT id, answerdate FROM cms_faq_quests WHERE published = 1 ORDER BY pubdate ASC LIMIT ". $item_nums .', 1000');
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($item = cmsCore::c('db')->fetch_assoc($results)) {
                    $last_date = explode(' ', $item['answerdate']);

                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host .'/faq/quest'. $item['id'] .'.html',
                        'changefreq' => 'weekly',
                        'priority' => '0.7',
                        'lastmod' => $last_date[0]
                    ));
                    
                    $item_nums++;
                }
                
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#3
0
    public function generateMap() {
        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }
        
        $is_end = false;
        $item_nums = 0;
        
        // Заносим в карту альбомы
        $results = cmsCore::c('db')->query("SELECT id, pubdate FROM cms_photo_albums WHERE parent_id != 0 AND NSDiffer = '' AND published = 1");

        if (cmsCore::c('db')->num_rows($results)) {
            while ($cat = cmsCore::c('db')->fetch_assoc($results)) {
                $last_date = cmsCore::c('db')->get_field('cms_photo_files', "album_id = '". $cat['id'] ."' AND owner = 'photos' ORDER BY pubdate DESC", 'pubdate');
                $last_date = explode(' ', !empty($last_date) ? $last_date : $cat['pubdate']);

                $this->writeMapItem(array(
                    'loc' => cmsCore::c('config')->host .'/photos/'. $cat['id'],
                    'changefreq' => 'daily',
                    'priority' => '0.8',
                    'lastmod' => $last_date[0]
                ));
            }
        }
        
        // Заносим в карту фотографии
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT id, pubdate FROM cms_photo_files WHERE published = 1 AND owner='photos' ORDER BY pubdate ASC LIMIT ". $item_nums .", 1000");
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($item = cmsCore::c('db')->fetch_assoc($results)) {
                    $last_date = explode(' ', $item['pubdate']);

                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host .'/photos/photo'. $item['id'] .'.html',
                        'changefreq' => 'weekly',
                        'priority' => '0.7',
                        'lastmod' => $last_date[0]
                    ));
                    
                    $item_nums++;
                }
                
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#4
0
    public function generateMap() {
        $config = cmsCore::getInstance()->loadComponentConfig('users');
        
        if (!$config['sw_guest']) {
            $this->page = 0;
            return;
        }

        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }
        
        $is_end = false;
        $item_nums = 0;
        
        // Заносим в карту пользователей
        while ($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT id, login, nickname FROM cms_users WHERE is_locked=0 AND is_deleted=0 ORDER BY nickname ASC LIMIT ". $item_nums .", 1000");
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($user = cmsCore::c('db')->fetch_assoc($results)) {
                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host . cmsUser::getProfileURL($user['ligin']),
                        'changefreq' => 'daily',
                        'priority' => '0.8'
                    ));
                    
                    $item_nums++;
                }
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#5
0
    public function generateMap() {
        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }
        
        $is_end = false;
        $item_nums = 0;
        
        // Заносим в карту категории
        $results = cmsCore::c('db')->query("SELECT seolink FROM cms_forum_cats WHERE published = 1 ORDER BY id ASC");

        if (cmsCore::c('db')->num_rows($results)) {
            while ($cat = cmsCore::c('db')->fetch_assoc($results)) {
                $this->writeMapItem(array(
                    'loc' => cmsCore::c('config')->host .'/forum/'. $cat['seolink'],
                    'changefreq' => 'daily',
                    'priority' => '0.8'
                ));
            }
        }
        
        // Заносим в карту форумы
        $results = cmsCore::c('db')->query("SELECT id FROM cms_forums WHERE published = 1 ORDER BY id ASC");
        
        if (cmsCore::c('db')->num_rows($results)) {
            while ($cat = cmsCore::c('db')->fetch_assoc($results)) {
                $this->writeMapItem(array(
                    'loc' => cmsCore::c('config')->host .'/forum/'. $cat['id'],
                    'changefreq' => 'daily',
                    'priority' => '0.8'
                ));
            }
        }
        
        // Заносим в карту темы
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT id, last_msg FROM cms_forum_threads WHERE is_hidden = 0 ORDER BY pubdate ASC LIMIT ". $item_nums .', 1000');
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($item = cmsCore::c('db')->fetch_assoc($results)) {
                    $last_msg = cmsCore::yamlToArray($item['last_msg']);
                    $last_date = explode(' ', $last_msg['pubdate']);

                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host .'/thread'. $item['id'] .'.html',
                        'changefreq' => 'weekly',
                        'priority' => '0.7',
                        'lastmod' => $last_date[0]
                    ));
                    
                    $item_nums++;
                }
                
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#6
0
    public function generateMap() {
        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }

        $is_end = false;
        $item_nums = 0;
        
        cmsCore::c('blog')->owner = 'user';
        cmsCore::c('db')->where("b.allow_who='all'");
        cmsCore::c('db')->orderBy('b.pubdate', 'ASC');
        
        // Заносим в карту блоги
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT * FROM cms_blogs WHERE owner = 'user' AND allow_who = 'all' ORDER BY pubdate ASC LIMIT ". $item_nums .", 1000");

            if (cmsCore::c('db')->num_rows($results)) {
                while ($blog = cmsCore::c('db')->fetch_assoc($results)) {
                    $last_date = cmsCore::c('db')->get_field('cms_blog_posts', "blog_id='". $blog['id'] ."' ORDER BY pubdate DESC", 'pubdate');
                    $last_date =  explode(' ', !empty($last_date) ? $last_date : $blog['pubdate']);

                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host .'/blogs/'. $blog['seolink'],
                        'changefreq' => 'daily',
                        'priority' => '0.8',
                        'lastmod' => $last_date[0]
                    ));

                    $item_nums++;
                }
            } else {
                $is_end = true;
            }
        }
        
        $is_end = false;
        $item_nums = 0;
        
        // Заносим в карту посты блогов
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT p.seolink, p.pubdate, b.seolink as blog_seolink FROM cms_blog_posts p INNER JOIN cms_blogs b ON b.id=p.blog_id WHERE p.published=1 AND p.allow_who = 'all' AND b.allow_who='all' AND b.owner='user' ORDER BY pubdate ASC LIMIT ". $item_nums .', 1000');
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($post = cmsCore::c('db')->fetch_assoc($results)) {
                    $last_date = explode(' ', $post['pubdate']);

                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host .'/blogs/'. $post['blog_seolink'] .'/'. $post['seolink'] .'.html',
                        'changefreq' => 'weekly',
                        'priority' => '0.7',
                        'lastmod' => $last_date[0]
                    ));
                    
                    $item_nums++;
                }
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#7
0
    public function generateMap() {
        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }

        $is_end = false;
        $item_nums = 0;
        
        cmsCore::c('blog')->owner = 'club';
        
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT id, title, pubdate FROM cms_clubs WHERE clubtype='public' AND published=1 ORDER BY pubdate ASC LIMIT ". $item_nums .", 1000");
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($club = cmsCore::c('db')->fetch_assoc($results)) {
                    if ($club['enabled_blogs']) {
                        $blog_id = cmsCore::c('db')->get_field('cms_blogs', "owner='club' AND user_id='". $club['id'] ."'", 'id');
                        $last_post_date = cmsCore::c('db')->get_field('cms_blog_posts', "blog_id='". $blog_id ."' ORDER BY pubdate DESC", 'pubdate');
                    }
                    
                    $last_date =  explode(' ', !empty($last_post_date) ? $last_post_date : $club['pubdate']);

                    //Записываем клуб
                    $this->writeMapItem(array(
                        'loc' => cmsCore::c('config')->host .'/clubs/'. $club['id'],
                        'changefreq' => 'daily',
                        'priority' => '0.8',
                        'lastmod' => $last_date[0]
                    ));
                    
                    if ($club['enabled_blogs']) {
                        // Заносим в карту блог клуба
                        $this->writeMapItem(array(
                            'loc' => cmsCore::c('config')->host .'/clubs/'. $club['id'] .'_blog',
                            'changefreq' => 'daily',
                            'priority' => '0.8',
                            'lastmod' => $last_date[0]
                        ));
                        
                        // Заносим в карту посты клубного блога
                        $this->writeClubBlogPosts($blog_id, $club['id']);
                    }
                    
                    if ($club['enabled_photos']) {
                        // Заносим в карту фотоальбомы и фотографии клуба
                        $this->writeClubAlbums($club['id']);
                    }

                    $item_nums++;
                }
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#8
0
    public function generateMap() {
        $gen_map = parent::generateMap();
        
        if ($gen_map === false) { return; }
        
        $today = date('Y-m-d H:i:s');
        $is_end = false;
        
        // Заносим в карту категории
        $results = cmsCore::c('db')->query("SELECT * FROM cms_category WHERE parent_id != 0 AND NSDiffer = '' AND published = 1");

        if (cmsCore::c('db')->num_rows($results)) {
            while ($cat = cmsCore::c('db')->fetch_assoc($results)) {
                if (!cmsCore::checkUserAccess('category', $cat['id'])) {
                    continue;
                }
                
                $last_date = cmsCore::c('db')->get_field('cms_content', "category_id='". $cat['id'] ."' ORDER BY pubdate DESC", 'pubdate');
                $last_date = explode(' ', !empty($last_date) ? $last_date : $cat['pubdate']);

                $this->writeMapItem(array(
                    'loc' => cmsCore::c('config')->host .'/'. (cmsCore::c('config')->com_without_name_in_url != 'content' ? 'content/' : '') . $cat['seolink'],
                    'changefreq' => 'daily',
                    'priority' => '0.8',
                    'lastmod' => $last_date[0]
                ));
            }
        }
        
        $article_nums = 0;
        
        // Заносим в карту статьи
        while($is_end === false) {
            $results = cmsCore::c('db')->query("SELECT id, seolink, pubdate FROM cms_content WHERE published = 1 AND pubdate <= '". $today ."' ORDER BY pubdate ASC LIMIT ". $article_nums .', 1000');
            
            if (cmsCore::c('db')->num_rows($results)) {
                while ($article = cmsCore::c('db')->fetch_assoc($results)) {
                    if (cmsCore::checkUserAccess('material', $article['id'])) {
                        $last_date = explode(' ', $article['pubdate']);

                        $this->writeMapItem(array(
                            'loc' => cmsCore::c('config')->host .'/'. (cmsCore::c('config')->com_without_name_in_url != 'content' ? 'content/' : '') . $article['seolink'] .'.html',
                            'changefreq' => 'weekly',
                            'priority' => '0.7',
                            'lastmod' => $last_date[0]
                        ));
                    }
                    
                    $article_nums++;
                }
                
            } else {
                $is_end = true;
            }
        }
        
        $this->closeFile();
    }
示例#9
0
    public function getMapFiles() {
        $files = parent::getMapFiles();
        
        if ($this->g_num > 0) {
            $num = $this->g_num - $this->max_num*($this->g_page-1);

            if ($num <= 0) {
                unlink(PATH .'/upload/sitemaps/'. $this->config['component'] .'_g_'. $this->g_page .'.xml');

                if ($this->g_page == 1) {
                    return $files;
                }

                $this->g_page--;
            }

            for ($i=1; $i <= $this->g_page; $i++) {
                $files[] = $this->config['component'] .'_g_'. $i .'.xml';
            }
        } else {
            $gfiles = parent::getAllMapFiles($this->config['component'] .'_g_[0-9]+');
            $files = array_merge($files, $gfiles);
        }
        
        return $files;
    }