ساخت CMS ساده با PHP - قسمت 6 - مدیریت مطالب

‏  38 دقیقه
۲۹ اردیبهشت ۱۳۹۳
ساخت CMS ساده با PHP - قسمت 6 - مدیریت مطالب

به نام خدا و سلام،در قسمت قبلی ادیتور رو نصب کردیم و قابلیت ارسال مطلب رو پیاده سازی کردیم،در این قسمت ما مدیریت مطلب موجود  اعم از حذف کردن یا ویرایش مطلب رو پیاده سازی می‌کنیم،پس با ما همراه باشید.

فهرست محتوای این مقاله

ایجاد صفحه لیست مطلب

قالب صفحات بخش مدیریت کاملا شبیه هم هست و فقط بخش محتوای اصلی فرق میکنه،بقیه اجزا ثابت میمونه،پس ما باید صفحه ای با نام posts.php و  شبیه همون صفحه ثبت مطلب جدید ایجاد کنیم که محتواش به شکل زیر هست.

<?php 
require_once '../init.php';
$success=false;
$err=false;
$message="";
if(isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['post_id'])){
    $post_id=intval($_GET['post_id']);
    if($post_id!=0){
        $res=mysql_query("DELETE FROM posts WHERE post_ID={$post_id} LIMIT 1");
        if($res){
            $success=true;
            $message="مطلب مورد نظر با موفقیت حذف گردید";
        }else{
            $err=true;
            $message="خطایی رخ داده است لطفا بعدا امتحان کنید";  
        }
    }
}
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>مدیریت سایت</title>
    <!-- Bootstrap -->
    <link href="../css/bootstrap.css" rel="stylesheet">
    <link href="../css/bootstrap-rtl.css" rel="stylesheet">
    <link href="../css/bootstrap-theme.css" rel="stylesheet">
    <link href="../css/style.css" rel="stylesheet">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
      <div class="container">
          <div class="row">
              <div class="navbar navbar-default navbar-fixed-top navbar-inverse" role="navigation">
                  <ul class="nav navbar-nav">
                      <li><a href="http://localhost:2020/CMS">نمایش سایت</a></li>
                       <li><a href="http://localhost:2020/logout.php">خروج از سایت</a></li>
                  </ul>
              </div>
          </div>
          <div class="row" style="margin-top: 100px;" >
            <div class="col-xs-12 col-sm-3 col-md-3">
                  <div class="panel panel-primary">
                      <div class="panel-heading">
                          <h3 class="panel-title">پنل مدیریت</h3>
                      </div>
                      <div class="panel-body">
                          <ul class="nav nav-stacked">
                              <li><a href="dashboard.php">داشبورد</a></li>
                              <li>مدیریت مطالب</li>
                              <li class="nav nav-divider"></li>
                              <li><a href="posts.php">همه مطالب</a></li>
                              <li><a href="new-post.php">مطلب جدید</a></li>
                              <li>مدیریت برگه ها</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="pages.php">همه برگه ها</a></li>
                              <li><a href="new-page.php">برگه جدید</a></li>
                               <li>مدیریت کاربران</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="users.php">همه کاربران</a></li>
                              <li><a href="new-user.php">کاربر جدید</a></li>
                               <li>مدیریت نظرات</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="comments.php">همه نظرات</a></li>
                          </ul>
                      </div>
                  </div>
              </div>
            <div class="col-xs-12 col-sm-8 col-md-9">
                   <div class="panel panel-default">
                  <div class="panel-heading">
                      <h3 class="panel-title">لیست مطالب</h3>
                </div>
               <div class="panel-body">
                   <?php if($success): ?>
                       <div class="alert alert-success"><?php echo $message; ?></div>
                       <?php elseif($err): ?>
                        <div class="alert alert-danger"><?php echo $message; ?></div>
                       <?php endif; ?>
                   <table class="table table-bordered table-hover table-striped">   
                   <tr>
                       <th>عنوان مطلب</th>
                       <th>تاریخ ارسال</th>
                       <th>تعداد نظرات</th>
                        <th>عملیات</th>
                   </tr>
                   <?php
                   $posts = get('posts');
                   while ($post = mysql_fetch_array($posts)):
                       ?>
                       <tr>
                           <td><?php echo $post['post_title']; ?></td>
                           <td><?php echo get_persian_date($post['post_date']); ?></td>
                           <td><?php echo $post['comment_count']; ?></td>
                           <td>
                               <a href="posts.php?action=delete&post_id=<?php echo $post['post_ID']; ?>" class="delete_post"><span class="glyphicon glyphicon-trash"></span></a>
                               <a href="new-post.php?post_id=<?php echo $post['post_ID']; ?>" class="edit_post"><span class="glyphicon glyphicon-edit"></span></a>
                           </td>
                       </tr>
                 <?php endwhile; ?> 
                       </table>
               </div>
              </div>
              </div>
          </div>
           <div class="row">
              <div class="col-sm-12" id="admin_footer"></div>
          </div>
      </div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="../js/jquery-1.10.2.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="../js/bootstrap.min.js"></script>
    <script src="../js/script.js"></script>
  </body>
