Ankündigung
Einklappen
Keine Ankündigung bisher.
CustomElements und CustomCatalog Template-Variablen
Einklappen
Das ist ein wichtiges Thema.
X
X
-
Leere Daten sind doch auch prüfbar. Wenn ->value() ein leeres Array enthält (ggf. vorher deserialisieren), ist das mit z.B. empty() prüfbar.
- 1 Likes
-
Wenn ich jetzt eine Tabelle für ein Feld gewählt habe,
Einen Kommentar schreiben:
-
Moin,
ich hab das Template für die CE Ausgabe etwas angepasst und lasse mir mit echo $this->field('foo')->html(); die Felder ausgeben. mit if(!empty($this->field('foo')->value())) lass ich die Templateblöcke nur ausgaben, wenn etwas da ist.
Wenn ich jetzt eine Tabelle für ein Feld gewählt habe, funktioniert die empty-Abfrage aber nicht, da er trotzdem leere Daten enthält. Kann ich das irgenwie umgehen, also das er auch mir nicht die Blöcke anzeigt, wenn auch die Tabelle leer ist?
Viele Grüße
Markus
Einen Kommentar schreiben:
-
Hallo Tim,
ich habe den CC auf die Version 2.19.0 gebracht (contao 3.5.35) und dann festgestellt, dass die manuellen links - welche ich in meinem subtemplate mit dem alias Feld erzeuge - nicht mehr korrekt erstellt werden.
Andere Felder, wie zB. Namen und Profilbild kann ich über das Objekt der FrontendTemplateKlasse auslesen, wie im oberen Listing gezeigt.
Wenn es nun eine bessere Methode zur Link-Erstellung im Template gibt, wie in der ModuleReader Klasse, ist das sehr fein.
Bitte sei hier noch etwas expliziter, wie ich das einsetzen kann. Meine Kenntnisse reichen hier leider nicht aus, um mein Problem mit der von dir gegebenen Info zu lösen.
Danke im voraus!
Einen Kommentar schreiben:
-
Welches Update hast du denn eingespielt? Alle Felder geben Werte ausser die Abfrage auf "alias"?
Nutze besser die gegebenen Methoden von CC für die Url Erstellung. Siehe die ModuleReader Klasse.
$objCC->findPublishedEntryByIdOrAlias( ID-DES-EINTRAGS )
$this ist kein von dir erstelltes Objekt in diesem Scope, sondern ein Objekt der FrontendTemplate Klasse. Das ist ein großer Unterschied. Du befindest dich in einem Template Objekt.
Einen Kommentar schreiben:
-
Ich habe hier eine Liste, die auf einer Leserseite als Modul eingebunden ist.
Orientiert habe ich mich hier an: https://forum.premium-contao-themes....=1298#post1298
Das $this bezieht sich also auf ein Objekt, welches ich erstellt habe.
Zur Klärung hier der Code:
Auf der Leser Seite kommt eine Liste:
PHP-Code:<?php foreach($this->entries as $entry):?>
<?php
$obj_cc_person = \PCT\CustomElements\Plugins\CustomCatalog\Core\CustomCatalogFactory::findByTableName('cc_personen');
$obj_cc_person->setLayoutTemplate('cc_projektdetail_liste_personen_ausgabe');
$objSimpleFilter = new \PCT\CustomElements\Filters\SimpleFilter();
$options = array
(
'value' => $entry->person,
'operation' => 'IN',
'column' => 'id',
);
$objSimpleFilter->setOptions($options);
$obj_cc_person->addFilter($objSimpleFilter);
echo "<li>";
echo $obj_cc_person->render();
echo "</li>";
<?php endforeach; ?>
PHP-Code:<span class="person-name">
<a href="{{env::path}}personendetail/<?php echo($this->field('alias')->value)?>.html">
<?php
if ($this->field('vorname')->value){
echo $this->field('vorname')->value." ";
}
if ($this->field('nachname')->value){
echo $this->field('nachname')->value;
}
?>
</a>
</span>
Alle Felder liefern Werte zurück, nur "$this->field('alias')->value" nicht (mehr).
Mit dem alias baue ich mir einen Link zur Personendetailseite.
Bis zum update hat das Problemlos geklappt, wo könnte hier ein Fehler liegen?Zuletzt geändert von substance; 19.07.2018, 11:53.
Einen Kommentar schreiben:
-
$this kann in einem CC Template nur im Leser genutzt werden um einen korrekten, aktuellen Wert zu erfragen. CC Listen sind eine foreach Schleife, die je Element durchlaufen wird.
Einen Kommentar schreiben:
-
Hallo Tim,
Problem mit Zugriff aufPHP-Code:$this->field('alias')->value()
nach einem Update auf CC 2.19.0 hat in meinem Projekt die manuelle Verlinkung in mehreren Templates nicht mehr funktioniert.
Ich konnte das Problem soweit einkreisen, als dass im Template die ZeilePHP-Code:<?php echo($this->field('alias')->value) ?>
ÜberPHP-Code:{{customcatalog::cc_projekte::<?php echo $this->field('id')->value(); ?>::alias::value}}
Frage:- Das Alias Feld wird in der Konfiguration zum Erstellen der Urls verwendet. Wenn das so definiert wird, kommt neuerdings im Template ein leerer Wert zurück.
- Deaktiviert man das Alias Feld in der Konfiguration, kommt man wieder an den Wert im Template heran, aber die Urls werden in anderen Listen auf numerische IDs zurückgesetzt.
- Vor dem Update hat es keine Probleme verursacht, warum jetzt auf einmal kein Wert mehr im "alias" Feld?
Zuletzt geändert von substance; 18.07.2018, 19:32.
Einen Kommentar schreiben:
-
Wie müsste der Inserttag {{customcatalog::cc_mycatalog::autoitem::titel}} als Template-Variable aussehen?
<?php echo $this->replaceInsertTags( '{{customcatalog::cc_mycatalog::autoitem::titel}}' ); ?> tut's in dem Falle auch.Zuletzt geändert von mapfei; 11.07.2018, 16:33.
- 1 Likes
Einen Kommentar schreiben:
-
Hallo Tim,
ich hatte gehofft, dass nicht nur ein einziges Feld eines Datensatzes in der Fremdtabelle abgeholt wird. Deshalb der Post hier in den Variablen.
Die Idee, die Daten mit einem DB-Select ins Template zu holen, fand ich nicht besonders elegant, aber wenn das im Moment der einzige Weg ist, kann/ muss ich damit leben.
Danke für Deine Unterstützung.
Einen Kommentar schreiben:
-
Das Thema hat nichts mit den Variablen ansich zu tun. Die Datensätze der Querverlinkten Referenzen müssen über manuelle Datenbank-Abfragen ins Template geholt werden.
Bitte suche hier im Forum wie man referenzierte Einträge ausgibt oder auch Eltern-Kind Beziehungen.
Zuletzt geändert von Tim; 23.03.2018, 10:29.
Einen Kommentar schreiben:
-
Hallo,
ich habe mehrere CCs erstellt und teilweise mittels "Auswahl-Datenbank (einfach, Select/Radio)" Attribut verknüpft. Wie kann ich nun die einzelnen Felder eines eingebundenen Objekts ausgeben. z.B. in der HotelsApart Demo sollen bei den Packages noch einzelne Felder eines Zimmers ausgegeben werden. Alle vorhandenen CCs sind mehrsprachig.
Wenn ich also bei der Erstellung des Feldes schon etwas berücksichtigen muss, bitte ebenfalls kurz erläutern.
Danke vorab für eure Hilfe!Zuletzt geändert von wortberge; 22.03.2018, 11:27.
Einen Kommentar schreiben:
-
Zitat von Sukrams Beitrag anzeigenDa kann ich nur einen titel hinterlegen und eine Bildunterschrift, das ist ja meine ich ein Unterschied, was in der Beschreibung dann erscheint
Einen Kommentar schreiben:
-
Da kann ich nur einen titel hinterlegen und eine Bildunterschrift, das ist ja meine ich ein Unterschied, was in der Beschreibung dann erscheint
Einen Kommentar schreiben:
Einen Kommentar schreiben: