parentUrl von referenziertem Katalog entspricht immer dem Hauptkatalog

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Jogibär
    Contao-Nutzer
    • 13.12.2009
    • 137

    #1

    parentUrl von referenziertem Katalog entspricht immer dem Hauptkatalog

    Hallo zusammen,

    ich versuche gerade mit dem Catalog-Modul und der Katalog-Liste eine Abfrage mit zwei referenzierten Tabellen zu machen.
    Die funktioniert auch grundsätzlich (Danke an das Wiki, das hat schon etwas Licht ins Dunkle gebracht).

    Neben den Feldern des Hauptkataloges (Törns) werden hier die Felder der referenzierten Tabelle (Yachten) ausgegeben:
    PHP-Code:
         <?php foreach ($entry['data']['yacht_ref']['ref'] as $ref): ?> 
                <img src="<?php echo $ref['photo']; ?>" />
                <p><?php echo $ref['parentUrl']; ?></p>  
        <?php endforeach; ?>
    Was ich aber nicht verstehe ist, dass im Feld 'parentLink', das ja aus der Schiffs-Tabelle gelesen wird, immer der Detail-Link der Törn-Tabelle zu finden ist.
    Ich habe eine Detailseite mit einem Katalog-Leser angelegt und auch als Verknüpfung des Schiffs-Katalogs hinterlegt.

    Wie könnte ich aber nun einen Link zu dem referenzierten Schiff setzen, wenn das Feld in der Schiffs-Tabelle mir den falschen Link gibt? [GELÖST]

    Freue mich über jeden Hinweis!
    Zuletzt geändert von Jogibär; 20.05.2012, 14:20.
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Hallo Jogibär,
    kannst du uns mehr Infos zu den Verknüpfungen die du gemacht hast geben? Ich versteh den Aufbau noch nicht so ganz...
    Was aber immer gehen sollte: Den Link per Hand generieren.. du brauchst dazu ja nur die URL zur Detailseite und den Alias (oder ID). Damit kann man sich den Link zusammenbauen, wenns gar nicht anders klappt.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

    Kommentar

    • Jogibär
      Contao-Nutzer
      • 13.12.2009
      • 137

      #3
      Moin Mack,

      Mein Aufbau ist folgender
      3 Kataloge: Törns, Yachten, Reviere

      Jeder Katalog wird als Liste präsentiert und besitzt eine untergliederte Detailseite, auf der ich ein "Katalog Reader"-Modul habe.

      Der Katalog Törns besitzt jeweils eine Referenz auf Yachten und Reviere (als Auswahl-Feld).
      Der Zugriff darauf funktioniert ja auch bereits (wie oben im Code-Ausschnitt).

      Wenn nun die Törns ausgegeben werden, wäre es natürlich klasse, direkt auch einen Link auf das verwendete Schiff und das befahrene Revier anzugeben.
      Und genau hier scheitere ich bei der Auslesung von "parentUrl" des jeweiligen Kataloges; es wird immer nur der Detaillink des jeweiligen Törns angezeigt, zu der das Schiff gehört.

      Ich habe darauf geachtet, dass jeder Katalog durch "Sprung zu Seite" auf die richtige Detailseite verweist wird. Den Cache habe ich auch zur Sicherheit bereinigt.

      Bei Auslesung von "parentUrl" des Reviers passiert übrigens genau das gleiche. Ich verstehe einfach nicht, warum diese beiden Kataloge überhaupt etwas vom Törn-Katalog und seinem Link zur Detailseite wissen könnten -- sie werden ja nur im Törn-Katalog referenziert und nicht umgekehrt.

      Hier mal die Ausgabe des Array des Yacht-Kataloges:

      PHP-Code:
      Yacht-Ref: Array
      (
          [0] => Array
              (
                  [id] => 2
                  [pid] => 1
                  [sorting] => 64
                  [tstamp] => 1337420411
                  [name] => Schiff 1
                  [description] => Beschreibung
                  [photo] => tl_files/saltvo.jpg
                  [model] => 
                  [length] => 
                  [width] => 
                  [parentJumpTo] => 7
                  [parentLink] => Die Details des Eintrags ansehen
                  [parentUrl] => index.php/toerns-details/items/2.html
              ) 
      
      Ganz unten sieht man, dass der Inhalt von "parentUrl" des Yacht-Kataloges die Detailseite des Törn-Kataloges beinhaltet.

      Zur Not würde ich natürlich selbst was zusammenbasteln, aber ich würde halt gerne verstehen warum dieses Verhalten auftritt.

      Kommentar

      • MacKP
        Contao-Yoda
        • 15.06.2009
        • 13315

        #4
        Hallo Jogibär,
        dann hab ich glaube ich nur noch eine Frage: wo lässt du das ausgeben bzw. wo wird der falsche Link erzeugt? Auf der Seite mit der Liste oder mit den Details der Törns?

        Viele Grüße
        Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
        [Arbeitet bei -> Paus Design & Medien]
        "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

        Kommentar

        • Jogibär
          Contao-Nutzer
          • 13.12.2009
          • 137

          #5
          Hi MacKP,

          danke erstmal, dass du dich für das Problem interessierst!

          Die Ausgabe erfolgt auf der Seite der Liste (also der Törns).
          Es scheint so, als dass auch "ParentUrl" der referenzierten Tabelle die ParentUrl des jeweiligen Törns verwendet.


          Eine andere Frage bezgl. Zugriff:
          Wie wäre es eigentlich möglich, ohne eine Schleife im Array direkt die Variable des anderen Kataloges anzusprechen?

          Ich habe folgendes probiert (und andere Kombinationen):
          PHP-Code:
          <p>Wert:<?php echo $entry['data']['yacht_ref']['ref']['data']['name']['value'] ?></p>
          Anstatt dieser Schleife:
          PHP-Code:
           <?php foreach ($entry['data']['yacht_ref']['ref'] as $ref): ?> 
              <p><?php echo $ref['name']; ?></p>           
           <?php endforeach; ?>
          habe ich dieses versucht:
          PHP-Code:
          <?php $ref = $entry['data']['yacht_ref']['ref'] ?>
          <p>Name: <?php echo $ref['name']; ?></p>
          Ich ging davon aus, dass ich so auch auf das Element 'Name' zugreifen kann.
          Zuletzt geändert von Jogibär; 20.05.2012, 14:19.

          Kommentar

          • MacKP
            Contao-Yoda
            • 15.06.2009
            • 13315

            #6
            Hmm kann sein, das es in der Liste so nicht gehen wird, da die Weiterleitung dann von der Liste bestimmt wird... kannst ja mal beim Reader schauen ob es da besser passt (sollte auf jeden Fall, spätestens mit dem Catalog-Referenz Modul). So oder so bitte ein Ticket machen. Eventuell fällt den Proggern ja noch was schlaues dazu ein ;-)

            Viele Grüße
            Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
            [Arbeitet bei -> Paus Design & Medien]
            "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

            Kommentar

            • Jogibär
              Contao-Nutzer
              • 13.12.2009
              • 137

              #7
              Falls du mir noch zu meiner zuletzt hinzugefügten Problematik einen Tipp geben könntest, wäre das klasse.
              Ich blicke trotz Darlegung der Arrays im Catalog Wiki nicht durch und habe schon so viele Varianten probiert.

              Kommentar

              • MacKP
                Contao-Yoda
                • 15.06.2009
                • 13315

                #8
                Hallo Jogibär,
                du wirst da nur über ein foreach drann kommen an der Stelle, da dort ja mehrere Yachten drinn sein können (sonst bekommst du immer nur eine Ausgabe).
                Das sieht man hier an der Stelle:
                Code:
                Yacht-Ref: Array
                (
                    [0] => Array
                Die 0 ist die erste Stelle im Array wo dann die Inhalte von der 1. Yacht drinn sind.
                Da könntest du eventuell so drann kommen:
                Code:
                <p>Wert:<?php echo $entry['data']['yacht_ref']['0']['name']['value'] ?></p>
                So oder so solltest du dir anschauen wie du an Inhalte in Arrays drann kommst. Dann geht vieles einfacher ;-)

                Viele Grüße
                Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
                [Arbeitet bei -> Paus Design & Medien]
                "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

                Kommentar

                • Jogibär
                  Contao-Nutzer
                  • 13.12.2009
                  • 137

                  #9
                  Hallo MacKP,

                  danke für deine Idee mit dem Index, die hat mich letztendlich weitergebracht,
                  ich kann jetzt mit folgender Zeile das Array gezielt auslesen:
                  PHP-Code:
                  <?php $ref = $entry['data']['yacht_ref']['ref'][0] ?>
                  <p>Name: <?php echo $ref['name']; ?></p>

                  Kommentar

                  • Jogibär
                    Contao-Nutzer
                    • 13.12.2009
                    • 137

                    #10
                    Wollte noch kurz updaten, dass ich einfach die falsche Variable genutzt hatte.
                    Um also den Link zur Detailseite zu erhalten genügt

                    Code:
                     $entry['link'];
                    innerhalb der foreach-Schleife.

                    Oder man nutzt das Feld "[url]" wenn man einen eigenen Link zusammenbauen will.

                    EDIT:
                    Da war ich wohl zu voreilig, denn es ging ja um die Detailseite des referenzierten Kataloges.
                    Hier gilt ja [parentUrl], die die Detailseite dieses Kataloges enthalten soll.
                    Ich denke es wird deshalb nur die Detail-Seite des aktuellen Kataloges gezeigt, weil kein Zugriff auf das Modul des referenzierten Kataloges besteht, der ja dessen Detailseite kennt.

                    Deshalb habe ich den Link jetzt weiterhin über einen manuellen zusammengebauten Pfad erstellt.
                    Zuletzt geändert von Jogibär; 09.06.2012, 22:35.

                    Kommentar

                    Lädt...