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'); }
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); }