يأتي إصدار عام 2010 بحلة مدهشة وقد تم اختباره بعمق كما انه يشمل مجموعة واسعة من الاختبارات الفردية التي تتيح مزيداً من الأمان في التطوير . ويشكل الإصدار 2.1 الخطوة الأولى نحو تقسيم وظائف النظام الى وحدات مستقلة ظهرت باكورتها في وجود مجلد «إضافات» (extensions). وعند تثبيت النظام يتم تفعيل الملحقات (plugins) الموجودة في هذا المجلد تلقائياً دون إمكان إيقافها مما يفتح المجال لتوزيع نسخات مخصصة من النظام.
أهم التحسينات التي دخلت على الإصدار 2.1
— أكثر سرعةً:
- إدارة محسنة للوصول الى القرص الثابت
- ذاكرة مخبأة لتخزين المسارات التي تم حسابها
- تحسين وتوسيع خادم SQL الافتراضي
— أكثر أماناً: - تشفير sha256 لكلمات السر والمهمات
- تدقيق في عمل ملف htaccess.
- اكتشاف آلي لترقيات SPIP
— أكثر جمالاً:
- دمج ملحق «القصبة» (على شكل إضافة) لتحسين تحرير النصوص والمعاينة الفورية لهذا التحرير
- واجهة رسومية افتراضية أخف وزناً وأكثر أناقةً
- إمكان تحديد واجهات رسومية (مثل ما يوفره ملحق «themes_interface_privee»)
- إدارة محسنة لحجم حقول النصوص (تكبير شرطي)
- إدارة (يمكن إعدادها وإيقافها) لشفافية تنسيق PNG24 في الموقع العمومي في متصفح إنترنت إكسبلورر 6
- عودة رابطي «تعديل المقال» و«عرض المقال» لدى تحرير المقالات
- واجهة جديدة لإدارة الملحقات
- إعادة تصميم عمليات النسخ الاحتياطي واسترجاع النسخ الاحتياطي
- إمكان إنشاء عناوين URL تحتوي على علامات نطقية وذلك بتحديد قيمة «false» لمتغير
_TRANSLITTERER_URL
(خاضع لإعداد جهاز الخدمة)
— أكثر تحديثاً:
- توافق مع الإصدار 5.3 من PHP
- دمج مكتبة jQuery الإصدار 1.4.2
- دمج مكتبة pcizip الإصدار 2.8.2
— أكثر رشاقةً:
- اول عملية تحويل وظائف من نواة النظام الى إضافات: الضاغط (جافاسكريبت وأوراق الأنماط ورموز HTML) والقصبة (شريط الأدوات) ومرشحات الصور والألوان (معالجة الصور) ورموز HTML الآمنة (safehtml لتأمين المنتديات والعرائض) والدعم لبرامج التصفح القديمة
- إدارة مجلد إضافات جديد (/extensions) لتخزين الملحقات التي يتم تفعيلها لدى التثبيت وغير القابلة للإيقاف.
— أكثر توسعاً:
- ظهور نقاط دخول جديدة لتطوير الملحقات
- إعادة تصميم إدارة الملحقات (ومجلد خاص لإدارتها: ecrire/plugins)
- يمكن تثبيت الملحقات في مجلد أو مجلدات إضافية اذا تم تحديدها بمتغير
_DIR_PLUGINS_SUPPL
(تسهيل استخدام الملحقات في حال مشاركة المواقع) - إمكان توسيع التعليمات الفورية لتشمل أبواب شخصية وإدارة آلية لترجمات هذه التعليمات
— أكثر تنظيماً:
- تفعيل واجهة برمجة لبيانات التعريف
- تحسين واجهة دليل LDAP
- إعادة تصميم واجهة الإعلام البرمجية
- تجانس علامات
#LOGO_
: أصبح تمرير العوامل يحصل داخل أقواس واختفت الخطوط العمودية المزدوجة («||» -#LOGO_xxx||filter
أصبحت قديمة ولكن لا تزال مدعومة) - ظهور دالات وعلامات جديدة:
#BOUTON_ACTION
و|balise_img
و|couleur_luminance
(تشبه دالة|couleur_saturation
ولكن تؤثر على درجة إضاءة اللون) - صار بإمكان العلامات الديناميكية (من نوع
#FORMULAIRE_
) معالجة، خلال التنفيذ، قيم ليست معروفة الا خلال التصنيف.
— أسهل تعقباً للأخطاء:
- تحسين متعقب الأخطاء الذي صار بإمكانه تحديد السطر الذي يحتوي الخطأ في الصفحة النموذجية
- صار متعقب الأخطاء يؤشر بدقة الى المكان الذي تم فيه سوء استخدام العلامات الديناميكية
- صارت الواجهة البرمجية لمتعقب الأخطاء أكثر فعالية (إمكانات مضاعفة لنداء الدوال والشخصنة)
- تحسين حالة الإدراج (
?var_mode=inclure
) التي صارت تعرض الصفحات المدرجة المختلفة (يتيح الدمج مع ملحق Skeleditor سهولة أكبر في تحرير الصفات النموذجية مباشرة على الموقع) - إمكان إثقال دالة
spip_log()
بأوامر جديدة
— أكثر تقنيةً:
- صار المصنف (compiler) يوفر فصل أوضح بين هرمية التجريد (abstract) والمترجم مما يتيح أنتاج كتابات برمجية جديدة
- إعادة ظهور مزيل تصنيف كامل يمكن إعداده مما يوفر إمكان إنتاج كتابات برمجبة جديدة واختبارها
عدم التوافق مع
ككل إصدار مهم جديد، يأتي الإصدار 2.1 غير متوافق مع عدد من الوظائف ولكن لحسن الحظ يمكن تصحيحها:
- في الحلقات، يجب كتابة أسماء جداول SQL الخارجية تماماً كما يظهر في قاعدة البيانات وليس بالأحرف الكبيرة كما جرت العادة:
<BOUCLE_a(MyTable)...
بدلاً من<BOUCLE_a(MYTABLE)...
<BOUCLE_a(my_info)...
بدلاً من<BOUCLE_a(MY_INFO)...
- اختفى مرشح
|reduire_image
نهائياً لصالح|image_reduire
- يجب إضافة
include_spip(«inc/filtres_images»);
في مقاطع PHP التي تنادي دالات تستخدم مرشحات رسومية - الاستلهام من ملفات
ecrire/url/
في حال الرغبة بكتابة عناوين URL شخصية - اختفى خط أنابيب
creer_chaine_url
وحلت مكانه خطوط محددة:propres_creer_chaine_url
وarbo_creer_chaine_url
... - يعتبر اي قوس بداية (
{
) لاصق بعلامة كموفر متغيرات لهذه العلامة
مثال: في ورقة أنماط:.rub_#ID_RUBRIQUE{font-size:1.2em;}
لن يعمل
يجب إما إبعاد القوس:.rub_#ID_RUBRIQUE {font-size:1.2em;}
أو استخدام كتابة العلامة الكاملة:.rub_[(#ID_RUBRIQUE)]{font-size:1.2em;}
- نداءات jQuery من نوع
$(«input[@name=surname]»)
التي كانت قديمة في الاصدار 1.3، لم تعد تعمل مع الإصدار 1.4.2 من jQuery الذي يستخدمه الإصدار 2.1 من SPIP. يجب الآن كتابة:$(«input[name=prenom]»)
- لم تعد الكتابة
#SET{variable,}
مقبولة (اي تحديد متغير فارغ) ويجب استبدالها بالكتابة#SET{variable, ‘’}
- في ما يتعلق بالملحقات، لم يعد اعلان الدالات الفارغ
<fonctions></fonctions>
مقبولاً في ملفplugin.xml
- لاستخدام دالة محددة في ملحق فقط عندما يكون هذا الملحق نشطاً (والا فلا يجب القيام بأي شيء) يجب الآن كتابة:
[(#BALISE|appliquer_filtre{specific_function})]
بدلاً من[(#BALISE|specific_function)]
الذي سينتج خطأ. - في ما يتعلق بالعلامات
#LOGO_xxx
وكتابتها [1]، فقد تم استبدال المرشحات المزيفة|fichier
و|lien
بالكتابة#LOGO_xxx**
و#LOGO_xxx*
.
أما مرشحات التموضع المزيفة (|top
،|left
،|right
،|center
و|bottom
) والعلامات|#URL_yyy
التي تأخذ دور مرشح، فيجب الآن كتابتها كمتغيرات العلامة.
فقد تم استبدال الكتابة[(#LOGO_xxx|left)]
بالكتابة#LOGO_xxx{left}
والكتابة[(#LOGO_xxx|#URL_yyy)]
بالكتابة#LOGO_xxx{#URL_yyy}
. - وننصح بإلحاح ياستخدام
#INSERT_HEAD
لتتمكن الإضافات من توفير أوراق الأنماط وملفات جافاسكريبت الخاصة بها.