قم بتنزيل التطبيق الآن وجربه مجانًا لمدة 10 أيام
العملة اختر اللغة اختر المنطقة

هكذا يعمل عملية عرض الموقع في نظام إدارة المحتوى bluetronix

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

1. تحميل سكريبتات الأمان

في البداية، يقوم CMS من bluetronix بتحميل السكريبتات المتعلقة بالأمان. وتشمل هذه الفحص الأمني، والتحقق من عدد الاستدعاءات، وإعداد أو اختبار معلمات MySQL، فضلاً عن تحليل معلمات GET و POST.

تتم إجراء الفحوصات التي لا تتطلب اتصالاً بقاعدة البيانات في هذه المرحلة.

2. تحميل تكوين الوحدة

إذا كانت موجودة، يتم تحميل الملف /bx_Mod/config_own.php. وبالتالي، فإن السكريبتات ومتغيرات التكوين المعرفة داخله تكون متاحة بالفعل في بداية عملية التقديم.

3. بدء الجلسة

يبدأ CMS جلسة PHP بـ @session_start();. هناك ثلاث متغيرات جلسة مهمة بشكل خاص: $_SESSION["S_User"] لمستخدم CMS أو وضع التعديل، $_SESSION["S_Language"] للغة الحالية، و$_SESSION["Web_User"] لمستخدم تسجيل الدخول في الواجهة الأمامية.

4. تحميل معلمات الصفحة

بعد ذلك، يقوم CMS بقراءة المعلومات حول الاستدعاء الحالي من متغيرات الخادم. $domain يحصل على اسم النطاق من $_SERVER["SERVER_NAME"]، و$FileParameter يحصل على مسار الطلب بما في ذلك معلمات GET من $_SERVER["REQUEST_URI"] و$file يحصل على مسار الملف المنفذ من $_SERVER["PHP_SELF"].

$ReferURL يحتوي على قيمة $_SERVER["HTTP_REFERER"]، إذا تم إرسالها. يمكن استخدامها على سبيل المثال عند تحميل الإطارات أو أجزاء الصفحات.

5. إقامة اتصال قاعدة البيانات

يقوم نظام إدارة المحتوى تلقائيًا بإقامة اتصال قاعدة البيانات. بعد ذلك، تكون جداول قاعدة بيانات نظام إدارة المحتوى متاحة لمزيد من الاختبارات ولتحميل محتويات الصفحات.

6. التحقق مرة أخرى من معلمات GET و POST

بعد إنشاء اتصال قاعدة البيانات، يستدعي نظام إدارة المحتوى SECUREGetPost();. يتم التحقق مرة أخرى من معلمات GET و POST المقدمة وتعديلها إذا لزم الأمر. الآن يمكن أيضًا إجراء اختبارات تحتاج إلى معلومات قاعدة البيانات.

7. إعادة توجيه النطاق والتعديل واللغة

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

8. إعادة توجيه HTTPS

إذا تم استدعاء الموقع بدون HTTPS، سيتم توجيه المستخدم إلى النسخة SSL أو HTTPS من الصفحة.

9. تحميل سكريبتات PHP المركزية

الآن يقوم نظام إدارة المحتوى بتحميل وظائف PHP المركزية الخاصة به. ويشمل ذلك على سبيل المثال BlueSMTPMail() لإرسال البريد وBlueFormSend() لمعالجة النماذج. سيتم تضمين مزيد من الوظائف المركزية أيضًا.

10. تحميل بيانات الصفحة من 00_site

يتم قراءة بيانات الصفحة المطلوبة من جدول قاعدة البيانات 00_site. بينما يتم تحديد متغيرات نظام إدارة المحتوى مثل $Template.

كما يتم تهيئة $LayoutHTML و$SitePHP. $LayoutHTML يحتوي فيما بعد على التصميم الكامل لـHTML، في حين يحتوي $SitePHP على كود PHP المتعلق مباشرة بالصفحة المستدعاة.

11. تحميل التخطيط من 00_layout

سيتم تحميل التصميم المرتبط بالصفحة من جدول قاعدة البيانات 00_layout ويشكل أساس المعالجة القادمة في $LayoutHTML.

12. تعيين ملفات JavaScript حسب اللغة

إذا كانت الملفات المعتمدة على اللغة متاحة، يمكن لنظام إدارة المحتوى استبدال الملفات الافتراضية BxScript.js وBxHeadScript.js بإصدارات متوافقة مع اللغة، مثل BxScript_de.js أو BxScript_en.js.

وفي ذلك يتم تعديل العلامات الملفات __FV_/bx_script/BxScript_own_min.js__ أو __FV_/bx_script/BxHeadScript_own_min.js__ في التصميم.

13. إنشاء الرأس والمحتويات الديناميكية

الآن تُنشأ محتويات ديناميكية ويتم تنفيذ نصوص PHP الخاصة بالصفحة. DynMenue() ينشئ قوائم ديناميكية، وIncludeModul() يضم وحدات مُكونة، وEditMARK() يضع علامات التحرير لنظام إدارة المحتوى.

من خلال eval($SitePHP) يتم تنفيذ كود PHP للصفحة الحالية؛ eval($IncludePHP) ينفذ نصوص PHP المضمنة.

14. تعيين معلمات التغيير لـ CSS و JavaScript

يتم تعيين معلمة تغيير لملفات CSS و JavaScript. حتى يتمكن المتصفح من تحميل إصدار جديد عند تحديث الملفات، بدلاً من استخدام ملف قديم من ذاكرته.

على سبيل المثال، يمكن أن تتغير مرجع الملف مثل /css/style.css إلى استدعاء مع معلمة إصدار مثل /css/style.css?v2026....

