Modul zerschiesst Design

Hallo Leutz,

ich versuche mich gerade an meinem ersten Modul. Und was soll ich sage ich bin bis jetzt gescheitert!
Kurze Einführung:
Ich möchte erreichen das in der listitem_infogrid.tpl der geringste Variantenstaffelpreis angezeigt wird. Dazu habe ich folgenden Beitrag gefunden.

Nun mal zu den Dateien:

das ist meine sp_price.php

<?php 

class sp_lowestprice extends sp_lowestprice_parent
{
    public function loadLowestPrice()
    {
        $_amountprice = parent::loadAmountPriceInfo();
        if($_amountprice)
        {
            $minprice = -1;
            foreach($_amountprice as $price)
            {
                if($minprice == -1 || (float)$price->fbrutprice < (float)$minprice)
                    $minprice = $price->fbrutprice;
            }
            return oxLang::getInstance()->translateString('priceFrom').' ' . $minprice;
        }
        else
        {
            return parent::getFPrice();
        }
    }
}

Das ist meine metadata.php:


<?php
$sMetadataVersion = '1.1';
$aModule = array(
		'id' => 'sp_Lowestprice',
		'title' => '<strong style="color:#006a8c;border: 1px solid #e30061;padding: 0 2px;background:white;">SP_LOW</strong>',
		'description' => 'show the lowest Price of Variants in the Frontend',
		'thumbnail' => ' ',
		'version' => '1.0',
		'author' => 'oxid Forum',
		'email' => 'oxid Forum',
		'url' => 'http://forum.oxid-esales.com',
		'extend' => array(
				'oxarticles' => 'lowestprice/sp_price'
		)
);

Und hier nun der Auszug aus der listitem_infogrid.tpl:

[{block name="widget_product_listitem_infogrid_price_value"}]
                                [{if $product->getFPrice()}]
                                    <span class="price"><span>
                                        [{if $product->isRangePrice()}]
                                                [{ oxmultilang ident="PRICE_FROM" }]
                                                [{if !$product->isParentNotBuyable() }]
                                                    [{ $product->getFMinPrice() }]
                                                [{else}]
                                                    [{ $product->getFVarMinPrice() }]
                                                [{/if}]
                                        [{else}]
                                                [{if !$product->isParentNotBuyable() }]
                                                    [{ $product->loadLowestPrice() }]
                                                [{else}]
                                                    [{$product->loadLowestPrice() }]
                                                [{/if}]
                                        [{/if}]</span>
                                    [{ $currency->sign}]
                                    [{if $oView->isVatIncluded() }]
                                         [{if !($product->hasMdVariants() || ($oViewConf->showSelectListsInList() && $product->getSelections(1)) || $product->getVariants())}]*[{/if}]</span>
                                    [{/if}]
                                [{/if}]
                            [{/block}]

So wenn ich nun das Modul aktiviere wird keine CSS geladen und das komplette Design fehlt und der Preis wird auch nicht so angezeigt wie ich das will. Wo ist das Problem?

Basti

wirf mal einen Blick in den Webserver Error log rein.
Das beschriebene Verhalten taucht meistens auf, wenn irgendwo eine Klammer fehlt oder ein [{/if}] oder ein Semikolon. Vielleicht auch irgendwas mit “can not run Function on a non-object”

Da wird stehen, was genau für ein Fehler da ist und in welcher Datei.

Hallo Vanilla,

also im log steht folgendes:

[23-Mar-2013 17:53:48 UTC] PHP Warning: Smarty error: unable to read resource: “widget/product/listitem_infogrid.tpl” in D:\xampp\htdocs\oxid\OXID_ESHOP_CE_4.7.2_53018\core\smarty\Smarty.class.php on line 1093

Aber nach nochmaligem und intensieverem lesen des o.g. Beitrages glaube ich das ich mit dem Modul nicht das richtige hab.
Kann das sein?
Nachtrag: Ich glaube es liegt am Aufruf der Funktion:

$product->loadLowestPrice()

Ist das vieleicht falsch?

“unable to read resource” bedeutet, dass der Webserver die Datei nicht auslesen kann.
Der Grund hierfür könnte sein, dass die Datei nicht existiert oder nicht lesbar ist.
Eventuell hast du aus Versehen die Datei vom Server gelöscht oder umbenannt oder verschoben.
Oder wenn du die Datei direkt auf dem Server bearbeitet hast, kann es passieren dass der Editor die Dateizugriffsrechte geändert hat, sodass der Webserver die Datei nicht mehr lesen darf.

Du kannst das Modul ja mal deaktivieren und nochmal schauen

Hallo,

Aber das “Modul” ist deiner Meinung nach schon ok, oder?

ich konnte keine Fehler finden, ich habs aber auch noch nicht im echten Shop getestet

Ich habe mir jetzt mal mit

[{debug}]

alle Variablem des Templates und dort sollte doch das

“loadLowestPrice()” in der Section $product auftauchen oder habe ich da einen Denkfehler?

und die Fehlermeldung hast du beseitigen können?

ich denk nicht, denn das ist eine Funktion und keine Variable.
mach mal [{$product|var_dump}]
wenn dort dann steht object(oxarticle) ( … …)
dann hats nicht funktioniert, wenn da aber “sp_lowestprice” statt “oxarticle” steht, dann funktioniert das MOdul