Thoni
August 12, 2021, 1:37pm
1
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
Thoni
August 13, 2021, 3:54pm
6
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
Thoni
August 13, 2021, 4:07pm
8
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.
Thoni
August 13, 2021, 4:17pm
9
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.
Thoni
August 13, 2021, 4:22pm
10
Ich habe den View aufgerufen.
In oxv_oxcategories_de steht alles so drin, wie es soll.
Thoni
August 13, 2021, 4:53pm
11
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
Thoni
August 13, 2021, 5:01pm
12
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
Thoni
August 13, 2021, 5:48pm
14
Danke, das werde ich ausprobieren.
Thoni
August 14, 2021, 5:13pm
15
draufgeschaut:
// so könnte es aussehen
Vielen Dank, es funktioniert
Thoni
system
Closed
August 14, 2022, 5:13pm
16
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.