Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 47

Thema: Einem Item mehrere Kategorien zuordnen?

  1. #1
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard Einem Item mehrere Kategorien zuordnen?

    Hallo,

    wie kann ich es anstellen, einem Catalog-Item mehrere Kategorien zuzuordnen?
    Wenn ich im Backend die Eigenschaft "Kategorie" für ein Item anlege, erhalte ich ja nur ein Select-Menü, in dem ich genau eine Kategorie für das Item auswählen will.
    Schön wären an dieser Stelle Checkboxen für eine Mehrfachauswahl.

    Ich habe Items, die sich mehreren Kategorien zuordnen lassen und im Frontend dann auch unter verschiedenen Kategorien zu finden sein sollen.

    Kann ich das mit dem Catalog lösen?

    Gruß,
    Ignatz

  2. #2
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Ja, das geht. Dazu gibts im Wiki einen Eintrag und in diesem Thread haben wir lange daran gearbeitet:
    http://www.contao-community.de/showt...-mit-Accordion

    Wichtig ist die Frage ob die Einträge auch sortiert sein sollen. Wenn nicht, kannst du einfach Kategoriern in dem Taxonomy Modul anlegen und mit Checkboxen ausgeben lassen. Das sollte auf Anhieb funktionieren, ohne Template-Anpassung.

    Grüße,
    Tim

    ps. ich seh grad, dass war ja unser Thread.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  3. #3
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Hallo Tim,

    diesmal ist es wieder etwas anderes. In dem erwähnten Thread haben wir die Items nach Kategorien sortiert.

    Jetzt möchte ich einem Item mehrere Kategorien zuordnen, also:
    Item_1 gehört zu Kategorie A
    Item_2 gehört zu Kategorie A und auch zu Kategorie B
    Item_3 gehört zu Kategorie B und C
    Item_4 zu A und C
    ... usw.

    Im Frontend würde ich also dann Item_2 in Kategorie A als auch Kategorie B finden.

    Hoffentlich ist das verständlich.

    Wenn das Ganze dann noch sortiert ausgegeben wird, wäre das sozusagen das Sahnehäubchen.

    Gruß,
    Ignatz

  4. #4
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Dafür gibts Tags bzw. neuerdings die Feldoption Auswahl.
    Ich glaube Tags soll abgeschafft werden. Da müssen wir mal MacKP fragen.

    Aber mit Auswahl klappt das ohne Templateänderung.
    Ist glaube ich sogar im Katalog Tutorial zur Merklist drin.


    Sent from my iPhone using Tapatalk
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  5. #5
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Statt dem Auswahl Menü solltest du Tags benutzen.

    Allerdings wird es dann einige Einschränkungen geben, was z. B. die Navigation angeht.

    /edit:
    Zu langsam, siehe oben

  6. #6
    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

    Zitat Zitat von Tim G Beitrag anzeigen
    Dafür gibts Tags bzw. neuerdings die Feldoption Auswahl.
    Ich glaube Tags soll abgeschafft werden. Da müssen wir mal MacKP fragen.
    Uh.. sorry.. Fehlinfo von mir!

    taxonomie ist abgeschafft worden und tags soll man nun auch dafür benutzen. So rum wars...

    Tut mir leid für die Verwirrung (wenn ich den anderen Thread wieder finde schreib ich das da auch noch mal extra hin).

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

  7. #7
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Ach?
    Und was kommt für taxonomy?


    Sent from my iPhone using Tapatalk
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  8. #8
    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

    Zitat Zitat von Tim G Beitrag anzeigen
    Ach?
    Und was kommt für taxonomy?


    Sent from my iPhone using Tapatalk
    Siehe da -> http://www.contao-community.de/showt...737#post123737

    Da kann man dann einfach Select oder Tags nehmen. Was anderes als Tags konnte das Feld eh nicht.. und das noch nicht mal so umfassend wie es sinnvoll wäre. Das wurde mal eingeführt von jemandem, der nicht mehr beim Catalog mit macht mein ich. Keiner wusste so wirklich warum ;-)

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

  9. #9
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Hallo Tim,

    wenn Taxonomy wegfällt, ist dann unser tolles Template für die Sortierung hinfällig?
    Oder lässt sich das ohne weiteres auf Tags übertragen?

    Ignatz

    [Edit]
    Habe gerade mal die Kategorie rausgeschmissen und stattdessen Tags verwendet, dort aber als Tabelle für Optionen "tl_taxonomy" ausgewählt. Jetzt bekomme ich im Frontend eine Fehlermeldung.
    Geändert von Ignatz (04.04.2011 um 13:05 Uhr)

  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

    Äh.. der Fieldtype Taxonomie fällt weg. Taxonomien selber werden weiterhin genutzt.

    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

    Leider fehtl bei deinem Satz noch das Ende welchen ich unten vervollstaendige:
    Zitat Zitat von Ignatz Beitrag anzeigen
    Jetzt bekomme ich im Frontend eine Fehlermeldung.
    "... welche ich euch nicht mitteilen moechte und ihr somit eure Glaskugeln bitte bemyht."
    ---

    Da meine Glaskugel jedoch leider aktuell in Reperatur ist und der Hersteller mir kein Ersatzgeraet gestellt hat, kann ich dir damit nicht helfen.
    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-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Ist ja schon gut
    PHP-Code:
    Warningarray_flip() [function.array-flip]: Can only flip STRING and INTEGER valuesin /xxxxx/templates/catalog_simple_accordion.tpl on line 14

    #0 [internal function]: __error(2, 'array_flip() [<...', '/homepages/18/d...', 14, Array)
    #1 /xxxxx/templates/catalog_simple_accordion.tpl(14): array_flip(Array)
    #2 /xxxxx/system/libraries/Template.php(186): include('/homepages/18/d...')
    #3 /xxxxx/system/modules/frontend/FrontendTemplate.php(49): Template->parse()
    #4 /xxxxx/system/modules/catalog/ModuleCatalog.php(2117): FrontendTemplate->parse()
    #5 /xxxxx/system/modules/catalog/ModuleCatalogList.php(216): ModuleCatalog->parseCatalog(Object(DB_Mysql_Result), true, 'catalog_simple_...', Array)
    #6 /xxxxx/system/modules/frontend/Module.php(140): ModuleCatalogList->compile()
    #7 /xxxxx/system/modules/catalog/ModuleCatalog.php(130): Module->generate()
    #8 /xxxxx/system/modules/catalog/ModuleCatalogList.php(76): ModuleCatalog->generate()
    #9 /xxxxx/system/modules/frontend/ContentModule.php(72): ModuleCatalogList->generate()
    #10 /xxxxx/system/libraries/Controller.php(415): ContentModule->generate()
    #11 /xxxxx/system/modules/frontend/ModuleArticle.php(173): Controller->getContentElement('9')
    #12 /xxxxx/system/modules/frontend/Module.php(140): ModuleArticle->compile()
    #13 /xxxxx/system/modules/frontend/ModuleArticle.php(71): Module->generate()
    #14 /xxxxx/system/libraries/Controller.php(348): ModuleArticle->generate(false)
    #15 /xxxxx/system/libraries/Controller.php(221): Controller->getArticle('12', false, false, 'main')
    #16 /xxxxx/system/modules/frontend/PageRegular.php(71): Controller->getFrontendModule('0', 'main')
    #17 /xxxxx/index.php(198): PageRegular->generate(Object(DB_Mysql_Result))
    #18 /xxxxx/index.php(333): Index->run()
    #19 {main} 
    Diese Fehlermeldung bezieht sich auf das Template von Tim aus diesem Thread, welches ich verwende.

    Gruß,
    Ignatz

  13. #13
    Contao-Nutzer
    Registriert seit
    08.02.2010.
    Ort
    Aachen
    Beiträge
    89
    User beschenken
    Wunschliste

    Standard

    Huhu,

    glaube es liegt daran, dass du mittels Tags ein Array erhälst. Deine Funktion aber STRING and INTEGER erwartet.

    Denke du musst erstmal das Array umwandeln, damit dies läuft.

    VG, backes

  14. #14
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Tags kommen als serialisierter array an. (blob) glaube ich.
    Der muss deserialisiert werden um einen array, den wir auslesen können, zu erhalten.

    Das macht man mit der Funktion:
    $myArray = deserialize(myBLOB);

    Ich guck zu hause mal drauf.

    Ps. Ich glaube aber so einfach ist das nicht, dass da gleich das ganze Template mitspielt


    Sent from my iPhone using Tapatalk
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  15. #15
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Hab grad reingeschaut.
    Es kommt zwar ein Array an, aber der Aufbau ist doch grundlegend anders.

    Ich bau das nachher mal um.
    Wird daher auch ein neues Template, aber das ja nicht schlecht.

    Aber das schaff ich erst wenn die Bauarbeiter in der Nachbarwohnung Feierabend haben...
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  16. #16
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    checks mal aus:

    PHP-Code:

    <?php if (count($this->entries)): ?>

    <?php
    $fieldName 
    'category'// field name for creating collections
    $emptyCategoryName 'Ohne Kategorie'// create a seperate category for all items that are not selected in category
    $arrCategories = array(); // collects all catalog entries
    $arrSorted = array(); // collects all sorted catalog entries

    foreach($this->entries as $entry)
    {
        
    #$act = $entry['data'][$fieldName]['value'];
        
    $arrRef $entry['data'][$fieldName]['ref']; // contains the reference to the selected tags
        
        
    if(!$arrRef
        {
            
    // if no category is selected collect all in an extra category
            
    $arrSorted[$emptyCategoryName][] = $entry;
            
    $arrCategories[1] = $emptyCategoryName// update category array
        
    }
        else
        {
            foreach(
    $arrRef as $ref => $value)
            {
                
    $catId $value['id'];
                
    $catName $value['name'];
                
                
    // check if category already exists / or not
                
    if( array_key_exists($catId$arrCategories ) )
                {
                    
    $arrSorted[$catName][] = $entry;
                } 
                else 
                {
                    
    $arrSorted[$catName][0] = $entry// create new category node
                    
                    // add new catagory id for comparing in array_key_exists
                    
    $arrCategories[$catId] = $catName;
                }
            }
        }
        
    ksort($arrCategories);
    }

    /**
     * Get category sorting from tl_taxonomy
     */
    $catalog $this->entries[0]['tablename'];
    $arrCategorySorted = array();
    foreach(
    $arrCategories as $id => $name)
    {
        
    $this->import('Database');
        
    $objField $this->Database    ->prepare("SELECT sorting, name FROM tl_taxonomy WHERE id=?")
                                      ->
    limit(1)
                                      ->
    execute($id);
        if(!
    $objField->numRows) continue;
        
        
    $sorting $objField->sorting;
            
        
    $arrCategorySorted[$sorting] = $arrSorted[$name];
        
    $arrCategorySorted[$sorting][0]['togglerLabel'] = $name// remember Category Name
        
        
        
    }

    // Sort
    ksort($arrCategorySorted);
    ?>

    <?php foreach($arrCategorySorted as $key => $entries): ?>
    <?php 
    $category 
    $entries[0]['togglerLabel']; 
    $class strtolowerpreg_replace( array('/ /''/&/'), array('''-'), $category) );
    ?>

    <div class="layout_simple block ce_accordion">
        <div class="toggler <?php echo $class ?>"><h3><?php echo $category?></h3></div>
        <div class="accordion <?php echo $class?>">
        
        <?php foreach($entries as $entry): ?>
            
            <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''?>">
            <?php foreach($entry['data'] as $field => $data): ?>
            <?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
                <?php if($field == $fieldName) continue; ?>            
                <div class="field <?php echo $field?>">
                    <div class="label"><?php echo $data['label']; ?></div>
                    <div class="value"><?php echo $data['value']; ?></div>
                </div>
            <?php endif; ?>
            <?php endforeach; ?>
            </div>
            
        <?php endforeach; ?>
        </div>
        
        <?php if ($entry['showLink'] && $entry['link']): ?>
        <div class="link"><?php echo $entry['link']; ?></div>
        <?php endif; ?>
        <?php if ($entry['linkEdit']): ?>
        <div class="linkEdit"><?php echo $entry['linkEdit']; ?></div>
        <?php endif; ?>
        </div>
        
    <?php endforeach; ?>
    </div>

    <?php else: ?>

    <?php if ($this->condition): ?>
    <div class="condition"><?php echo $this->condition?></div>
    <?php else: ?>
    <p class="info">There are no entries matching your search.</p>
    <?php endif; ?>

    <?php endif; ?>
    Der Aufbau ist ähnlich, aber halt nur ähnlich.
    Die Art wie die Unterschiedlichen Kategorien gebaut werden hat sich nicht geändert, allerdings muss man vorher schauen ob das Element event. in mehreren Kategorien ist.
    Der Array-Eintrag ['ref'] gibt da Auskunft. Dieser enthält eine kommagetrennte Liste der Ids aus der tl_taxonomy Tabelle. -> unsere Kategorien

    Die Liste arbeitet man für jedes Element ab. Wenn nur ein Eintrag drin steht (nur in einer Kategorie vorhanden) durchläuft die Schleife halt nur einmal.
    Ich habe 4 Kategorien, daher durchläuft die Schleife für dieses Element 4 mal und schaut welche Kategorien es sind und falls es diese noch nicht gibt, erstellt sich eine neue Kategorie.

    Falls keine Kategorie gewählt wurde, wird wieder eine eigenständige erstellt, die sämtliche "herrenlosen" Einträge beherbergt.

    Ziemlich cool es template geworden

    Grüße,
    Tim

    ps. ich muss das mal ins wiki bringen.
    pps. achso, wenn du das ohne accordion haben willst: einfach die classes: toggler, accordion umbenennen oder löschen. Mehr sollte man nicht machen müssen.
    Angehängte Dateien Angehängte Dateien
    Geändert von Tim G (04.04.2011 um 19:18 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  17. #17
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Moin,

    jetzt kommt schonmal keine Fehlermeldung mehr, aber er ordnet jetzt allen Items "Ohne Kategorie" zu. $fieldname ist bei mir 'Kategorie', so wie auch im Backend benannt. Ich habe auch jedem Item mindestens eine Kategorie zugeordnet.

    Gruß,
    Ignatz

  18. #18
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    casesensitiv: $fieldName

    Muss hier ein Feld vom Typ Tags sein.
    Der Spaltenname ist der Wert für $fieldName

    Schau noch mal.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  19. #19
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Sorry, natürlich, ist nur ein Schreibfehler im Post. Im Template heißt es korrekt $fieldName.

  20. #20
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Sind die Kategorien alle in einem Baum in der Taxonomy? Bei mir ist das der Fall.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  21. #21
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Ja, so siehts aus:

  22. #22
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Ok,

    wichtig ist der Spaltenname des KatalogFeldes, das vom Typ Tags ist und als Auswahl für die Kategorien dient.
    Angehängte Grafiken Angehängte Grafiken
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  23. #23
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Der heißt bei mir Kategorie und so ist er auch im Template eingesetzt.

  24. #24
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Dann knallts irgendwo mit all den gleichen Namen.
    Benutz mal für dein Tags Feld einen Spaltennamen :
    1. Kleinbuchstaben (sollte wohl am Besten immer so sein. Wenn man sich die Contao DB ansieht)
    2. einen anderen Namen als der alias von der Taxonomy Spalte.

    Nenn die Spalte doch einfach mal meine_kategorien, oder wie ich category.

    Tim
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  25. #25
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Hallo Tim,

    ich probiere hier alles durch. Habe jetzt auch die Bezeichnung gewählt wie du.
    Immer das gleiche Ergebnis.

    Im Frontend habe ich jetzt ein Accordion "Ohne Kategorie". Das enthält alle Items.

  26. #26
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Mal ganz blöd gefragt
    Haste das richtige Template ausgewählt? Das für die Variante mit Tags?

    Prüf mal noch ob event. eines der Einträge in der Taxonomy Tabelle die ID=1 hat. (Maus über blauem ! schweben lassen)
    Weil ich der "Ohne Kategorie" - Kategorie im Array die 2. Position gebe. Also so tue als ob es eine Kategorie mit der ID=1 gibt.
    Jetzt kann es natürlich sein, dass es wirklich eine Kategorie mit der ID 1 gibt.
    Geändert von Tim G (05.04.2011 um 11:42 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  27. #27
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Ich habe das Template aus dem Post #16 verwendet.
    Und ja, die Stammkategorie also "Kategorie" hat die ID 1.

  28. #28
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Daran wirds liegen.
    Ich benutze eine psydo id für die "ohne kategorie" Kategorie.
    Vielleicht nehme ich das raus.

    Problem ist, das er mit ner 0 hier nicht arbeiten kann.

    Bin grad nicht am Rechner.

    Leg die Stammkategorie nochmal an, dann kriegt sie ne neue id.
    Dann sollte es laufen.

    Tim



    Sent from my iPhone using Tapatalk
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  29. #29
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Gesicht zeigt die Zunge

    Hallo Tim,

    ich habe das mal geändert, also die Stammkategorie neu angelegt, die anderen alle hineingeschoben, alte Stammkategorie gelöscht.

    Jetzt habe ich im Frontend gar kein Accordion mehr. D. h. gar keine Ausgabe mehr.
    Auch nach einschalten der Fehlermeldungen kommt gar nix.

  30. #30
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Gucken wir gleich
    Bin noch inner u bahn


    Sent from my iPhone using Tapatalk
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  31. #31
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    So,
    probieren wir es mal ohne die psydo kategorie:

    Setz mal in Zeile 19:
    PHP-Code:
    $arrCategories[0] = $emptyCategoryName// update category array 
    von 1 auf 0
    Geändert von Tim G (05.04.2011 um 14:40 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  32. #32
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Leider unverändert...

    Ich stresse dich ganz schön.

  33. #33
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    ich hatte grad auch die id geändert.
    dannach muss man nochmal die auswahl machen für die einträge, weil sich die zurücksetzt.

    probier mal nur mit einem eintrag in einer kategorie.

    bei mir sieht das als beispiel so aus:


    bitte hiermit nochmal testen:

    PHP-Code:

    <?php if (count($this->entries)): ?>

    <?php
    $fieldName 
    'category'// field name for creating collections
    $emptyCategoryName 'Ohne Kategorie'// create a seperate category for all items that are not selected in category
    $arrCategories = array(); // collects all catalog entries
    $arrSorted = array(); // collects all sorted catalog entries

    foreach($this->entries as $entry)
    {
        
    #$act = $entry['data'][$fieldName]['value'];
        
    $arrRef $entry['data'][$fieldName]['ref']; // contains the reference to the selected tags
        
        
    if(!$arrRef
        {
            
    // if no category is selected collect all in an extra category
            
    $arrSorted[$emptyCategoryName][] = $entry;
            
    $arrCategories[0] = $emptyCategoryName// update category array
        
    }
        else
        {
            foreach(
    $arrRef as $ref => $value)
            {
                
    $catId $value['id'];
                
    $catName $value['name'];
                
                
    // check if category already exists / or not
                
    if( array_key_exists($catId$arrCategories ) )
                {
                    
    $arrSorted[$catName][] = $entry;
                } 
                else 
                {
                    
    $arrSorted[$catName][0] = $entry// create new category node
                    
                    // add new catagory id for comparing in array_key_exists
                    
    $arrCategories[$catId] = $catName;
                }
            }
        }
        
    ksort($arrCategories);
    }


    /**
     * Get category sorting from tl_taxonomy
     */
    $catalog $this->entries[0]['tablename'];
    $arrCategorySorted = array();
    foreach(
    $arrCategories as $id => $name)
    {
        if(
    $id == 0)
        {
            
    $sorting 1;
            
    $arrCategorySorted[$sorting] = $arrSorted[$name];
            
    $arrCategorySorted[$sorting][0]['togglerLabel'] = $name// remember Category Name
            
    continue;
        }
        
        
    $this->import('Database');
        
    $objField $this->Database    ->prepare("SELECT sorting, name FROM tl_taxonomy WHERE id=? AND pid!=0")
                                      ->
    limit(1)
                                      ->
    execute($id);
        if(!
    $objField->numRows) continue;
        
        
    $sorting $objField->sorting;
            
        
    $arrCategorySorted[$sorting] = $arrSorted[$name];
        
    $arrCategorySorted[$sorting][0]['togglerLabel'] = $name// remember Category Name
        
        
    }

    // Sort
    ksort($arrCategorySorted);
    ?>

    <?php foreach($arrCategorySorted as $key => $entries): ?>
    <?php 
    $category 
    $entries[0]['togglerLabel']; 
    $class strtolowerpreg_replace( array('/ /''/&/'), array('''-'), $category) );
    ?>

    <div class="layout_simple block ce_accordion">
        <div class="toggler <?php echo $class ?>"><h3><?php echo $category?></h3></div>
        <div class="accordion <?php echo $class?>">
        
        <?php foreach($entries as $entry): ?>
            
            <div class="item<?php echo $entry['class'] ? ' '.$entry['class'] : ''?>">
            <?php foreach($entry['data'] as $field => $data): ?>
            <?php if (!in_array($field, array('catalog_name','parentJumpTo'))): ?>
                <?php if($field == $fieldName) continue; ?>            
                <div class="field <?php echo $field?>">
                    <div class="label"><?php echo $data['label']; ?></div>
                    <div class="value"><?php echo $data['value']; ?></div>
                </div>
            <?php endif; ?>
            <?php endforeach; ?>
            </div>
            
        <?php endforeach; ?>
        </div>
        
        <?php if ($entry['showLink'] && $entry['link']): ?>
        <div class="link"><?php echo $entry['link']; ?></div>
        <?php endif; ?>
        <?php if ($entry['linkEdit']): ?>
        <div class="linkEdit"><?php echo $entry['linkEdit']; ?></div>
        <?php endif; ?>
        </div>
        
    <?php endforeach; ?>
    </div>

    <?php else: ?>

    <?php if ($this->condition): ?>
    <div class="condition"><?php echo $this->condition?></div>
    <?php else: ?>
    <p class="info">There are no entries matching your search.</p>
    <?php endif; ?>

    <?php endif; ?>

    ich hab da noch eine Fallunterscheidung eingebaut vor der Datenbankabfrage für das sorting in der tl_taxonomy tabelle. da hat es glaube ich vorher geknallt.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Tim G (05.04.2011 um 14:57 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  34. #34
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Ich habe jetzt die ganzen Tags neu gesetzt. Trotzdem keine Ausgabe im Frontend.
    Es hätte doch dann wenigstens "Ohne Kategorie" da sein müssen.
    Das gibts jetzt auch nicht mehr.

    [EDIT]

    Habe jetzt noch festgestellt, wenn ich in Zeile 19 die ID der neuen Stammkategorie einsetze, dann habe ich wieder ein Accordion "Ohne Kategorie".
    Geändert von Ignatz (05.04.2011 um 14:57 Uhr)

  35. #35
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    probier noch mal den neuen code.

    mehr fällt mir nicht ein. ich hab so ziemlich alle Möglichkeiten durchgespielt. Dann muss es an den Einstellungen vom Tags Feld liegen.
    ich mach mal nen Screenshot.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Tim G (05.04.2011 um 15:07 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  36. #36
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Habe jetzt auch den neuen Code versucht ... Same!
    Meine Tag-Einstellungen habe ich mal angehängt.

    [EDIT]

    Ich sehe gerade, bei dir gibts in Taxonomie nur Kategorien, also nur eine Kategorie, oder?!
    Die anderen Sachen habe ich deinen Einstellungen entsprechend geändert, ohne Erfolg.
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Ignatz (05.04.2011 um 15:13 Uhr)

  37. #37
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Nee, ist bei uns beiden alles richtig.

    Ich glaub wir sind hier voll in nen kleinen bug im catalog gerutscht.

    Sobald ich den Spaltennamen des Tag Feldes umbennene: von "category" auf z.b. "my_category"

    und auf wenn ich $fieldName auf "my_category" setze, habe ich das gleiche Phänomen

    Ein blick in den Code verrät mehr:

    Er updated den Feldnamen nicht im ankommenden Array. Der heisst immer "category", kein Plan warum.
    Ich tippe auf nen kleinen bug.

    Inner Datenbank wirds geupdated. Darum kriegen wir auch nur noch "Ohne Kategorie", weil der keine Einträge findet.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  38. #38
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Uuups...

    Na wenigstens wissen wir jetzt, wo es klemmt.
    Man beginnt ja an sich zu zweifeln.

    Vielen Dank aber für deine Hilfe!

    Gruß,
    Ignatz

  39. #39
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    ja, anscheinend wirklich so.

    benenn den Spaltennamen deines Tags-feldes "category".

    und im template oben den fieldName auch.


    ps. selbst wenn ich das Feld lösche wird es noch mitgeliefert?!

    PHP-Code:
    <?php print_r($this->entries); ?>
    gleich oben
    [data] => Array ( [category] => Array ( [label] => category [type] => [raw] => [value] => )
    Geändert von Tim G (05.04.2011 um 15:33 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  40. #40
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    DU, ich habs!

    Template ist sauber.

    Unser Fehler. Wir müssen in den KatalogListe Modul Einstellungen nach ändern des Spaltennamens natürlich das Feld wieder für die Ausgabe aktivieren! Ei ei ei. hoffentlich liest das keine

    ps. klappt sogar super mit Select Feldern

    wie war das mit dem Wald und den Bäumen...?
    Geändert von Tim G (05.04.2011 um 15:48 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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