Seite 1 von 1
AAARGH! Class 'cSetupLanguageChooser' not found
Verfasst: Di 1. Nov 2005, 15:48
von #ayshe
Hallo,
habe gerade versucht, von 4.5 auf 4.6 zu gehen. Beim Aufruf des Setup erhalte ich sofort die Meldung
Fatal error: Class 'cSetupLanguageChooser' not found in D:\xampp\htdocs\contenido_emc\setup\steps\languagechooser.php on line 4
In der besagten Datei steht folgender Code:
Code: Alles auswählen
<?php
session_unset();
$cSetupStep1 = new cSetupLanguageChooser;
$cSetupStep1->render();
class cSetupLanguageChooser extends cSetupMask
{
function cSetupLanguageChooser ()
{
cSetupMask::cSetupMask("templates/languagechooser.tpl");
$this->setHeader("Willkommen zu dem Setup von Contenido / Welcome to the Contenido Setup");
$this->_oStepTemplate->set("s", "TITLE", "Willkommen / Welcome");
$this->_oStepTemplate->set("s", "WELCOMEMESSAGE", "Contenido<br>Version " . C_SETUP_VERSION);
$this->_oStepTemplate->set("s", "WELCOMETEXT", "Diese Anwendung hilft Ihnen bei der Installation von Contenido. / This application will guide you trough the setup process.");
$this->_oStepTemplate->set("s", "ACTIONTEXT", "Wählen Sie bitte die gewünschte Sprache für das Setup aus. / Please choose your language to continue.");
$langs = array("de_DE" => "Deutsch", "C" => "English");
$m = "";
foreach ($langs as $entity => $lang)
{
$test = new cHTMLLanguageLink($entity, $lang, "setuptype");
$m .= $test->render();
}
$this->_oStepTemplate->set("s", "LANGUAGECHOOSER", $m);
}
}
?>
Das sieht doch OK aus, oder? Ausserdem habe ich es so ja auch runtergeladen und außer mir hat noch niemand dieses Problem gemeldet.
Die Umgebung:
MySQL 4.1.7
Apache/2.0.53 (Win32) mod_ssl/2.0.53 OpenSSL/0.9.7f PHP/5.0.4
Windows NT 5.1
Kann mir jemand helfen, bitte?
Viele Grüße,
Ayshe
Verfasst: Di 1. Nov 2005, 15:49
von timo
Bug in PHP Version 5.0.4
bitte neuere PHP-Version verwenden
Verfasst: Di 1. Nov 2005, 15:55
von #ayshe
Hallo Timo,
vielen Dank für die superschnelle Antwort. Ich mach dann mal PHP frisch.
Gruß,
Ayshe
Verfasst: Di 1. Nov 2005, 17:09
von timo
In der nächsten Contenido-Version gibt es einen Workaround für den PHP-Bug.
Mist! Geht auch nicht mit PHP 5.0.5!
Verfasst: Di 1. Nov 2005, 18:32
von #ayshe
Hallo Contenido-Team,
ich hab jetzt alles auf den neuesten XAMPP-Stand gebracht, inkl. PHP 5.0.5
Aber die Fehlermeldung
Fatal error: Class 'cSetupLanguageChooser' not found in D:\xampp\htdocs\contenido_emc\setup\steps\languagechooser.php on line 4
kommt immer noch.
Apache/2.0.54 (Win32) mod_ssl/2.0.54 OpenSSL/0.9.8 PHP/5.0.5
Und ich bin total zeitlich hinterher jetzt mit dem Projekt. Grrr.
Gruß,
Ayshe
Verfasst: Di 1. Nov 2005, 19:43
von bluefish
Hatte den Fehler auch. Das Problem war, das PHP aus irgend welchen Gründen die Klasse nicht findet (vermute durch die ganzen verschachtelten includes oder meinem PHP-Accelerator Cache), da die Initialisierung vor der Klasse stattfindet.
Ein einfaches Umstellen der Initialisierung vom Dateianfang zum Dateiende reicht aus und das Ganze funktioniert.
Das sieht dann so aus:
Code: Alles auswählen
<?php
session_unset();
class cSetupLanguageChooser extends cSetupMask
{
function cSetupLanguageChooser ()
{
cSetupMask::cSetupMask("templates/languagechooser.tpl");
$this->setHeader("Willkommen zu dem Setup von Contenido / Welcome to the Contenido Setup");
$this->_oStepTemplate->set("s", "TITLE", "Willkommen / Welcome");
$this->_oStepTemplate->set("s", "WELCOMEMESSAGE", "Contenido<br>Version " . C_SETUP_VERSION);
$this->_oStepTemplate->set("s", "WELCOMETEXT", "Diese Anwendung hilft Ihnen bei der Installation von Contenido. / This application will guide you trough the setup process.");
$this->_oStepTemplate->set("s", "ACTIONTEXT", "Wählen Sie bitte die gewünschte Sprache für das Setup aus. / Please choose your language to continue.");
$langs = array("de_DE" => "Deutsch", "C" => "English");
$m = "";
foreach ($langs as $entity => $lang)
{
$test = new cHTMLLanguageLink($entity, $lang, "setuptype");
$m .= $test->render();
}
$this->_oStepTemplate->set("s", "LANGUAGECHOOSER", $m);
}
}
$cSetupStep1 = new cSetupLanguageChooser;
$cSetupStep1->render();
?>
Dann sollte es funktionieren. Das ganze tritt noch in ein oder zwei anderen Dateien auf, die dann aber nach dem gleichen Muster angepasst werden können. PHP ist manchmal lustig

