- // You have to sign the code to enable this or allow the action in about:config by changing user_pref("signed.applets.codebase_principal_support", true);
+ // You have to sign the code to enable this or allow the action in about:config by changing user_pref("signed.applets.codebase_principal_support", true);
+ if ( !array_key_exists ($f_name, $config['Fields']) ) {
+ $debugger->appendHTML("<b class='debug_error'>Config Warning: </b>Field $f_name exists in the database, but is not defined in config file for prefix <b>".$config['Prefix']."</b>!");
+ $debugger->appendHTML("<b class='debug_error'>Config Error: </b>Field $f_name in config for prefix <b>".$config['Prefix']."</b> is NOT NULL in the database, but is not configured as not_null or required!");
+ safeDefine('DBG_RAISE_ON_WARNINGS', 1);
+ }
+ if ( isset($options['not_null']) && !isset($options['default']) ) {
+ $debugger->appendHTML("<b class='debug_error'>Config Error: </b>Field $f_name in config for prefix <b>".$config['Prefix']."</b> is described as NOT NULL, but does not have DEFAULT value!");
+ '/(?<!%)a/' => '%p', // Lowercase Ante meridiem and Post meridiem => MySQL provides only uppercase
+ '/(?<!%)A/' => '%p', // Uppercase Ante meridiem and Post meridiem
+ '/(?<!%)d/' => '%d', // Day of the month, 2 digits with leading zeros
+ '/(?<!%)D/' => '%a', // A textual representation of a day, three letters
+ '/(?<!%)F/' => '%M', // A full textual representation of a month, such as January or March
+ '/(?<!%)g/' => '%l', // 12-hour format of an hour without leading zeros
+ '/(?<!%)G/' => '%k', // 24-hour format of an hour without leading zeros
+ '/(?<!%)h/' => '%h', // 12-hour format of an hour with leading zeros
+ '/(?<!%)H/' => '%H', // 24-hour format of an hour with leading zeros
+ '/(?<!%)i/' => '%i', // Minutes with leading zeros
+ '/(?<!%)I/' => 'N/A', // Whether or not the date is in daylights savings time
+
+ '/(?<!%)S/' => 'N/A', // English ordinal suffix for the day of the month, 2 characters, see below
+ '/jS/' => '%D', // MySQL can't return separate suffix, but could return date with suffix
+ '/(?<!%)j/' => '%e', // Day of the month without leading zeros
+ '/(?<!%)l/' => '%W', // A full textual representation of the day of the week
+ '/(?<!%)L/' => 'N/A', // Whether it's a leap year
+ '/(?<!%)m/' => '%m', // Numeric representation of a month, with leading zeros
+ '/(?<!%)M/' => '%b', // A short textual representation of a month, three letters
+ '/(?<!%)n/' => '%c', // Numeric representation of a month, without leading zeros
+ '/(?<!%)O/' => 'N/A', // Difference to Greenwich time (GMT) in hours
+ '/(?<!%)r/' => 'N/A', // RFC 2822 formatted date
+ '/(?<!%)s/' => '%s', // Seconds, with leading zeros
+ // S and jS moved before j - see above
+ '/(?<!%)t/' => 'N/A', // Number of days in the given month
+ '/(?<!%)T/' => 'N/A', // Timezone setting of this machine
+ '/(?<!%)U/' => 'N/A', // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
+ '/(?<!%)w/' => '%w', // Numeric representation of the day of the week
+ '/(?<!%)W/' => '%v', // ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0)
+ '/(?<!%)Y/' => '%Y', // A full numeric representation of a year, 4 digits
+ '/(?<!%)y/' => '%y', // A two digit representation of a year
+ '/(?<!%)z/' => 'N/A', // The day of the year (starting from 0) => MySQL starts from 1
+ '/(?<!%)Z/' => 'N/A', // Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive.
foreach($event_params as $param_name=>$param_value)
{
$event->setEventParam($param_name,$param_value);
}
$this->Application->HandleEvent($event);
}
return $this->Storage[$name];
}
+
+ /**
+ * Removes object from storage, so next time it could be created from scratch
+ *
+ * @param string $name Object's name in the Storage
+ */
+ function DestroyObject($name)
+ {
+ unset($this->Storage[$name]);
+ }
+
/**
* Includes file containing class
* definition for real class name
*
* @param string $real_class
* @access private
*/
function includeClassFile($real_class)
{
+ if (class_exists($real_class)) return;
+
if(!$this->Files[$real_class]) $this->Application->KernelDie('<b>Fatal error: Real Class '.$real_class.' is not registered with the Factory</b><br>');
if(!file_exists($this->Files[$real_class])) $this->Application->KernelDie('<b>Fatal error: Include file for class '.$real_class.' ('.$this->Files[$real_class].') does not exists</b><br>');
- include_once($this->Files[$real_class]);
+
+ if ( $deps = getArrayValue($this->Dependencies, $real_class) ) {
+ foreach ($deps as $filename) {
+ k4_include_once($filename);
+ }
+ }
+
+ k4_include_once($this->Files[$real_class]);
}
/**
* Get's real class name for pseudo class,
* includes class file and creates class
- * instance
+ * instance.
+ * All parameters except first one are passed to object constuctor
+ * through mediator method makeClass that creates instance of class
*
* @param string $pseudo_class
* @return Object
* @access private
*/
function &makeClass($pseudo_class)
{
$real_class=$this->realClasses[$pseudo_class];
$this->includeClassFile($real_class);
- /*if (!class_exists($real_class))
+
+ if( func_num_args() == 1 )
{
- $this->Application->KernelDie ("<b>Fatal error: Real Class $real_class (pseudo class $pseudo_class) not found in its registered file ".$this->Files[$pseudo_class].'<br>');
* Creates a record in the database table with current item' values
*
+ * @param mixed $force_id Set to TRUE to force creating of item's own ID or to value to force creating of passed id. Do not pass 1 for true, pass exactly TRUE!
* @access public
- * @return void
+ * @return bool
*/
- function Create()
+ function Create($force_id=false, $system_create=false)
+ $debugger->appendHTML('mode: '.$this->SkipModeName().' tag '.$debugger->highlightString($tag_data).' in '.$debugger->getFileLink($debugger->getLocalFile(DOC_ROOT.BASE_PATH.TEMPLATES_PATH.'/'.$this->TemplateName).'.tpl', $this->CurrentLineNumber(), '', true));
+ }
$tag =& new Tag($tag_data, $this);
if (!$this->CheckRecursion($tag)) //we do NOT process closing tags
{
$tag->Process();
}
}
+ $this->CompiledBuffer .= '?'.'>'."\n";
return $this->Output;
}
- function ParseBlock($params, $force_pass_params=0)
+ function ParseBlock($params, $force_pass_params=0, $as_template=false)