رفتن به مطلب
عبدالله عصمتی

تبدیل تاریخ میلادی به شمسی در افزونه های جوملا

پست های پیشنهاد شده

جوملا! بر اساس نیاز کاربران ، برای هر زبانی می توان تاریخ منحصر بفرد آن کشور یا زبان را پشتیبانی می کند. هر زبان می تواند در جوملا یک تاریخ منحصر بفرد خودش را داشته باشد که در صورت استفاده از آن زبان ، تاریخ نیز به همان کشور تغییر پیدا کند. بطور مثال در زبان فارسی ،‌زمانی که شما زبان کاربری وب سایت را فارسی انتخاب کنید ، تاریخ نیز متناسب با زبان فارسی ، شمسی و یا همان جلالی می شود. و اگر زبان انگلیسی را انتخاب کنید ، تاریخ میلادی می شود.

این امری است که برنامه سازان جوملا به آن در جوملا ۱.۵ اشاره کرده و بسیار نیز حیاتی بوده است. حال چه کنیم که برنامه یا افزونه ای که طراحی می کنیم و یا از قبل طراحی شده است ، از این خاصیت استفاده کند؟

نکته :‌در جوملا و یا بطور کل در برنامه نویسی ها همیشه بایستی تاریخی که در پایگاه داده ها ذخیره می شود میلادی ذخیره شود.چراکه تاریخ میلادی که تاریخ پیشفرض است.بنا بر این فقط بایستی حالت نمایش و بقولی view به تاریخ مثلا فارسی تبدیل شود.

حال بپردازیم به کد و یا شی کوچک تبدیل تاریخ در جوملا .

JHTML::_('date', arg1,arg2);  

این شی جز آرگومان اصلی که date و نشان دهنده تبدیل تاریخ است ، دو آرگومنت دیگر نیز دارد.

اولین آرگومنت بایستی مقدار تاریخ ما باشد که میلادی هم بایستی باشد. دومین آرگومان نیز فرمت نمایش تاریخ است.مثلا روز رو کامل بگه یا مختصر و یا اینکه عصر و صبح رو هم اعلام کنه و ... .

مثال :

JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC4'));

در مثال بالا یک آبجکت تاریخ ایجاد شده یک مطلب از پایگاه داده گرفته شده است و مقدارش در اینجا درج شده است.

در آبجکت بعدی نیز نوع نمایش و فرمت تاریخ قرار داده شده است.این نوع در فایل های زبان قابل تغییر می باشد.

استفاده از این شی در افزونه هایی که وجود دارند ولی شمسی نیستند

ما فرض می کنیم افزونه ای داریم که کد تاریخش بصورت زیر است

date($row->created,"Y-m-d") 

حال این کد را تبدیل می کنیم :

JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC4'));

منبع جومفا

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام و تشکر از شما

توی تنظیمات مدیریت یک کامپوننت قسمتی به نام Date format وجود داره که مقدار دیفالتش %d.%m.%Y هست. با تغییر این فیلد می شه تاریخ ها رو شمسی کرد؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با سلام

برای چنین کاری میبایست در سورس کدهای افزونه تغییرات رو ایجاد کنید . در قسمت تنظیمات فقط میتوانید نحوه چینش نمایش تاریخ را تغییر بدید

موفق و پیروز باشید

یا حق

:64 (17):

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

من زیاد php وارد نیستم. تابعی هست که با اجرا شدنش تمامی توابع تاریخ رو تغییر بده؟ تغییر در سورس کامپوننت ها به روز رستیشون رو غیرممکن می کنه

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

جوملا! بر اساس نیاز کاربران ، برای هر زبانی می توان تاریخ منحصر بفرد آن کشور یا زبان را پشتیبانی می کند. هر زبان می تواند در جوملا یک تاریخ منحصر بفرد خودش را داشته باشد که در صورت استفاده از آن زبان ، تاریخ نیز به همان کشور تغییر پیدا کند. بطور مثال در زبان فارسی ،‌زمانی که شما زبان کاربری وب سایت را فارسی انتخاب کنید ، تاریخ نیز متناسب با زبان فارسی ، شمسی و یا همان جلالی می شود. و اگر زبان انگلیسی را انتخاب کنید ، تاریخ میلادی می شود.

این امری است که برنامه سازان جوملا به آن در جوملا ۱.۵ اشاره کرده و بسیار نیز حیاتی بوده است. حال چه کنیم که برنامه یا افزونه ای که طراحی می کنیم و یا از قبل طراحی شده است ، از این خاصیت استفاده کند؟

نکته :‌در جوملا و یا بطور کل در برنامه نویسی ها همیشه بایستی تاریخی که در پایگاه داده ها ذخیره می شود میلادی ذخیره شود.چراکه تاریخ میلادی که تاریخ پیشفرض است.بنا بر این فقط بایستی حالت نمایش و بقولی view به تاریخ مثلا فارسی تبدیل شود.

حال بپردازیم به کد و یا شی کوچک تبدیل تاریخ در جوملا .

 

JHTML::_('date', arg1,arg2);

این شی جز آرگومان اصلی که date و نشان دهنده تبدیل تاریخ است ، دو آرگومنت دیگر نیز دارد.

اولین آرگومنت بایستی مقدار تاریخ ما باشد که میلادی هم بایستی باشد. دومین آرگومان نیز فرمت نمایش تاریخ است.مثلا روز رو کامل بگه یا مختصر و یا اینکه عصر و صبح رو هم اعلام کنه و ... .

مثال :

JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC4'));

در مثال بالا یک آبجکت تاریخ ایجاد شده یک مطلب از پایگاه داده گرفته شده است و مقدارش در اینجا درج شده است.

در آبجکت بعدی نیز نوع نمایش و فرمت تاریخ قرار داده شده است.این نوع در فایل های زبان قابل تغییر می باشد.

استفاده از این شی در افزونه هایی که وجود دارند ولی شمسی نیستند

ما فرض می کنیم افزونه ای داریم که کد تاریخش بصورت زیر است

date($row->created,"Y-m-d")
حال این کد را تبدیل می کنیم :

JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC4'));
منبع جوم

دوست عزیز می تونی این تاریخ رو شمسی کنی با تشکر

*/

// no direct access

defined ( '_JEXEC' ) or die ( 'Restricted access' );

?>

<?php $this->genBlockBegin ($block) ?>

<p class="ja-day">

  <?php

    echo "<span class=\"day\">".JText::_(strtoupper(date ('l')))."</span>";

    echo "<span class=\"date\">, ".date ('m')." ".date ('d').date ('S')."</span>";

  ?>

</p>

<p class="ja-updatetime"><span><?php echo JText::_('Last update')?></span><em><?php echo T3Common::getLastUpdate(); ?></em></p>

<?php if($this->countModules('ja-login')) : ?>

    <div id="ja-headtools" class="ja-headtool">

  <ul>             

        <jdoc:include type="modules" name="ja-login" />

    </ul>

</div>

<?php endif; ?>

<?php $this->genBlockEnd ($block) ?>

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید ارسال داشته باشید و بعد ثبت نام خود را در سایت کامل نمایید. اگر حساب کاربری در سایت دارید، جهت ارسال با حساب کاربری خود هم اکنون وارد سایت شوید

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • افزودن...