Пример #1
0
function plugin_gsmg_screen()
{
    global $config, $mysql, $catz, $catmap, $SUPRESS_TEMPLATE_SHOW, $SYSTEM_FLAGS, $PFILTERS;
    $SUPRESS_TEMPLATE_SHOW = 1;
    $SUPRESS_MAINBLOCK_SHOW = 1;
    @header('Content-type: text/xml; charset=utf-8');
    $SYSTEM_FLAGS['http.headers'] = array('content-type' => 'application/xml; charset=charset=utf-8', 'cache-control' => 'private');
    if (extra_get_param('gsmg', 'cache')) {
        $cacheData = cacheRetrieveFile('gsmg.txt', extra_get_param('gsmg', 'cacheExpire'), 'gsmg');
        if ($cacheData != false) {
            // We got data from cache. Return it and stop
            print $cacheData;
            return;
        }
    }
    $output = '<?xml version="1.0" encoding="UTF-8"?>';
    $output .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
    // Настройки постранички
    if ($config['number'] < 1) {
        $config['number'] = 5;
    }
    // Надо ли выводить данные с головной страницы
    if (extra_get_param('gsmg', 'main')) {
        $output .= "<url>";
        $output .= "<loc>" . generateLink('news', 'main', array(), array(), false, true) . "</loc>";
        $output .= "<priority>" . floatval(extra_get_param('gsmg', 'main_pr')) . "</priority>";
        $lm = $mysql->record("select date(from_unixtime(max(postdate))) as pd from " . prefix . "_news");
        $output .= "<lastmod>" . $lm['pd'] . "</lastmod>";
        $output .= "<changefreq>daily</changefreq>";
        $output .= "</url>";
        if (extra_get_param('gsmg', 'mainp')) {
            $cnt = $mysql->record("select count(*) as cnt from " . prefix . "_news");
            $pages = ceil($cnt['cnt'] / $config['number']);
            for ($i = 2; $i <= $pages; $i++) {
                $output .= "<url>";
                $output .= "<loc>" . generateLink('news', 'main', array('page' => $i), array(), false, true) . "</loc>";
                $output .= "<priority>" . floatval(extra_get_param('gsmg', 'mainp_pr')) . "</priority>";
                $output .= "<lastmod>" . $lm['pd'] . "</lastmod>";
                $output .= "<changefreq>daily</changefreq>";
                $output .= "</url>";
            }
        }
    }
    // Надо ли выводить данные по категориям
    if (extra_get_param('gsmg', 'cat')) {
        foreach ($catmap as $id => $altname) {
            $output .= "<url>";
            $output .= "<loc>" . generateLink('news', 'by.category', array('category' => $altname, 'catid' => $id), array(), false, true) . "</loc>";
            $output .= "<priority>" . floatval(extra_get_param('gsmg', 'cat_pr')) . "</priority>";
            $output .= "<lastmod>" . $lm['pd'] . "</lastmod>";
            $output .= "<changefreq>daily</changefreq>";
            $output .= "</url>";
            if (extra_get_param('gsmg', 'catp')) {
                $cn = $catz[$altname]['number'] > 0 ? $catz[$altname]['number'] : $config['number'];
                $pages = ceil($catz[$altname]['posts'] / $cn);
                for ($i = 2; $i <= $pages; $i++) {
                    $output .= "<url>";
                    $output .= "<loc>" . generateLink('news', 'by.category', array('category' => $altname, 'catid' => $id, 'page' => $i), array(), false, true) . "</loc>";
                    $output .= "<priority>" . floatval(extra_get_param('gsmg', 'catp_pr')) . "</priority>";
                    $output .= "<lastmod>" . $lm['pd'] . "</lastmod>";
                    $output .= "<changefreq>daily</changefreq>";
                    $output .= "</url>";
                }
            }
        }
    }
    // Надо ли выводить данные по новостям
    if (extra_get_param('gsmg', 'news')) {
        $query = "select id, postdate, author, author_id, alt_name, editdate, catid from " . prefix . "_news where approve = 1 order by id desc";
        foreach ($mysql->select($query, 1) as $rec) {
            $link = newsGenerateLink($rec, false, 0, true);
            $output .= "<url>";
            $output .= "<loc>" . $link . "</loc>";
            $output .= "<priority>" . floatval(extra_get_param('gsmg', 'news_pr')) . "</priority>";
            $output .= "<lastmod>" . strftime("%Y-%m-%d", max($rec['editdate'], $rec['postdate'])) . "</lastmod>";
            $output .= "<changefreq>daily</changefreq>";
            $output .= "</url>";
        }
    }
    // Надо ли выводить данные по статическим страницам
    if (extra_get_param('gsmg', 'static')) {
        $query = "select id, alt_name from " . prefix . "_static where approve = 1";
        foreach ($mysql->select($query, 1) as $rec) {
            $link = generatePluginLink('static', '', array('altname' => $rec['alt_name'], 'id' => $rec['id']), array(), false, true);
            $output .= "<url>";
            $output .= "<loc>" . $link . "</loc>";
            $output .= "<priority>" . floatval(extra_get_param('gsmg', 'static_pr')) . "</priority>";
            $output .= "<lastmod>" . $lm['pd'] . "</lastmod>";
            $output .= "<changefreq>weekly</changefreq>";
            $output .= "</url>";
        }
    }
    if (is_array($PFILTERS['gsmg'])) {
        foreach ($PFILTERS['gsmg'] as $k => $v) {
            $v->onShow($output);
        }
    }
    $output .= "</urlset>";
    print $output;
    cacheStoreFile('gsmg.txt', $output, 'gsmg');
}
Пример #2
0
array_push($cfgX, array('name' => 'main', 'title' => "Добавлять головную страницу в карту сайта", 'descr' => "<b>Да</b> - страница будет добавляться в карту сайта<br /><b>Нет</b> - страница не будет добавляться в карту сайта", 'type' => 'select', 'values' => array('0' => 'Нет', '1' => 'Да'), 'value' => intval(extra_get_param($plugin, 'main'))));
array_push($cfgX, array('name' => 'main_pr', 'title' => "Приоритет головной страницы", 'descr' => 'значение от <b>0.0</b> до <b>1.0</b>', 'type' => 'input', 'value' => extra_get_param($plugin, 'main_pr') == '' ? '1.0' : extra_get_param($plugin, 'main_pr')));
array_push($cfgX, array('name' => 'mainp', 'title' => "Добавлять постраничку головной страницы в карту сайта", 'descr' => "<b>Да</b> - страница будет добавляться в карту сайта<br /><b>Нет</b> - страница не будет добавляться в карту сайта", 'type' => 'select', 'values' => array('0' => 'Нет', '1' => 'Да'), 'value' => intval(extra_get_param($plugin, 'mainp'))));
array_push($cfgX, array('name' => 'mainp_pr', 'title' => "Приоритет постранички головной страницы", 'descr' => 'значение от <b>0.0</b> до <b>1.0</b>', 'type' => 'input', 'value' => extra_get_param($plugin, 'mainp_pr') == '' ? '0.5' : extra_get_param($plugin, 'mainp_pr')));
array_push($cfg, array('mode' => 'group', 'title' => '<b>Настройки для головной страницы сайта</b>', 'entries' => $cfgX));
$cfgX = array();
array_push($cfgX, array('name' => 'cat', 'title' => "Добавлять страницы категорий в карту сайта", 'type' => 'select', 'values' => array('0' => 'Нет', '1' => 'Да'), 'value' => intval(extra_get_param($plugin, 'cat'))));
array_push($cfgX, array('name' => 'cat_pr', 'title' => "Приоритет страниц категорий", 'type' => 'input', 'value' => extra_get_param($plugin, 'cat_pr') == '' ? '0.5' : extra_get_param($plugin, 'cat_pr')));
array_push($cfgX, array('name' => 'catp', 'title' => "Добавлять постраничку страниц категорий в карту сайта", 'type' => 'select', 'values' => array('0' => 'Нет', '1' => 'Да'), 'value' => intval(extra_get_param($plugin, 'catp'))));
array_push($cfgX, array('name' => 'catp_pr', 'title' => "Приоритет постранички категорий", 'type' => 'input', 'value' => extra_get_param($plugin, 'catp_pr') == '' ? '0.5' : extra_get_param($plugin, 'catp_pr')));
array_push($cfg, array('mode' => 'group', 'title' => '<b>Настройки для страниц категорий</b>', 'entries' => $cfgX));
$cfgX = array();
array_push($cfgX, array('name' => 'news', 'title' => "Добавлять страницы новостей в карту сайта", 'type' => 'select', 'values' => array('0' => 'Нет', '1' => 'Да'), 'value' => intval(extra_get_param($plugin, 'news'))));
array_push($cfgX, array('name' => 'news_pr', 'title' => "Приоритет страниц новостей", 'type' => 'input', 'value' => extra_get_param($plugin, 'news_pr') == '' ? '0.3' : extra_get_param($plugin, 'news_pr')));
array_push($cfg, array('mode' => 'group', 'title' => '<b>Настройки для страниц новостей</b>', 'entries' => $cfgX));
$cfgX = array();
array_push($cfgX, array('name' => 'static', 'title' => "Добавлять статические страницы в карту сайта", 'type' => 'select', 'values' => array('0' => 'Нет', '1' => 'Да'), 'value' => intval(extra_get_param($plugin, 'static'))));
array_push($cfgX, array('name' => 'static_pr', 'title' => "Приоритет статических страниц", 'type' => 'input', 'value' => extra_get_param($plugin, 'static_pr') == '' ? '0.3' : extra_get_param($plugin, 'static_pr')));
array_push($cfg, array('mode' => 'group', 'title' => '<b>Настройки для статических страниц</b>', 'entries' => $cfgX));
$cfgX = array();
array_push($cfgX, array('name' => 'cache', 'title' => "Использовать кеширование карты сайта<br /><small><b>Да</b> - кеширование используется<br /><b>Нет</b> - кеширование не используется</small>", 'type' => 'select', 'values' => array('1' => 'Да', '0' => 'Нет'), 'value' => intval(extra_get_param($plugin, 'cache'))));
array_push($cfgX, array('name' => 'cacheExpire', 'title' => 'Период обновления кеша (в секундах)<br /><small>(через сколько секунд происходит обновление кеша. Значение по умолчанию: <b>10800</b>, т.е. 3 часа)', 'type' => 'input', 'value' => intval(extra_get_param($plugin, 'cacheExpire')) ? extra_get_param($plugin, 'cacheExpire') : '10800'));
array_push($cfg, array('mode' => 'group', 'title' => '<b>Настройки кеширования</b>', 'entries' => $cfgX));
// RUN
if ($_REQUEST['action'] == 'commit') {
    // If submit requested, do config save
    commit_plugin_config_changes($plugin, $cfg);
    print_commit_complete($plugin);
} else {
    generate_config_page($plugin, $cfg);
}