ادارة التواريخ

ادخل [SPIP 1.6] عدداً من المعايير والعلامات لتحسين ادارة تواريخ المقالات. وهنا قائمة بهذه التحسينات.

عرض التواريخ

  #DATE هو تاريخ النشر. (يمكن تغييره بعد نشر المقال او الخبر. اما تاريخ القسم فهو تاريخ احدث عناصره).

 #DATE_REDAC هو تاريخ اول نشر (يمكن تغييره حسب الرغبة وهو متوافر للمقالات فقط).

 #DATE_MODIF منذ [SPIP 1.5] هو تاريخ آخر تعديل للمقال.

 #DATE_NOUVEAUTES منذ [SPIP 1.6] (اي تاريخ آخر الاخبار) يتيح عرض تاريخ آخر مرة تم فيها ارسال بريد آخر الاخبار.

تنسيق التواريخ

واذا تم استخدام علامات ...DATE# دون مرشحات، ستُعرض كل المعلومات عن التاريخ في تنسيق رقمي (تنسيق MySQL.): «2001-12-01 03:25:02».

يمكن تطبيق المرشحات |annee، |mois، |jour، |heures، |minutes، |secondes (السنة، الشهر، اليوم، الساعة، الدقيقة، الثانية) وايضاً |affdate، |date_relative، |nom_mois، |nom_jour، |saison (عرض التاريخ، اسم الشهر، اسم اليوم، الفصل) الخ. لتوفير كل اشكال عرض التاريخ بالتنسيقات المعتادة. هناك قائمة كاملة من المرشحات التي يمكن تطبيقها على التواريخ لتنسيقها يعرضها المقال مرشحات SPIP.

سياق التاريخ

يوفر [SPIP 1.6] لكل الحلقات سياقاً للتاريخ. فإذا كنا داخل حلقة (ARTICLES) او (BREVES) (خبر) او (RUBRIQUES) (قسم) يكون التاريخ هو تاريخ نشر المقال او الخبر او تاريخ آخر تعديل للقسم.

اما اذا كنا في اعلى مستوى في الصفحة النموذجية (اي خارج اي حلقة) فيكون التاريخ هو تاريخ اليوم الحالي الا اذا تم تمرير تاريخ آخر في عنوان URL للصفحة (راجع المثال ادناه).

في هذه الحالة الاخيرة، وفي اصدارات PHP احدث من 3.0.12، يتم تحليل التاريخ الذي تم تمريره في عنوان URL باستخدام دالة strtotime: فهكذا ?date=2003 او ?date=2003/01 تعمل بشكل صحيح وكذلك date=-1year (اي منذ سنة) او ?date=1march1970 (اي مقال منشور في الاول من آذار 1970) الخ.

معايير التاريخ والعمر والعمر النسبي

يتيح معيار {age} (اي العمر) تحديد المقالات بالاعتماد على الفترة التي تفصل بين تاريخ نشرها والتاريخ الحالي. فمثلاً، يؤدي معيار {age<30} الى عدم نشر المقالات التي يزيد عمرها على 30 يوماً.

اما معيار {age_relatif} (اي العمر النسبي)، فيتيح المقارنة بين تاريخي نشر مقالين معيّنين: فإذا كنا قد حددنا مقالاً في حلقة ما، يمكن لحلقة ثانية موجودة داخل الاولى ان تطلب المقالات المنشورة في الاسبوع الذي يسبق تاريخ نشر المقال الاول وذلك من خلال {age_relatif<=7}{age_relatif>=0} الخ.

يتيح معيارا {age} و{age_relatif} التمييز بين مقالين نشرا في اليوم نفسه (ولم يكن هكذا قبل [SPIP 1.6]). يمكن هكذا برمجة حلقات تعطينا المقال «السابق» او المقال «التالي»:

