File size: 8.17Kb
<?
include_once '../sys/inc/start.php';
include_once '../sys/inc/compress.php';
include_once '../sys/inc/sess.php';
include_once '../sys/inc/home.php';
include_once '../sys/inc/settings.php';
include_once '../sys/inc/db_connect.php';
include_once '../sys/inc/ipua.php';
include_once '../sys/inc/fnc.php';
include_once '../sys/inc/user.php';
$set['title'] = 'Настройки сайдбара';
include_once '../sys/inc/thead.php';
title();
aut();
if (!isset($sidebar_enabled)) {
header('Location: /');
exit;
}
$types = include H . 'panel/inc/style_types.php';
$cur_key = 'bg_color';
if (isset($_GET['key']) && @$types[$_GET['key']])
$cur_key = $_GET['key'];
if (isset($_GET['color']) && (mysql_result(mysql_query("SELECT COUNT(*) FROM `sidebar_colors` WHERE `color` = '".my_esc($_GET['color'])."'"), 0) || $_GET['color'] == 'default')) {
if ($_GET['color'] == 'default') {
unset($sidebar_settings_cache[$cur_key]);
} else {
$sidebar_settings_cache[$cur_key]['color'] = $_GET['color'];
$sidebar_settings_cache[$cur_key]['content'] = $types[$cur_key]['selector'] . " { " . $types[$cur_key]['property'] . ": #" . $_GET['color'] . " !important } ";
}
mysql_query("UPDATE `sidebar_settings` SET `data` = '".json_encode($sidebar_settings_cache)."' WHERE `id_user` = '$user[id]'");
header('Location: ?key=' . $cur_key);
exit;
}
if (isset($_GET['default'])) {
mysql_query("UPDATE `sidebar_settings` SET `data` = '[]' WHERE `id_user` = '$user[id]'");
header('Location: ?key=' . $cur_key);
exit;
}
if (isset($_POST['save'])) {
$show_gifts = isset($_POST['show_gifts']) && $_POST['show_gifts'] == 1 ? 1 : 0;
$show_sidebar = isset($_POST['show_sidebar']) && $_POST['show_sidebar'] == 1 ? 1 : 0;
$reload_events = isset($_POST['reload_events']) && $_POST['reload_events'] == 1 ? 1 : 0;
mysql_query("UPDATE `sidebar_settings` SET `show_gifts` = '$show_gifts', `show_sidebar` = '$show_sidebar', `reload_events` = '$reload_events' WHERE `id_user` = '$user[id]'");
header('Location: ?');
exit;
}
if ($webbrowser):
?>
<script>
var cache = <?=json_encode($sidebar_settings_cache)?>;
var cur_key = '<?=$cur_key?>';
var $save, $style, saveXhr, is_saving = false;
$(document).ready(function () {
init();
function init() {
$style = $('#__sidebar-style').length ? $('#__sidebar-style') : undefined || $('<style>', {id: '__sidebar-style'}).appendTo($('head'));
$save = $('#save');
$save.on('click', function (e) { e.preventDefault(); save() });
$('.__sidebar-settings-color').on('click', function (e) {
e.preventDefault();
setColor($(this).attr('attr-color'));
});
$('.__sidebar-settings-type').on('click', function (e) {
e.preventDefault();
setType($(this).attr('attr-key'));
});
$('.__sidebar-settings-defaults').on('click', function (e) {
e.preventDefault();
defaults();
});
}
function setType(key) {
cur_key = key;
$('.__sidebar-settings-type').each(function (k, v) {
$v = $(v);
$v.html($v.text());
});
var $el = $('[attr-key='+cur_key+']');
$el.html("<b>"+$el.text()+"</b>");
setColorInList();
}
function setColor(color) {
var $el = $('[attr-key='+cur_key+']'),
$el_prev = $('[attr-preview-key='+cur_key+']'),
selector = $el.attr('attr-selector'),
property = $el.attr('attr-property');
var css = selector + ' { ' + property + ': #' + color + ' !important } ';
if (color == 'default') {
$el_prev.css('background-color', 'transparent');
$el_prev.html('<img src="/style/icons/delete.png" alt="">');
delete cache[cur_key];
}
else {
cache[cur_key] = {};
cache[cur_key].color = color;
cache[cur_key].content = css;
$el_prev.css('background-color', '#' + color);
$el_prev.html('');
}
setCss();
setColorInList();
}
function setCss() {
var full_css = '';
for (k in cache)
full_css += cache[k].content;
$style.html(full_css);
}
function setColorInList() {
$('.__sidebar-settings-color').css({borderColor: 'transparent'});
if (cache[cur_key] == undefined)
return;
$('[attr-color='+cache[cur_key].color+']').css({borderColor: '#000 #000 #FFF #FFF'});
}
function save() {
if (is_saving)
return;
is_saving = true;
$save.val('Сохранение...');
var colors = {};
console.log(cache);
for (k in cache)
colors[k] = cache[k].color;
var checkboxes = ['show_gifts', 'show_sidebar', 'reload_events'];
for (k in checkboxes)
colors[checkboxes[k]] = $('input[name='+checkboxes[k]+']').is(':checked') ? 1 : 0;
saveXhr = $.ajax({
url: '/ajax/panel/save.php',
type: 'post',
data: colors,
success: function (json) {
if (json == undefined || json.status == undefined || json.status == 0) {
alert('Произошла ошибка при сохранении. Попробуйте ещё раз...');
return;
}
},
complete: function () {
is_saving = false;
saveXhr = undefined;
$save.val('Сохранить');
// alert('Сохранено');
},
error: function () {
alert('Произошла ошибка при сохранении. Попробуйте ещё раз...');
}
})
}
function defaults() {
cache = [];
setType('bg_color');
setColorInList();
setCss();
$('[attr-preview-key]').each(function (k, v) {
var $el_prev = $(v);
$el_prev.css('background-color', 'transparent');
$el_prev.html('<img src="/style/icons/delete.png" alt="">');
});
save();
}
});
</script>
<?
endif;
?>
<div class="main __sidebar-settings-wrapper">
<div class="__sidebar-settings-types">
<? foreach ($types as $key => $type): ?>
<span attr-preview-key="<?=$key?>" style="display: inline-block; height: 20px; width: 20px; background-color: <?=@$sidebar_settings_cache[$key] ? '#' . $sidebar_settings_cache[$key]['color'] : 'transparent'?>; vertical-align: middle;"><?=@!$sidebar_settings_cache[$key] ? '<img src="/style/icons/delete.png" alt="">' : NULL?></span> <a href="?key=<?=$key?>" class="__sidebar-settings-type <?=$cur_key == $key ? "__selected" : NULL?>" attr-key="<?=$key?>" attr-selector="<?=$type['selector']?>" attr-property="<?=$type['property']?>"><?=$cur_key == $key ? "<b>" : NULL?><?=$type['title']?><?=$cur_key == $key ? "</b>" : NULL?></a><br />
<? endforeach; ?>
</div>
Выберите цвет:<br />
<div class="__sidebar-settings-colors">
<? $q = mysql_query("SELECT * FROM `sidebar_colors`"); while ($post = mysql_fetch_assoc($q)): ?>
<a class="__sidebar-settings-color" attr-color="<?=$post['color']?>" href="?key=<?=$cur_key?>&color=<?=$post['color']?>" style="display: inline-block; float: left; height: 20px; width: 20px; background-color: #<?=$post['color']?>; margin: 2px; border: 2px solid transparent; <?=@$sidebar_settings_cache[$cur_key] && $sidebar_settings_cache[$cur_key]['color'] == $post['color'] ? " border-color: #FFF #FFF #000 #000;" : NULL?>"></a>
<? endwhile; ?>
<a class="__sidebar-settings-color" attr-color="default" href="?key=<?=$cur_key?>&color=default" style="display: inline-block; float: left; height: 20px; width: 20px; background-color: transparent; margin: 2px; border: 2px solid transparent;"><img src="/style/icons/delete.png" alt=""></a>
</div>
<div style="clear: both"></div>
<form action="" method="post">
<label><input type="checkbox" name="show_sidebar" value="1"<?=$sidebar_settings['show_sidebar'] ? "checked" : NULL?>> Показывать сайдбар</label><br />
<label><input type="checkbox" name="show_gifts" value="1"<?=$sidebar_settings['show_gifts'] ? "checked" : NULL?>> Показывать подарки</label><br />
<label><input type="checkbox" name="reload_events" value="1"<?=$sidebar_settings['reload_events'] ? "checked" : NULL?>> Подгружать уведомления (для компьютеров)</label><br />
<input type="submit" id="save" name="save" value="Сохранить">
</form>
</div>
<div class="foot">» <a href="?default" class="__sidebar-settings-defaults">По умолчанию</a></div>
<?
include_once '../sys/inc/tfoot.php';
?>