Ergebnis 1 bis 6 von 6

Thema: Insert-tag {{news_teaser::ID}} in PHP in String umwandeln

  1. #1
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    109

    Standard Insert-tag {{news_teaser::ID}} in PHP in String umwandeln

    Hallo zusammen,

    ich versuche gerade in einem Template einen Teasertext, den ich von einem Insert-Tag bekomme mit PHP zu kürzen. Allerdings scheitert es momentan daran, dass in meiner Variable bei der Übergabe wohl nur der Insert-Tag ist und erst später der Insert-Tag von Contao umgewandelt wird.

    Also versuche ich den Insert-Tag schon in php in einen String umzuwandeln.

    ChatGPT hat das hier vorgeschlagen:
    PHP-Code:
    use Contao\InsertTags;

                    
    $insertTag '{{news_teaser::' $teaser->news_id '}}';
                    
    $teaserRaw InsertTags::replace($insertTag); 
    Das klappt so gar nicht. Früher habe ich replaceInserttags verwendet. Das geht in modernen Contao-Versionen aber nicht mehr.

    Hat irgendjemand eine moderne Alternative? Disclaimer: Meine PHP-Kenntnisse sind sehr basic.

    Vielen Dank!
    Markus

  2. #2
    Alter Contao-Hase
    Registriert seit
    24.02.2021.
    Beiträge
    1.489
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Markus1982 Beitrag anzeigen
    Hallo zusammen,

    ich versuche gerade in einem Template einen Teasertext, den ich von einem Insert-Tag bekomme mit PHP zu kürzen. Allerdings scheitert es momentan daran, dass in meiner Variable bei der Übergabe wohl nur der Insert-Tag ist und erst später der Insert-Tag von Contao umgewandelt wird.

    Also versuche ich den Insert-Tag schon in php in einen String umzuwandeln.

    ChatGPT hat das hier vorgeschlagen:
    PHP-Code:
    use Contao\InsertTags;

                    
    $insertTag '{{news_teaser::' $teaser->news_id '}}';
                    
    $teaserRaw InsertTags::replace($insertTag); 
    Das klappt so gar nicht. Früher habe ich replaceInserttags verwendet. Das geht in modernen Contao-Versionen aber nicht mehr.

    Hat irgendjemand eine moderne Alternative? Disclaimer: Meine PHP-Kenntnisse sind sehr basic.

    Vielen Dank!
    Markus
    Injecte dir den insertTagParser und nutze die replaceInline Methode:
    https://docs.contao.org/dev/referenc...nserttagparser

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Was genau ist denn dein Ziel?
    » sponsor me via GitHub or Revolut

  4. #4
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    109

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Was genau ist denn dein Ziel?
    Guten Morgen,

    ich möchte ein Teaserelement (mit Rocksolid Custom Elements) bauen, mit welchem ich beliebige ausgewählte Newsbeiträge teasern kann. An unterschiedlichen Stellen/Seiten sollen unterschiedliche Beiträge geteasert werden. Die Funktion für hervorgehobene Newsbeiträge funktioniert also leider nicht.

    Ich bin soweit gekommen, einen Auswahlpicker für den Newsbeitrag zu haben. Der liefert mir die ID des Beitrags zurück. Damit kann ich mit ein paar der News-relevanten Insert-Tags schon mal den Link, Titel und Teasertext bekommen (auch wenn das über Insert-tags unsauber ist, besser habe ich es nicht hinbekommen). Woran ich jetzt scheitere ist, mit PHP den Teaser automatisch zu kürzen, weil PHP an der Stelle nur das Insert-tag sieht und nicht den enthaltenen Text.

    Falls Du einen Hinweis hast, wie ich mit der News-ID in einem Rocksolid-Custom Element template mehr infos direkt aus der Datenbank ziehen kann, ohne den Umweg über insert-tags, wäre das super :-)

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    PHP-Code:
    $teaser Contao\StringUtil::substr(Contao\NewsModel::findById($newsId)?->teaser ?? ''320); 
    » sponsor me via GitHub or Revolut

  6. #6
    Contao-Nutzer
    Registriert seit
    23.05.2012.
    Beiträge
    109

    Daumen hoch

    Wow, danke Spooky. Funktioniert perfekt!

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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