</html>

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

<?php
$posts = get('posts');
while ($post = mysql_fetch_array($posts)):
   ?>
   <tr>
	   <td><?php echo $post['post_title']; ?></td>
	   <td><?php echo get_persian_date($post['post_date']); ?></td>
	   <td><?php echo $post['comment_count']; ?></td>
	   <td>
		   <a href="posts.php?action=delete&post_id=<?php echo $post['post_ID']; ?>" class="delete_post"><span class="glyphicon glyphicon-trash"></span></a>
		   <a href="new-post.php?post_id=<?php echo $post['post_ID']; ?>" class="edit_post"><span class="glyphicon glyphicon-edit"></span></a>
	   </td>
   </tr>
<?php endwhile; ?>

ما از جدول برای نشون دادن مطالب استفاده کردیم و بوت استرپ هم این ظاهر خوب رو تکمیل میکنه،در حلقه برا هر بار دور زدن عنوان،تاریخ و تعداد نظر رو دریافت کردیم ونشون دادیم،بعدشم یه ستون برای عملیات‌های لازم از قبیل حذف و ویرایش مطلب اضافه کردیم که با استفاده از فونت آیکنهای بوت استرپ زیباتر میشن.

از تابع get_persain_date برای تبدیل تاریخ به شمسی استفاده کردیم می‌تونید برید و بدنه تابع رو در فایل functions بررسی کنید.

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

لیست مطلب در CMS با php

 

خوب حالا میخایم با کلیک روی دکمه حذف این مطلب حذف بشه،برای این کار ما در کدهای قبلی و برای تعریف این لینک یه متغییر کوئری استرینگ به نام action برای مشخص کردن عمل مورد نظر و یه متغییر دیگه برای مشخص کردن آیدی مطلب به همین صفحه ارسال میکنیم.

حذف کردن مطلب

ما مقدار action رو برابر delete قرار دادیم.خوب حالا در کدهای php بالای صفحه با این کد این قضییه رو چک میکنیم.

<?php 
require_once '../init.php';
$success=false;
$err=false;
$message="";
if(isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['post_id'])){
    $post_id=intval($_GET['post_id']);
    if($post_id!=0){
        $res=mysql_query("DELETE FROM posts WHERE post_ID={$post_id} LIMIT 1");
        if($res){
            $success=true;
            $message="مطلب مورد نظر با موفقیت حذف گردید";
        }else{
            $err=true;
            $message="خطایی رخ داده است لطفا بعدا امتحان کنید";  
        }
    }
}
?>

چک کردیک اگه ست شده باشن و هم چنین برای متغیر post_id با تابع intval چک میکنیم حتما عددی باشه،این تابع در صورتی که مقدار حروف براش ارسال بشه 0 برمیگردونه،پس این مطمئن میکنه که عدد ارسال شده و اگه مقدار برابر صفر نباشه اونوقت کوئری حذف کردن با post_id مرتبط اجرا میشه و اون متغییر‌های نشون دادن پیغام ست میشن.اگه بپرسین چرا آخر کوئری LIMIT 1 قرار دادیم،برای اینه مطمئن بشیم فقط یه سطر حذف میشه،رعایت این مورد برای جلوگیری از SQL Injection خوبه.

خوب پیغام‌های مرتبط هم با این کد نشون داده میشه.

<?php if($success): ?>
<div class="alert alert-success"><?php echo $message; ?></div>
<?php elseif($err): ?>
<div class="alert alert-danger"><?php echo $message; ?></div>
<?php endif; ?>

هر کدوم مقدار صحیح داشت نشون داده میشه.

خوب بریم سراغ لینک ویرایش کردن مطلب.

 <a href="new-post.php?post_id=<?php echo $post['post_ID']; ?>" class="edit_post"><span class="glyphicon glyphicon-edit"></span></a>

