Metadata.php fragen

Hallo,

so sieht meine modul php datei aus:

<?php

class hd_categorylist extends hd_categorylist_parent {

protected function _getSqlSelectFieldsForTree($sTable, $aColumns = null)
{
$sFieldList = parent::_getSqlSelectFieldsForTree($sTable, $aColumns);
$sFieldList .= " ,$sTable.oxthumb as oxthumb, $sTable.oxthumb_1 as oxthumb_1  ";
return $sFieldList;
}

}

?>

So sieht meine metadata.php aus:

<?php
/**
 * Module information
 */
$aModule = array(
    'id' => 'hd categorylist',
    'title' => 'hd categorylist',
    'description' => 'oxthumb aus der bd aulesen',
    'thumbnail' => 'picture.jpg',
    'version' => '0.9',
    'author' => 'gajel',

    'extend' => array(
        'oxcategorylist' => 'hd-catthumb/hd_categorylist',
    ),

    'files' => array(
        'hd_categorylist' => 'hd-catthumb/hd_categorylist.php', 
    ),

);
?>

Oderstruktur:

modules/hd-catthumb/metadata.php
modules/hd-catthumb/hd_categorylist.php

Trotzdem kann ich in der list.tpl

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

nicht aufrufen bzw. es ist leer.

Wo liegt mein fehler? Würde mich über hilfe freuen.

Shop-version 4.6.1 / basic theme

Grüße

Wirklich keiner eine idee?

Probier mal alist zu extenden.

Geht leider auch nicht. Hier ist der moduleintrag im backend ebenfalls rot und durchgestrichen.

Ich hab absolut keien ahnung mehr.

Achso, dann such dir mal den Beitrag vom Löschen der Moduleinträge. Danach alle Moduls einschalten.


    'files' => array(
        'hd_categorylist' => 'hd-catthumb/hd_categorylist.php', 
    ),

Das muss weg. Das files array ist nur für eigene Klassen die keine bekannte Klasse erweitern. Aus oxconfig den Eintrag löschen bei dem oxvarname=aDisabledModules ist und /tmp leeren.

Ich habs ma probiert. Der moduleintrag ist jetzt nicht rot und durchgestrichen aber leider gibt mit “[{ $category->oxcategories__oxthumb->value }]” immer nich ein leeren wert zurück.

Ergänze ich die funktion direkt in der oxcategorylist.php (zeile 104) im core ordner um die zeile:

$sFieldList .= " ,$sTable.oxthumb as oxthumb, $sTable.oxthumb_1 as oxthumb_1  ";

dann kriege ich auch den entsprechenden wert aus dem db-feld zurück.

Fehler muss also irgend wo im “modul” liegen. Schade :frowning:

Gibt es sonst noch eine möglichkeit die gewünschte db-felder in den tpl’s auszulesen?

Grüße

Für oxthumb gibt es auch das hier: http://musterdenker.de/2009/09/04/oxid-eshop-enable-lazy-loading-for-categories/

404 bei der zip datei :frowning:

evtl. hat jemand das modul noch und kann es hier anhängen, wäre spitze :slight_smile:

Vielen Dank :slight_smile:

EDIT: eine einzige php datei mit folgenden code? Da fehlt doch was oder?

class mude_lazyloading extends mude_lazyloading_parent
{
	public function __construct()
	{
		$this->_blUseLazyLoading = true;
		self::$_blDisableFieldCaching[get_class($this)] = true;
		parent::__construct();
		
	}
}

Nein das ist alles. Entweder im Backend eintragen: “oxcategory => mude_lazyloading” oder eine metadata.php dafür erstellen.

Ich hab mir eine metadata.php erstellt und nun klappt es eigentlich. Leider kann ich nur oxthumb auslesen. oxthumb_1, oxthumb_2 usw. gibt mir immer ein leeren wert zurück. Gibt es denn wirklich keine möglichkeit auf jedes gewünschte feld im template zu zugreifen?

Grüße

oxthumb_1 und oxthumb_2 sind multilang Felder, wenn die Kategorie in englisch geladen wird, steht in [{ $category->oxcategories__oxthumb->value }] automatisch der Wert aus oxthumb_1.