Ergebnis 1 bis 9 von 9

Thema: Auf Daten von Verlinkung zugreifen

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.861
    Contao-Projekt unterstützen

    Support Contao

    Standard Auf Daten von Verlinkung zugreifen

    Hallo,

    ich habe ein RSCE mit 'inputType' => 'url'.
    Habe ich nun die Möglichkeit anhand dieses links auch auf andere Daten dieses links zuzugreifen?

    Konkret: ich verlinke über die Auswahl eine Nachricht und möchte damit auch den dazugehörigen Nachrichten-Titel (nicht den alias) mit ausgeben. ... und falls es möglich ist, auch das Teaser-Bild dieser verlinkten Nachricht.

    Geht das?
    Grüsse
    Bernhard


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

    Standard

    Ist jetzt nur aus dem FF programmiert und nicht getestet:
    PHP-Code:
    <?php

    use Contao\PageModel;

    if (
    preg_match('/^{{link_url::([\d]+)/'$this->url$matches)) {
        
    $page PageModel::findById((int) $matches[1]);
    }
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.861
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Schon mal ein Dankschön.

    mein Template sieht aktuell so aus:
    PHP-Code:
    <?php

        $css 
    = [
            
    $this->class,
            
    'related-wrapper',
            
    'mt-5',
            
    'mb-3',
            
    'block'
        
    ];
        
        use 
    Contao\PageModel;
      
    ?>

    <div class="<?php echo implode(' '$css?>"<?php echo $this->cssID ?>>
        <?php if ($this->headline): ?>
        <h4 class="col-12 mb-3"><?= $this->headline ?></h4>
        <?php endif ?>
        <div class="container">
            <div class="row">

                <?php foreach ($this->links as $link): ?>
                <?php $relatedimage $this->getImageObject($link->image); ?>
                <?php
                    
    if (preg_match('/^{{link_url::([\d]+}})/'$link->url$matches)) {
                        
    $page PageModel::findById((int) $matches[1]);
                    }; 
                
    ?>

                <div class="related col-12 col-md-6">
                    
                        <div class="related-inner">
                            <a href="<?= $link->url ?>" title="<?= $link->headline ?>">
                            <div class="image-wrapper co l-3">
                                <?php if ($relatedimage $this->getImageObject($link->image$link->size)): ?>
                                <?php $this->insert('picture_default'$relatedimage->picture); ?>
                                <?php endif ?>
                            </div>
                            <div class="label-wrapper ">
                                <p><?= $link->headline ?></p>
                            </div>
                            </a>
                        </div>
                    
                </div>
                <?php endforeach ?>

            </div>
        </div>
    </div>

    <?php //dump($matches) ?>
    angepasst habe ich:
    ... $link->url, $matches)) - $link anstatt $this, da in einer foreach-Schleife
    ... ('/^{{link_url:[\d]+}})/' - hier bin ich davon ausgegangen, dass die öffnenden geschweiften Klammern auf einen Inserttag hinweisen und darum fehlten die '}}'. Ich hoffe, ich habe diese korrekt gesetzt.

    dump($matches)
    bringt dann doch nur ein leeres array: ^[]
    Wenn ich's richtig interpretiere, sollten in diesem array die möglichen Variablen aus der ausgewählten Seite stehen, oder?

    Wo muss angepasst werden?
    Grüsse
    Bernhard


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

    Standard

    Zitat Zitat von derRenner Beitrag anzeigen
    ... $link->url, $matches)) - $link anstatt $this, da in einer foreach-Schleife
    ... ('/^{{link_url:[\d]+}})/' - hier bin ich davon ausgegangen, dass die öffnenden geschweiften Klammern auf einen Inserttag hinweisen und darum fehlten die '}}'. Ich hoffe, ich habe diese korrekt gesetzt.
    Das fehlt absichtlich. Mit deiner Änderung kann nun bspw. {{link_url::12|absolute}} nicht mehr gematched werden.
    » sponsor me via GitHub or PayPal or Revolut

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

    Standard

    Zitat Zitat von derRenner Beitrag anzeigen
    dump($matches) bringt dann doch nur ein leeres array: ^[]
    Das musst du wenn dann innerhalb der Condition ausführen, nicht außerhalb.
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.861
    Contao-Projekt unterstützen

    Support Contao

    Standard

    mmmh ... nein, das ist mir 'ne Stufe zu hoch ... keine Ahnung, wie ich nun an die Daten komme.
    Ich breche hier mal ab und werde das bei Gelegenheit als "Kleinauftrag" ausschreiben.

    Danke nochmals für die Hilfestellung!
    Grüsse
    Bernhard


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

    Standard

    Die Daten sind dann in $page drin. Was genau möchtest du eigentlich machen?

    // edit: achso, du verlinkst auf Nachrichten. Dann wäre es:

    PHP-Code:
     <?php

    use Contao\NewsModel;

    if (
    preg_match('/^{{news_url::([\d]+)/'$this->url$matches)) {
        
    $news NewsModel::findById((int) $matches[1]);
    }
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.861
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Was genau möchtest du eigentlich machen?
    Konkret: ich verlinke über die Auswahl eine Nachricht und möchte damit auch den dazugehörigen Nachrichten-Titel (nicht den alias) mit ausgeben.
    sprich, ich möchte auf die Variablen (hier mal auf $this->headline) des verlinkten news-Beitrages zugreifen.

    Beispiel ist hier (ganz nach unten scrollen) zu finden.
    Diese Boxen habe ich mit RSCE umgesetzt, simpel gehalten - eine Verlinkung auswählen, dann noch ein Bild hinzufügen und den Text manuell reinschreiben. Und diesen Text, so meinen Überlegung, könnte von gleich direkt aus der verlinkten Neuigkeit (News Überschrift) heraus verwenden.
    Grüsse
    Bernhard


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

    Standard

    Genau, der Picker sollte ja einen {{news_url::*}} Insert Tag daraus machen, korrekt? Und den kannst du parsen und damit dann die Nachrichten holen.
    » sponsor me via GitHub or PayPal or Revolut

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
  •