[Katalog] 2 Kataloge verknüpfen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • jeanfredo
    Contao-Nutzer
    • 23.11.2009
    • 28

    #1

    [Katalog] 2 Kataloge verknüpfen

    Moin,
    ich nutze TL 2.7.5 mit den neuesten Catalog und CatalogExt Modulen und habe folgendes Problem:

    Ich habe 2 Kataloge:
    - Katalog Mitarbeiter
    - Katalog Studentische Arbeiten mit einem Auswahlfeld "Betreuer", das auf obigen Katalog verweist

    Ich möchte nun in der Detailansicht eines Mitarbeiters sämtliche betreuten studentischen Arbeiten mit auflisten.

    Mein Ansatz:
    Ein Artikel mit zwei Modulen, Detailansicht Mitarbeiter und Listenansicht studentische Arbeiten.

    Im Template catalog_mitarbeiter-detail habe ich
    Code:
    $mitarbeiter=$entry['data']['name']['value'];
    gesetzt.

    Im Template catalog_mitarbeiter-studienarbeitsliste soll jetzt bei jedem Element vorher abgefragt werden, ob es dargestellt werden soll:
    Code:
    <?php if (($entry['data']['betreuer']['value'])==($mitarbeiter)): ?>
    <?php echo $entry['data']['titel']['value']; ?><?php echo $entry['link']; ?>
    <?php endif; ?>
    Das Problem ist nun, dass die Variable $mitarbeiter zwischen den beiden Modulen "vergessen" wird. Hat jemand eine Idee wie ich das lösen kann?
    Zuletzt geändert von jeanfredo; 23.11.2009, 11:50.
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Hallo jeanfredo,
    ich weiß gar nicht ob das was du vor hast so gehen könnte... da Variablen ja nur immer im Modul selber vorhanden sind und nicht Modulübergreifend.

    Warum nicht so:
    Bei Mitarbeiter machst du eine neues Feld 'tags' welches du mit dem 2. Katalog verknüpfst. Schon kannst du Auswählen welche studentischen Arbeiten die betreuen (auch Mehrfachauswahl) und die kannst du dann im Frontend darstellen.

    So hab ich das zumindest mit Autoren und Ihren Werken gemacht und es funktioniert an sich ohne Probleme.

    Viele Grüße

    PS: beim nächsten mal bitte im richtigen Forums Bereich (catalog)
    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

    • jeanfredo
      Contao-Nutzer
      • 23.11.2009
      • 28

      #3
      Moin, danke erstmal für deine Hilfe. Habe das mit den Tags jetzt mal probiert. Funktioniert soweit ganz gut, dass die Titel der jeweils ausgewählten Arbeiten mit angezeigt werden...

      Gibt es jetzt noch eine Möglichkeit das irgendwie direkt zu verlinken? Die Möglichkeit sehe ich gerade nicht. Kann entweder nur Titel oder nur ID anzeigen lassen... (mit der ID kann ich nen Link basteln, aber dann weiß man ja net auf was fürn Titel man gerade klickt)...

      Besten Gruß und danke für die Hilfe

      Kommentar

      • MacKP
        Contao-Yoda
        • 15.06.2009
        • 13315

        #4
        Hallo jeanfredo,
        ich versteh gerade dein Problem nicht... mit der ID kannst du nen link bauen sagst du.. und mit dem titel könntest du nen Link bauen der so heißt wie der Titel?

        Wenn du genaueres willst, dann gibt uns mehr Infos (zum Beispiel die Ausgabe welche Variablen vorhanden sind).

        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

        • jeanfredo
          Contao-Nutzer
          • 23.11.2009
          • 28

          #5
          Es gibt 1 Katalog Mitarbeiter mit ein paar Feldern. U.a. ein Feld "Tags".

          "Tags" verweist auf Katalog "Studienarbeiten" und zwar:

          Tabelle für Optionen -> "studienarbeiten"
          Spalte für Tabellenwert -> "titel"
          Anzeigen der Sortierspalte -> "titel"

          Im Template steht:
          Code:
          <?php if ($entry['data']['studienarbeiten']['value']): ?><div class="studienarbeiten"><span class="cat_label">Betreute studentische Arbeiten:</span><div class="value"><?php echo $entry['data']['studienarbeiten']['value']; ?><?php echo $entry['data']['studienarbeiten']['value']; ?></div></div><?php endif; ?>
          Das gibt mir einfach alle zugewiesenen Titel aus.

          Wenn ich für "Spalte für Tabellenwert" -> "id" setze, kann ich im Template über z.B.
          Code:
          <a href="http:/127.0.0.1/index.php/detailansicht.34/items/<?php echo $entry['data']['studienarbeiten']['value']; ?>.html">Link</a>
          Links erstellen.

          Was ich mir jedoch wünsche, ist der Titel, der auf eben genau dieses Item Verlinkt, im Prinzip also:
          Code:
          <a href="Link_zur_Studienarbeit_1">Titel_der_Studienarbeit_1</a>
          <a href="Link_zur_Studienarbeit_2">Titel_der_Studienarbeit_2</a>
          <a href="Link_zur_Studienarbeit_3">Titel_der_Studienarbeit_3</a>
          usw.
          Mache ich irgendwo einen Denkfehler?
          Zuletzt geändert von jeanfredo; 27.11.2009, 14:28.

          Kommentar

          • MacKP
            Contao-Yoda
            • 15.06.2009
            • 13315

            #6
            Hallo jeanfredo,
            ich bin mir 100% sicher das man es machen kann ^^
            Mal schauen ob ich das bei den wenigen Infos bei dir gerade blicke...

            Du musst im Grunde das hier (ist ja ein Array mit allen Daten) nur noch mal durchlaufen und einzeln ausgeben lassen):
            PHP-Code:
            <?php echo $entry['data']['studienarbeiten']['value']; ?>
            Und da an der Stelle kannst du dann auch nen Link bauen.

            Ansonsten müsstest du dir einfach noch mal anschauen was du hiermit ausgegeben bekommst->
            PHP-Code:
            <?php print_r($this->entries); ?>
            Da sollte mehr gehen glaub ich...
            Ansonsten brauche ich mal genau diese Ausgabe von dir um weiter helfen zu können....


            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

            • jeanfredo
              Contao-Nutzer
              • 23.11.2009
              • 28

              #7
              Moin Moin,
              war ne Weile krank, daher jetzt erst die Rückmeldung. Danke für den Tipp mit print_r, das hat mich schonmal weitergebracht.

              Code:
              [betreuer] => 15 [ausschreibung] => [studienarbeit] => 1 [diplomarbeit] => 1 [beginn] => sofort oder später [bachelorarbeit] => 1 [masterarbeit] => 1 [parentJumpTo] => 34 [parentLink] => Details anzeigen  [parentUrl] => index.php/detailansicht.34/items/19.html ) [3] => Array ( [id] => 14 [pid] => 7 [sorting] => 1024 [tstamp] => 1253811178 [titel] => ...
              Code:
              [betreuer] => 15 [ausschreibung] => [studienarbeit] => 1 [diplomarbeit] => 1 [beginn] => sofort oder später [bachelorarbeit] => [masterarbeit] => [parentJumpTo] => 34 [parentLink] => Details anzeigen  [parentUrl] => index.php/detailansicht.34/items/14.html ) [5] => Array ( [id] => 13 [pid] => 7 [sorting] => 1152 [tstamp] => 1253811073 [titel] => ...
              etc. sind die entsprechenden Ausschnitte der Ausgabe von:

              Code:
              <?php print_r($this->entries); ?>
              Ich müsste demnach eine extra Ausgabe für das Array machen, z.B. in der Art?
              Code:
              <?php if (count($this->entries)): ?>
              <?php foreach ($this->entries as $entry): ?>
              
              <?php echo $entry['data']['name']['value']; ?>
              <?php echo $entry['data']['funktion']['value']; ?>
              
              ... usw.
              
              <?php if (count($this->entries)): ?>
              <?php foreach ($this->entries as $entry): ?>
              <a href="<?php echo $entry['data']['parentUrl']['value']; ?><?php echo $entry['data'][titel]['value']; ?></a>
              <?php endforeach; ?>
              <?php endif; ?>
              
              ...
              
              <?php endforeach; ?>
              </div>
              
              <?php else: ?>
              <p class="info">Invalid item reference for catalog.</p>
              <?php endif; ?>
              Ich vermute ich muss die Schleife noch anders formulieren, dass er nur durch die Elemente des zweiten Katalogs geht?

              Danke!

              Besten Gruß, der Frédo

              Kommentar

              • MacKP
                Contao-Yoda
                • 15.06.2009
                • 13315

                #8
                Hallo jeanfredo,
                hier mal ein Beispiel:

                Code:
                <?php foreach ($data['ref'] as $id=>$ref): ?>
                		
                		<div class="row_<?php echo $id; ?> buch <?php if($ref['bilder_buch']) echo "buch_mitbild";?>">
                ....
                
                <?php endforeach; ?>
                Das hab ich als Schleife in einem Eintrag von Autor... damit bekomme ich die Inhalte von den Büchern dargestellt.
                Ist natürlich nur ein kleiner Auszug ;-)

                Hoffe das hilft.

                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

                • jeanfredo
                  Contao-Nutzer
                  • 23.11.2009
                  • 28

                  #9
                  Es hat endlich funktioniert! Mit freundlicher Hilfe von MacKP

                  Code:
                  <?php foreach ($entry['data']['studienarbeiten']['ref'] as $studienarbeiten): ?>
                  <a href="<?php echo $studienarbeiten['parentUrl']; ?>"><?php echo $studienarbeiten['titel']; ?></a>
                  <?php endforeach; ?>

                  Kommentar

                  • MacKP
                    Contao-Yoda
                    • 15.06.2009
                    • 13315

                    #10
                    Der wiederrum freundliche Hilfe von lindesbs und mariussl hatte

                    Wunderbare sache.

                    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

                    Lädt...