Файл: www/admin/function/function_news.php
Строк: 285
<?
/*-----------------------------------------------------------
Product: BBlog 2.0
License: GNU General Public License (http://www.gnu.org/licenses/gpl.html)
Copyright: (c) 2007 Batia.info
Version: 2.0 RC1
-------------------------------------------------------------*/
if ( !defined('INDEX') ) die("Эта страницу для вас недоступна!");
##################################################################
## Функция отображает все новости ##
##################################################################
function showall() {
global $cfg_count_news_adm;
db_connect();
if(isset($_GET['start']) ) { $start = $_GET['start']; }
else { $start = 0 ; }
$sql = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $start, 20") or die("Невозможно выполнить запрос к БД");
$content = '<table border="0" width="100%" cellpadding="0" cellspacing="1">';
// Формируем Заголовки таблицы
$content .= '<tr>';
$content .= '<td class="news_list_head">Заголовок заметки</td>';
$content .= '<td class="news_list_head">Дата</td>';
$content .= '<td class="news_list_head">Комментарии</td>';
$content .= '<td class="news_list_head">Действие</td>';
$content .= '</tr>';
if(mysql_num_rows($sql)==0) {
$content.='<tr><td colspan="5">У вас нет ни одной записи</td></tr>';
}else{
for($i = 0; $i < mysql_num_rows($sql); $i++) {
$r = mysql_fetch_array($sql);
$id = $r['id'];
$title = stripslashes($r['title']);
$date = $r['date'];
$comment = $r['comment'];
$messege = stripslashes($r['messege']);
/* Если строка четная - применяем к ней один стиль оформления,
если не четная - другой */
if($i%2) $class="news_list_1";
else $class="news_list_2";
// Формируем метку $page для комментариев
if($comment == "ok") {
$page = 'news'.$id;
if(count_comment($page)==0) $comment_num = '<small><i>Нет камментариев</i></small>';
else $comment_num = '<a href="comment.php?page='.$page.'&action=show">'.count_comment($page).'</a>';
} else {
$comment_num = '<small><i>Запрещены</i></small>';
}
// Формируем сообщение
$content .= '<tr>';
$content .= '<td class="'.$class.'">'.$title.'</td>';
$content .= '<td class="'.$class.'"><small>'.$date.'</small></td>';
$content .= '<td class="'.$class.'" align="center"> '.$comment_num.'</td>';
$content .= '<td class="'.$class.'" align="center">
<a href="news.php?news_id='.$id.'&action=edit"><img src="/images/edit.gif" border="0"></a>
<a href="news.php?news_id='.$id.'&action=delete"><img src="/images/del.gif" border="0"></a></td>';
$content .= '</tr>';
}
}
$content .='</table>';
$content .='<div id="speedbar">Страница: '.show_speedbar().'</div>';
return $content;
}
##################################################################
## Функция выводит на экран список новстей разбитых по 10 штук ##
##################################################################
function show_speedbar() {
global $cfg_count_news_adm, $start;
$sql=mysql_query("SELECT id FROM news") or die("Невозможно послать запрос к БД");
$count_rows = mysql_num_rows($sql); // Количество записей?
$show_num=0;
$result="";
for($i=0; $i<$count_rows; ) {
if($start == $i) $class='id="current"'; else $class='';
$result .= '<a href="news.php?start='.$i.'&action=showall" '.$class.'>'.$show_num.'</a> ';
$i=$i+$cfg_count_news_adm;
$show_num++;
}
return $result;
}
##################################################################
## Функция отображает форму для добавления новой записи ##
##################################################################
function add_form() {
// ФОРМИРУЕМ ФОРМУ ВВОДА ДАННЫХ С ВИЗИВИГ РЕДАКТОРОМ
$content ='
<form action="news.php?action=save_new" method="post" name="post" onsubmit="return checkForm(this)" enctype="multipart/form-data">
<table border="0">
<tr>
<td>
<small>Заголовок:</small><br>
<input type="text" name="title" size="40">
</td>
<td>
<small>День:</small><br>
<input type="text" name="day" size="1" maxlength="2" value="'.date("d").'">
</td>
<td>
<small>Месяц:</small><br>
<input type="text" name="month" size="1" maxlength="2" value="'.date("m").'">
</td>
<td>
<small>Год:</small><br>
<input type="text" name="year" size="2" maxlength="4" value="'.date("Y").'">
</td>
</tr>
<tr>
<td colspan="4">
<small>Таги (Через запятую...)</small><br>
<input type="text" name="tags" size="40">
</td>
</tr>
<tr>
<td colspan="4">
<input type="hidden" name="comment" value="no">
<input type="Checkbox" name="comment" value="ok" ><small>Разрешить камментировать?</small></td>
</tr>
<tr>
<td colspan="4">
<small>Сообщение</small><br>
<textarea name="message" id="message" cols="50" rows="30"></textarea>
</td>
</tr>
<tr>
<td colspan="4"><input type="submit" value="Сохранить"> <input type="reset" value="Очистить"></td>
</tr>
</table>
</form>
';
return $content;
}
##################################################################
## Функция сохраняет новую запись ##
##################################################################
function save_new() {
db_connect();
// Создаем короткие имена переменных и проеверяем на ошибки.
$title = addslashes($_POST['title']);
$date = addslashes($_POST['year'].$_POST['month'].$_POST['day']);
$tags = addslashes($_POST['tags']);
$comment = $_POST['comment'];
$messege = addslashes($_POST['message']);
$content = '<p>Запись "<span id="ok_messege">'.stripslashes($title).'</span>", успешно добалена в БД.</p>';
$content .= '<p><a href="news.php?action=add_form">Добавить новую запись</a></p>';
$content .='<p><a href="news.php?action=showall">Список страниц</a></p>';
$ref = $_SERVER['HTTP_REFERER'];
$content .= '<p><a href="'.$ref.'">Назад</a></p>';
mysql_query("INSERT INTO news (title, date, tags, comment, messege) VALUES ('$title', '$date', '$tags', '$comment', '$messege') ") or die("Невозможно добавить новую запись в БД");
return $content;
}
##################################################################
## Функция удаляет запись ##
##################################################################
function delete_news($news_id) {
db_connect();
$sql = mysql_query("SELECT title FROM news WHERE id = '$news_id'") or die("Невозможно выполнить запрос к БД");
$title = mysql_result($sql,0,0);
$title = stripslashes($title);
mysql_query("DELETE FROM news WHERE id = '$news_id'") or die("Невозможно удалить строку таблицы");
$content = '<p>Запись "<span id="ok_messege">'.$title.'</span>", успешно удалена.</p>';
$content .= deleteall('news'.$news_id);
$ref = $_SERVER['HTTP_REFERER'];
$content .= '<p><a href="'.$ref.'">Назад</a></p>';
return $content;
}
##################################################################
## Функция отображает форму для редактирования записи ##
##################################################################
function edit_form($news_id) {
db_connect();
$sql = mysql_query("SELECT * FROM news WHERE id = '$news_id'") or die("Невозможно отправить запрос к БД");
$title = stripslashes(mysql_result($sql,0,'title'));
$date = mysql_result($sql,0,'date');
$date = explode("-",$date);
$year = $date[0];
$month = $date[1];
$day = $date[2];
$tags = stripslashes(mysql_result($sql,0,'tags'));
$comment = mysql_result($sql,0,'comment');
if($comment == "ok") { $checked = "checked"; }
else { $checked = ""; }
$messege = stripslashes(mysql_result($sql,0,'messege'));
// ФОРМИРУЕМ ФОРМУ ВВОДА ДАННЫХ С ВИЗИВИГ РЕДАКТОРОМ
$content ='
<form action="news.php?action=save_edited&news_id='.$news_id.'" method="post" name="post" onsubmit="return checkForm(this)" enctype="multipart/form-data">
<table border="0">
<tr>
<td>
<small>Заголовок:</small><br>
<input type="text" name="title" size="40" value="'.$title.'">
</td>
<td>
<small>День:</small><br>
<input type="text" name="day" size="1" maxlength="2" value="'.$day.'">
</td>
<td>
<small>Месяц:</small><br>
<input type="text" name="month" size="1" maxlength="2" value="'.$month.'">
</td>
<td>
<small>Год:</small><br>
<input type="text" name="year" size="2" maxlength="4" value="'.$year.'">
</td>
</tr>
<tr>
<td colspan="4">
<small>Таги (Через запятую...)</small><br>
<input type="text" name="tags" size="40" value="'.$tags.'">
</td>
</tr>
<tr>
<td colspan="4">
<input type="hidden" name="comment" value="no">
<input type="Checkbox" name="comment" value="ok" '.$checked.'><small>Разрешить камментировать?</small></td>
</tr>
<tr>
<td colspan="4">
<small>Сообщение</small><br>
<textarea name="message" id="message" cols="50" rows="30">'.$messege.'</textarea>
</td>
</tr>
<tr>
<td colspan="4"><input type="submit" value="Сохранить"> <input type="reset" value="Очистить"></td>
</tr>
</table>
</form>
';
return $content;
}
##################################################################
## Функция сохраняет измененную запись ##
##################################################################
function save_edited($news_id) {
db_connect();
// Создаем короткие имена переменных и проеверяем на ошибки.
$title = addslashes($_POST['title']);
$date = $_POST['year'].$_POST['month'].$_POST['day'];
$tags = addslashes($_POST['tags']);
$comment = $_POST['comment'];
$messege = addslashes($_POST['message']);
mysql_query("UPDATE news SET title='$title', date='$date', tags='$tags', comment='$comment', messege='$messege' WHERE id = '$news_id'") or die("Невозможно обновить запись в БД");
$content = '<p>Запись "<span id="ok_messege">'.stripslashes($title).'</span>", успешно добалена в БД.</p>';
$content .='<p><a href="news.php?action=showall">Список страниц</a></p>';
$ref = $_SERVER['HTTP_REFERER'];
$content .= '<p><a href="'.$ref.'">Назад</a></p>';
return $content;
}
?>