Ergebnis 1 bis 17 von 17

Thema: If mit InsertTags

  1. #1
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Frage If mit InsertTags

    Hallo zusammen,

    ich habe eine kleine Frage, ist es möglich eine if-Abfrage mit Inserttags zu erstellen?

    Beispiel:

    Es gibt mehrere Seiten von verschiedenen URL´s, diese haben mittels Inserttag einen Artikel eingebunden. Dieser Artikel hat ein Bild, das für jede Seite einen Individuellen Link hat, dieser Link wird auch mittels Inserttag eingebunden.

    Problem:

    Auf den Seiten soll nur das Bild angezeigt werden, wenn auch in der Datenbank ein Link hinterlegt ist:

    if (linkda){
    <a href="{{inserttag}}".....><img ...></a>
    }



    Ich könnte auch das komplett verlinkte Bild als Inserttag setzen, das kann ich aber nicht, da es ca 500! Einträge sind, die man dann im schlimmsten Fall ändern müsste, wenn sich etwas am Inhalt ändert.

  2. #2
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Wieso machst du sowas nicht direkt über's Template, das scheint mir einfacher?

  3. #3
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Standard

    Zitat Zitat von pju Beitrag anzeigen
    Wieso machst du sowas nicht direkt über's Template, das scheint mir einfacher?
    Das Modul für die InsertTags soll für alles mögliche an individuellen Sachen dienen, somit wäre es einfacher die Einschränkungen direkt im Artikel zu haben, statt x-Möglichkeiten im Template zu berücksichtigen. Es kann ja auch sein, das der Link noch im Text benutzt wird, oder sonst wo.

  4. #4
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Moin,

    also ein Inserttag wie "{{iflng}}" zu bauen ist meines Wissen nach nicht möglich. "{{iflng}}" geht nur, weil der im Core direkt ersetzt wird und das passende Ende bzw. Else aus der Liste der Tokens gelöscht wird.

    Ich werd aus deinem Beispiel nicht ganz schlau, wo diese If-Inserttag hin soll. bei "linkda" ?

    Gruß, Cliff

  5. #5
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Standard

    Zitat Zitat von cliffen Beitrag anzeigen
    Moin,

    also ein Inserttag wie "{{iflng}}" zu bauen ist meines Wissen nach nicht möglich. "{{iflng}}" geht nur, weil der im Core direkt ersetzt wird und das passende Ende bzw. Else aus der Liste der Tokens gelöscht wird.

    Ich werd aus deinem Beispiel nicht ganz schlau, wo diese If-Inserttag hin soll. bei "linkda" ?

    Gruß, Cliff
    etwa so würde ich es im Template machen:

    PHP-Code:
    if(!empty({{insert::tag}})){
       echo 
    '<a href="{{insert::tag}}".....><img ...></a>';

    "{{iflng}}" kenn ich auch, dachte es auch andere Inserttags dafür, die nicht in der Doku stehen, aber gut wenn es so nichts gibt, dann muss ich mir was anderes einfallen lassen.

  6. #6
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Zitat Zitat von Armour Beitrag anzeigen
    Das Modul für die InsertTags soll für alles mögliche an individuellen Sachen dienen …
    Hm, welches Modul jetzt? Ich bin zunehmend verwirrt, was die Struktur angeht, die du dir vorstellst.

    Also nochmal von vorn, wo sitzt was?
    So wie ich es jetzt verstehe:

    n Seiten, auf denen Artikel X per Insert-Tag eingebunden ist
    Im Artikel X ein Bild, das ggf auf eine andere Seite verlinkt?
    Der Link ist per Insert-Tag im Artikel X verlinkt? Was genau wird verlinkt?

    Und wie genau ist dann die Bedingung "linkda"? Du schreibst
    Auf den Seiten soll nur das Bild angezeigt werden, wenn auch in der Datenbank ein Link hinterlegt ist
    Welche Datenbank (bzw welche Tabelle)? Wie ist der Link da hinterlegt?

  7. #7
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Standard

    Zitat Zitat von pju Beitrag anzeigen
    Hm, welches Modul jetzt? Ich bin zunehmend verwirrt, was die Struktur angeht, die du dir vorstellst.

    Also nochmal von vorn, wo sitzt was?
    So wie ich es jetzt verstehe:

    n Seiten, auf denen Artikel X per Insert-Tag eingebunden ist
    Im Artikel X ein Bild, das ggf auf eine andere Seite verlinkt?
    Der Link ist per Insert-Tag im Artikel X verlinkt? Was genau wird verlinkt?

    Und wie genau ist dann die Bedingung "linkda"? Du schreibst

    Welche Datenbank (bzw welche Tabelle)? Wie ist der Link da hinterlegt?
    Ok, hab mich wohl nicht korrekt ausgedrückt.

    Es gibt ein Modul (Backend), das für jeden Kunden verschiedene Inhalte in die Datenbank speichert, jeder Kunde hat einen eigenen Seitenbaum mit "globalen" Inhalten, die mittels Inserttag auf jeder Kundenseite Integriert sind. Nun sollen individuelle Inhalte in den "globalen" Inhalten, wie jetzt das verlinkte Bild. Der Aufbau des verlinkten Bildes unterscheidet sich nur anhand des "href". Das ist soweit ja kein Problem, nur gibt es auch Kunden, die dieses verlinkte Bild nicht haben dürfen, deshalb soll die Ausgabe nur erfolgen wenn auch ein Link in der Datenbank hinterlegt ist. Es kann auch sein, das sich etwas an der Art der Darstellung ändert, dann würde ich lieber die Änderung einmal machen statt bei allen Kunden. Ebenso soll der hinterlegte Link auch anderweitig verwendet werden, also flexibel sein.

    Ich hoffe das es jetzt etwas verständlicher ist.

    Nachtrag: Ich will auch gar nicht soweit ausholen mit Kunden usw., da das ganze ziemlich komplex ist und unnötig irreführend, es geht nur darum Inhaltselementen an Bedingungen zu knüpfen.
    Geändert von Armour (25.05.2016 um 13:29 Uhr)

  8. #8
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.944

    Standard

    Wenn ich Deine Aufgabenstellung richtig verstanden habe, würde ich in den "globalen Inhalten" ein (von Dir noch zu implementierendes) Inhaltselement verwenden, das das Bild einbindet und dabei abhängig vom angemeldeten User (Kunden) die Rechte individuell prüft -- im Zweifelsfall das Bild also dann nicht ausgibt.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  9. #9
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Wenn ich Deine Aufgabenstellung richtig verstanden habe, würde ich in den "globalen Inhalten" ein (von Dir noch zu implementierendes) Inhaltselement verwenden, das das Bild einbindet und dabei abhängig vom angemeldeten User (Kunden) die Rechte individuell prüft -- im Zweifelsfall das Bild also dann nicht ausgibt.
    Es ist da niemand angemeldet, die "globalen Inhalte" werden vom Administrator im Backend gepflegt und sind vom Kunden nicht editierbar. Die Ausgabe erfolgt im Frontend und ist für jeden Sichtbar, aber es soll halt nur sichtbar sein, wenn dieser Link in der Datenbank steht.

  10. #10
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Ich glaube, jetzt verstehe ich so langsam.
    Das Problem ist, dass dieser Link nicht nur beim Bild auftaucht, sondern per Insert-Tag an allen möglichen Stellen (falls er in deinem Modul vorhanden ist)?

    Da du schon ein eigenes Modul hast – mach doch einfach ein eigenes Insert-Tag dafür, das scheint mir die sauberste Variante?
    https://docs.contao.org/books/cookbo...nserttags.html

  11. #11
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Standard

    Zitat Zitat von pju Beitrag anzeigen
    Ich glaube, jetzt verstehe ich so langsam.
    Das Problem ist, dass dieser Link nicht nur beim Bild auftaucht, sondern per Insert-Tag an allen möglichen Stellen (falls er in deinem Modul vorhanden ist)?

    Da du schon ein eigenes Modul hast – mach doch einfach ein eigenes Insert-Tag dafür, das scheint mir die sauberste Variante?
    https://docs.contao.org/books/cookbo...nserttags.html
    Ich habe ja bereits ein eigenes Inserttag, das dafür verwendet wird, es soll jedoch so flexibel sein, das dort nur die URL ausgegeben wird. In dem Beispiel wird die URL in einem Bildlink verwendet, der selbe Inserttag soll aber auch für Textlinks usw. verwendet werden, deshalb kann ich nicht den ganzen Bildlink verwenden, zumal auch bei Änderungen der Aufwand bei ca 500 Einträgen zu groß wäre

  12. #12
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Ja, das kapier ich schon.
    Aber du kannst es ja so ähnlich wie beim normalen Link-Insert-Tag machen oder nicht?
    PHP-Code:
    {{custom_link_open}}Click here{{custom_link_close}}
    {{
    custom_link_open}}<img src="irgendwas.jpg">{{custom_link_close}} 
    custom_link_open gibt dann nur etwas aus, wenn in der Datenbank ein Link hinterlegt ist …

    /Edit:
    Wie, du hast ein eigenes Insert-Tag? Wie sieht das aus? Code? Wo ist dann das Problem?

  13. #13
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Standard

    Zitat Zitat von pju Beitrag anzeigen
    Ja, das kapier ich schon.
    Aber du kannst es ja so ähnlich wie beim normalen Link-Insert-Tag machen oder nicht?
    PHP-Code:
    {{custom_link_open}}Click here{{custom_link_close}}
    {{
    custom_link_open}}<img src="irgendwas.jpg">{{custom_link_close}} 
    custom_link_open gibt dann nur etwas aus, wenn in der Datenbank ein Link hinterlegt ist …

    /Edit:
    Wie, du hast ein eigenes Insert-Tag? Wie sieht das aus? Code? Wo ist dann das Problem?

    Der eigene Inserttag ist genau nach Anleitung aus dem Link den du geschrieben hast, nur etwas erweitert um Abzufragen welchem Kunden die Seite gehört.
    Hier mal ein Beispiel warum es so leider nicht geht:

    PHP-Code:
    In der DB steht z.B.: 'https://community.contao.org' ({{customerinserttag::speziellerlink}})
    Ausgabe kann sein:
    <
    a href="{{customerinserttag::speziellerlink}}".....><img ...></a>
    <
    a href="{{customerinserttag::speziellerlink}}".....>Forum</a>
    <
    class="irgendwas" href="{{customerinserttag::speziellerlink}}".....>Irgendwas</a
    Ich müsste dann ja für jede gewünschte Möglichkeit einen Anfang haben und das bei ca 500 Kunden, das ist nicht machbar. Diese dann bei Änderungen zu Pflegen ist zu viel aufwand, deshalb gibt der Insertag nur die URL zurück, egal was damit gemacht werden soll.
    Anhand der "globalen" Inhalte müsste ich nur dieses eine Element ändern. Aber das funktioniert ja auch soweit, Problem ist nur, das bei "globalen" Inhalten jeder den HTML-Code bekommt, auch wenn kein Link aus dem Insertag kommt, deshalb war meine Frage ob es möglich ist eine z.B. If-Abfrage mit Inserttags zu erstellen, die dann nur bei erfüllter Bedingung den rest ausgibt:

    So in etwa:
    PHP-Code:
    if({{customerinserttag::speziellerlink}}){
       <
    a href="{{customerinserttag::speziellerlink}}".....><img ...></a>

    Ist dann kein Link hinterlegt wird auch nicht der HTML-Code ausgegeben, das wäre optimal. Gefunden habe ich eine Javascript-Variante, allerdings kann ich den Leuten die die Inhalte einpflegen ja nicht sagen, Ihr müsst noch das und das mit einbauen.

    Code:
    <script>
    	var speziellerlink= '{{customerinserttag::speziellerlink}}';
    	if (speziellerlink) {
                  //Ausgabe: <a href="{{customerinserttag::speziellerlink}}".....><img ...></a>
    	}
    </script>
    Geändert von Armour (25.05.2016 um 14:26 Uhr)

  14. #14
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Okay, also wenn es den Link nicht gibt, wird auch kein Bild/Text ausgegeben?
    Dann geht es so natürlich nicht, aber das hast du ja so nicht gesagt.

    Mit einer anständigen Erklärung würden wir uns irgendwie einen Haufen Arbeit sparen.
    Mir scheint das Problem, dass dein ganzes Konstrukt irgendwie sehr wacklig ist. Solange ich nicht verstehe, wer wo wie was einpflegt und ändert und was genau in der Datenbank liegt, kann ich dir glaube ich nicht helfen.

    Nur als Beispiel:

    In der DB steht z.B.: 'https://community.contao.org' ({{customerinserttag::speziellerlink}})
    Was steht jetzt in der DB? Der ganze String so? Oder nur die URL? Wie funktioniert dein customerinserttag?

  15. #15
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ohne jetzt zu verstehen, was das alles soll, kannst du ein IF auf ein Inserttag nur so machen:
    PHP-Code:
    <?php

    if($this->replaceInsertTag('{{customerinserttag::speziellerlink}}'))
    {
      echo 
    '<a href="{{customerinserttag::speziellerlink}}".....><img ...></a>';
    }

    ?>
    Solche komplexen Zusammenhänge mit wenn hier, dann aber da, aber nur wenn weil... Solltest du nicht versuchen in Fließtext zu packen sondern auch versuchen etwas schematisch darzustellen.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  16. #16
    Contao-Nutzer
    Registriert seit
    24.01.2015.
    Ort
    Tönisvorst
    Beiträge
    31

    Standard

    Hi, ich wollte nur wissen ob es möglich ist oder nicht. Was für ein Geflecht dahinter steckt, oder wer was wann und wo einpflegt spielt dabei doch gar keine Rolle, ebenso die Berechtigungen.

    If-Abfragen in Inhaltselementen ist nicht möglich, mehr wollte ich gar nicht wissen.

    Danke für die mühen, auch das Ihr durchgeblickt habt durch meine Formulierungen, ist leider nicht immer so einfach das im Kopf in Schriftform wieder zu geben

  17. #17
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.944

    Standard

    Zitat Zitat von Armour Beitrag anzeigen
    Was für ein Geflecht dahinter steckt, oder wer was wann und wo einpflegt spielt dabei doch gar keine Rolle, ebenso die Berechtigungen.

    If-Abfragen in Inhaltselementen ist nicht möglich, mehr wollte ich gar nicht wissen.
    Dann wäre es vielleicht auch hilfreich gewesen, nur genau das zu fragen. Zumindest ich habe mich in der Fülle Deiner Informationen verirrt und (bis jetzt) noch nicht verstanden, was Du erreichen willst. Wichtig ist m.E. immer "was will ich erreichen" und nicht "was funktioniert an dem von mir dafür beschrittenen Weg nicht" -- vielleicht ist der Weg ja schon nicht optimal oder gar falsch.

    just my 2ct.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

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
  •