بهار
7 سال پیش توسط بهار مطرح شد
4 پاسخ

ساخت ارشیو مطالب برای بلاگ

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

۲۰۱۳ (۲۱)
    - May (۲)
    - April (۳)
    - March (۵)
    - February (۱)
    - January (۱۰)
۲۰۱۲ (۱۰)
    - December (۶)
    - November (۴)

ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 7 سال پیش مطرح شد
0

سلام برای میلادی این کار به سادگی انجام میشه اما متاسفانه بخاطر نا هماهنگ بودن ماهای شمسی و میلادی برگردوندن اطلاعات بصورت آرشیو شمسی با استفاده از خود mysql با توابع خودش امکان پذیر نیست
ترفندهای مختلفی توسط ایرانی ها برای این مورد استفاده میشه برای مثال ذخیره کردن زمان بصورت فارسی و بعد دسته بندی کردن با php که این موضوع پردازش نسبتن بالایی رو می طلبه که من پیشنهاد نمیکنم
و روش های دیگه که با ی سرچ کوچیک میتونید بهشون برسید
البته مابقی دوستان اگر نمونه کد داشته باشن و قرار بدن براتون که خیلی عالی میتونه بشه


بهار
@niloofare1 7 سال پیش آپدیت شد
2

ممنون بابت توضیحاتتون
بکمک یکی از دوستان باین کدها رسیدم.
اگر created_at مربوط به هر مقاله، بمیلادی داخل دیتابیس ذخیره بشه و بوسیله morilog موقع نمایش ، شمسی نشون بدیم بنظر راه درستی میاد :

$posts = Article::orderBy('created_at', 'desc')->get()->groupBy(function ($date) {
                    return Carbon::parse($date->created_at)->format('Y-m');
                });

-دستورات بلید :

<ul >
            @foreach ($posts as $date => $post)
                <li ><a href="#">{{ monthName($date).' '.year($date)}}</a>
                    <span>
                 &nbsp;({{count($post)}})&nbsp; </span></li>
            @endforeach
        </ul>

-دستورات مربوط به هلپر فانکشن :

use MorilogJalalijDate;
use MorilogJalalijDateTime;

function year($date)
{
    return jDate::forge($date)->format('%Y');
}

function monthName($date)
{
    return jDate::forge($date)->format('%B');
}

-خروجی :
فروردین 1396 (9)
تیر 1396 (1)
شهریور 1396 (3)
مهر 1396 (5)


yasin
@yasinbarnameh 7 سال پیش مطرح شد
0

سلام. میشه لطف کنید کوئری که برای نمایش مطالب هر ماه هست رو هم قرار بدید.(من تازه کارم زیاد بلد نیستم).
مثلا رو هر لینک کلیک شد پست های مربوط به اون ماه رو نمایش بده


بهار
@niloofare1 7 سال پیش آپدیت شد
0

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

    public function getArticlesWithDate($date){

        $year = Carbon::parse($date)->format('Y');
        $month = Carbon::parse($date)->format('m');

        $articles = Article::whereYear('created_at', '=', $year)
              ->whereMonth('created_at', '=', $month )
              ->paginate(10);

        return view('Home.articles' , compact('articles'));
    }

قسمت بلید :

        <ul class="doing-list">
            @foreach ($posts as $date => $post)
                <li ><a href="/articles/archive/{{ $date }}">{{ monthName($date).' '.year($date)}}</a>
                    <span>
                 &nbsp;({{count($post)}})&nbsp; </span></li>
            @endforeach
        </ul>

حالا من یه سوالی دارم . ببینید الان اگه روی لینکهای زیر کلیک کنم :

آرشیو

مهر 1396 (1)  
شهریور 1396 (3)

ادرس url م به این شکل تولید میشه :

http://localhost:8000/articles/archive/2017-09

من میخام مثلا به این شکل باشه .(شمسی نه میلادی)

http://localhost:8000/articles/archive/1396-06

یا مثلا به شکل :

http://localhost:8000/articles/archive/1396-شهریور

کسی راهکاری داره؟؟
ممنون


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام