تغییرات بزرگ در Datex

By عرفان بناکار, 1 ژوئیه, 2013

بالاخره ماژول در سایت دروپال تائید شد. از این به بعد میتونید برای دانلود ماژول به صفحه ماژول در سایت دروپال مراجعه کنید.

حدودا 6 ماه پیش بود که هنگام شمسی سازی دروپال راه کاری بدون نیاز به patch  پیدا کردیم. این نسخه را میتوانید در گیت هاب مشاهده کنید (اولین ارسال به گیت در 05 Jan 2013 ). اما به دلیل محدود بودن این روش فکر کردیم که در نهایت این روش نمیتونه جوابگوی کاربران دروپال باشه و تمام نیاز های آنها رو برطرف نمیکنه. به همین دلیل در نهایت به این نتیجه رسیدیم که نیاز به patch کردن هسته دروپال هست. اما به درخواست دوستان عزیزمان، این قابلیت را دوباره به datexاضافه کردیم. برای راهنمایی در مورد دریافت آخرین نسحه به انتهای مطلب مراجعه کنید.

به روزرسانی چهارشنبه - ۱۲ تیر ۱۳۹۲: پشتیبانی از ماژول scheduler  همچنین تاریخ صفحه ایجاد node در حالت بدون patch اضافه شد.

طی چند روز گذشته کاربرانی در سایت به patch کردن هسته دروپال اعتراض داشتند و تصور میکردند که این روش درستی نیست. ما به چند دلیل معتقد هستیم که patch کردن هسته دروپال در این مورد خاص اشتباه نیست و با هیچ کدام از روندهای دروپال ناسازگار نیست:

دلیل اول: عدم وجود راه جایگزین برای این مسئله. متاسفانه با تمام قدرتی که دروپال دارد هنوز در پشتیبانی از تقویم های مختلف مشکل داره. در حال حاضر فقط از تقویم میلادی پشتیبانی میکنه. بنابراین حتی اگر یک نفر بخواد مثلا از تقویم چینی استفاده کنه با مشکلاتی مواجه میشه. یا مثلا فارسی زبان ها یا عرب زبان ها نمیتوانند از تقویم های جلالی و قمری استفاده کنند. برای افزودن این قابلیت به دروپال هیچ hook (تابعی) پیاده سازی نشده. بنابراین تنها راه اضافه کردن دستی یک hook (تابع) به هسته دروپال است که با استفاده از آن تابع بتوان قابلیت یک تقویم دیگر رو به دروپال اضافه کرد.

دلیل دوم: محدود بودن روش های جایگزین: با خواندن دلیل اول شاید بپرسید که خوب پس ماژول persian tools چطور کار میکنه؟. باید گفت که همینطور که توسعه دهندگان این ماژول هم گفتند از این ماژول فقط میشه برای شمسی سازی تاریخ node ها و دیدگاه ها (comment) ها استفاده کرد. در صورتی که بخواهید post date رو در views نمایش بدید این ماژول به شما کمکی نمیکنه. یا برای شمسی سازی خیلی از ماژول های دیگر که hook_preprocess_HOOK رو پیاده سازی نکردند، نمیشه از این ماژول استفاده کرد. مثلا views به دلیل ساختار پیچیده بسیار به سختی قابلیت شمسی سازی را با این روش خواهد داشت. یا مثلا ماژول scheduler هیچ hook خاصی برای این منظور در نظر نگرفته. مثال دیگر تاریخ ایجاد node در فرم ایجاد محتواست.

با همه اینها به نظر میرسه که کاربران گاهی اوقات به شمسی شدن دروپال در حد شمسی شدن node و دیدگاه بیشتر نیاز ندارند. پس به ذهن ما رسید که از کدهایی که 6 ماه پیش نوشته بودیم استفاده کنیم و این قابلیت حذف شده را به datex برگردانیم. در ضمن امکانات جدیدی را به این ماژول اضافه کردیم. به این شرح:

1- نمایش تاریخ شمسی در views حتی در حالت بدون patch

