وحدة · LNK Theme Preview
  • PrestaShop

معاينة قالب PrestaShop وتجربته قبل تفعيله

تعرض LNK Theme Preview متجر PrestaShop الخاص بك بقالب غير مفعّل بعد، عبر رابط خاص. تتصفح منتجاتك وأسعارك وسلة الشراء الحقيقية قبل تفعيل القالب. وفي الأثناء، يواصل زوارك رؤية الموقع الحالي.

  • الإصدار 1.1.2 · PrestaShop من 1.7.6 إلى 8.x
  • الإصدار 1.9.2 · PrestaShop 9
  • PrestaShop من 1.7.6 إلى 9.x
  • PHP من 7.1 إلى 8.4
  • يحتوي على تعديل للنواة

النقاط الرئيسية

  • معاينة قالب غير مفعّل على متجرك الحقيقي
  • القالب قيد الإعداد غير مرئي لزوارك
  • الوصول عبر رابط موقّع خاص بتثبيتك
  • ترتيب الوحدات لكل خطاف، يُرى في المعاينة ثم يُنشر في theme.yml
  • نسخة احتياطية من theme.yml قبل كل نشر، والخطافات غير المعدّلة تبقى سليمة
  • لا حاجة بعد الآن إلى إنشاء نسخة ما قبل الإنتاج وصيانتها
  • وحدة خاملة للزوار الذين لا يملكون رابط معاينة
  • تحتوي على override للنواة (انظر القسم المخصص)
  • تشخيص توافق مجاني قبل الشراء
  • من PrestaShop 1.7.6 إلى 9.x، ومن PHP 7.1 إلى 8.4
  • لا موارد خارجية، ولا ملفات تعريف ارتباط من طرف ثالث

تغيير قالب PrestaShop ونسخة ما قبل الإنتاج

لرؤية قالب جديد في ظروف حقيقية، أمام التجار والوكالات اليوم خياران، لكل منهما عيوبه.

الأول هو إنشاء نسخة من الموقع، مع التثبيت ونسخ قاعدة البيانات والمزامنة والصيانة. تبتعد بيانات النسخة كل يوم أكثر عن المتجر الحقيقي. والقالب الذي يبدو سليمًا على النسخة قد يكشف مشكلات يوم التبديل، على منتجات لم يعرضها من قبل.

الثاني هو تفعيل القالب في الإنتاج لرؤية النتيجة. عندها يشهد الزوار الأشغال الجارية، وتتأثر المبيعات.

معاينة قالب على متجرك الحقيقي

تنقر على «معاينة» في بطاقة القالب: تُفعَّل المعاينة الخاصة ويفتح رابط سحري متجرك بالقالب قيد الإعداد. تطبّق الوحدة قوالبه الجزئية وأوراق أنماطه وسكربتاته، بما في ذلك تجاوزات قوالب الوحدات الخاصة به.

تتحقق من الصفحات المهمة على كتالوجك الحقيقي، مثل صفحة منتج بخمسة عشر خيارًا، أو فئة من ثلاثمئة مرجع، أو مسار إتمام الطلب.

وفي الأثناء، يرى الزوار الموقع العادي. تتطلب المعاينة رابطًا سحريًا موقّعًا خاصًا بتثبيتك. ومن دون هذا الرابط يبقى الوصول مغلقًا. يمكنك إرساله إلى عميل للموافقة، و«إعادة الإنشاء» تقطع الوصول عن كل الروابط المرسلة.

ترتيب وحدات القالب، منشور في theme.yml

يحدد كل قالب PrestaShop، في ملف theme.yml الخاص به، أي الوحدات تظهر في أي الخطافات وأيها معطّل. يُكتب هذا الملف يدويًا، وخطأ واحد يفصل وحدات عن مواضعها الأخرى عند تفعيل القالب.

