Project

General

Profile

Support #10345

Templates - Patterns QFQ Style

Added by Benjamin Baer 4 months ago. Updated 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
02.04.2020
Due date:
% Done:

0%

Estimated time:
Discuss:

Description

Ein "Pattern" im Design ist eine Vorgabe wie etwas aussehen soll.

Nehmen wir mal als Beispiel das teachingtool:

<div class="item">
 <div class="item-background"></div>
 <a class="item-image" style="background-image: url('typo3conf/ext/qfq/Classes/Api/download.php?s=5e8651ff802ce')" href="?id=tool&amp;toolId=118"></a>
 <div class="item-description">Hinweise für die Übertragung einer geplanten Multiple-Choice-Prüfung in ein alternatives digitales Format</div>
 <span class="item-meta">1.4.2020 17:02 Uhr</span><a class="item-title" href="?id=tool&amp;toolId=118">MC-Prüfungen (Remote)</a>
 <div class="item-tags">
   Tags: 
   <a class="label label-primary" href="index.php?id=alltools&amp;tagId=104">Leistungsnachweise</a>
   <a class="label label-primary" href="index.php?id=alltools&amp;tagId=126">Digitale Lehre</a>
 </div>
</div>

Nun brauchen wir diesen Satz an mehreren Orten vom Teachingtool - und wenn man etwas am Grunddesign aendert, muss man an jeden Ort denken in dem es vorkommt.

Mit dingen wie _link machen wir es uns relativ einfach diese Dinge zu erstellen - ist in diesem Sinne bereits ein Pattern.

Nun, wandeln wir obigen Satz mal in ein Pattern um:

<div class="item">
 <div class="item-background"></div>
 <a class="item-image" style="background-image: url('{{backgroundImage:R}}')" href="{{toolLink:R}}"></a>
 <div class="item-description">{{itemDescription:R}}</div>
 <span class="item-meta">{{dateTime:R0}}</span><a class="item-title" href="{{toolLink:R}}">{{itemTitle:RE}}</a>
 <div class="item-tags">
   Tags: 
   {{@tagLoopStart}}<a class="label label-primary" href="{{itemTagLink:R}}">{{itemTagName:R0}}</a>{{@tagLoopEnd}}
 </div>
</div>

Und dazu dann der SQL Aufruf:

10 {
 sql = SELECT "blabla" AS _itemTitle, ....
 pattern = item

   20 {
        sql = SELECT CONCAT('index.php?id=tag&tagId=", tag.id) AS _itemTagLink, tag.name AS _itemTagName ...
        loop = tagLoop
   }
}

Die Designs selbst koennten dabei aehnlich wie System Variabeln definiert werden und seitenweit abgelegt sein. Oder besser wie Form direkt ueber eine Art editor im frontend erstellt (bzw. gleich als git datei - um die eigenen HTML Editoren verwenden zu koennen)

Pattern wird natuerlich hier immer quasi erst "renr" ausgefuehrt, da einzelne Teile aus subqueries kommen koennten (und mit loops sogar muessen). Neben Store :R koennte man auch die anderen Stores abfragen, vorallem Y und U.


Related issues

Related to QFQ - Feature #10713: QFQ functions (reusable reports)Priorize2020-06-04

History

#1 Updated by Benjamin Baer 4 months ago

  • Description updated (diff)

#2 Updated by Benjamin Baer 4 months ago

  • Description updated (diff)

#3 Updated by Benjamin Baer 4 months ago

  • Description updated (diff)

#4 Updated by Benjamin Baer 4 months ago

  • Description updated (diff)

#5 Updated by Benjamin Baer 4 months ago

  • Description updated (diff)

#6 Updated by Marc Egger 2 months ago

#7 Updated by Nicola Chiapolini 2 months ago

Mindestens den Darstllungsteil kann man mit Twig-Template-Dateien lösen.

Also available in: Atom PDF