
Beschränkung von Imperiablocks nach Anzahl, von Flexmodulen nach Art und Anzahl
Wir möchten gerne bestimmte Anzahlen von Imepriablocks eingebbar machen, so sollen in einer Zeile z.B. 2-5 "Cards" eingebbar sein. Das Einfügen eines sechsten Blocks oder das Löschen des Vorletzten soll dann unterbunden werden.
Die Syntax könnte wie folgt aussehen:
<!--IMPERIABLOCK:INDEX=0:MIN=2:MAX=5-->
Bei einer Minimalzahl von 2 wäre es natürlich sinnvoll, bereits bei Erstaufruf des Templates zwei Instanzen einzubinden.
Seitenelemente in Flexmodulen möchten wir ebenfalls in ihrer Anzahl beschränken. So sollen z.B. maximal 10 Module, davon aber genau ein Bannerbereich und genau eine Quernavigation eingebbar sein.
Die Syntax könnte wie folgt aussehen:
<!--INSERT_FLEXMODULE:INDEX=4:VIEW=compact.html:MAX=10:MAX-banner=1:MAX-quernavigation=1-->
Wobei banner und quernavigation die Dateinamen der Flexmodule wären.
Customer support service by UserEcho
Hallo Tobias,
wir standen dieser Problematik bei uns auch gegenüber und haben dies über eine eigene View und über eine eigens dafür spezifizierte /imperia/js/editmode/js-operations.js (/imperia/js/editmode/iblock-js-operations.js), die wir in dieser View anstelle der original von imperia ausgelieferten js-operations.js eingebunden haben gelöst.
Das Ganze haben wir so konfiguriert, dass in der View aus einem globalen JS-Objekt ein Flag ausgelesen wird, ob der aktuelle Block bereits konfiguriert ist und falls nein, das Flag auf true gesetzt wird und der Block initialisiert wird. Zusätzlich wird der Mindestwert (imperia_block_min) der Elemente bei uns in der View gesetzt, da dies nur an einer einzigen Stelle benötigt wird (man kann dies sicherlich auch über einen eigenen Parameter lösen). Die Initialisierung wird abhängig von dem Wert des hidden Input-Felds "imperiablock_count_{% data.index %}" durchgeführt (Regel: ist die aktuelle Mindestanzahl an Blöcken erreicht [imperiablock_count_{% data.index %} >= imperia_block_min], brich das Hinzufügen ab).
Bei dem JS-Hook für das Löschen von imperiablock-Elementen haben wir in der iblock-js-operations.js entsprechend auch eine Prüfung auf imperia_block_min eingebaut, welcher allerdings von uns auch hier fest eingebaut wurde (das könnte man evtl. über das Setzen eines hidden Inputs in der View auch an die Abarbeitung im JS-Hook übergeben).
Vielleicht hilft das ja zumindest als Übergangslösung.
Viele Grüße,
Daniel Fuchs