Mobiles Template / Marken / Hersteller

Hi zusammen,

hat schon wer die Herstelleransicht im mobilen Template verbaut?

Ich erhalte leider noch folgende Fehlermeldung:


 Faulty component --> 
---------------------------------------------
oxSystemComponentException-oxException (time: 2013-09-18 17:44:03): [0]: Function 'getParentCategory' does not exist or is not accessible! (oxManufacturer)
 
 Stack Trace: #0 [internal function]: oxSuperCfg->__call('getParentCatego...', Array)
#1 /html/oxid/tmp/smarty/386daf9709b6c08d078927e7e243a494^%%F0^F0F^F0F92504%%list.tpl.php(6): oxManufacturer->getParentCategory()
#2 /html/oxid/core/smarty/Smarty.class.php(1263): include('/html/oxid/tmp/...')
#3 /html/oxid/core/oxshopcontrol.php(528): Smarty->fetch('page/list/list....', 'eed9a2b7d817b4e...')
#4 /html/oxid/core/oxshopcontrol.php(396): oxShopControl->_render(Object(oeThemeSwitcherManufacturerList))
#5 /html/oxid/core/oxshopcontrol.php(156): oxShopControl->_process('manufacturerlis...', NULL, NULL, NULL)
#6 /html/oxid/modules/su/su_shopcontrol.php(18): oxShopControl->start()
#7 /html/oxid/core/oxid.php(40): su_shopcontrol->start()
#8 /html/oxid/index.php(28): Oxid::run()
#9 /html/oxid/oxseo.php(46): require('/html/oxid/inde...')
#10 {main}

Hallo Chris,
ist zwar schon ein recht alter Thread, aber ich hatte das selbe Problem und es ist im aktuellen mobile Theme noch nicht gelöst. Vielleicht haben das Problem auch noch andere.
Hier die Lösung:
Im Template mobile/tpl/page/list/list.tpl die ersten Zeilen ändern in:


[{assign var="actCategory" value=$oView->getActiveCategory()}]
[{assign var="listType" value=$oView->getListType()}]
[{if $listType != 'manufacturer'}]
    [{assign var="parentCategory" value=$actCategory->getParentCategory()}]
[{/if}]

Auf der Markenseite ruft er die Methode getParentCategory dann nicht mehr auf und läuft deshalb nicht mehr in den Fehler.

Ich habe den Fix als Pull-Request in Github eingestellt, so dass er vielleicht auch im Standard mobile Theme bald vorhanden ist.

Grüße
Fabian

Hi Fabian,
ein ähnliches Problem ist schon im Bugtracker eingetragen.
Da bzw. im dort verlinkten Thread hier im Forum wurde schon ein ähnlicher Lösungsvorschlag gemacht. Vielleicht willst du auf den Bugeintrag in deinem PR verweisen?
Die eigentliche Ursache kann ich mir immer noch nicht erklären.

Hallo Martin,
ja, das Problem ist analog zum Marken-Seiten Problem.

Die Ursache ist, dass das list-Template für verschiedene Controller verwendet wird (alist, manufacturerlist, vendorlist, etc.). Je nachdem, welcher Controller aktiv ist, gibt getActiveCategory eine andere Klasse zurück. Entweder ein oxcategory Objekt bei der alist, ein oxmanufacturer Objekt bei der manufacturerlist, usw… Im nächsten Schritt wird auf diesem Objekt die Methode getParentCategory aufgerufen. Diese Methode gibt es aber nur in der oxcategory. Daher fällt er bei allen anderen Objekten wie bei oxmanufacturer Objekten auf die Nase.

Ich schreibe das noch in den Bugeintrag.

Grüße
Fabian

Mit diesem Code würde man beide Fehler beheben:
[{ if $oViewConf->getActiveClassName() == ‘alist’}]
[{assign var=“parentCategory” value=$actCategory->getParentCategory()}]
[{/if}]

Grüße
Fabian