Typo3 Fluid - كيف يمكنني التحقق من احتواء اثنين أو أكثر من نقاط colPos على محتوى ثم طباعة HTML

StackOverflow https://stackoverflow.com//questions/25006224

سؤال

أريد طباعة HTML التالي فقط إذا كان واحد أو أكثر من colPos يحتوي على محتوى فيه.إذا لم يكن أي منها يحتوي على عناصر محتوى، فلن أرغب في طباعة هذه الكتلة ("الصف") بالكامل من HTML.

<div class="row">
  <div class="col-sm-4">
      <f:cObject typoscriptObjectPath="lib.dynamicContent" data="5" />
  </div>
  <div class="col-sm-4">
      <f:cObject typoscriptObjectPath="lib.dynamicContent" data="6" />
  </div>
  <div class="col-sm-4">
      <f:cObject typoscriptObjectPath="lib.dynamicContent" data="7" />
  </div>
</div>

فكرت في الحصول على colPos ومحاولة إجراء شرط OR على Fluid.لكن ليس لدي أي فكرة عن كيفية القيام بذلك.أعلم أنه يمكنني التحقق واحدًا تلو الآخر مثل هذا:

<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '5')}">
   ...HTML for colPos 5 HERE...
</f:if>

لكنني لا أريد أن أفعل ذلك.يوجد في القالب الخاص بي ما يقرب من 50 نقطة عرض مختلفة ويتم تنظيمها حسب الكتل (الصفوف).مثل colPos من 1 إلى 5 عبارة عن كتلة واحدة (صف).colPos 10 إلى 25 في كتلة (صف) أخرى.لكن بعض الصفحات لن تستخدم بعض الكتل (الصفوف) من colPos، لذا لا يوجد سبب لطباعة تعليمات HTML البرمجية لتلك الكتل (الصفوف) من colPos غير المستخدمة.

شكرا لمساعدتك!

هل كانت مفيدة؟

المحلول

سيكون الحل السائل فقط هو تعيين نتائج <f:cObject>-ViewHelpers لكل متغير، ثم استخدم تسلسل هذه المتغيرات في الشرط.مساحة الاسم v:- في المثال هي مساحة الاسم للملحق vhs:

<v:variable.set name="col-5" value="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '5')}"/>
<v:variable.set name="col-6" value="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '6')}"/>
<v:variable.set name="col-7" value="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '7')}"/>

<f:if condition="{col-5}{col-6}{col-7}">
    <div class="row">
        <div class="col-sm-4">{col-5}</div>
        <div class="col-sm-4">{col-6}</div>
        <div class="col-sm-4">{col-7}</div>
    </div>
</f:if>

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

أيضا، يجب أن تفكر مرة أخرى، إذا كنت حقًا تحتاج 25 عمودا.

نصائح أخرى

منذ TYPO3 8.6، هذا ممكن دون تمديد "VHS":

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top