15. تعيين وضع الظلام أو الضوء

يقوم نظام إدارة المحتوى بقراءة وضع العرض المُهيأ من /bx_style/BxSource/CSSEditDarkLight.bx. اعتمادًا على محتوى الملف، يتم ضبط الوضع الداكن أو الفاتح في التصميم.

16. تعيين متغيرات تكوين الوحدة في التخطيط

سيتم تطبيق إعدادات الوحدة من /bx_Mod/config_own.php على التصميم. إذا كانت وحدات مثل المتجر أو البحث أو تسجيل الدخول أو وحدة الترجمة معطلة، يمكن إخفاء عناصر التحكم المرتبطة بها تلقائيًا.

لذا، سيتم استبدال علامات التخطيط مثل __DB_GB_DesktopIconBasket_Display__، __DB_GB_DesktopIconSearch_Display__، __DB_GB_DesktopIconLogin_Display__ أو __DB_GB_DesktopIconLang_Display__ بـ none.

17. إزالة العلامات البديلة المتبقية

سيتم إزالة العناصر النائبة غير المستبدلة من HTML النهائي. وهذا يشمل العلامات التي تتبع الأنماط __DB_...__ و__ST_...__ بالإضافة إلى العلامات الداخلية xxx-comment المعدة لذلك.

18. إزالة تعليقات HTML

ثم يقوم نظام إدارة المحتوى بإزالة التعليقات HTML من $LayoutHTML. وبهذا لن يتم تسليم نص التعليق غير الضروري إلى المتصفح.

19. إجراء الترجمة اللغوية

إذا لم تكن $_SESSION["S_Language"] مساوية لـ$GBMainLang، سيتم ترجمة النصوص المحددة إلى اللغة المستخدمة حاليًا. تأتي الترجمات من جدول قاعدة البيانات Translation.

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

20. استبدال استدعاءات الصور عبر IMG.pl

سيتم استبدال استدعاءات الصور وقص الصور عبر IMG.pl بملفات الصور التي تم إنشاؤها أو تحسينها مسبقًا. وبالتالي يمكن للصفحة HTML النهائية الوصول مباشرة إلى هذه الإصدارات من الصور.

21. تقديم الصفحة النهائية

بعد الانتهاء من المعالجة، سيتم إخراج $LayoutHTML بنوع المحتوى text/html; charset=utf-8 إلى المتصفح، على سبيل المثال عبر print $LayoutHTML;.

بالنسبة للنطاقات غير المفعلة أو الداخلية، يتم وضع علامة noindex, nofollow على المخرجات، حتى لا يتم فهرسة هذه الصفحات بواسطة محركات البحث.

22. كتابة الكاش

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

عند الاستدعاءات اللاحقة، يمكن استخدام صفحة HTML المخزنة، دون الحاجة لتنفيذ عملية التجسيد الكاملة مرة أخرى.

الأسئلة المتكررة

ما الذي يسأله العملاء غالباً

ما هو عملية تجسيد الموقع؟

تشير هذه الشرح إلى خطوات المعالجة التي ينتج بها نظام إدارة المحتوى bluetronix صفحة HTML النهائية من بيانات الصفحة والتصميم ويعرضها على المتصفح.

ما هي الفحوصات الأمنية التي تتم قبل الاتصال بقاعدة البيانات؟

قبل الاتصال بقاعدة البيانات، يتم تنفيذ تحقق آمن، وفحص عدد الاستدعاءات، والتحضير لبارامترات MySQL، وتحليل بارامترات GET و POST.

متى يتم تحميل تكوين الوحدة؟

يتم تحميل ملف /bx_Mod/config_own.php، إن وُجد، قبل بدء الجلسة وقبل إنشاء الاتصال بقاعدة البيانات.

ما هي استخدامات S_User و S_Language و Web_User؟

S_User تشير إلى مستخدم نظام إدارة المحتوى أو وضع التحرير، و S_Language تشير إلى اللغة الحالية للموقع، و Web_User تشير إلى مستخدم تسجيل دخول الواجهة الأمامية.

من أي جداول قاعدة البيانات تأتي الصفحة والتصميم؟

يتم تحميل بيانات الصفحة من 00_site. يتم قراءة التصميم المرتبط من 00_layout ومعالجته في $LayoutHTML.

متى يتم تنفيذ كود PHP الخاص بصفحة؟

عند إنشاء الرأس والمحتويات الديناميكية، يتم تنفيذ كود الصفحة الخاص من خلال eval($SitePHP) وكود PHP المضمن من خلال eval($IncludePHP).

متى يتم استخدام ملفات JavaScript المعتمدة على اللغة؟

إذا كانت هناك نسخ لغوية مناسبة، يمكن استبدال BxScript.js و BxHeadScript.js بالملفات الخاصة باللغة المناسبة.

كيف يتم تحديد الوضع الليلي أو النهاري؟

يقوم نظام إدارة المحتوى بقراءة ملف /bx_style/BxSource/CSSEditDarkLight.bx ويحدد وضع العرض في التصميم بناءً على محتواه.

متى يتم ترجمة النصوص تلقائيًا؟

إذا كانت اللغة الحالية تختلف عن $GBMainLang، يتم ترجمة النصوص المعلمة وفقًا للإدخالات في جدول Translation.

تحت أي شروط يتم تخزين الصفحة النهائية في ذاكرة التخزين المؤقت؟

يمكن كتابة الذاكرة المؤقتة إذا لم يكن هناك S_User مسجل دخول، ولا توجد الصفحة في وضع التحرير، وتم تفعيل التخزين المؤقت لهذه الصفحة.

CMS