ich lese mit folgendem Befehl alle Kategorien eines Produktes in der details.tpl aus und gebe dieser wieder aus sowie verlinke sie mit sich selber. Klappt alles sehr gut soweit, dank der Hilfe im Forum hier.
Jetzt ist meine Frage, wie ich diese Ausgabe der Kategorien sortieren kann, denn die <li> Liste läuft unsortiert runter. In der list.tpl werden Kategorien ja auch sortiert aber ich finde trotzdem nicht raus wie ich das hinkriegen kann.
Hallo,
kann mir jemand sagen, wie ich das so organisieren kann, dass sämtliche Kategorien eines Artikels “alphabetisch” sortiert werden.
Was muss ich da wo verändern, um das bei der?SQL Abfrage zu lösen?
[QUOTE=caladan;68113]ich rate jetzt einfach mal und sag, das am ende der abfrage der kaegorien des artikels einfach ein: “order by oxtitel ASC” kommt[/QUOTE]
Hallo,
danke für die Antwort. Mein Problem ist, dass ich die Funktion nicht finde, die diese Abfrage macht.
Wenn ich mich auf den Code beziehe scheint es from=$product->getCategoryIds() zu sein.
Diese finde ich in oxarticle.php.
public function getCategoryIds( $blActCats = false, $blSkipCache = false )
{
$myConfig = $this->getConfig();
if ( isset( self::$_aArticleCats[$this->getId()] ) && !$blSkipCache ) {
return self::$_aArticleCats[$this->getId()];
}
// variant handling
$sOXID = $this->getId();
if (isset( $this->oxarticles__oxparentid->value) && $this->oxarticles__oxparentid->value) {
$sOXID = $this->oxarticles__oxparentid->value;
}
// we do not use lists here as we dont need this overhead right now
$sSql = $this->_getSelectCatIds( $sOXID, $blActCats );
$oDB = oxDb::getDb(true);
$rs = $oDB->execute( $sSql );
$aRet = array();
if ($rs != false && $rs->recordCount() > 0) {
while (!$rs->EOF) {
$aRet[] = $rs->fields['oxcatnid'];
$rs->moveNext();
}
}
// adding price categories if such exists
$sSql = $this->getSqlForPriceCategories();
$oDB = oxDb::getDb( true );
$rs = $oDB->execute( $sSql );
if ($rs != false && $rs->recordCount() > 0) {
while (!$rs->EOF) {
if ( is_array( $rs->fields ) ) {
$rs->fields = array_change_key_case( $rs->fields, CASE_LOWER );
}
if ( !$aRet[$rs->fields['oxid']] ) {
$aRet[] = $rs->fields['oxid'];
}
$rs->moveNext();
}
}
return self::$_aArticleCats[$this->getId()] = $aRet;
}
Allerdings scheitern hier sämtliche Versuche das einzubauen.
Bitte um Hilfe!
Danke und Gruß,
Norbert