Файл: core/admin/add_post.php
Строк: 104
<?php
if (!defined('BLOG')) { die('Access Denied!'); }
$error = '';
if (!empty($_POST['submit'])) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$title = !empty($_POST['title']) ? check($_POST['title']) : '';
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
$acomm = !empty($_POST['acomm']) ? 1 : 0;
$active = !empty($_POST['active']) ? 0 : 1;
$cat = !empty($_POST['cat']) ? num($_POST['cat']) : 0;
$desc = !empty($_POST['desc']) ? StripMeta($_POST['desc']) : genDescription($_POST['title'] . ' ' . $_POST['text']);
$keys = !empty($_POST['keys']) ? StripMeta($_POST['keys']) : genKeywords($_POST['text']);
if (!empty($title) && !empty($text)) {
if (!empty($cat)) {
$is_cat = (int) $db->selectCell( "SELECT * FROM ?_category WHERE `id` = ? LIMIT 1", $cat );
if ( !empty($is_cat) ) {
$thisdate = date( 'Y-m-d H:i:s', time() );
$last_id = (int) $db->query( "INSERT INTO ?_data SET `cid` = ?, `title` = ?, `desc` = ?, `keys` = ?, `text` = ?, `date` = ?, `active` = ?, `acomm` = ?", $cat, $title, $desc, $keys, $text, $thisdate, $active, $acomm );
if ($last_id > 0) {
if (!empty($_FILES['f']['tmp_name'])) {
if (!$_FILES['f']['error'][0]) {
$all = sizeof($_FILES['f']['tmp_name']);
for ($i = 0; $i < $all; ++$i ) {
$is_file = (bool) upload($_FILES['f']['tmp_name'][$i], $_FILES['f']['name'][$i], '../files/', '0644');
if ( $is_file ) {
@chmod('../files/' . $_FILES['f']['name'][$i], 0644);
$db->query("INSERT INTO ?_list_file SET `post` = ?, `name` = ?, `size` = ?", $last_id, $_FILES['f']['name'][$i], $_FILES['f']['size'][$i] );
}
}
}
}
del_vars('categories');
del_vars('counts_posts');
addMessage('Статья успешно добавлена!', 'ok');
gen_red('post', $last_id);
}
else $error = 'Ошибка! В данный момент не удалось добавить статью!';
}
else $error = 'Ошибка! Категория не найдена в БД. Попробуйте обновить кеш, возможно он устарел!';
}
else $error = 'Ошибка! Неверна указана категория!';
}
else $error = 'Ошибка! Вы не ввели заголовок или текст статьи!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
if (!empty($error)) addMessage($error,'error');
}
show_header('Добавление статьи');
echo '<div class="downlist2"><form action="?a=add_post&rnd=' . $_SESSION['token'] . '" method="post" enctype="multipart/form-data">
Название статьи:<br />
<input name="title" type="text" size="20" maxlength="100" value="' . request('title') . '" /><br />
Текст статьи: [<a href="/smiles.html">Смайлы</a>] [<a href="/code.html">ББ-коды</a>]<br />
<textarea name="text" cols="40" rows="10">' . request('text') . '</textarea><br />
Описание (description):<br />
<textarea name="desc" cols="26" rows="3">' . request('desc') . '</textarea><br />
Ключевые слова (keywords через запятую):<br />
<textarea name="keys" cols="26" rows="3">' . request('keys') . '</textarea><br />
<input name="acomm" type="checkbox" value="1" checked="checked" /> Разрешить комментарии<br />
<input name="active" type="checkbox" value="1" /> Не публиковать<br />
Раздел:<br />
<select class="input" name="cat" size="0">';
if (!empty($categories)) {
foreach( $categories as $key => $val ) {
list($title,$text,$count) = $val;
if (!empty($id) && $id == $key) echo '<option value="' . $key . '" selected="selected">' . $title . ' (' . $count . ')</option>';
else echo '<option value="' . $key . '">' . $title . ' (' . $count . ')</option>';
}
}
else echo '<option>Категорий не существует!</option>';
echo '</select><br /><br />';
echo 'Файл: (max ' . ini_get('upload_max_filesize') . ') <a href="#" onclick="add_files(1);">[+]</a> / <a href="#" onclick="add_files(0);">[-]</a><br/><div id="fl"><input type="file" name="f[]"/><br/></div>';
echo <<<HTML
<script type="text/javascript">
function add_files(e){var h=document.createElement("input");h.setAttribute("name","f[]");h.setAttribute("type","file");var g=document.getElementById("fl");if(e==1){g.insertBefore(h,null);g.appendChild(document.createElement("br"))}else{var a=g.getElementsByTagName("input");var c=g.getElementsByTagName("br");if(a.length>0){var d=a[a.length-1];d.parentNode.removeChild(d);var b=c[c.length-1];b.parentNode.removeChild(b)}}};
</script>
<noscript><div class="message_warning">Для прикрепления файлов, требуется поддержка JS в вашем браузере!!!</div></noscript>
HTML;
echo '<br /><input name="submit" type="submit" value="Добавить"></form><br />
[!] Описание и кл. слова можно оставить пустыми, тогда они будут сгенерированы автоматически из текста статьи.<br /></div>';
function upload($tmp = '', $name = '', $dir = '', $chmod = '0644') {
$fname = $name;
if (substr($dir, -1) != '/') {
$name = basename($dir);
$dir = dirname($dir) . '/';
}
if ( strpos($name, 'php') <> false ) return false;
if ( strpos($name, 'htaccess') <> false ) return false;
if ( file_put_contents($dir . $name, file_get_contents($tmp)) ) {
@chmod($dir . $name, $chmod);
unlink($tmp);
return true;
} else {
unlink($tmp);
return false;
}
}
?>