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

webgreat

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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
232
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

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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
232
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

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

Das habe ich auch schon probiert. Negativ
 

webgreat

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

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

webgreat

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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
232
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

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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

Offizieller Servicepartner
SPBanner
17. April 2013
281
9
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
Update 1.9.6.1 weitere Verkaufskanäle fehler bei Abgleich JTL-Wawi 1.9 1
Neu TSE wird bei JTL-POS nicht erkannt JTL-POS - Fehler und Bugs 1
Neu JTL Shop 5.3.X - Fehlerhafte Artikellinks bei Export über Exporte-Manager JTL-Shop - Fehler und Bugs 1
Neu Feld "Verkaufskanal" bei importierten Artikeln ausgegraut JTL-Ameise - Fehler und Bugs 1
Gelöst OPC geht nicht mehr bei v5.4 Installation / Updates von JTL-Shop 3
Neu Kundengruppen Zuordnung bei Registrierung anhand Emaildomain Plugins für JTL-Shop 1
Neu Datev Konto Buchung bei Gutschein Verkauf Allgemeine Fragen zu JTL-POS 0
Neu Breadcrumb Navigation bei Kategorie-, Hersteller- und Merkmallisten verschieden JTL-Shop - Fehler und Bugs 0
Neu Fehler 500 bei Versandmeldung an Amazon über JTL-eazyAuction Amazon-Anbindung - Fehler und Bugs 1
Neu Anpassung der Rechnungsansicht bei zu langen Artikelbeschreibungen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu JTL Shop 5.4 - Seite 1 verschachtelt sich bei klick auf Seite 1 JTL-Shop - Fehler und Bugs 0
Neu Keine Exportpapiere mehr bei DHL 3.0 nach UK? JTL-ShippingLabels - Fehler und Bugs 3
In Diskussion Brauche Hilfe bei Bestand Email Workflow JTL-Workflows - Ideen, Lob und Kritik 17
Neu Newsletter-Abonnenten werden bei Gastbestellung nach Anonymisierung entfernt JTL-Shop - Fehler und Bugs 0
Neu Spontane Überarbeitung der Versandbedingungen bei Ebay eBay-Anbindung - Fehler und Bugs 1
Neu JTL2Datev ist defekt bei mir seit dem Update von 30.10.2024 User helfen Usern - Fragen zu JTL-Wawi 6
Neu Wie handelt Ihr die GPSR Anforderung an Produktbilder bei Amazon ? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Frage zur Rechtevergabe bei eigenen Übersichten Eigene Übersichten in der JTL-Wawi 0
JTL-SHO 5 standard, downgrade zu CFE-Version, beide gehostet bei JTL Einrichtung JTL-Shop5 4
Neu Umgang mit Chargen bei mehreren Bestellungen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Shopware 6 Bestellabgleich bei vormals fehlgeschlagener Zahlung Shopware-Connector 0
Verwiesen an Support Workflow artikel_erstellt wird bei LagerUmbuchung ausgelöst. JTL-Workflows - Fehler und Bugs 1
Neu Erstattungen per Paypal bei Stornierungen wird öfter nicht ausgezahlt Arbeitsabläufe in JTL-Wawi 0
Neu Artikelgewicht bei Versand in die Schweiz JTL-ShippingLabels - Fehler und Bugs 1
Fehler bei Rechnungsdatenserverice 2.0 JTL-Wawi 1.9 2
Neu Fehler bei Coupons bei Wechsel von 4 auf 5 Betrieb / Pflege von JTL-Shop 0
Neu Abbruch / Timeout bei Bildimport Shopware-Connector 0
Online seit: bei Artikel einstellen JTL-Wawi 1.8 0
Neu Gelber Hintergrund bei Mobilgeräten Einrichtung von JTL-Shop4 0
Neu Hauptbild wird bei Wechsel der VarKombi nicht angezeigt Betrieb / Pflege von JTL-Shop 3
Neu Betrug bei JTL? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Wie kann ich die Verfügbarkeiten eines Artikels bei Amazon steuern? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Auftragssplit bei DHL Export Sendungen mit mehreren Paketen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Zusätzliche Bearbeitungszeit wird nicht bei der Lieferzeit an Shopware 6 berücksichtigt Shopware-Connector 0
Neu noindex bei URLs mit btgsterne Allgemeine Fragen zu JTL-Shop 0
Neu SCX (Alle Marktplätze) - habt ihr Kategorien, bei denen die Kategoriespezifischen Felder nicht laden / zuordnen nicht möglich / No Data available? Einrichtung und Installation von JTL-eazyAuction 0
In Diskussion Log bei Workflow Fehler JTL-Workflows - Ideen, Lob und Kritik 0
Neu Geht bei Euch das Aufladen der Portokasse in DHL-Onlinefrankierung? JTL-ShippingLabels - Ideen, Lob und Kritik 12
Neu Fehlermeldung: Fehler bei der Kommunikation mit dem eA-Server eBay-Anbindung - Fehler und Bugs 3
Neu Abholung in Filiale nur bei genügend Bestand Plugins für JTL-Shop 3
Fehler bei Update von 1.5.55.8 auf 1.7.15.6 ( Unbehandelte Ausnahme #7110FFD83C0136E0 vom Typ JTL.Database.SqlUpdater.UpdateException) JTL-Wawi 1.7 0
Korrektur Name des Absenders bei Anforderung der Bestätigung der E-Mail-Adresse Einrichtung JTL-Shop5 1
Neu Ebay Kundendienst erreichen, alternative zu customerhelp_de@ebay.com bei Bewertungen User helfen Usern 0
Neu Versand-/Leistungsdatum bei Exportrechnung User helfen Usern - Fragen zu JTL-Wawi 2
Formular Rechnungskorrektur Minus Vorzeichen bei Beträgen entfernen JTL-Wawi 1.9 2
1 Mandant, 2 Shops bei 2 Firmen mit gleichem Firmennamen JTL-Wawi 1.9 4
Neu Workflow: Mail bei Notiz in Auftrags-Historie User helfen Usern - Fragen zu JTL-Wawi 1
Neu Fehler bei Abgleich JTl Wawi mit JTL Shop User helfen Usern - Fragen zu JTL-Wawi 2
Neu Standard-Kundengruppe bei Neuanlage in LS-POS Fragen rund um LS-POS 2
In Diskussion E-Mail an Lieferanten bei Verkauf einer seiner Artikel JTL-Workflows - Ideen, Lob und Kritik 4

Ähnliche Themen