Подскажите пожалуйста, как сделать форму для новости в админке Экономической игры?
Я нашел данную форму, но не понимаю как её перенести на ФФ...
<div class="col-md-8">
<div class="panel panel-default">
<div class="panel-heading">
<div class="silver-bk"><div class="clr"></div>
<div class="acc-title">Добавить товар</div>
[br /]
</div></div><div class="clr"></div>
<div class="silver-bk"><div class="clr"></div>
<div class="panel-body">
<form action="/?menu=admin4ik&sel=mag_get_tavar" method="post" enctype="multipart/form-data">
<p>Название товара</p>
<p><input type='text' name='nametovar' size='60' /></p>
<p>Цена товара (RUB)</p>
<p><input type='text' name='price' size='40' /></p>
<p>Категория товара</p>
<p><select name="cat">
<option selected disabled>Выберите категорию товара</option>
<?php
$db->Query("SELECT * FROM `db_mag_cat` ORDER BY `id` ASC ");
while ( $rows = $db->FetchArray() ){
echo "<option value='".$rows['id']."'>".$rows['name_cat']."</option>";
}
?>
</select>
<script type="text/javascript" src="/js/editor/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
editor_deselector : "mceNoEditor",
theme : "advanced",
plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
// Theme options
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright",
theme_advanced_buttons2 : "styleselect,formatselect,fontselect,fontsizeselect,|,fullscreen,media,advhr",
theme_advanced_buttons3 : "bullist,numlist,|,outdent,indent,blockquote,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons4 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell",
theme_advanced_buttons5 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom",
theme_advanced_resizing : false,
// Example content CSS (should be your site CSS)
content_css : "editor/css/content.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
extended_valid_elements : "iframe- ",[/li][/list]
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
},
// Style formats
style_formats : [
{title : 'DEFAULT', inline : 'span', classes : 'text-content'}
],
// Enable translation mode
translate_mode : true,
language : "ru"
});
</script>
</p>
<p>Описание товара</p>
<p><textarea rows="15" cols="55" name="description"></textarea></p> [br /][br /]
<p>Выберите фото (JPG, jpg, jpeg, JPEG, gif, GIF, png, PNG) [br /]Название картинки должно быть по АНГЛИЙСКИ!!!</p>
<p><input type="FILE" name="imgupload"></p>
<p>Выберите товар (RAR, ZIP, TXT) [br /]Название файла должно быть по АНГЛИЙСКИ!!!</p>
<!-- Поле файла и кнопка Обзор -->
<p><input type='file' name='FILE' size='15' /></p> [br /][br /]
<input type=submit name="submit" id="submit" value="Загрузить">
</form>
<?php
//echo 'Document root: '.$_SERVER['DOCUMENT_ROOT'].'[br /]';
echo 'Полный путь к скрипту и его имя: '.$_SERVER['SCRIPT_FILENAME'].'[br /]';
//echo 'Имя скрипта: '.$_SERVER['SCRIPT_NAME'];
$_OPTIMIZATION["title"] = "Добавить товар";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];
$submit=$_POST["submit"];
if(isset($submit))
{
# === Грузим архив на сервер === #
$filename1 = $_FILES['FILE']['name'];
$filename1 = strtolower($filename1);
#загружаем в каталог
$uploaddir = 'uploads/';
$file_ext = strrchr($filename1, '.');
#имя файла
$namefile = md5(basename($_FILES['FILE']['name'])).$file_ext;
$uploadfile = $uploaddir.$namefile;
#Проверяем загружен ли файл
if(is_uploaded_file($_FILES["FILE"]["tmp_name"])){
if(preg_match('/[.](RAR)|(ZIP)|(TXT)|(rar)|(zip)|(txt)$/',$_FILES['FILE']['name']))
//проверка формата исходного файла
#Если файл загружен успешно, перемещаем его из временной директории в конечную
if (move_uploaded_file($_FILES['FILE']['tmp_name'], $uploadfile)) {
echo "<h3 style='color:green'>Файл успешно загружен на сервер</h3>";
}
else
{
echo "<h3 style='color:red'>Ошибка! Не удалось загрузить файл на сервер!</h3>";
}
}
else
{
echo("Ошибка загрузки файла");
echo $_FILES['FILE']['error'];
/*
Начиная с PHP 4.2.0, PHP возвращает код ошибки наряду с другими атрибутами принятого файла. Он расположен в массиве, создаваемом PHP при загрузке файла, и может быть получен при обращении по ключу ['error']. Говоря другими словами, код ошибки можно найти в переменной $_FILES['userfile']['error'].
UPLOAD_ERR_OK
Значение: 0; Ошибок не возникало, файл был успешно загружен на сервер.
UPLOAD_ERR_INI_SIZE
Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.
UPLOAD_ERR_FORM_SIZE
Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.
UPLOAD_ERR_PARTIAL
Значение: 3; Загружаемый файл был получен только частично.
UPLOAD_ERR_NO_FILE
Значение: 4; Файл не был загружен.
echo $_FILES['banner_file']['error'];
*/
}
# === / Грузим архив на сервер === #
//заносим введенное пользователем описание в переменную $imgupload, если оно пустое, то уничтожаем переменную
if (isset($_POST['description']))
{
$description = $_POST['description'];
if ($description == '')
{
unset($description);}
}
if (empty($_FILES['imgupload']['name']))
{
//если переменной не существует (пользователь не отправил изображение),то присваиваем ему заранее приготовленную картинку с надписью "нет аватара"
//$avatar = "avatars/net-avatara.jpg";
$avatar = "nophoto.png";
//можете нарисовать net-avatara.jpg
}
else
{
//иначе - загружаем изображение пользователя
$path_directory = $_SERVER["DOCUMENT_ROOT"].'/uploads/';
//папка, куда будет загружаться начальная картинка и ее сжатая копия
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['imgupload']['name']))
//проверка формата исходного изображения
{
$filename = $_FILES['imgupload']['name'];
$source = $_FILES['imgupload']['tmp_name'];
$target = $path_directory . $filename;
move_uploaded_file($source, $target);
//загрузка оригинала в папку $path_directory
if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_directory.$filename) ;
//если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_directory.$filename) ;
//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_directory.$filename);
//если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
$date=time();
$avatar = $date.".jpg";
//$w = 400; // мы получим пропорциональное изображение шириной 400px
$q = 100; // качество jpeg по умолчанию
$src = $im;
// функция imagecreatefromjpeg создает изображение JPEG из файла
// т.е. создаём исходное изображение на основе исходного файла и определяем его размеры
$w_src = imagesx($src);
$h_src= imagesy($src);
// получение ширины и высоты изображения в пикселях
//$ratio = $w_src/$w;
//$w_dest = round($w_src/$ratio);
//$h_dest = round($h_src/$ratio);
$w_dest = $w_src;
$h_dest = $h_src;
// получение координат для построения нового изображения необходимой нам ширины
$dest = imagecreatetruecolor($w_dest,$h_dest);
// функция imagecreatetruecolor пустое полноцветное изображение размерами x_size и y_size.
// Созданное изображение имеет черный фон.
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// Функция imagecopyresized копирует прямоугольные области с одного изображения на другое
// вывод картинки и очистка памяти
//imagejpeg($dest,$avatar,$q);
imagejpeg($dest, $path_directory.$date.".jpg" ,$q);
imagedestroy($dest);
imagedestroy($src);
//вычисляем время в настоящий момент.
//imagejpeg($dest, $path_directory.$date.".jpg");
//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.
//почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение.
//$avatar = $path_directory.$date.".jpg";
//*******************Можно не использовать, если нет необходимости сжимать***************
//заносим в переменную путь до аватара.
$delfull = $path_directory.$filename;
unlink ($delfull);
//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.
//*******************Можно не использовать, если нет необходимости сжимать***************
}
else
{
//в случае несоответствия формата, выдаем соответствующее сообщение
exit ("Фото/картинка должно/а быть в формате <strong>JPG,GIF или PNG</strong>"); //останавливаем выполнение сценариев
}
//конец процесса загрузки и присвоения переменной $avatar адреса загруженной авы
}
if (@copy($_FILES['imgupload']['tmp_name'], $path_directory . $_FILES['imgupload']['name'])){
echo "<h3 style='color:red'>Ошибка! Не удалось загрузить ФОТО на сервер!</h3>";
}
else { echo "<h3 style='color:green'>ФОТО успешно загружено на сервер</h3>"; }
$date_add = time();
$name = $_POST['nametovar'];
$price = $_POST['price'];
$cat = $_POST['cat'];
$db->Query("INSERT INTO `db_mag` (date_add, img, description, name, namefile, price, id_cat)
VALUES('$date_add','$avatar','$description','$name', '$namefile', '$price', '$cat' )");
$tovar_id = $db->LastInsert();
$db->Query("INSERT INTO `db_mag_users` (user, user_id, tovar_id)
VALUES('$usname','$usid','$tovar_id' )");
}
?>
</center></div></div></div></div><div class="clr"></div>
<div class="page-title" style="margin-bottom: 0px;">
<div class="container" style="padding-left: 35px;">
{!TITLE!}
</div>
</div>
<div class="container top_menu_link" style="display:none1; margin-bottom:10px;">
<table class="upc_tab">
<tbody>
<tr>
<td>
</td>
</tr>
</tbody>
</table>
</div>
<!--Лета ссылок конец-->
<div class="container">
<?PHP include("inc/_admin_menu.php"); ?>
<div class="col-xs-9">
<div class="panel panel-main acc">
<div class="panel-body acc">
<div class="acc-title">Новости проекта</div>
<center><a href = "/?menu=newa-birds-admintochka&sel=news" class="stn">Список новостей[/url] || <a href = "/?menu=newa-birds-admintochka&sel=news&add" class="stn">Добавить новость[/url]</center>
<BR />
<script type="text/javascript" src="/js/editor/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
editor_deselector : "mceNoEditor",
theme : "advanced",
plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
// Theme options
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright",
theme_advanced_buttons2 : "styleselect,formatselect,fontselect,fontsizeselect,|,fullscreen,media,advhr",
theme_advanced_buttons3 : "bullist,numlist,|,outdent,indent,blockquote,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons4 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell",
theme_advanced_buttons5 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom",
theme_advanced_resizing : false,
// Example content CSS (should be your site CSS)
content_css : "editor/css/content.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
extended_valid_elements : "iframe",[/li][/list]
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
},
// Style formats
style_formats : [
{title : 'DEFAULT', inline : 'span', classes : 'text-content'}
],
// Enable translation mode
translate_mode : true,
language : "ru"
});
</script>
<?PHP
if(isset($_POST["del"])){
$ret_id = intval($_POST["del"]);
$db->Query("DELETE FROM db_news WHERE id = '$ret_id'");
echo "<center>Новость удалена</center><BR />";
}
# добавление новости
if(isset($_GET["add"])){
if(isset($_POST["title"], $_SESSION["add_news"]) AND $_SESSION["add_news"] == $_POST["add_news"]){
unset($_SESSION["add_news"]);
$title = $func->TextClean($_POST["title"]);
$text = $_POST["ntext"];
if(strlen($title) >= 3){
$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");
echo "<center><font color = 'green'>Новость добавлена</font></center><BR />";
}else echo "<center><font color = 'red'>Заголовк не может быть менее 3х символов</font></center><BR />";
}
?>
<form action="" method="post">
Заголовок:<BR />
<input type="text" name="title" size="45" value="<?=(isset($_POST["title"])) ? $_POST["title"] : false; ?>" /><BR /><BR />
Новость:<BR />
<textarea name="ntext" cols="78" rows="25"><?=(isset($_POST["ntext"])) ? $_POST["ntext"] : false; ?></textarea><BR />
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li>[url]адрес[/url]</li>
<li>[url="adress"]анкор[/url]</li>
<li>[img]адрес[/img]</li>
<li>[img="adress"]</li>
</ul>
<center><input type="submit" value="Сохранить" /></center>
<?PHP
$_SESSION["add_news"] = rand(1,1000);
?>
<input type="hidden" name="add_news" value="<?=$_SESSION["add_news"]; ?>" />
</form>
</div>
<div class="clr"></div>
<?PHP
return;
}
# редактирование
if(isset($_GET["edit"])){
$idr = intval($_GET["edit"]);
$db->Query("SELECT * FROM db_news WHERE id = '$idr' LIMIT 1");
if($db->NumRows() != 1){ echo "<center>Новость с таким ID не найдена</center><BR />"; return;}
if(isset($_POST["title"])){
$title = $func->TextClean($_POST["title"]);
$title = (strlen($title) > 0) ? $title : "Без заголовка";
$text = $_POST["ntext"];
$db->Query("UPDATE db_news SET title = '$title', news = '$text' WHERE id = '$idr'");
$db->Query("SELECT * FROM db_news WHERE id = '$idr' LIMIT 1");
echo "<center>Новость отредактирована</center><BR />";
}
$news = $db->FetchArray();
?>
<form action="" method="post">
Заголовок:<BR />
<input type="text" name="title" size="45" value="<?=$news["title"]; ?>" /><BR /><BR />
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li>[url]адрес[/url]</li>
<li>[url="adress"]анкор[/url]</li>
<li>[img]адрес[/img]</li>
<li>[img="adress"]</li>
</ul>
Новость:<BR />
<textarea name="ntext" cols="78" rows="25"><?=$news["news"]; ?></textarea><BR />
<center><input type="submit" value="Сохранить" /></center>
</form>
</div>
<div class="clr"></div>
<?PHP
return;
}
$db->Query("SELECT * FROM db_news ORDER BY id DESC");
if($db->NumRows() > 0){
?>
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
<tr bgcolor="#efefef">
<td align="center" width="50" class="m-tb">ID</td>
<td align="center" class="m-tb">Название</td>
<td align="center" width="70" class="m-tb">Удалить</td>
</tr>
<?PHP
while($data = $db->FetchArray()){
?>
<tr class="htt">
<td align="center" width="50"><?=$data["id"]; ?></td>
<td align="center"><a href="/?menu=newa-birds-admintochka&sel=news&edit=<?=$data["id"]; ?>" class="stn"><?=$data["title"]; ?>[/url]</td>
<td align="center" width="70">
<form action="" method="post">
<input type="hidden" name="del" value="<?=$data["id"]; ?>" />
<input type="submit" value="Удалить" />
</form>
</td>
</tr>
<?PHP
}
?>
</table>
<?PHP
}else echo "<center>Новостей нет</center><BR />";
?>
</div></div></div></div>
<div class="block3"></div>
<div class="clr"></div>