Файл: sysadm/sitemap.php
Строк: 289
<?
define('ROOT','../');
require_once (ROOT.'system/power.php');
$fuser->aut();
if($admin->user_can('settings_site',$ya['id'],true));
$diz -> head('Карта сайта');
$diz -> title('Карта сайта');
switch($do){
///удаление правила
case 'del_rule':
$sql = $db -> query("SELECT `id` FROM `sitemap` where `id`='".$id."'");
if ($sql-> num_rows > 0) {
if (!isset($_GET['true'])) {
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?do=del_rule&id='.$id.'&page='.$page.'&true">'.language('Да').'</a>
<a class="dialog_m" href="?do=rule&id='.$id.'&page='.$page.'">'.language('Нет').'</a>
</div>';
} else {
$db -> query("DELETE FROM `sitemap` WHERE `id`='".$id."'");
header('Location: ?do=rules&page='.$page);
}
}else header('Location: ?');
break;
//создание правила
case 'create':
if (!isset($_POST['submit'])) {
$p = array('static' => 'Статическое','dinamic' => 'Динамическое');
$p1 = null;
foreach ($p as $k1 => $v1) {
$p1 .= '<option value="'.$k1.'">'.language($v1).'</option>';
}
echo '<div class="fon"><form action="?do=create&page='.$page.'" method="post">
'.language('Правило').':<br/><input type="text" name="rule" value="http://'.$_SERVER['HTTP_HOST'].'/"/><br/>
'.language('Тип').':<br/><select name="type">'.$p1.'</select><br/>
'.language('Таблица').'*:<br/><input type="text" name="table"/><br/>
'.language('Поле').'*:<br/><input type="text" name="info"/><br/>
* - '.language('заполняется только для динамических правил').'<br/>
<input type="submit" name="submit" value="'.language('Создать').'"/>
</form>
</div>';
echo '<div class="levo"><a href="?do=rules&page='.$page.'" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
}else{
$type = (isset($_POST['type']) && ($_POST['type'] == 'static' or $_POST['type'] == 'dinamic')) ? trim($_POST['type']) : 'static';
$rule = shit($_POST['rule']);
if($type=='dinamic'){
$table = shit($_POST['table']);
$info = shit($_POST['info']);
}else{
$table=$info=null;
}
$db -> query("INSERT INTO `sitemap` (`type`,`rule`,`table`,`info`) VALUES ('".$type."','".$rule."','".$table."','".$info."')");
header('Location: ?do=rules&page='.$page);
}
break;
///удаление всех правил
case 'clear_rules':
if (!isset($_GET['true'])) {
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?do=clear_rules&page='.$page.'&true">'.language('Да').'</a>
<a class="dialog_m" href="?do=rules&page='.$page.'">'.language('Нет').'</a>
</div>';
} else {
$db -> query("DELETE FROM `sitemap`");
header('Location: ?do=rules');
}
break;
//правило
case 'rule':
$sql = $db -> query("SELECT * FROM `sitemap` where `id`='".$id."'");
if ($sql-> num_rows > 0) {
echo '<div class="menu"><a href="?do=del_rule&id='.$id.'&page='.$page.'" class="menutuch">'.$diz -> icon('settings.png').' '.language('Удалить').'</a></div>';
$array=$sql->fetch_assoc();
if (!isset($_POST['submit'])) {
$p = array('dinamic' => 'Динамическое', 'static' => 'Статическое');
$p1 = null;
foreach ($p as $k1 => $v1) {
if ($array['type'] == $k1) $p1 .= '<option selected value="'.$k1.'">'.language($v1).'</option>';
else $p1 .= '<option value="'.$k1.'">'.language($v1).'</option>';
}
echo '<div class="fon"><form action="?do=rule&id='.$id.'&page='.$page.'" method="post">
'.language('Правило').':<br/><input type="text" name="rule" value="'.$array['rule'].'"/><br/>
'.language('Тип').':<br/><select name="type">'.$p1.'</select><br/>
'.language('Таблица').'*:<br/><input type="text" name="table" value="'.$array['table'].'"/><br/>
'.language('Поле').'*:<br/><input type="text" name="info" value="'.$array['info'].'"/><br/>
* - '.language('заполняется только для динамических правил').'<br/>
<input type="submit" name="submit" value="'.language('Изменить').'"/>
</form>
</div>';
echo '<div class="levo"><a href="?do=rules&page='.$page.'" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
}else{
$type = (isset($_POST['type']) && ($_POST['type'] == 'static' or $_POST['type'] == 'dinamic')) ? trim($_POST['type']) : 'static';
$rule = shit($_POST['rule']);
if($type=='dinamic'){
$table = shit($_POST['table']);
$info = shit($_POST['info']);
}else{
$table=$info=null;
}
$db -> query("UPDATE `sitemap` SET `type` = '".$type."',`rule` = '".$rule."',`table` = '".$table."', `info` = '".$info."' WHERE `id` = '".$id."'");
header('Location: ?do=rules&page='.$page);
}
}else header('Location: ?do=rules&page='.$page);
break;
//все правила
case 'rules':
echo '<div class="but_razdel">
<a class="button_razdel" style="width:50%" href="?">'.language('Основное').'</a>
<div class="button_razdel" style="width:50%"><b>'.language('Правила').'</b></div>
</div>';
echo '<div class="menu"><a href="?do=create&page='.$page.'" class="menutuch">'.$diz -> icon('settings.png').' '.language('Создать').'</a></div>';
echo '<div class="menu"><a href="?do=clear_rules&page='.$page.'" class="menutuch">'.$diz -> icon('settings.png').' '.language('Очистить').'</a></div>';
echo '<div class="new">'.language('Правила').'</div>';
$count = $db -> dbcount('COUNT(`id`)','sitemap');
$num = isset($ya['num']) ? $ya['num'] : 10;
$total = intval(($count - 1) / $num) + 1;
if (!isset($_GET['page']) || !is_numeric($_GET['page']) || $_GET['page'] < 1 )
{
$page = 1;
} elseif($_GET['page'] > $total)
{ $page = $total;
} else $page = (int)$_GET['page'];
$start = $page * $num - $num;
$sql = $db -> query("SELECT * FROM `sitemap` ORDER BY `id` LIMIT ".$start.",".$num);
if($sql->num_rows>0){
while ($array = $sql -> fetch_assoc()) {
if($array['info']!=null)$info='{'.$array['info'].'}'; else $info=null;
echo '<div class="menu"><a href="?do=rule&id='.$array['id'].'" class="menutuch">'.$array['rule'].''.$info.'</a></div>';
}
$act = '?do=rules';
echo $func -> pagenav($act,$page,$total);
}else echo '<div class="fon">'.language('Список пуст').'</div>';
break;
///настройки
case 'settings':
if (!isset($_POST['submit'])) {
echo '<div class="fon"><form action="?do=settings" method="post">';
$array = array('1' => 'Автоматическое', '2' => 'Ручное', '3' => 'Интервал');
$volume = null;
foreach ($array as $key => $value) {
if ($db->settings('sitemap_type') == $key) $type .= '<option selected value="'.$key.'">'.language($value).'</option>';
else $type .= '<option value="'.$key.'">'.language($value).'</option>';
}
echo language('Тип').':<br/><select name="type">'.$type.'</select><br/>';
echo language('Интервал').' ('.language('дней').'):<br/><input type="number" name="interval" value="'.($db->settings('sitemap_interval')/86400).'" min="1" max="30"/>';
echo '<input type="submit" name="submit" value="'.language('Сохранить').'"/></form></div>';
}else{
$type = (!empty($_POST['type']) && ($_POST['type']>=0 or $_POST['type']<=2)) ? abs(intval($_POST['type'])) : 1;
$interval = (!empty($_POST['interval']) && ($_POST['interval']>=1 or $_POST['interval']<=30)) ? abs(intval($_POST['interval'])) : 1;
$array = array(
'sitemap_type' => $type,
'sitemap_interval' => ($interval*86400)
);
$db->save_settings($array);
header('Location: ?do=settings');
}
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
break;
case 'refresh':
if($db->settings('sitemap_type')==2 or $db->settings('sitemap_type')==3) {
if (!isset($_GET['true'])) {
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?do=refresh&true">'.language('Да').'</a>
<a class="dialog_m" href="?">'.language('Нет').'</a>
</div>';
} else {
$sitemap->generate();
$db->query("UPDATE `settings` SET `parametr`=".(time()+$db->settings('sitemap_interval'))." where `name`='sitemap_time' LIMIT 1");
header('Location: ?');
}
}else header('Location: ?');
break;
//просмотр карты
case 'sitemap':
$count = $sitemap->count();
$num = isset($ya['num']) ? $ya['num'] : 10;
$total = intval(($count - 1) / $num) + 1;
if (!isset($_GET['page']) || !is_numeric($_GET['page']) || $_GET['page'] < 1 )
{
$page = 1;
} elseif($_GET['page'] > $total)
{ $page = $total;
} else $page = (int)$_GET['page'];
if($start<0 or $page==1)$start=0; else $start = $page * $num - $num;
$max=$num*$page;
if($max>$count)$max=$count;
for($i=$start;$i<$max;$i++){
echo '<div class="fon">#<b>'.$i.'</b>
Loc: <span class="text">'.$sitemap->view_sitemap('loc',$i).'</span><br/>
Lastmod: <span class="text">'.$sitemap->view_sitemap('lastmod',$i).'</span><br/>
Changefreq: <span class="text">'.$sitemap->view_sitemap('changefreq',$i).'</span><br/>
Priority: <span class="text">'.$sitemap->view_sitemap('priority',$i).'</span>
</div>';
}
$act = '?do=sitemap';
echo $func -> pagenav($act,$page,$total);
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
break;
//основное
default:
echo '<div class="but_razdel">
<div class="button_razdel" style="width:50%"><b>'.language('Основное').'</b></div>
<a class="button_razdel" style="width:50%" href="?do=rules">'.language('Правила').'</a>
</div>';
echo '<div class="menu"><a href="?do=settings" class="menutuch">'.$diz -> icon('settings.png').' '.language('Настройки').'</a></div>';
if($db->settings('sitemap_type')==2 or $db->settings('sitemap_type')==3)echo '<div class="menu"><a href="?do=refresh" class="menutuch">'.$diz -> icon('settings.png').' '.language('Обновить').'</a></div>';
echo '<div class="new">'.language('Сведения').'</div>';
echo '<div class="fon">
'.language('Записей').': <span class="count">'.$sitemap->count().'</span><br/>';
if($db->settings('sitemap_type')==2 or $db->settings('sitemap_type')==3)echo language('Последнее обновление').': <span class="date">'.$func->times(date('d m Y H:i:s',ustime($ya['gmt'],($db->settings('sitemap_time')-$db->settings('sitemap_interval'))))).'</span><br/>';
if($db->settings('sitemap_type')==3)echo language('Следующее обновление').': <span class="date">'.$func->times(date('d m Y H:i:s',ustime($ya['gmt'],$db->settings('sitemap_time')))).'</span><br/>';
echo language('Размер базы').': <span class="count">'.$func->size($sitemap->map_size()).'</span>';
echo '</div>';
echo '<div class="new">'.language('Карты').'</div>';
echo '<div class="menu"><a href="?do=sitemap&mode=" class="menutuch">'.$diz -> icon('r.png').' sitemap</a></div>';
}
echo '<div class="levo"><a href="./" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Управление').'</a></div>';
echo '<div class="levo"><a href="'.ROOT.'" class="levo_tuch">'.$diz -> icon('home.png').' '.language('На главную').'</a></div>';
#####Копирайт#######
$diz -> out($msg);
?>