Ergebnis 1 bis 15 von 15

Thema: Verwandte Einträge auflisten - List related Items

  1. #1
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard Verwandte Einträge auflisten - List related Items

    Hallo Zusammen,

    versuche seid einiger Zeit Auf einer Seite auf der das Module Katalog Eintrag (catolog reader) dargestellt wird zusätzlich verwandte Einträge aufzulisten.

    Ich habe dies über ein neues Neues Element auf der Seite versucht. Am ehesten schien mir das Module Catalog Reference dafür geeignet. Ich habe es mit folgenden Einstellungen probiert:


    Das funktionier allerdings nicht! Also es soll auf der Seite des Autors seine Publikationen gelistet werden. Wenn ich die Auswahl umkehre also als Katalog: Publications angebe und als Selected reference catalog Authors kommt immerhin die Ausgabe:
    Code:
    There are no entries matching your search.
    Liegt mein Problem evtl. daran das es sich bei dem Feld Author/Authors [authors:tags] um ein mehrfach Auswahl handelt? Und so keine Übereinstimmung gefunden werden kann?

    Also vll. hat ja jemand einen nützlichen Tipp für mich wie ich mit diesem Problem weiterkomme...

    Besten Gruß
    Valentin
    Angehängte Grafiken Angehängte Grafiken

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo wittich,
    ich bin noch am überlegen was du willst...
    Du schreibst ja, das du die Werke von einem Autor aufgelistet haben möchtest.
    Das ist allerdings nichts für Referenz Einträge, da ja keine Ähnlichkeit besteht in dem Fall, sondern die Werke was ganz anderes als die Autoren sind.

    Hier ist eine Anleitung wie du sowas machst was du möchtest:
    https://community.contao.org/de/showthread.php?t=5448

    Geht da zwar um Komponisten.. ist aber das selbe.

    Also: erst mal die Suche bemühen beim nächsten mal bitte ;-)

    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."

  3. #3
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard

    Hallo MacKP,

    den Eintrag von dir kenne ich bereits [ich habe auch gesucht ("verwandt" => 0), nur nicht gefunden, daher der Post]. Das Template ist auch bereits selbstgeschrieben...

    Das Problem ist, dass die Verknüpfung der Datenbanken nur anders herum besteht... soll heißen bei jeder neuen Publikation (oder Werk im Fall des Komponisten Beispiels) gebe ich den Autor an...

    Für das Module brauche ich also eine "variable" Bedingung... hast du eine Idee diese zu Formulieren?

    Gruß Valentin

    // EDIT
    Im Prinzip wurde hier bereits das gleiche Anliegen formuliert... nur das ich eben nicht für jede dazukommende Publikation/Werk wieder den Autoren editieren kann/möchte...
    Geändert von wittich (27.01.2010 um 13:48 Uhr) Grund: Update

  4. #4
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo wittich,
    und das ist eben so ca. genau das selbe wie beim anderen Beitrag ;-)

    Es ist also keine Modul Frage, sondern eher wie du das in deinem Template ausgeben kannst.

    Gib uns einfach mal mehr Infos zum Template und was du bekommst wenn du das array auslesen lässt. Dann können wir da vllt helfen ;-)

    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."

  5. #5
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard

    Hmmm, hast du meinen letzten Post nur überflogen? Egal hier die Struktur:
    Code:
    Authors
    Label: Surname, First Name
    Value: Feyer, Leo
    
    Publication
    Label: Title, Description, Authors
    Value: Das offizielle Typolight-handbuch, Der Leitfaden für Anwender Administratoren und Entwicklung, Feyer
    
    * die Verknüpfung der Tabellen
    Tabellen sind also nur eine Richtung verknüpft! D.h. im Template für die Publikationen habe ich kein Problem z.B. zusätzlich den Vornamen auszugeben. Jedoch im Authors- Template besteht diese Verknüpfung nicht!

    Kann ich die Abfrage der 2. Tabelle nur über eine Verknüpfung machen

    oder

    kann ich ein Modul mit variablen Abfragebedingungen generieren kann

    Ich habe bereits versucht einfach ein 2. Modul zu erzeugen und seine Ausgabe im Template zu filtern jedoch habe ich es nicht geschafft deine Variable vom 1. Modul (z.B. $surname) global zu speichern und für den Filter des 2. Moduls zu verwenden.

    Gruß Valentin

    PS: Brauchst du trotzdem die array() Struktur?

  6. #6
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard

    So hier die Array Struktur:

    PHP-Code:
    // cat_authors
    Array
    (
        [
    0] => Array
            (
                [
    id] => 5
                
    [catalog_name] => Authors
                
    [parentJumpTo] => 30
                
    [tablename] => cat_authors
                
    [showLink] => 1
                
    [class] =>  first last even
                
    [data] => Array
                    (
                        [
    surname] => Array
                            (
                                [
    label] => Surname
                                
    [type] => text
                                
    [raw] => Reimann
                                
    [value] => Reimann
                            
    )

                        [
    first_name] => Array
                            (
                                [
    label] => First name
                                
    [type] => text
                                
    [raw] => Marc
                                
    [value] => Marc 
                            
    )

                        [
    alias] => Array
                            (
                                [
    label] => Alias
                                
    [type] => alias
                                
    [raw] => reimann_marc
                                
    [value] => reimann_marc
                            
    )

                        [
    email] => Array
                            (
                                [
    label] => E-Mail
                                
    [type] => text
                                
    [raw] => spam@here.com
                                
    [value] => spam@here.com
                            
    )

                    )

            )

        [
    1] => Array
            ( 

                 
    // ...

            
    )


    und hier der Publications-Katalog der zusätzlich gelistet werden soll aber eben nur wenn der Eintrag auch vom Autor ist:
    PHP-Code:
    Array
    (
        [
    0] => Array
            (
                [
    id] => 1
                
    [catalog_name] => Publications
                
    [parentJumpTo] => 35
                
    [tablename] => cat_publications
                
    [showLink] => 
                [class] =>  
    even
                
    [link] => View the item details
                
    [url] => detail/items/critical-metals-for.html
                
    [data] => Array
                    (
               
                        [
    title] => Array
                            (
                                [
    label] => Title
                                
    [type] => text
                                
    [raw] => Critical metals for ...
                                [
    value] => Critical metals for ...
                            )

                        [
    date] => Array
                            (
                                [
    label] => Date
                                
    [type] => date
                                
    [raw] => 1240531200
                                
    [value] => 1240531200
                            
    )

                        [
    authors] => Array
                            (
                                [
    label] => Author/Authors
                                
    [type] => tags
                                
    [raw] => 1,2
                                
    [value] => ReimannWittich
                                
    [ref] => Array
                                    (
                                        [
    1] => Array
                                            (
                                                [
    id] => 1
                                                
    [pid] => 1
                                                
    [sorting] => 1024
                                                
    [tstamp] => 1264601119
                                                
    [first_name] => Marc
                                                
    [surname] => Reimann
                                                
    [parentJumpTo] => 30
                                                
    [parentLink] => View the item details
                                                
    [parentUrl] => detail/items/reimann_marc.html
                                            
    )

                                        [
    2] => Array
                                            (
                                                [
    id] => 1
                                                
    [pid] => 2
                                                
    [sorting] => 1152
                                                
    [tstamp] => 1264068559
                                                
    [first_name] => Valentin
                                                
    [surname] => Wittich
                                                
    [parentJumpTo] => 30
                                                
    [parentLink] => View the item details
                                                
    [parentUrl] => detail/items/wittich_valentin.html
                                            
    )

                                    )

                            )

                    )

            )


    Mein Ansatz war zwei Module auf einer Seite zu listen und beim ersten die Infos zum Autor zu listen und dabei eine globale Variable zu definieren (z.B. $_GLOBAL['surname']). Diese soll dann entweder an die Condition des Publications-Moduls weitergegeben werden oder im Template als Bedingung stehen z.B. so:
    PHP-Code:
    if (in_array ($_GLOBAL['surname'], $publication_entrie)):
    // wobei $publication_entrie = array ('Reimann', 'Wittich'); 
    Allerdings scheitere ich daran diese globale Variable im zweiten Modul zu nutzen... ich denke mal weil das phrasen des Templates zuvor geschieht.

    Hat irgend jemand eine Idee wie man das noch lösen kann?

    Gruß V.

  7. #7
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo wittich,
    entschuldige das ich mich jetzt erst wieder Melde...
    Ich hatte dich am Anfang etwas falsch verstanden.
    Eigentlich müsste dein Vorhaben so wie du es am Anfang versucht hattest funktionieren.
    Könntest du mir vllt mal nen Backend Zugang geben, damit ich mir das genauer anschauen kann?
    Eventuell kann ich da helfen...

    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."

  8. #8
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard

    Danke für die Antwort, besser spät als nie...

    Wird schwierig, die Seite ist momentan unter einer lokalen Domain erreichbar. Vll. kann ich am Montag den live Server aktivieren.

    Das Problem ist, dass die Variable im 2. Module nicht existiert. Ich habe dies mit
    PHP-Code:
    get_defined_vars() 
    im Template überprüft.

    Gruß V.
    Geändert von wittich (30.01.2010 um 12:25 Uhr) Grund: ...

  9. #9
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard

    HA, ich hab einen Weg gefunden wie es funktioniert:

    im Template des 1. Moduls:
    PHP-Code:
    session_start();
    $_SESSION['search'] = $entry['id']); // z.B. der ID des Autors 
    im Template des 2. Moduls:
    PHP-Code:
    if (isset($_SESSION['search'])) {
      
    // hier die Schleife mit der Variable $_SESSION['search']
      
    session_destroy();

    Ist zwar nicht sehr elegant die PHP Session dafür zu missbrauchen, aber anders habe ich es nicht hinbekommen...

    Gruß V.

  10. #10
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo wittich,
    schön das es bei dir jetzt funktioniert!

    Ich werd trotzdem mal schauen bei meiner nächsten installation warum es am Anfang mit den catalog Mitteln nicht geklappt hat.. normalerweise hätte das wie gesagt gehen müssen....

    Naja, so ist ja auch erst mal gut ^^

    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."

  11. #11
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von wittich Beitrag anzeigen
    HA, ich hab einen Weg gefunden wie es funktioniert:

    Ist zwar nicht sehr elegant die PHP Session dafür zu missbrauchen, aber anders habe ich es nicht hinbekommen...
    Gruß V.
    Damit kloppst du aber die komplette TYPOlight session weg. Bitte loese es anders.

    Im Template des 1. Moduls:
    PHP-Code:
    $GLOBALS['wittich_search'] = $entry['id']; // z.B. der ID des Autors 
    im Template des 2. Moduls:
    PHP-Code:
    if (isset($GLOBALS['wittich_search'])) {
      
    // hier die Schleife mit der Variable $GLOBALS['wittich_search']

    Sollte funktionieren.
    Anmerkung hierzu noch: Das Vorhaben funktioniert nur, wenn das zweite Modul nach dem ersten instanziert und gerendert wird.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  12. #12
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard

    Lustig, auf einmal funktioniert die globale Variable anstandslos... wodurch wird den die Reihenfolge des Renderns gesetzt? Vermutlich lag darin das Problem...

    Mit der TYPOlight Session hatte ich kein Problem, vermutlich aber nur so lange wie ich keine Userlogin integriert habe.

    Merci für den Support!

    Gruß Valentin

  13. #13
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von wittich Beitrag anzeigen
    wodurch wird den die Reihenfolge des Renderns gesetzt? Vermutlich lag darin das Problem...
    Die Reiehnfolge wird durch die "Reihenfolge" der Module in der Ausgabe festgelegt. Wie diese im Detail aussieht, haengt von deiner Installation ab.
    Im allgemeinen ist es jedoch so, wie die Sections im fr_page angegeben sind und darin dann "von oben nach unten".
    Ein Modul in #left wird beispielsweise vor einem Modul in #main generiert etc..

    Zitat Zitat von wittich Beitrag anzeigen
    Mit der TYPOlight Session hatte ich kein Problem, vermutlich aber nur so lange wie ich keine Userlogin integriert habe.
    Vermutlich, oder aber dein php hat die alte session wiederbelebt, oder oder oder.
    Auf Nummer sicher gehst du auf jeden Fall, indem du die Session nicht modifizierst (sparst dir vermutlich auf anderen Servern mit anderer Konfiguration Aerger).

    Zitat Zitat von wittich Beitrag anzeigen
    Merci für den Support!
    Kein Problem, dazu sind wir ja da.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  14. #14
    Contao-Nutzer
    Registriert seit
    14.01.2010.
    Beiträge
    48

    Standard Verwandte Einträge auflisten - List related Items - GELÖST

    Der Fehler war überigens das ich es zu Beginn mit $_GLOBALS statt mit $GLOBALS probiert hatte... immerhin hab ich noch den Fehler gefunden

    Um das ganze jetzt auch im Forum abzuschließen, ich hab es jetzt folgender maßen gelöst:

    Modul 1 (z.B. Autor Details):
    PHP-Code:
    unset($GLOBALS['search']);
    $GLOBALS['search'] = array ('authors' => $this->entries[0]['id']);
                               
    // Key => ID 
    Modul 2 (z.B. Publikationsliste):
    PHP-Code:
    if (count($this->entries)):
    $count 0// zählt gelistete Einträge
    foreach ($this->entries as $entry):  
       
    $filter false;  // es wird nichts gefiltert
       // Precheck
       
    if (isset($GLOBALS['search'])):   // wenn Sucharray vorhanden
       
    $key array_keys($GLOBALS['search']);  // key[0] dannach gefiltert
       
    if (is_array($entry['data'][$key[0]])) // nur filtern wenn Key auch in $entry['data'] vorhanden
          
    $filter true;
       endif;
      
       
    // eigentlicher Check
       
    if ($filter == false || in_array($GLOBALS['search'][$key[0]], explode(',',$entry['data'][$key[0]]['raw']))):

       
    //
       // Ausgabe des Listeneintrags
       //     
       
    $count++; // Eintrag ausgegeben

       
    endif;

    endforeach;
    endif;

    // wenn keine Ausgabe erfolgte...
    if ($count == 0) echo '<p class="info">There are no publications matching.</p>'
    So das hat den Vorteil das man die Liste auch von verschiedenen Bedingungen filtern lassen kann. Es muss lediglisch der Entsprechende Key im 1. Modul angegeben werden, in diesem Beispiel "authors".

    So hoffe es hilft irgendjemand weiter...

    Gruß V.

    PS: Wie schließe ich den Post?

  15. #15
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wunderbar. Danke für deine Komplette Lösung ;-)

    Schließen gibbet hier nicht. Einfach so offen lassen. Dann kann sich immer noch einer drann hängen wenn er das selbe Problem hat oder so.

    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."

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Ähnliche / Related Events möglich?
    Von dieselboy im Forum Nachrichten/Events/FAQ
    Antworten: 1
    Letzter Beitrag: 21.04.2011, 17:42
  2. Antworten: 10
    Letzter Beitrag: 11.12.2010, 20:50
  3. Verwandte Artikel
    Von brunoe im Forum Allgemeine Inhaltselemente
    Antworten: 6
    Letzter Beitrag: 05.10.2010, 12:16
  4. Related Posts für News
    Von Carsten im Forum Allgemeine Inhaltselemente
    Antworten: 5
    Letzter Beitrag: 29.06.2010, 07:24

Lesezeichen

Lesezeichen

Berechtigungen

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