Index: trunk/core/units/admin/admin_events_handler.php =================================================================== diff -u -N --- trunk/core/units/admin/admin_events_handler.php (revision 7991) +++ trunk/core/units/admin/admin_events_handler.php (revision 0) @@ -1,220 +0,0 @@ - array('self' => true), - 'OnClosePopup' => array('self' => true), - ); - $this->permMapping = array_merge($this->permMapping, $permissions); - } - - function OnResetModRwCache(&$event) - { - $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName LIKE "mod_rw%"'); - } - - function OnResetCMSMenuCache(&$event) - { - $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName = "cms_menu"'); - } - - function OnResetSections(&$event) - { - $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName = "sections_parsed"'); - } - - function OnResetConfigsCache(&$event) - { - $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName = "config_files" OR VarName = "configs_parsed" OR VarName = "sections_parsed"'); - } - - /** - * Generates sturcture for specified table - * - * @param kEvent $event - * @author Alex - */ - function OnGenerateTableStructure(&$event) - { - $types_hash = Array( - 'string' => 'varchar|text|mediumtext|longtext|date|datetime|time|timestamp|char|year|enum|set', - 'int' => 'smallint|mediumint|int|bigint|tinyint', - 'float' => 'float', - 'double' => 'double', - 'numeric' => 'decimal', - ); - - $table_name = $this->Application->GetVar('table_name'); - if (!$table_name) { - echo 'error: no table name specified'; - return ; - } - - if (TABLE_PREFIX && !preg_match('/^'.preg_quote(TABLE_PREFIX, '/').'(.*)/', $table_name)) { - // table name without prefix, then add it - $table_name = TABLE_PREFIX.$table_name; - } - - if (!$this->Conn->TableFound($table_name)) { - // table with prefix doesn't exist, assume that just config prefix passed -> resolve table name from it - $table_name = $this->Application->getUnitOption(substr($table_name, strlen(TABLE_PREFIX)), 'TableName'); - } - - $table_info = $this->Conn->Query('DESCRIBE '.$table_name); - - // 1. prepare config keys - $id_field = ''; - $fields = Array(); - $float_types = Array ('float', 'double', 'numeric'); - foreach ($table_info as $field_info) { - if (preg_match('/l[\d]+_.*/', $field_info['Field'])) { - // don't put multilingual fields in config - continue; - } - - $field_options = Array (); - - // 1. get php field type by mysql field type - foreach ($types_hash as $php_type => $db_types) { - if (preg_match('/'.$db_types.'/', $field_info['Type'])) { - $field_options['type'] = $php_type; - break; - } - } - - $default_value = $field_info['Default']; - if (in_array($php_type, $float_types)) { - // this is float number - if (preg_match('/'.$db_types.'\([\d]+,([\d]+)\)/i', $field_info['Type'], $regs)) { - // size is described in structure -> add formatter - $field_options['formatter'] = 'kFormatter'; - $field_options['format'] = '%01.'.$regs[1].'f'; - $default_value = 0; - } - else { - // no size information, just convert to float - $default_value = (float)$default_value; - } - } - - if (preg_match('/varchar\(([\d]+)\)/i', $field_info['Type'], $regs)) { - $field_options['max_len'] = (int)$regs[1]; - } - - if ($field_info['Null'] != 'YES') { - $field_options['not_null'] = 1; - } - - if ($field_info['Key'] == 'PRI') { - $default_value = 0; - $id_field = $field_info['Field']; - } - - if ($php_type == 'int' && ($field_info['Null'] != 'YES' || is_numeric($default_value))) { - // is integer field AND not null - $field_options['default'] = (int)$default_value; - } - else { - $field_options['default'] = $default_value; - } - - $fields[ $field_info['Field'] ] = $this->transformDump($field_options); - } - - $ret = stripslashes(var_export($fields, true)); - $ret = preg_replace("/'(.*?)' => 'Array \((.*?), \)',/", "'\\1' => Array (\\2),", $ret); - $ret = preg_replace("/\n '/", "\n\t'", $ret); - $ret = "'IDField' => '".$id_field."',\n'Fields' => A".substr($ret, 1).','; - - ob_start(); - ?> - - - Table "<?php echo $table_name; ?>" Structure - - - Close Window
- highlightString($ret); ?> -
Close Window
- - - status = erSTOP; - } - - function transformDump($dump) - { - if (is_array($dump)) { - $dump = var_export($dump, true); - } - - $dump = preg_replace("/,\n[ ]*/", ', ', $dump); - $dump = preg_replace("/array \(\n[ ]*/", 'Array (', $dump); // replace array start - $dump = preg_replace("/,\n[ ]*\),/", "),", $dump); // replace array end - - return $dump; - } - - /** - * Refreshes ThemeFiles & Theme tables by actual content on HDD - * - * @param kEvent $event - */ - function OnRebuildThemes(&$event) - { - $themes_helper =& $this->Application->recallObject('ThemesHelper'); - /* @var $themes_helper kThemesHelper */ - - $themes_helper->refreshThemes(); - } - - function OnSaveColumns(&$event) { - $picker_helper =& $this->Application->RecallObject('ColumnPickerHelper'); - $picker_helper->SetGridName($this->Application->GetLinkedVar('grid_name')); - /* @var $picker_helper kColumnPickerHelper */ - - $picked = trim($this->Application->GetVar('picked_str'), '|'); - $hidden = trim($this->Application->GetVar('hidden_str'), '|'); - - $main_prefix = $this->Application->GetVar('main_prefix'); - - $picker_helper->SaveColumns($main_prefix, $picked, $hidden); - $this->finalizePopup($event); - } - - /** - * Just closes popup & deletes last_template & opener_stack if popup, that is closing - * - * @param kEvent $event - */ - function OnClosePopup(&$event) - { - $event->SetRedirectParam('opener', 'u'); - } - - /** - * Occurs right after initialization of the kernel, used mainly as hook-to event - * - * @param kEvent $event - */ - function OnStartup(&$event) - { - - } - - /** - * Is called after tree was build (when not from cache) - * - * @param kEvent $event - */ - function OnAfterBuildTree(&$event) - { - - } - -} \ No newline at end of file