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

webgreat

Gut bekanntes Mitglied
17. April 2013
282
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
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
282
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

Gut bekanntes Mitglied
17. April 2013
282
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
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
282
9
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
282
9
Verl
AW: Bei Variantenwechsel PHP Funktion aufrufen/aktualisieren Fehler: Cannot redeclare

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

webgreat

Gut bekanntes Mitglied
17. April 2013
282
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

Gut bekanntes Mitglied
17. April 2013
282
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
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
282
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

Gut bekanntes Mitglied
17. April 2013
282
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

Gut bekanntes Mitglied
17. April 2013
282
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
Neu Fehler bei der Anmeldung nach Update auf 1.11.5 Installation von JTL-Wawi 0
letzter EK bei der Lagerbewertung JTL-Wawi 1.10 2
Steuer Einstellung bei Sonderpreis und nach OSS Landauswahl JTL-Wawi 1.10 0
Neu JTL-Shop 5.2.3 – Google-Shoppin-Plugin 2.3.0: Mehrere Rückgaberichtlinien (DE + Ausland) bei einem Feed / return_policy_label Plugins für JTL-Shop 0
Neu eBay Angebotsimport : Fehler bei der Kommunikation mit dem eA-Server eBay-Anbindung - Fehler und Bugs 0
Neu Fehlerhafte bzw, leere Labels bei DHL & DPD JTL-ShippingLabels - Fehler und Bugs 1
1.11.5 Weiterhin Absturz bei Aufruf des Zahlungsmoduls JTL-Wawi 1.11 6
Neu Sendungsnummern per Mail versenden bei mehreren Paketen User helfen Usern - Fragen zu JTL-Wawi 5
Neu Sendungsnummer bei Auslieferung an Shopify senden Shopify-Connector 3
Nummernkreis bei gesplitteten Aufträgen "#" Symbol in "-" ändern JTL-Wawi 1.10 1
Monatsabschluss Amazon FBA UK / CH mit JTL2Datev WaWi 1.10 bei IDU Nutzung und Zwangs VCS für GB / Schweiz JTL-Wawi 1.10 0
Probleme Fehlermeldung bei Zahlungsabgleich JTL-Wawi 1.10 10
Neu Workflow bei Zahlungseingang User helfen Usern - Fragen zu JTL-Wawi 1
Textvorlage bei "Nachricht an Kunde" per email nicht mehr möglich JTL-Wawi 1.11 2
Bei Beschaffung wird keine Positionsnummer bei den Artikeln angezeigt JTL-Wawi 1.10 1
Fehler seit Version 1.10.15 bei Artikel Auslieferung über Bestandsmenge JTL-Wawi 1.10 0
Neu Texteditor bei Beitragserstellung fehlt JTL-Shop - Fehler und Bugs 1
Neu Bei Klick auf Warenkorb Button nicht direkt Warenkorb Templates für JTL-Shop 8
Neu Frage zum Thema Skonto bei Bezahlungsarten Barzahlung und QR-Code Betrieb / Pflege von JTL-Shop 0
Neu Steuerart bei Auftragsimport via Ameise falsch JTL-Wawi - Fehler und Bugs 1
Neu Ärger mit CountX: Verzögerung bei der Bearbeitung von VCS-Daten in WAWI führt zu unvollständigen Steuerdaten User helfen Usern - Fragen zu JTL-Wawi 0
Neu Unterstützung bei JTL FFN Retouren – Fehler in der API-Übertragung von Returnless Starten mit JTL: Projektabwicklung & Migration 0
Neu Landingpage bei nur 1 Artikel in einer Kategorie Betrieb / Pflege von JTL-Shop 1
Neu Amazon Lister 2.0 Kategoriespezifische Felder fehlen bei vielen Kategorien Amazon-Lister - Fehler und Bugs 2
Neu Artikeldarstellung / bei nicht Verfügbarkeit / bestellbar Anhand Verfügbarkeitszeit Allgemeine Fragen zu JTL-Shop 1
Neu GELÖST! Amazon "Aufzuschaltende Angebote" seit Tagen in "wird gesendet" bei WAWI 1.11.3 Amazon-Anbindung - Fehler und Bugs 10
Neu Fehlermeldung 'quantity' bei Vaterartikel Amazon-Lister - Fehler und Bugs 1
Neu Probleme bei der Umstellung von Varkombi auf Konfigurationsartikel User helfen Usern - Fragen zu JTL-Wawi 0
Am eigenen Lager Bestand = 0, bei FBA = 170, Probleme mit dem eigenen Shop und Otto.de JTL-Wawi 1.10 3
Neu JOBS bei CIN com-insnetz Berlin Dienstleistung, Jobs und Ähnliches 0
Neu Probleme bei WooCommerce JTL-Connector, keine Aktivierung möglich, Bestands-Shop lahmgelegt Onlineshop-Anbindung 0
Neu Pickliste Hinweis anzeigen nur bei bestimmten Verkaufkanal User helfen Usern - Fragen zu JTL-Wawi 0
Änderung E-Mailadresse bei Mahnungen JTL-Wawi 1.9 7
Ticket erstellen bei einer Fehlermeldung mit JTL-Start ??? JTL-Wawi 1.9 6
Neu Packtisch + Waage – Meldung bei großem Unterschied zwischen tatsächlichem Gewicht und Systemgewicht? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Massenänderung "Lagerplatz" für Artikel bei WMS Lager JTL-Wawi 1.10 2
Sammelbuchung bei Zahlungsausgang über das Zahlungsmodul JTL-Wawi 1.10 0
Neu Fehlermeldung bei Rechnungserstellung Arbeitsabläufe in JTL-Wawi 0
Neu Paypal bei bestimmten Produkten nicht anbieten Plugins für JTL-Shop 1
Neu Amazon Bestellungen werden nicht abgerufen - Fehler bei Account 'XXX' []: Ihr Account ist nicht aktiv. Amazon-Anbindung - Fehler und Bugs 5
EBICS einrichten bei Commerzbank JTL-Wawi 1.10 1
Neu Artikel mit gleichem Namen werden bei Shopify zu einem Artikel Shopify-Connector 2
Neu Keine Zahlung erforderlich bei < 1€ JTL-Shop - Fehler und Bugs 1
Neu PayPal-Plugin blockiert bei PayPal-Störung Checkout JTL-Shop - Fehler und Bugs 4
In Diskussion Etikett mit Warnung bei Versand drucken JTL-Workflows - Ideen, Lob und Kritik 10
Neu Falsche Umsatzsteuer bei Paypal-Checkout Bestellungen im Webshop JTL-Shop - Fehler und Bugs 3
1.11 mit 2 Mandanten - Dashboard bei Advanced Wawi zerschossen - JTL Start funktioniert JTL-Wawi 1.11 1
Neu Zeit bei Mahnungen Nachträglich ändern Arbeitsabläufe in JTL-Wawi 0
Neu DATEV Rechnungsdatenservice 2.0 Fehlermeldung bei der Übertragung Schnittstellen Import / Export 5
Neu Attribut bei bestimmten Artikel steuert das Erscheinen einer Checkbox vor Bestellabschluss Allgemeine Fragen zu JTL-Shop 1

Ähnliche Themen