2- فعال کردن datex و تبدیل تاریخ در هر یک از زبان های فعال شده به صورت جداگانه

تنظیمات ماژول datex

2- سازگاری بیشتر با استانداردهای دروپالی با مکاتباتی که با توسعه دهندگان دروپال داشتیم انجام شد.

3- قابلیت فعالیت ماژول به صورت محدود حتی در صورتی که patch روی دروپال اعمال نشده باشد ( حالت فعالیت datex توسط کاربر نهایی تعیین میگردد.)

4- تعیین فرمت نمایش تاریخ در node و comment (فقط در حالت فعالیت بدون patch، در غیر این صورت توسط هسته دروپال تعیین می‌شود).

تنظیمات ماژول datex

 

برنامه های آینده:

1- افزودن قابلیت popup به ماژول date

2- آماده سازی برای استفاده دیگر تقویم ها (plugable کردن datex)

3- ایجاد یک زمانبندی برای انتشار برای دروپال 8

مقایسه با دیگر ماژول ها:

ما از تمام کسانی که برای ارتقا دروپال زحمت میکشند تشکر میکنیم. از دوست خوبمون هیرش که در ماژول persian tools فعالیت کرده و آقای لاجوردی و سالک برای ماژول calendar system ممنونیم که در این زمینه فعالیت میکنند. اما نیاز هست که کاربران بتوانند از بین ماژول های موجود انتخاب کنند.

ماژول calendar system: این ماژول از patch کردن هسته دروپال استفاده میکند.

محاسن:
1- قدیمی ترین ماژول دروپال برای تاریخ شمسی
2- سازگار با دروپال 6 و 7
3- پشتیبانی خوب از views
4- پشتیبانی خوب از ماژول date
5- آماده برای استفاده دیگر تقویم ها ( مثلا تقویم قمری )
6- صفحه تنظیمات برای مدیریت تاریخ توسط کاربران

معایب:
1- کدهای قدیمی برای تبدیل تاریخ
2- ناسازگار با نسخه های جدیدتر پی‌اچ‌پی ( +php 5.4)

ماژول persian tools: این ماژول از توابع دروپال برای شمسی سازی استفاده میکند.

محاسن:
1- راحتی در استفاده
2- صفحه تنظیمات برای مدیریت تاریخ توسط کاربران

معایب:
1- عدم پشتیبانی از دروپال 6
2- عدم پشتیبانی از views
3- عدم پشتیبانی از ماژول date

ماژول Datex: این ماژول از هر دو روش توابع دروپال و patch کردن هسته دروپال برای شمسی سازی استفاده میکند.

محاسن:
1- کدهای ساده و تمیز
2- پشتیبانی خوب از views
3- پشتیبانی نسبتا خوب از ماژول date
4- استفاده از php-intl برای تبدیل تاریخ به شمسی
5- انتخاب فرمت نمایش تاریخ در حالت بدون patch
6- سادگی استفاده در حالت بدون patch
7- پشتیبانی از php 5.3 و php 5.4
8- انتخاب تبدیل تاریخ دروپال در زبان های مختلف
9- صفحه تنظیمات برای مدیریت تاریخ توسط کاربران
10- تعیین نوع نمایش میلادی یا شمسی برای هر فیلد date
11- نمایش صحیح تاریخ در views حتی در حالت بدون patch

معایب:
1- عدم پشتیبانی از دروپال 6
2- ماژول در حالت sandbox

در نهایت کاربران در انتخاب هر کدام از این ماژول ها مختار هستند. لطفا نظرات خودتون رو در مورد هر کدام از ماژول ها با ما در میان بگذارید. برای آگاهی بیشتر در مورد ماژول datex میتوانید به مطلب قبلی در مورد این ماژول مراجعه فرمائید. و همچنین برای دیدن صفجه ماژول به آدرس زیر مراجعه کنید:

https://drupal.org/sandbox/drupalion/1841798

 دانلود ماژول Datex - روش طولانی!

تا زمان تایید شدن این ماژول نحوه دانلود به این صورت است:

:دریافت ماژول با کمک git

