Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare ...

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
Ich habe heute angefangen ein Plugin zu schreiben um die ganze Sache zu verstehen. Das Plugin sucht anhand der Artikel EAN bei Amazon den Preis und gibt diesen im Template aus.
Soweit so gut. Wenn ich nun allerdings einen Artikel mit Variationen habe und diese wechseln möchte bekomme ich einen 500 Error.
Im Log wird folgendes geschrieben "Cannot redeclare getAmazonPrice() ..."

Die Funktion wird beim Seitenaufbau aufgerufen, bei Variationswechsel wird die (so glaube ich?) nicht nochmals aufgerufen und es kommt zum Fehler.

Ich habe jetzt mehrere Stunden hin und her probiert bevor ich hier um Hilfe frage.
Hat jemand eine Idee?

XML:
<Hook id="140">amazon.php</Hook>

PHP:
PHP:
$oArtikel = $smarty->get_template_vars('Artikel');

// hier rufe ich die Funktion auf .. ich denke hier liegt der Hund begraben ?
if (isset($oArtikel->cBarcode)){$response = getAmazonPrice("de", $oArtikel->cBarcode);}

// hier kommt die Funktion .. also nix besonderes
function getAmazonPrice($region, $asin) {

*
*
*

pq('#mytabset')->append($cPin_It_Button);

TPL Datei:
{$pinterest_preis}
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Hallo,

der hook140 wird normalerweise nicht beim reload von Varkombi-Kindartikel via ajax noch mal aufgerufen.

Was ist wenn du die function in ein

Code:
[COLOR=#000000][COLOR=#007700]if (![/COLOR][COLOR=#0000BB]function_exists[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'[COLOR=#000000][COLOR=#007700][/COLOR][COLOR=#0000BB]getAmazonPrice[/COLOR][COLOR=#007700][/COLOR][/COLOR]'[/COLOR][COLOR=#007700])) {[/COLOR][/COLOR]
[COLOR=#000000][COLOR=#007700]    function [/COLOR][COLOR=#0000BB]getAmazonPrice[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$region[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$asin[/COLOR][COLOR=#007700]) {[/COLOR][/COLOR]
            ...
      }
}

einpackst?
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Vielen Danke für deine Antwort :)

Dann kommt nur das hier: Fatal error: Call to undefined function getAmazonPrice() .. line 32
Line 32:
$response = getAmazonPrice("de", $oArtikel->cBarcode);

Ich verstehe diese Ajax Geschichte irgendwie nicht.
Habe auch schon mit Hook 45 gespielt. Negativ
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Kann auch kein Plugin finden was nach Variantenwechsel eine Funktion aufruft oder sonst was macht um was abzuschauen .. Ratlos
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

ok anderer ansatz was ist wenn du die function in eine externe datei auslagerst und dann mit require_once einbindest?
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Das habe ich auch schon probiert. Negativ
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Gleiches Verhalten .. "Cannot redeclare getAmazonPrice() ..."
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Anderer Versuch:

<Hook id="45">2.php</Hook>
<Hook id="140">1.php</Hook>


In 1.php:
require_once("2.php");
$response = getAmazonPrice("de", $oArtikel->cBarcode);



Mir gehen die Ideen aus .. im Forum konnte ich nichts finden. :(
 

x86

Gut bekanntes Mitglied
20. Januar 2014
179
5
localhost
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Hallo webgreat,

es ist doch ganz einfach:
der Hook 140 wird bei jedem Seitenaufruf im Frontend aufgerufen, ebenfalls beim Austausch eines Artikels
dessen Variation als Variationskombination in der WAWI angelegt ist (zwei Hooks werden an dieser Stelle ausgeführt, der AJAX_TAUSCHE_VARIATIONSKOMBI
und der 140er. Naja und evtl. noch einige mehr wie der FUELLE_ARTIKEL Hook).

Wenn du auf deine Funktion "getAmazonPrice" zurückgreifen möchtest, bindest du diese idealerweise über ein require_once ein oder
wie Gerd völlig korrekt erklärt hat frägst du mithilfe von function_exists ab ob die Funktions bereits deklariert ist.
Wenn du die Fehlermeldung Cannot redeclare oder Function does not exists erhälst dann wird eines von beiden falsch gemacht.

Grüße Stephan
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Ihr seit meine Tageshelden :)
Manchmal steht man dermaßen auf dem Schlauch das es anfängt zu nerven.

Also Funktion auslagern und per require_once("function.php"); einbinden.
JEDE Funktion in:
PHP:
if (!function_exists('funktionsname')) {    function funktionsname() {
            ...      }}

