الفرق بين المراجعتين ل"Twig/include function"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(1.0: إضافة عنوان الصفحة | 2.0 محتوى الصفحة)
 
ط
 
(مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة)
سطر 9: سطر 9:
 
</syntaxhighlight>وهنا لا يُسمح بالوصول إلى أي متغير:<syntaxhighlight lang="twig">
 
</syntaxhighlight>وهنا لا يُسمح بالوصول إلى أي متغير:<syntaxhighlight lang="twig">
 
{{ include('template.html', with_context = false) }}
 
{{ include('template.html', with_context = false) }}
</syntaxhighlight>إذا كان التعبير يقيَّم إلى نسخة  ‎<code>\Twig\Template</code> أو  ‎<code>\Twig\TemplateWrapper</code> فإن Twig يستخدمه مباشرة:<syntaxhighlight lang="twig">
+
</syntaxhighlight>إذا كان التعبير يقيَّم إلى نسخة  ‎<code>\Twig\Template</code> أو  ‎<code>\Twig\TemplateWrapper</code> فإن Twig يستخدمه مباشرة:<syntaxhighlight lang="php">
 
// {{ include(template) }}
 
// {{ include(template) }}
  
سطر 19: سطر 19:
 
</syntaxhighlight>يمكن توفير قائمة من القوالب التي يُتحقق من وجودها قبل الإدراج، ويُخرَج أول قالب موجود:<syntaxhighlight lang="twig">
 
</syntaxhighlight>يمكن توفير قائمة من القوالب التي يُتحقق من وجودها قبل الإدراج، ويُخرَج أول قالب موجود:<syntaxhighlight lang="twig">
 
{{ include(['page_detailed.html', 'page.html']) }}
 
{{ include(['page_detailed.html', 'page.html']) }}
</syntaxhighlight>إذا تم تعيين <code>ignore_missing</code> فإنه لا يخرِج شيئًا إذا لم يكن أي من القوالب موجودًا، وإلا فإنه يرفع اعتراضًا (exception). إذا أنشأ المستخدم النهائي القالب فيجب وضعه في صندوق اختبار (sand box) قبل إدراجه:<syntaxhighlight lang="twig">
+
</syntaxhighlight>إذا تم تعيين <code>ignore_missing</code> فإنه لا يخرِج شيئًا إذا لم يكن أي من القوالب موجودًا، وإلا فإنه يرفع اعتراضًا exception. إذا أنشأ المستخدم النهائي القالب فيجب وضعه في صندوق اختبار sand box قبل إدراجه:<syntaxhighlight lang="twig">
 
{{ include('page.html', sandboxed = true) }}
 
{{ include('page.html', sandboxed = true) }}
 
</syntaxhighlight>
 
</syntaxhighlight>
سطر 32: سطر 32:
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* [[Twig/intro|مقدمة عن محرك القوالب Twig.]]
+
*[[Twig/intro|مقدمة عن محرك القوالب Twig]]
* [[Twig/advanced|توسيع Twig.]]
+
* [[Twig/advanced|توسيع Twig]]
* [[Twig/internals|المكونات الداخلية لـ Twig.]]
+
*[[Twig/internals|المكونات الداخلية لـ Twig]]
* [[Twig/tags|الوسوم في Twig]].
+
*[[Twig/tags|الوسوم في Twig]]
* [[ Twig/filters|المرشحات في Twig]].
+
*[[ Twig/filters|المرشحات في Twig]]
* [[ Twig/functions|الدوال في Twig]].
+
*[[ Twig/functions|الدوال في Twig]]
 
== المصادر ==
 
== المصادر ==
* [https://twig.symfony.com/doc/3.x/functions/include.html صفحة توثيق الدالة include في توثيق Twig الرسمي].
+
* [https://twig.symfony.com/doc/3.x/functions/include.html صفحة توثيق الدالة include في توثيق Twig الرسمي]
  
 
[[تصنيف:Twig]]
 
[[تصنيف:Twig]]
 
[[تصنيف:Twig Functions]]
 
[[تصنيف:Twig Functions]]

المراجعة الحالية بتاريخ 06:32، 11 مايو 2021

تعيد الدالة include المحتوى المُخرَج لقالب ما:

{{ include('template.html') }}
{{ include(some_var) }}

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

{{ include('template.html', {foo: 'bar'}) }}

يمكن تعطيل الوصول إلى السياق بضبط with_context على false، انظر المثال التالي حيث لا يُسمح بالوصول إلا إلى المتغير foo:

{{ include('template.html', {foo: 'bar'}, with_context = false) }}

وهنا لا يُسمح بالوصول إلى أي متغير:

{{ include('template.html', with_context = false) }}

إذا كان التعبير يقيَّم إلى نسخة ‎\Twig\Template أو ‎\Twig\TemplateWrapper فإن Twig يستخدمه مباشرة:

// {{ include(template) }}

$template = $twig->load('some_template.twig');

$twig->display('template.twig', ['template' => $template]);

عند تعيين راية ignore_missing فإن Twig يعيد سلسلة نصية فارغة إذا لم يكن القالب موجودًا:

{{ include('sidebar.html', ignore_missing = true) }}

يمكن توفير قائمة من القوالب التي يُتحقق من وجودها قبل الإدراج، ويُخرَج أول قالب موجود:

{{ include(['page_detailed.html', 'page.html']) }}

إذا تم تعيين ignore_missing فإنه لا يخرِج شيئًا إذا لم يكن أي من القوالب موجودًا، وإلا فإنه يرفع اعتراضًا exception. إذا أنشأ المستخدم النهائي القالب فيجب وضعه في صندوق اختبار sand box قبل إدراجه:

{{ include('page.html', sandboxed = true) }}

الوسائط

  • template: القالب الذي يجب إخراجه.
  • variables: القوالب التي يجب تمريرها إلى القالب.
  • with_context: تمرير متغيرات السياق الحالي أم لا.
  • ignore_missing: تجاهل القوالب المفقودة أم لا.
  • sandboxed: وضع القالب في صندوق اختبار أم لا.

انظر أيضًا

المصادر