در لینک ما آیدی مطلب رو به صورت کوئری استرینگ برای صفحه ارسال مطلب ارسال کردیم.

خوب حالا باید کمی کدهای صفحه ارسال مطلب رو تغییر بدیم.

اول از همه باید کدی بنویسیم که مطلب مورد نظر رو از دیتابیس بخونیم.

if(isset($_GET['post_id'])){
    $post_id=intval($_GET['post_id']);
    if($post_id!=0){

        $edit_post=  get_post_by_id($post_id);

    }
}

چک میکنیم اگه post_id ست شده باشه بعد از اعتبار سنجی عدد بودن با تابع get_post_by_id که قبلا تعریف کرده بودیم مطلب رو دریافت میکنیم و به صورت آرایه  در متغییر edit_post قرار میدیم،حالا باید مقادیر رو در صفحه نشون بدیم.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>اضافه کردن مطلب جدید</title>
    <!-- Bootstrap -->
    <link href="../css/bootstrap.css" rel="stylesheet">
     <link href="../css/bootstrap-rtl.css" rel="stylesheet">
    <link href="../css/bootstrap-theme.css" rel="stylesheet">
    <link href="../css/style.css" rel="stylesheet">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
      <div class="container">
          <div class="row">
              <div class="navbar navbar-default navbar-fixed-top navbar-inverse" role="navigation">
                  <ul class="nav navbar-nav">
                      <li><a href="http://localhost:2020/CMS">نمایش سایت</a></li>
                       <li><a href="http://localhost:2020/logout.php">خروج از سایت</a></li>
                  </ul>
              </div>
          </div>
          <div class="row" style="margin-top: 100px;" >
               <div class="col-xs-12 col-sm-3 col-md-3">
                  <div class="panel panel-primary">
                      <div class="panel-heading">
                          <h3 class="panel-title">پنل مدیریت</h3>
                      </div>
                      <div class="panel-body">
                          <ul class="nav nav-stacked">
                               <li><a href="dashboard.php">داشبورد</a></li>
                              <li class="active">مدیریت مطالب</li>
                              <li class="nav nav-divider"></li>
                              <li><a href="posts.php">همه مطالب</a></li>
                              <li><a href="new-post.php">مطلب جدید</a></li>
                              <li>مدیریت برگه ها</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="pages.php">همه برگه ها</a></li>
                              <li><a href="new-page.php">برگه جدید</a></li>
                               <li>مدیریت کاربران</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="users.php">همه کاربران</a></li>
                              <li><a href="new-user.php">کاربر جدید</a></li>
                               <li>مدیریت نظرات</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="comments.php">همه نظرات</a></li>
                          </ul>
                      </div>
                  </div>
              </div>
              <div class="col-xs-12 col-sm-9 col-md-9">
                   <div class="panel panel-default">
                  <div class="panel-heading">
                      <h3 class="panel-title">اضافه کردن مطلب جدید</h3>
                  </div>
                   <div class="panel-body">
                       <?php if($success): ?>
                       <div class="alert alert-success"><?php echo $message; ?></div>
                       <?php elseif($err): ?>
                        <div class="alert alert-danger"><?php echo $message; ?></div>
                       <?php endif; ?>
                           <form action="" method="post" role="form" class="form-horizontal">
                  <div class="form-group">
                      <div class="col-sm-6">
                          <input type="text" class="form-control" name="post_title" value="<?php echo !empty($edit_post)?$edit_post['post_title']:''; ?>"  placeholder="عنوان مطلب در این جا ...">
                      </div>
                  </div>
                  <div class="form-group">
                      <div class="col-sm-6">
                          <input type="text" class="form-control" name="post_slug" value="<?php echo !empty($edit_post)?$edit_post['post_slug']:''; ?>"  placeholder="نامک مطلب  در این جا ...">
                      </div>
                  </div>
                   <div class="form-group">
                      <div class=" col-xs-12 col-sm-12 col-md-12">
                          <textarea id="content" name="post_content" >
                              <?php echo !empty($edit_post)?$edit_post['post_body']:''; ?>
                          </textarea>
                      </div>
                  </div>
              <div class="form-group">
                  <div class="col-sm-12">
                  <select class="selectpicker" name="post_status">
                      <option value="published" <?php echo (!empty($edit_post) && $edit_post['post_status']=='published')?'selected':''; ?> >منتشر شده</option>
                      <option value="draft" <?php echo (!empty($edit_post) && $edit_post['post_status']=='draft')?'selected':''; ?>>پیش نویس</option>
                  </select>
                  </div>
              </div>
              <div class="form-group">
                  <div class="col-sm-offset-12 col-sm-10">
                      <button type="submit" name="submit_post" class="btn btn-primary">ذخیره مطلب</button>
                  </div>
              </div>
              </form>
            </div>
              </div>
              </div>
          </div>
           <div class="row">
              <div class="col-sm-12" id="admin_footer"></div>
          </div>
      </div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="../js/jquery-1.10.2.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="ckeditor/ckeditor.js"></script>
    <script src="ckeditor/adapters/jquery.js"></script>
    <script src="../js/bootstrap.min.js"></script>
    <script src="../js/script.js"></script>
  </body>