Dann klappts auch!

Andere Frage, auch wenn diese jetzt hier nicht ganz rein passt:

Ich habe in dem Wiki nicht wirklich etwas finden können. Wenn man in einem Plugin per Curl was von irgendwo abholt. Wie kann man das gescheit Cachen? Außerhalb von JTL würde ich die Daten in die DB schreiben und mit einem Verfallsdatum versehen. Gibts bei JTL Plugins eine elegantere Lösung?

Schönen Sonntag!
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Hallo


es kommt darauf an, wie lange du es cachen willst.
Wenn es nur 1 x je Browser-Session abf´gefragt und nach der initialen Abfrage aus dem cahce glesen werden soll, würde ich es entweder in die SESSION schreiben oder in ein cookie.
Wenn es länger vorgehalten werden soll, in die DB
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Session oder Cookie, da würde ja bei jedem User die Funktion ausgeführt.
Ich möchte es einmal pro Tag oder Stunde holen und dann ausgeben. Also Datenbank. Kennst du ein Quelloffenes Plugin wo ich mir die Sache abschauen kann?

Schönen Sonntag!
 

x86

Gut bekanntes Mitglied
20. Januar 2014
179
5
localhost
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Hallo webgreat,

du könntest mithilfe einer Plugintabelle prüfen ob die Funktion bereits ausgeführt
worden ist, indem du den Timestamp beim Ausführen der Funktion dort ablegst, bei
erneuten Aufruf dieser Funktion einfach überprüfen ob der abgelegte Timestamp und die Differenz
aus dem momentanen Zeitpunkt > 24 Stunden beträgt.

Grüße,
Stephan
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Das klingt schon mal bombe! Danke.


Hallo webgreat,

du könntest mithilfe einer Plugintabelle prüfen ob die Funktion bereits ausgeführt
worden ist, indem du den Timestamp beim Ausführen der Funktion dort ablegst, bei
erneuten Aufruf dieser Funktion einfach überprüfen ob der abgelegte Timestamp und die Differenz
aus dem momentanen Zeitpunkt > 24 Stunden beträgt.

Grüße,
Stephan
 

webgreat

Gut bekanntes Mitglied
17. April 2013
288
10
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Falls die Funktion mal jemand benötigt, ich hab ein Plugin geschrieben. Quasi als Lernmaterial ;)
Kann ich gern per Mail senden.

Hallo webgreat,

du könntest mithilfe einer Plugintabelle prüfen ob die Funktion bereits ausgeführt
worden ist, indem du den Timestamp beim Ausführen der Funktion dort ablegst, bei
erneuten Aufruf dieser Funktion einfach überprüfen ob der abgelegte Timestamp und die Differenz
aus dem momentanen Zeitpunkt > 24 Stunden beträgt.