git clone --branch 7.x-1.x http://git.drupal.org/sandbox/drupalion/1841798.git datex

این دستور آخرین ورژن ماژول رو دریافت میکنه.

دریافت فایل فشرده (tar.gz):

به آدرس http://drupalcode.org/sandbox/drupalion/1841798.git مراجعه کنید، لیستی از آخرین به روزرسانی‌های ماژول رو مشاهده می‌کنید. در اولین ردیف، لینک snapshot رو دنبال کنید تا فایل فشرده ماژول رو دریافت کنید. (همچنین جلوی آخرین به روزرسانی این ماژول 7.x-1.x به رنگ سبز نوشته شده).


اعمال Patch

در صورتی که میخواهید از Datex در حالت patch شده استفاده کنید، از دستورات زیر برای اعمال Patch استفاده کنید. توجه کنید که ابتدا باید به پوشه اصلی دروپال خود بروید.

patch includes/common.inc sites/all/modules/datex/drupal-jalali_support-0-0.patch

برای اعمال patch ها در ویندوز، به سایت drupal.org مراجعه کنید یا این مطلب رو در گوگل جست‌وجو کنید

متد جایگزین‌ (روش دستی):
برای اعمال دستی Patch در صورتی که امکان اعمال patch از طریق خط فرمان وجود ندارد به این شیوه عمل کنید:
خطوط ۲۰۱۶ تا ۲۰۳۰ رو از فایل پاک کنید، و خطوط فایل replacement_lines.txt را که در انتهای مطلب موجود است، در خط ۲۰۱۶ کپی کنید. یک فایل نمونه common.inc  که patch روی آن اعمال شده به مطلب اضافه شده است. توجه کنید این فایل فقط برای دروپال ۷.۲۲ کار می‌کند و توصیه ما این است که حتما patch رو خود شما اعمال کنید. به امید روزی که این patch وارد هسته دروپال شود.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 دانلود ماژول Datex - روش آسان:

به روز رسانی لینک: چهارشنبه - ۱۲ تیر ۱۳۹۲

۱. ماژول رو از اینجا دانلود کنید :  http://drupalcode.org/sandbox/drupalion/1841798.git/snapshot/b8ed381113dd579aee23638abea5c6c693641de4.tar.gz 
۲. فایل دانلود شده را در شاخه‌ی ماژول‌های دروپال از حالت فشرده خارج کنید، یک پوشه بعد از خارج شدن از حالت فشرده ساخته میشود و اسمی مانند 1841798-yyyyyy خواهد داشت که بهتر است آن را به datex تغییر دهید، محتویات این پوشه (datex) فایل‌هایی ازجمله datex.info، datex.module، datex_api و ... خواهد بود.
۳. به صفحه‌ی ماژول‌ها در دروپال نصب شده خود بروید و datex را فعال کنید (datex_api خود به خود فعال خواهد شد). اگر از ماژول date استفاده میکنید، datex date را هم فعال کنید.
۴. به آدرس admin/config/regional/date-time/datex_api بروید و مطمئن شوید ماژول به درستی تنظیم شده است (توجه: فعلا گزینه jQuery قابل فعال کردن نیست). از جمله فعا ل بودن datex در زبان‌های مورد نظر شما.
۵. به آدرس  admin/config/regional/date-time/datex بروید و مطمئن شوید ماژول به درستی تنظیم شده است. اگر patch را اعمال نخواهید کرد بخش «Date integration method» را حتما روی حالت «Use theming layer» بگذارید.
۶. چک کنید تاریخ views و تاریخ صفحه نمایش node جلالی شده باشد.

توجه: در صورت به روزرسانی ماژول، لینک دانلود بالا به روزرسانی خواهد شد.
اگر تصمیم به اعمال patch گرفتید، فقط اعمال patch کافی نیست، باید در صفحه تنظیمات datex استفاده از patch را فعال کنید. حالت پیش‌فرض عدم استفاده از patch است.

عکس مطلب: دوچرخه سواران از سیامک جعفری

دسته بندی مطلب