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

يُمكّن نظام قوالب الويب في مجال النشر الإلكتروني مصممي ومطوري المواقع من العمل مع قوالب الويب لإنشاء صفحات ويب مخصصة تلقائيًا ، مثل نتائج البحث. ويعتمد هذا النظام على إعادة استخدام عناصر صفحات الويب الثابتة مع تحديد العناصر الديناميكية بناءً على معلمات طلب الويب .
تدعم قوالب الويب المحتوى الثابت، وتوفر بنية أساسية ومظهرًا جذابًا. يمكن للمطورين تطبيق القوالب من أنظمة إدارة المحتوى ، وأطر عمل تطبيقات الويب ، ومحررات HTML . [ 1 ]
ملخص
يتكون نظام قوالب الويب مما يلي:
- محرك القوالب : عنصر المعالجة الأساسي للنظام؛ [ 2 ]
- مورد المحتوى : أي نوع من أنواع تدفقات بيانات الإدخال المختلفة ، مثل تلك الواردة من قاعدة بيانات علائقية ، وملفات XML ، ودليل LDAP ، وأنواع أخرى من البيانات المحلية أو المتصلة بالشبكة ؛
- مورد القالب : قوالب الويب المحددة وفقًا للغة القالب ؛
يقوم محرك القوالب بمعالجة موارد القوالب والمحتوى ودمجها لإنتاج مستندات ويب بكميات كبيرة، لكل منها تنسيق مرئي متشابه. ولأغراض هذه المقالة، تشمل مستندات الويب أيًا من تنسيقات الإخراج المختلفة للإرسال عبر الويب باستخدام بروتوكول 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). وفي حالات أخرى، تكون هناك حاجة إلى صفحات ويب ديناميكية .
أمثلة:
انظر أيضاً
| المفاهيم: | المعايير: | برمجة: |
مراجع
- ↑ يوسف، ليزاواتي مي (5 أغسطس 2011). "نظام قوالب مواقع الشركات (CWTS) لتحسين تطوير مواقع الشركات الصغيرة والمتوسطة" . wseas.us . تاريخ الاسترجاع: 24 مارس 2026 .
- ↑ "محرك القوالب" . ويكي phpwact.org. مؤرشف من الأصل في 4 ديسمبر 2012. تم الاطلاع عليه في 7 يناير 2013 .
- ↑ "مدونة SS" . منشورات مدونة عن المشاهير . 9 سبتمبر 2021. تاريخ الاسترجاع: 24 مارس 2026 .
- ↑ نيمير، باتريك (2002). تعلم جافا . سيباستوبول: أورايلي. ISBN 0-596-00285-8.
- ↑ مانوليسكو، دراغوس (2006). لغات أنماط تصميم البرامج 5. ريدينغ: أديسون-ويسلي بروفيشنال. ISBN 0-321-32194-4.
- ↑ فاولر، مارتن (2003). أنماط هندسة تطبيقات المؤسسات . بوسطن: أديسون-ويسلي. ISBN 0-321-12742-0.
- ↑ "بنية وواجهة العميل والخادم" (ملف PDF) . جامعة الدكتور باباساحب أمبيدكار المفتوحة . تاريخ الاسترجاع: 24-03-2026 .
- ↑ "استبدال بسيط لمتغير القالب، ولكن مع لمسة مميزة" . ستاك أوفرفلو . 2010-07-01 . تم الاطلاع عليه بتاريخ 2026-03-24 .
- ↑ التسويق 125. الفصل 1: دليل نظرة عامة على أنظمة قوالب الويب . جامعة كاليفورنيا، بيركلي. 2023.
- ↑ غواي، ماثيو (20 مارس 2018). "ويكس هي أفضل طريقة لمعظم الناس لإنشاء موقع ويب" . وايركتر: مراجعات من واقع الحياة . تم الاطلاع عليه بتاريخ 24 مارس 2016 .
- ↑ ماكدونالد، ماثيو (2015). إنشاء موقع ويب: الدليل المفقود . الفصل 8 > وضع المحتوى نفسه على صفحات متعددة > قوالب الويب > ملاحظة: O'Reilly Media, Inc. ISBN 9781491936177تم الاطلاع عليه بتاريخ 19 يناير 2016 .
{{cite book}}: CS1 maint: location ( link ) - ↑ "{{mustache}}" . تم الاطلاع عليه بتاريخ 15 أكتوبر 2013 .
- ↑ جودي بيرنز. "نظام قوالب المواقع الإلكترونية" . تم الاطلاع عليه بتاريخ 15 أكتوبر 2013 .
- قوالب مواقع التجارة الإلكترونية المجانية ، مدونات وبوابة معلومات قوالب مواقع الويب من إم جي تكنولوجيز.
روابط خارجية
- مقارنة مكتبات قوالب جافا سكريبت من عام 2009
- فرض فصل صارم بين النموذج والعرض في محركات القوالب
- نهج النموذج المزدوج لتحقيق فصل فعال بين النموذج والعرض في تطبيقات الويب القائمة على القوالب
- مقارنة بين محركات قوالب PHP باستخدام الرسوم البيانية
- مقارنات/معايير لبعض محركات القوالب في بايثون وبعض الأفكار العامة حول محركات القوالب
- web-mode.el هو برنامج رئيسي في Emacs لتحرير قوالب الويب.
- لغات البرمجة النصية
- محركات القوالب
- تصميم مواقع الويب
