أنظمة قوالب الويب

العملية الأساسية لنظام قوالب الويب من جانب الخادم : يتم دمج المحتوى (من قاعدة البيانات ) و"مواصفات العرض" (في قالب الويب ) (من خلال محرك القوالب ) لإنتاج مستندات الويب بكميات كبيرة.

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

تدعم قوالب الويب المحتوى الثابت، وتوفر بنية أساسية ومظهرًا جذابًا. يمكن للمطورين تطبيق القوالب من أنظمة إدارة المحتوى ، وأطر عمل تطبيقات الويب ، ومحررات HTML . [ 1 ]

ملخص

يتكون نظام قوالب الويب مما يلي:

يقوم محرك القوالب بمعالجة موارد القوالب والمحتوى ودمجها لإنتاج مستندات ويب بكميات كبيرة، لكل منها تنسيق مرئي متشابه. ولأغراض هذه المقالة، تشمل مستندات الويب أيًا من تنسيقات الإخراج المختلفة للإرسال عبر الويب باستخدام بروتوكول HTTP أو HTTPS أو أي بروتوكول إنترنت آخر . [ 3 ]

محرك القوالب

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

معالج القوالب (المعروف أيضًا بمحرك القوالب أو محلل القوالب) هو برنامج مصمم لدمج القوالب مع البيانات (المحددة بنموذج بيانات ) لإنتاج مستندات أو برامج . [ 4 ] [ 5 ] [ 6 ] تُعرف اللغة التي تُكتب بها القوالب بلغة القوالب. لأغراض هذه المقالة، يُقصد بالمستند الناتج أي نوع من المخرجات المنسقة، بما في ذلك المستندات وصفحات الويب وشفرة المصدر (في توليد شفرة المصدر )، سواءً كانت كاملة أو مجزأة. عادةً ما يُدمج محرك القوالب كجزء من نظام قوالب الويب أو إطار عمل التطبيق ، ويمكن استخدامه أيضًا كمعالج مسبق أو مرشح .

مثال

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

على سبيل المثال، قد يبدو قالب العرض كالتالي:

<!DOCTYPE html> < html xmlns = " http://www.w3.org/1999/xhtml " > <head> <title> المواقع < / title > </head> <body> < h1 data - xp = "title" > < ! -- placeholder -- > </h1> </body> </html>

بعد ذلك، يقوم قالب التحكم بتحميل العرض، ثم يستخدم عناوين XPath لإدراج المكونات من قاعدة البيانات، على سبيل المثال:

<?php $doc = new DOMDocument ; $doc- > preserveWhiteSpace = false ; $doc- > Load ( 'view.html' ); $titlenode = $doc- > createTextNode ( "Like this" ); $xpath = new DOMXPath ( $doc ); $xpath- > registerNamespace ( "h" , "http://www.w3.org/1999/xhtml" ); $query = "//h:*[@data-xp='title']/comment()" ; $entries = $xpath- > query ( $query ); foreach ( $entries as $entry ) { $entry- > parentNode- > replaceChild ( $titlenode , $entry ); } echo $doc- > saveXML (); ?>

أنواع أنظمة القوالب

يُعدّ كلٌّ من متصفح الويب وخادم الويب بنيةً قائمةً على نموذج العميل والخادم . [ 7 ] غالبًا ما تستخدم المواقع أيضًا ذاكرة تخزين مؤقتة لتحسين الأداء. في العديد من التطبيقات، تحتوي ملفات القوالب على متغيرات أو عناصر نائبة تُستبدل بالبيانات التي يُقدّمها التطبيق عند إنشاء الصفحة. [ 8 ]

  • جانب الخادم - يتم استبدال وقت التشغيل على خادم الويب
  • جانب العميل - يتم استبدال وقت التشغيل في متصفح الويب
  • جانب الحافة - يتم استبدال وقت التشغيل على خادم وسيط بين خادم الويب والمتصفح
  • خادم خارجي – يتم إنشاء صفحات الويب الثابتة دون اتصال بالإنترنت وتحميلها إلى خادم الويب؛ لا يوجد استبدال في وقت التشغيل
  • موزع – يتم استبدال وقت التشغيل على خوادم متعددة

قد تكون لغات القوالب كالتالي:

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

يمكن أن يكون الكود المصدري لمحرك القوالب ملكية خاصة أو مفتوح المصدر .

تُعدّ العديد من أنظمة القوالب جزءًا من منصة برمجة أو إطار عمل أكبر. ويُشار إليها باسم "نظام قوالب المنصة". وتتيح بعض أنظمة القوالب خيار استبدال لغة أو محرك قوالب مختلف. [ 9 ]

الدعم اللغوي

تدعم لغات البرمجة مثل بيرل ، وروبي ، وسي ، وجافا معالجة القوالب إما بشكل أصلي أو من خلال مكتبات ووحدات إضافية. وتُعدّ صفحات جافا سيرفر (JSP)، وبي إتش بي ، وصفحات الخادم النشطة (ASP مع في بي سكريبت ، أو جافا سكريبت ، أو لغات أخرى) أمثلةً على محركات قوالب الويب. تُستخدم هذه التقنيات عادةً في أنظمة القوالب من جانب الخادم، ولكن يمكن تكييفها للاستخدام على خادم وكيل "من جانب الحافة" أو لإنشاء صفحات ثابتة.

