From: Roland Häder Date: Fri, 13 Mar 2009 14:48:38 +0000 (+0000) Subject: Application initialized with default things (yes, we will have news right inside... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=ca5b747f9ddae328052fd647ddfccf92496bdd18;p=install.git Application initialized with default things (yes, we will have news right inside the installer) --- diff --git a/.gitattributes b/.gitattributes index 0665b3e..a294cfe 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,51 @@ * text=auto !eol /Doxyfile -text +application/install/.htaccess -text +application/install/class_ApplicationHelper.php -text +application/install/config.php -text +application/install/data.php -text +application/install/debug.php -text +application/install/exceptions.php -text +application/install/exceptions/.htaccess -text +application/install/init.php -text +application/install/interfaces/.htaccess -text +application/install/loader.php -text +application/install/main/.htaccess -text +application/install/main/actions/.htaccess -text +application/install/main/actions/class_ -text +application/install/main/actions/class_BaseInstallAction.php -text +application/install/main/actions/web/.htaccess -text +application/install/main/class_ -text +application/install/main/commands/.htaccess -text +application/install/main/commands/web/.htaccess -text +application/install/main/commands/web/failed/.htaccess -text +application/install/main/commands/web/failed/class_WebInstallFailedCommand.php -text +application/install/main/controller/.htaccess -text +application/install/main/controller/web/.htaccess -text +application/install/main/controller/web/class_WebInstallFailedController.php -text +application/install/main/filter/.htaccess -text +application/install/main/filter/class_ -text +application/install/main/filter/class_BaseInstallFilter.php -text +application/install/main/filter/install/.htaccess -text +application/install/starter.php -text +application/install/templates/.htaccess -text +application/install/templates/de/.htaccess -text +application/install/templates/de/code/footer.ctp -text +application/install/templates/de/code/header.ctp -text +application/install/templates/de/code/home.ctp -text +application/install/templates/de/code/install_main.ctp -text +application/install/templates/de/code/mail_debug.ctp -text +application/install/templates/de/emails/.htaccess -text +application/install/templates/de/emails/text_resend_link.tpl -text +application/install/templates/de/html/.htaccess -text +application/install/templates/de/html/nav_advert.tpl -text +application/install/templates/de/html/selector_ship-simu.tpl -text +application/install/templates/images/.htaccess -text +application/install/templates/images/_cache/.htaccess -text +application/install/templates/images/de/.htaccess -text +application/install/templates/images/de/image/.htaccess -text +application/install/templates/images/de/image/base_code.itp -text +application/install/templates/images/de/image/code_captcha.itp -text /clear-cache.sh -text db/.htaccess -text docs/COPYING -text diff --git a/application/install/.htaccess b/application/install/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/class_ApplicationHelper.php b/application/install/class_ApplicationHelper.php new file mode 100644 index 0000000..e1af862 --- /dev/null +++ b/application/install/class_ApplicationHelper.php @@ -0,0 +1,243 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class ApplicationHelper extends BaseApplication implements ManageableApplication, Registerable { + /** + * The version number of this application + */ + private $appVersion = ""; + + /** + * The human-readable name for this application + */ + private $appName = ""; + + /** + * The short uni*-like name for this application + */ + private $shortName = ""; + + /** + * An instance of a controller + */ + private $controllerInstance = null; + + /** + * An instance of this class + */ + private static $thisInstance = null; + + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Getter for an instance of this class + * + * @return $thisInstance An instance of this class + */ + public final static function getInstance () { + // Is the instance there? + if (is_null(self::$thisInstance)) { + self::$thisInstance = new ApplicationHelper(); + } + + // Return the instance + return self::$thisInstance; + } + + /** + * Getter for the version number + * + * @return $appVersion The application's version number + */ + public final function getAppVersion () { + return $this->appVersion; + } + + /** + * Setter for the version number + * + * @param $appVersion The application's version number + * @return void + */ + public final function setAppVersion ($appVersion) { + // Cast and set it + $appVersion = (string) $appVersion; + $this->appVersion = $appVersion; + } + + /** + * Getter for human-readable name + * + * @return $appName The application's human-readable name + */ + public final function getAppName () { + return $this->appName; + } + + /** + * Setter for human-readable name + * + * @param $appName The application's human-readable name + * @return void + */ + public final function setAppName ($appName) { + // Cast and set it + $appName = (string) $appName; + $this->appName = $appName; + } + + /** + * Getter for short uni*-like name + * + * @return $shortName The application's short uni*-like name + */ + public final function getAppShortName () { + return $this->shortName; + } + + /** + * Setter for short uni*-like name + * + * @param $shortName The application's short uni*-like name + * @return void + */ + public final function setAppShortName ($shortName) { + // Cast and set it + $shortName = (string) $shortName; + $this->shortName = $shortName; + } + + /** + * Builds the master template's name + * + * @return $masterTemplateName Name of the master template + */ + public function buildMasterTemplateName () { + // Get short name and add suffix + $masterTemplateName = str_replace("-", "", $this->getAppShortName()) . "_main"; + + // Return it + return $masterTemplateName; + } + + /** + * Launches the admin area + * + * @return void + */ + public final function entryPoint () { + // Create a new request object + $requestInstance = ObjectFactory::createObjectByName('HttpRequest'); + + // Default response is HTTP (HTML page) and type is "Web" + $response = "http"; + $responseType = "web"; + + // Do we have another response? + if ($requestInstance->isRequestElementSet('request')) { + // Then use it + $response = strtolower($requestInstance->getRequestElement('request')); + $responseType = $response; + } // END - if + + // ... and a new response object + $responseClass = sprintf("%sResponse", $this->convertToClassName($response)); + $responseInstance = ObjectFactory::createObjectByName($responseClass, array($this)); + + // Remember both in this application + $this->setRequestInstance($requestInstance); + $this->setResponseInstance($responseInstance); + + // Get the parameter from the request + $commandName = $requestInstance->getRequestElement('page'); + + // If it is null then get default command + if (is_null($commandName)) { + $commandName = $responseInstance->getDefaultCommand(); + } // END - if + + // Get a resolver + $resolverClass = sprintf("%sControllerResolver", $this->convertToClassName($responseType)); + $resolverInstance = ObjectFactory::createObjectByName($resolverClass, array($commandName, $this)); + + // Get a controller instance as well + $this->controllerInstance = $resolverInstance->resolveController(); + + // Handle the request + $this->controllerInstance->handleRequest($requestInstance, $responseInstance); + } + + /** + * Handle the indexed array of fatal messages and puts them out in an + * acceptable fasion + * + * @param $messageList An array of fatal messages + * @return void + */ + public function handleFatalMessages (array $messageList) { + // Walk through all messages + foreach ($messageList as $message) { + print("MSG:".$message."
\n"); + } // END - if + } + + /** + * Assigns application-depending data + * + * @param $templateInstance An instance of a template engine + * @return void + */ + public function assignExtraTemplateData (CompileableTemplate $templateInstance) { + // Assign charset + $templateInstance->assignConfigVariable('header_charset'); + } +} + +// [EOF] +?> diff --git a/application/install/config.php b/application/install/config.php new file mode 100644 index 0000000..e26025d --- /dev/null +++ b/application/install/config.php @@ -0,0 +1,53 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Get a configuration instance for shorter lines +$cfg = FrameworkConfiguration::getInstance(); + +// CFG: HEADER-CHARSET +$cfg->setConfigEntry('header_charset', "utf-8"); + +// CFG: DEFAULT-WEB-COMMAND +$cfg->setConfigEntry('default_web_command', "home"); + +// CFG: PAGE-WITH-NEWS +$cfg->setConfigEntry('page_with_news', "home"); + +// CFG: FORM-METHOD +$cfg->setConfigEntry('form_method', "post"); + +// CFG: FORM-TARGET +$cfg->setConfigEntry('form_target', "_self"); + +// CFG: WEB-BLOCK-HELPER +$cfg->setConfigEntry('web_block_helper', "WebBlockHelper"); + +// CFG: WEB-FORM-HELPER +$cfg->setConfigEntry('web_form_helper', "WebFormHelper"); + +// CFG: WEB-LINK-HELPER +$cfg->setConfigEntry('web_link_helper', "WebLinkHelper"); + +// [EOF] +?> diff --git a/application/install/data.php b/application/install/data.php new file mode 100644 index 0000000..6233c7e --- /dev/null +++ b/application/install/data.php @@ -0,0 +1,51 @@ +isClass("ApplicationSelector"))) { return; } + * + * isset() is required to prevent a warning and is_object() is highly required + * when the application itself is requested in URL (hint: index.php?app=your_app) + * + * @author Roland Haeder + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Get config instance +$cfg = FrameworkConfiguration::getInstance(); + +// Get an instance of the helper +$app = call_user_func_array( + array($cfg->readConfig('app_helper_class'), "getInstance"), + array() +); + +// Set application name and version +$app->setAppName("Generic Installation Wizard"); +$app->setAppVersion("0.0"); +$app->setAppShortName("install"); + +// [EOF] +?> diff --git a/application/install/debug.php b/application/install/debug.php new file mode 100644 index 0000000..f5da828 --- /dev/null +++ b/application/install/debug.php @@ -0,0 +1,61 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Reederei-Objekt debuggen +//define('DEBUG_COMPANY_OBJ', true); +// Hafen-Objekt debuggen +//define('DEBUG_HARBOR_OBJ', true); +// Schiff-Objekt debuggen +//define('DEBUG_SHIP_OBJ', true); +// Auftrag-Objekt debuggen +//define('DEBUG_CONTRACT_OBJ', true); +// Haendler-Objekt debuggen +//define('DEBUG_MERCHANT_OBJ', true); +// Personal-Objekt debuggen +//define('DEBUG_PERSONELL_OBJ', true); +// Personal debuggen +//define('DEBUG_PERSONELL', true); +// Reederei debuggen +//define('DEBUG_COMPANY', true); +// Mitarbeiter debuggen +//define('DEBUG_COMPANY_EMPLOYEE', true); +// Hafen debuggen +//define('DEBUG_HARBOR', true); +// Werft debuggen +//define('DEBUG_SHIPYARD', true); +// Schiff debuggen +//define('DEBUG_SHIP', true); +// Schiffstruktur debuggen +//define('DEBUG_STRUCTURE', true); +// Kabinen debuggen +//define('DEBUG_CABIN', true); +// Decks debuggen +//define('DEBUG_DECK', true); +// Bauauftraege debuggen +//define('DEBUG_CONTRACT', true); +// Haendler debuggen +//define('DEBUG_MERCHANT', true); + +// [EOF] +?> diff --git a/application/install/exceptions.php b/application/install/exceptions.php new file mode 100644 index 0000000..e53e46f --- /dev/null +++ b/application/install/exceptions.php @@ -0,0 +1,85 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Our own exception handler +function __exceptionHandler (FrameworkException $e) { + // Call the app_die() method + ApplicationEntryPoint::app_die(sprintf("[Main:] The application %s (%s) has terminated due to an uncaught exception: %s [%s]: %s Backtrace:
%s
", + ApplicationHelper::getInstance()->getAppName(), + ApplicationHelper::getInstance()->getAppShortName(), + $e->__toString(), + $e->getHexCode(), + $e->getMessage(), + $e->getPrintableBackTrace() + ), + $e->getHexCode(), + $e->getExtraData() + ); +} // END - function + +// Set the new handler +set_exception_handler('__exceptionHandler'); + +// Error handler +function __errorHandler ($errno, $errstr, $errfile, $errline, array $errcontext) { + // Construct the message + $message = sprintf("File: %s, Line: %s, Code: %s, Message: %s", + basename($errfile), + $errline, + $errno, + $errstr + ); + + // Throw an exception here + throw new FatalErrorException($message, BaseFrameworkSystem::EXCEPTION_FATAL_ERROR); +} // END - function + +// Set error handler +set_error_handler('__errorHandler'); + +// Assertion handler +function __assertHandler ($file, $line, $code) { + // Empty code? + if ($code === "") $code = "Unknown"; + + // Create message + $message = sprintf("File: %s, Line: %s, Code: %s", + basename($file), + $line, + $code + ); + + // Throw an exception here + throw new AssertionException($message, BaseFrameworkSystem::EXCEPTION_ASSERTION_FAILED); +} // END - function + +// Init assert handling +assert_options(ASSERT_ACTIVE, 1); +assert_options(ASSERT_WARNING, 0); +assert_options(ASSERT_BAIL, 0); +assert_options(ASSERT_QUIET_EVAL, 0); +assert_options(ASSERT_CALLBACK, '__assertHandler'); + +// [EOF] +?> diff --git a/application/install/exceptions/.htaccess b/application/install/exceptions/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/exceptions/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/init.php b/application/install/init.php new file mode 100644 index 0000000..39c5bed --- /dev/null +++ b/application/install/init.php @@ -0,0 +1,53 @@ +isClass("ApplicationSelector"))) { return; } + * + * isset() is required to prevent a warning and is_object() is highly required + * when the application itself is requested in URL (hint: index.php?app=your_app) + * + * @author Roland Haeder + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Get config instance +$cfg = FrameworkConfiguration::getInstance(); + +// Initialize output system +require($cfg->readConfig('base_path') . 'inc/output.php'); + +// Initialize file i/o system +require($cfg->readConfig('base_path') . 'inc/file_io.php'); + +// Include the language sub-system +require($cfg->readConfig('base_path') . 'inc/language.php'); + +// This application needs a database connection then we have to simply include +// the inc/database.php script +require($cfg->readConfig('base_path') . 'inc/database.php'); + +// [EOF] +?> diff --git a/application/install/interfaces/.htaccess b/application/install/interfaces/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/interfaces/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/loader.php b/application/install/loader.php new file mode 100644 index 0000000..fca1551 --- /dev/null +++ b/application/install/loader.php @@ -0,0 +1,39 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Get config instance +$cfg = FrameworkConfiguration::getInstance(); + +// Load all classes for the application +foreach ($lowerClasses as $className) { + // Load the application classes + ClassLoader::getInstance()->scanClassPath(sprintf("%s/%s/%s", $cfg->readConfig('application_path'), $cfg->readConfig('app_name'), $className)); +} // END - if + +// Clean up the global namespace +unset($lowerClasses); +unset($className); + +// [EOF] +?> diff --git a/application/install/main/.htaccess b/application/install/main/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/actions/.htaccess b/application/install/main/actions/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/actions/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/actions/class_ b/application/install/main/actions/class_ new file mode 100644 index 0000000..726285a --- /dev/null +++ b/application/install/main/actions/class_ @@ -0,0 +1,82 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class ???Action extends BaseBlogAction implements Commandable, Registerable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this action + * + * @param $resolverInstance An instance of an action resolver + * @return $actionInstance An instance of this action class + */ + public final static function create???Action (ActionResolver $resolverInstance) { + // Get a new instance + $actionInstance = new ???Action(); + + // Return the instance + return $actionInstance; + } + + /** + * Executes the command with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo 0% done + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Call parent execute method + parent::execute($requestInstance, $responseInstance); + + // Add your code here + $this->partialStub("You have to implement me."); + } + + /** + * Adds extra filters to the given controller instance + * + * @param $controllerInstance A controller instance + * @param $requestInstance An instance of a class with an Requestable interface + * @return void + * @todo Add some filters here + */ + public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { + // Call parent addExtraFilters method + parent::addExtraFilters($controllerInstance, $requestInstance); + + // Unfinished method + } +} + +// [EOF] +?> diff --git a/application/install/main/actions/class_BaseInstallAction.php b/application/install/main/actions/class_BaseInstallAction.php new file mode 100644 index 0000000..946ef19 --- /dev/null +++ b/application/install/main/actions/class_BaseInstallAction.php @@ -0,0 +1,63 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class BaseInstallAction extends BaseAction { + /** + * Protected constructor + * + * @param $className Name of the class + * @return void + */ + protected function __construct ($className) { + // Call parent constructor + parent::__construct($className); + } + + /** + * Executes the command with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo 0% done + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Add code here executed with every action + } + + /** + * Adds extra filters to the given controller instance + * + * @param $controllerInstance A controller instance + * @param $requestInstance An instance of a class with an Requestable interface + * @return void + * @todo Add some filters here + */ + public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { + // Fetch some install data + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('install_data_filter', array($controllerInstance))); + } +} + +// [EOF] +?> diff --git a/application/install/main/actions/web/.htaccess b/application/install/main/actions/web/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/actions/web/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/class_ b/application/install/main/class_ new file mode 100644 index 0000000..df22004 --- /dev/null +++ b/application/install/main/class_ @@ -0,0 +1,41 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class extends BaseFrameworkSystem { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + + // Clean up a little + $this->removeNumberFormaters(); + $this->removeSystemArray(); + } +} + +// [EOF] +?> diff --git a/application/install/main/commands/.htaccess b/application/install/main/commands/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/commands/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/commands/web/.htaccess b/application/install/main/commands/web/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/commands/web/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/commands/web/failed/.htaccess b/application/install/main/commands/web/failed/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/commands/web/failed/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/commands/web/failed/class_WebInstallFailedCommand.php b/application/install/main/commands/web/failed/class_WebInstallFailedCommand.php new file mode 100644 index 0000000..0bf9f95 --- /dev/null +++ b/application/install/main/commands/web/failed/class_WebInstallFailedCommand.php @@ -0,0 +1,77 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class WebInstallFailedCommand extends BaseCommand implements Commandable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this class + * + * @param $resolverInstance An instance of a command resolver class + * @return $commandInstance An instance a prepared command class + */ + public final static function createWebInstallFailedCommand (CommandResolver $resolverInstance) { + // Get new instance + $commandInstance = new WebInstallFailedCommand(); + + // Set the application instance + $commandInstance->setResolverInstance($resolverInstance); + + // Return the prepared instance + return $commandInstance; + } + + /** + * Executes the given command with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo 0% done + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + $this->partialStub("Unfinished method."); + } + + /** + * Adds extra filters to the given controller instance + * + * @param $controllerInstance A controller instance + * @param $requestInstance An instance of a class with an Requestable interface + * @return void + */ + public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) { + // Empty for now + } +} + +// [EOF] +?> diff --git a/application/install/main/controller/.htaccess b/application/install/main/controller/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/controller/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/controller/web/.htaccess b/application/install/main/controller/web/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/controller/web/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/controller/web/class_WebInstallFailedController.php b/application/install/main/controller/web/class_WebInstallFailedController.php new file mode 100644 index 0000000..346e0e5 --- /dev/null +++ b/application/install/main/controller/web/class_WebInstallFailedController.php @@ -0,0 +1,106 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class WebInstallFailedController extends BaseController implements Controller { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this class + * + * @param $resolverInstance An instance of a command resolver class + * @return $controllerInstance A prepared instance of this class + * @todo Add some filters to this controller + */ + public final static function createWebInstallFailedController (CommandResolver $resolverInstance) { + // Create the instance + $controllerInstance = new WebInstallFailedController(); + + // Set the command resolver + $controllerInstance->setResolverInstance($resolverInstance); + + // User auth filter + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_auth_filter', array($controllerInstance))); + + // User update filter + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('user_update_filter', array($controllerInstance))); + + // News fetcher filter + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_download_filter', array($controllerInstance))); + + // News proccess/display-preparation + $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('news_process_filter', array($controllerInstance))); + + // Return the prepared instance + return $controllerInstance; + } + + /** + * Handles the given request and response + * + * @param $requestInstance An instance of a request class + * @param $responseInstance An instance of a response class + * @return void + */ + public function handleRequest (Requestable $requestInstance, Responseable $responseInstance) { + // Get the command instance from the resolver by sending a request instance to the resolver + $commandInstance = $this->getResolverInstance()->resolveCommandByRequest($requestInstance); + + // Add more filters by the command + $commandInstance->addExtraFilters($this, $requestInstance); + + // Try to run the pre filters, if auth exceptions come through redirect here + try { + // Run the pre filters + $this->executePreFilters($requestInstance, $responseInstance); + } catch (UserAuthorizationException $e) { + // Redirect to main page + $responseInstance->redirectToConfiguredUrl('login_failed_url'); + + // Exit here + exit(); + } + + // This request was valid! :-D + $requestInstance->requestIsValid(); + + // Execute the command + $commandInstance->execute($requestInstance, $responseInstance); + + // Run the pre filters + $this->executePostFilters($requestInstance, $responseInstance); + + // Flush the response out + $responseInstance->flushBuffer(); + } +} + +// [EOF] +?> diff --git a/application/install/main/filter/.htaccess b/application/install/main/filter/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/filter/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/main/filter/class_ b/application/install/main/filter/class_ new file mode 100644 index 0000000..3cf4789 --- /dev/null +++ b/application/install/main/filter/class_ @@ -0,0 +1,69 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class ???Filter extends BaseBlogFilter implements Filterable { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this filter class + * + * @param $controllerInstance An instance of a Controller class + * @return $filterInstance An instance of this filter class + */ + public final static function create???Filter (Controller $controllerInstance) { + // Get a new instance + $filterInstance = new ???Filter(); + + // Set the controller + $filterInstance->setControllerInstance($controllerInstance); + + // Return the instance + return $filterInstance; + } + + /** + * Executes the filter with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo Add code being executed in this filter + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Execute the parent execute method + parent::execute($requestInstance, $responseInstance); + + $this->partialStub("Add code here for your specific filter."); + } +} + +// [EOF] +?> diff --git a/application/install/main/filter/class_BaseInstallFilter.php b/application/install/main/filter/class_BaseInstallFilter.php new file mode 100644 index 0000000..ea32d44 --- /dev/null +++ b/application/install/main/filter/class_BaseInstallFilter.php @@ -0,0 +1,50 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class BaseInstallFilter extends BaseFilter { + /** + * Protected constructor + * + * @param $className Name of the filter class + * @return void + */ + protected function __construct ($className) { + // Call parent constructor + parent::__construct($className); + } + + /** + * Executes the filter with given request and response objects + * + * @param $requestInstance An instance of a class with an Requestable interface + * @param $responseInstance An instance of a class with an Responseable interface + * @return void + * @todo 0% + */ + public function execute (Requestable $requestInstance, Responseable $responseInstance) { + // Add something to do on every filter + } +} + +// [EOF] +?> diff --git a/application/install/main/filter/install/.htaccess b/application/install/main/filter/install/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/main/filter/install/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/starter.php b/application/install/starter.php new file mode 100644 index 0000000..b128839 --- /dev/null +++ b/application/install/starter.php @@ -0,0 +1,53 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Is there an application helper instance? We need the method main() for +// maining the application +$app = call_user_func_array(array(FrameworkConfiguration::getInstance()->readConfig('app_helper_class'), "getInstance"), array()); + +// Some sanity checks +if ((empty($app)) || (is_null($app))) { + // Something went wrong! + ApplicationEntryPoint::app_die(sprintf("[Main:] The application %s could not be launched because the helper class %s is not loaded.", + $application, + FrameworkConfiguration::getInstance()->readConfig('app_helper_class') + )); +} elseif (!is_object($app)) { + // No object! + ApplicationEntryPoint::app_die(sprintf("[Main:] The application %s could not be launched because 'app' is not an object.", + $application + )); +} elseif (!method_exists($app, FrameworkConfiguration::getInstance()->readConfig('entry_method'))) { + // Method not found! + ApplicationEntryPoint::app_die(sprintf("[Main:] The application %s could not be launched because the method %s is missing.", + $application, + FrameworkConfiguration::getInstance()->readConfig('entry_method') + )); +} + +// Call user function +call_user_func_array(array($app, FrameworkConfiguration::getInstance()->readConfig('entry_method')), array()); + +// [EOF] +?> diff --git a/application/install/templates/.htaccess b/application/install/templates/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/de/.htaccess b/application/install/templates/de/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/de/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/de/code/footer.ctp b/application/install/templates/de/code/footer.ctp new file mode 100644 index 0000000..aa82e68 --- /dev/null +++ b/application/install/templates/de/code/footer.ctp @@ -0,0 +1,4 @@ + + + + diff --git a/application/install/templates/de/code/header.ctp b/application/install/templates/de/code/header.ctp new file mode 100644 index 0000000..1c92a39 --- /dev/null +++ b/application/install/templates/de/code/header.ctp @@ -0,0 +1,20 @@ + + + + + {?app_full_name?} - {?title?} + + + + + + + + + + + + + + +
diff --git a/application/install/templates/de/code/home.ctp b/application/install/templates/de/code/home.ctp new file mode 100644 index 0000000..259d49f --- /dev/null +++ b/application/install/templates/de/code/home.ctp @@ -0,0 +1,3 @@ +
+ Willkommen zum Installationsassistenten Version {?app_version?} +
diff --git a/application/install/templates/de/code/install_main.ctp b/application/install/templates/de/code/install_main.ctp new file mode 100644 index 0000000..6469ccd --- /dev/null +++ b/application/install/templates/de/code/install_main.ctp @@ -0,0 +1,23 @@ +{?header?} + +
+ {?install_header?} +
+ + + + + +
+ {?content?} +
+ + + +{?footer?} diff --git a/application/install/templates/de/code/mail_debug.ctp b/application/install/templates/de/code/mail_debug.ctp new file mode 100644 index 0000000..e62dd07 --- /dev/null +++ b/application/install/templates/de/code/mail_debug.ctp @@ -0,0 +1,25 @@ +
+ Mail-Debug-Ausgabe: +
+ +
+
+ Von: {?sender?} +
+
+ An: {?recipient?} +
+
+ Betreff: {?subject?} +
+
+ +
+
+ Nachricht: +
+ +
+ {?message?} +
+
diff --git a/application/install/templates/de/emails/.htaccess b/application/install/templates/de/emails/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/de/emails/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/de/emails/text_resend_link.tpl b/application/install/templates/de/emails/text_resend_link.tpl new file mode 100644 index 0000000..e764146 --- /dev/null +++ b/application/install/templates/de/emails/text_resend_link.tpl @@ -0,0 +1,30 @@ + + + + + + + + + + + diff --git a/application/install/templates/de/html/.htaccess b/application/install/templates/de/html/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/de/html/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/de/html/nav_advert.tpl b/application/install/templates/de/html/nav_advert.tpl new file mode 100644 index 0000000..22da43b --- /dev/null +++ b/application/install/templates/de/html/nav_advert.tpl @@ -0,0 +1 @@ + diff --git a/application/install/templates/de/html/selector_ship-simu.tpl b/application/install/templates/de/html/selector_ship-simu.tpl new file mode 100644 index 0000000..b96640e --- /dev/null +++ b/application/install/templates/de/html/selector_ship-simu.tpl @@ -0,0 +1,17 @@ +
+
+ Gründen Sie eine virtuelle Reederei an den bedeutestens + Welthäfen! Oder treten Sie einer Reederei als Angestellter bei und + arbeiten Sie sich bis in die Chef-Etagge hoch! +
+ +
+ Oder fangen Sie als Matrose auf einem Passagierschiff (virtuell) an zu + arbeiten und werden Sie nach wenigen Kreuzfahrten bald Kapitän! +
+ +
+ Oder buchen Sie eine virtuelle Kreuzfahrt durch die bekannten Meeren in + {!POINTS!} in einer Luxus-Suite! +
+
diff --git a/application/install/templates/images/.htaccess b/application/install/templates/images/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/images/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/images/_cache/.htaccess b/application/install/templates/images/_cache/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/images/_cache/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/images/de/.htaccess b/application/install/templates/images/de/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/images/de/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/images/de/image/.htaccess b/application/install/templates/images/de/image/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/application/install/templates/images/de/image/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/application/install/templates/images/de/image/base_code.itp b/application/install/templates/images/de/image/base_code.itp new file mode 100644 index 0000000..6501b56 --- /dev/null +++ b/application/install/templates/images/de/image/base_code.itp @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/application/install/templates/images/de/image/code_captcha.itp b/application/install/templates/images/de/image/code_captcha.itp new file mode 100644 index 0000000..2e28522 --- /dev/null +++ b/application/install/templates/images/de/image/code_captcha.itp @@ -0,0 +1,78 @@ +setImageName("code_captcha"); +$helper->setBaseImage("base_code"); + +// Set image dimensions +$helper->setWidth(100); +$helper->setHeight(50); + +// Get random number +$rand = $helper->getRngInstance()->randomNumber(0, 6); + +// Background and foreground color +switch ($rand) { + case 1: + // First varriant + $helper->setBackgroundColorRedGreenBlue('rand', 0x90 , 0x00 ); + $helper->setForegroundColorRedGreenBlue(0x00 , 0xff , 'rand'); + break; + + case 2: + // Second varriant + $helper->setBackgroundColorRedGreenBlue(0x90 , 'rand', 0x00 ); + $helper->setForegroundColorRedGreenBlue(0xff , 0x00 , 'rand'); + break; + + case 3: + // Third varriant + $helper->setBackgroundColorRedGreenBlue('rand', 0x00 , 0x90 ); + $helper->setForegroundColorRedGreenBlue(0x00 , 'rand', 0xff ); + break; + + case 4: + // Forth varriant + $helper->setBackgroundColorRedGreenBlue(0x00 , 0x90 , 'rand'); + $helper->setForegroundColorRedGreenBlue(0x00 , 'rand', 0xa0 ); + break; + + case 5: + // Fith varriant + $helper->setBackgroundColorRedGreenBlue('rand', 0x00 , 0x90 ); + $helper->setForegroundColorRedGreenBlue(0x00 , 0xe0 , 'rand'); + break; + + default: + // Last varriant + $helper->setBackgroundColorRedGreenBlue(0x00 , 'rand', 0x90 ); + $helper->setForegroundColorRedGreenBlue(0xff , 0x00 , 'rand'); + break; +} + +// Random X/Y factors... +$xRand = $helper->getRngInstance()->randomNumber(0, 45); +$yRand = $helper->getRngInstance()->randomNumber(0, 25); + +// Add code +$helper->addTextLine("code"); +$helper->setCoord((5 + $xRand), (5 + $yRand)); +$helper->setFontSize('rand'); +$helper->setImageString("{?decrypted_code?}"); + +// Only for debug! +/* +$helper->addTextLine("debug"); +$helper->setCoord(90, 35); +$helper->setFontSize(3); +$helper->setImageString($rand); +*/ + +// Flush content to the template engine +$helper->flushContent(); + +// Comment this out if image is done +//$this->debugInstance(); + +// [EOF] +?>