last-hero / square_shop

Redaxo Online Shop
7 stars 1 forks source link

Fehler bei Installieren des AddOn #2

Open mbodon opened 9 years ago

mbodon commented 9 years ago

Hallo, ich bekomme beim Installieren der neuesten GitHub Version folgenden Fehler angezeigt:

Fatal error: Class 'rex_square_shop_utils' not found in ... /redaxo/include/addons/square_shop/config.inc.php on line 44

Was mache ich falsch? verträgt es sich mit einem anderen AddOn nich oder fehlt ein AddOn? Beste Grüße

last-hero commented 9 years ago

Hallo, bei dir funktioniert die "__autoload" Funktion nicht. Daher vermute ich, dass du eine ältere PHP Version verwendest. siehe http://php.net/manual/en/language.oop5.autoload.php

Was du machen kannst ist, folgenden Code oberst oben einfügen und das Array "$classes" um die Klassen die verwendet werden zu erweitern:

$classes = array('rex_square_shop_utils', ...);
foreach($classes as $class_name){
    if (!class_exists($class_name)) {
        $classes_folder = $REX['INCLUDE_PATH'] . '/addons/square_shop/classes/';
        $file = $classes_folder.''.$class_name.'.php';
        if(file_exists($file)) {
            require_once $file;
        }
        $sub_folders = array('model', 'view', 'controller', 'helper');
        foreach($sub_folders as $folder){
            $file = $classes_folder.''.$folder.'/'.''.$class_name.'.php';
            if(file_exists($file)) {
                require_once $file;
            }
        }
    }
}

Gruss

ghost commented 9 years ago

Hi! Bin schon gespannt auf das Addon :) Zu dem Thema: Ab welcher Version ist das Addon denn? Ich nutze 5.4.7 und habe das gleiche Prob. Es wäre vielleicht sinnvoll in die Readme ein Hinweis zur min PHP Version aufzunehmen, evtl. auch einen Check beim installieren, sonst werden da noch viele drüber stolpern. Noch besser wäre es natürlich wenn das Addon PHP 5.3 unterstützt weil REDAXO 4 halt auch mit 5.3 läuft.

mbodon commented 9 years ago

Hallo, danke für den Code. Ich muss gleich weg und kann deshalb den Code nicht jetzt gleich ausprobieren erst abends, aber meine (nun upgedatete) PHP Version ist 5.6 und Redaxo 4.6.1 und der Fehler erscheint leider immer noch ...

DanielWeitenauer commented 9 years ago

Moin, __autoload() kann nur einmal eingebunden werden. Wenn ein anderes Addon auch eine Autoload-Funktion nutzt, funktioniert es nicht mehr. Daher ist es besser, den Autoloader über spl_autoload_register() zu registrieren, dann können mehrere Autoloader hintereinander durchlaufen werden. Hat bei mir beim Testen funktioniert. config.inc.php sähe dann ungefähr so aus:

<?php
spl_autoload_register ('squareshop_autoload');
[...]
/*
* Klassen, welche benötigt werden automatisch eingebunden.
* param string $class_name: Klassenname 
*/

function squareshop_autoload($class_name) {
[...]
}
?>
mbodon commented 9 years ago

Hallo, habe nun den Vorschlag von DanielWeitenauer ausprobiert und es hat sofort geklappt. Also lag es wohl bei mir daran das ein anderes AddOn auch schon _autoload verwendet hat ... Danke an alle für den Tipp. Werde nun den Shop mal ausprobieren ... bin schon ganz gespannt...

last-hero commented 9 years ago

@DanielWeitenauer
Vielen Dank, war mir nicht sicher ob mit dieser Lösung das Problem behoben werden könnte. Auf jedenfall, hab ich den "rc1" Branch so angepasst gehabt. Da sind noch einige bug fixes und Kommentare hinzugefügt worden, deshalb werde ich den master-branch mit rc1 ersetzen.

@RexDude Hi, theoretisch sollte dieses Addon mit PHP 5.3 auch laufen, ich wollte da bewusst keine PHP Version aufzählen, sondern nur die Redaxo Version. Die Fehlermeldung mit dem "autoload" hat mich etwas verwirrt, konnte den Fehler auch nicht reproduzieren. Aber jetzt ist mir alles klar :-)

@mbodon Hallo, freut mich, dass du mein Addon ausprobieren möchtest. Es befindet sich noch in der Entwicklungsphase und könnte noch Fehler enthalten.

webregie commented 9 years ago

Super, dass man jetzt eine Ausgabe hat. Ich habe aber die Meldung

Strict Standards: Non-static method SSHelper::array_keys_exists() should not be called statically, assuming $this from incompatible context in /kunden/133927_20146/2015/redaxo/include/addons/square_shop/classes/model/SSModel.php on line 100

Sowohl im Backend als auch Frontend.

REDAXO: 4.6.1 PHP: 5.4.16

dieSu commented 9 years ago

Hallo zusammen, ich würde auch gerne testen ... kann jemand die geänderte config.inc.php mal in Langversion publizieren? Hab die Änderungen probiert ... Wäre toll. Oder geht es hier nicht weiter? Bleibe an der Installation stecken: Redaxo 4.5.0, 5.3.26

Meine Fehlermeldung: Warning: require_once(../redaxo/include/addons/square_shop/classes/class.SSDBSchema.inc.php) [function.require-once]: failed to open stream: Datei oder Verzeichnis nicht gefunden in ../redaxo/include/addons/square_shop/install.inc.php on line 7

last-hero commented 9 years ago

Hallo dieDu

Ich würde dir die 'rc1' Version empfehlen: https://github.com/last-hero/square_shop/tree/rc1

Da wurden einige Fehler behoben.

dieSu commented 9 years ago

Danke last-hero, das hat geklappt

Fanello commented 9 years ago

Hallo last-hero

ich wollte soeben dieses AddOn testen, erhalte aber bei der Installation folgende Fehlermeldung: Fatal error: Class 'SSDBSQL' not found in pfad/httpdocs/2015/redaxo/include/addons/square_shop-master/install.inc.php on line 26

REDAXO: 4.6.1 PHP: 5.3.27 MySQL: 5.5.33

Eine Idee woran das liegen könnte?

last-hero commented 9 years ago

Hallo Fanello

Bitte die Version "rc1" herunterladen, da sind einige Fehler behoben. https://github.com/last-hero/square_shop/tree/rc1

Fanello commented 9 years ago

ja genau.. hatte es übersehen dass es nicht die rc1-Version war. Habe aber leider immer noch den selben Fehler: Fatal error: Class 'SSDBSQL' not found in pfad/httpdocs/2015/redaxo/include/addons/square_shop-rc1/install.inc.php on line 20

last-hero commented 9 years ago

der Addon-Ordner muss "square_shop" heissen

Fanello commented 9 years ago

Wow.. das wars... DANKE!