X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=27e33b8f07a496554f4cac2131e0ecac52bbee42;hp=e15af40017603d2c5fddc56df98c467b07eeae18;hb=51caaa61ae7ee017abdfd116bbd8c438451315b2;hpb=2c0148a84570f1a8343fa6b98a279e903b3e4fa2 diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index e15af400..27e33b8f 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -5,7 +5,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -83,6 +83,36 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { */ private $iteratorInstance = null; + /** + * Instance of the list + */ + private $listInstance = null; + + /** + * Instance of a menu + */ + private $menuInstance = null; + + /** + * Instance of the image + */ + private $imageInstance = null; + + /** + * Instance of the stacker + */ + private $stackerInstance = null; + + /** + * A Compressor instance + */ + private $compressorInstance = null; + + /** + * A Parseable instance + */ + private $parserInstance = null; + /** * The real class name */ @@ -101,7 +131,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /*********************** * Exception codes.... * ***********************/ - + // @todo Try to clean these constants up const EXCEPTION_IS_NULL_POINTER = 0x001; const EXCEPTION_IS_NO_OBJECT = 0x002; const EXCEPTION_IS_NO_ARRAY = 0x003; @@ -216,7 +246,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Some arguments are there foreach ($args as $arg) { // Add the type - $argsString .= $arg . ' (' . gettype($arg); + $argsString .= $this->replaceControlCharacters($arg) . ' (' . gettype($arg); // Add length if type is string if (gettype($arg) == 'string') $argsString .= ', '.strlen($arg); @@ -669,7 +699,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } // Initialize the template engine - $templateInstance = ObjectFactory::createObjectByConfiguredName('template_class', array($appInstance)); + $templateInstance = ObjectFactory::createObjectByConfiguredName('web_template_class', array($appInstance)); // Return the prepared instance return $templateInstance; @@ -711,6 +741,25 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { )); } + /** + * Replaces control characters with printable output + * + * @param $str String with control characters + * @return $str Replaced string + */ + protected function replaceControlCharacters ($str) { + // Replace them + $str = str_replace( + "\r", '[r]', str_replace( + "\n", '[n]', str_replace( + "\t", '[t]', + $str + ))); + + // Return it + return $str; + } + /** * Output a partial stub message for the caller method * @@ -880,7 +929,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { $readable = $this->getLanguageInstance()->getMessage('null_timestamp'); } else { switch ($this->getLanguageInstance()->getLanguageCode()) { - case "de": // German format is a bit different to default + case 'de': // German format is a bit different to default // Split the GMT stamp up $dateTime = explode(' ', $timestamp ); $dateArray = explode('-', $dateTime[0]); @@ -900,13 +949,35 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { default: // Default is pass-through $readable = $timestamp; break; - } + } // END - switch } // Return the stamp return $readable; } + /** + * Filter a given number into a localized number + * + * @param $value The raw value from e.g. database + * @return $localized Localized value + */ + public function doFilterFormatNumber ($value) { + // Generate it from config and localize dependencies + switch ($this->getLanguageInstance()->getLanguageCode()) { + case 'de': // German format is a bit different to default + $localized = number_format($value, $this->getConfigInstance()->getConfigEntry('decimals'), ',', '.'); + break; + + default: // US, etc. + $localized = number_format($value, $this->getConfigInstance()->getConfigEntry('decimals'), '.', ','); + break; + } // END - switch + + // Return it + return $localized; + } + /** * "Getter" for databse entry * @@ -961,6 +1032,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Get current array $fieldArray = $resultInstance->current(); + //* DEBUG: */ $this->debugOutput($fieldName.':
'.print_r($fieldArray, true).'
'); // Does the field exist? if (isset($fieldArray[$fieldName])) { @@ -1118,6 +1190,160 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { public final function getIteratorInstance () { return $this->iteratorInstance; } + + /** + * "Getter" as a time() replacement but with milliseconds. You should use this + * method instead of the encapsulated getimeofday() function. + * + * @return $milliTime Timestamp with milliseconds + */ + public function getMilliTime () { + // Get the time of day as float + $milliTime = gettimeofday(true); + + // Return it + return $milliTime; + } + + /** + * Idles (sleeps) for given milliseconds + * + * @return $hasSlept Wether it goes fine + */ + public function idle ($milliSeconds) { + // Sleep is fine by default + $hasSlept = true; + + // Idle so long with found function + if (function_exists('time_sleep_until')) { + // Get current time and add idle time + $sleepUntil = $this->getMilliTime() + abs($milliSeconds) / 1000; + + // New PHP 5.1.0 function found + $hasSlept = time_sleep_until($sleepUntil); + } else { + // My Sun Station doesn't have that function even with latest PHP + // package. :( + usleep($milliSeconds * 1000); + } + + // Return result + return $hasSlept; + } + + /** + * Setter for the list instance + * + * @param $listInstance A list of Listable + * @return void + */ + protected final function setListInstance (Listable $listInstance) { + $this->listInstance = $listInstance; + } + + /** + * Getter for the list instance + * + * @return $listInstance A list of Listable + */ + protected final function getListInstance () { + return $this->listInstance; + } + + /** + * Setter for the menu instance + * + * @param $menuInstance A RenderableMenu instance + * @return void + */ + protected final function setMenuInstance (RenderableMenu $menuInstance) { + $this->menuInstance = $menuInstance; + } + + /** + * Getter for the menu instance + * + * @return $menuInstance A RenderableMenu instance + */ + protected final function getMenuInstance () { + return $this->menuInstance; + } + + /** + * Setter for image instanxe + * + * @param $imageInstance An instance of an image + * @return void + */ + public final function setImageInstance (BaseImage $imageInstance) { + $this->imageInstance = $imageInstance; + } + + /** + * Getter for image instanxe + * + * @return $imageInstance An instance of an image + */ + public final function getImageInstance () { + return $this->imageInstance; + } + + /** + * Setter for stacker instanxe + * + * @param $stackerInstance An instance of an stacker + * @return void + */ + public final function setStackerInstance (Stackable $stackerInstance) { + $this->stackerInstance = $stackerInstance; + } + + /** + * Getter for stacker instanxe + * + * @return $stackerInstance An instance of an stacker + */ + public final function getStackerInstance () { + return $this->stackerInstance; + } + + /** + * Setter for compressor instanxe + * + * @param $compressorInstance An instance of an compressor + * @return void + */ + public final function setCompressorInstance (Compressor $compressorInstance) { + $this->compressorInstance = $compressorInstance; + } + + /** + * Getter for compressor instanxe + * + * @return $compressorInstance An instance of an compressor + */ + public final function getCompressorInstance () { + return $this->compressorInstance; + } + + /** + * Setter for Parseable instanxe + * + * @param $parserInstance An instance of an Parseable + * @return void + */ + public final function setParserInstance (Parseable $parserInstance) { + $this->parserInstance = $parserInstance; + } + + /** + * Getter for Parseable instanxe + * + * @return $parserInstance An instance of an Parseable + */ + public final function getParserInstance () { + return $this->parserInstance; + } } // [EOF]