Hallo,
ich habe mir die neueste Version von modified-shop (1.06) installiert und Diesen an Fakturama angebunden. Jedoch erscheint die Fehlermeldung:
no valid Smarty.class.php found.
Woran könnte das liegen.
Vielen Dank
Marengo
In der aktuellen modified Version, wurden einige Smarty gelöscht und ersetzt. Der Connector müsste umgeschrieben werden.
http://www.tonerzilla.de
Vielen Dank für die Info.
Schade, denn zum Umschreiben von php Code bin ich leider nicht smarty genug.
Beste Grüße
Hm, wie ich das sehe, wird nur eine andere Smarty Klasse verwendet.
Vielleicht reicht es ja schon, wenn du die richtige einbindest.
Ich hab grad keine aktuelle modified-Version installiert, aber versuche doch mal in der (XTCMODIFIED) fakturama-connector.php in Zeile 132 folgendes einzufügen:
if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.27/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.27/Smarty.class.php');
}
Dann wird jedenfalls die richtige Klasse geladen.
Ob sich sonst hinten raus noch was geändert hat, kann ich jetzt nicht sehen.
Vielen Dank für den Tip; nur leider spuckt der connector immer noch die selbe Fehlermeldung aus - auch wenn ich den Pfad direkt im Browser aufrufe.
Bin etwas ratlos...
Die Fehlermeldung kommt ja wohl aus diesem Abschnitt (ab Zeile 133):
if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php');
}
else if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.14/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.14/Smarty.class.php');
}
Dann ersetze den Abschnitt doch durch die installierte Version:
if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.27/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.27/Smarty.class.php');
}
Ich hab vorhin vergessen, dass aus dem zweiten if dann auch ein else if werden musste.
Sonst läuft der auf jeden Fall wieder in die Fehlermeldung.
ich verstehe...
Nun funktioniert die Anbindung an den Shop und Bestellungen werden importiert
Liebes Moped - vielen Dank
Vielen Dank für die Lösung! Stand vor dem gleichen Problem, welches dank moped gelöst ist
Grüße
Anja (:P)
Hallo,
ich habe gerade versucht diese Lösung für Gambio GX2 anzuwenden.
Aber ich bekomme eine ganz andere Fehlermeldung.
Bei mir lautet Sie, wenn ich die Daten importieren möchte:
"Fehler beim Lesen der Shop Daten:
http://www.mein-shop.de/admin/fakturama_connector.php
Notice: Use of undefined constant OSCOMMERCE - assumed 'OSCOMMERCE' in /var/www/web205/public_html/www/admin/fakturama_connector.php on line 47
Notice: Use of undefined constant XTCOMMERCE - assumed 'XTCOMMERCE' in /var/www/web205/public_html/www/admin/fakturama_connector.php on line 50
Notice: Use ..."
Hätte jemand eine Idee?
Gruß
Marcel
Du kannst den if-else if Konstrukt von Zeile 47 bis 55 mit folgendem ersetzen:
switch( FAKTURAMA_WEBSHOP ) {
case 'OSCOMMERCE': define('FAKTURAMA_WEBSHOP_BASE','OSCOMMERCE');
break;
case 'XTCOMMERCE': define('FAKTURAMA_WEBSHOP_BASE','XTCOMMERCE');
break;
case 'XTCMODIFIED': define('FAKTURAMA_WEBSHOP_BASE','XTCOMMERCE');
break;
}
Dann werden keine unbekannten Konstanten mehr abgefragt.
Hallo Moped,
auf dich ist verlass! (tu)
Das hat schon mal geklappt.
Zuvor hatte ich an die "Smarty Class" abgeändert.
In der entsprechenden Datei im Webshop steht bei mir 2.6.26.
Ich habe daraufhin im Connector alles in dem entsprechenden Abschnitt (132-136) wie folgt verändert
if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php');
}
else if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php');
}
Aber das war wohl nicht richtig, kennst Du da auch eine Lösung? Ist wohl sowas ähnliches wie im oberen Verlaufs Threads.
Ergänzung:
Ich habe jetzt noch mal etwas rumgespielt und wie folgt abgeändert:
if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.26/Smarty.class.php');
}
else if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.14/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.14/Smarty.class.php');
}
Als Fehlermeldung erscheint nun:
Fehler beim Lesen der Shop Daten:
http://www.meine-shop.de No valid Smarty.class.php found.
Sorry, ich kenne die Gambio Pfade nicht.
Liegt der Smarty Ordner auch in "includes/classes" vom Shopordner aus gesehen?
Dann sollte sie eigentlich gefunden werden.
Die Frage ist dann nur noch, welche Version genau und wie heißt der Ordner, wo die Smarty class drin liegt.
also die Smarty.class.php liegt bei mir in den Ordnern : "/includes/classes/Smarty/". Öffnet man die Smarty.class.php steht darin:
/** * Smarty version number * * @var string */ var $_version = '2.6.26';
Heißt das, ich muss "Smarty_2.6.14/Smarty.class.php" nach "includes/classes/Smarty/Smarty.class.php" abändern?
Nö, wenn der Ordner nicht die Versionsnummer enthält, würde ich sie so anfordern:
if (file_exists(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty/Smarty.class.php')) {
require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty/Smarty.class.php');
}
Allgemein würde ich, wegen wechselnder Versionen und Ordnerbezeichnungen, vielleicht so etwas einsetzen:
if( count(glob(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty*/Smarty.class.php') == 1) ) {
foreach( glob(DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty*/Smarty.class.php') as $smarty_version) {
require($smarty_version);
}
}
else
exit_with_error( "No valid Smarty.class.php found." );
Anstatt dem ganzen if -else. Was ja richtig ist, aber Dinge ändern sich... 😎
Das wäre dann "allgemeinkompatibel". 😉