میرسیم به بخش ارسال خبر و همچنین ویرایش خبر

معمولا برای بخش ارسال و ویرایش خبر باید یک ویرایشگر مناسب گذاشت. ما هم از ویرایشگر elrte استفاده میکنیم.

کدهای بخش فایل addnews.php به شرح زیر هست.

کد PHP:
<?php
session_start
();
if ( isset(
$_SESSION['user']) ) {
if ( (isset(
$_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset (
$_SESSION['user']);
header ("Location: index.php");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>مدیریت سایت - ارسال خبر جدید</title>
<link href="files/style.css" rel="stylesheet" type="text/css">
<!-- jQuery and jQuery UI -->
<script src="elrte-1.2/js/jquery-1.4.4.min.js" type="text/javascript" charset="utf-8"></script>
<script src="elrte-1.2/js/jquery-ui-1.8.7.custom.min.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="elrte-1.2/css/smoothness/jquery-ui-1.8.7.custom.css" type="text/css" media="screen" charset="utf-8">

<!-- elRTE -->
<script src="elrte-1.2/js/elrte.min.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="elrte-1.2/css/elrte.min.css" type="text/css" media="screen" charset="utf-8">

<!-- elRTE translation messages -->
<script src="elrte-1.2/js/i18n/elrte.fa.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript" charset="utf-8">
$().ready(function() {
var opts = {
cssClass : 'el-rte',
lang : 'fa',
height : 300,
toolbar : 'normal',
cssfiles : ['elrte-1.2/css/elrte-inner.css']
}
$('#editor').elrte(opts);
})

$().ready(function() {
var opts = {
cssClass : 'el-rte',
lang : 'fa',
height : 300,
toolbar : 'normal',
cssfiles : ['elrte-1.2/css/elrte-inner.css']
}
$('#more').elrte(opts);
})
</script>
</head>
<body>

<?php
if ( isset($_POST['go']) && ($_POST['go'] == "add") )
{
include
"config.php";
$add = mysql_query ("INSERT INTO `news` VALUES ('', '".$_POST['newstitle']."', '".$_POST['newscontent']."', '".$_POST['newsfullcontent']."', '".mktime()."')");
if (
$add )
{
$status = '<div class="ok">خبر جدید با موفقیت ثبت شد.</div>';
}
else {
$status = '<div class="error">متاسفانه مشکلی در ثبت خبر جدید وجود دارد.</div>'; }
}
elseif ( isset(
$_POST['go']) && ($_POST['go'] == "edit") )
{
include
"config.php";
$edit = mysql_query ("UPDATE `news` SET `title` = '".$_POST['newstitle']."', `content` = '".$_POST['newscontent']."', `fullcontent` = '".$_POST['newsfullcontent']."' WHERE `id` = '".$_POST['id']."' LIMIT 1");
if (
$edit )
{
$status = '<div class="ok">تغییرات با موفقیت اعمال شدند.</div>';
}
else {
$status = '<div class="error">متاسفانه مشکلی در ثبت تغییرات وجود دارد</div>'; }
}
if ( isset(
$_GET['editnews']) && ($_GET['editnews'] !== "") )
{
include
"config.php";
$Query = mysql_query("SELECT * FROM `news` WHERE `id` = '".intval($_GET['editnews'])."' LIMIT 1");
$row_news = mysql_fetch_array($Query);
}
?>

<div id="main">
<img src="files/header.jpg" border="0">
<div class="navbar">
<ul>
<li><a href="home.php">داشبورد</a></li>
<li><a href="../index.php" target="_blank">نمایش سایت</a></li>
</ul>
</div>
</div>


<div id="sidebar">
<ul>
<li><a href="home.php">داشبورد</a></li>
<li><a href="addnews.php">ارسال خبر جدید</a></li>
<li><a href="addpage.php">ایجاد صفحه جدید</a></li>
<li><a href="addlink.php">ارسال لینک جدید</a></li>
<li><a href="news.php">مدیریت اخبار</a></li>
<li><a href="pages.php">مدیریت صفحات</a></li>
<li><a href="links.php">مدیریت لینک ها</a></li>
<li><a href="homepage.php">مدیریت صفحه نخست</a></li>
<li><a href="?logout=true"><font color="red">خروج!</b></font></a></li>

</ul>

</div>



<div class="content">

<div class="top-text">ارسال خبر جدید</div>
<?php echo $status; ?>
<div class="forms">
<form method="post" action="">
<input type="hidden" name="go" value="<?php echo (isset($row_news)) ? "edit" : "add"; ?>">
<?php echo (isset($row_news)) ? '<input type="hidden" name="id" value="'.$row_news['id'].'">' : ''; ?>
<label for="username"> عنوان خبر : </label>
<input name="newstitle" type="text" value="<?php echo $row_news['title']; ?>" class="form" />
<br /><br /><br />
<label for="content"> خلاصه خبر : </label>
<textarea name="newscontent" rows="10" cols="80" id="editor"><?php echo $row_news['content']; ?></textarea>
<br /><br /><br /><br />
<label for="fullcontent"> ادامه مطلب : </label>
<textarea name="newsfullcontent" rows="10" cols="80" id="more"><?php echo $row_news['fullcontent']; ?></textarea>
<br /><br /><br /><br />
<input type="submit" value="ارسال خبر" name="submit">
</form>
</div>

</div>
<div class="clear"></div>
</div>
</body></html>
<?php } else { header ("location: index.php"); } ?>


حالا شروع میکنیم به توضیح دادن هر قسمت از فایل Addnews.php

بررسی ورود مدیر:
کد PHP:
<?php
session_start
();
if ( isset(
$_SESSION['user']) ) {
if ( (isset(
$_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset (
$_SESSION['user']);
header ("Location: index.php");
}
?>


در ابتدا ما مثل صفحه Home.php بررسی میکنیم که کاربر وارد شده یا نه
-------------------------

کد های مربوط به قالب و ادیتور:

کد HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>مدیریت سایت - ارسال خبر جدید</title> <link href="files/style.css" rel="stylesheet" type="text/css"> <!-- jQuery and jQuery UI --> <script src="elrte-1.2/js/jquery-1.4.4.min.js" type="text/javascript" charset="utf-8"></script> <script src="elrte-1.2/js/jquery-ui-1.8.7.custom.min.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="elrte-1.2/css/smoothness/jquery-ui-1.8.7.custom.css" type="text/css" media="screen" charset="utf-8"> <!-- elRTE --> <script src="elrte-1.2/js/elrte.min.js" type="text/javascript" charset="utf-8"></script> <link rel="stylesheet" href="elrte-1.2/css/elrte.min.css" type="text/css" media="screen" charset="utf-8"> <!-- elRTE translation messages --> <script src="elrte-1.2/js/i18n/elrte.fa.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8"> $().ready(function() { var opts = { cssClass : 'el-rte', lang : 'fa', height : 300, toolbar : 'normal', cssfiles : ['elrte-1.2/css/elrte-inner.css'] } $('#editor').elrte(opts); }) $().ready(function() { var opts = { cssClass : 'el-rte', lang : 'fa', height : 300, toolbar : 'normal', cssfiles : ['elrte-1.2/css/elrte-inner.css'] } $('#more').elrte(opts); }) </script> </head> <body>
این کد ها شامل کد های قالب و کد های html ,java مربوط به ادیتور هست. که قراره داخل textarea ها لود بشه

--------------

کد های php شامل ارسال و ویرایش خبر:

کد PHP:
if ( isset($_POST['go']) && ($_POST['go'] == "add") )
{
include
"config.php";
$add = mysql_query ("INSERT INTO `news` VALUES ('', '".$_POST['newstitle']."', '".$_POST['newscontent']."', '".$_POST['newsfullcontent']."', '".mktime()."')");
if (
$add )
{
$status = '<div class="ok">خبر با موفقیت ارسال شد</div>';
}
else {
$status = '<div class="error">مشکلی در ارسال خبر وجود دارد. دوباره امتحان کنید</div>'; }
}


ما در ابتدا بررسی میکنیم که اگر از فرم ارسال خبر go ارسال شد و همچنین این go برابر با add بود اون وقت مقدار های داخل فرم که شامل عنوان خبر newstitle و متن خبر newscontent و همچنین ادامه مطلب newsfullcontent هست به ترتیب بریز داخل table خبر که همون news باشه

بعدش به وسیله متغیر add میتونیم بفهمیم که مقدار ها ریخته شده داخل دیتابیس یا نه. در اینجا شرط میزاریم براش که اگه خبر ارسال شده بود پیغام " خبر با موفقیت ارسال شد " رو بریز تو متغیر status
در غیر اینصورت مقدار "مشکلی در ارسال خبر وجود دارد. دوباره امتحان کنید" رو بریز داخل متغیر status

متغیر status قراره بعد از ارسال موفقیت امیز یا مشکل دار هر خبر چاپ بشه...
--------------

ویرایش خبر:
کد PHP:
elseif ( isset($_POST['go']) && ($_POST['go'] == "edit") )
{
include
"config.php";
$edit = mysql_query ("UPDATE `news` SET `title` = '".$_POST['newstitle']."', `content` = '".$_POST['newscontent']."', `fullcontent` = '".$_POST['newsfullcontent']."' WHERE `id` = '".$_POST['id']."' LIMIT 1");
if (
$edit )
{
$status = '<div class="ok">خبر با موفقیت ویرایش شد</div>';
}
else {
$status = '<div class="error">مشکلی در ویرایش ثبت خبر وجود دارد.دوباره امتحان کنید</div>'; }
}


این قسمت بعد از شرط ارسال خبر اجرا میشه! یعنی اگه کاربر به جای add که همون ارسال خبر باشه از فرم مقدار edit اومد دستورهای زیر رو اجرا کن. یعنی: مقدار های عنوان خبر, متن خبر و ادامه مطلب رو بر اساس id اون خبر آپدیت کن(جایگزین کن)

در اینجا ما از طریق متغیر edit میتونیم بفهمیم که با موفقیت خبر اپدیت شد یا نه؟
میگیم در صورتی که خبر تو دیتابیس در جدول news آپدیت شد متغیر status برابر هست با "خبر با موفقیت ویرایش شد" در غیر اینصورت "مشکلی در ویرایش ثبت خبر وجود دارد.دوباره امتحان کنید" وارد status میشه
همون طور که گفتم status بعدا برای مدیر نمایش داده میشه