Zugriff auf Taxonomy Tabelle

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • timbugto
    Contao-Nutzer
    • 19.03.2010
    • 90

    #1

    Zugriff auf Taxonomy Tabelle

    Hallo ich habe eine Extension (fürs BE) erstellt wo ich in einen Artikel definierte Daten im BE eingeben kann. Nun würde ich gern in der Extension eine Checkbox zur Auswahl anzeigen lassen, mit all den Taxonomien aus der Taxonomy Tabelle (mit der Taxonomy Extension erstellt). Das ich somit jeden Artikel mit einen oder mehreren "Tag" versehen kann, die auch dann in meiner erstellten Artikel Extension gespeichert werden.

    Meine Frage: Wie kann ich alle Taxonomy - Einträge in meiner Extension einlesen und als Checkbox zum anwählen darstellen? Das muss ja irgendwie im DCA beschrieben werden...

    Hoffe es ist verständlich genug erklärt...
  • xtra
    Maintainer
    • 02.07.2009
    • 2007

    #2
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_article']['fields']['deinfeld']=array
    (
                'label'                   => &$GLOBALS['TL_LANG']['tl_article']['deinfeld'],
                'exclude'                 => true,
                'filter'                  => true,
                'inputType'               => 'checkbox',
                'foreignKey'              => 'tl_taxonomy.name',
                'eval'                    => array('multiple'=>true),
    ); 
    
    hth Chris
    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.

    Kommentar

    • timbugto
      Contao-Nutzer
      • 19.03.2010
      • 90

      #3
      Genial einfach - Super es geht! Langsam steige ich durch

      Vielen Dank.

      PS: kann ich diese Sachen filtern? Es werden auch die Hauptkategorien angezeigt - würde gern z.b. nur alles unter Sport aufgelistet haben.

      Sport => Golf, Tennis, Fussball
      Film => ....., .....
      Zuletzt geändert von timbugto; 27.03.2010, 07:25.

      Kommentar

      • aw029
        Contao-Nutzer
        • 29.07.2009
        • 44

        #4
        Die Antwort auf die Frage von timbugto würde mich auch interessieren. Stehe vor dem gleichen Problem.

        Kommentar

        • aw029
          Contao-Nutzer
          • 29.07.2009
          • 44

          #5
          In der Taxonomy-Extension gibt es extra dafür ein Widget das man verwenden kann.

          PHP-Code:
          'taxonomy' => array
                  (
                      'label'                   => &$GLOBALS['TL_LANG']['tl_companies']['taxonomy'],
                      'exclude'                 => true,
                      'filter'                  => true,
                      'inputType'               => 'taxonomyTree',
                      'foreignKey'              => 'tl_taxonomy.name', 
                      'eval'                    => array('mandatory'=>false,'multiple'=>true,'tl_class'=>'long clr','rootid'=>1,'fieldType'=>'checkbox'),
                      'save_callback'           => array(array('tl_companies_hooks','taxonomy_save_callback')),
                       'load_callback'           => array(array('tl_companies_hooks','taxonomy_load_callback')),
                  ), 
          
          Die zwei Callbacks sind nicht erforderlich. Das ist nur für mich, da ich eine andere Speicherung haben möchte. Entscheidend ist:

          inputType => TaxonomyTree

          und dann die beiden Paramter im eval-Array:
          fieldType => Checkbox --> Damit hinter den Einträge eine Checkbox erscheint. Alternativ würde auch 'Radio' gehen.

          Zur Limitierung der Anzeige kann der Parameter rootid=>Zahl. Das ist die Id des Datensatzes, dessen Kinder angezeigt werden sollen.

          Viele Grüße
          Alexander

          Kommentar

          • timbugto
            Contao-Nutzer
            • 19.03.2010
            • 90

            #6
            Ist das möglich das ich nur die erste bzw. nur eine Ebene der Taxonomy angezeigt bekomme und nicht dessen Kindeelemente?

            Oder kann wie kann ich denn diese Elemente bei gestellten Bedingungen filtern, ist das möglich?
            z.B. alle Elemente des Taxonomy Baumes der ersten Ebene, haben die "pid" = 0
            und wenn man danach filtern könnte, dann würde das ja auch gehen - und wär super.
            Zuletzt geändert von timbugto; 19.04.2010, 15:55.

            Kommentar

            • aw029
              Contao-Nutzer
              • 29.07.2009
              • 44

              #7
              Hallo timbugto,

              wenn ich in den Code schaue ist das momentan nicht möglich. Steht übrigens in system/modules/taxonomy/TaxonomyTree.php . Dort siehst du auch, welche Eval-Optionen verarbeitet werden.

              Ich denke, du müsstest das Widget um deine Eval-Einstellungen erweitern.

              Gruß
              Alexander

              Kommentar

              • timbugto
                Contao-Nutzer
                • 19.03.2010
                • 90

                #8
                ...das schaut interessant aus.
                Bin leider noch nicht so bewandert in TL, aber ich denke auch da steige ich durch
                Werde mal probieren was geht, nur schade das es von Haus aus nicht geht.

                Kommentar

                • timbugto
                  Contao-Nutzer
                  • 19.03.2010
                  • 90

                  #9
                  Wo genau kann ich denn einstellen das der Baum beim laden der Seite geöffnet ist?
                  Ich habe viele Einträge mit Unterpunkte, sobald ich einen Knoten anklicke läd er die Seite neu und ist wieder geschlossen...bei multi selection nervt das dann schon mit der Zeit.
                  Lässt sich das nicht auch über Ajax oder Java regeln, ohne die Seite jedesmal neu zu laden?

                  Habe mir schon die taxonomytree.php angesehen, aber naja....kp

                  Kommentar

                  • sysrun
                    Contao-Nutzer
                    • 13.08.2010
                    • 9

                    #10
                    Zitat von aw029 Beitrag anzeigen
                    Zur Limitierung der Anzeige kann der Parameter rootid=>Zahl. Das ist die Id des Datensatzes, dessen Kinder angezeigt werden sollen.
                    Hallo,

                    habe grad gesehen das es nicht
                    PHP-Code:
                    'rootid'=><zahl> 
                    
                    sondern
                    PHP-Code:
                    'rootid'=>array(<zahl>) 
                    
                    sein muss damit es klappt. Grad eine Stunde "meinen" Fehler gesucht

                    Kommentar

                    • andreasisaak
                      Contao-Urgestein
                      • 07.07.2009
                      • 4107

                      #11
                      Zitat von sysrun Beitrag anzeigen
                      Hallo,

                      habe grad gesehen das es nicht
                      PHP-Code:
                      'rootid'=><zahl> 
                      
                      sondern
                      PHP-Code:
                      'rootid'=>array(<zahl>) 
                      
                      sein muss damit es klappt. Grad eine Stunde "meinen" Fehler gesucht
                      Das war auch mein Fehler.
                      Aber ich möchte ungern den TaxonomyTree verwenden sondern lieber Dropdownfelder (Select), da diese für den User besser verständlich sind. Leider kann ich bei einer Selectbox keine RootID angeben - sie wird schlichtweg ignoriert.

                      Besteht die Möglichkeit die Einträge zu filtern aber trotzdem eine Selectbox zu nehmen?

                      Kommentar

                      • w3scout
                        Contao-Fan
                        • 20.06.2009
                        • 273

                        #12
                        Hi,

                        ich muß mich hier gerade nochmal anhängen...

                        hab´ eben das taxonomyTree Widget in eine eigene CT-Extension eingebaut. Klappt soweit auch alles, bis auf das Öffnen/Schliessen der Subeinträge nach einem Klick auf das Plus/Minus-Symbol.

                        Irgendwie sehe ich gerade den Wald vor lauter Bäumen nicht. Hat jemand einen Tipp, wo ich (weiter)suchen könnte bzw. wie sich das Problem beheben lässt?
                        Verwende CT 2.11 und das Taxonomy-Modul selbst funzt einwandfrei.

                        Danke schonmal.
                        Contao Tutor GPT

                        Kommentar

                        • Arno
                          Contao-Fan
                          • 11.12.2009
                          • 290

                          #13
                          Hi,

                          interessant: Stehe auch gerade vor dem gleichen Problem wie du w3scout: Ich habe mir noch die Erweiterung taxonomy_content installiert und das sieht das auch so aus, dass ich nur den Wurzeleintrag angezeigt bekomme die Untereinträge aber nicht. Ich arbeite allerdings auf Contao 3.0.5 und dachte natürlich, dass es damit zu tun hat. Scheint dann ja aber nicht so zu sein. Ich hab auch schon mal in die Rückmeldungen des Ajax-Scripts geguckt, das die Untereinträge beim Ausklappen zurückliefern soll, aber das scheint mir normal zu funktionieren. Jedenfalls soweit ich das auf die Schnelle sehen kann.

                          Ich habe auch gerade noch mal auf einer anderen Installation wo auch der Catalog in Verbindung mit der Taxonomy verwendet wird geschaut und da funktioniert das Ausklappen ohne Probleme.

                          Mehr hab ich leider auch gerade nicht.

                          Kommentar

                          • w3scout
                            Contao-Fan
                            • 20.06.2009
                            • 273

                            #14
                            Ich hab auch schon mal in die Rückmeldungen des Ajax-Scripts geguckt, das die Untereinträge beim Ausklappen zurückliefern soll, aber das scheint mir normal zu funktionieren. Jedenfalls soweit ich das auf die Schnelle sehen kann.
                            Bei mir steht unter response nur <script>location.replace("http://ctdemo.example.com/contao/index.php")</script>
                            Contao Tutor GPT

                            Kommentar

                            • w3scout
                              Contao-Fan
                              • 20.06.2009
                              • 273

                              #15
                              Problem gelöst: es lag am fehlenden REQUEST_TOKEN im Ajax Request.
                              Hatte übersehen, dass das Taxonomy Modul nur bis CT 2.10. freigegeben ist.

                              Hab´ die angepasste taxonomywizard.js angehängt. Einfach in den html Ordner des Taxonomy Modules kopieren (und entpacken).
                              Angehängte Dateien
                              Zuletzt geändert von w3scout; 22.03.2013, 17:25.
                              Contao Tutor GPT

                              Kommentar

                              Lädt...