- چهارشنبه 22 مهر 1405 ساعت 09:00
- 3.1.9
- کامل شده
- منقضی شده
Calendar Class تقویم ماهانه HTML تولید میکند و برای نمایش رویدادها یا تاریخهای مهم در یک صفحه کاربرد دارد. این کلاس خودش منبع داده رویدادها نیست، بلکه آرایهای از اطلاعات روزها را دریافت میکند و خروجی HTML میسازد.
ساختار و API اصلی
پس از بارگذاری کلاس، متد generate() سال، ماه و در صورت نیاز آرایهای از دادههای روزانه را دریافت میکند. میتوانید قالب روزهای هفته، نام ماهها، لینکهای ناوبری و کلاسهای HTML را با تنظیمات Calendar تغییر دهید.
نمونه استفاده
$this->load->library('calendar');
$data = array(
3 => '<a href="/events/3">جلسه تیم</a>',
12 => '<a href="/events/12">تحویل سفارش</a>'
);
echo $this->calendar->generate(2026, 11, $data);نکته مهم
برای تقویم فارسی یا تقویمهای غیرمیلادی، تبدیل تاریخ و نام روزها را جداگانه مدیریت کنید. خروجی روزهای دارای رویداد باید از نظر XSS امن باشد.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
گزینههای تقویم
| متد یا مفهوم | کاربرد |
|---|---|
generate($year, $month, $data) | ساخت تقویم HTML برای ماه مشخص. |
template | قالب HTML شامل کلاسهای روز، Header و لینکهای قبلی و بعدی. |
day_type | تعیین نوع نمایش روزهای هفته. |
month_type | تعیین نحوه نمایش نام ماه. |
start_day | تعیین روز شروع هفته. |
show_next_prev | نمایش لینک جابهجایی ماهها. |
نحوه استفاده و عیبیابی
در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.
در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایلهای موقت را پس از پایان عملیات آزاد کنید.
در بازبینی کد، ترتیب و نتیجه متدهای generate($year, $month, $data)، template، day_type، month_type را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.