تجمع شاشة الترتيب في الوحدة الخطافات حسب منطقة الصفحة (الترويسة، الصفحة الرئيسية، صفحة المنتج، السلة وإتمام الطلب…) وتعرض، لكل خطاف، وحداته بالترتيب. ترفعها وتخفضها وتزيلها، وتضيف وحدة (من بين تلك القادرة على العرض في هذا الموضع فقط)، وتعطّل وحدة لهذا القالب. ويعرضه حفظ الإعداد الحالي فورًا في المعاينة الخاصة.

عندما يناسبك الترتيب، يكتبه الحفظ في theme.yml في ملف القالب. يُحفظ الملف السابق أولًا خارج مجلد القالب. لا تُدرج الوحدة إلا الخطافات التي تتغير وتلك التي يجب حمايتها: عند تفعيل القالب تبقى الخطافات الأخرى سليمة، بما فيها خطافات لوحة التحكم. تحققنا من ذلك على منصتي اختبار PrestaShop 9.2 و8.1 بمقارنة جدول الخطافات كاملًا قبل التفعيل وبعده.

وحدة خاملة خارج المعاينة

ما دامت لم تُفتح أي معاينة، تعيد أول تعليمة تُنفَّذ التحكم فورًا. وبعد ذلك، يمضي الزائر الذي لا يملك رابط معاينة فورًا بالقالب النشط: لا تحمّل الوحدة أي قالب ولا تجري أي حساب.

أثناء المعاينة يكون المسار بأكمله محميًا. وعند حدوث أي خلل يستعيد العرض العادي زمام الأمور. لا يعتمد عمل متجرك في أي لحظة على هذه الوحدة.

Léger et rapide

أرقام مقيسة على الوحدة المسلَّمة، مضغوطة بـ gzip (المستوى 9). في المتجر: لا JavaScript ولا ورقة أنماط، لزوارك وكذلك أثناء المعاينة حيث لا تُقدَّم إلا ملفات القالب المعايَن. في لوحة التحكم، على شاشات الوحدة فقط: 1.8 كيلوبايت من JavaScript مكتوبة دون أي مكتبة، و0.6 كيلوبايت من CSS للتخطيط، مع بقاء الألوان والمكونات هي نفسها في PrestaShop.

override لنواة PrestaShop (FrontController وHook)

نذكر ذلك قبل الشراء، كما تفعل PrestaShop Addons الآن في صفحات منتجاتها.

تحتوي هذه الوحدة على تجاوزات (override) لفئتين من النواة، FrontController وHook.

التجاوز هو السبيل الوحيد الممكن لهذه الوظيفة. يُحدَّد القالب المفعّل ومديرا أوراق الأنماط والسكربتات في مُنشئ FrontController، قبل تنفيذ أول hook. لا توجد أي نقطة ربط في PrestaShop تتدخل مبكرًا بما يكفي. ويفسّر هذا القيد على الأرجح غياب أي بديل. لم نجد أي وحدة تقدّم هذه الوظيفة في سوق PrestaShop.

النتائج العملية:

  • إذا كانت وحدة أخرى تتجاوز الدالة نفسها، يرفض PrestaShop التثبيت برسالة واضحة، دون أن يترك متجرك في حالة وسيطة؛
  • يجب التحقق من التجاوز مجددًا مع كل إصدار رئيسي من PrestaShop. قمنا بذلك لـ 1.7 و8 و9، وهذه المتابعة جزء من عملنا؛
  • يزيل إلغاء التثبيت ملفات التجاوز، دون أن يترك شيئًا خلفه.

تشخيص توافق مجاني قبل الشراء. أرسل إلينا قائمة وحدات متجرك، أو ببساطة محتوى مجلد override/. نخبرك خلال 24 ساعة إن كانت الوحدة متوافقة، دون أي التزام.

توفير الوقت للوكالات والمطوّرين

تُغنيك الوحدة عن إنشاء نسخة ما قبل الإنتاج ومزامنتها واستضافتها وتأمينها ثم حذفها. يُطوَّر القالب ويُعتمد على تثبيت العميل. لا يحتاج العميل إلى فتح أي صلاحية وصول إضافية، ويعمل على موقع واحد.