</html>

در اینجا برای فیلد‌های فرم اول چک کردیم که اون متغییر edit_post خالی نباشه،اگه نباشه برای هر فیلد مقدار مربوطه رو در داخل خاصیت value چاپ می‌کنیم.

ثبت مطلب ویرایشی

حالا برای ذخیره کردن مطلب ویرایش کدهای بخش ارسال فرم رو به صورت زیر تغییر میدیم.

if(isset($_POST['submit_post'])){
$title=  mysql_real_escape_string($_POST['post_title']);
$slug=  mysql_real_escape_string($_POST['post_slug']);
$content=$_POST['post_content'];
$status=$_POST['post_status'];
$date=strftime("%Y-%m-%d %H:%M:%S",time());
if(isset($_GET['post_id'])){
 $post_id=intval($_GET['post_id']);
 $sql="UPDATE posts SET post_title='{$title}',post_slug='{$slug}',post_body='{$content}',post_status='{$status}' WHERE post_ID={$post_id} LIMIT 1"; 
 $result=  mysql_query($sql);
if($result){
	$success=true;
	$message="مطلب مورد نظر با موفقیت ویرایش گردید";
}else{
	$err=true;
	$message="خطایی رخ داده است لطفا بعدا امتحان کنید";
}
}else{
$sql="INSERT INTO posts (post_title,post_body,post_date,post_slug,post_status,comment_count)";
$sql.=" VALUES('{$title}','{$content}','{$date}','{$slug}','{$status}',0) ";
$result=  mysql_query($sql);
if($result){
	$success=true;
	$message="مطلب جدید با موفقیت ثبت گردید";
}else{
	$err=true;
	$message="خطایی رخ داده است لطفا بعدا امتحان کنید";
}
}

}

با چک کردن همون متغییر کوئری استرینگ post_id کوئری رو مشخص میکنیم که باید برای درج مطلب باشه یا برای بروز رسانی مطلب،بعد از این هم پیغام مناسب رو با توجه به همین نشون کاربر میدیم.

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

<?php
require_once '../init.php';
    $message="";
    $success=false;
    $err=false;
