آموزش ساخت CMS (مدیریت محتوا)

بازدید58.3kپست ها14آخرین فعالیت10 سال پیش
0
0

با درود

در این تاپیک قصد داریم آموزش ایجاد و ساخت یک سیستم مدیریت محتوای ساده به زبان PHP همراه با دیتابیس رو به شما آموزش بدیم!

این سیستم فعلا دارای امکاناتی چون:

اخبار سایت
صفحه تماس با ما
مدیریت صفحه نخست
قابلیت ایجاد صفحه
لینک دوستان

سطح این آموزش معمولی هست.

مواد لازم:

نرم افزار XAMPP
نرم افزار notepad++
نرم افزار محبوب Dreamweaver

پیش نیاز ها برای درک این آموزش :

آشنایی با CSS و HTML در حد معمولی
آشنایی با دستورات php در حد مبتدی

این آموزش ممکنه زمان زیادی طول بکشه و سعی میکنیم مرحله به مرحله بریم جلو تا برای کاربران مبتدی قابل درک باشه! پس عجله نکنید. در مرحله اول ما آموزش رو از ساده ترین روش میریم جلو! ممکنه حجم برنامه نویسی زیاد بشه. ولی درک و فهم بهتر میشه.

منبع : persianscript.ir

0
<?php
$hostname = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$dbname = 'cms';
$persianscript = mysql_connect ($hostname, $dbuser, $dbpass);
mysql_select_db ($dbname, $persianscript);

/***  S I T E  S E T T I N G  ***/
$adminuser = "admin";
$adminpass = "admin";
$title = 'سیستم مدیریت محتوا';
$email = 'info@persianscript.ir';
$desc = 'توضیحات سایت';

?>

ما در 7 خط اول فایل config.php مشخصات دیتابیسمون رو میدیم!

و بعد با استفاده از دستور mysql_connect به دیتابیس متصل میشیم...

در متغیر های adminuser و adminpass میتونید مشخصات ورود به مدیریت رو وارد کنید
در متغیر های title,email,desc اطلاعاتی نظیر عنوان سایت, ایمیل (برای ارسال فرم های تماس به ایمیل),کلمات کلیدی و توضیحات سایت هست. اینها برای فراخوانی در قالب و سیستم بکار میره.

0

خب. حالا میریم سراغ ساختن بخش ورود به مدیریت
فایل index.php موجود در پوشه admin رو باز میکنیم. یا اگه قبلا ایجاد نکردید ایجاد کنید

برای ساخت بخش ورود به مدیریت ما با استفاده از سشن ها(جلسه) دسترسی رو برای مدیر ایجاد میکنیم. در اینجا ابتدا یک فرم میسازیم با دو فیلد text و یک دکمه :

<form action="" method="POST">
نام کاربری:<input type="text" name="username" size="20">
<br/>
رمز عبور:<input type="password" name="password" size="20">
<br/>
<br/>
<input type="submit" value=" ورود " name="submit">
</form>

در این فرم نام کاربری و رمز عبور رو از کاربر میگیرم. و با زدن دکمه submit دوباره مقادیر به همین صفحه ارسال میشه چون تو اون اول action فرم برابر تهی بود

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

این کد php رو در بالای فرم ورود میزاریم:

<?php 
session_start();
if ( isset($_POST['username']) && isset($_POST['username']) )
{
    include "config.php";
    if ( ($_POST['username'] == $adminuser) && ($_POST['username'] == $adminpass) )
    {
        $_SESSION['user'] = $_POST['username'];
        header ("Location: home.php");
    }
}
?>

در خط اول ما php رو شروع میکنیم.
در خط دوم لایه جلسه (سشن) رو استارت (روشن) میکنیم
در خط سوم ما میگیم در صورتی که نام کاربری و رمز عبور به وسیله Post از فرم برامون ارسال شده بود. دستورات زیر رو اجرا کن
در خط پنجم ما فایل کانفیگ رو با include فراخوانی میکنیم.
در خط شش یک دستور شرطی دیگه هست که میگه اگه مقدار ارسال شده username با مقدار موجود در adminuser (فایل کانفیگ) برابری کرد. و همچنین (با &&) مقدار ارسال شده password با مقدار موجود در adminpass (فایل کانفیگ) برابری کرد . اون وقت مقدار ارسال شده username رو بریز داخل سشن user
این سشن user تا وقتی کاربر داخل سایت باشه لازم هست...
در خط بعد میگه وقتی همه این دو شرط درست بود. بعنی:

کاربر نام کاربری و رمز عبور رو وارد کرده باشه
نام کاربری و رمز عبور با مقداری که تو فایل کانفیگ هست برابر بود

اون وقت برو به صفحه home.php

صفحه home.php نقش داشبورد یا صفحه اصلی کنترل پنل مدیریت رو بازی میکنه

محتویات فایل index.php شد این:

<?php 
session_start();
if ( isset($_POST['username']) && isset($_POST['username']) )
{
    include "config.php";
    if ( ($_POST['username'] == $adminuser) && ($_POST['username'] == $adminpass) )
    {
        $_SESSION['user'] = $_POST['username'];
        header ("Location: home.php");
    }
}
?>
<html>
<head>
<title>ورود به مدریت</title>
</head>
<body>
<form action="" method="POST">
نام کاربری:<input type="text" name="username" size="20">
<br/>
رمز عبور:<input type="password" name="password" size="20">
<br/>
<br/>
<input type="submit" value="ورود" name="submit">
</form>
</body>

</html>

خیلی آسون بود... نه؟ جلسه بعدی میریم داخل مدیریت. و مراحل بعدی ایجاد دیتابیس و وارد کردن اطلاعات

نکته مهم: توجه کنید که تمامی فایل های سایت شما باید charset شون روی UTF-8 without BOM باشه (با نرم افزار notepad++ میتونین اوکی کنید)

0

صفحه اصلی مدیریت :: فایل home.php موجود در پوشه admin

همون طور که گفتم فایل home.php نقش داشبورد یا کنترل پنل مدیریت رو بازی میکنه
همون طور که میدونید به این صفحه فقط باید مدیر دسترسی داشته باشه. یعنی کسی که نام کاربری و رمز عبور رو وارد کرده میتونه بیاد اینجا رو ببینه
حالا چگونه؟ با استفاده از همون سشن یا جلسه ای که ایجاد کردیم و نامش رو گذاشتیم user

در ابتدای فایل home مینویسیم:

