Titel aus zwei anderen Feldern generieren

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • zinky
    Contao-Nutzer
    • 07.12.2009
    • 151

    #1

    Titel aus zwei anderen Feldern generieren

    Hallo zusammen,

    ich habe zurzeit folgendes Problem:
    Ich arbeite mit Catalog, um ein Portfolio aufzubauen.
    In einem Katalog "Referenzen" besteht ein Item aus:
    + Kunde (kommt aus nem anderen Katalog)
    + Typ (kommt aus nem anderen Katalog)
    + Titel
    + Alias
    + Bild

    Das Titel-Feld ist allerdings reichlich überflüssig, da
    die Kombination aus Kunde und Typ ausreicht. Daher
    ist es für denjenigen, der den Katalog pflegen soll,
    unpraktisch, über zwei Select-Felder Kunde und Typ
    auszuwählen und dann nochmal alles im Titel-Feld
    eingeben zu müssen.

    Da das Titel-Feld für das Alias-Feld gebraucht wird,
    würde ich jetzt gerne auch den Titel automatisch
    aus Kunde und Typ zusammensetzen. Leider funktioniert
    das mit entsprechenden Insert-Tags an der Stelle nicht.
    Woran kann das liege bzw. wie könnte ein anderer Weg
    aussehen?

    Viele Grüße
    zinky

    PS: Wenn das ganze natürlich ohne Titel-Feld geht, sodass
    ich das Alias-Feld direkt aus Kunde und Typ generieren kann,
    soll mir das natürlich recht sein ^^
    Zuletzt geändert von zinky; 19.09.2011, 10:44.
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Hallo zinky,
    mit dieser Erweiterung kannst du Felder kombinieren:

    Dann kann der Alias aus der Kombination bestehen.

    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

    • zinky
      Contao-Nutzer
      • 07.12.2009
      • 151

      #3
      Hallo MacKP,

      das war wieder ein Super-Tipp, danke dafür.
      Nur frage ich mich gerade, wie ich die Erweiterung jetzt
      einsetze? Ist die automatisch für alle Alias-Felder aktiv?
      Ich habe es jetzt so eingerichtet, dass:
      + das Titelfeld den Standardwert "[[customer]] - [[type]]" hat
      + und das Alias aus dem Titelfeld generiert wird.

      Leider funktioniert das aber so nicht, ich finde aber leider
      auch keine weiterführenden Infos zu der Erweiterung.

      lg zinky

      Kommentar

      • MacKP
        Contao-Yoda
        • 15.06.2009
        • 13315

        #4
        Mit der Erweiterung generiert man eine neues Feld, was die Kombination enthält. Das Feld kann dann für die Alias Generierung genutzt werden.
        Musst mal ein wenig ausprobieren. Wenn du magst, dann kannst du auch gerne im Wiki ein mini HowTo schreiben ;-)


        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

        • zinky
          Contao-Nutzer
          • 07.12.2009
          • 151

          #5
          Zitat von MacKP Beitrag anzeigen
          Mit der Erweiterung generiert man eine neues Feld, was die Kombination enthält. Das Feld kann dann für die Alias Generierung genutzt werden.
          Ok, ich war blind und hab den neuen BE-Menüpunkt übersehen…
          Das Tool zeigt mir jetzt bei der Select-Auswahl leider nur tl_tabellen an. Die entsprechende Tabelle ist aber eine cat_tabelle.
          Komme ich da trotzdem irgendwie dran?

          Zitat von MacKP Beitrag anzeigen
          Musst mal ein wenig ausprobieren. Wenn du magst, dann kannst du auch gerne im Wiki ein mini HowTo schreiben ;-)
          Wenn ichs geschnallt habe, mache ich das gerne!

          lg zinky

          Kommentar

          • MacKP
            Contao-Yoda
            • 15.06.2009
            • 13315

            #6
            Ich hab mal eben mit dem Entwickler geredet:
            - Geht aktuell leider nur mit tl_
            - Er hat auch gerade keine Zeit das ggf. zu erweitern

            Du müsstest also deine Catalog Tabelle umgenennen.

            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

            • zinky
              Contao-Nutzer
              • 07.12.2009
              • 151

              #7
              Zitat von MacKP Beitrag anzeigen
              Ich hab mal eben mit dem Entwickler geredet:
              - Geht aktuell leider nur mit tl_
              - Er hat auch gerade keine Zeit das ggf. zu erweitern

              Du müsstest also deine Catalog Tabelle umgenennen.

              Viele Grüße
              Hi,

              erstmal danke für dein Engagement!
              Habe vorhin ein wenig im Quelltext der Erweiterung gestöbert und
              festgestellt, dass die Liste der möglichen Tabellen, die man auswählen kann,
              aus den einzelnen DCA-Ordnern in den Modulordnern kommen. Daher dürfte
              eine Umbennung der Tabellen des Catalog doch auch nichts bringen und so
              scheint es auch zu sein:

              Ich hab die Tabelle von cat_references in tl_references umbenannt, aber sie
              taucht in der Liste nicht auf.

              lg zinky

              Kommentar

              • Andreas
                Contao-Urgestein
                • 19.06.2009
                • 7709

                #8
                catalogcalcfieldsave

                Weil ich das auch brauchte, habe ich da mal eine kleine Erweiterung gemacht, die den Wert des Feldes 'calc' auch mit in der DB abspeichert. Die Spalte ist sowieso schon vorhanden, sie wird ohne diese Erweiterung nur nicht befüllt. Ich hab's noch nicht ins Repository gestellt, da ich sie grad erst fertig habe und noch ein wenig probieren muss. Wäre schön, wenn ihr auch mal Zeit hättet das zu testen.

                Contao 2.10.2 (trunk)

                Mit dem Feld vom Typ Berechnen kann man auch Strings aus 2 Feldern verketten, ihr müsst euch nur gut mit MySQL-Querys auskennen. Mit dieser Erweiterung wird auch dieser Wert in der DB gespeichert.

                Angenommen ihr wollt sowas hier in einem Feld stehen haben: '2012 - Bundesliga' od. '2013 - Regionalliga'. Ihr habt eine Taxonomie 'season' mit 2012, 2013... und eine Taxonomie 'league' mit 'Bundesliga', 'Regionalliga' .... Erzeugt jeweils ein Feld vom Typ 'Auswahl' mit der jeweiligen Taxonomie. Erzeugt jetzt ein neues Feld 'Spielbetrieb' vom Typ 'Berechnen' und tragt diesen Query ein:
                Code:
                CONCAT((SELECT name from tl_taxonomy WHERE id=[B][COLOR="#A52A2A"]season[/COLOR][/B]), '[B][COLOR="#A52A2A"] - [/COLOR][/B]', (SELECT name from tl_taxonomy WHERE id=[B][COLOR="#A52A2A"]league[/COLOR][/B]))
                Über die Auswahlfelder wählt ihr jetzt 'Saison' und 'Liga', die Verkettung der beiden Felder wird im Feld Spielbetrieb gespeichert.

                --
                Sorry, bei der ersten Version fehlte was aus meiner dcaconfig
                Angehängte Dateien
                Zuletzt geändert von Andreas; 02.10.2011, 23:10. Grund: Update
                Bitte!
                Vor Anfragen im Forum HTML validieren.
                Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

                Vielen Dank an alle Wunschlistenerfüller
                Andreas Burg, Web Solutions

                Kommentar

                • MacKP
                  Contao-Yoda
                  • 15.06.2009
                  • 13315

                  #9
                  Hallo Andreas,
                  klingt ja schon mal sehr gut die Erweiterung. Danke dafür.
                  Ich hab leider aktuell keine Zeit zu testen (3 Wochen Urlaub gehabt, davon 2 gearbeitet.. und nu muss ich wieder aufholen *g*).

                  Eine Frage hab ich aber noch: Wie verhält sich das beim Ändern der Grundwerte? Wird dann der Wert automatisch neu berechnet und gespeichert? Oder muss man den erst manuell entfernen (wie z.B. beim Alias)?

                  Und wo ich gerade beim Alias war fällt mir noch was ein: Wann wird der Wert generiert? Kann man davon einen Alias erstellen lassen? Oder wird der Wert zu spät zur Verfügung gestellt?

                  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

                  • Andreas
                    Contao-Urgestein
                    • 19.06.2009
                    • 7709

                    #10
                    Hi Marc,

                    da hab ich auch dran gedacht, ist aber nicht mit drin. Ich denke die Einträge müssten dann neu gespeichert werden, habs aber nicht getestet. Überhaupt passiert da auch nicht viel, kannst ja mal kurz in die Datei schauen, ist nur eine config.php. Wird denn der Feldwert, der über ein Taxonomie-Select erzeugt wurde, automatisch in der Catalog-Tabelle geändert wenn ich den Wert in der Taxonomie ändere?

                    Alias hab ich nicht probiert. Ich habe mal 'Eindeutigkeit' ausprobiert. Da kommt der Wert zu spät. Erst beim zweiten Speichern des Items kommt die Fehlermeldung.

                    Grundsätzlich habe ich nicht ganz verstanden, warum der über calc errechnete Wert nicht gespeichert wird wie die anderen Werte auch. Entweder ist die Entwicklung einfach dort stehen geblieben, oder es gibt wirklich einen trifftigen Grund. Deswegen will ich da erstmal auch nicht weiter dran schrauben, denn ich denke, dass es kein Fall für eine Erweiterung ist, sondern dass dieses Feld "Berechnen" genauso behandelt werden sollte wie die anderen auch, und dann macht man es natürlich am besten direkt im Catalog. Ich hatte auch ein Ticket dazu erstellt. #250

                    Grüße Andreas

                    ps Dann hast du dich ja eine Woche erholen können
                    Bitte!
                    Vor Anfragen im Forum HTML validieren.
                    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

                    Vielen Dank an alle Wunschlistenerfüller
                    Andreas Burg, Web Solutions

                    Kommentar

                    • stiefel
                      Contao-Nutzer
                      • 17.07.2009
                      • 108

                      #11
                      Nach mit catalogcalcfieldsave berechneten und gespeicherten Werten suchen/filtern?

                      Hallo Andreas,

                      vielen Dank für Deinen Einsatz, der für mich just zur Rechten Zeit kam (das passiert hier im Contao-Forum irgendwie ständig - liegt wohl an Eurer riesigen Umtriebigkeit :-)..)

                      Zur Frage:
                      Siehst Du - oder jemand anderes - eine Möglichkeit, dass man nun nach Werten/Feldern suchen und filtern kann, die mittels Deiner Methode berechnet und befüllt wurden?

                      Hintergrund:
                      Was ich nämlich seit Ende letzter Woche dringend brauche und leider gar nicht hinbekomme, ist folgendes:
                      In einem Katalog gebe ich - via PHP und Template - im FE eine "Referenznummer" aus, die mittels der "ID" und der Jahreszahl eines Datumfeldes kreiert wird. Nun soll aber nach dieser "Referenznummer" im FE auch gesucht werden können (Freitext). Idealerweise soll auch im BE nach der "Referenznummer" sortiert oder gar gefiltert werden können...

                      Lösungsversuche:
                      zunächst habe ich recherchiert, ob man nicht einfach ein Textfeld mittels inserttags befüllen kann; ohne Erfolg.
                      Dann habe ich mit dem "berechnen"-Feld und CONCAT schon einen Silberstreif gesehen, dann aber gemerkt, dass die Werte a) nicht als Ergebnis gespeichert werden und b) letztlich ja nur Text- und String-Felder durchsucht werden können.

                      Zumindest für a) scheint Dein Ansatz ja eine Lösung zu bieten.
                      Was aber ist mit b)?

                      Wollte heute eigentlich damit einen eigenen Thread aufmachen, habe dann aber Deinen Beitrag mit der Erweiterung gesehen und hänge mich nun erstmal hier ein...hoiffe das ist ok.

                      Vielen Dank für jeden Tipp..
                      Schöne Grüße, Stefan

                      Kommentar

                      • Andreas
                        Contao-Urgestein
                        • 19.06.2009
                        • 7709

                        #12
                        Hallo Stefan,

                        versuch mal das hier ganz oben in deiner localconfig.php. ohne Gewähr.

                        PHP-Code:
                        $GLOBALS['BE_MOD']['content']['catalog']['typesCheckboxSelectors'][] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesOptionSelectors']  [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesFilterFields']     [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesMatchFields']      [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesEditFields']       [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesLinkFields']       [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesReferenceFields']  [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesCatalogFields']    [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesRSSFields']        [] = 'calc';
                        $GLOBALS['BE_MOD']['content']['catalog']['typesWizardFields']     [] = 'calc'; 
                        
                        Bitte!
                        Vor Anfragen im Forum HTML validieren.
                        Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

                        Vielen Dank an alle Wunschlistenerfüller
                        Andreas Burg, Web Solutions

                        Kommentar

                        • stiefel
                          Contao-Nutzer
                          • 17.07.2009
                          • 108

                          #13
                          Hallo Andreas,

                          wow - so schnell kann ich ja gar nicht antworten (Kunde am Tel), wie Du mir hier helfen willst. Danke schön!

                          Hab das mal versucht, aber das ändert leider nichts.
                          Was war denn der Gedanke? Dass man den Feldtyp "calc" auch bei den entsprechenden Optionen anmeldet/registriert?

                          Habe soeben beim Testen auch entdeckt, dass ich in der Datenbank trotz hinzufügen des Moduls "catalogcalcfieldsave" keine Werte im entsprechenden Feld hatte - hab das zum Testen nun manuell befüllt, aber irgendiwe stimmt da auch schon was nicht...
                          Erluabe mir die Dumme Frage (auf-dem-Schlauch-steh): es reicht doch, Deinen "catalogcalcfieldsave"-Ordner unter System/Modules einzustellen - oder hab ich was übersehen?

                          Lieben Dank für Geduld und Hilfe.
                          Stefan

                          Kommentar

                          • stiefel
                            Contao-Nutzer
                            • 17.07.2009
                            • 108

                            #14
                            nochmal kurz ich mit Info zu meiner Katalog-Version...
                            Liegt es am Ende womöglich daran?

                            2.0.0 beta1 build 54

                            LG, Stefan

                            Kommentar

                            • Andreas
                              Contao-Urgestein
                              • 19.06.2009
                              • 7709

                              #15
                              Könnte sein, ich habe 2.0.0 beta2 37.

                              Ja, das war die Idee. Es kann aber auch sein, dass du die Werte on the fly setzen musst. Wenn ich das richtig interpretiert habe existiert die Items-Tabelle nur virtuell. Schau mal in die Datei, da setze ich ein paar Sachen on the fly. Allerdings könntest du das auch mit deinem Tabellen-Namen hardcodieren. Das kann ich nur nicht machen, wenn es eine Erweiterung werden soll.

                              Ich hoffe nicht, dass ich noch irgendeine andere Kofiguration in meinem System habe, die bewirkt, dass es bei mir funktioniert.

                              Schau dir auch mal die config.php vom Catalog an, vielleicht findest du die Unterschiede zu anderen Feldern.
                              Bitte!
                              Vor Anfragen im Forum HTML validieren.
                              Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

                              Vielen Dank an alle Wunschlistenerfüller
                              Andreas Burg, Web Solutions

                              Kommentar

                              Lädt...