Файл: pages/smiles/index.php
Строк: 223
<?
define('H', $_SERVER['DOCUMENT_ROOT'].'/');
include_once H.'sys/inc/start.php';
include_once H.'sys/inc/compress.php';
include_once H.'sys/inc/sess.php';
include_once H.'sys/inc/settings.php';
include_once H.'sys/inc/db_connect.php';
include_once H.'sys/inc/ipua.php';
include_once H.'sys/inc/fnc.php';
include_once H.'sys/inc/user.php';
$set['title']='Смайлы';
include_once H.'sys/inc/thead.php';
title();
aut();
# права доступа
$if_accept = user_access('smiles');
# сообщение при переходе без прав
$if_accept_msg='Доступ запрещен';
# счетчик сколько всего смайлов
$smiles_koll = mysql_result(query("SELECT COUNT(*) FROM `smiles`"),0);
# счетчик сколько всего категорий
$smiles_dir = mysql_result(query("SELECT COUNT(*) FROM `smiles_dir`"),0);
# switch - type - переключатель
switch (empty($_GET['type'])? false : $_GET['type'])
{
# условие по умолчанию
default:
$k_page = k_page($smiles_dir,$set['p_str']);
$page = page($k_page);
$start = $set['p_str']*$page-$set['p_str'];
# если категорий = 0
if($smiles_dir==0)msg( 'Категории не созданы еще' );
# Выводим последние созданные категории вверх
$smiles_dir=query("SELECT * FROM `smiles_dir` ORDER BY `id` ASC LIMIT $start, $set[p_str]");
while($post = mysql_fetch_array($smiles_dir))
{
$smile = mysql_result(query("SELECT COUNT(*) FROM `smiles` WHERE `id_dir` = '$post[id]'"),0);
echo '<a href="?type=dir&id='.$post['id'].'"><div class="p_m"> <img src="/style/icons/default.png"/>
'.output_text($post['name']).' ('.$smile.')</br>
'.output_text($post['opis']).'</br></a>
'.($if_accept?'<span style="float: right">
<a href="?type=delet_dir&id='.$post['id'].'">'.lang('Удалить').'</a></span><a href="?type=dir_edit&id='.$post['id'].'">'.lang('Редактировать').'</a>':false).'</div>';
}
if($if_accept)
echo '<div class="p_m"> <a href="?type=dir_add">[+] '.lang('Добавить категорию').'</a></br> <a href="?type=add_smile">[+] '.lang('Добавить Смайл').'</a> </div>';
echo '<div class="p_m"> <a href="?type=smile_list">['.$smiles_koll.'] '.lang('Всего смайлов').'</a></div>';
if($k_page>1)str('?',$k_page,$page);
break;
# выводим категорию со смайлами
case 'dir':
echo '<a href="?"><div class="p_m">'.lang('Назад').'</div></a>';
if(isset($_GET['id']))
$id = intval($_GET['id']);
else
exit(header("Location: ?type=null"));
$k_post = mysql_result(query("SELECT COUNT(*) FROM `smiles` WHERE `id_dir` = '$id'"),0);
$k_page = k_page($k_post,$set['p_str']);
$page = page($k_page);
$start = $set['p_str']*$page-$set['p_str'];
if($k_post == 0 ) msg(lang('Нет смайлов'));
$smiles=query("SELECT * FROM `smiles` WHERE `id_dir` = '$id' ORDER BY `id` DESC LIMIT $start, $set[p_str]");
while($post = mysql_fetch_array($smiles))echo '<div class="p_m">
<img src="/style/smiles/'.output_text($post['name']).'" alt="'.output_text($post['name']).'" title="'.output_text($post['name']).'"/>
<> '.esc(stripcslashes(htmlspecialchars($post['zamena']))).''.($if_accept?' [<a href="?type=edit_smile&id='.$post['id'].'">'.lang('Редактировать').'</a>] :: [<a href="?type=delet_smiles&id='.$post['id'].'">'.lang('Удалить').'</a>]':false).'</div>';
if($k_page>1)
str('?type=dir&id='.$id.'&',$k_page,$page);
echo '<div class="foot"><a href="?">'.lang('Все катерогии').'</div></a>';
break;
case 'null':
echo '<a href="?"><div class="p_m">'.lang('Назад').'</div></a>';
msg(lang('Произошла ошибка'));
break;
# создаем категорию
case 'dir_add':
if($if_accept)
{
echo '<a href="?"><div class="p_m"> '.lang('Назад').'</div></a>';
if(isset($_POST['name']))
{
$name = my_esc($_POST['name']);
$opis = my_esc($_POST['name']);
if(strlen2($name)>99)
{ $err=lang('Слишком большое название категории');
}
else if(strlen2($name)<1)
{
$err=lang('Слишком короткое название категории');
} else {
query("INSERT INTO `smiles_dir` (`name`, `opis`) values('$name', '$opis')");
query("OPTIMIZE TABLE `smiles_dir`");
msg(lang('Директория').' <b>'.$name.'</b> добавлена</br> '.lang('Описание').' : '.$opis);
}
}
err();
echo '<div class="p_m">
<form method="post" action="?type=dir_add&">'.lang('Название').':(99 max)<br/>
<input name="name" maxlength="99"/><br/>
'.lang('Описание').':<br/><textarea name="opis"></textarea>
<input value="'.lang('Создать').'" type="submit"/></form></div>';
} else {
msg($if_accept_msg);
}
break;
# Редактируем категорию
case 'dir_edit':
if($if_accept)
{
echo '<a href="?"><div class="p_m"> '.lang('Назад').'</div></a>';
if(isset($_GET['id']))
$id = intval($_GET['id']);
else header("Location: ?type=null");
if(isset($_POST['name']) )
{
$name = my_esc($_POST['name']);
$opis = my_esc($_POST['opis']);
if(strlen2($name)>99)
{
$err=lang('Слишком большое название категории');
} else if(strlen2($name)<1)
{
$err=lang('Слишком короткое название категории');
}
else
{
query("UPDATE `smiles_dir` SET `name` = '".$name."', `opis` = '".$opis."' WHERE `id` = '".$id."' LIMIT 1");
msg('Директория <b>'.$name.'</b> отредактирована</br><b>'.$opis.'</b>');
}
}
err();
$dir = mysql_fetch_array(query("SELECT * FROM `smiles_dir` WHERE `id` = '".$id."'"));
echo '<div class="p_m"><form method="post" action="?type=dir_edit&id='.$id.'&">';
echo lang('Название').':(99 max)<br/><input name="name" maxlength="99" value="'.output_text($dir['name']).'"/><br/>';
echo '</div><div class="p_m">
'.lang('Описание').'<br/>
<textarea name="opis">'.output_text($dir['opis']).'</textarea></div><div class="p_m">
';
echo '<input value="'.lang('Изменить').'" type="submit"/></form></div>';
} else {
msg($if_accept_msg);
}
break;
# Добовления смайла
case 'add_smile':
if($if_accept)
{
echo '<a href="?"><div class="p_m"> '.lang('Назад').'</div></a>';
if ($smiles_dir==0)
{
msg(lang('Сначала создайте категории').' <a href="?type=dir_add">'.lang('Создать').'</a> ');
include_once H.'sys/inc/tfoot.php';
exit;
}
if(isset($_FILES['file']) &&
$_FILES['file']!=NULL &&
isset($_POST['name']) &&
isset($_POST['zamena']) &&
isset($_POST['dir'])){
$name = $_SERVER['SERVER_NAME'].'_'.my_esc($_POST['name']).'.png';
$dir_s = intval($_POST['dir']);
$zamena = my_esc($_POST['zamena']);
if($imgc=@imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'])))
{
$name = retranslit($name);
if($name==NULL){
$err = lang('Название файла не заполнено');
} else if(strlen2($name)>99){
$err = lang('Название слишком большое. max 99');
} else if(strlen2($name)<1){
$err = lang('Название слишком маленькое. min 1');
} else{
query("INSERT INTO `smiles` (`name`, `id_dir`, `zamena`) values ('".$name."', '$dir_s', '$zamena')");
@copy($_FILES['file']['tmp_name'], H.'style/smiles/'.$name);
@chmod(H.'style/smiles/'.$name,0666);
msg(lang("Успешно"));
}
} else {
msg(lang("Ошибка"));
}
}
err();
echo '<div class="p_m">'.lang('Форматы').' *.png*.jpg*.gif<br/>';
echo '<form method="post" enctype="multipart/form-data" action="?type=add_smile">';
echo '<input type="file" name="file" accept="image/*,image/gif,image/png,image/jpeg"/><br/>';
echo '<b>'.lang('Название').':</b><br/><input name="name"><br/>';
echo '<b>'.lang('Как вызывать смайл').':</b><br/><input name="zamena"> ('.lang('Пример').' :privet:)<br/>';
echo '<b>'.lang('Категория').'</b>:<br/><select name="dir">';
$q = query("SELECT * FROM `smiles_dir`");
while($dir = mysql_fetch_array($q)) echo '<option value="'.$dir['id'].'">'.output_text($dir['name']).'</option>';
echo '</select><br/>';
echo '<input value="'.lang('Загрузить').'" type="submit"/></form></div>';
} else {
msg($if_accept_msg);
}
break;
# редактирования смайла
case 'edit_smile':
if($if_accept)
{
echo '<a href="?"><div class="p_m">'.lang('Назад').' </div></a>';
if(isset($_GET['id']))
$id = intval($_GET['id']);
else header("Location: ?type=null");
if(isset($_POST['zamena']))
{
$zamena = my_esc($_POST['zamena']);
query("UPDATE `smiles` SET `zamena` = '".$zamena."' WHERE `id` = '".$id."' LIMIT 1");
msg(lang('Смайл отредактирован'));
}
$smile = mysql_fetch_array(query("SELECT * FROM `smiles` WHERE `id` = '".$id."'"));
echo '<div class="p_m"><img src="/style/smiles/'.output_text($smile['name']).'" alt="'.output_text($smile['name']).'" title="'.output_text($smile['name']).'"/>
'.output_text($smile['name']).' - '.output_text($smile['zamena']).'<br/>';
echo '<form method="post" action="?type=edit_smile&id='.$id.'&">';
echo '<b>Текст вызова</b>:<br/><input name="zamena" value="'.esc(stripcslashes(htmlspecialchars($smile['zamena']))).'"/> <br/>
* '.lang('перечеслять можно через').' "|" , '.lang('пример').' .test.|.test2.|.test3. и т.п
<br/>';
echo '<input value="'.lang('Сохранить').'" type="submit"/></form></div>';
} else {
msg($if_accept_msg);
}
break;
# вЫВОДИМ ПОЛНЫЙ СПИСОК ВСЕХ СМАЙЛОВ
case 'smile_list':
echo '<a href="?"><div class="p_m"> '.lang('Назад').'</div></a>';
$k_page = k_page($smiles_koll,$set['p_str']);
$page = page($k_page);
$start = $set['p_str']*$page-$set['p_str'];
if($smiles_koll==0)msg( lang('Нет смайлов'));
echo '<div class="p_m">'.lang('Всего смайлов').' : ('. $smiles_koll.')</div>';
$smiles=query("SELECT * FROM `smiles` ORDER BY `id` DESC LIMIT $start, $set[p_str]");
while($post = mysql_fetch_array($smiles))echo '<div class="p_m">
<img src="/style/smiles/'.output_text($post['name']).'" alt="'.output_text($post['name']).'" title="'.output_text($post['name']).'"/>
<> '.esc(stripcslashes(htmlspecialchars($post['zamena']))).'</div>';
if($k_page>1)str('?',$k_page,$page);
break;
# УДАЛЯЕМ КАТЕГОРИЮ СО ВСЕМИ ПОТРОХАМИ
case 'delet_dir':
if($if_accept)
{
if(isset($_GET['id']))
$id = intval($_GET['id']);
else header("Location: ?type=null");
$q = query("SELECT * FROM `smiles` WHERE `id_dir` = '".$id."'");
while($sm = mysql_fetch_array($q))
@unlink(H.'style/smiles/'.$sm['name']);
$q = query("SELECT * FROM `smiles` WHERE `id_dir` = '".$id."'");
while($sm = mysql_fetch_array($q))query("DELETE FROM `smiles` WHERE `id_dir` = '".$id."'");
query("DELETE FROM `smiles_dir` WHERE `id` = '".$id."'");
query("OPTIMIZE TABLE `smiles`, `smiles_dir`");
exit(header("Location: ?type=delet_msg"));
} else {
msg($if_accept_msg);
}
break;
# удаляем смайл
case 'delet_smiles':
if($if_accept)
{
if(isset($_GET['id']))
$id = intval($_GET['id']);
else header("Location: ?type=null");
$smile = mysql_fetch_array(query("SELECT * FROM `smiles` WHERE `id` = '".$id."'"));
@unlink(H.'style/smiles/'.$smile['name']);
query("DELETE FROM `smiles` WHERE `id` = '".$id."' LIMIT 1");
query("OPTIMIZE TABLE `smiles`");
exit(header("Location: ?type=delet_msg"));
} else {
msg($if_accept_msg);
}
break;
# Сообщение успешно при некоторых действиях
case 'delet_msg':
echo '<a href="?"><div class="p_m"> '.lang('Назад').' </div></a>';
msg(lang('Успешно'));
break;
}
include_once H.'sys/inc/tfoot.php';