مولدات المواقع الثابتة

مولدات المواقع الثابتة هي محركات تستخدم ملفات إدخال نصية مسطحة مثل Markdown و Asciidoc لإنشاء صفحة ويب ثابتة . ومن أمثلة ذلك Jekyll (Liquid، Ruby )، و Hugo ( قوالب Go )، و Pelican ( Jinja2 ، Python ).

توفر بعض منصات إنشاء المواقع الإلكترونية المستضافة، بما في ذلك Wix و Weebly وDuda، أنظمة قائمة على القوالب تسمح للمستخدمين بإنشاء صفحات ويب ثابتة وديناميكية من خلال واجهات المستخدم الرسومية بدلاً من البرمجة التقليدية. [ 10 ]

محررات HTML الثابتة

بنية نظام قوالب الخادم الخارجي.

تستخدم محررات HTML غالبًا أنظمة قوالب الويب لإنتاج صفحات ويب ثابتة فقط. يمكن اعتبار هذه القوالب بمثابة تصميم ويب جاهز ، يُستخدم لإنتاج مواقع ويب نمطية بكميات كبيرة لنشرها بسرعة. كما أنها تتضمن عادةً سمات بدلًا من أنماط CSS . بشكل عام، تُستخدم لغة القوالب فقط مع برنامج المحرر. [ 11 ]

كان برنامجا FrontPage و Dreamweaver من أشهر برامج تحرير المواقع الإلكترونية التي تعتمد على أنظمة القوالب الفرعية. يستخدم قالب الويب بتقنية Flash برنامج Macromedia Flash لإنشاء مواقع تفاعلية بصريًا.

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

أنظمة جانب الخادم

نظام القوالب من جانب الخادم

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

تُستخدم العديد من أنظمة القوالب عادةً كأنظمة قوالب من جانب الخادم :

اسم/ملصق النظامالمنصة/الإطارملحوظات
شفرةPHPعام. جزء من Laravel
قالب الفهدبايثونعام. لغة معقدة مضمنة .
جانغوبايثوناستخدم "لغة قوالب Django".
EJS (جافا سكريبت المضمنة)جافا سكريبتعام. لغة معقدة مضمنة .
فري ماركرجافاعام.
واجهات صغيرةجاكرتا إي إيعام. جزء من وجوه جاكرتا
جينشيبايثونعام
هاملروبي أو غيرهاعام.
القرىجافاعام.
جينجا2بايثونعام. لغة معقدة مضمنة .
طفلبايثون
لاسوشركة لاسو سوفت المحدودةلغة برمجة تفسيرية وخادم خاصان .
شاربActionScript ، C++ ، Clojure ، CoffeeScript ، ColdFusion ، D ، Erlang ، Fantom ، Go ، Java ، JavaScript من جانب الخادم ، Lua ، .NET ، Objective-C ، خارج السياق ، [ 12 ] Perl ، PHP ، Python ، Ruby ، Scala ، Tclعام.
تضمينات جانب الخادم الأساسية (SSI)تحدد التوجيهات الأساسية "معياراً".لغة بسيطة مضمنة ، إذا تم استبعاد execالتوجيه.
سمارتيPHPعام. لغة معقدة مضمنة .
مجموعة أدوات القوالببيرلعام. لغة معقدة مضمنة .
لغة سمات القوالب (TAL)Zope ، Python ، Java ، Perl ، PHP ، XSLTعام؛ المعروف أيضًا باسم قوالب صفحات Zope (ZPT) ؛ انظر أيضًا إلى بناء جملة تعبير TAL (TALES)، وتوسيع الماكرو TAL (METAL)
البلاطجافاعام. يدعم لغات القوالب المتعددة (JSP، Velocity، Freemarker، Mustache) من أطر عمل مختلفة (servlet، portlets، struts، spring).
أوراق الزعترجافاعام.
موقع توب سايتبايثونعام. "اعتبارًا من 20 فبراير 2008، لم يعد هذا المشروع قيد التطوير النشط." [ 13 ]
غصينPHP
مكتبة PHPlibمكتبة PHPlibعام. لغة قابلة للتكرار مضمنة .
WebMacroجافاعام. لغة قابلة للتكرار مضمنة .
كائنات الويبجافااستخدم أداة إنشاء كائنات الويب كمحرك.
سرعةجافاعام. استخدم VTL - لغة قوالب السرعة .
مشهد قصيرملكية خاصة.حل تجاري. لغة معقدة مضمنة .
XSLT (لغة قياسية)أي جهاز مزود بمحلل XSLTلغة برمجة قياسية تعتمد على الأحداث .
XQuery (لغة قياسية)أي جهاز مزود بمحلل XQueryلغة برمجة قياسية مضمنة .

