Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#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
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 .. 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
ich habe erst heute Morgen bemerkt das mein Provider auf diesem Server die php Version 5.3.29 verwendet. Also es liegt wohl daran
..
http://www.cmsmadesimple.de/forum/viewtopic.php?id=4161
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
Seiten: 1