Verfasst: Di 1. Nov 2005, 20:03
von #ayshe
Hallo Bluefish,
genau das war die Lösung. Das ganze trat dann noch auch mit der Datei setuptype.php auf, dort sieht mein Code jetzt so aus:
Code: Alles auswählen
<?php
unset($_SESSION["setuptype"]);
class cSetupTypeChooser extends cSetupMask
{
function cSetupTypeChooser ()
{
cSetupMask::cSetupMask("templates/setuptype.tpl");
$this->setHeader(i18n("Please choose your setup type"));
$this->_oStepTemplate->set("s", "TITLE_SETUP", i18n("Install new Contenido version"));
$this->_oStepTemplate->set("s", "VERSION_SETUP", sprintf(i18n("Version %s"), C_SETUP_VERSION));
$this->_oStepTemplate->set("s", "DESCRIPTION_SETUP", sprintf(i18n("This setup type will install Contenido %s."), C_SETUP_VERSION)."<br>".i18n("Please choose this type if you want to start with an empty or an example installation.")."<br>".i18n("Recommended for new projects."));
$this->_oStepTemplate->set("s", "TITLE_UPGRADE", i18n("Upgrade existing installation"));
$this->_oStepTemplate->set("s", "VERSION_UPGRADE", sprintf(i18n("Upgrade to %s"), C_SETUP_VERSION));
$this->_oStepTemplate->set("s", "DESCRIPTION_UPGRADE", i18n("This setup type will upgrade your existing installation (Contenido 4.4.x or later required).")."<br>".i18n("Recommended for existing projects."));
$this->_oStepTemplate->set("s", "TITLE_MIGRATION", i18n("Migrate existing installation"));
$this->_oStepTemplate->set("s", "VERSION_MIGRATION", sprintf(i18n("Migrate (Version %s)"), C_SETUP_VERSION));
$this->_oStepTemplate->set("s", "DESCRIPTION_MIGRATION", i18n("This setup type will help you migrating an existing installation to another server.")."<br>".i18n("Recommended for moving projects across servers."));
$link = new cHTMLLink("#");
$nextSetup = new cHTMLAlphaImage;
$nextSetup->setSrc("images/controls/next.png");
$nextSetup->setMouseOver("images/controls/next_over.png");
$nextSetup->setClass("button");
$link->setContent($nextSetup);
$link->attachEventDefinition("stepAttach", "onclick", "document.setupform.step.value = 'setup1';");
$link->attachEventDefinition("setuptypeAttach", "onclick", "document.setupform.setuptype.value = 'setup';");
$link->attachEventDefinition("submitAttach", "onclick", "document.setupform.submit();");
$this->_oStepTemplate->set("s", "NEXT_SETUP", $link->render());
$link = new cHTMLLink("#");
$nextSetup = new cHTMLAlphaImage;
$nextSetup->setSrc("images/controls/next.png");
$nextSetup->setMouseOver("images/controls/next_over.png");
$nextSetup->setClass("button");
$link->setContent($nextSetup);
$link->attachEventDefinition("stepAttach", "onclick", "document.setupform.step.value = 'upgrade1';");
$link->attachEventDefinition("setuptypeAttach", "onclick", "document.setupform.setuptype.value = 'upgrade';");
$link->attachEventDefinition("submitAttach", "onclick", "document.setupform.submit();");
$this->_oStepTemplate->set("s", "NEXT_UPGRADE", $link->render());
$link = new cHTMLLink("#");
$nextSetup = new cHTMLAlphaImage;
$nextSetup->setSrc("images/controls/next.png");
$nextSetup->setMouseOver("images/controls/next_over.png");
$nextSetup->setClass("button");
$link->setContent($nextSetup);
$link->attachEventDefinition("stepAttach", "onclick", "document.setupform.step.value = 'migration1';");
$link->attachEventDefinition("setuptypeAttach", "onclick", "document.setupform.setuptype.value = 'migration';");
$link->attachEventDefinition("submitAttach", "onclick", "document.setupform.submit();");
$this->_oStepTemplate->set("s", "NEXT_MIGRATION", $link->render());
}
}
$cSetupStep1 = new cSetupTypeChooser;
$cSetupStep1->render();
?>
Ad Entwickler: Wie wäre es denn, wenn ihr das in 4.6.01 einbaut?
Gute Nacht und bis morgen
Ayshe
Verfasst: Di 1. Nov 2005, 20:12
von timo
ähm die ist schon draussen und dort ist das auch eingebaut...