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