Artikel von Unterkategorien anzeigen

Hallo,

ich bin gerade dabei Artikel von Unterkategorien in der Oberkategorie anzeigen zu lassen. Die Unterkategorien werden im Azure ja schon angezeigt mit Thumbnail.
Ich würde gerne darunter noch die Artikel der jeweiligen Unterkategorie anzeigen lassen.

Hab mal hiermit angefangen:


<ul class="subcatList clear">
  <li>
    [{foreach from=$oView->getSubCatList() item=category name=MoreSubCat}]
                    
      [{if $category->getIsVisible()}]
      [{assign var="iSubCategoriesCount" value=$iSubCategoriesCount+1}]
      [{assign var="iconUrl" value=$category->getIconUrl()}]
                        
<div class="pageHead">
  <h3>
    <a id="moreSubCat_[{$smarty.foreach.MoreSubCat.iteration}]" href="[{ $category->getLink() }]">
    [{$category->oxcategories__oxtitle->value }][{ if $oView->showCategoryArticlesCount() && ($category->getNrOfArticles() > 0) }] ([{ $category->getNrOfArticles() }])[{/if}]
    </a>
  </h3>
</div>
                            
[B][{include file="widget/product/list.tpl" type=$oView->getListDisplayType() listId="productList" products=$oView->getArticleList()}][/B]
[{include file="widget/locator/listlocator.tpl" locator=$oView->getPageNavigationLimitedBottom() place="bottom"}]
                             
      [{/if}]
    [{/foreach}]
  </li>
</ul>

Wie schreibe ich das rotmakierte um, sodass er die Artikel nicht aus der Oberkategorie holt, sondern der Unterkategorie?

Grüße

Forensuche verwendet?

http://forum.oxid-esales.com/showthread.php?t=6368#post40469

Das habe ich auch gefunden und getestet.
Aber nach der Bearbeitung werden keine Kategorien mehr angezeigt, die Unterkategorien haben.
Wenn ich auf eine Oberkategorie klicke die Unterkategorien enthält, komme ich wieder auf die Startseite.

Sorry das ich diese alten Thread ausgrabe.
Aber ich hatte gerade das gleiche Problem und nachdem nix zu finden war habe ich mir mal eine Lösung zusammen geschustert (teilweise aus oben gepostetem link abgespickt).
Es ist wirklich ein bischen anstrengend das man bei oxid ständig das Rad neu erfinden muss deswegen stell ichs jetzt mal zur Verfügung.
Getestet unter 4.7 CE
Modul ist im Anhang.

Und in den templates dann
Statt


[{include file="widget/product/list.tpl" type=$oView->getListDisplayType() listId="productList" products=$oView->getArticleList()}]

heisst es dann eben


[{include file="widget/product/list.tpl" type=$oView->getListDisplayType() listId="productList" products=$oView->getSubCatArticleList()}]

Code/Modul ist Beerware. :slight_smile:

Danke, Honk!

Du hast nicht zufällig einen GitHub Account, auf dem Du das Modul zur Verfügung stellen kannst? Dann könnten nämlich verschiedene Leute daran arbeiten und immer wieder anpassen, so dass man das Rad nicht ständig neu erfinden muss, weisst? ^^

Gruß

@honk:

danke für das Mini MOdul, es funktioniert prima.

Nur eine kleine Anmerkung: die Pagination funktioniert nur im unteren Teil unter den Artikeln, nicht aber oben im Locator über den Kategorien.

Lösung selber gefunden:

ergänzen im Code: products=$oView->getSubCatArticleList()

[{include file="widget/locator/listlocator.tpl" products=$oView->getSubCatArticleList() locator=$oView->getPageNavigationLimitedBottom() attributes=$oView->getAttributes() listDisplayType=true itemsPerPage=true sort=true }]

Hey,

hab die Idee noch mal umgesetzt und als Modul auf GitHub gestellt:

Der alist Controller nutzt jetzt standartmäßig das “rekursive” Verhalten. Das oxarticlelist Model wurde aber nur ergänzt, die Änderungen sollten sich also nur auf die Kategorie-Ansicht auswirken. Template-Anpassungen sind nicht nötig.