من الناحية التقنية، تُعتبر منهجية تضمين لغات البرمجة داخل HTML (أو XML، وما إلى ذلك)، المستخدمة في العديد من "لغات البرمجة النصية المضمنة من جانب الخادم"، قوالب أيضًا. جميعها لغات معقدة مضمنة .

اسم/ملصق النظامملحوظات
صفحات الخادم النشطة (ASP)خاص ( منصة مايكروسوفت ). انظر أيضًا: امتدادات VBScript وJavascript و PerlScript وغيرها لـ ASP.
إي روبيعام ( روبي ).
لغة ترميز ColdFusion (CFM)عام ( Lucee ، Railo ، OpenBD). خاص ( Adobe ColdFusion ).
صفحات خادم جاكرتا (JSP)عام، جاكرتا EE .
بيرل النشطعام.
PHPعام.
OpenACSعام ( Tcl ).

توجد أيضًا معالجات مسبقة تُستخدم كمحركات قوالب من جانب الخادم . أمثلة:

المعالج المسبقملحوظات
معالج مسبق للغة Cعام. لغة قابلة للتكرار مضمنة .
M4عام. لغة معقدة مضمنة .

أنظمة جانب الحافة

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

لغة تضمين الحافة الأساسية (ESI) هي لغة شبيهة بلغة تضمين الحافة (SSI). وقد تم تطبيق ESI في شبكات توصيل المحتوى. كما يمكن تطبيق لغة قوالب ESI في متصفحات الويب باستخدام جافا سكريبت وأجاكس، أو عبر إضافة للمتصفح.

أنظمة جانب العميل

نظام قوالب من جانب العميل وموزع (لامركزي).

تستطيع العديد من متصفحات الويب تطبيق ورقة أنماط XSLT على بيانات XML، مما يحولها إلى مستند XHTML ، وبالتالي يوفر وظائف القوالب في المتصفح نفسه. بينما تستخدم أنظمة أخرى لغة جافا سكريبت أو لغة برمجة نصية أخرى من جانب العميل لتنفيذ وظائف القوالب في المتصفح ، ومنها:

الأنظمة الموزعة

أبسط أشكالها هي التضمينات (إطارات HTML). وفي حالات أخرى، تكون هناك حاجة إلى صفحات ويب ديناميكية .

أمثلة:

انظر أيضاً

المفاهيم:      المعايير:
  • لغة ترميز واجهة المستخدم ( UIML )
  • XSLT (تحويلات لغة أوراق الأنماط القابلة للتوسيع)
     برمجة:

مراجع

  1. يوسف، ليزاواتي مي (5 أغسطس 2011). "نظام قوالب مواقع الشركات (CWTS) لتحسين تطوير مواقع الشركات الصغيرة والمتوسطة" . wseas.us . تاريخ الاسترجاع: 24 مارس 2026 .
  2. "محرك القوالب" . ويكي phpwact.org. مؤرشف من الأصل في 4 ديسمبر 2012. تم الاطلاع عليه في 7 يناير 2013 .
  3. "مدونة SS" . منشورات مدونة عن المشاهير . 9 سبتمبر 2021. تاريخ الاسترجاع: 24 مارس 2026 .
  4. نيمير، باتريك (2002). تعلم جافا . سيباستوبول: أورايلي. ISBN 0-596-00285-8.
  5. مانوليسكو، دراغوس (2006). لغات أنماط تصميم البرامج 5. ريدينغ: أديسون-ويسلي بروفيشنال. ISBN 0-321-32194-4.
  6. فاولر، مارتن (2003). أنماط هندسة تطبيقات المؤسسات . بوسطن: أديسون-ويسلي. ISBN 0-321-12742-0.
  7. "بنية وواجهة العميل والخادم" (ملف PDF) . جامعة الدكتور باباساحب أمبيدكار المفتوحة . تاريخ الاسترجاع: 24-03-2026 .
  8. "استبدال بسيط لمتغير القالب، ولكن مع لمسة مميزة" . ستاك أوفرفلو . 2010-07-01 . تم الاطلاع عليه بتاريخ 2026-03-24 .
  9. التسويق 125. الفصل 1: دليل نظرة عامة على أنظمة قوالب الويب . جامعة كاليفورنيا، بيركلي. 2023.
  10. غواي، ماثيو (20 مارس 2018). "ويكس هي أفضل طريقة لمعظم الناس لإنشاء موقع ويب" . وايركتر: مراجعات من واقع الحياة . تم الاطلاع عليه بتاريخ 24 مارس 2016 .
  11. ماكدونالد، ماثيو (2015). إنشاء موقع ويب: الدليل المفقود . الفصل 8 > وضع المحتوى نفسه على صفحات متعددة > قوالب الويب > ملاحظة: O'Reilly Media, Inc. ISBN 9781491936177تم الاطلاع عليه بتاريخ 19 يناير 2016 .{{cite book}}: CS1 maint: location ( link )
  12. "{{mustache}}" . تم الاطلاع عليه بتاريخ 15 أكتوبر 2013 .
  13. جودي بيرنز. "نظام قوالب المواقع الإلكترونية" . تم الاطلاع عليه بتاريخ 15 أكتوبر 2013 .