يعتمد العميل القالب على موقعه هو، بمنتجاته هو، مما يقلل الذهاب والإياب.

متوافقة مع PrestaShop 1.7 و8 و9

PrestaShop 1.7.6 → 9.x
PHP 7.1 → 8.4
التسليم أرشيفان: 1.9.N لـ PrestaShop 9، و1.1.N من 1.7.6 إلى 8.x
لوحة التحكم Symfony أصلية في PrestaShop 9، ومتحكم إدارة كلاسيكي فيما قبله
تحتوي على override نعم (FrontController، Hook)
تعدد المتاجر نعم
موارد خارجية لا شيء

يُتحقق من كل إصدار بتثبيت فعلي: PrestaShop 1.7.8 و8.1 للأرشيف 1.1.N، وPrestaShop 9.0 للأرشيف 1.9.N. تشمل الاختبارات التثبيت والعرض ولوحة التحكم وإلغاء التثبيت.

الأسئلة الشائعة

هل يمكن أن يصادف زواري القالب قيد الإعداد؟

لا. يتطلب الدخول إلى المعاينة رابطًا يحتوي على رمز موقّع بسرّ خاص بتثبيتك. من دون هذا الرابط، يرى الزائر القالب المفعّل، حتى لو خمّن العنوان، أو شارك ذاكرة تخزين مؤقت، أو وصل من محرك بحث.

هل تحتوي هذه الوحدة على override للنواة؟

نعم، اثنان. تتجاوز الوحدة الفئتين FrontController وHook، ونذكر ذلك منذ صفحة المنتج. التجاوز هو السبيل الوحيد الممكن. فـ _PS_THEME_DIR_ ثابت يُعرَّف قبل تنفيذ أي شيفرة لوحدة، ومديرو الملفات الثابتة يُنشؤون في مُنشئ FrontController. وعندما يُنفَّذ أول hook، يكون القالب والملفات الثابتة قد حُدّدت بالفعل.

يفسّر هذا القيد غياب وحدة لمعاينة القوالب في السوق. فالـ hooks وحدها لا تسمح بتحقيق هذه الوظيفة بشكل نظيف.

هل ينطوي الـ override على خطر؟

الخطر الفعلي هو تعارض مع وحدة أخرى تتجاوز الدوال نفسها. عندها يرفض PrestaShop التثبيت بشكل نظيف، دون أن يترك المتجر في حالة وسيطة. ويزيل تشخيصنا المجاني قبل الشراء هذا الشك في دقائق. يكفي أن ترسل إلينا قائمة وحداتك.

ماذا يحدث إذا عطّلت الوحدة؟

لا أثر مرئي. يخرج التجاوز من أول تعليمة فيه تمامًا. ويزيل إلغاء التثبيت ملفات التجاوز، فتعود النواة إلى حالتها الأصلية.

هل تبطئ هذه الوحدة متجري؟

خارج المعاينة، تجري قراءة واحدة للإعدادات في كل صفحة، وبعد تفعيل المعاينة تقرأ أيضًا ملف تعريف ارتباط المعاينة. ولا تضيف أي استعلام إضافي، ولا أي اتصال بالشبكة، ولا أي ملف ثابت لدى العميل.

هل هي متوافقة مع إصدار PrestaShop لديّ؟

نعم، من PrestaShop 1.7.6 إلى PrestaShop 9، بترخيص واحد وأرشيفين: 1.9.N لـ PrestaShop 9، حيث الشاشات متحكّمات Symfony أصلية، و1.1.N من 1.7.6 إلى 8.x. وقبل كل نشر، يُثبَّت كل إصدار فعليًا ثم يُلغى تثبيته في مصفوفة الاختبار لدينا.

هل يمكنني معاينة قالب فرعي؟

نعم، بما في ذلك القوالب الجزئية الموروثة من القالب الأصلي.

هل يغني ذلك عن نسخة ما قبل الإنتاج؟

