Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 23. September 2015 13:36

Darien
hat von CMS/ms gehört
Registriert: 20. November 2014
Beiträge: 12

Problem mit CGCalendar nach Umzug

Hallo zusammen,

bin mit einer Seite auf einen anderen Server umgezogen und es hat alles funktioniert. Alle Daten sind vorhanden und das Frontend schaut auch aus wie gewünscht.
Nur ein Problem habe ich. Wenn ich einen Termin erstellen möchte erscheint beim Aufruf des Moduls CGCalendar folgende Fehlermeldung:

Fatal error: Cannot access self:: when no class scope is active in /var/www/web42/html/modules/CGExtensions/lib/jsloader/class.jsloader.php on line 446

Dies ist definitiv auf dem alten Server nicht so gewesen. Hat jemand ne Idee woran das liegen und wie ich das beheben könnte?

Danke im Voraus

Offline

#2 23. September 2015 19:34

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Problem mit CGCalendar nach Umzug

Dies ist definitiv auf dem alten Server nicht so gewesen. Hat jemand ne Idee woran das liegen [...] könnte?

Naja, Du hast den Server gewechselt.
Meinst Du nicht auch, dass eben darin ein Zusammenhang bestehen könnte?

Hat jemand ne Idee [...] wie ich das beheben könnte?

Google und die Jungs von Stackoverflow sind wie immer Dein Freund wink
http://stackoverflow.com/questions/8243 … nction-def

CGExtensions verwendet sogenannte anonyme Funktionen. Z.B:

$variable = function() {
    echo "Foo!";
};
$variable();

Und das tut es innerhalb einer Funktion einer bestimmten Klasse:

final class jsloader
{
    ...

    public static function render($opts = null)
    {
        ...

        $get_code = function($rec,$type) use (&$get_relative_url,&$fix_css_urls) {
            
            ...
                        $one_file = self::_expand_filename($one_file);
            ...
        }
        ...

        $code = $get_code($rec,$type);

        ...
    }
}

Das Dumme ist, dass diese anonyme Funktion den Kontext der Klasse nicht behält. D.h. wenn die Funktion aufgerufen wird, ist das so, als wäre sie nicht mehr innerhalb der Klasse, sondern global. Und dann kann man nicht mit "self::..." arbeiten. Denn self bezieht sich ja auf die ursprüngliche Klasse. Stattdessen könnte man an dieser Stelle statt "self" den Namen der ursprünglichen Klasse verwenden. Die Klasse ist eh vorhanden und die Funktion ist "static" (man braucht also keine Instanz der Klasse).
Ergo:

            ...
                        $one_file = jsloader::_expand_filename($one_file);
            ...

Das zieht sich allerdings durch das gesamte Modul. Kann also sein, dass dieser Fehler noch öfter auftritt.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 24. September 2015 13:29

Darien
hat von CMS/ms gehört
Registriert: 20. November 2014
Beiträge: 12

Re: Problem mit CGCalendar nach Umzug

Vielen vielen Dank für deine Ausführungen.. Hat mir sehr geholfen den Fehler zu verstehen !!!

Das Problem liegt aber woanders, denn ich habe erst heute Morgen bemerkt das mein Provider auf diesem Server die php Version 5.3.29 verwendet. Also es liegt wohl daran  mad .. Ich hatte das völlig ausgeblendet, da ich nicht davon ausgegangen bin das das alte Schlachtschiff noch verwendet wird.
Trotzdem nochmal vielen Dank !

Off Topic Frage:
Ein Serverumzug bzw. ein Update auf eine höhere Version will der Provider nur kostenpflichtig machen (bzw. ich könnte alles händisch selbst kopieren ... ends die Arbeit)..Sollte ein Umzug bzw. Upate von einer nicht mehr unterstützten php Version nicht kostenfrei sein? Was meint ihr? Oder sehe ich das zu blauäugig ?

Offline

#4 25. September 2015 22:08

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Problem mit CGCalendar nach Umzug

Darien schrieb:

ich habe erst heute Morgen bemerkt das mein Provider auf diesem Server die php Version 5.3.29 verwendet. Also es liegt wohl daran  mad ..

http://www.cmsmadesimple.de/forum/viewtopic.php?id=4161

Darien schrieb:

Ein Serverumzug bzw. ein Update auf eine höhere Version will der Provider nur kostenpflichtig machen

Für mich wäre das ein schlagendes Argument, diesen Anbieter schnellstmöglich zu verlassen und künftig zu meiden.

Es gibt genügend positive Beispiele, wo ich im cPanel oder via htaccess die PHP-Versionen nach Belieben von 5.3 bis 5.6 hoch- und runterschalten kann.

Bei all-inkl.com zum Beispiel war der Umzug auf einen neueren Server kostenfrei möglich (die alten konnten nicht mehr aktualisiert werden). Bis die letztens die Reißleine gezogen haben und alle verbliebenen Kunden auf neuere Server "zwangsumgesiedelt" haben, natürlich ebenfalls kostenfrei.

Offline