Hallo,
ich versuche, wie manch anderer hier auch den Langtext der Kategorie in meinem modifizierten Azure-Theme anzeigen zu lassen.
Nach ausführlicher Recherche stoße ich immer auf den Hinweis zu Lazy Loading.
Kann mir bitte jemand erklären warum der Langtext nicht geladen wird und wie das Problem behoben werden kann.
Wenn es wirklich nur mit Lazy Loading geht müsste ich wissen in welche Datei(en) ich was eintragen muss.
Leider kann ich zu Lazy Loading kein Tutorial finden, obwohl ich gern wüsste wir die Funktionalität aussieht.
Danke!
oxygene
Ich beantworte mir meine Frage mal wieder selber, da ich doch noch etwas unter diesem Link: http://musterdenker.de/2009/09/04/oxid-eshop-enable-lazy-loading-for-categories/ gefunden habe.
Lazy Loading für Kategorien kann also (aktuell) in Zeile 99 der /application/models/oxcategory.php aktiviert werden:
protected $_blUseLazyLoading = true;
+++
Eine Trägheit konnte ich in meinem allerdings relativ kleinem Shop nicht feststellen.
oxygene
Leider zu früh gefreut.
Die Langbeschreibung wird nur 1x geladen. Danach erst wieder wenn ich das tmp Verzeichnis lösche.
Gibt es dafür eine Lösung, außer dass ich den Cache Mechanismus deaktiviere?
oxygene
Wo soll denn der Langtext angezeigt werden?
[QUOTE=nickname;129858]Wo soll denn der Langtext angezeigt werden?[/QUOTE]
Im Template “page/list/list.tpl” in den Unterkategorien (unter ul.subcatList)
Mit meinem bescheidenen Wissen würde ich das so versuchen:
[{assign var="myactCategory" value=$oView->getActiveCategory()}]
[{$myactCategory->oxcategories__oxlongdesc->value}]
[QUOTE=tvtotal;129863]Mit meinem bescheidenen Wissen würde ich das so versuchen:
[{assign var="myactCategory" value=$oView->getActiveCategory()}]
[{$myactCategory->oxcategories__oxlongdesc->value}]
[/QUOTE]
Damit wird in jeder Unterkategorie der Langtext der aktuellen Kategorie angezeigt.
Ich will aber den eigenen Langtext jeder Unerkategorie anzeigen.
Die Anzeige des Langtextes der aktuellen Kategorie funktioniert übrigens bereits korrekt:
[{if $actCategory->oxcategories__oxlongdesc->value }]
<div class=“categoryTopLongDescription” id=“catLongDesc”>[{oxeval var=$actCategory->oxcategories__oxlongdesc}]</div>
[{/if}]
Nur die Unterkategorien funktionieren halt nicht.
oxygene
Rubas
8
[QUOTE=oxygene;129856]Leider zu früh gefreut.
Die Langbeschreibung wird nur 1x geladen. Danach erst wieder wenn ich das tmp Verzeichnis lösche.
Gibt es dafür eine Lösung, außer dass ich den Cache Mechanismus deaktiviere?
oxygene[/QUOTE]
Bisschen länger her, aber konntest du das Problem lösen?
Rubas
9
Hier noch meine gefundene Lösung.
Du musst auch noch manuell den _aFieldnames im Konstruktor der oxCategory setzen.
protected $_blUseLazyLoading = true;
public function __construct()
{
$this->_aFieldNames['oxlongdesc'] = 0;
parent::__construct();
}
Der _sCacheKey wird leider nicht korrekt erweitert beim Lazyloading, so dass beim zweiten (gecachten) Aufruf, dass Feld rausfliegt.
Der Übeltäter ist in der __get Funktion in der oxbase.php
if ($this->_sCacheKey) {
$myUtils = oxRegistry::getUtils();
$sCacheKey = 'fieldnames_' . $this->_sCoreTable . '_' . $this->_sCacheKey;
$aFieldNames = $myUtils->fromFileCache($sCacheKey);
$aFieldNames[$sFieldName] = $iFieldStatus;
$myUtils->toFileCache($sCacheKey, $aFieldNames);
}