Grüße,
Stephan
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Kind-Artikel nicht bei Ebay anbieten Allgemeine Fragen zu JTL-Shop 1
Neu Wie ändere ich das vorausgewählte Lager bei Bestellungen? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Fehlender Rabattabzug bei Amazon Multirabatten Amazon-Anbindung - Fehler und Bugs 0
In Diskussion Workflow bei fehlerhaften Bankabgleich JTL-Workflows - Ideen, Lob und Kritik 4
Gelöst: Störung bei LInk11 - JTL- Shops teilweise nicht erreichbar Störungsmeldungen 1
Neu JTL Wawi 1.11.11 - Zahlungsabgleich bei FYRST Bank verlangt immer Passwort User helfen Usern - Fragen zu JTL-Wawi 0
Kundengruppenrabatte werden bei einzelnen Artikeln nicht übernommen – „Rabatte ignorieren“ springt nach Speichern zurück JTL-Wawi 2.0 2
Neu [API] Zahlungen bei salesOrders verbuchen Schnittstellen Import / Export 0
Neu Unerwünschtes Scrollen/Springen zum Seitenanfang bei Footer-Menüs (Mobile) JTL-Shop - Fehler und Bugs 0
Frage stellen bei Bestellung JTL-Wawi 1.11 1
Bei Update auf 2.05 kam folgende Meldung JTL-Wawi 2.0 2
Neu Fehleretikett bei OTTO Bestellungen bzgl. Adresszusatz JTL-ShippingLabels - Fehler und Bugs 2
Skonto wird bei Zahlung setzen nicht berücksichtigt JTL-Wawi 1.11 2
Wawi 1.11.9 Ständige Abstürze bei Aktualisierung Artikelstammdaten JTL-Wawi 1.11 4
Neu Helfen Lösungen wie Unicorn wirklich, um die teuren Preise bei JTL zu vermeiden? Amazon-Anbindung - Ideen, Lob und Kritik 1
Neu Erstellung der Sitemap bei WaWi Abgleich funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu Bug? Führende Nullen bei Sendungsnummern verschwinden in JTL-Wawi 2.0.3 JTL-ShippingLabels - Fehler und Bugs 1
Neu Update nach 5.7.1 hängt bei Mirgation Installation / Updates von JTL-Shop 4
Wawi 1.11. Rechnungsanhang funktioniert nicht mehr bei Versandmail JTL-Wawi 1.11 6
Fehlermeldungen bei Einrichtung DHL 4.0 "Objektverweis" und "Konfiguration Versandart" JTL-Wawi 1.11 2
Error 500 bei Neuinstallation Einrichtung JTL-Shop5 7
Neu Amazon Versandentgelt Kaufen bei Standardbestellungen Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Hilfe bei jtl-pos Synchronisation User helfen Usern - Fragen zu JTL-Wawi 5
Neu Fragen zum SaaS-Connector / Shopware6 bei Lagerbestandskorrektur Shopware-Connector 0
Kontrollkästchen "Export" bei Zahlungen nicht mehr angehakt JTL-Wawi 2.0 4
Neu Seltsamer Fehler bei PayPal-Checkout: "Warenkorb enthielt Vaterartikel..." JTL-Shop - Fehler und Bugs 2
Neu Nach Update auf 1.11.10.0 Abgleich zu Ebay über 3 Stunden bei neuen Angeboten eBay-Anbindung - Fehler und Bugs 2
Neu Falsch erzeugte Ausgangszahlung bei Teilzahlungen und Retoure (Kauf auf Rechnung) Arbeitsabläufe in JTL-Wawi 0
Anmeldung mit OAuth bei Versanddienstleister notwendig JTL-Wawi 1.10 5
Neu Kritisches Problem bei DHL 4.0: Handelsstücklisten brechen EU- und Exportversand JTL-ShippingLabels - Fehler und Bugs 25
Neu Muss bei DHL Express ebenfalls was geändert werden, aufgrund DHL 4.0? User helfen Usern - Fragen zu JTL-Wawi 1
Ameise.exe Fundort bei JTL WAWI 2.02 JTL-Wawi 2.0 2
Neu Keine Adressvalidierung bei DHL Versenden 4.0? JTL-ShippingLabels - Ideen, Lob und Kritik 5
Fehlermeldung bei DHL 4.0 versand JTL-Wawi 2.0 26
Neu Neuerdings E-Mail benachrichtigung bei "Pick up in Store", allerdings mit E-Mail "Bestellung wurde abgeholt" Shopify-Connector 0
Neu keine Kontakt Absender/Empfänger bei DHL Versenden 4.0 JTL-ShippingLabels - Ideen, Lob und Kritik 4
Neu DHL Versenden 4.0 HS Code-Fehler bei Freiposition JTL-ShippingLabels - Fehler und Bugs 20
Neu Muss man für DHL Versenden 4.0 einen neuen Benutzer bei DHL anlegen? JTL-ShippingLabels - Ideen, Lob und Kritik 2
Ebay angebote lassen sich nicht mehr bei JTL bearbeiten JTL-Wawi 2.0 0
Ameise-Export: Umsatzsteuer stimmt nicht mit Differenz aus Netto und Brutto überein (insbesondere bei mehreren Steuersätzen) JTL-Wawi 1.11 0
Fehler bei Bearbeitung von Attributen via HTML-Editor JTL-Wawi 2.0 3
Neu product_visibility bei JTL-Wawi und Shopware 6 Shopware-Connector 1
Neu Produkt-Upload schlägt fehl nach Shopware-Update 6.7.9.0 – Fehler bei quantityStart (SaaS-Connector) Shopware-Connector 14
Neu Wie aktiviere ich den richtigen EK bei freiem Wareneingang? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 1
Absturz bei Hinzufügen von Artikelbildern JTL-Wawi 2.0 3
Neu Falsche Zahlungsart bei Gutscheinzahlungen im DSFinV-K-Export JTL-POS - Fehler und Bugs 1
Update auf 2.0.1 Fehler bei eazybusiness JTL-Wawi 2.0 17
Update auf 2.0.1.0 bricht ab bei 1.12.0.0. JTL-Wawi 2.0 6
Probleme bei der Verbindung zur Datenbank JTL-Wawi 2.0 12

Ähnliche Themen