Ergebnis 1 bis 15 von 15

Thema: Inhaltselement anhand einer Checkbox auf der Detailseite einblenden

  1. #1
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard Inhaltselement anhand einer Checkbox auf der Detailseite einblenden

    Hallo zusammen,

    ich würde gerne ein Inhaltselement (Warnhinweis) auf der jeweiligen Detailseite einblenden, wenn der Redakteur im Backend den Haken in einer Checkbox setzt, das dieser erscheinen soll.

    Im Catalog habe ich das im Template gelöst, die Checkbox abgefragt und dann das Inhaltselement per Inserttag eingesetzt. Wie könnte ich das mit MM umsetzen?
    Viele Grüße
    Shania

  2. #2
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Mach dir fyr die checkbox ein Template, weise dieses in der Rendereinstellung der checkbox zu.

    Darin nun checken ob die checkbox aktiv ist, wenn ja, dann gib deinen Kasten aus, wenn nein, dann gib nichts aus.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  3. #3
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    O.k. ... hmm, noch habe ich null Idee, was ich da tun muss, obwohl es ja einfach klingt, aber ich werde mal grasen gehen ... Danke!
    Viele Grüße
    Shania

  4. #4
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    Also, ich habe mir das Template nun angesehen. In diesem Fall wäre es ja ein spezielles Template für ein einzelnes Feld eines MetaModels, daher würde ich gerne das einzelne Feld ansprechen. Wie finde ich heraus, wie ich das ansprechen muss? Im Catalog gab es dazu ja eine immer wiederkehrende Logik. Das ist hier sicher nicht anders, aber ich finde dazu nichts und komme deshalb nicht weiter. Wäre schön, wenn ihr mir helfen könntet.
    Viele Grüße
    Shania

  5. #5
    Contao-Fan
    Registriert seit
    16.05.2014.
    Beiträge
    295

    Standard

    Die Frage wäre auch welches Template benutzt du denn allgemein?
    Ich baue die meist sowieso selbst auf, dann geht das auch ohne spezielles Checkbox template.

    Im normalen Template hat man alle (ensprechend hinzugefügten Attribute) z.B. im metamodel_prerendered.html5 nach der
    PHP-Code:
    <?php foreach ($this->data as $arrItem): ?>
    über $arrItem zur verfügung. Also kann man sich davon ne Kopie erstellen und umbennen und auf eine Checkbox bspw. und vereinfacht so reagieren:

    PHP-Code:
    <?php if ($arrItem['text']['checkbox_attribute_name'] == '1'): ?>
    <span class="warning">Warnung!</span>
    <?php endif; ?>
    edit: http://metamodels.readthedocs.io/de/...templates.html
    Geändert von Znrl (03.02.2017 um 16:56 Uhr)

  6. #6
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    So, ich habe mich nun ausgiebig mit den Templates beschäftigt und habe nun einen ganz guten Stand erreicht . Vielen Dank für deine Hilfe @Znrl .

    Ich konnte nun die alten Catalog Templates bis auf ein paar Dinge anpassen und übernehmen. Leider funktioniert aber die Abfrage nicht so wie gewünscht.

    Frage ich die Checkbox ab und schreibe den Text ins template, so wie in dem Beispiel vorgesehen, dann steht der Text da. Bisher hatte ich dafür aber das Inserttag

    {{insert_content::*}}

    genutzt. Muss ich irgendeine Einstellung treffen, damit das geht oder kann man in MM die normalen Contao Inserttags schlicht und ergreifend nicht nutzen? Bisher habe ich ja immer nur mehr Möglichkeiten und komplexere Einstellungen entdeckt als weniger, daher mag ich nicht so recht glauben, dass das nicht mehr geht .
    Viele Grüße
    Shania

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Leider funktioniert aber die Abfrage nicht so wie gewünscht.
    => heute wieder "Glaskugel-Tag"?


    die Inserttags funktionieren auch in den MM-Templates... - Du kannst die Sache auch etwas abkürzen und direkt das machen, was beim Inserttag passieren würde https://github.com/contao/core/blob/...tTags.php#L441

  8. #8
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    => heute wieder "Glaskugel-Tag"?
    Derzeit steht das im Template für die Detailseite:

    Code:
    <?php if ($arrItem['raw']['warnung_1']=='1'): ?>
    <?php echo 'Dies ist eine Warnung!'; ?>
    <?php endif; ?>
    Die Warnung wird im Frontend auf der Detailseite ausgegeben. Versuche ich es aber so:


    Code:
    <?php if ($arrItem['raw']['warnung_1']=='1'): ?>
    {{insert_content::2542}}
    <?php endif; ?>
    erscheint nichts mehr.

    Ich spreche im Template jedes Feld einzeln an. Der Inhalt von warnung_1 ist also auch vorhanden, nur wird das Inserttag so nicht ausgegeben.
    Viele Grüße
    Shania

  9. #9
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    wird Dein "{{insert_content::2542}}" ausgegeben, wenn es nicht in dem IF verpackt ist?

    ansonsten vlllt

    PHP-Code:
    <?php if ($arrItem['raw']['warnung_1']=='1'): ?>
    <?= $this
    ->replaceInsertTags($this->getContentElement('2542')) ?>
    <?php 
    endif; ?>

  10. #10
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    Nein, das Inserttag wird auch alleinstehend nicht ausgegeben und es liegt auch nicht daran, dass es im Frontend als "unsichtbar" eingestellt ist.

    Deine andere Variante funktioniert leider auch nicht .

    Ich weiß jetzt auch nicht was ich posten könnte, damit man mir besser helfen kann. Das ganze Template? Eigentlich funktioniert die Liste soweit ja und das template auch. Ich hänge es dennoch mal ganz an:

    PHP-Code:
    <?php
    echo "<!-- DEBUG START \n";
    echo 
    "<pre>\n";
    print_r($this->items->parseAll($this->getFormat(), $this->view));
    echo 
    "</pre>\n";
    echo 
    "\n DEBUG ENDE -->";
    ?>

    <?php $strRendersettings = isset($this->settings)? 'settings' 'view'?>
    <?php 
    if (count($this->data)): ?>

    <?php 
    echo "<!-- \n";
    print_r($this->items->parseAll($this->getFormat(), $this->view)); 
    echo 
    "\n -->";
    ?>    
    <?php foreach ($this->data as $arrItem): ?>
    <div class="item <?php echo $arrItem['class']; ?>">

    <h2><?php echo 'Rezept: '?><?php echo $arrItem['text']['titel']; ?><?php echo ' - von '?><?php echo $arrItem['text']['rezept_von']; ?></h2>

    <?php if ($arrItem['raw']['warnung_1']=='1'): ?>
    <?= $this
    ->replaceInsertTags($this->getContentElement('2792')) ?> 
    <?php endif; ?>

    <div class="rechts">
    <div class="ueberschrift3"><img src=" ./files/design/i_word.png " border="0" alt="Zutaten" title="Zutaten" /><?php echo $arrItem['text']['zutaten']; ?></div>
    <div class="listen"><?php echo $arrItem['text']['zutaten']; ?></div>
    </div>

    <div class="main">

    <div class="zubereitung"><?php echo $arrItem['text']['zubereitung']; ?></div>

    {{insert_content::2542}}
    {{insert_content::2792}}

    </div>
    <?php endforeach; ?>
    </div>
    <?php else: ?>
    <p class="info"><?php echo $this->noItemsMsg?></p>
    <?php endif; ?>
    Da ist jetzt noch der Versuch von zonky drin und auch der die Inserttags direkt anzuzeigen.
    Viele Grüße
    Shania

  11. #11
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    wird den der Inserttag in normalem Inhaltselement Text ausgegeben? ggf. Zahlendreher?

  12. #12
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    Er wird ausgegeben, wenn ich das Auge auf grün schalte. Und jetzt auch im Template *hä*? Ich hatte genau das ja schon vorher ausprobiert, komisch.

    O.k., dann ist das des Rätsels Lösung. Ich hoffe, ich kann es anzeigen, wenn ich die Inhaltselemente in einen neuen Artikel oder eine Seite verschiebe, die nicht veröffentlicht ist oder auch nur nicht im Menü erreichbar ist. Das wäre am einfachsten für mich.

    Meine Güte, was für eine schwere Geburt, aber wieder ein Schrittchen weiter .

    Danke dir, zonky!
    Viele Grüße
    Shania

  13. #13
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    Also, es klappt, wenn man einen neuen Artikel in der Seite anlegt, der nicht veröffentlicht wird und die Inhaltselemente da rein geschoben werden und die dann veröffentlicht sind. So wird draußen auch sicher nichts unerwünschtes angezeigt und man hat es schön geordnet.
    Viele Grüße
    Shania

  14. #14
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Shania Beitrag anzeigen
    Also, es klappt, wenn man einen neuen Artikel in der Seite anlegt, der nicht veröffentlicht wird und die Inhaltselemente da rein geschoben werden und die dann veröffentlicht sind. So wird draußen auch sicher nichts unerwünschtes angezeigt und man hat es schön geordnet.
    ... was auch immer Du da machst... die Fragen hier sollten sich primär um MM drehen

  15. #15
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    563

    Standard

    Wo würde es deiner Meinung besser hinpassen, wenn ich ein Inhaltselement von Contao in einem Catalogtemplate anzeigen will?

    Aber wie auch immer, wenns nicht gewünscht ist sowas für andere Dummies wie mich aufzuschreiben, dann lasse ich es zukünftig. Spart mir auch Zeit.
    Viele Grüße
    Shania

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •