Skip to content
Code-Schnipsel Gruppen Projekte
Commit 2b9dbd17 erstellt von Jan Wennrich's avatar Jan Wennrich
Dateien durchsuchen

Merge branch 'next-2.x' into 'main'

Release

See merge request !5
Übergeordnete 27c95203 b61139ce
No related branches found
Tags 2.0.0
2 Merge Requests!6Update 'next-2.x' with latest changes from 'main',!5Release
Pipeline #12384 mit Warnungen bestanden mit Phase
in 55 Sekunden
![QUIQQER Timeline](bin/img/Readme.png)
QUIQQER Timeline
========
......
bin/img/Gitlab.png

9,48 KiB

bin/img/Logo.png

91,9 KiB

bin/img/Readme.png

398 KiB

......@@ -16,31 +16,59 @@
<locale group="quiqqer/timeline" var="brick.timeline.setting.site"/>
</setting>
<setting name="image" type="select">
<setting name="imageFillMode" type="select">
<locale group="quiqqer/timeline"
var="brick.timeline.setting.image"/>
var="brick.timeline.setting.imageFillMode"/>
<option value="original">
<option value="cover">
<locale group="quiqqer/timeline"
var="brick.timeline.setting.image.original"/>
var="brick.timeline.setting.imageFillMode.cover"/>
</option>
<option value="cover">
<option value="contain">
<locale group="quiqqer/timeline"
var="brick.timeline.setting.image.cover"/>
var="brick.timeline.setting.imageFillMode.contain"/>
</option>
</setting>
<setting name="order" type="select">
<locale group="quiqqer/timeline"
var="brick.timeline.setting.order"/>
<locale group="quiqqer/bricks" var="brick.control.setting.order"/>
<option value=""/>
<option value="name ASC" selected="selected">
<locale group="quiqqer/core" var="name_asc"/>
</option>
<option value="name DESC">
<locale group="quiqqer/core" var="name_desc"/>
</option>
<option value="title ASC">
<locale group="quiqqer/core" var="title_asc"/>
</option>
<option value="title DESC">
<locale group="quiqqer/core" var="title_desc"/>
</option>
<option value="c_date ASC">
<locale group="quiqqer/timeline"
var="brick.timeline.setting.order.original"/>
<locale group="quiqqer/core" var="c_date_asc"/>
</option>
<option value="c_date DESC">
<locale group="quiqqer/timeline"
var="brick.timeline.setting.order.inverted"/>
<locale group="quiqqer/core" var="c_date_desc"/>
</option>
<option value="e_date ASC">
<locale group="quiqqer/core" var="e_date_asc"/>
</option>
<option value="e_date DESC">
<locale group="quiqqer/core" var="e_date_desc"/>
</option>
<option value="release_from ASC">
<locale group="quiqqer/core" var="release_from_asc"/>
</option>
<option value="release_from DESC">
<locale group="quiqqer/core" var="release_from_desc"/>
</option>
<option value="order_field ASC">
<locale group="quiqqer/core" var="order_field_asc"/>
</option>
<option value="order_field DESC">
<locale group="quiqqer/core" var="order_field_desc"/>
</option>
</setting>
......@@ -61,6 +89,10 @@
<setting name="limit" type="number">
<locale group="quiqqer/timeline"
var="brick.timeline.setting.limit"/>
<description>
<locale group="quiqqer/timeline"
var="brick.timeline.setting.limit.desc"/>
</description>
</setting>
</settings>
......
......@@ -7,19 +7,17 @@
{
"name": "Michael Danielczok",
"email": "michael@pcsg.de",
"homepage": "http://www.pcsg.de",
"homepage": "https://www.pcsg.de",
"role": "Developer"
}
],
"support": {
"email": "support@pcsg.de",
"url": "http://www.pcsg.de"
"url": "https://www.pcsg.de"
},
"require": {
"quiqqer/quiqqer": "*@dev",
"quiqqer/utils": ">=1.7|dev-dev",
"quiqqer/fontawesome": "*@dev",
"quiqqer/buttons": ">=1.0.0|dev-master|dev-dev"
"quiqqer\/core": "^2",
"quiqqer\/utils": "^2"
},
"autoload": {
"psr-4": {
......
......@@ -32,77 +32,59 @@
<!-- timeline brick -->
<locale name="brick.timeline.title">
<de><![CDATA[Brick: Timeline]]></de>
<en><![CDATA[Brick: Timeline]]></en>
<de><![CDATA[Timeline: Timeline Baustein]]></de>
<en><![CDATA[Timeline: Timeline brick]]></en>
</locale>
<locale name="brick.timeline.description">
<de><![CDATA[
Das Paket ermöglicht das einfache Erstellen von Timelines oder Roadmaps.
]]></de>
<en><![CDATA[
The package allows you to easily create timelines or roadmaps.
]]></en>
<de><![CDATA[Erstelle ohne Aufwand Timelines oder Roadmaps.]]></de>
<en><![CDATA[Create timelines or roadmaps without effort.]]></en>
</locale>
<locale name="brick.timeline.setting.site">
<de><![CDATA[Seite(n) auswählen]]></de>
<en><![CDATA[Select site(s)]]></en>
</locale>
<locale name="brick.timeline.setting.image">
<de><![CDATA[Bild]]></de>
<en><![CDATA[Image]]></en>
</locale>
<locale name="brick.timeline.setting.image.original">
<de><![CDATA[Original]]></de>
<en><![CDATA[Original]]></en>
</locale>
<locale name="brick.timeline.setting.image.cover">
<de><![CDATA[Cover (Bild kann gestreckt werden)]]></de>
<en><![CDATA[Cover (image can be stretched)]]></en>
</locale>
<locale name="brick.timeline.setting.order">
<de><![CDATA[Befehl]]></de>
<en><![CDATA[Original]]></en>
<locale name="brick.timeline.setting.imageFillMode">
<de><![CDATA[Bild verhalten]]></de>
<en><![CDATA[Bild mode]]></en>
</locale>
<locale name="brick.timeline.setting.order.original">
<de><![CDATA[Original]]></de>
<en><![CDATA[Original]]></en>
<locale name="brick.timeline.setting.imageFillMode.cover">
<de><![CDATA[Ganze Fläche füllen. Das Bild kann u.U. gestreckt werden (cover)]]></de>
<en><![CDATA[Fill entire area. The image can be stretched (cover)]]></en>
</locale>
<locale name="brick.timeline.setting.order.inverted">
<de><![CDATA[Invertiert]]></de>
<en><![CDATA[Inverted]]></en>
<locale name="brick.timeline.setting.imageFillMode.contain">
<de><![CDATA[Ganzes Bild anzeigen (contain)]]></de>
<en><![CDATA[Show full image (contain)]]></en>
</locale>
<locale name="brick.timeline.setting.showLinks">
<de><![CDATA[Hyperlinks für jede Site anzeigen?]]></de>
<en><![CDATA[Show hyperlinks for each site?]]></en>
<de><![CDATA[Links anzeigen]]></de>
<en><![CDATA[Show links]]></en>
</locale>
<locale name="brick.timeline.setting.template">
<de><![CDATA[Vorlage]]></de>
<en><![CDATA[Template]]></en>
</locale>
<locale name="brick.timeline.setting.template.verticalBothSides">
<de><![CDATA[Vertikale Zeitleiste mit Inhalt und Symbol (Bild)]]></de>
<de><![CDATA[Verticale Linnie mit Inhalt und Icon (Bild)]]></de>
<en><![CDATA[Vertical timeline wiht content and icon (image)]]></en>
</locale>
<locale name="brick.timeline.setting.limit">
<de><![CDATA[Limit (Grundlimit 10)]]></de>
<en><![CDATA[Limit (basic limit it 10)]]></en>
<de><![CDATA[Maximale Anzahl]]></de>
<en><![CDATA[Limit]]></en>
</locale>
<locale name="brick.timeline.setting.limit.desc">
<de><![CDATA[Legt die maximale Anzahl der Einträge fest.]]></de>
<en><![CDATA[Sets the maximum number of items to display.]]></en>
</locale>
</groups>
<groups name="quiqqer/timeline" datatype="php">
<groups name="quiqqer/timeline" datatype="php">
<!-- timeline -->
<locale name="timeline.settings.title">
<de><![CDATA[Timeline: Einstellungen]]></de>
......@@ -116,11 +98,11 @@
<en><![CDATA[Template]]></en>
<pl><![CDATA[Template]]></pl>
</locale>
<locale name="timeline.display.VerticalBothSides">
<de><![CDATA[Verticale Linnie mit Inhalt und Icon (Bild)]]></de>
<en><![CDATA[Vertical timeline wiht content and icon (image)]]></en>
<pl><![CDATA[Wertykalna linnia czasu z treścią i ikona (obrazkiem)]]></pl>
</locale>
<locale name="timeline.display.VerticalBothSides">
<de><![CDATA[Verticale Linnie mit Inhalt und Icon (Bild)]]></de>
<en><![CDATA[Vertical timeline wiht content and icon (image)]]></en>
<pl><![CDATA[Wertykalna linnia czasu z treścią i ikona (obrazkiem)]]></pl>
</locale>
<!-- show url -->
<locale name="timeline.showLinks">
......@@ -151,14 +133,12 @@
<locale name="timeline.verticalBothSides.counterText">
<de><![CDATA[STEP]]></de>
<en><![CDATA[STEP]]></en>
<pl><![CDATA[STEP]]></pl>
</locale>
<!-- more button -->
<locale name="timeline.more">
<de><![CDATA[mehr]]></de>
<en><![CDATA[more]]></en>
<pl><![CDATA[więcej]]></pl>
<de><![CDATA[Mehr]]></de>
<en><![CDATA[More]]></en>
</locale>
</groups>
......
{$body}
{if $this->getAttribute('showTitle') && $this->getAttribute('frontendTitle')}
<header class="control-header">
<h1>{$this->getAttribute('frontendTitle')}</h1>
</header>
{/if}
{if $this->getAttribute('content') != ""}
<div class="control-content">
{$this->getAttribute('content')}
</div>
{/if}
<div class="control-template">
{$timelineHtml}
</div>
......@@ -24,7 +24,7 @@ public function __construct($attributes = [])
{
// default options
$this->setAttributes([
'image' => 'original', // original, cover
'imageFillMode' => 'cover', // cover, fill
'order' => 'c_date ASC',
'showLinks' => true,
'template' => 'VerticalBothSides',
......@@ -42,7 +42,7 @@ public function __construct($attributes = [])
*
* @return String
*/
public function getBody()
public function getBody(): string
{
$Engine = QUI::getTemplateManager()->getEngine();
$Control = new QUI\Timeline\Controls\Timeline();
......@@ -58,17 +58,18 @@ public function getBody()
}
$Control->setAttribute('parentInputList', $this->getAttribute('site'));
$Control->setAttribute('imageFit', $this->getAttribute('image'));
$Control->setAttribute('imageFillMode', $this->getAttribute('imageFillMode'));
$Control->setAttribute('order', $this->getAttribute('order'));
$Control->setAttribute('showLinks', $this->getAttribute('showLinks'));
$Control->setAttribute('display', $this->getAttribute('template'));
$Control->setAttribute('limit', $limit);
$result = $Control->create();
$html = $Control->create();
$this->addCSSFiles($Control->getCSSFiles());
$options = [
'body' => $result
'this' => $this,
'timelineHtml' => $html
];
$Engine->assign($options);
......
......@@ -21,26 +21,26 @@ class Timeline extends QUI\Control
*
* @param array $attributes
*/
public function __construct($attributes = array())
public function __construct(array $attributes = [])
{
// default options
$this->setAttributes(array(
'nodeName' => 'section',
'class' => 'timeline-section',
'order' => 'c_date ASC',
$this->setAttributes([
'nodeName' => 'section',
'class' => 'timeline-section',
'order' => 'c_date ASC',
'parentInputList' => false, //todo später für brick
'showLinks' => true,
'imageFit' => 'original', // original, cover
'display' => 'VerticalBothSides',
'limit' => 10,
'showLinks' => true,
'display' => 'VerticalBothSides',
'limit' => 10,
'imageFillMode' => 'cover', // cover / contain
// Custom children template (path to html file); overwrites "display"
'displayTemplate' => false,
// Custom children template css (path to css file); overwrites "display"
'displayCss' => false,
'itemtype' => 'http://schema.org/ItemList',
'child-itemtype' => 'https://schema.org/ListItem',
'child-itemprop' => 'itemListElement'
));
'displayCss' => false,
'itemtype' => 'http://schema.org/ItemList',
'child-itemtype' => 'https://schema.org/ListItem',
'child-itemprop' => 'itemListElement'
]);
parent::__construct($attributes);
}
......@@ -51,16 +51,21 @@ public function __construct($attributes = array())
*
* @return String
*/
public function getBody()
public function getBody(): string
{
$Engine = QUI::getTemplateManager()->getEngine();
$Site = $this->getSite();
$Engine = QUI::getTemplateManager()->getEngine();
$Site = $this->getSite();
$Project = $this->getProject();
$limit = $this->getAttribute('limit');
if (!$Site && !$this->getAttribute('parentInputList')) {
return '';
}
if (!$limit) {
$limit = 10;
}
$parents = $this->getAttribute('parentInputList');
if (!$parents) {
......@@ -72,26 +77,28 @@ public function getBody()
if ($this->getAttribute('parentInputList')) {
// for bricks
$children = Utils::getSitesByInputList($Project, $parents, array(
$children = Utils::getSitesByInputList($Project, $parents, [
'where' => $where,
'order' => $this->getAttribute('order'),
'limit' => $this->getAttribute('limit')
));
'limit' => $limit,
]);
} else {
// for site types
$children = $Site->getChildren(array(
$children = $Site->getChildren([
'where' => $where,
));
'order' => $this->getAttribute('order'),
'limit' => $limit,
]);
}
$Engine->assign(array(
'this' => $this,
'Site' => $Site,
'Project' => $this->getProject(),
'children' => $children,
$Engine->assign([
'this' => $this,
'Site' => $Site,
'Project' => $this->getProject(),
'children' => $children,
'showLinks' => $this->getAttribute('showLinks'),
'imageFit' => $this->getAttribute('imageFit')
));
'imageFit' => $this->getAttribute('imageFillMode')
]);
// load custom template (if set)
if (
......@@ -110,7 +117,7 @@ public function getBody()
// template
$css = dirname(__FILE__) . '/Timeline.' . $this->getAttribute('display') . '.css';
$css = dirname(__FILE__) . '/Timeline.' . $this->getAttribute('display') . '.css';
$template = dirname(__FILE__) . '/Timeline.' . $this->getAttribute('display') . '.html';
$this->addCSSFile($css);
......@@ -120,9 +127,9 @@ public function getBody()
/**
* @return mixed|QUI\Projects\Site
* @return null|QUI\Projects\Site
*/
protected function getSite()
protected function getSite(): ?QUI\Interfaces\Projects\Site
{
if ($this->getAttribute('Site')) {
return $this->getAttribute('Site');
......
......@@ -4,15 +4,14 @@
* Site list
*/
$Timeline = new QUI\Timeline\Controls\Timeline(array(
'Site' => $Site,
'showLinks' => $Site->getAttribute('quiqqer.timeline.showLinks'),
'itemtype' => 'http://schema.org/ItemList',
$Timeline = new QUI\Timeline\Controls\Timeline([
'Site' => $Site,
'showLinks' => $Site->getAttribute('quiqqer.timeline.showLinks'),
'itemtype' => 'http://schema.org/ItemList',
'child-itemtype' => 'http://schema.org/ListItem',
'display' => $Site->getAttribute('quiqqer.timeline.display'),
'imageFit' => $Site->getAttribute('quiqqer.timeline.imageFit')
));
'display' => $Site->getAttribute('quiqqer.timeline.display')
]);
$Engine->assign(array(
$Engine->assign([
'Timeline' => $Timeline
));
]);
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren