Browse Source

v8-2751 add the see-all link under children structures events

Olivier Massot 4 năm trước cách đây
mục cha
commit
22e48bad97

+ 19 - 1
ot_templating/Classes/ViewHelpers/EventsPage/GetIdViewHelper.php

@@ -24,6 +24,20 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
  */
 class GetIdViewHelper extends OtAbstractViewHelper
 {
+    /**
+     * -- This method is expected by Fluid --
+     * Declares the viewhelper's parameters
+     */
+    public function initializeArguments()
+    {
+        $this->registerArgument(
+            'children',
+            'integer',
+            'If true, look for the events page of the children structures, instead of the current one',
+            false,
+            0
+        );
+    }
 
     /**
      *  -- This method is expected by Fluid --
@@ -48,8 +62,12 @@ class GetIdViewHelper extends OtAbstractViewHelper
 
         $subpages = $pageRepository->getAllSubpagesForPage($rootId);
 
+        $templateName = $arguments['children'] == 1 ?
+            'OpenTalent.OtTemplating->structuresEvents' :
+            'OpenTalent.OtTemplating->events';
+
         foreach ($subpages as $page) {
-            if ($page['tx_fed_page_controller_action'] === 'OpenTalent.OtTemplating->events'
+            if ($page['tx_fed_page_controller_action'] === $templateName
                 & $page['deleted'] == 0
                 & $page['hidden'] == 0
             ) {

+ 13 - 1
ot_templating/Resources/Private/Partials/Classic/NextEvents.html

@@ -5,6 +5,7 @@
 
 <f:comment><!-- Get the events page' uid if the page is found --></f:comment>
 <v:variable.set value="{ot:eventsPage.getId()}" name="eventsPageUid"/>
+<v:variable.set value="{ot:eventsPage.getId(children: 1)}" name="childrenEventsPageUid"/>
 
 <div class="ot-box ot-events">
     <div class="events-list">
@@ -93,10 +94,21 @@
             </f:if>
         </ot:events.getNext>
 
+        <f:debug>{_all}</f:debug>
+
         <footer>
-            <f:if condition="{fromParents}||{fromChildren}">
+            <f:if condition="{fromParents}">
                 <f:then>
                 </f:then>
+                <f:else if="{fromChildren}">
+                    <f:if condition="{childrenEventsPageUid} > 0"><f:then>
+                        <div class="event-see-all">
+                            <f:link.page pageUid="{childrenEventsPageUid}">
+                                <f:translate key="see-all-events"/>
+                            </f:link.page>
+                        </div>
+                    </f:then></f:if>
+                </f:else>
                 <f:else>
                     <f:if condition="{eventsPageUid} > 0"><f:then>
                         <div class="event-see-all">