<?php
session_start();
if ( isset($_SESSION['user']) ) {
if ( (isset($_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset ($_SESSION['user']);
header ("Location: index.php");
}
?>

اگه کاربر وارد شده بود اینجا رو نشون میده

<?php } else { header ("location: index.php"); } ?>

توضیحات:
ما در خط اول php رو شروع میکنیم
در خط دوم سشن رو start میکنیم.
در خط سوم میگیم اگه سشن ما (که در قسمت ورود گرفتیم) در user وجود داشت. اون وقت تمام زیر مجموعه رو نمایش بده.
در خط اخر گفتیم. در غیر اینصورت برگرد به صفحه ورود (index.php)

در خط چهارم میگیم اگه کاربر برای ما logout رو فرستاد و همچنین logout برابر با true بود اون وقت سشن user رو unset کن
میشه به این صورت: [url]http://site.ir/admin/home.php?logout=true[/url]

(حالا unset چیه؟ و چیکار میکنه؟: وقتی کاربر یوزر و پسورد رو درست میزنه یک سشن به اسم user ایجاد میشه. این user وقتی برای شما set شده باشه به شما اجازه می ده به صفحات دیگه مدیریت سر بزنید... و وقتی unset میکنیم. دیگه متغیر user چیزی داخلش نیست که بتونه وارد مدیریت بشه)

اون قسمتی هم که نوشتم "اگه کاربر وارد شده بود اینجا رو نشون میده" وقتی نشون داده میشه که کاربر وارد شده باشه... در غیر اینصورت برمیگرده به صفحه index یا همون ورود به مدیریت"

حالا ما در فایل home.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">
</head>
<body>
<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>خروج!</b></font></a></li>

        </ul>
        
    </div>
    


<div class="content">
<div class="top-text">داشبورد</div> 
    به کنترل پنل مدیریت خوش آمدید. شما میتوانید از منوی سمت راست به مدیریت بخش های مورد نظر بپردازید

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

ما در این مرحله قسمت کنترل پنل مدیریت/ دسترسی مدیر به صفحات و همچنین خروج از مدیریت رو نوشتیم

کارهایی رو که تا الان انجام دادیم رو به صورت زیپ به همراه قالب سایت میتونید دریافت کنید.

0

برای اینکه بخوایم اخبار رو ارسال کنیم تا در دیتابیس ذخیره بشه باید ابتدا دیتابیس و table اخبار رو میسازیم. توضیحات زیادی در مورد نحوه ساخت دیتابیس نمیدم! چون چیز خاصی نداره. و محیط phpmyqdmin فارسی هست...

خب ما میخوایم تیبل اخبار رو بسازیم. ابتدا یک دیتابیس مثلا با نام cms میسازیم.
داخل دیتابیس cms ما یک table با نام news می سازیم. این news شامل مشخصات و داده های اخبار هست

ما تو این تیبل (table) چه فیلد هایی داریم؟
فیلد id از نوع عددی (int) هست و به صورت خودکار به ترتیب عدد داده میشه (AUTO_INCREMENT هست) ما با id هر خبر رو صدا میکنیم و از دیتابیس میخوایم که خبر رو بر اساس id اون نشون بده. چون این id به صورت یکتا هست (تکراری نیست)

فیلد title که قراره عنوان هر خبر داخلش ذخیره بشه . از نوع متنی (text)
فیلد content که قراره خلاصه هر خبر داخلش باشه . از نوع متنی (text)
فیلد fullcontent که قرار متن کامل خبر داخلش باشه . از نوع متنی (text)
فیلد date که قراره تاریخ ارسال خبر داخلش ذخیره بشه. از نوع VARCHAR (اندازه 20)
و همون طور که گفتم id کلید هر فیلد هست

تیبل news ما شد این:

[SQL]
CREATE TABLE news (
id INT NOT NULL AUTO_INCREMENT ,
title TEXT NOT NULL ,
content TEXT NOT NULL ,
fullcontent TEXT NOT NULL ,
date VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( id )
) TYPE = MYISAM;[/SQL]

میتونید از طریق import داخل phpmyadmin بریزید داخل دیتابیستون

0

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

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

کدهای بخش فایل addnews.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 بررسی میکنیم که کاربر وارد شده یا نه

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

<!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 شامل ارسال و ویرایش خبر:

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 قراره بعد از ارسال موفقیت امیز یا مشکل دار هر خبر چاپ بشه...

ویرایش خبر:

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 بعدا برای مدیر نمایش داده میشه

ادامه در تاپیک بعدی...

0

حالا چطور هر خبر رو برای ویرایش از دیتابیس فراخوانی کنیم؟
اینطوری:

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);
}

در اینجا میگیم در صورتی که کاربر بوسیله get مقدار editnews رو برای ما فرستاد و همچنین editnews ارسال شده خالی نبود اون وقت اون مقدار editnews که عدد (id) خبر تو دیتابیس هست رو از داخل تیبل نمایش بده!

حالا کجا نمایش بده؟
داخل value یا همون مقدار فرم ما.
چطوری؟
اینطوری:

<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>

ما در ابتدا برای نمایش وضعیت خبر ارسال شده یا ویرایش شده status رو چاپ میکنیم تا مدیر از وضعیت خبر ارسالی آگاه باشه

بعد ما دو فیلد مخفی "hidden" داریم که یکی برای اون دستورات php مشخص میکنیم این مقدار های ارسال شده برای ویرایش خبر هست یا ارسال خبر جدید
فیلد دیگه id خبر رو مشخص میکنه (در صورتی که ما بخوایم یک خبر رو ویرایش کنیم)

سوالاتی که ممکنه براتون پیش بیاد:
**
1.row_news چیه؟
**
این متغیر ردیف هر فیلد رو برامون نمایش میده. این قسمت برای ویرایش خبر کاربرد داره. یعنی ما وقتی بخوایم خبر رو ویرایش کنیم باید مقدار های قبلیش رو ببینیم دیگه؟ برای همین مثلا در مقدار value عنوان خبر مینویسیم

$row_news['title'];

در آخرین خط فایل addnews.php هم ما شرط مدیر رو میبندیم (همون کدی که اول وارد کردیم تا بررسی کنیم مدیر وارد شده یا نه)

<?php } else { header ("location: index.php"); } ?>

0

ساخت جدول صفحات:

[SQL]
CREATE TABLE page (
id INT NOT NULL AUTO_INCREMENT ,
title TEXT NOT NULL ,
content TEXT NOT NULL ,
date VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( id )
) TYPE = MYISAM;
[/SQL]

