ساخت CMS ساده با PHP - قسمت 12 - منوی برگه ها و نمایش برگه

- visibility ۱۵ mode_comment

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

تابع ایجاد منوی اصلی

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

این منوی پیش فرض هستش که با ساختار bootstrap طراحی شده،ما برای ساخت منو نیاز داریم تا برگه ها رو به صورت لینک های در تگ های li تولید کنیم.

در فایل functions خودتون این تابع رو اضافه کنید.

در این تابع یه کوئری ایجاد کردیم تا تمام سطر های جدول pages رو دریافت کنه به شرطی که برگه منشتر شده باشه و در حالت پیش نویس نباشه.بعد دز یه حلقه اونو در یه متغییر با نام menu به صورت تگ های li نوشتیم و مقادیر لازم رو مثل عنوان برگه با شناسه برگه رو در این تگ ها قرار دادیم.

برای لینک هم یه کوئری استرینگ به صفحه view.php ایجاد کردیم و نام متغییر رو page_id قرار دادیم.اگه توجه کنید در ابتدیا تابع چندین خط رو به صورت comment نوشتیم این برای موقعی هست که بخواین منو رو به صورت تگ های کامل یه لیست ایجاد کنید فقط کافیه اون خط ها رو از حالت comment خارج کنید.

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

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

خوب حالا وقتی روی یه برگه کیک میشه لینک ها یه کوئری استرینگ میفرستن به صفحه view.php و متغییر page_id هم مقدار دهی شده و باید کدهای داخل صفحه view رو تغییر بدیم.

در ابتدا کدهای زیر رو به اول صفحه و بعد از کدهای دریافت مطلب تک اضافه می کنیم.

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

خوب حالا تابع get_page_by_id اینطوری میشه:

اینم دقیقا مثل تابع get_post_by_id هستش و فقط کوئری برای جدول page هستش.

info نکته :

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

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

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

چون در هر لحظه یه متغییر ست میشه ما گفتیم هر کدوم ست شده بود همونو چاپ کنهو

کدهای کامل صفحه view.php به این شکل در میاد.

info نکته :

 برای جلوگیری از شیطونی دیگران که ممکنه دو تا متغییر رو در آدرس ارسال کنن میتونید چک کنید فقط در هر لحظه یکی از متغییر های کوئری استرینگ ست شده باشه

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

موفق و پیروز باشید.

comment دیدگاه کاربران
شمس اباد

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

لقمان آوند

سلام
2-3 جلسه ی دیگه بیشتر نمونده که تو ه مین ماه انشاءالله تموم میشه .

شمس اباد

ممنون از زحماتتون

حسین

با سلام
من تازه با سایتتون اشنا شدم.
ایا این اموزش ها به صورت ویدئو می باشد یا pdf
ممنون

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

سلام این آموزش به صورت متنی با قابلیت دانلود PDF هست.

mohamad mohamadi

سلام آقای علی محمدی من هرکار کردم و حتی فایل جلسه آخر را دانلود کردم 1 ارور میده همش
میشه بگید چجوری ارور را درست کنم؟

لینک ارور
http://s3.picofile.com/file/8209818584/zzz.png

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

سلام این خطای mysql هست چون توابعش در نسخه های جدید php منسوخ شده.

mohamad mohamadi

سلام پس میشه 1دونه درستشو بهم بدید جایگوزین کنم؟

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

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

mohamad mohamadi

سلام میشه الان بزاری لطفا

وحید صالحی

سلام فعلا امکانش نیست آقای علیمحمدی درگیر دوره وردپرس هستند انشالله یکم سرشون خلوت تر بشه آپدیت میکنن

mohamad mohamadi

آقای صالحی آخه فردا vip من تموم میشه و دیگه پول ندارم بخرم چیکار کنم ?

وحید صالحی

آقا محمد hین کار, کار یکی دوساعت نیست که سریع بشه انجام داد انشالله تا زمانی که آموزش آپدیت بشه شرایط برای شما هم محیا میشه 😉

mohamad mohamadi

سلام من میخوام vip بخرم اینجارو بروز کردید ؟

وحید صالحی

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

نیاز به لاگین

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