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

- visibility ۲۰ mode_comment

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

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

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

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

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

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

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

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

 

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

حذف کردن مطلب

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

comment دیدگاه کاربران
empera2r

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

Mehran

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

لقمان آوند

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

نیاز به لاگین

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