if(isset($_POST['submit_post'])){
    $title=  mysql_real_escape_string($_POST['post_title']);
    $slug=  mysql_real_escape_string($_POST['post_slug']);
    $content=$_POST['post_content'];
    $status=$_POST['post_status'];
    $date=strftime("%Y-%m-%d %H:%M:%S",time());
    if(isset($_GET['post_id'])){
     $post_id=intval($_GET['post_id']);
     $sql="UPDATE posts SET post_title='{$title}',post_slug='{$slug}',post_body='{$content}',post_status='{ $status}' WHERE post_ID={$post_id} LIMIT 1"; 
     $result=  mysql_query($sql);
    if($result){
        $success=true;
        $message="مطلب مورد نظر با موفقیت ویرایش گردید";
    }else{
        $err=true;
        $message="خطایی رخ داده است لطفا بعدا امتحان کنید";
    }
    }else{
    $sql="INSERT INTO posts (post_title,post_body,post_date,post_slug,post_status,comment_count)";
    $sql.=" VALUES('{$title}','{$content}','{$date}','{$slug}','{$status}',0) ";
    $result=  mysql_query($sql);
    if($result){
        $success=true;
        $message="مطلب جدید با موفقیت ثبت گردید";
    }else{
        $err=true;
        $message="خطایی رخ داده است لطفا بعدا امتحان کنید";
    }
    }

}
if(isset($_GET['post_id'])){
    $post_id=intval($_GET['post_id']);
    if($post_id!=0){

        $edit_post=  get_post_by_id($post_id);

    }
}
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>اضافه کردن مطلب جدید</title>
    <!-- Bootstrap -->
    <link href="../css/bootstrap.css" rel="stylesheet">
     <link href="../css/bootstrap-rtl.css" rel="stylesheet">
    <link href="../css/bootstrap-theme.css" rel="stylesheet">
    <link href="../css/style.css" rel="stylesheet">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
      <div class="container">
          <div class="row">
              <div class="navbar navbar-default navbar-fixed-top navbar-inverse" role="navigation">
                  <ul class="nav navbar-nav">
                      <li><a href="http://localhost:2020/CMS">نمایش سایت</a></li>
                       <li><a href="http://localhost:2020/logout.php">خروج از سایت</a></li>
                  </ul>
              </div>
          </div>
          <div class="row" style="margin-top: 100px;" >
               <div class="col-xs-12 col-sm-3 col-md-3">
                  <div class="panel panel-primary">
                      <div class="panel-heading">
                          <h3 class="panel-title">پنل مدیریت</h3>
                      </div>
                      <div class="panel-body">
                          <ul class="nav nav-stacked">
                               <li><a href="dashboard.php">داشبورد</a></li>
                              <li class="active">مدیریت مطالب</li>
                              <li class="nav nav-divider"></li>
                              <li><a href="posts.php">همه مطالب</a></li>
                              <li><a href="new-post.php">مطلب جدید</a></li>
                              <li>مدیریت برگه ها</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="pages.php">همه برگه ها</a></li>
                              <li><a href="new-page.php">برگه جدید</a></li>
                               <li>مدیریت کاربران</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="users.php">همه کاربران</a></li>
                              <li><a href="new-user.php">کاربر جدید</a></li>
                               <li>مدیریت نظرات</li>
                              <li class="nav nav-divider"></li>
                               <li><a href="comments.php">همه نظرات</a></li>
                          </ul>
                      </div>
                  </div>
              </div>
              <div class="col-xs-12 col-sm-9 col-md-9">
                   <div class="panel panel-default">
                  <div class="panel-heading">
                      <h3 class="panel-title">اضافه کردن مطلب جدید</h3>
                  </div>
                   <div class="panel-body">
                       <?php if($success): ?>
                       <div class="alert alert-success"><?php echo $message; ?></div>
                       <?php elseif($err): ?>
                        <div class="alert alert-danger"><?php echo $message; ?></div>
                       <?php endif; ?>
                           <form action="" method="post" role="form" class="form-horizontal">
                  <div class="form-group">
                      <div class="col-sm-6">
                          <input type="text" class="form-control" name="post_title" value="<?php echo !empty($edit_post)?$edit_post['post_title']:''; ?>"  placeholder="عنوان مطلب در این جا ...">
                      </div>
                  </div>
                  <div class="form-group">
                      <div class="col-sm-6">
                          <input type="text" class="form-control" name="post_slug" value="<?php echo !empty($edit_post)?$edit_post['post_slug']:''; ?>"  placeholder="نامک مطلب  در این جا ...">
                      </div>
                  </div>
                   <div class="form-group">
                      <div class=" col-xs-12 col-sm-12 col-md-12">
                          <textarea id="content" name="post_content" >
                              <?php echo !empty($edit_post)?$edit_post['post_body']:''; ?>
                          </textarea>
                      </div>
                  </div>
              <div class="form-group">
                  <div class="col-sm-12">
                  <select class="selectpicker" name="post_status">
                      <option value="published" <?php echo (!empty($edit_post) && $edit_post['post_status']=='published')?'selected':''; ?> >منتشر شده</option>
                      <option value="draft" <?php echo (!empty($edit_post) && $edit_post['post_status']=='draft')?'selected':''; ?>>پیش نویس</option>
                  </select>
                  </div>
              </div>
              <div class="form-group">
                  <div class="col-sm-offset-12 col-sm-10">
                      <button type="submit" name="submit_post" class="btn btn-primary">ذخیره مطلب</button>
                  </div>
              </div>
              </form>
            </div>
              </div>
              </div>
          </div>
           <div class="row">
              <div class="col-sm-12" id="admin_footer"></div>
          </div>
      </div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="../js/jquery-1.10.2.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="ckeditor/ckeditor.js"></script>
    <script src="ckeditor/adapters/jquery.js"></script>
    <script src="../js/bootstrap.min.js"></script>
    <script src="../js/script.js"></script>
  </body>
</html>

اگه مطلب رو ویرایش کنید این پیغام‌ها به صورت زیر نشون داده میشه.

