Beschreibung der Kategorie anzeigen (list.tpl)

Hallo,

wenn man auf eine Kategorie klickt, werden ja auch oben die Unterkategorien verlinkt. Ich möchte das list.tpl ergänzen, so dass auch die Beschreibung angezeigt wird (oxlongdesc). Ich habe folgendes im Template ergänzt, um die Spalte oxlongdesc aus der Tabelle oxcategories auszulesen. Leider wird nichts angezeigt:

[{else}] <li><a
id=“test_MoreSubCat_[{$smarty.foreach.MoreSubCat.iteration}]” href="[{
$category->getLink() }]">[{
$category->oxcategories__oxtitle->value }][{ if
$category->getNrOfArticles() > 0 }] ([{
$category->getNrOfArticles() }])[{/if}]</a><br />[{ $category->oxcategories__oxlongdesc->value }]<br /></li>[{/if}]

Hat jemand einen Tipp?

Viele Grüße,

Kathrin

http://www.sinngemaess.de

Ich bin einen Schritt weiter gekommen. Es läuft wohl auf ein Modul hinaus, was ich schreiben muss, weil oxlongdesc wohl nicht zur Verfügung steht an dieser Stelle. Mit Hilfe von diesem Beitrag aus dem alten Forum habe ich folgendes versucht:

Dieses Modul funktioniert jedoch leider nicht für CE Version 4.X

Die Funktion, die überschrieben werden muss ist in der oxcategorylist.php und dort die Funktion _getSelectString(). In der Variablen $sFieldList muss einfach noch das oxlongdesc angefügt werden. Dann kann man oxlongdesc auch wie in meinem Beitrag oben abrufen.

Wenn ich in meinem Modul einfach die komplette Funktion kopieren und an der beschriebenen Stelle mein oxlongdesc einfüge funktioniert es auch:

protected function _getSelectString($blReverse = false) { $oBaseObject = $this->getBaseObject(); $sViewName = $oBaseObject->getViewName(); //$sFieldList = $oBaseObject->getSelectFields(); //excluding long desc $sLangSuffix = oxLang::getInstance()->getLanguageTag(); $sFieldList = “oxid, oxlongdesc, oxactive$sLangSuffix as oxactive, oxhidden, oxparentid, oxdefsort, oxdefsortmode, oxleft, oxright, oxrootid, oxsort, oxtitle$sLangSuffix as oxtitle, oxpricefrom, oxpriceto, oxicon “; $sWhere = $this->_getDepthSqlSnippet(); $sOrdDir = $blReverse?‘desc’:‘asc’; $sOrder = “$sViewName.oxrootid $sOrdDir, $sViewName.oxleft $sOrdDir”; $sFieldList.= “,not $sViewName.”.$oBaseObject->getSqlFieldName( ‘oxactive’ ).” as remove”; return “select $sFieldList from $sViewName where $sWhere order by $sOrder”; }

Das ist natürlich keine Traumlösung, aber ich weiß nicht, wie ich in einem eigenem Modul einfach nur mein oxlongdesc in dieser Funktion ergänzen kann?

Kann mir jemand einen Tipp geben?


http://www.sinngemaess.de

Das sollte dir weiterhelfen:

[{oxhasrights ident=“SHOWLONGDESCRIPTION”}][{ $product->oxarticles__oxlongdesc->value }][{/oxhasrights}]

Ich hab bei mir ein eigenes Template für die Produktliste erstellt, dafür brauchst du nur in der list.tpl die folgende Zeile ändern um diese aufzurufen.

[{foreach from=$oView->getArticleList() item=actionproduct name=test_articleList}][{include file=“inc/product.tpl” product=$actionproduct testid=“action_”|cat:$actionproduct->oxarticles__oxid->value test_Cntr=$smarty.foreach.test_articleList.iteration}][{/foreach}]

Anstelle von inc/product.tpl kannst du dann den Pfad deiner .tpl Datei angeben.

Ich glaub das ist nicht ganz das was ich suche. Denn das Problem ist nicht, dass ichs in smarty nicht aufrufen kann o.ä. sondern das Problem ist, dass der Aufruf von

[{ $category->oxcategories__oxlongdesc->value }]

in Smarty nicht funktioniert, weil in der oxcategorylist.php in der Funktion _getSelectString() die Möglichkeit genommen wurde, dass ich die Langbeschreibung aufrufen kann. Deshalb komme ich meines wissens nicht um ein Modul herum.

Meine Frage war nur, wie ich das Modul besser umsetzen kann, als “einfach” die komplette Funktion zu kopieren und dann nur in der einen Zeile eine Änderung zu machen?

Habe ja nur

$sFieldList = "oxid, oxactive$sLangSuffix as oxactive,
oxhidden, oxparentid, oxdefsort, oxdefsortmode, oxleft, oxright,
oxrootid, oxsort, oxtitle$sLangSuffix as oxtitle, oxpricefrom,
oxpriceto, oxicon ";

geändert in

$sFieldList = "oxid, oxlongdesc, oxactive$sLangSuffix as oxactive,
oxhidden, oxparentid, oxdefsort, oxdefsortmode, oxleft, oxright,
oxrootid, oxsort, oxtitle$sLangSuffix as oxtitle, oxpricefrom,
oxpriceto, oxicon ";

Habe also nur das "oxlongdesc"hinzugefügt, damit ich im smarty wieder problemlos

[{ $category->oxcategories__oxlongdesc->value }]

abfragen kann. Denke, dass das aber vielleicht nicht die Ideallösung beim schreiben eines Moduls ist, oder?


http://www.sinngemaess.de

Was ich dir damit sagen wollte war, dass du es ganz einfach über die product.tpl oder ein eigenes Template mit Smarty einbauen kannst. Dann musst du nicht extra ein Modul dafür schreiben.