From 2697a82dab009bf75fa8ff9ca19ff6b0f8fb09d3 Mon Sep 17 00:00:00 2001 From: Henning Leutz <leutz@pcsg.de> Date: Tue, 10 Mar 2015 11:51:54 +0100 Subject: [PATCH] neue controls -> sideboxes --- bricks.xml | 96 +++++++++++++++++++- lib/QUI/Bricks/Controls/Banner.php | 49 ++++++++++ lib/QUI/Bricks/Controls/SideBox1.php | 124 ++++++++++++++++++++++++++ lib/QUI/Bricks/Controls/SocialBox.php | 2 +- 4 files changed, 269 insertions(+), 2 deletions(-) create mode 100644 lib/QUI/Bricks/Controls/Banner.php create mode 100644 lib/QUI/Bricks/Controls/SideBox1.php diff --git a/bricks.xml b/bricks.xml index 5363014..a8af262 100644 --- a/bricks.xml +++ b/bricks.xml @@ -72,7 +72,6 @@ </description> <settings> - <setting name="title"> <locale group="quiqqer/bricks" var="SocialBox.title" /> </setting> @@ -80,9 +79,104 @@ <setting name="socialList" data-qui="package/quiqqer/bricks/bin/Controls/SocialBox"> <locale group="quiqqer/bricks" var="SocialBox.socialList" /> </setting> + </settings> + </brick> + + + <brick control="\QUI\Bricks\Controls\Banner"> + <title> + <locale group="quiqqer/bricks" var="brick.control.banner.title" /> + </title> + <description> + <locale group="quiqqer/bricks" var="brick.control.banner.description" /> + </description> + <settings> + <setting name="title"> + <locale group="quiqqer/bricks" var="brick.control.banner.setting.title" /> + </setting> + <setting name="text"> + <locale group="quiqqer/bricks" var="brick.control.banner.setting.text" /> + </setting> </settings> + </brick> + + <brick control="\QUI\Bricks\Controls\SideBox1"> + <title> + <locale group="quiqqer/bricks" var="brick.control.sidebox1.title" /> + </title> + <description> + <locale group="quiqqer/bricks" var="brick.control.sidebox1.description" /> + </description> + + <settings> + <setting name="site" data-qui="controls/projects/project/site/Select"> + <locale group="quiqqer/bricks" var="brick.control.sidebox1.setting.site" /> + </setting> + <setting name="showImage" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showImage" /> + </setting> + <setting name="showTitle" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showTitle" /> + </setting> + <setting name="showShort" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showShort" /> + </setting> + <setting name="showContent" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showContent" /> + </setting> + </settings> + </brick> + + + <brick control="\QUI\Bricks\Controls\SideBox2"> + <title> + <locale group="quiqqer/bricks" var="brick.control.sidebox2.title" /> + </title> + <description> + <locale group="quiqqer/bricks" var="brick.control.sidebox2.description" /> + </description> + + <settings> + <setting name="site" data-qui="controls/projects/project/site/Select"> + <locale group="quiqqer/bricks" var="brick.control.sidebox2.setting.site" /> + </setting> + <setting name="showImage" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showImage" /> + </setting> + <setting name="showTitle" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showTitle" /> + </setting> + <setting name="showShort" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showShort" /> + </setting> + </settings> + </brick> + + + <brick control="\QUI\Bricks\Controls\SideBox3"> + <title> + <locale group="quiqqer/bricks" var="brick.control.sidebox3.title" /> + </title> + <description> + <locale group="quiqqer/bricks" var="brick.control.sidebox3.description" /> + </description> + + <settings> + <setting name="site" data-qui="controls/projects/project/site/Select"> + <locale group="quiqqer/bricks" var="brick.control.sidebox3.setting.site" /> + </setting> + <setting name="showImage" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showImage" /> + </setting> + <setting name="showTitle" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showTitle" /> + </setting> + <setting name="showShort" type="checkbox"> + <locale group="quiqqer/bricks" var="brick.control.setting.showShort" /> + </setting> + </settings> </brick> </bricks> diff --git a/lib/QUI/Bricks/Controls/Banner.php b/lib/QUI/Bricks/Controls/Banner.php new file mode 100644 index 0000000..ddb220f --- /dev/null +++ b/lib/QUI/Bricks/Controls/Banner.php @@ -0,0 +1,49 @@ +<?php + +/** + * This file contains QUI\Bricks\Controls\Banner + */ + +namespace QUI\Bricks\Controls; + +use QUI; + +/** + * Class Banner + * + * @package quiqqer/bricks + */ +class Banner extends QUI\Control +{ + /** + * constructor + * @param Array $attributes + */ + public function __construct($attributes = array()) + { + // default options + $this->setAttributes(array( + 'title' => '', + 'text' => '', + 'class' => 'quiqqer-bricks-banner', + 'nodeName' => 'section' + )); + + parent::setAttributes( $attributes ); + } + + /** + * (non-PHPdoc) + * @see \QUI\Control::create() + */ + public function getBody() + { + $Engine = QUI::getTemplateManager()->getEngine(); + + $Engine->assign(array( + 'this' => $this + )); + + return $Engine->fetch( dirname( __FILE__ ) .'/Banner.html' ); + } +} \ No newline at end of file diff --git a/lib/QUI/Bricks/Controls/SideBox1.php b/lib/QUI/Bricks/Controls/SideBox1.php new file mode 100644 index 0000000..1f0011e --- /dev/null +++ b/lib/QUI/Bricks/Controls/SideBox1.php @@ -0,0 +1,124 @@ +<?php + +/** + * This file contains QUI\Bricks\Controls\SideBox1 + */ + +namespace QUI\Bricks\Controls; + +use QUI; + +/** + * Class SocialBox + * + * @package quiqqer/bricks + */ +class SideBox1 extends QUI\Control +{ + /** + * constructor + * @param Array $attributes + */ + public function __construct($attributes = array()) + { + // default options + $this->setAttributes(array( + 'showImage' => true, + 'showTitle' => true, + 'showDescription' => true, + 'showContent' => true, + + 'class' => 'quiqqer-bricks-sidebox1', + 'nodeName' => 'article', + 'site' => false + )); + + parent::setAttributes( $attributes ); + } + + /** + * (non-PHPdoc) + * @see \QUI\Control::create() + */ + public function getBody() + { + $Engine = QUI::getTemplateManager()->getEngine(); + + $Engine->assign(array( + 'this' => $this, + 'Site' => $this->_getSite() + )); + + return $Engine->fetch( dirname( __FILE__ ) .'/SideBox1.html' ); + } + + /** + * Return the site object + * + * @return QUI\Projects\Site + */ + protected function _getSite() + { + $Project = $this->_getProject(); + $site = $this->getAttribute( 'site' ); + + if ( is_numeric( $site ) ) + { + try + { + return $Project->get( (int)$site ); + + } catch ( QUI\Exception $Exception ) + { + QUI\System\Log::addWarning( $Exception->getMessage() ); + + return $Project->firstChild(); + } + } + + $sitetypes = explode( ';', $site ); + + $ids = array(); + $types = array(); + $where = array(); + + foreach ( $sitetypes as $sitetypeEntry ) + { + if ( is_numeric( $sitetypeEntry ) ) + { + $ids[] = $sitetypeEntry; + continue; + } + + $types[] = $sitetypeEntry; + } + + if ( !empty( $ids ) ) + { + $where['id'] = array( + 'type' => 'IN', + 'value' => $ids + ); + } + + if ( !empty( $types ) ) + { + $where['type'] = array( + 'type' => 'IN', + 'value' => $types + ); + } + + $result = $Project->getSites(array( + 'where_or' => $where, + 'limit' => 1, + 'order' => 'release_from ASC' + )); + + if ( isset( $result[ 0 ] ) ) { + return $result[ 0 ]; + } + + return $Project->firstChild(); + } +} \ No newline at end of file diff --git a/lib/QUI/Bricks/Controls/SocialBox.php b/lib/QUI/Bricks/Controls/SocialBox.php index f7fb2a1..69e16ff 100644 --- a/lib/QUI/Bricks/Controls/SocialBox.php +++ b/lib/QUI/Bricks/Controls/SocialBox.php @@ -11,7 +11,7 @@ /** * Class SocialBox * - * @package quiqqer/template-qui + * @package quiqqer/bricks */ class SocialBox extends QUI\Control { -- GitLab