ساخت CMS ساده با PHP - قسمت 5 - نصب ویرایشگر و ارسال مطلب

- visibility ۴٠ mode_comment

به نام خدا و سلام،در قسمت قبلی ما layout اصلی بخش مدیریت رو ایجاد کردیم،در ابن مطلب قصد داریم ادیتور ckeditor رو برای مدیریت محتوای خودمون نصب کنیم تا بتونیم مطالب رو به صورت html و با امکانات بیشتری در دیتابیس ثبت کنیم.

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

ایجاد صفحه new-post برای ارسال مطلب

ما برای ارسال مطلب در پوشه admin یه فایل با نام new-post.php ایجاد می کنیم و کدهای زیر رو داخلش قرار میدیم.

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

نصب ویرایشگر

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

برای این کار من ویرایشگر ckeditor رو انتخاب کردم.شما باید به سایت ckeditor.com مراجعه کنید و نسخه سفارشی اونو دانلود کنیدریالپیشنهاد میکنم نسخه standard رو با اضافه کردن زبان فارسی دانلود کنید.

برای نصب باید پوشه ckeditor رو در پوشه admin کپی کنیم.دو تا فایل هست که باید در صفحه الصاق کنیم در پوشه ckeditor فایل ckeditor.js و هم چنین فایل jquery در پوشه adapters درون پوشه ckeditor رو باید به صفحه الصاق کنید.

اگه به مارک آپ نگاه کنید ما این دو تا فایل رو الصاق کردیم.خوب بعد از این باید در فایل script.js که کدهای ما قرار میگیره کدهای زیر رو وارد کنیم.

می بنید که یه کد ساده جی کوئری هست که با استفاده از فایل های خود ckeditor اون تگ textarea رو به ویرایشگر تبدیل میکنه.هم چنین اگه زیان فارسی رو در موقع دانلود اضافه کرده باشین میتونیم با تنظیم زبان به مقدار fa از ویرایشگر فارسی راست به چپ استفاده کنیم.

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

در پوشه ckeditor یه فایل با نام contents.css وجود داره که استایل محتوای ویرایشگر رو مشخص میکنه شما در قسمت body استایل مورد نظر برای بدنه رو اعمال کنید مثلا من فونت تاهوما رو برای فونت پیش فرض انتخاب کردم و هم چنین فاصله خطوط رو هم کمی تغییر دادم.

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

نصب ویرایشگر بر روی php

خوب حالا وقت اینه که مطالب نوشته شده در این قسمت رو در دیتابیس ذخیره کنیم.

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

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

یه فیلد date هم داریم که اونو با تابع strftime فرمت بندی دلخواه می کنیم تا باهاش زمان جاری رو در دیتابیس ثبت کنیم(پارامتر اولش فرمت تاریخ و پارامتر دوم هم یه timestamp میگیره که ما با تابع time مقدار timestamp جاری رو برگردوندیم).

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

خبو حالا این پیام ها رو کجا نشون بدیم؟قبل از تگ فرم در صفحه ما این کدها رو قرار میدیم.

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

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

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

خوب امیدوارم براتون مفید بوده باشه.موفق وپیروز باشید.

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

با سلام
بابت اموزش خوبتون ممنونم
فقط اگه میشه یک راهنمایی کنید
فایل ckeditor.js و jquery را در صفحه ی new-post الصاق کنیم؟
فایل script.js موجود نیست!

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

سلام بله در پایین کدها فایل جی کوئری و فایل های ckeditor.js الصاق شده شما باید اون فایل script.js رو خودتون ایجاد کنید و طبق آموزش کدها رو داخلش قرار بدین.

سید علی

سلام
یه چیزی که من نفهمیدم در مورد پست ها اینه که اون url ی که ما توی قسمت اضافه کردن نوشته به عنوان ادرس انتخاب میکنیم چی میشه؟؟؟
مثلا ما مطلب رو داخل یه فیلد توی db ذخیره میکنیم و موقع نمایش از همون db اونا رو سلکت میکنیم ولی در مورد ادرس پست نمیفهمم که قراره چی بشه.قراره یه فایل تازه php ایجاد بشه برای هر پست؟؟قراره یه صفحه ی فرضی داشته باشیم؟؟
اون url قراره چی بشه؟امیدوارم منظورم رو فهمیده باشین

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

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

سید علی

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

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

باید کمی کد به فایل htaccess اضافه کنیم تا بتونه این نحوه آدرسی دهی بر اساس فیلد آدرس مطلب رو بشناسه.

سید علی

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

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

آدرسشون که مشخصه بر اساس شناسه مطلب یا صفحه نشون داده میشه (قسمت 11 و 12 رو بخونید متوجه میشید)،بر اساس شناسه،مطلب رو از دیتابیس واکشی میکنیم و نشون میدیم.خواهش میکنم 🙂

Navid Mirzaei

شما تونستین این موردو انجام بدین؟ منظورم اینه وقتی یه پست ایجاد میشه بتونه به ادامه مطلب یا همون آدرس پست بره.

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

بله این کار انجام شده.

پرنده غریب

سلام خسته نباشید میخواستم یه سوال شاید نا مرتبط بپرسم اگه میشه راهمنماییم کنید مرسی

تو بعضی از کدها کدهایی اومده با پسوند جی اس

و علامت سوال بعدش اومده و بعد ادرس دهی میکنه به چندتا عکس اما ادرس کامل نمیده فقط اشاره به اسم فایل داره مثلا 13245.png میخواستم ببینم چجوری این کارو باید انجام بدم ممنون میشم در صورت دونستن راهنماییم کنید مرسی

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

سلام من کاملا متوجه منظور شما نشدم.

سید علی

سلام
ممون اط مطالب خوبتون
در این cms ایجاد تگ برای مطالب وجود نداره و منم هر چی با خودم فکر کردم نتونستم راهی پیدا کنم که بشه سیستم تگ بندی رو طوری ایجاد کرد که مثه ویدپرس حرفه ای باشه و لینک داشته باشه و …
اقای علی محمدی شما میدونین چجوری باید این سیستم رو ایجاد کرد؟روشش برام مهمه.
ممنون

سید علی

میشه جواب منو بدین؟؟!! 😀

لقمان آوند

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

سید صالح

سلام ، باید این کد رو کجا بزارم برای ذخیره ی اطلاعات فارسی تو دیتابیس؟؟
mysql_set_charset(“utf8″);

لقمان آوند

قبل از زدن اولین کوئری …

Navid Mirzaei

سلام من تازه کارم و دارم یه وبسایت برای پروژم میسازم. این ادیتور رو میخوام برای وبسایتم استفاده کنم اما نفهمیدم منظور از الصاق کردن چیه. یعنی کد درون ckeditor.js رو به script.js کپی کنم؟
با توجه به این که من این cms رو استفاده نمیکنم. باید برای استفاده ادیتور کدی رو داخل head بزارم؟

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

اگه فقط ادیتور رو میخواین از سایت ckeditor راهنمای کامل نصبش وجود داره و میتونید استفاده کنید.

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

سلام خسته نباشین
من درس این جلسه رو متوجه نشدم!
این کد آخری رو به کجا اضافه میکنی؟
تو یه صفحه جدید؟
ادامه قبلی؟
یه سوال دیگه
من ck رو اد کردم اما چرا هیچ اتفاقی نیفتاد؟
ایکاش یکم واضح تر توضیح میدادین

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

سلام ممنونم. مشکلتون دقیقا کدوم خط از کد هستش؟

نیاز به لاگین

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