Ankündigung

Einklappen
Keine Ankündigung bisher.

Katalog im Katalog?

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Katalog im Katalog?

    Wir möchten einen Online-Messe-Katalog anlegen für Ausbildungsstellen. Damit man nicht bei jeder Ausbildungsstelle erneut alle Firmeninfos eingeben muss, möchten wir gerne eine Art "Unterkatalog" /"Zweitkatalog" mit den Daten zur Firma erstellen und verknüpfen. Ist das möglich? Eine weitere Herausforderung ist das die "Firmen" Ihre "Ausbildungsstellen" im "Ausbildungsstellen-Katalog" selbst eingeben sollen. Die Daten zur Firma und das Login für die Firmen würden wir einmalig für jede Firma anlegen.

  • #2
    Kataloge können über Eltern-Kind Beziehungen verknüpft sein oder über ein Tags-Feld oder ein Auswahl/Select-Datenbank-Feld.
    Eltern-Kind Ausgaben werden direkt im Frontend vom Liste-Modul berücksichtigt. Andere Konstellationen müssen im Template individuell berücksichtigt werden. Dazu gibt es einige Threads bereits hier im Forum oder auch Beispiele im Vorlagen-Pool: https://forum.premium-contao-themes....plate-ausgeben
    ---
    Je nach Art der Zugänge kann die externe Pflege der Daten über das Backend oder über das Frontend erfolgen. CC hat ein entsprechendes "Elemente schützen" attribut. Das arbeitet entweder auf Benutzer/Benutzergruppen-Ebene (Backend) oder Mitglied/Mitgliedergruppe-Ebene (Frontend)

    Im Frontend kann die Dateneingabe über das FrontendEditing von CC erfolgen oder über ein Contao Formular (oder man baut was eigenes )
    Zuletzt geändert von Tim; 24.03.2021, 13:13.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Danke für die schnelle Antwort!

      Beim Verbinden zweier Tabellen via Eltern & Kind hatte ich bei den ersten Versuchen Probleme beim Anpassen der User und User-Gruppen und es sind teils Einträge verschwunden, die ich gerade angelegt hatte...
      Zur Verbindung habe ich nun das Custom Element "Database selection" in den Katalog der Ausbildungsstellen eingefügt, wo sich nun der Firmenname aus dem Firmenkatalog auswählen lässt.

      Ich beschreibe noch einmal kurz meinen Lösungsweg und folgende Fragen dazu, vielleicht ist das auch der ganz falsche Weg für die Herausforderungen, die wir haben und ich muss mir doch noch die Eltern-Kind-Sache vornehmen.

      Angelegt sind User-Gruppen (später Firmen) und User (die 1-x Menschen aus den Firmen, die später Einträge anlegen).
      Damit die User nur die Einträge (sowohl Firmen als auch Ausbildungsstellen) sehen, die auch von ihrer User-Gruppe erstellt wurden, habe ich mit das Protect Entries folgend erstellt, das die Gruppe automatisch der User-Gruppe des Erstellers zuweist und das Feld jeweils für alle, außer dem Admin unsichtbar gemacht (siehe Screenshot_1)

      Die Wichtigste Frage: sind die Tabellen nun so miteinander verbunden, dass man auf der Detailseite im Katalog-Reader alle angegebenen Firmendetails aus dem Firmen-Katalog ausgeben kann? (Datenbank-Tabelle der Firmen: Screenshot_3)
      Wie würde eine Beispielzeile im PHP-Template dafür aussehen, um neben dem Namen der Firma auch z.B. die Adresse, den Geschäftsführer, etc. auszugeben?

      Zweite Frage: Der Teil mit der Firmen-Auswahl funktioniert soweit.
      Problem ist noch, dass beim dbselect field für einen User ALLE Firmen auswählbar sind, nicht nur die, die seiner Gruppe zugewiesen sind. (Screenshot_2)
      Lässt sich das vielleicht mit einer Zeile in dem Feld "Conditions" im selectdb-Element lösen?

      Ich hoffe das ist alles verständlich erklärt und vielen Dank schonmal für die Hilfe!

      Kommentar


      • #4
        Wie gesagt unterstützt das System von Haus aus für die Frontend-Darstellung nur Eltern-Kind-Beziehungen. Dies ist hier nicht der Fall.

        Wenn ich es richtig verstanden habe, wurden hier die Firmen als User-Gruppen hinterlegt. Damit sind sie kein Katalog im "CustomCataloog-Sinn", sondern reine Datensätze aus der tl_user Tabelle. Damit ist standardmäßig keine Frontendausgabe via CC-Liste oder ähnlich möglich für die Firmen. Die Werte-Ermittlung und Ausgabe muss händisch gelöscht werden via DB-Abfrage / Model-Abfrage.

        Die Beziehung kann über 1-n SELECT erfolgen.

        Zu diesem Thema gibt es diverse Threads.
        https://forum.premium-contao-themes....loge-zugreifen
        Eltern-Kind (adaptierbar auf andere Tabellen)
        https://forum.premium-contao-themes....hild-tablellen

        Die Beispiele mit dyn. Models können natürlich auch auf Contaos Model-Klassen angewendet werden. z.B. UserModel usw.

        ---
        Das Conditions-Feld ist gut, dient aber eher für statische Werte z.B. published=1.
        Du willst die Auswahl in Abhängigkeit gesetzter Werte des aktuellen Datensatzes reduzieren. Dafür kann der options_callback des Feldes genutzt werden.
        Zuletzt geändert von Tim; 26.03.2021, 08:41.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Zitat von Tim Beitrag anzeigen
          Wenn ich es richtig verstanden habe, wurden hier die Firmen als User-Gruppen hinterlegt. Damit sind sie kein Katalog im "CustomCataloog-Sinn", sondern reine Datensätze aus der tl_user Tabelle. Damit ist standardmäßig keine Frontendausgabe via CC-Liste oder ähnlich möglich für die Firmen. Die Werte-Ermittlung und Ausgabe muss händisch gelöscht werden via DB-Abfrage / Model-Abfrage.
          Nicht ganz:
          ​Die Firmen sind sowohl User-Gruppen, als auch ein CustomCatalog.
          In der User-Gruppe stehen aber nur der Obername der Firma und die Rechte der Gruppe beschrieben.
          Der gesamte Content, wie die Adresse etc. stehen schon im Custom Catalog Eintrag.

          Zum Beispiel kann die User Gruppe der "Produktionsfirma" ja mehrere Firmenstandorte oder Tochterfirmen haben, dann haben die User-Gruppen mehrere Firmen-Einträge im Firmen-CC (Bsp. "Produktionsfirma GmbH - Standort 1", "Produktionsfirma GmbH - Standort 2", ...). Die Standorte aus dem CC weißt man dann der Ausbildungsstellen über dbselect zu, nicht die User-Gruppe.

          Ich probiere aber trotzdem einmal die Abfragen aus den verlinkten Threads im Reader aus!

          Zum options_callback:
          Vielleicht doofe Frage, aber wo finde ich denn die beiden zu bearbeitenden php-Dateien hierfür?
          Aus dem Link in deinem Beitrag hier:
          https://forum.premium-contao-themes....9733#post19733

          Kommentar


          • #6
            Wie der Aufbau auch ist... Hauptsache du hast die ID des einen in dem eintrag des anderen (oder mehrere bei multiplen) , Entweder 1-1 oder 1-n.
            Mit beiden kann man exakt abfragen.

            Der options_callback ist eine DCA Feld-Funktion in Contao. Du kannst dafür die dcaconfig.php nutzen oder machst eine kleine Erweiterung draus.
            CC arbeitet exakt nach Contaos-Norm:
            Code:
             $GLOBALS['TL_DCA']['MEINE-CC-TABELLE']['fields']['MEIN-FELD']['options_callback'] = array('Klasse','Callback);
            https://easysolutionsit.de/artikel/c...callbacks.html > options_callback

            Ich persönlich packe sowas gern in eine kleine Erweiterung.
            http://www.premium-contao-themes.com

            Kommentar

            Lädt...
            X