Franz Holzinger

Verse of the day

Denn es ist ein Gott und ein Mittler zwischen Gott und den Menschen, nämlich der Mensch Christus Jesus, der sich selbst gegeben hat für alle zur Erlösung, daß solches zu seiner Zeit gepredigt würde;
1 Timotheus 2:5-6

© Bible Gateway's Verse of the Day


autor  
6-05-11 16:54:21 Warum: RECURSIVE CATEGORIES DETECTED!! mbi_products_categories
Franz Mueller
Problem Beschreibung :

TYPO3 4.5.2
tt_products 2.9
mbi_products_categories 0.3.5

1. Ich habe eine sysOrdnerStruktur außerhalb des Seitenbaums angelegt, um die die Produkte grundlegend zu sortieren (zwangweise notwednig, da man sonst einfach den Überblick verliert als Redakteur)
2. Diese Sysordnerstruktur sollte eigentlich vollkommen unrelevant für das Frontend sein. Ich trenne der Ordnung halber immer Listen-Inhalte und Seitenbaum, da sie meiner Meinung nach so klar als unterschiedliche Logik auch vom Redakteur besser unterschieden werden kann.
3. Ich habe außerdem eine SysOrdnerstruktur für die Kategorien angelegt. Diese ist auch recht komplex, weshalb ich ja die mbi_product_categories gekauft habe, um das optimalsmöglich zu verwalten.
4. Ich habe meinen Kategoriebaum aufgebaut, indem ich für fast alle Kategorien eine "parent_category" angeben habe, außer der drei Hauptkategorien, bei denen dann "0" im DB-Feld "parent_category" unter table "tt_products" stehen bleibt (vielleicht ein Problem?).
5. Ich habe das shop-Plugin in die Seite eingefügt und den root-SysOrdner (pid=330) der Produkt-SysOrdnerStruktur unter dem Reiter "Verhalten" bzw. "Behaviour" eingetragen. Aus dem Dropdown darunter habe ich infinite ausgewählt, damit die ganze abhängige sysOrdner-Struktur nach Produkten durchforstet wird. Die Seite zeigt mir nun alle Produkte an, die innerhalb der sysordner-Struktur von den Redakteuren bereits angelegt wurden (einige). Soweit so gut.

6. Wenn ich nun eine oder mehrere Kategorien unter dem Reiter "Plugin" als Filter für die Produkt-Listen-Ansicht hinzufüge, wird mir nichts mehr auf der Frontendseite an Produkten angezeigt. Außerdem wird mir folgende Fehlermeldung im Backend (Plugin) über der Kategorieauswahlmöglichkeit (Cat-Tree) eingeblendet, die ich nicht verstehe, weil ich eine klare Kategoriestruktur aufgebaut habe, welche sich nirgends in den Schwanz beißt. Ist das ein Programmierfehler?

RECURSIVE CATEGORIES DETECTED!!
This record has the following recursive categories assigned: Products%3A%20list 1 ( 1 LIST)
Recursive categories will not be shown in the category tree and will therefore not be selectable. To solve this problem mark these categories in the left select field, click on "edit category" and clear the field "parent category" of the recursive category.

Was könnte ich verkehrt gemacht haben oder woran liegt das Phänomen? Warum haben die Filter nur die Wirkung, dass garnichts mehr angezeigt wird? Es gibt hundertprozentig Produkte dieser Kategorien! Ich gehe außerdem davon aus, dass die Kategorie-Kombinationen ODER verknüpft werden, wenn es funktionieren würde. Wie kann man eine UND-Verknüpfung der Filter erreichen? Geht das über die SQL-Felder weiter unten und könnte ich dafür ein Screenshot-Beispiel bekommen?

7. Gibt es eine Docu mit Screenshots für mbi_products_categories?
Was bedeutet das Dropdown "Parameter: mode" und wie sieht eine beispielhafte Befüllung der SQL Felder weiter unten aus, um damit Filter zu setzen. Wäre es dann nicht sinniger ein fast vollkommen freies SQL-Statement formulieren zu können? Es sind einfach viele Felder, die einen verwirren, wie was in welcher Kombination jetzt Sinn ergibt oder sich wiederspricht wird mir leider nicht erkenntlich und lässt einen nach einiger zeit des Rumprobierens ein wneig schlapp werden ;)

Lieben Gruß
Franz Müller
6-05-11 16:56:44 PS
Franz Mueller
Die Warnmeldung und übrigens immer da... auch wenn das Plugin frisch eingefügt ist und nicht erst, wenn ich Kategorie-Filter für die Produktlistenansicht einstellen möchte.
7-05-11 20:53:24 mbi_products_categories 0.3.5
Franz Holzinger
Ich habe vorsichtshalber eine neue mbi_products_categories 0.3.5 erstellt. Diese ist auch mit TYPO3 4.5.2 getestet. Ich weiß nicht, welche TYPO3 Version Sie verwenden. Die Fehlermeldung wegen rekursiven Kategorien wird fälschlicherweise auch dann angezeigt, wenn ein neuer Seitentyp dazugekommen ist. Dieser Seitentyp muss dann im Programm Code als erlaubt eingefügt werden.

Die mbi_products_categories 0.3.5 funktioniert nur bis tt_products 2.7.x. Für eine höhere Version von tt_products muss mbi_products_categories 0.4.3 bis 0.4.5 bzw. 0.4.x verwendet werden.