ویرایش مطالب در CMS با php

 

خوب دوستان امیدورام براتون مفید باشه،در قمست بعدی مدیریت برگه‌ها رو ایجاد میکنیم.موفق و پیروز باشین.

چه امتیازی به این مقاله می دید؟
نویسنده کیوان علی محمدی
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.

نظرات کاربران

Mehran

سلام
ممنون از آموزشتون
بیشتر کدها توی نسخه های جدیدتر php خطا می دن. ممکنه خطاها رو برای نسخه های جدید برطرف کنید؟

لقمان آوند

متاسفانه امکانش نیست
این آموزش خیلی قدیمی هست و دیگه ساپورش نمی کنیم.

empera2r

سلام آقای محمدی
من تازه آموزشارو شروع به خوندن کردم در مورد این جلسه مشکل داشتم : من یه صفحه اضافه کردن دسته بندی جدید درست کردم که یه فیلد text بالاست و جدول دسته بندی ها پایین که با ثبت در جدول زیر نشون میده در مورد قسمت ویرایش کردم مشکل داشتم شما در آموزش اطلاعات رو از صفحه posts به new post انتقال میدین و ویرایش رو انجام میدید که در این حالت مشکلی نیست مشکل که من داریم اینه با توجه به اینکه فیلد وارد کردن دسته بندی جدید با جدول دسته بندی ها در یک صفحه هستش وقتی رو یه دسته بندی برای ویرایش کلیک میکنم مقدار رو که ویرایش کردم ثبت رو که میزنم گزینه ویرایش میشه و ازون به بعد هر چی تو فیلد وارد میکنم و ثبت رو میرنم همون فیده هی ویرایش میشه و برای حل این مشلی باید صفحه رو یه بار دیگه از نو باز کرد ممنون میشم راهنمایی کنید

ژیهات

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

کیوان علی محمدی

میتونید با var_dump اون متغییر edit_post رو به صورت یه ارایه نشون بدی که اصلا محتوایی داره یا نه،باید همه رو چک کنید نام متغییر،کوئری استرینگ شناسه پست و … ،کدهای ما کاملا تست شده و جواب داده.

Shahoo

دوستان این باگ رو بررسی کردید؟؟

کیوان علی محمدی

کدوم باگ؟

Shahoo

با سلام
در بالا شرح دادم

کیوان علی محمدی

اوکی اون فقط یه اشتباه تایپیه دوست عزیز.اصلاح شد.

Shahoo

باسلام
از آموزش عالیتون سپاسگزارم
این cms یک باگ کوچک دارد خواستم آن را گزارش دهم:
در این cms اگر مطلبی را به عنوان پیش نویس ذخیره کنیم در صفحه ی داشبورد به —> مطلب پیش نویس یک عدد اضافه خواهد شد یعنی به عنوان پیش نویس نشان خواهد داده شد؛ که این درست عمل میکند ولی اگر آن مطلب را ویرایش و به عنوان مطلب انتشار داده شده ذخیره کنیم در صفحه ی داشبورد در —> لیست مطالب انتشار داده شده نشان داده نمیشود!!! این یک ایراد است که مطلبی را ویرایش کنیم بعد به عنوان مطلب منتشر شده ذخیره کنیم آن را در لیست مطالب منتشر شده نشان ندهد
اگر این ایراد برطرف شود ممنون میشم

وقتی پایگاه داده را نگاه کردم وقتی مطلبی را ویرایش بعد ذخیره میکنیم در فیلد status –> published را در داخل {}–>{published} ذخیره میکند
فک کنم مشکل از اینجا باشد

Shahoo

سلام
مرسی از اموزش مفیدتون ❓
این cms قالب نداره ؟ منظورم صفحه ی اصلی که کاربران از آن دیدن می کنند؟
اگه امکان داره اخر آموزش فایل های آن را نیز برای دانلود بزارید

کیوان علی محمدی

سلام چرا داره ولی فعلا داریم بخش مدیر رو طراحی میکنیم.

Shahoo

ممنون

rockstar

ممنون دوستان خسته نباشید

محمد

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

ali

سلام
اگه من عضویت برنزی بگیرم به این مطلب دسترسی دارم؟

وحید صالحی

سلام
بله دوست عزیز

علی دیباوند

خیلی عالی
مرسی 😉

عباس کاظمی

سلام ممنون آقای محمدی

شمس اباد

اقایون مرسی .ممنون از زحماتتون