چطور ميشه يك آرشيو ماهانه مثل وردپرس ساخت؟

Webber

Well-Known Member
سلام
من در مورد اين آرشيو ماهانه مشكل دارم و فكر و ايده ي خاصي به نظرم نمي رسه براي پياده سازي اون.مي خواستم ببينم ايده ي شما براي اين كار چيه و چطور عمل مي كنيد كه يك آرشيو مثل:

1388 ارديبهشت
1388 فروردين
1387 اسفند

داشته باشيد.شبيه وردپرس

ممنونم
 

justpersian

Member
سلام
برای درست کردنش فقط کافیه که ماه و سال تو دیتابیس ذخیره بشه
مثلا به این صورت : 8803 یا 138703 (اولی پیشنهاد میشه)
بعد با یه تابع مثه substr میایم دو رقم آخر رو جدا می کنیم
و تو یه switch بررسی می کنیم که اگه 01 بود فروردین اگه 02 بود اردیبهشت و... همینطوری تا 12 ماه
بعد وقتی هم روش کلیک شد مطالب همون ماه نشون داده بشه
همین
اگه متوجه نشدی بگو که یه نمونه از کارام رو بذارم
موفق باشی
 

Webber

Well-Known Member
سلام دوست من
سعي مي كنم انجام بدم.اگر مشكلي پيش اومد حتما مطرح مي كنم.

ممنونم كه پاسخ داديد.

موفقيت
 

D.A.V.O.O.D

Member
سلام دوست من
سعي مي كنم انجام بدم.اگر مشكلي پيش اومد حتما مطرح مي كنم.

ممنونم كه پاسخ داديد.

موفقيت

منم یه ایده دارم ، اما یه اشکالی که داره اینه که اگه توی یک ماه مطلبی ارسال نشه اون ماه رو نشون نمی ده !
ایده من اینه که ماه و سال ارسال مطلب رو توی دیتابیس بریزی و بعد با استفاده از group by `archive_date` قسمت آرشیو را بسازی . اما همانطور که مشخص است اگر توی یک ماه مطلبی ارسال نشه اون ماه رو نشون نمی ده !

سوالی بود در خدمتم
 

Webber

Well-Known Member
سلام دوستان
بخش نمايش آرشيو رو ساختم ولي در مورد گرفتن اطلاعات از ديتابيس يه مشكلي دارم.فرض كنيد سال و ماه رو به اين صورت به صفحه ي آرشيو مي فرستيم:

HTML:
archive.php?y=2009&m=4

و در پايگاه داده تاريخ رو به اين صورت ذخيره كرديم:

HTML:
2009-4-18 22:45

حالا با چه sql اي نوشته هاي اون ماه را دربياريم؟

ممنون
 

foranyone

Well-Known Member
شما نوع فیلد رو از نوع date لنتخاب نکنید و به صورت timestamp ذخیره کنید ! اینجوری میتونید هر کاری خواستین با استفاده از

کلاس تاریخ جلالی انجام بدید-
 

Webber

Well-Known Member
سلام

سلام
فکر می کنم این باید جواب بده :
PHP:
where `date` like '$y-$m'
ممنونم ولي نمي دونم چرا جواب نداد.
شما نوع فیلد رو از نوع date لنتخاب نکنید و به صورت timestamp ذخیره کنید ! اینجوری میتونید هر کاری خواستین با استفاده از

کلاس تاریخ جلالی انجام بدید-

ممنونم.خودم هم تو اين فكر بودم ولي استفاده ي wordpress از اين نوع فرمت تاريخ،من رو هم ترغيب به اين كار كرده.

حتما بايد راه حلي براي اين مشكل باشه.

ممنونم
 

payamsalami

New Member
برای ساخت آرشیو ماهانه شما فقط تاریخ هر مطلب رو ثبت کن ، اگه time stamp باشه بهتره و راحت تر می تونی کار کنی .
این متد واسه یکی از کلاس هایی هست که نوشتم که کاری که شما می خواید رو انجام میده .

PHP:
public function show_archive_list(){
        $select=mysql_query("select year(date) as y,month(date) as m,day(date) as d from posts order by date desc");
        while($row=mysql_fetch_assoc($select)){
            $date=gregorian_to_jalali($row["y"],$row["m"],$row["d"]);
            $year=$date[0];
            $month=$date[1];
            $list["$year-$month"]="<a href=\"index.php?archive=$year-$month\" >".$this->month_name($month)." ".$year."</a>";
        }
        if(count($list)!=0){
            foreach($list as $value){
                $archive[]=$value."<br>";
            }
        }else
             $archive[]='';
         
        return $archive;

    }
 

جدیدترین ارسال ها

بالا