Eigene DB-Felder werden nicht ans Template weitergegeben

Hallo,

bisher hat es funktioniert, eigene Datenbankfelder einfach im Template auszulesen.

Beispiel:

[{$_cat->oxcategories__oxbreadcrumb->value}]

… konnte ich bisher in categorylist.tpl so auslesen.
Nach dem Update auf 6.2.0 zeigt …

[{$_cat|print_r}]

… nur noch …



[oxcategories__oxbreadcrumb] =>

…, also ein leeres Feld.

Die Views wurden mehmals neu generiert und tmp mehmals geleert.

Gibt es eine Lösung, ohne die Klasse zu erweitern oder im Template die DB auszulesen?

Danke
Thoni

Scheint alles zu passen, nur das Dein Feld oxcategories__oxbreadcrumb kein Wert besitzt und somit nichts ausgeben kann. Guck am Besten in der Datenbanktabelle nach ob in Deiner konkreten Kategorie welche Du debuggst auch ein Wert enthalten…

1 Like

die CategoryList lädt nicht alle felder, hier musst du als modul das datenbank feld inzufügen.

1 Like

Das war sicher auch angepasst. Vielleicht durch das abgeschaltete Modul? s. Categorielist::_getSelectString(x,x,colums);

1 Like

Der Wert steht drin.

Jetzt bin ich wieder in dem Projekt.

Folgendes ist mir nun aufgefallen:
Wenn ich die Kategorie aufrufe:

[oxcategories__oxbreadcrumb] => OxidEsales\Eshop\Core\Field Object
(
[value] => meine Kategorie
)

… und wenn ich nicht darin bin:

[oxcategories__oxbreadcrumb] =>

… ohne Value.

Liest Du eigentlich alle Beiträge? Ohne Anpassung der Colums wird das nichts

Doch , ich lese. Nett wäre es, wenn du genauer schreiben würdest, wo ich was anpassen muss.

Vor 6.2.0 hat es funktioniert, wie ich geschrieben habe. Wo hat sich denn da was geändert?

Zum Teil funktioniert es auch jetzt - wenn ich in der entsprechenden Kategorie bin. Das hast du sicherlich gelesen.

Mir würde es vielleicht schon helfen, wenn du mir schreiben könntest, wo die Daten zusammengebaut werden und wo gleichzeitig auch entschieden wird, ob die aktuellen Daten zur gerade aufgerufenen Kategorie gehören.

Ich werde dann die Lösung ggf. selber finden.

Ich habe den View aufgerufen.
In oxv_oxcategories_de steht alles so drin, wie es soll.

Ich habe dort kein Modul abgeschaltet.

Im Model steht:

_getSelectString($blReverse = false, $aColumns = null, $sOrder = null)

Die Funktion wird von zwei Stellen aufgerufen.
Immer ist der zweite Parameter (Columns) NULL.
Wo sind da die Änderungen nötig?
Ich bin total ratlos.

Sorry

Diese Felder werden genauso behandelt.
Normalerweise leer.
In der Kategorie selbst gefüllt.

[oxcategories__oxvat] => 
[oxcategories__oxskipdiscounts] => 
[oxcategories__oxshowsuffix] => 
[oxcategories__oxtimestamp] => 
[oxcategories__oxredirect] => 
[oxcategories__oxefichecksum] => 
[oxcategories__oxbreadcrumb] => 

Ich weder an der Stelle mal weiter suchen.

es geht in der aktiven Kategorie weil sie dort nocheinmal gesamt geladen wird

du brauchtst aber sowas noch:

// um dies datei geht es
// vendor\oxid-esales\oxideshop-ce\source\Application\Model\CategoryList.php
// so könnte es aussehen

class xxx_CategoryList extends xxx_CategoryList_parent
{
protected function _getSqlSelectFieldsForTree( $sTable, $aColumns = null )
{
$sFieldList = parent::_getSqlSelectFieldsForTree( $sTable, $aColumns );

    $sFieldList = str_replace( " as oxid,", "as oxid, $sTable.oxbreadcrumb as oxbreadcrumb,", $sFieldList);

	return $sFieldList;
}

}

1 Like

Danke, das werde ich ausprobieren.

Vielen Dank, es funktioniert
Thoni

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