Ja, oke, dann lass ich das zukünftig auch so wie jetzt verwendet. Das funktionuckelt ja prima. Danke!
Ankündigung
Einklappen
Keine Ankündigung bisher.
CustomElements und CustomCatalog Template-Variablen
Einklappen
Das ist ein wichtiges Thema.
X
X
-
Hi,
ich bin ziemlich verzweifelt. Ich hoffe man kann mir helfen.
Mein Problem:
ich möchte den kompletten HTML Block nur ausgeben lassen, wenn die 'exterior_list' einen wirklich gesetzten Wert hat. Die exterior_list ist wie gesagt ein Listen-Element, welches aber nie wirklich leer ist. Obwohl im BE keine Werte eingetragen sind, wird der HTML Block dennoch ausgegeben. Der var_dump gibt auch aus, das die Liste nicht leer ist.
Auf empty prüfen funktioniert also nicht, In PHP bin ich auch noch nicht besonders bewandert.
Mein Code:
<?php if($this->field('exterior_list')->value() ): ?>
<div class="specification__item exterior">
<div class="specification-wrapper">
<div class="specification__list">
<?= $this->field('exterior_list')->html() ?>
</div>
<div class="specification__textarea">
<?= $this->field('exterior_textarea')->html() ?>
</div>
</div>
</div>
<?php endif; ?>
Ich habe es auch schon in der äußeren If Abfrage wie folgt versuct:
$ojbCClist = unserialize($this->field('exterior_list')->value());
if(is_array('exterior_list') && !empty('exterior_list')):
Aber ich komme einfach nicht weiter. Es funktioniert seid Wochen nichts...
Kommentar
-
Man prüfe auf Inhalt des deserialisierten Blob und packt am besten noch ein array_filter herum, damit quasi alles "leere" direkt rausfliegt
Code:$arrList = array_filter( deserialize( $this->field('exterior_list')->value() ?: array() ) ); <?php if( !empty($arrList) ): ?>
Kommentar
-
Hallo Tim
Bei mir funktionoiert FilesModel nicht mehr. Mit meinem Code wird kein Link gesetzt beim PDF. Es ist komisch, es hat früher funktioniert. Kannst du mir sagen, woran das liegen könnte?
<div class="item-link-dateianhang">
<a href="<?php echo \FilesModel::findByPk($this->field('dateianhang')->value())->path; ?>">
<i class="fa fa-file-o"></i> PDF
</a>
</div>
<?php endif; ?>
Kommentar
-
Zitat von janineiten Beitrag anzeigenHallo Tim
Bei mir funktionoiert FilesModel nicht mehr. Mit meinem Code wird kein Link gesetzt beim PDF. Es ist komisch, es hat früher funktioniert. Kannst du mir sagen, woran das liegen könnte?
<div class="item-link-dateianhang">
<a href="<?php echo \FilesModel::findByPk($this->field('dateianhang')->value())->path; ?>">
<i class="fa fa-file-o"></i> PDF
</a>
</div>
<?php endif; ?>
Kommentar
-
Hallo Tim
Ich dachte, es könnte allenfalls am Contao Manger liegen und habe ein Composer-Update durchgeführt. Nun lässt sich das Install-Tool nicht mehr aufrufen: Service Unavailable. The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Auf /contao erscheint nun der gleiche Fehler.
Contao-manager 1.5.2
Contao: 4.9
PHP info: https://www.texbau.ch/phpinfo.php
Log:
[2022-04-05 15:45:31] request.INFO: Matched route "contao_backend". {"route":"contao_backend","route_parameters":{" _ro ute":"contao_backend","_scope":"backend","_token_ c heck":true,"_controller":"Contao\\CoreBundle\\Cont roller\\BackendController::mainAction"},"request_u ri":"https://www.texbau.ch/contao","method":"GET"} []
[2022-04-05 15:45:31] request.CRITICAL: Uncaught PHP Exception Symfony\Component\ErrorHandler\Error\OutOfMemoryEr ror: "Error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 70203656980 bytes)" at /data/home/w120/www.texbau.ch/vendor/twig/twig/src/Extension/EscaperExtension.php line 209 {"exception":"[object] (Symfony\\Component\\ErrorHandler\\Error\\OutOfMem oryError(code: 0): Error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 70203656980 bytes) at /data/home/w120/www.texbau.ch/vendor/twig/twig/src/Extension/EscaperExtension.php:209)"} []
Offensichtlich ist die Memory Size Obergrenze bereits erreicht (4 GB).
Hast du das Problem schon einmal gehabt? Was kann ich tun?
Kommentar
-
Der Manager hat diesbezüglich keinen Einfluss. Aber 4GB memory_limit sollte dicke ausreichen. Läuft der Manager inzwischen wieder. Manchmal hängt der in seiner "cloud" und verprasst Ressourcen. Aber später geht es dann wieder. Leider haben wir keinen wirklichen Zugriff auf den Manager. Wir sind hier quasi auch nur reine Anwender.
Kommentar
-
Zitat von Tim Beitrag anzeigen
Habe es unter Contao 4.9 getestet und das passt.
PS: Der obere Serverfehler hat sich behoben. Es war wirklich der Server, der irgendwie ein DOWN hatte :S
Danke für deine Hilfe!
4 Bilder
Kommentar
-
Wie erfolgt die Ausgabe im Template? Innerhalb einer CC Liste kann das Feld nicht via $this->field angesprochen werden, sondern muss in der $this->entries Schleife der Einträge ausgegeben werden. (siehe Listen Templates).
$this-> klappt nur im Leser, weil es nur einen Eintrag gibt.
Liste via $entry Schleife
Code:<a href="<?php echo \FilesModel::findByPk($entry->field('dateianhang')->value())->path; ?>">
Zuletzt geändert von Tim; 07.04.2022, 08:08.
Kommentar
-
Hallo Tim. Was meinst du mit "Wie erfolgt die Ausgabe im Template"?
Hier nochmals der Code:
<?php if($entry->field('dateianhang')->value()): ?>
<div class="item-link-dateianhang">
<a href="<?php echo \FilesModel::findByPk($this->field('dateianhang')->value())->path; ?>">
<i class="fa fa-file-o"></i> PDF
</a>
</div>
<?php endif; ?>
Kommentar
-
Zitat von janineiten Beitrag anzeigenHallo Tim. Was meinst du mit "Wie erfolgt die Ausgabe im Template"?
Hier nochmals der Code:
<?php if($entry->field('dateianhang')->value()): ?>
<div class="item-link-dateianhang">
<a href="<?php echo \FilesModel::findByPk($this->field('dateianhang')->value())->path; ?>">
<i class="fa fa-file-o"></i> PDF
</a>
</div>
<?php endif; ?>
In den Liste-Templates muss die Ausgabe innerhalb der Schleife für die Einträge gesetzt werden.
<a href="<?php echo \FilesModel::findByPk($entry->field('dateianhang')->value())->path; ?>">
Kommentar
Kommentar