للعمل على القالب، نعم. ترى القالب الجديد على منتجاتك وأسعارك وكتالوجك الحقيقية. أما ترقية إصدار PrestaShop أو ترحيل قاعدة البيانات فموضوع آخر ويتطلب نسخة ما قبل إنتاج حقيقية.

لست مطوّرًا، هل هي مناسبة لي؟

نعم. تتيح لك الوحدة رؤية القالب قبل التبديل، دون إيقاف المتجر. ولا تتطلب أي سطر برمجي.

كيف تعمل في وضع تعدد المتاجر؟

ترتبط المعاينة بالمتصفح الذي فتح الرابط السحري، وتبقى محصورة في متجر واحد. و«إعادة الإنشاء» تقطع الوصول عن كل الروابط المرسلة، بما فيها المتصفحات التي دخلت من قبل.

ماذا يبقى إذا ألغيت تثبيت الوحدة؟

تُزال ملفات التجاوز وتُحذف الإعدادات والإعدادات المحفوظة. أما ملفات theme.yml التي نشرتها فتبقى، مع نسخها الاحتياطية في var/lnk_themepreview/، لأنها ملك لقوالبك. ولو كانت وحدة أخرى قد تجاوزت الفئات نفسها، لرفض PrestaShop التثبيت من البداية. لذلك لا يوجد أي تجاوز مشترك يحتاج إلى فكّ.

هل تضع الوحدة ملفات تعريف ارتباط؟

يُحفظ رمز المعاينة في جلسة PrestaShop الخاصة بالشخص الذي يستخدمه، أي أنت أو المطوّر لديك. لا يوضع أي ملف تعريف ارتباط لدى زوارك، ويبقى شريط الموافقة لديك دون تغيير.

هل يمكن أن يفصل النشر في theme.yml وحداتي الأخرى؟

لا. عند تفعيل قالب، يزيل PrestaShop أي وحدة مذكورة في theme.yml من كل الخطافات التي لم تُذكر فيها، ويفعّل كل وحدة مذكورة. لذلك لا تكتب الوحدة إلا الخطافات التي تتغير وتلك التي تحمل وحدة تذكرها، كما هي، ولا تذكر أبدًا وحدة غير مفعّلة أو معطّلة لهذا القالب. ويُحفظ ملف theme.yml السابق قبل كل نشر. استثناء وحيد: إذا أزلت وحدة من خطاف ولم تعرضها في أي مكان آخر، تُفصل عن هذا الخطاف الوحدات غير المفعّلة أو المعطّلة فيه.

لماذا لا تظهر الصور في معاينة قالب آخر؟

يعلن كل قالب صيغ صوره في ملف theme.yml الخاص به، ولا ينشئها PrestaShop إلا عند تفعيل القالب. فقالب Hummingbird مثلًا يطلب صيغًا لا يملكها Classic. تعدّ بطاقة القالب وشريط المعاينة هذه الصيغ الناقصة. «تجهيز الصور» ينشئها هي وحدها، ثم يولّد صورها المصغّرة على دفعات مع شريط تقدّم، ويمكنك إيقافه واستئنافه. لا تُعدَّل أبدًا صيغة موجودة من قبل، حتى إن أعطاها القالب أبعادًا أخرى. وإلى أن يكتمل التجهيز، تعرض المعاينة أقرب حجم موجود بدل صورة فارغة (بحسب إصدار PrestaShop، انظر docs/COMPATIBILITY.md). وعند تفعيل القالب، يستبدل PrestaShop قائمة الصيغ بقائمة القالب.

سجل الإصدارات

6 إصدارات منشورة لـ PrestaShop

  1. الإصدار 1.9.2 PrestaShop 9

    أُعيد تصميم الصفحات وفق النموذج الذي أعدّه فؤاد.

    الجديد

    • تبويب المساعدة: المسار في أربع خطوات، ومن يرى ماذا، والرابط السحري، والحفظان، والوحدات المعطّلة، والأسئلة الشائعة، مع فهرس جانبي.
    • معاينة في بطاقة قالب: تفتح المتجر بهذا القالب عبر رابطه السحري، و«عرض في المعاينة» من صفحة الترتيب تفعل الشيء نفسه. «إعادة الإنشاء» و«الخروج من المعاينة في هذا المتصفح» أسفل تبويب القوالب.
    • أسماء الخطافات في المعاينة: يُحاط كل خطاف عرض معروض بتعليقين HTML، وترسم طبقة منفصلة فوق الصفحة إطاره واسمه دون تحريك أي بكسل (تم التحقق في الصفحة الرئيسية وصفحة فئة وصفحة منتج). مربع اختيار عائم «إظهار الخطافات». لا يُعلَّم الخطاف الفارغ: تختبر القوالب مخرجاته قبل عرض حاويته. لا يظهر أبدًا للزائر: خارج المعاينة لا تتغير الصفحة ولو ببايت واحد.
    • إعادة إنشاء الروابط السحرية: لا تعود الروابط المرسلة تعمل، بما فيها المتصفحات التي دخلت من قبل (يحمل ملف تعريف المعاينة الرمز، ويُعاد التحقق منه في كل طلب). «نسخ الرابط السحري» لكل قالب.
    • صفحة الترتيب حسب مناطق الصفحة (الترويسة، الصفحة الرئيسية، الفئات، الأعمدة الجانبية، صفحة المنتج، السلة وإتمام الطلب، حساب العميل، الاتصال، التذييل، مستندات PDF، تقني)، مع تصفية وعدّادات ووحدات للتعطيل مع بحث.
    • شريط حفظ ثابت: حالة التعديلات، «حُفظت في … · غير منشورة» أو «نُشر في …»، «حفظ الإعداد الحالي»، «الحفظ في theme.yml»، «إلغاء التعديلات».
    • صور القالب في المعاينة: تعدّ بطاقة القالب وشريط المعاينة صيغ الصور التي يعلنها القالب ولا يملكها المتجر بعد. «تجهيز الصور» ينشئ هذه الصيغ وحدها، ثم يولّد صورها المصغّرة على دفعات مع شريط تقدّم، ويمكن استئنافه؛ ولا تُعدَّل أبدًا صيغة موجودة. وفي الأثناء تعرض المعاينة أقرب حجم موجود بدل صورة فارغة. لا يظهر زر الشريط إلا في المتصفح الذي فتح المعاينة من لوحة التحكم.

    التعديلات

    • لا تُعرض أبدًا في الترتيب خطافات لوحة التحكم ولوحة المعلومات ونماذج الإدارة. وعلى منصة الاختبار، بعد تفعيل قالب منشور، تبقى كما هي في جدول الخطافات.
    • صفحة واحدة مشتركة بين فرعي الوحدة.
    • أُزيلت بطاقة «المعاينة الخاصة» ومفتاحها: أول «معاينة» على قالب تفعّل المعاينة الخاصة، و«الخروج من المعاينة في هذا المتصفح» يخرج منها.
    • عناوين admin.css وadmin.js مرقّمة ببصمة محتواها: لا تقدّم ذاكرة تخزين مؤقت أو شبكة توزيع أبدًا ملفًا قديمًا تحت العنوان نفسه.
    • الاسم المعروض وتبويب القائمة وعنوان الصفحة: «LNK معاينة القالب» («LNK» مع الاسم المترجم)، وتُعاد تسميتها أيضًا عند التحديث. وتحتفظ شاشة القالب بعنوانها «الترتيب · <القالب>».
    • مراجعة الشيفرة بفحوص المصنع دون أي تغيير ظاهر: توثيق PHPDoc لكل الدوال العامة، وتحليل ثابت بلا ملاحظات في المستوى 5 (يُكتشف وضع اقتصاص صيغ الصور من حقل النواة، ويُستدعى ImageManager::resize حسب إصدار PrestaShop).
  2. الإصدار 1.9.0 PrestaShop 9

    الفرع 9: PrestaShop من 9.0 إلى 9.x فقط. ينتقل PrestaShop من 1.7.6 إلى 8.x إلى الفرع prestashop/legacy (1.1.0).

    الجديد

    • شاشة الترتيب (المظهر ← ترتيب القوالب) في لوحة تحكم Symfony: لكل خطاف عرض وحداته بالترتيب؛ رفع وخفض وإزالة، وإضافة وحدة قادرة على العرض في الخطاف، وإضافة خطاف، وتعطيل وحدة لهذا القالب.
    • مسودة محفوظة لكل قالب تطبّقها المعاينة، مع عرض الفرق عن النسخة المنشورة خطافًا خطافًا.
    • النشر في theme.yml: global_settings.hooks.modules_to_hook و global_settings.modules.to_disable، مع نسخة احتياطية مؤرخة من الملف السابق في var/lnk_themepreview/<القالب>/، وتفريغ ذاكرة JSON المؤقتة للقالب.
    • تنزيل theme.yml مع تطبيق المسودة، لمولّد قوالب.
    • تصدير دقيق: لا تُدرج إلا الخطافات التي تتغير وتلك التي تحمل وحدة مذكورة، ولا تُذكر أي وحدة غير مفعّلة أو معطّلة (لأن PrestaShop يفعّل كل وحدة مذكورة). يعيد tests/test-layout.php تشغيل خوارزمية النواة على 3000 حالة عشوائية.
    • ترجمات XLF بالفرنسية والإنجليزية والعربية (Modules.Lnkthemepreview.Admin).
    • الترقية من 1.0: تصبح خرائط الخطافات المحفوظة مسودات.

    التعديلات

    • شبكة القوالب وشاشة الترتيب متحكّم Symfony أصلي وTwig بمكونات لوحة التحكم؛ لا صفحة إعدادات للوحدة بعد الآن.
    • يُسلَّم config/routes.yml وconfig/services.yml في مكانهما.

    المحذوفات

    • متحكّم الإدارة القديم وقوالب Smarty، وأصبحت في الفرع prestashop/legacy.
  3. الإصدار 1.1.2 PrestaShop من 1.7.6 إلى 8.x

    أُعيد تصميم الصفحات وفق النموذج الذي أعدّه فؤاد.

    الجديد

    • تبويب المساعدة: المسار في أربع خطوات، ومن يرى ماذا، والرابط السحري، والحفظان، والوحدات المعطّلة، والأسئلة الشائعة، مع فهرس جانبي.
    • معاينة في بطاقة قالب: تفتح المتجر بهذا القالب عبر رابطه السحري، و«عرض في المعاينة» من صفحة الترتيب تفعل الشيء نفسه. «إعادة الإنشاء» و«الخروج من المعاينة في هذا المتصفح» أسفل تبويب القوالب.
    • أسماء الخطافات في المعاينة: يُحاط كل خطاف عرض معروض بتعليقين HTML، وترسم طبقة منفصلة فوق الصفحة إطاره واسمه دون تحريك أي بكسل (تم التحقق في الصفحة الرئيسية وصفحة فئة وصفحة منتج). مربع اختيار عائم «إظهار الخطافات». لا يُعلَّم الخطاف الفارغ: تختبر القوالب مخرجاته قبل عرض حاويته. لا يظهر أبدًا للزائر: خارج المعاينة لا تتغير الصفحة ولو ببايت واحد.
    • إعادة إنشاء الروابط السحرية: لا تعود الروابط المرسلة تعمل، بما فيها المتصفحات التي دخلت من قبل (يحمل ملف تعريف المعاينة الرمز، ويُعاد التحقق منه في كل طلب). «نسخ الرابط السحري» لكل قالب.
    • صفحة الترتيب حسب مناطق الصفحة (الترويسة، الصفحة الرئيسية، الفئات، الأعمدة الجانبية، صفحة المنتج، السلة وإتمام الطلب، حساب العميل، الاتصال، التذييل، مستندات PDF، تقني)، مع تصفية وعدّادات ووحدات للتعطيل مع بحث.
    • شريط حفظ ثابت: حالة التعديلات، «حُفظت في … · غير منشورة» أو «نُشر في …»، «حفظ الإعداد الحالي»، «الحفظ في theme.yml»، «إلغاء التعديلات».
    • صور القالب في المعاينة: تعدّ بطاقة القالب وشريط المعاينة صيغ الصور التي يعلنها القالب ولا يملكها المتجر بعد. «تجهيز الصور» ينشئ هذه الصيغ وحدها، ثم يولّد صورها المصغّرة على دفعات مع شريط تقدّم، ويمكن استئنافه؛ ولا تُعدَّل أبدًا صيغة موجودة. وفي الأثناء تعرض المعاينة أقرب حجم موجود بدل صورة فارغة. لا يظهر زر الشريط إلا في المتصفح الذي فتح المعاينة من لوحة التحكم.

    التعديلات

    • لا تُعرض أبدًا في الترتيب خطافات لوحة التحكم ولوحة المعلومات ونماذج الإدارة. وعلى منصة الاختبار، بعد تفعيل قالب منشور، تبقى كما هي في جدول الخطافات.
    • صفحة واحدة مشتركة بين فرعي الوحدة.
    • أُزيلت بطاقة «المعاينة الخاصة» ومفتاحها: أول «معاينة» على قالب تفعّل المعاينة الخاصة، و«الخروج من المعاينة في هذا المتصفح» يخرج منها.
    • عناوين admin.css وadmin.js مرقّمة ببصمة محتواها: لا تقدّم ذاكرة تخزين مؤقت أو شبكة توزيع أبدًا ملفًا قديمًا تحت العنوان نفسه.
    • الاسم المعروض وتبويب القائمة وعنوان الصفحة: «LNK معاينة القالب» («LNK» مع الاسم المترجم)، وتُعاد تسميتها أيضًا عند التحديث. وتحتفظ شاشة القالب بعنوانها «الترتيب · <القالب>».
    • مراجعة الشيفرة بفحوص المصنع دون أي تغيير ظاهر: توثيق PHPDoc لكل الدوال العامة، وتحليل ثابت بلا ملاحظات في المستوى 5 (يُكتشف وضع اقتصاص صيغ الصور من حقل النواة، ويُستدعى ImageManager::resize حسب إصدار PrestaShop).