<BOUCLE_art(ARTICLES){id_article}>
<BOUCLE_previous(ARTICLES){age_relatif>=0}{par date}{inverse}{1,1}>
السابق: <a href=’#URL_ARTICLE’>#TITRE</a> #DATE
</BOUCLE_previous>
<br />
<b>#TITRE</b> - #DATE
<br />
<BOUCLE_next(ARTICLES){age_relatif<0}{par date}{0,1}> 
التالي: <a href=’#URL_ARTICLE’>#TITRE</a> #DATE
</BOUCLE_next>
</BOUCLE_art>

تحذير! رغم المظاهر، فإن مقارنة التواريخ تشكل عملية دقيقة: فبسبب «التواريخ غير الدقيقة» (مثلاً نشر مقال في شهر ما دون تحديد اليوم)، يمكن لحساب العمر النسبي ان يعطي نتيجة تساوي صفراً في اتجاه ولا تساوي صفراً في الاتجاه الآخر! مما يبرر عدم تناظر الحلقتين اعلاه: ففي الاتجاه الاول نبحث عن «ثاني احدث» مقال {age_relatif>=0} (لأن احدث مقال، في المقارنة غير الحصرية، لا يمكن ان يكون الا المقال الاساسي نفسه)؛ اما في الاتجاه الآخر فنبحث عن المقال الاكبر عمراً المنشور لاحقاً بشكل حصري.

وتعمل المعايير {jour_relatif} (اليوم النسبي) و{mois_relatif} (الشهر النسبي) و{annee_relatif} (السنة النسبية) مثل معيار العمر النسبي، الا انها تأخذ في الحسبان التواريخ المقربة الى اليوم او الشهر او السنة تباعاً. على سبيل المثال، اذا كان عنوان URL يحتوي على المتغير ?date=2003-01-01، ينتج عن الحلقة التالية «كل مقالات شهر آذار 2003»

<h3>المقالات المنشورة في [(#DATE|nom_mois)] [(#DATE|annee)] :</h3>
<BOUCLE_blog(ARTICLES){mois_relatif=0}{par date}{“<br />”}>
<a href=’#URL_ARTICLE’>#TITRE</a> ([(#DATE|jour)]/[(#DATE|nom_mois)]
</BOUCLE_blog>

تاريخ التحرير السابق

اذا تم تفعيل استخدام تاريخ النشر السابق، لكي تعمل معظم المعايير الموضحة اعلاه يكفي اضافة لاحقة _redac (اي تحرير) الى المعيار. بالتالي يعرض معيار {age_redac>365} المقالات التي يعود تاريخ نشرها السابق الى اكثر من سنة.

اذا حددت حلقة ما مقالاً يكون معيار age_redac العائد له محدداً، يمكن لحلقة داخلية تشمل المعيار {annee_relatif_redac=0} ان تجلب المقالات التي تقع تواريخ نشرها السابقة في بحر السنة نفسها.

مثال صفحة موقع اساسية مفروزة حسب التاريخ

على سبيل المثال، نوضح هنا كيفية عرض كل مقالات الموقع، مفروزة حسب شهر نشرها:

<BOUCLE_articlem(ARTICLES){par date}{inverse}>
<BOUCLE_firstofmonth(ARTICLES){id_article}{doublons}>
<BR><UL><b> [(#DATE|nom_mois|majuscules)] [(#DATE|annee)] </b>
   <li><a href=”#URL_ARTICLE”>[(#TITRE|couper{50})]</a> - [(#DATE|jour)]/[(#DATE|mois)]</li>
</BOUCLE_firstofmonth>
   <BOUCLE_MONTH(ARTICLES) {mois_relatif=0}{doublons}{par date}{inverse} >
       <li><a href=”#URL_ARTICLE”>[(#TITRE|couper{50})]</a> - [(#DATE|jour)]/[(#DATE|mois)]</li>
   </BOUCLE_MONTH>
</ul>
</BOUCLE_articlem>

مؤلف George نُشر في: تم التحديث: 21/03/23

الترجمات: عربي, català, Deutsch, English, Español, français, italiano, Nederlands