Hauptkategorie der Artikel in der listenansicht ausgeben

Hallo,

ich hab das forum schon durchsucht aber irgend wie hab ich nix gefunden weißt mi direkt weiter hilft.
Und zwar möchte ich in der kategorieansicht (z.b. listitem_grid.tpl) für jeden artikel gerne die hauptkategorie ausgeben.

Das würde ja mit folgenden sql befehl gehen …

select oxcatnid from oxobject2category where oxobjectid = '3e60ad808dd9664d9ac227d2ddcf0a6f' and oxtime = '0'

Wo und wie kann ich diesen sql befehl am besten unterbringen und dann auf das ergebniss in der listitem_grid.tpl zugreifen. irgend wie kann ich mich heute nicht konzentrieren.

Über paar tips und hilfe würde ich mich freuen.

Grüße

Das sollte getCategory() liefern.

Du meinst [{$oView->getCategory()}] ja? Wenn ich dies in der listitem_grid.tpl abrufen will dann gibt es folgende fehlermeldung und der shop funktioniert nicht mehr richtig.

OXID Logger.ERROR: Function 'getCategory' does not exist or is not accessible! (OxidEsales\Eshop\Application\Component\Widget\ArticleBox)
 ["[object] (OxidEsales\\Eshop\\Core\\Exception\\SystemComponentException(code: 0): Function 'getCategory' does not exist or is not accessible!

Grüße

Für gewöhnlich [{$product->getCategory()}]

Letztlich dann in etwa so: [{assign var="oXXX" value=$product->getCategory()}] [{$oXXX->oxcategories__oxtitle->value}]

1 Like

[{assign var="oXXX" value=$product->getCategory()}] [{$oXXX->oxcategories__oxtitle->value}]

Das funktioniert, also vielen Dank dir :slight_smile:

Ich würde trotzdem gerne verstehen wieso [{$product->getCategory()}] allein nicht funktioniert.

Edit: Ich sehe gerade, das wenn ich [{$product->getCategory()}] nutze, dann spuckt oxid lediglich folgende fehlermeldung aus:

[13 Nov 09:50:13.316410 2018] [uncaught error] [type E_RECOVERABLE_ERROR] [file /var/www/vhosts/hq-fit.de/httpdocs/hqfit/source/tmp/smarty/7ccf5b45910bb882b4a35216a615c53c^%%80^801^801F4923%%listitem_grid.tpl.php] [line 88] [code ] [message Object of class dgMetaTag_oxCategory could not be converted to string]
[13 Nov 09:50:23.704336 2018] [uncaught error] [type E_RECOVERABLE_ERROR] [file /var/www/vhosts/hq-fit.de/httpdocs/hqfit/source/tmp/smarty/7ccf5b45910bb882b4a35216a615c53c^%%80^801^801F4923%%listitem_grid.tpl.php] [line 88] [code ] [message Object of class dgMetaTag_oxCategory could not be converted to string]

Bedeutet das oxid direkt selber kein fehler produziert sondern das metagtag modul anscheinend.

Grüße

Einfach formuliert: In [{$product->getCategory()}] (Objekt) steckt mehr als eine Info. Entsprechend muss nach der Erstellung die Anweisung erfolgen, welche Info daraus ausgegeben werden soll. Mit [{$oXXX->oxcategories__oxid->value}] bekommst die ID usw.

Nachtrag: Die alleinige Verwendung von [{$product->getCategory()}] verursacht einen Fehler, weil das Objekt nicht in einen String konvertiert werden kann.

Einfach formuliert: In [{$product->getCategory()}] (Objekt) steckt mehr als eine Info. Entsprechend muss nach der Erstellung die Anweisung erfolgen, welche Info daraus ausgegeben werden soll. Mit [{$oXXX->oxcategories__oxid->value}] bekommst die ID usw.

Ah ok verstehe. Danke dir :slight_smile:

Und jetzt werd ich bekloppt! Jetzt wollte ich die 2 zeilen in die list.tpl packen, da dort das umschliessende div für die “produktboxen” der listitem_grid.tpl liegt. Denn ich will mir die hauptkategorie als div-klasse anhängen damit ich entsprechende filter setzen kann …

Ich vermute mal weil dort nocht nicht alle relevanten informationen zu den artikeln geladen werden, sondern erst mit dem include der listitem_grid.tpl

<div class="productData col-xs-12[{if $type != 'line'}] col-sm-6 col-md-[{$iColIdent}][{/if}] productBox">
                    [{oxid_include_widget cl="oxwArticleBox" _parent=$oView->getClassName() nocookie=1 _navurlparams=$oViewConf->getNavUrlParams() iLinkType=$_product->getLinkType() _object=$_product anid=$_product->getId() sWidgetType=product sListType=listitem_$type iIndex=$testid blDisableToCart=$blDisableToCart isVatIncluded=$oView->isVatIncluded() showMainLink=$showMainLink recommid=$recommid owishid=$owishid toBasketFunction=$toBasketFunction removeFunction=$removeFunction altproduct=$altproduct inlist=$_product->isInList() skipESIforUser=1 testid=$testid}]
                </div>

Irgend wie werde ich nicht warm mix oxid v6.

Achte auf den anderen Variablennamen “_”

:see_no_evil:

Ich kann mich nur wiederholen und danke dir vielmals für deine hilfe! :slight_smile:

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.