AAARGH! Class 'cSetupLanguageChooser' not found

Gesperrt
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

AAARGH! Class 'cSetupLanguageChooser' not found

Beitrag 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&auml;hlen Sie bitte die gew&uuml;nschte Sprache f&uuml;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
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Bug in PHP Version 5.0.4

bitte neuere PHP-Version verwenden
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe »

Hallo Timo,

vielen Dank für die superschnelle Antwort. Ich mach dann mal PHP frisch. :-)

Gruß,
Ayshe
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

In der nächsten Contenido-Version gibt es einen Workaround für den PHP-Bug.
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Mist! Geht auch nicht mit PHP 5.0.5!

Beitrag 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
bluefish
Beiträge: 8
Registriert: Mo 23. Sep 2002, 18:19
Kontaktdaten:

Beitrag 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&auml;hlen Sie bitte die gew&uuml;nschte Sprache f&uuml;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 :)
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag 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
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ähm die ist schon draussen und dort ist das auch eingebaut...
Gesperrt