در اینجا ما مرحله جدید, یعنی مرحله طراحی جدول صفحات رو شروع میکنیم.

یک تیبل/جدول با نام page ایجاد میکنیم.

ما قراره در این جدول فیلد های زیر رو داشته باشیم:

id = شناسه هر خبر (کلید ما هست)
title = عنوان صفحات
content = متن صفحات
date = تاریخ ارسال خبر

ساخت جدول به پایان رسید. مرحله بعدی ... ایجاد و ارسال صفحه

0

بخش ارسال صفحه (addpage.php) دقیقا شبیه به فایل addnews.php هست! و هیچ تفاوتی نداره. تنها تفاوت اون, وارد کردن (insert) کردن اطلاعات درون جدول صفحات (pages) هست! همین

سورس کامل صفحه Addpage.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 `page` VALUES ('', '".$_POST['pagetitle']."', '".$_POST['pagecontent']."', '".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 `page` SET `title` = '".$_POST['pagetitle']."', `content` = '".$_POST['pagecontent']."' WHERE `id` = '".$_POST['id']."' LIMIT 1");
    if ( $edit )
    { 
    $status = '<div class="ok">تغییرات با موفقیت اعمال شدند.</div>'; 
    }
    else { $status = '<div class="error">متاسفانه مشکلی در ثبت تغییرات وجود دارد</div>'; }
}
if ( isset($_GET['editpage']) && ($_GET['editpage'] !== "") )
{
    include "config.php";
    $Query = mysql_query("SELECT * FROM `page` WHERE `id` = '".intval($_GET['editpage'])."' LIMIT 1");
    $row_page = 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_page)) ? "edit" : "add"; ?>">
    <?php echo (isset($row_page)) ? '<input type="hidden" name="id" value="'.$row_page['id'].'">' : ''; ?>
    <label for="username"> عنوان صفحه : </label>
    <input name="pagetitle" type="text" value="<?php echo $row_page['title']; ?>" class="form" />
    <br  /><br  /><br  />
    <label for="content"> متن صفحه: </label>
    <textarea name="pagecontent" rows="10" cols="80" id="editor"><?php echo $row_page['content']; ?></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"); } ?>

زیاد توضیح نمیدم! چون قبلا این مراحل رو رفتیم...


کد های بررسی ورود مدیر:

