ich möchte in einem Plugin eine Core Function replacen. Das Problem ist, dass in dieser Function eine weitere private Function aufgerufen wird. Da diese „privat“ ist, kommt die Fehlermeldung " Call to private method sAdmin::processOpenOrderDetails() … 503 Service Unavailable".
Wie kann ich aus einem Plugin auf eine Private Methode zugreifen?
das ist quatsch, du kannst nur die private function nicht hooken, die public aber schon. das ist ja der unterschied zwischen public und private. da muss man, falls es unverständlich ist, mal in der doku nachschauen. aber nicht in der shopware doku, die ist nicht allumfassend
Wie kann ich aus einem Plugin auf eine Private Methode zugreifen?
Und hier lautet die Antwort: das kann man nicht. Der Fehler wird verursacht, da du in deinem Hook die Methode „processOpenOrderDetails“ aufrufst. Und das geht schlicht weg nicht.
Solltest du die Methode in deinem Hook nicht aufrufen (davon gehe ich jedoch nicht aus) dann zeige uns bitte deine Hook Methode. Dann kann man dir sicher weiterhelfen
$sql = „“; // Inhalt hab ich ausgelassen, dass der Schnipsel nicht zu lang wird
$getOrders = Shopware()->Db()->fetchAll(
$sql,
array(
Shopware()->Session()->offsetGet(‚sUserId‘),
$mainShop->getId()
)
);
$foundOrdersCount = (int)Shopware()->Db()->fetchOne(‚SELECT FOUND_ROWS()‘);
foreach ($getOrders as $orderKey => $orderValue) {
$getOrders[$orderKey][„invoice_amount“] = Shopware()->Modules()->Articles()
->sFormatPrice($orderValue[„invoice_amount“]);
$getOrders[$orderKey][„invoice_amount_net“] = Shopware()->Modules()->Articles()
->sFormatPrice($orderValue[„invoice_amount_net“]);
$getOrders[$orderKey][„invoice_shipping“] = Shopware()->Modules()->Articles()
->sFormatPrice($orderValue[„invoice_shipping“]); // Durch die folgende Zeile entsteht die Fehlermeldung:Call to private method sAdmin::processOpenOrderDetails() … 503 Service Unavailable"
$getOrders = Shopware()->Modules()->Admin()->processOpenOrderDetails($orderValue, $getOrders, $orderKey);
Hat soweit funbtioniert! Keine Fehlermeldung :-)! Nur zeigt er mir jetzt keine Bestellungen im Account an, weil ich im Plugin noch etwas umschreiben muss:
In der sAdminProxy.php steht:
public function sGetOpenOrderData($destinationPage = 1, $perPage = 10)
{
return Shopware()->Hooks()->executeHooks(
$this, 'sGetOpenOrderData', array('destinationPage'=>$destinationPage, 'perPage'=>$perPage)
);
}
In meinem Plugin habe ich jetzt die “Pages” wir folgt geändert:
public function replaceGetOpenOrderData(Enlight_Hook_HookArgs $arguments)
{
$destinationPage = $arguments->get('destinationPage');
$perPage = $arguments->get('perPage');
Das ist leider nicht richtig. Sorry ich bin Anfänger. Kann mir jemand helfen wie die Schreibweise richtig ist, dass er die Seitenzahlen im Plugin erkennt?