From 9e1e822805895080601532210fc4b918d0651635 Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Tue, 10 Mar 2015 15:37:06 +0100
Subject: [PATCH] Smarty event -> {brickarea} function; Side Boxes

---
 events.xml                |  1 +
 lib/QUI/Bricks/Events.php | 42 +++++++++++++++++++++++++++++++++++++++
 locale.xml                |  5 +++++
 3 files changed, 48 insertions(+)

diff --git a/events.xml b/events.xml
index 8c34c69..8e28176 100644
--- a/events.xml
+++ b/events.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <events>
     <event on="onSiteSave" fire="\QUI\Bricks\Events::onSiteSave" />
+    <event on="onSmartyInit" fire="\QUI\Bricks\Events::onSmartyInit" />
 </events>
\ No newline at end of file
diff --git a/lib/QUI/Bricks/Events.php b/lib/QUI/Bricks/Events.php
index bdca6d9..78172d8 100644
--- a/lib/QUI/Bricks/Events.php
+++ b/lib/QUI/Bricks/Events.php
@@ -91,4 +91,46 @@ static function onSiteSave($Site)
             }
         }
     }
+
+    /**
+     * Event : on smarty init
+     * add new brickarea function
+     */
+    static function onSmartyInit($Smarty)
+    {
+        // {brickarea}
+        $Smarty->registerPlugin("function", "brickarea", "\QUI\Bricks\Events::brickarea");
+    }
+
+    /**
+     * Smarty brickarea function {brickarea}
+     *
+     * @param Array $params - function parameter
+     * @param \Smarty
+     */
+    static function brickarea($params, $smarty)
+    {
+        if ( !isset( $params['Site'] ) || !isset( $params['area'] ) )
+        {
+            if ( !isset( $params['assign'] ) ) {
+                return array();
+            }
+
+            $smarty->assign( $params['assign'], array() );
+            return;
+        }
+
+        $BricksManager = new \QUI\Bricks\Manager();
+
+        $Site = $params['Site'];
+        $area = $params['area'];
+
+        $result = $BricksManager->getBricksByArea( $area, $Site );
+
+        if ( !isset( $params['assign'] ) ) {
+            return $result;
+        }
+
+        $smarty->assign( $params['assign'], $result );
+    }
 }
\ No newline at end of file
diff --git a/locale.xml b/locale.xml
index 6f79459..3374c67 100644
--- a/locale.xml
+++ b/locale.xml
@@ -137,10 +137,15 @@
     </groups>
 
     <groups name="quiqqer/bricks" datatype="php">
+
         <locale name="site.panel.bricks.category.title">
             <de><![CDATA[Bausteine]]></de>
             <en><![CDATA[Bricks]]></en>
         </locale>
+        <locale name="continue.reading">
+            <de><![CDATA[weiterlesen]]></de>
+            <en><![CDATA[Continue reading]]></en>
+        </locale>
 
     </groups>
 
-- 
GitLab