Session-Filter habe ich nicht getestet. Eigentlich sollten die nicht funktionieren. Werde mir das noch anschauen…

VG,
Christian

Find ich gut. Danke Christian :slight_smile:

Gruß

Es gibt noch ein Problem mit der Lösung. Wenn ein Artikel in mehreren Kategorien ist, wird in der Kategorie-Ansicht möglicherweise ein Link generiert, der zu dem Artikel in der falschen Kategorie führt.

Genauere Beschreibung hier:

Wenn jemand Tipps hat, wie man das Problem elegant lösen kann, würde ich mich freuen. Möchte nicht zu sehr in den OXID Code eingreifen.

Problem ist behoben.

Hi,

ich hab mal versucht das Modul auf die V4.8 anzuwenden aber es lässt sich nicht aktivieren.
Wird daran noch weiter gebastelt oder gibt es eine Idee wie man das Modul anpassen könnte?

Danke!

[QUOTE=Appovis;134937]
Wird daran noch weiter gebastelt oder gibt es eine Idee wie man das Modul anpassen könnte?
[/QUOTE]

Ich habe das Modul noch nicht mit 4.8 verwendet, das kann auch noch ein wenig dauern.

Eine genaue Problembeschreibung wäre dann hilfreich, danke!

Vorweg einmal gesagt das ich zwar ein grundlegendes Verständnis von Programmierung im allgemeinen habe aber mich mit dem Oxid System nicht allzu tief im Detail auskenne…

Wenn ich dein Packet ins Modulverzeichniss kopiere heißt der Ordner “dk_recursivecats-master”.
Im Backend wir darüber gemeckert das “Es gibt registrierte Erweiterungen im eShop, deren Verzeichnis nicht vorhanden ist.” welches sich auf dein Modul bezieht - genauer:


alist=>dk_recursivecats/controllers/dk_recursivecats_alist
oxarticlelist=>dk_recursivecats/models/dk_recursivecats_oxarticlelist
oxseoencoderarticle=>dk_recursivecats/models/dk_recursivecats_oxseoencoderarticle

was ja auch logisch klingt da der pfad nicht passt - dk_recursivecats/ ist ja nicht gleich dk_recursivecats-master/

versuch ich dennoch dein Modul zu aktivieren geschieht Garnichts - das backend wird neu geladen, das Modul ist weiterhin inaktiv.

Ändere ich das Stammverzeichniss deines Moduls von “dk_recursivecats-master” zu “dk_recursivecats” verschwindet das Modul aus der Modulübersicht aus dem Backend?

Exeptions log ist leer.

Mir drängt sich der Verdacht auf das ich hier irgendwas grundlegendes falsch mache ?!?

Hi,

der Download von GitHub gibt Dir immer das -master (vom Branch) hinten dran. Wahrscheinlich bist Du noch eine Ebene zu weit oben :wink:

Gruß

Ach - und dann sieht es noch aus, als wäre das Modul noch nicht auf die Struktur ab 4.7 angepasst. Die ältere Struktur funktioniert dann wahrscheinlich ab 4.8 nicht mehr. Such mal bitte bei mir auf dem Blog, dort hab ich mal so ein “How to write a module” ab 4.7 geschrieben.

Gruß

Hi, wenn ich das -master entferne verschwindet das Modul aus der Übersicht im Backend?

Das Modulverzeichnis besteht aus der metadata und den weiteren Verzeichnissen wobei das Modulverzeichnis im Verzeichnis “modul” des Shops ist wo auch die anderen Modulverzeichnisse liegen wie Paypal und co.

Das sollte doch so passen oder?

Nichts desto trotz müsste das Modul doch so eingebunden im Backend zu sehen sein?

Gibt es den eine übersicht welche Strukturellen ändereungen es von 4.7 auf 4.8 gibt sodass man sich ggf. mit der anpassung beschäftigen kann?

Vielen Dank schon mal für die unterstüzung!

Ja. Änder mal die Schreibberechtigung :wink:

Nicht unbedingt: http://forum.oxid-esales.com/showthread.php?t=20667

Nachtrag: Nur den Blob in oxvarvalue entfernen.