عرض 3 إصدارات سابقة
  1. الإصدار 1.1.1 PrestaShop من 1.7.6 إلى 8.x

    الإصلاحات

    • لوحة التحكم بالإنجليزية من PrestaShop 1.7.6 إلى 1.7.7: هذه الإصدارات لا تحمّل ترجمات XLF للوحدات. ينتقل هذا الفرع إلى نظام الترجمة الأصلي للوحدات (translations/fr.php وtranslations/ar.php)، المحمَّل من 1.7.6 إلى 8.x.
    • لم تعد خطافات لوحة معلومات الإدارة (displayDashboardTop…) معروضة في شاشة الترتيب.
  2. الإصدار 1.1.0 PrestaShop من 1.7.6 إلى 8.x

    الفرع 1: PrestaShop من 1.7.6 إلى 8.x. ينتقل PrestaShop 9 إلى الفرع main (1.9.0).

    الجديد

    • شاشة الترتيب (المظهر ← ترتيب القوالب): لكل خطاف عرض وحداته بالترتيب؛ رفع وخفض وإزالة، وإضافة وحدة قادرة على العرض في الخطاف، وإضافة خطاف، وتعطيل وحدة لهذا القالب.
    • مسودة محفوظة لكل قالب تطبّقها المعاينة، مع عرض الفرق عن النسخة المنشورة خطافًا خطافًا.
    • النشر في theme.yml: global_settings.hooks.modules_to_hook و global_settings.modules.to_disable، مع نسخة احتياطية مؤرخة من الملف السابق في var/lnk_themepreview/<القالب>/، وتفريغ ذاكرة JSON المؤقتة للقالب.
    • تنزيل theme.yml مع تطبيق المسودة، لمولّد قوالب.
    • تصدير دقيق: لا تُدرج إلا الخطافات التي تتغير وتلك التي تحمل وحدة مذكورة، ولا تُذكر أي وحدة غير مفعّلة أو معطّلة (لأن PrestaShop يفعّل كل وحدة مذكورة). يعيد tests/test-layout.php تشغيل خوارزمية النواة على 3000 حالة عشوائية.
    • ترجمات XLF بالفرنسية والإنجليزية والعربية (Modules.Lnkthemepreview.Admin).
    • الترقية من 1.0: تصبح خرائط الخطافات المحفوظة مسودات.

    التعديلات

    • شبكة القوالب وشاشة الترتيب متحكّم إدارة (ModuleAdminController) وقوالب Smarty بمكونات لوحة التحكم؛ لا صفحة إعدادات للوحدة بعد الآن.
    • رُفع الحد الأدنى للتوافق إلى PrestaShop 1.7.6، أول إصدار تستخدم فيه الوحدة نظام ترجمة لوحة التحكم.

    المحذوفات

    • لوحة تحكم Symfony وsrc/ وconfig/*.yml وvendor/، وأصبحت في فرع PrestaShop 9.
  3. الإصدار 1.0.0 PrestaShop من 1.7.6 إلى 8.x تصحيح أمني

    أول إصدار قابل للتوزيع. كان الإصدار الأصلي مطوّرًا لمتجر واحد ومعلنًا لـ PrestaShop 9 فقط.

    الأمان

    • حراسات index.php في كل مجلد.
    • يُنقّى اسم القالب قبل بناء مسار إلى theme.yml: تُحيَّد محاولات اجتياز المجلدات والبايت الفارغ (مغطّى بالاختبارات).

    الجديد

    • التوافق مع PrestaShop 1.7.0 → 9.x. تم التحقق في مصادر 1.7.8 و8.1 و9.0: stylesheetManager وjavascriptManager وcccReducer خصائص protected تُنشأ في FrontController::__construct بالمعاملات نفسها، وSmartyResourceModule وSmartyResourceParent وThemeRepository وHook::getHookModuleExecList متطابقة. لذلك التجاوز قابل للنقل كما هو.
    • لوحة تحكم Symfony في PrestaShop 9: PrestaShopAdminController، #[AdminSecurity]، قالب Twig، وتبويب يشير إلى المسار عبر Tab::$route_name. يحتفظ PS 1.7 و8 بمحرر HelperForm.
    • composer.json مع أداة تحميل تلقائي PSR-4 مضمّنة في المستودع: يضمّن PrestaShop 9 الملف modules/<module>/vendor/autoload.php عبر ContainerBuilder.
    • classes/LnkThemePreviewCompat.php: كل ما يتعلق بالإصدار معزول فيه.
    • docs/OVERRIDES.md: ما تتجاوزه الوحدة، ولماذا لا يستطيع أي hook فعل ذلك، وما يعنيه ذلك للمشتري.
    • اختبارات وحدة لرمز HMAC ولتنقية اسم القالب (15 تأكيدًا).

    الإصلاحات

    • النوع object كمعامل وكقيمة مُرجعة في التجاوز يتطلب PHP 7.2+، بينما يعمل PrestaShop 1.7.8 بدءًا من PHP 7.1. لم تكن الوحدة تعمل.
    • كانت PreviewSession تستخدم ترقية مُنشئ مع readonly، وهي من PHP 8.1+، فكانت غير قابلة للاستخدام في 1.7 و8.
    • <style> و<script> مكتوبة يدويًا في لوحة التحكم: نُقلت إلى views/css/admin.css وviews/js/admin.js، وتُحمَّل عبر addCSS / addJS.
    • ps_versions_compliancy ينتقل من 9.0.0 إلى 1.7.0.0.

سلتك

سلتك فارغة.