در ادامه به سادهترین روش ممکن خواهید دید که چطور مشکل بهم ریختگی و عجیب و غریب بودن تاریخ k2 که بعد از ویرایش مطلب بوجود میآید را حل کنید.
اما مشکل چیست؟ مشکل این است که در هنگامی که زبان بخش مدیریت جوملا فارسی است، وقتی در کامپوننت k2 مطلبی را ویرایش میکنیم تاریخ مطلب به اعداد عجیبی تبدیل میشود. بنابراین اگر زبان بخش مدیریت، انگلیسی باشد این مشکل وجود ندارد.
اما چرا این اتفاق میافتد؟ بخاطر اینکه هنگامی که زبان مدیریت فارسی است، تاریخ ساعت و انتشار مطلب یکبار توسط جوملا به شمسی تبدیل میگردد و مجددا تاریخ تبدیل شده توسط کی2 به شمسی تبدیل میگردد. یعنی عمل تبدیل تاریخ به شمسی دوبار انجام میشود و این سبب بهم ریختگی و خراب شدن تاریخ میشود.
خب حالا برای رفع مشکل نمایش تاریخ کامپوننت K2 چه کنیم؟
برای تصحیح و نمایش صحیح تاریخ کامپوننت K2 باید یکی از 2 کدی که عمل شمسی سازی تاریخ را انجام میدهد از بین ببریم تا این عمل فقط یکبار انجام شود. بنابراین کافیست وارد مسیر زیر شویم:
/YOUR-SITE/administrator/components/com_k2/views/item
حالا در این مسیر فایل view.html.php
را برای ویرایش باز میکنیم و دنبال کامنت //Date/time
میگردیم تا به خطوط زیر برسیم:
// Date/time
$created = $item->created;
$publishUp = $item->publish_up;
$publishDown = $item->publish_down;
$created = JHTML::_('date', $item->created, $dateFormat);$publishUp = JHTML::_('date', $item->publish_up, $dateFormat);
if ((int)$item->publish_down) {
$publishDown = JHTML::_('date', $item->publish_down, $dateFormat);
} else {
$publishDown = '';
}
حالا از خطوط بالا دو خط زیر را به حالت کامنت در میآوریم. یعنی ابتدای این دوخط علامت #
قرار میدهیم:
#$created = JHTML::_('date', $item->created, $dateFormat);
#$publishUp = JHTML::_('date', $item->publish_up, $dateFormat);
همچنین مقدار متغیر publishDown$
را از JHTML::_('date', $item->publish_down, $dateFormat);
به عبارت item->publish_down$
تبدیل میکنیم. یعنی به این شکل :
$publishDown = $item->publish_down;
خب کار ما تمام شد. با این کار کامپوننت k2 برای تبدیل تاریخ از سیستم پیش فرض جوملا استفاده خواهد کرد و دیگر خطاهای دیده شده اتفاق نخواهد افتاد.