* @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 LocalHomeCommand extends BaseCommand implements Commandable {
/**
* Private constructor
*
* @return void
*/
protected function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
// Set special description
$this->setObjectDescription("Home-Command");
// Create unique ID number
$this->createUniqueID();
// Clean up a little
$this->removeSystemArray();
// Set assigned controller
$this->setControllerName("default");
}
/**
* 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 createLocalHomeCommand (CommandResolver $resolverInstance) {
// Get new instance
$commandInstance = new LocalHomeCommand();
// 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
*/
public function execute (Requestable $requestInstance, Responseable $responseInstance) {
// Get the application instance
$appInstance = $this->getResolverInstance()->getApplicationInstance();
// Prepare a template instance
$templateInstance = $this->prepareTemplateEngine($appInstance);
// Load the master template
$masterTemplate = $appInstance->getMasterTemplate();
// Load the home template
$templateInstance->loadWebTemplate("home");
// Assign the home template with the master template as a content ... ;)
$templateInstance->assignTemplateWithVariable("home", "content");
// Load the master template
$templateInstance->loadCodeTemplate($masterTemplate);
// Compile it...
$templateInstance->compileTemplate();
// ... and all variables. This should be merged together in a pattern
// to make things easier. A cache mechanism should be added between
// these two calls to cache compiled templates.
$templateInstance->compileVariables();
die("
".print_r($templateInstance, true)."
");
}
}
// [EOF]
?>