Es gibt ein kleines Manual in der Extension mit 2 Bildern und einer Anleitung zur Einrichtung von nsb_cat2menu .

Es sollte am besten kein Parameter des Plugins einfach ausprobiert werden. Denn damit kann man die Anzeige komplett deaktivieren. Das Dropdown "Parameter: mode" bedeutet, dass man damit einen speziellen Testmodus fahren kann. Das dient dazu, dass man ein Plugin auf einer Live Seite vorher schon austesten kann, bevor es für andere sichtbar wird. Es muss im Setup einfach ein mode=1 für einen bestimmten FE Benutzer aktiviert sein. Dann werden alle Plugins mit mode=1 und 0 aktiv.

Die SQL Statements werden vom Shop erzeugt. Ich denke, dass es nicht so einfach wäre, diese selber im Plugin einzugeben. Und außerdem müssen ja auch die Übersetzungstabellen berücksichtigt werden und die Mehrfachkategorien.
Am besten lassen Sie sich die vom Shop erzeugte SQL Anweisung anzeigen.
9-05-11 14:06:56 funktioniert - Problem gelöst
Franz Mueller
Mit mbi_products_categories 0.4.3 ließ sich die angesprochene Problem beheben. Und die anderen Antworten haben mich auch gut weiter gebracht.

Super und vielen Dank!
Übrigens habe ich meine TYPO3-Version oben benannt.

Das mit den SQL-Abfragen ist allerdings etwas schade. Bei tt_news gibt es ja noch ein select-feld zur Filterauswahl der Kategorien aus dem man folgende Optionen wählen kann.

1) Show all (don't care about selection below)
2) Show items with selected categories (OR)
3) Show items with selected categories (AND)
4) Do NOT show items with selected categories (AND)
5) Do NOT show items with selected categories (OR)

Diese halte ich für sehr wichtig, um eine angemessene Flexibilität zu ermöglichen. Ist das irgendwie möglich? Ansonsten muss man doch wieder ein sehr redundantes Kategoriekonstrukt bauen, mit einem relativ geringem Grad an "Normalisierung". Momentan ist Fall 2 ja defaultmäßig der Stand der Dinge, trifft aber nicht unsere Bedürfnisse (Option 3).

Die Multikategorisierung hat außerdem zur Folge, dass die Produkte in der LIST-Ansicht nach Kategorien gruppiert angezeigt werden. Nur die Kategorien, welche ausgewählt sind, werden nicht als Zwischenüberschrift angezeigt. Zwar habe ich den Marker für die Zwischenüberschriften entfernt, weil ich aber die mehrspaltige Ansicht benötige

plugin.tt_products.conf.tt_products.ALL.displayColumns {1 = 2}


... werden in einige table-td-TAGs leer gelassen, weil eine neue Kategoriegruppierung beginnt. Gruppiert wird bei tt_products in der LIST-Ansicht nur nach den Kategorien, die ich !nicht! über mbi_products_categories angebeben habe, die aber in der Produktliste enthaltene Produkte trotzdem besitzen. Ich verhindere die Gruppierung also indem ich alle Kategorien angebe, die gewünscht sind und dann hoffentlich keine weiteren bei jedem angezeigten Produkt mehr übrig bleiben.

fiktives Beispiel:
Ein Produkt ist von der Kategorie "Geländewagen", "Fantasie-Automarke", "Gebrauchtwagen".
Ich setze für Produktliste den Filter "Geländewagen".
tt_products zeigt dann in der Listendarstellung auf dieser Seite alle Geländewagen und gruppiert nach Automarken und Gebrauchtwagen/Neuwagen. Weil tt_products sich aber nicht entscheiden kann, welche von den Kategorien wichtiger ist, für alle angezeigten Autos, dann zufällig mal die eine Kategorie oder die andere - vermutlich abhängig, welche zuerst erstellt wurde. Ich würde diese Gruppieren daher am liebsten enfallen lassen. Und unter jedes Produkt einen Marker setzen, welcher die Liste der Kategorien enthält, so wie bei tt_news. UND GUT ;)

Wie ist es möglich das Dilemma aufzulösen? TScript? Oder geht das nicht ohne den PHP-Quellkode anzufassen und wenn dann wo?

Lieben Gruß
10-05-11 10:44:37 Gruppierung lässt entfernen durch Weglassen entsprechender Marker
Franz Mueller
Ok... Man muss einfach die Marker (siehe unten) im template weglassen. Nunjaaa... Ich hatte diese noch über der Produktliste eingefügt mit der Idee dort eine Kategorieliste ausgeben zu lassen.

<!-- ###ITEM_CATEGORY### begin -->
###GW1B### <!--###LINK_CATEGORY###begin-->
###CATEGORY_TITLE###
<!--###LINK_CATEGORY### end-->
###GW1E###
<!-- ###ITEM_CATEGORY### end -->

Dennoch ist natürlich eine entsprechende Selectbox für die Verknüpfungslogik der Kategoriefilter wie in tt_news unbedingt für mbi_product_categories sinnvoll.
10-05-11 22:37:56 UND-Verknüpfung
Franz Holzinger
Der Punkt "3) Show items with selected categories (AND)" müsste noch als UND-Verknüpfung programmiert werden. Derzeit ist nur das ODER möglich, bei dem alle Produkte aus einer der ausgewählten Kategorien angezeigt werden. Das müsste innerhalb von tt_products und tlw. auch in mbi_products_categories programmiert werden.







< Zurück zum Forum