<?php
session_start();
if ( isset($_SESSION['user']) ) {
if ( (isset($_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset ($_SESSION['user']);
header ("Location: index.php");
}
?>

لایه جلسه که در ابتدای تمامی بخش های مدیریت هست که بررسی می کنه مدیر وارد شده یا نه...


کد های HTML سربرگ (header)

<!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>

کد های قالب که html هست و همچنین کد های ادیتور پیشرفته ...


کد ها و دستورات شرطی:

<?php
if ( isset($_POST['go']) && ($_POST['go'] == "add") )
{
    include "config.php";
    $add = mysql_query ("INSERT INTO `page` VALUES ('', '".$_POST['pagetitle']."', '".$_POST['pagecontent']."', '".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 `page` SET `title` = '".$_POST['pagetitle']."', `content` = '".$_POST['pagecontent']."' WHERE `id` = '".$_POST['id']."' LIMIT 1");
    if ( $edit )
    { 
    $status = '<div class="ok">تغییرات با موفقیت اعمال شدند.</div>'; 
    }
    else { $status = '<div class="error">متاسفانه مشکلی در ثبت تغییرات وجود دارد</div>'; }
}
if ( isset($_GET['editpage']) && ($_GET['editpage'] !== "") )
{
    include "config.php";
    $Query = mysql_query("SELECT * FROM `page` WHERE `id` = '".intval($_GET['editpage'])."' LIMIT 1");
    $row_page = mysql_fetch_array($Query);
}
?>

در اینجا ما باید ورودی داشته باشیم . ورودی رو به وسیله GET میگیریم و به کد ها میگیم چه کار کنن...

در خط اول php شروع میشه
در خط دوم میگیم در صورتی که go ارسال شد و مقدار این go برابر با add بود. مقادیر ورودی رو insert (بریز داخل) جدول اخبار

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

در صورتی که با موفقیت انجام نشد مقادیر "متاسفانه در ایجاد صفحه مشکلی به وجود آمده است! دوباره سعی کنید" رو بریز داخل status

--
در خط بعدی میگیم. در صورتی که کاربر go رو زده بود! ولی مقدار go برابر با edit بود. مقادیر گرفته شده از فرم رو بروز رسانی کن (update کن)
این قسمت برای ویرایش صفحه هست...

وضعیت رو هم میریزیم داخل status که بعدا به کاربر بگیم که صفحه ویرایش شده یا نه...

در قسمت آخر یک شرط دیگه ای میزاریم برای صدا کردن اون صفحه (برای ویرایش کردن اون صفحه به کار میره)

ادامه در تاپیک بعدی...

0

کد های html قالب و فرم وارد و ویرایش کردن اطلاعات

<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_page)) ? "edit" : "add"; ?>">
    <?php echo (isset($row_page)) ? '<input type="hidden" name="id" value="'.$row_page['id'].'">' : ''; ?>
    <label for="username"> عنوان صفحه : </label>
    <input name="pagetitle" type="text" value="<?php echo $row_page['title']; ?>" class="form" />
    <br  /><br  /><br  />
    <label for="content"> متن صفحه: </label>
    <textarea name="pagecontent" rows="10" cols="80"  id="editor"><?php echo $row_page['content'];  ?></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"); } ?>

در ادامه کد های قالب وجود دارن و فرم وارد کردن و ویرایش کردن اطلاعات... که قبلا در قسمت ارسال خبر مفصل توضیح داده شده...

در خط اخر هم بررسی لایه جلسه (ورود مدیر) انجام میشه (اگه مدیر وارد نشده بود برو به صفحه ورود index.php)

مرحله بعدی: نمایش لیست اخبار/حذف خبر

0

خب میرسیم به فایل pages.php :

این فایل لیست صفحات رو نمایش میده

همچنین کاربر میتونه خبر رو حذف کنه. برای ویرایش هم که لینک داده میشه به صفحه ایجاد صفحه...

این صفحه دقیقا شبیه به فایل news.php (لیست اخبار) هست. با این تفاوت که باید به جدول page متصل بشه و اطلاعات اون رو نمایش بده...

این صفحه شامل اطلاعات زیر هست:

<?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">
</head>
<body>

<?php
include "config.php";
if ( isset($_GET['delete']) && !empty($_GET['delete']) )
{
    $del = mysql_query ("DELETE FROM `page` WHERE `id` = '".intval($_GET['delete'])."' LIMIT 1");
    if ( $del )
    {
        $status = '<div class="ok">صفحه انتخاب شده با موفقيت از سايت حذف شد</div>';
    }
    else
    {
        $status = '<div class="error">مشکلي در حذف صفحه وجود دارد!دوباره امتحان کنيد</div>';
    }
}
?>

<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">خروج!</font></a></li>

        </ul>
        
    </div>
    


<div class="content">
<div class="top-text">مديريت صفحات</div> 
    <php echo $status;?>
    
    <table id="box-table-a">
    <thead>
    <tr>
    <th scope="col">عنوان صفحه</th>
    <th scope="col">تاريخ ارسال</th>
    <th scope="col">ويرايش</th>
    <th scope="col">حذف</th>
    </tr>
    </thead>
    <tfoot>
    <tr>
    <td colspan="3"><em>در حذف کردن صفحات دقت کنيد</em></td>
    <td>&nbsp;</td>
    </tr>
    </tfoot>
    <tbody>
    <?php
    $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC");
    while ( $row_page = mysql_fetch_array($Query) ) { 
    ?>
    <tr>
    <td><?php echo $row_page['title']; ?></td>
    <td><?php echo date("Y/n/d", $row_page['date']) ?></td>
    <td><a href="addpage.php?edit=<?php echo $row_page['id']; ?>"><img src="files/page_edit.png" border="0" title="ويرايش صفحه" /></a></td>
    <td><a onclick="if (confirm('ايا از حذف صفحه انتخاب شده مطمئن هستيد؟')) window.location = '?delete=<?php echo $row_page['id']; ?>';" href="#"><img src="files/page_delete.png" border="0" title="حذف صفحه" /></a></td>
    </tr>
    <?php } ?>
    </tbody>
    </table>

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

توضیح زیادی نمیدم. چون قبلا توضیحات فایل news.php رو دادم و این هم تفاوتی با اون نداره

کد های بررسی مدیر:

<?php
session_start();
if ( isset($_SESSION['user']) ) {
if ( (isset($_GET['logout'])) && ($_GET['logout'] == "true") )
{
unset ($_SESSION['user']);
header ("Location: index.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">
</head>
<body>

کد های html قالب هست که توضیح نداره...


دستورات و شرط های حذف خبر:

<?php
include "config.php";
if ( isset($_GET['delete']) && !empty($_GET['delete']) )
{
    $del = mysql_query ("DELETE FROM `page` WHERE `id` = '".intval($_GET['delete'])."' LIMIT 1");
    if ( $del )
    {
        $status = '<div class="ok">صفحه انتخاب شده با موفقیت از سایت حذف شد</div>';
    }
    else
    {
        $status = '<div class="error">مشکلی در حذف صفحه وجود دارد!دوباره امتحان کنید</div>';
    }
}
?>

ما در اینجا در ابتدا فایل کانفیگ (که اطلاعات دیتابیس داخلش هست) رو فراخوانی میکنیم. و در ابتدا بررسی میکنیم که اگه کاربر delete رو ارسال کرده و همچنین مقدار delete خالی نبود (باید شماره صفحه باشه - همون id)
اون وقت برو مقدار delete که به id صفحه برمیگرده رو حذف کن. (یعنی کل صفحه رو حذف کن)

و در نهایت اگه صفحه حذف شد پیغام "صفحه انتخاب شده با موفقیت از سایت حذف شد" میره تو متغیر status و در صورتی که مشکلی پیش اومد و حذف نشد پیغام "مشکلی در حذف صفحه وجود دارد!دوباره امتحان کنید" رو چاپ کن

این status قراره بعدا چاپ بشه و از وضعیت حذف صفحه مدیر رو آگاه کنه...

منوی سمت راست (کد html):

<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">خروج!</font></a></li>

        </ul>
        
    </div>

این مربوط به قالب میشه و چیز خاصی نداره...


حلقه نمایش لیست صفحات و اطلاعات هر صفحه:

<div class="content">
<div class="top-text">مدیریت صفحات</div> 
    <php echo $status;?>
    
    <table id="box-table-a">
    <thead>
    <tr>
    <th scope="col">عنوان صفحه</th>
    <th scope="col">تاریخ ارسال</th>
    <th scope="col">ویرایش</th>
    <th scope="col">حذف</th>
    </tr>
    </thead>
    <tfoot>
    <tr>
    <td colspan="3"><em>در حذف کردن صفحات دقت کنید</em></td>
    <td>&nbsp;</td>
    </tr>
    </tfoot>
    <tbody>
    <?php
    $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC");
    while ( $row_page = mysql_fetch_array($Query) ) { 
    ?>
    <tr>
    <td><?php echo $row_page['title']; ?></td>
    <td><?php echo date("Y/n/d", $row_page['date']) ?></td>
    <td><a href="addpage.php?edit=<?php echo $row_page['id']; ?>"><img src="files/page_edit.png" border="0" title="ویرایش صفحه" /></a></td>
    <td><a onclick="if (confirm('ایا از حذف صفحه انتخاب شده مطمئن هستید؟')) window.location = '?delete=<?php echo $row_page['id']; ?>';" href="#"><img src="files/page_delete.png" border="0" title="حذف صفحه" /></a></td>
    </tr>
    <?php } ?>
    </tbody>
    </table>

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

در این قسمت ما یک حلقه داریم که صفحات رو برمیگردونه و داخل یک جدول به صورت منظم با اطلاعات تاریخ ارسال و عنوان صفحه نمایش میده. همچنین قابلیت حذف و ویرایش خبر رو گذاشتیم که برای حذف توضیح دادیم و برای ویرایش میره به صفحه ایجاد صفحه

در انتها هم دستور بررسی ورود مدیر بسته میشه...

این صفحه تموم شد.

مرحله بعدی .صفحه ارسال لینک (لینک دوستان)

0

در این قسمت قصد داریم حلقه هایی که در مرحله قبل توضیح دادم پیاده سازی کنیم. با استفاده از حلقه های PHP میخوایم لینک صفحات, 5 خبر اخر ارسال شده و همچنین لینک ها رو نمایش بدیم

مرحله 1: فراخوانی کردن فایل کانفیگ
در ابتدای قالب ما باید فایل کانفیگ (config.php) رو در قالب نمایش بدم. چرا؟ چون باید با استفاده از مشخصات دیتابیس که در این فایل دادیم, محتویات جداول و سطر ها رو نمایش بدیم
همچنین اگه یادتون باشه ما توی فایل کانفیگ مشخصات دیگه ای هم دادیم. مثل عنوان سایت, توضیحات سایت و... که قراره اینجا نمایش داده بشه...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Design by http://www.coolwebtemplates.net
Released for free under a Creative Commons Attribution 3.0 License
-->
<?php 
include "admin/config.php";
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div class="main">

  <div class="header">
    <div class="header_resize">
      <div class="logo"><h1><a href="index.php"><?php echo $title;?><small><?php echo $desc;?></small></a></h1></div>
      <div class="clr"></div>
در ابتدا ما فایل کانفیگ رو فراخوانی میکنیم (خط 7)
در خط 11 ما عنوان سایت رو با استفاده از متغیر title نمایش میدیم (متغیر از فایل کانفیگ نمایش داده میشه)
در خط 21 عنوان و توضیحات سایت رو با استفاده از متغیر desc و title نمایش میدیم. (متغیر از فایل کانفیگ نمایش داده میشه) 

پیاده سازی اولین حلقه: حلقه نمایش صفحات (در منوی بالایی)

<div class="menu_nav">
        <ul>
          <li class="active"><a href="index.php">خانه</a></li>
    <?php
    $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 4");
    while ( $row_page = mysql_fetch_array($Query) ) { 
    ?>
    <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
    
    <?php } ?>
        </ul>

      </div>
      <div class="clr"></div>
در ابتدا ما یک متغیر ایجاد میکنیم به اسم کوئری (Query) که خروجی mysql_query (و دستور انتخاب از جدول page) رو میریزم داخل این متغیر
بعد با استفاده از حلقه while میایم خروجی هر سطر رو (تا 4 صفحه) نمایش میدیم
حلقه while رو میبندیم 

ما چه چیزی رو انتخاب select می کنیم
ما میایم با دستورات sql به دیتابیس دستور میدیم که( به ترتیب ) : انتخاب کن همه فیلد ها را از جدول "صفحات" بر اساس id صفحه به صورت نزولی

در اینجا با استفاده از حلقه تکرار شونده میایم این تکرار ها رو داخل هر li میاریم. و داخل li عنوان رو نمایش میدیم. همچنین id رو به عنوان کلید قرار میدیم که به صورت GET بفرستیم به صفحه page.php (که در مرحله بعد ساخته میشه) تا اون خبر رو به تنهایی نمایش بده.

پیاده سازی دومین حلقه: حلقه نمایش اخبار (عنوان خبر, توضیحات کوتاه)

</div>
  </div>
  <div class="content">
    <div class="content_resize">
      <div class="mainbar">
      
            <?php
            $Query = mysql_query ("SELECT * FROM `news` ORDER BY `id` DESC LIMIT 10");
            while ( $row_news = mysql_fetch_array($Query) ) { 
            ?>
        <div class="article">
          <h2><?php echo $row_news['title']; ?></h2><div class="clr"></div>
          <p><span class="date"><?php echo date("l d F Y", $row_news['date']) ?></span></p>
          <p><?php echo $row_news['content']; ?></p>
          <p class="spec"><a href="news.php?id=<?php echo $row_news['id']; ?>" class="rm">ادامه نوشته...</a></p>
        </div>
        <?php }?>

در اینجا ما جدول اخبار که news هست رو بر اساس id یا شناسه انتخاب می کنیم! و میگیم که آخرین اخبار (به تعداد 10 خبر) رو نمایش بده. در ادامه ما مقادیر هر سطر که عنوان خبر, تاریخ ارسال , و متن کوتاه خبر مورد نظر رو نمایش میدیم

همینطور با استفاده از شناسه خبر (id) رو به وسیله GET میفرستیم به صفحه news.php که قرار هر خبر رو به تنهایی همراه با جزئیات بیشتر (ادامه مطلب / مطلب کامل) نمایش بده

پیاده سازی سومین حلقه: حلقه نمایش صفحات (در منوی راست)

<div class="gadget">
          <h2 class="star"><span>منوی</span> اصلی</h2><div class="clr"></div>
          <ul class="sb_menu">
             <li><a href="index.html">خانه</a></li>
            <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
          </ul>
        </div>

ما دوباره میایم لیست صفحات رو از دیتابیس نمایش میدیم. (دقیقا مثل منوی بالای سایت)
پس توضیح خاصی نمیدم

پیاده سازی چهارمین حلقه: حلقه نمایش لینک دوستان

<div class="gadget">
          <h2 class="star"><span>لینک ها</span></h2><div class="clr"></div>
          <ul class="ex_menu">
           <?php
            $Query = mysql_query ("SELECT * FROM `link` ORDER BY `id` DESC");
            while ( $row_link = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="<?php echo $row_link['url']; ?>" title="<?php echo $row_link['title']; ?>"><?php echo $row_link['title']; ?></a><br /><?php echo $row_link['description']; ?></li>
            <?php }?>

          </ul>
        </div>

ما در این قسمت باید مقادیر رو از جدول link که همون لینک های دوستان هست رو نمایش بدیم. مثل حلقه های گذشته کوئری میگیریم. یک حلقه while ایجاد میکنیم و مقادیر عنوان لینک و آدرس لینک و توضیحات لینک رو نمایش میدیم
در اخر حلقه رو میبندیم

پیاده سازی حلقه پنجم و متغیر های دیگر : (متن درباره ما, و حلقه نمایش صفحات در فوتر سایت)

خب دوستان. الان رسیدیم به ته برگ سایت (فوتر)

ما در این قسمت چند قسمت (بلاک) داریم با نام های درباره من, من در... , و تماس با من
که برای هر کدوم از اینها من یک متغیر در فایل config.php درست کردم که با یک بار وارد کردن مقادیر, در تمامی صفحات نمایش داده بشه!

<div class="fbg">
    <div class="fbg_resize">
      <div class="col c1">
        <h2><span>درباره من</span></h2>
        <img src="http://forum.persianscript.ir/images/white.jpg" width="56" height="56" alt="pix" />
        <?php echo $about;?>
      
      </div>
      <div class="col c2">
        <h2><span>من در...</span></h2>
        <ul class="sb_menu">
          <li><a href="<?php echo $facebook;?>">فیسبوک</a></li>
          <li><a href="<?php echo $twitter;?>">توییتر</a></li>
          <li><a href="<?php echo $google;?>">گوگل +</a></li>
        </ul>
      </div>
      <div class="col c3">
        <h2>تماس با من</h2>
        <p>برای تماس با من میتوانید از طریق زیر اقدام نمایید</p>
        <p><a href="mailto:<?php echo $email;?>"><?php echo $email;?></a></p>
        <p><?php echo $tell;?></p>
       
      </div>
      <div class="clr"></div>
    </div>
  </div>
  <div class="footer">
    <div class="footer_resize">
      <p class="lf">© آموزش طراحی سیستم مدیریت محتوای ساده توسط <a href="#">پرشین اسکریپت</a>. قالب برگرفته از <a href="http://www.coolwebtemplates.net/">Website Templates</a></p>
      <ul class="fmenu">
        <li class="active"><a href="index.html">خانه</a></li>
        <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 5");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
      </ul>
      <div class="clr"></div>
    </div>
  </div>

در ابتدا متغیر درباره و فیسبوک و توییتر و گوگل همچنین تماس با مدیر سایت رو از کانفیگ میگیریم و در مکان دلخواه که همون ته برگ و در بلاک های مورد نظر هست نمایش میدیم.

در اخر دوباره از جدول صفحات لیست صفحات رو در فوتر سایت نمایش میدیم.

لینک دانلود اسکریپت تا این مرحله پیوست شد.
دوستان میتونن دانلود کنن

مراحل بعدی
فایل page.php - نمایش صفحه
فایل news.php - نمایش خبر

0

در این بخش میخوایم قسمت اخبار رو تکمیل کنیم. بعنی با کلیک کردن کاربر روی " ادامه مطلب " متن کامل خبر خونده بشه! یا با کلیک بر روی صفحات دیگه سایت متن کامل اون صفحه و توضیحات بیاد!

برای این کار ما تغییرات زیادی نسبت به فایل index.php نمیدیم! فقط یک شرط میزاریم که در صورتی که کاربر شماره خبر رو به وسیله GET فرستاده بود. سطر مورد نظر رو بخون! و این دفعه تنها یک مقدار رو نشون بده یعنی limit برابر 1 باشه!

محتویات فایل news.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Design by http://www.coolwebtemplates.net
Released for free under a Creative Commons Attribution 3.0 License
-->
<?php 
include "admin/config.php";

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div class="main">

  <div class="header">
    <div class="header_resize">
      <div class="logo"><h1><a href="index.php"><?php echo $title;?><small><?php echo $desc;?></small></a></h1></div>
      <div class="clr"></div>
      <div class="menu_nav">
        <ul>
          <li class="active"><a href="index.php">خانه</a></li>
    <?php
    $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 4");
    while ( $row_page = mysql_fetch_array($Query) ) { 
    ?>
    <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
    
    <?php } ?>
        </ul>

      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="content">
    <div class="content_resize">
      <div class="mainbar">
      
            <?php
            if ( isset($_GET['id']) )
{
            $Query = mysql_query ("SELECT * FROM `news` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1");
            }
            while ( $row_news = mysql_fetch_array($Query) ) { 
            ?>
        <div class="article">
          <h2><?php echo $row_news['title']; ?></h2><div class="clr"></div>
          <p><span class="date"><?php echo date("l d F Y", $row_news['date']) ?></span></p>
          <p><?php echo $row_news['content']; ?></p>
          <p><?php echo $row_news['fullcontent']; ?></p>
          
        </div>
        <?php }?>
        
        
      </div>
      <div class="sidebar">
        <div class="gadget">
          <h2 class="star"><span>منوی</span> اصلی</h2><div class="clr"></div>
          <ul class="sb_menu">
             <li><a href="index.html">خانه</a></li>
            <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
          </ul>
        </div>
        <div class="gadget">
          <h2 class="star"><span>لینک ها</span></h2><div class="clr"></div>
          <ul class="ex_menu">
           <?php
            $Query = mysql_query ("SELECT * FROM `link` ORDER BY `id` DESC");
            while ( $row_link = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="<?php echo $row_link['url']; ?>" title="<?php echo $row_link['title']; ?>"><?php echo $row_link['title']; ?></a><br /><?php echo $row_link['description']; ?></li>
            <?php }?>

          </ul>
        </div>
      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="fbg">
    <div class="fbg_resize">
      <div class="col c1">
        <h2><span>درباره من</span></h2>
        <img src="images/white.jpg" width="56" height="56" alt="pix" />
        <?php echo $about;?>
      
      </div>
      <div class="col c2">
        <h2><span>من در...</span></h2>
        <ul class="sb_menu">
          <li><a href="<?php echo $facebook;?>">فیسبوک</a></li>
          <li><a href="<?php echo $twitter;?>">توییتر</a></li>
          <li><a href="<?php echo $google;?>">گوگل +</a></li>
        </ul>
      </div>
      <div class="col c3">
        <h2>تماس با من</h2>
        <p>برای تماس با من میتوانید از طریق زیر اقدام نمایید</p>
        <p><a href="mailto:<?php echo $email;?>"><?php echo $email;?></a></p>
        <p><?php echo $tell;?></p>
       
      </div>
      <div class="clr"></div>
    </div>
  </div>
  <div class="footer">
    <div class="footer_resize">
      <p class="lf">© آموزش طراحی سیستم مدیریت محتوای ساده توسط <a href="#">پرشین اسکریپت</a>. قالب برگرفته از <a href="http://www.coolwebtemplates.net/">Website Templates</a></p>
      <ul class="fmenu">
        <li class="active"><a href="index.html">خانه</a></li>
        <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 5");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
      </ul>
      <div class="clr"></div>
    </div>
  </div>
</div>
</body>
</html>

خب در ابتدا ما مشخصه های ثابت و قبلی که در فایل index.php توضیح دادم. مثل نمایش نام سایت, عنوان سایت, لیست صفحات در منوی ناوبری بالای سایت ووو... هست!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Design by http://www.coolwebtemplates.net
Released for free under a Creative Commons Attribution 3.0 License
-->
<?php 
include "admin/config.php";

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div class="main">

  <div class="header">
    <div class="header_resize">
      <div class="logo"><h1><a href="index.php"><?php echo $title;?><small><?php echo $desc;?></small></a></h1></div>
      <div class="clr"></div>
      <div class="menu_nav">
        <ul>
          <li class="active"><a href="index.php">خانه</a></li>
    <?php
    $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 4");
    while ( $row_page = mysql_fetch_array($Query) ) { 
    ?>
    <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
    
    <?php } ?>
        </ul>

      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="content">
    <div class="content_resize">
      <div class="mainbar">

قسمتی که ما با اون کار داریم و تغییرات جزئی در اون نسبت به فایل index.php ایجاد میکنیم. همون شرط هست. محتویات حلقه ما به شرح زیر هست

<?php
            if ( isset($_GET['id']) )
{
            $Query = mysql_query ("SELECT * FROM `news` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1");
            }
            while ( $row_news = mysql_fetch_array($Query) ) { 
            ?>
        <div class="article">
          <h2><?php echo $row_news['title']; ?></h2><div class="clr"></div>
          <p><span class="date"><?php echo date("l d F Y", $row_news['date']) ?></span></p>
          <p><?php echo $row_news['content']; ?></p>
          <p><?php echo $row_news['fullcontent']; ?></p>
          
        </div>
        <?php }?>

توضیحات:

در ابتدا میگیم اگر که کاربر شماره خبری رو به وسیله id فرستاده بود دستورات زیر مجموعه که نمایش متن خبر هست رو اجرا کن.
در صورتی که کاربر شماره خبر رو زده بود از جدول news - اخبار بر اساس شماره خبر (ورودی که کاربر یا سایت ارسال کرده)یک خبر رو انتخاب کن.

حالا با یک حلقه while مقدار های مورد نیاز رو نمایش میدیم. مقادیر مورد نیاز عنوان خبر,تاریخ ارسال خبر , متن کوتاه خبر و متن کامل خبر هست!

و حلقه بسته میشه.

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

به شرح زیر هست:

</div>
      <div class="sidebar">
        <div class="gadget">
          <h2 class="star"><span>منوی</span> اصلی</h2><div class="clr"></div>
          <ul class="sb_menu">
             <li><a href="index.html">خانه</a></li>
            <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
          </ul>
        </div>
        <div class="gadget">
          <h2 class="star"><span>لینک ها</span></h2><div class="clr"></div>
          <ul class="ex_menu">
           <?php
            $Query = mysql_query ("SELECT * FROM `link` ORDER BY `id` DESC");
            while ( $row_link = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="<?php echo $row_link['url']; ?>" title="<?php echo $row_link['title']; ?>"><?php echo $row_link['title']; ?></a><br /><?php echo $row_link['description']; ?></li>
            <?php }?>

          </ul>
        </div>
      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="fbg">
    <div class="fbg_resize">
      <div class="col c1">
        <h2><span>درباره من</span></h2>
        <img src="images/white.jpg" width="56" height="56" alt="pix" />
        <?php echo $about;?>
      
      </div>
      <div class="col c2">
        <h2><span>من در...</span></h2>
        <ul class="sb_menu">
          <li><a href="<?php echo $facebook;?>">فیسبوک</a></li>
          <li><a href="<?php echo $twitter;?>">توییتر</a></li>
          <li><a href="<?php echo $google;?>">گوگل +</a></li>
        </ul>
      </div>
      <div class="col c3">
        <h2>تماس با من</h2>
        <p>برای تماس با من میتوانید از طریق زیر اقدام نمایید</p>
        <p><a href="mailto:<?php echo $email;?>"><?php echo $email;?></a></p>
        <p><?php echo $tell;?></p>
       
      </div>
      <div class="clr"></div>
    </div>
  </div>
  <div class="footer">
    <div class="footer_resize">
      <p class="lf">© آموزش طراحی سیستم مدیریت محتوای ساده توسط <a href="#">پرشین اسکریپت</a>. قالب برگرفته از <a href="http://www.coolwebtemplates.net/">Website Templates</a></p>
      <ul class="fmenu">
        <li class="active"><a href="index.html">خانه</a></li>
        <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 5");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
      </ul>
      <div class="clr"></div>
    </div>
  </div>
</div>
</body>
</html>
0

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

محتویات فایل page.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Design by http://www.coolwebtemplates.net
Released for free under a Creative Commons Attribution 3.0 License
-->
<?php 
include "admin/config.php";

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div class="main">

  <div class="header">
    <div class="header_resize">
      <div class="logo"><h1><a href="index.php"><?php echo $title;?><small><?php echo $desc;?></small></a></h1></div>
      <div class="clr"></div>
      <div class="menu_nav">
        <ul>
          <li class="active"><a href="index.php">خانه</a></li>
    <?php
    $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 4");
    while ( $row_page = mysql_fetch_array($Query) ) { 
    ?>
    <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
    
    <?php } ?>
        </ul>

      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="content">
    <div class="content_resize">
      <div class="mainbar">
      
            <?php
            if ( isset($_GET['id']) )
{
            $Query = mysql_query ("SELECT * FROM `page` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1");
            }
            while ( $row_news = mysql_fetch_array($Query) ) { 
            ?>
        <div class="article">
          <h2><?php echo $row_news['title']; ?></h2><div class="clr"></div>
          <p><span class="date"><?php echo date("l d F Y", $row_news['date']) ?></span></p>
          <p><?php echo $row_news['content']; ?></p>
          
        </div>
        <?php }?>
        
        
      </div>
      <div class="sidebar">
        <div class="gadget">
          <h2 class="star"><span>منوی</span> اصلی</h2><div class="clr"></div>
          <ul class="sb_menu">
             <li><a href="index.html">خانه</a></li>
            <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
          </ul>
        </div>
        <div class="gadget">
          <h2 class="star"><span>لینک ها</span></h2><div class="clr"></div>
          <ul class="ex_menu">
           <?php
            $Query = mysql_query ("SELECT * FROM `link` ORDER BY `id` DESC");
            while ( $row_link = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="<?php echo $row_link['url']; ?>" title="<?php echo $row_link['title']; ?>"><?php echo $row_link['title']; ?></a><br /><?php echo $row_link['description']; ?></li>
            <?php }?>

          </ul>
        </div>
      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="fbg">
    <div class="fbg_resize">
      <div class="col c1">
        <h2><span>درباره من</span></h2>
        <img src="images/white.jpg" width="56" height="56" alt="pix" />
        <?php echo $about;?>
      
      </div>
      <div class="col c2">
        <h2><span>من در...</span></h2>
        <ul class="sb_menu">
          <li><a href="<?php echo $facebook;?>">فیسبوک</a></li>
          <li><a href="<?php echo $twitter;?>">توییتر</a></li>
          <li><a href="<?php echo $google;?>">گوگل +</a></li>
        </ul>
      </div>
      <div class="col c3">
        <h2>تماس با من</h2>
        <p>برای تماس با من میتوانید از طریق زیر اقدام نمایید</p>
        <p><a href="mailto:<?php echo $email;?>"><?php echo $email;?></a></p>
        <p><?php echo $tell;?></p>
       
      </div>
      <div class="clr"></div>
    </div>
  </div>
  <div class="footer">
    <div class="footer_resize">
      <p class="lf">© آموزش طراحی سیستم مدیریت محتوای ساده توسط <a href="#">پرشین اسکریپت</a>. قالب برگرفته از <a href="http://www.coolwebtemplates.net/">Website Templates</a></p>
      <ul class="fmenu">
        <li class="active"><a href="index.html">خانه</a></li>
        <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 5");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
      </ul>
      <div class="clr"></div>
    </div>
  </div>
</div>
</body>
</html>

دستورات فراخوانی اطلاعات سایت مثل عنوان سایت و نمایش لینک صفحات در منوی ناوبری بالای سایت و... به روال قبل و مثل فایل های index.php و news.php هست و تغییری نکردن!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Design by http://www.coolwebtemplates.net
Released for free under a Creative Commons Attribution 3.0 License
-->
<?php 
include "admin/config.php";

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php echo $title;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />

</head>
<body>
<div class="main">

  <div class="header">
    <div class="header_resize">
      <div class="logo"><h1><a href="index.php"><?php echo $title;?><small><?php echo $desc;?></small></a></h1></div>
      <div class="clr"></div>
      <div class="menu_nav">
        <ul>
          <li class="active"><a href="index.php">خانه</a></li>
    <?php
    $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 4");
    while ( $row_page = mysql_fetch_array($Query) ) { 
    ?>
    <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
    
    <?php } ?>
        </ul>

      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="content">
    <div class="content_resize">
      <div class="mainbar">

قسمت اصلی که تغییر کرده در بدنه برگه هست. در جایی که محتویات برگه نمایش داده میشه. ما باید در ابتدا جدول برگه ها رو صدا کنیم و محتویات رو نمایش بدیم

کد این قسمت به شرح زیر هست:

<?php
            if ( isset($_GET['id']) )
{
            $Query = mysql_query ("SELECT * FROM `page` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1");
            }
            while ( $row_news = mysql_fetch_array($Query) ) { 
            ?>
        <div class="article">
          <h2><?php echo $row_news['title']; ?></h2><div class="clr"></div>
          <p><span class="date"><?php echo date("l d F Y", $row_news['date']) ?></span></p>
          <p><?php echo $row_news['content']; ?></p>
          
        </div>
        <?php }?>

توضیحات:

ابتدا یک شرط میزاریم در صورتی که کاربر شماره برگه رو ارسال کرد دستورات زیر مجموعه روو اجرا کن

در این قسمت ابتدا از جدول page شماره صفحه رو انتخاب می کنیم و با استفاده از یک حلقه while محتویات اون صفحه رو نشون میدیم.

سپس فیلد های مورد نظر مثل عنوان صفحه,متن صفحه و تاریخ ارسال خبر رو نمایش میدیم!

سایر کد ها هم مانند برگه های index.php و news.php بدون تغییر هستن (نوار کناری که لیست صفحات رو میاره و لینک های دوستان که در این قسمت هست. سپس فوتر سایت مقادیر ثابتی داره که نمایش داده میشه)

</div>
      <div class="sidebar">
        <div class="gadget">
          <h2 class="star"><span>منوی</span> اصلی</h2><div class="clr"></div>
          <ul class="sb_menu">
             <li><a href="index.html">خانه</a></li>
            <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
          </ul>
        </div>
        <div class="gadget">
          <h2 class="star"><span>لینک ها</span></h2><div class="clr"></div>
          <ul class="ex_menu">
           <?php
            $Query = mysql_query ("SELECT * FROM `link` ORDER BY `id` DESC");
            while ( $row_link = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="<?php echo $row_link['url']; ?>" title="<?php echo $row_link['title']; ?>"><?php echo $row_link['title']; ?></a><br /><?php echo $row_link['description']; ?></li>
            <?php }?>

          </ul>
        </div>
      </div>
      <div class="clr"></div>
    </div>
  </div>

  <div class="fbg">
    <div class="fbg_resize">
      <div class="col c1">
        <h2><span>درباره من</span></h2>
        <img src="images/white.jpg" width="56" height="56" alt="pix" />
        <?php echo $about;?>
      
      </div>
      <div class="col c2">
        <h2><span>من در...</span></h2>
        <ul class="sb_menu">
          <li><a href="<?php echo $facebook;?>">فیسبوک</a></li>
          <li><a href="<?php echo $twitter;?>">توییتر</a></li>
          <li><a href="<?php echo $google;?>">گوگل +</a></li>
        </ul>
      </div>
      <div class="col c3">
        <h2>تماس با من</h2>
        <p>برای تماس با من میتوانید از طریق زیر اقدام نمایید</p>
        <p><a href="mailto:<?php echo $email;?>"><?php echo $email;?></a></p>
        <p><?php echo $tell;?></p>
       
      </div>
      <div class="clr"></div>
    </div>
  </div>
  <div class="footer">
    <div class="footer_resize">
      <p class="lf">© آموزش طراحی سیستم مدیریت محتوای ساده توسط <a href="#">پرشین اسکریپت</a>. قالب برگرفته از <a href="http://www.coolwebtemplates.net/">Website Templates</a></p>
      <ul class="fmenu">
        <li class="active"><a href="index.html">خانه</a></li>
        <?php
            $Query = mysql_query ("SELECT * FROM `page` ORDER BY `id` DESC LIMIT 5");
            while ( $row_page = mysql_fetch_array($Query) ) { 
            ?>
            <li><a href="page.php?id=<?php echo $row_page['id']; ?>"><?php echo $row_page['title']; ?></a></li>
            <?php } ?>
      </ul>
      <div class="clr"></div>
    </div>
  </div>
</div>
</body>
</html>
0

خبدوستان تموم شد
سورس کامل رو میتونید از اینجا دانلود کنید
[url]http://dl.persianscript.ir/script/Persian-Simple-CMS%28PersianScript.ir%29.zip[/url]
بدرود.

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.