Hallo,
wie kommt man denn an diese Daten ran bzw verarbeitet die im Twig? einen Filter für deserialize scheint es in Contao bzw RSCE nicht zu geben?
Wenn das noch Zukunftsmusik ist belasse ich es vorerst bei den html5 Templates.
Hallo,
wie kommt man denn an diese Daten ran bzw verarbeitet die im Twig? einen Filter für deserialize scheint es in Contao bzw RSCE nicht zu geben?
Wenn das noch Zukunftsmusik ist belasse ich es vorerst bei den html5 Templates.
Liebe Grüße
WebRoxx
Einen json_decode Filter gibt es nicht von Haus aus in Twig. "Zukunftsmusik" ist das auch nicht, wenn es niemand in der Zukunft implementiert . Wenn du das brauchst, wirst du es dir selbst in deiner App hinzufügen müssen.
Aber: warum genau brauchst du das überhaupt?
Naja das Value für RSCE sieht ja scheinbar so aus
Oder steh ich grad voll auf dem Schlauch weil es noch kein Mittag gabHTML-Code:"rsce_data" => "{"projects":[{"title":"..."....
EDIT: hab grad gesehen das es für "projects" ja auch ne extra variable gibt.... ergo doch der Hunger schuld, oh man
Liebe Grüße
WebRoxx
Eine Sache klemmt trotzdem
wenn ich
einfüge kommt folgender FehlerCode:{% import "@ContaoCore/Image/Studio/_macros.html.twig" as studio %} {{- studio.figure(data.image) -}}
und wie bekomme ich die Größe übermittelt die liegt ja wirklich nur in diesem Format vorImpossible to access an attribute ("linkHref") on a string variable ("b87b4f65-85ad-11eb-880f-1c1b0d437b94").
Code:"size" => "a:3:{i:0;s:0:"";i:1;s:0:"";i:2;s:1:"6";}"
Liebe Grüße
WebRoxx
Ich hoffe, meine Frage passt hier rein, da ich versuche, eine Bildergallerie in Twig auszugeben und auf dem Schlauch stehe, wie ich nun die multiSRC aufgelöst bekomme.
Bisher habe ich das so umgesetzt
RSCE-Config
TemplateCode:'multiSRC' => array ( 'label' => array('Bilder und Ordner', ''), 'inputType' => 'standardField', 'eval' => array ( 'isGallery' => true, 'multiple' => true, 'fieldType' => 'checkbox', 'orderField' => 'orderSRC', 'files' => true, 'extensions' => \Config::get('validImageTypes'), 'tl_class' => 'clr', 'mandatory' => true ) ),
Code:<?php $dataSorted = Contao\StringUtil::deserialize($this->multiSRC); ?> <div class='ce_gallery __galleryContainer content-gallery'> <ul> <?php foreach($dataSorted as $data): ?> <li> <figure> <?php if($image = $this->getImageObject($data, array('','', 1))): ?> <?php $this->insert('picture_default', $image->picture); ?> <?php endif; ?> </figure> </li> <?php endforeach; ?> </ul> </div>
Das musst du nicht selbst deserialisieren, unabhängig davon ob du Twig nutzt oder nicht. Siehe https://community.contao.org/de/show...l=1#post582040
Du meinst, wie man im Twig bspw. eine for-Schleife umsetzt..? Die Dokumentation zu Twig kennst du schon? https://twig.symfony.com/doc/
Ja, kenn ich, ist im ein wichtigstes Werkzeug gerade
So hatte ich es versucht, gibt aber nichts aus, auch keinen Fehler.
Code:{% use "@Contao/component/_figure.html.twig" %} <ul> {% for data in multiSRC %} <li> {% set galFigure = figure(data, 52, { enableLightbox: true, lightboxGroupIdentifier: 'galleryImages', }) %} {% with {figure: galFigure} %}{{ block('figure_component') }}{% endwith %} </li> {% endfor %} </ul>
mit dump hatte ich es bereits versucht den Aufbau zu verstehen, scheitere aber auch jetzt wieder
Dump-Ausgabe vor der Schleife
Code:{{ dump(multiSRC) }} oder {{ dump(data.multiSRC) }} // erzeugt die gleiche Ausgabe, obwohl data noch gar nicht existiert erzeugt: b" a:33:{i:0;s:16:"¬5WÓÁ3 \x11 ¯® \x04 ¨· \x1E # \x02 Ä";i:1;s:16:"¬5A8Á3 ......
Dump-Ausgabe innerhalb der Schleife
irgendwas verstehe ich etwas falsch oder habe einen Denkfehler,sorryCode:<ul> {% for data in multiSRC %} <li> // li tags werden nicht erzeugt {{ dump(data) }} Ausgabe->nichts </li> {% endfor %} </ul>
Oder du schreibst dir deine eigene Twig-Funktion
Usage:PHP-Code:
<?php
// src/Twig/AppExtension.php
namespace App\Twig;
use Contao\StringUtil;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
class AppExtension extends AbstractExtension
{
public function getFunctions(): array
{
return [
new TwigFunction('deserialize', [$this, 'deserialize'])
];
}
public function deserialize(string $value): array
{
return StringUtil::deserialize($value, true);
}
}
PHP-Code:
{% set foo = deserialize(data.bar) %}
Jetzt blick ich gar nicht mehr durch: Zuerst meinte Spooky, dass ich die daten nicht mehr deserialisieren muss, was ich so verstanden habe, dass ich die Daten der multiSRC direkt in einer For-Schleife ausgegeben bekomme. Zoglo schreibt, man kann das mit Hilfe einer eigenen Funktion lösen, die aber wieder zu deserialisieren scheint. Ich will nur wissen, was ich machen muss, damit der Code-Schnipsel vereinfacht ausgedrückt irgendwie funktioniert.
Code:{% for dataImage in multiSRC %} {{ contao_figure(dataImage, 55) }} {% endfor %}
ich habe für mich eine sehr einfache Lösung gefunden, RSCE Gallerien in Twig Umzusetzen, vielleicht hilft es ja jemand: {{ content_element('gallery', ....) }}
RSCE-Config
RSCE-TwigCode:'multiSRC' => array ( 'label' => array('Bilder und Ordner', ''), 'inputType' => 'standardField', 'eval' => array ( 'isGallery' => true, 'multiple' => true, 'fieldType' => 'checkbox', 'orderField' => 'orderSRC', 'files' => true, 'extensions' => 'jpg,jpeg,png', 'tl_class' => 'clr', 'mandatory' => true ) ),
Im Twig Template wird automatisch ein Wrapper mit den entsprechenden Klassen erzeugt inkl. der Liste. Weitere Optionen, die anscheinend möglich sind habe ich bisher noch nicht gefunden. Vielleicht hilft es ja jemand.Code:{% set imageSizeId = 8 %} {% set lightBox = true %} {% set columnSize = 4 %} {{ content_element('gallery', { multiSRC: data.multiSRC, size: imageSizeId, sortBy: '', perRow: columnSize, limit: 36, fullsize: lightBox, }) }}
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)