Index: branches/RC/core/units/categories/categories_tag_processor.php =================================================================== diff -u -N -r11592 -r11610 --- branches/RC/core/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 11592) +++ branches/RC/core/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 11610) @@ -295,7 +295,7 @@ $module_info = $category_helper->getCategoryModule($params, $category_path); // In-Edit & Proj-CMS module prefixes doesn't have custom field with item template - if ($module_info && $module_info['Var'] != 'cms' && $module_info['Var'] != 'st') { + if ($module_info && $module_info['Var'] != 'adm' && $module_info['Var'] != 'st') { // 2. get item template by current category & module prefix $mod_rewrite_helper = $this->Application->recallObject('ModRewriteHelper'); @@ -561,7 +561,7 @@ static $root_category = null; if (!isset($root_category)) { - $root_category = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $root_category = $this->Application->findModule('Name', 'Core', 'RootCat'); } return $root_category; @@ -1087,18 +1087,20 @@ $page_id = $page->GetID(); - $data = Array ('PageId' => $page_id, 'ContentNum' => $num); $content =& $this->Application->recallObject('content.-block', null, Array ('skip_autoload' => true)); /* @var $content kDBItem */ + $data = Array ('PageId' => $page_id, 'ContentNum' => $num); $content->Load($data); + if (!$content->isLoaded()) { // bug: missing content blocks are created even if user have no SMS-management rights $content->SetFieldsFromHash($data); $content->Create(); } - $edit_code = ''; + $edit_code_before = $edit_code_after = ''; + if (EDITING_MODE == EDITING_MODE_CMS) { $bg_color = isset($params['bgcolor']) ? $params['bgcolor'] : '#ffffff'; $url_params = Array ( @@ -1116,38 +1118,41 @@ // '__FORCE_SID__' => 1 ); + $additional_css = ''; + if (isset($params['float'])) { - $pos_float = 'position: relative; float: '.$params['float'].';'; + $additional_css .= 'position: relative; width: 100%; float: ' . $params['float'] . ';'; } - else { - $pos_float = 'width: auto; position: absolute;'; - } // link from Front-End to admin, don't remove "index.php" $edit_url = $this->Application->HREF('categories/edit_content', ADMIN_DIRECTORY, $url_params, 'index.php'); + $edit_code_before = ' +
+
+
+ +
+
Edit '.(defined('DEBUG_MODE') && DEBUG_MODE ? " - #{$num}" : '').'
+
+
'; - $button_image = '
'; - $button_css = 'vertical-align: middle; font-family: Arial, Verdana; font-size: 13px; '.$pos_float.' z-index: 99; background-color: #FFCC00; color: black; border: 2px solid #FF6E00; padding: 2px 10px; margin-top: -5px; margin-left: -5px; cursor: pointer;'; - $edit_code = '
' . $button_image . '
Edit '.(defined('DEBUG_MODE') && DEBUG_MODE ? " - #{$num}" : '').'
'; + $edit_form = '
'; + $edit_form .= ''; + $edit_form .= ''; + $edit_form .= ''; + $edit_form .= ''; + $edit_form .= ''; + $edit_form .= '
'; - if (isset($params['forms_later']) && $params['forms_later']) { - $tmp = $edit_code; - $edit_code = ''; - } + $edit_code_after = '
'; - $edit_code .= '
'; - $edit_code .= ''; - $edit_code .= ''; - $edit_code .= ''; - $edit_code .= ''; - $edit_code .= ''; - $edit_code .= '
'; - if (isset($params['forms_later']) && $params['forms_later']) { + if (array_key_exists('forms_later', $params) && $params['forms_later']) { $all_forms = $this->Application->GetVar('all_forms'); - $all_forms .= $edit_code; - $this->Application->SetVar('all_forms', $all_forms); - $edit_code = $tmp; + $this->Application->SetVar('all_forms', $all_forms . $edit_form); } + else { + $edit_code_after .= $edit_form; + } } if ($this->Application->GetVar('_editor_preview_') == 1) { @@ -1156,12 +1161,19 @@ $data = $content->GetField('Content'); } - $data = $edit_code . $this->_replacePageIds($data); + $data = $this->_transformContentBlockData($data, $params); - if (EDITING_MODE == EDITING_MODE_CMS) { - $data .= '
'; - } + return $edit_code_before . $this->_replacePageIds($data) . $edit_code_after; + } + /** + * Apply all kinds of content block data transformations without rewriting ContentBlock tag + * + * @param string $data + * @return string + */ + function _transformContentBlockData(&$data, $params) + { return $data; } @@ -1289,70 +1301,41 @@ } /** - * Prints "Edit Page" button on cms page + * Includes admin css and js, that are required for cms usage on Front-Edn * + * * @param Array $params * @return string */ - function EditPage($params) + function EditingScripts($params) { - if (!EDITING_MODE) { - return ''; + if ($this->Application->GetVar('admin_scripts_included') || !EDITING_MODE) { + return ; } - $page =& $this->_getPage($params); + $this->Application->SetVar('admin_scripts_included', 1); - $url_params = Array( - 'pass' => 'm,c', - 'm_opener' => 'd', - 'c_id' => $page->GetID(), - 'c_mode' => 't', - 'c_event' => 'OnEdit', - 'front' => 1, - '__URLENCODE__' => 1, - '__NO_REWRITE__'=> 1, - 'escape' => 1, - 'index_file' => 'index.php', - ); + $js_url = $this->Application->BaseURL() . 'core/admin_templates/js'; - $edit_url = $this->Application->HREF('categories/categories_edit', '/admin', $url_params); - $button_image = '
'; - $button_css = 'position: absolute; z-index: 1; top: 1; left 1; font-family: Arial, Verdana; font-size: 13px; background-color: #CCFF00; color: black; border: 2px solid #A1D0A1; width: auto; padding: 2px 10px; cursor: pointer;'; - $edit_code = '
' . $button_image . '
Section Properties
'; -// $title = $this->PageInfo(array('type' => 'htmlhead_title')); + $ret = '' . "\n"; + $ret .= '' . "\n"; + $ret .= '' . "\n"; + $ret .= '' . "\n"; + $ret .= '' . "\n"; + $ret .= '' . "\n"; + $ret .= '' . "\n"; + $ret .= '' . "\n"; + $ret .= '' . "\n"; - $edit_code .= '' . "\n"; - $edit_code .= '' . "\n"; - $edit_code .= '' . "\n"; - $edit_code .= '' . "\n"; - $edit_code .= '' . "\n"; - $edit_code .= '' . "\n"; - } - $url_params = Array('m_theme' => '', 'pass' => 'm', 'm_opener' => 'r', 'no_amp' => 1); $browse_url = $this->Application->HREF('catalog/catalog', ADMIN_DIRECTORY, $url_params, 'index.php'); $browse_url = preg_replace('/&(admin|editing_mode)=[\d]/', '', $browse_url); - $edit_code .= ' -
'."\n"; + '; + $ret .= '' . "\n"; + + // add form, so admin scripts could work + $ret .= '
+ +
'; + + return $ret; + } + + /** + * Prints "Edit Page" button on cms page + * + * @param Array $params + * @return string + */ + function EditPage($params) + { + if (!EDITING_MODE) { + return ''; + } + + $display_mode = array_key_exists('mode', $params) ? $params['mode'] : false; + $edit_code = ''; + + if ($display_mode != 'end') { + $page =& $this->_getPage($params); + + $url_params = Array( + 'pass' => 'm,c', + 'm_opener' => 'd', + 'c_id' => $page->GetID(), + 'c_mode' => 't', + 'c_event' => 'OnEdit', + 'front' => 1, + '__URLENCODE__' => 1, + '__NO_REWRITE__'=> 1, + 'escape' => 1, + 'index_file' => 'index.php', + ); + + $edit_url = $this->Application->HREF('categories/categories_edit', '/admin', $url_params); + + $edit_btn = ' +
+
+ +
+
Section Properties
+
' . "\n"; + + if ($display_mode == 'start') { + // button with border around the page + $edit_code .= '
' . $edit_btn . '
'; + + } + else { + // button without border around the page + $edit_code .= $edit_btn; + } + } + + if ($display_mode == 'end') { + // draw border around the page + $edit_code .= '
'; + } + + if ($display_mode != 'end') { + $edit_code .= '
'; + + // when "EditingScripts" tag is not used, make sure, that scripts are also included + $edit_code .= $this->EditingScripts($params); + } + return $edit_code; } @@ -1379,7 +1436,7 @@ static $root_path = null; if (!$root_cat) { - $root_cat = $this->Application->ModuleInfo['Proj-CMS']['RootCat']; + $root_cat = $this->Application->ModuleInfo['Core']['RootCat']; $root_path = $this->Conn->GetOne('SELECT ParentPath FROM '.TABLE_PREFIX.'Category WHERE CategoryId = '.$root_cat); } @@ -1417,7 +1474,7 @@ $cat = $this_category->GetDBField('ParentId'); } else if ($cat == 0) { - $cat = $this->Application->ModuleInfo['Proj-CMS']['RootCat']; + $cat = $this->Application->ModuleInfo['Core']['RootCat']; } return $cat; @@ -1938,7 +1995,9 @@ $ret = Array (); foreach ($prefixes as $prefix) { - $ret[$prefix] = $this->Application->getUnitOption($prefix, 'ModuleFolder') . '/export'; + if ($this->Application->prefixRegistred($prefix)) { + $ret[$prefix] = $this->Application->getUnitOption($prefix, 'ModuleFolder') . '/export'; + } } $json_helper =& $this->Application->recallObject('JSONHelper'); Index: branches/RC/core/install/install_schema.sql =================================================================== diff -u -N -r11600 -r11610 --- branches/RC/core/install/install_schema.sql (.../install_schema.sql) (revision 11600) +++ branches/RC/core/install/install_schema.sql (.../install_schema.sql) (revision 11610) @@ -409,8 +409,7 @@ PopItem int(11) NOT NULL default '2', Modified int(11) NOT NULL default '0', ModifiedById int(11) NOT NULL default '0', - CategoryTemplate varchar(255) NOT NULL default '', - CachedCategoryTemplate varchar(255) NOT NULL default '', + CachedTemplate varchar(255) NOT NULL, Template varchar(255) default NULL, UseExternalUrl tinyint(3) unsigned NOT NULL default '0', ExternalUrl varchar(255) NOT NULL default '', @@ -480,15 +479,16 @@ ); CREATE TABLE CategoryItems ( - `CategoryId` int(11) NOT NULL default '0', - `ItemResourceId` int(11) NOT NULL default '0', - `PrimaryCat` tinyint(4) NOT NULL default '0', - `ItemPrefix` varchar(50) NOT NULL default '', - `Filename` varchar(255) NOT NULL default '', - UNIQUE KEY `CategoryId` (`CategoryId`,`ItemResourceId`), - KEY `PrimaryCat` (`PrimaryCat`), - KEY `ItemPrefix` (`ItemPrefix`), - KEY `Filename` (`Filename`(4)) + CategoryId int(11) NOT NULL default '0', + ItemResourceId int(11) NOT NULL default '0', + PrimaryCat tinyint(4) NOT NULL default '0', + ItemPrefix varchar(50) NOT NULL default '', + Filename varchar(255) NOT NULL default '', + UNIQUE KEY CategoryId (CategoryId,ItemResourceId), + KEY PrimaryCat (PrimaryCat), + KEY ItemPrefix (ItemPrefix), + KEY ItemResourceId (ItemResourceId), + KEY Filename (Filename) ); CREATE TABLE PermCache ( Index: branches/RC/core/units/general/helpers/category_helper.php =================================================================== diff -u -N -r11538 -r11610 --- branches/RC/core/units/general/helpers/category_helper.php (.../category_helper.php) (revision 11538) +++ branches/RC/core/units/general/helpers/category_helper.php (.../category_helper.php) (revision 11610) @@ -163,7 +163,7 @@ function getHomeCategoryPath($params, $current_category) { - $block_params['cat_id'] = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); // 0; + $block_params['cat_id'] = $this->Application->findModule('Name', 'Core', 'RootCat'); // 0; $block_params['no_editing'] = 1; $block_params['current'] = $current_category == $block_params['cat_id'] ? 1 : 0; $block_params['separator'] = $params['separator']; @@ -209,7 +209,7 @@ WHERE '.$id_field.' = '.$main_category_id; $category_data = $this->Conn->GetRow($sql); - $skip_category = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $skip_category = $this->Application->findModule('Name', 'Core', 'RootCat'); $cached_path[$main_category_id] = Array (); if ($category_data) { $category_names = explode('&|&', $category_data[$navbar_field]); Index: branches/RC/core/units/languages/import_xml.php =================================================================== diff -u -N -r11538 -r11610 --- branches/RC/core/units/languages/import_xml.php (.../import_xml.php) (revision 11538) +++ branches/RC/core/units/languages/import_xml.php (.../import_xml.php) (revision 11610) @@ -186,6 +186,7 @@ */ function _performUpgrade($language_id, $prefix, $unique_field) { + // TODO: find a way to compare (intersect,diff) phrases in non-case sensitive way, but keeping original case in result $live_records = $this->_getTableData($language_id, $prefix, $unique_field, false); $temp_records = $this->_getTableData($language_id, $prefix, $unique_field, true); @@ -487,6 +488,11 @@ $rows = $this->Conn->Query( sprintf($event_sql,$language_id, $event_ids ? implode(',',$event_ids) : '' ) ); foreach($rows as $row) { + if (!array_key_exists($row['EventId'], $this->events_hash)) { + // don't export existing translations of missing events + continue; + } + list($event_name, $event_type) = explode('_', $this->events_hash[ $row['EventId'] ] ); $data = $this->Encoding == 'base64' ? base64_encode($row['Template']) : ''; $ret .= sprintf($event_tpl, $row['MessageType'], $event_name, $event_type, $data ); Index: branches/RC/system/user_files/in-portal_logo_img.jpg =================================================================== diff -u -N Binary files differ Index: branches/RC/core/units/forms/forms_config.php =================================================================== diff -u -N --- branches/RC/core/units/forms/forms_config.php (revision 0) +++ branches/RC/core/units/forms/forms_config.php (revision 11610) @@ -0,0 +1,110 @@ + 'form', + 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), + 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), + 'EventHandlerClass' => Array('class'=>'FormsEventHandler','file'=>'forms_eh.php','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class'=>'FormsTagProcessor','file'=>'forms_tp.php','build_event'=>'OnBuild'), + 'AutoLoad' => true, + 'QueryString' => Array( + 1 => 'id', + 2 => 'Page', + 3 => 'event', + 4 => 'mode', + ), + 'Hooks' => Array( + Array( + 'Mode' => hAFTER, + 'Conditional' => false, + 'HookToPrefix' => 'form', //self + 'HookToSpecial' => '*', + 'HookToEvent' => Array('OnAfterConfigRead'), + 'DoPrefix' => '', + 'DoSpecial' => '', + 'DoEvent' => 'OnCreateSubmissionNodes', + ), + ), + + 'TableName' => TABLE_PREFIX.'Forms', + 'IDField' => 'FormId', + 'TitleField' => 'Title', + 'PermSection' => Array('main' => 'in-portal:forms'), + 'Sections' => Array( + 'in-portal:forms' => Array( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:form', + 'label' => 'la_tab_FormsConfig', + 'url' => Array('t' => 'forms/forms_list', 'pass' => 'm'), + 'permissions' => Array('view', 'add', 'edit', 'delete'), + 'priority' => 0.3, + 'show_mode' => smSUPER_ADMIN, + 'type' => stTREE, + ), + ), + 'TitlePresets' => Array( + 'default' => Array( 'new_status_labels' => Array('form'=>'!la_title_Adding_Form!'), + 'edit_status_labels' => Array('form'=>'!la_title_Editing_Form!'), + 'new_titlefield' => Array('form'=>''), + ), + + 'forms_list'=>Array('prefixes' => Array('form_List'), + 'format' => "!la_title_Forms!", + ), + + 'forms_edit'=>Array( 'prefixes' => Array('form'), + 'format' => "#form_status# '#form_titlefield#' - !la_title_General!", + ), + 'forms_edit_fields' => Array( 'prefixes' => Array('form'), + 'format' => "#form_status# '#form_titlefield#' - !la_title_Fields!", + ), + + 'form_field_edit' => Array( 'prefixes' => Array('form', 'formflds'), + 'new_status_labels' => Array('formflds'=>"!la_title_Adding_FormField!"), + 'edit_status_labels' => Array('formflds'=>'!la_title_Editing_FormField!'), + 'new_titlefield' => Array('formflds'=>''), + 'format' => "#form_status# '#form_titlefield#' - #formflds_status# '#formflds_titlefield#'", + ), + 'tree_submissions'=>Array( + 'format' => "!la_title_FormSubmissions!", + ), + ), + + 'EditTabPresets' => Array ( + 'Default' => Array ( + 'general' => Array ('title' => 'la_tab_General', 't' => 'forms/forms_edit', 'priority' => 1), + 'fields' => Array ('title' => 'la_tab_Fields', 't' => 'forms/forms_edit_fields', 'priority' => 2), + ), + ), + + 'ListSQLs' => Array( + ''=>' SELECT %1$s.* %2$s FROM %1$s', + ), // key - special, value - list select sql + 'ItemSQLs' => Array( + ''=>'SELECT %1$s.* %2$s FROM %1$s', + ), + + 'SubItems' => Array('formflds'), + + 'ListSortings' => Array( + '' => Array( + 'Sorting' => Array('Title' => 'asc'), + ) + ), + + 'Fields' => Array( + 'FormId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0, 'filter_type' => 'equals'), + 'Title' => Array('type' => 'string','not_null' => 1, 'default' => '','required' => 1), + 'Description' => Array('type' => 'string', 'default' => null,), + ), + 'Grids' => Array( + 'Default' => Array( + 'Icons' => Array('default'=>'icon16_form.gif'), + 'Fields' => Array( + 'FormId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'), + 'Title' => Array( 'title' => 'la_col_Title', 'filter_block' => 'grid_like_filter'), + ), + ), + ), + ); +?> \ No newline at end of file Index: branches/RC/core/units/email_messages/email_messages_config.php =================================================================== diff -u -N -r10915 -r11610 --- branches/RC/core/units/email_messages/email_messages_config.php (.../email_messages_config.php) (revision 10915) +++ branches/RC/core/units/email_messages/email_messages_config.php (.../email_messages_config.php) (revision 11610) @@ -18,6 +18,16 @@ 'IDField' => 'EmailMessageId', 'TitleField' => 'Subject', + 'TitlePresets' => Array ( + 'email_messages_direct_list' => Array ('prefixes' => Array ('emailmessages.module_List'), 'format' => "!la_title_EmailMessages!"), + 'email_messages_edit_direct' => Array ( + 'prefixes' => Array ('emailmessages'), + 'new_status_labels' => Array ('emailmessages' => '!la_title_Adding_E-mail!'), + 'edit_status_labels' => Array ('emailmessages' => '!la_title_Editing_E-mail!'), + 'format' => '#emailmessages_status# - #emailmessages_titlefield#', + ), + ), + 'TableName' => TABLE_PREFIX.'EmailMessage', 'ListSQLs' => Array ( @@ -75,9 +85,9 @@ 'Default' => Array( 'Icons' => Array('default'=>'icon16_custom.gif'), 'Fields' => Array( - 'Subject' => Array( 'title'=>'la_col_Subject'), - 'Description' => Array( 'title'=>'la_col_Description', 'data_block' => 'label_grid_checkbox_td'), - 'Type' => Array( 'title'=>'la_col_Type'), + 'Subject' => Array( 'title'=>'la_col_Subject', 'filter_block' => 'grid_like_filter'), + 'Description' => Array( 'title'=>'la_col_Description', 'data_block' => 'label_grid_checkbox_td', 'filter_block' => 'grid_like_filter'), + 'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter'), ), ), Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_f2.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/submissions/submission_view.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/submissions/submission_view.tpl (revision 0) +++ branches/RC/core/admin_templates/submissions/submission_view.tpl (revision 11610) @@ -0,0 +1,117 @@ + + + + + + + + + + +
+ +
+ + + + "> + + + + + + + + + + + + + + + + + + + "> + " type="checkbox" id="_cb_" name="_cb_" class="" onclick="document.getElementById('').value = this.checked ? 1:0"> + + + + + + + + name="" id="_" value="">  + + + + + + + + + + +
+ + + + + + + + "> + + + + + + + + + +
+ : +   +
+
+
+ + \ No newline at end of file Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_f3.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/img/icons/icon46_form_submission.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/units/structure/structure_item.php =================================================================== diff -u -N --- branches/RC/core/units/structure/structure_item.php (revision 0) +++ branches/RC/core/units/structure/structure_item.php (revision 11610) @@ -0,0 +1,2 @@ +Conn->GetOne($sql); + + // instanceof is not used, because PHP4 doesn't support it $current_priority = is_a($object, 'kDBList') ? 0 : $object->GetDBField('Priority'); if ($is_new || $current_priority == -($items_count+1)) { Index: branches/RC/core/install.php =================================================================== diff -u -N -r11527 -r11610 --- branches/RC/core/install.php (.../install.php) (revision 11527) +++ branches/RC/core/install.php (.../install.php) (revision 11610) @@ -304,6 +304,8 @@ LIMIT 1'; $this->Conn->Query($sql); + $this->toolkit->rebuildThemes(); // rescan theme to create structure after theme is enabled !!! + $this->currentStep = $this->GetNextStep(); } break; @@ -517,6 +519,16 @@ $this->toolkit->RunSQL('/core/install/install_schema.sql'); $this->toolkit->RunSQL('/core/install/install_data.sql'); + // create category using sql, because Application is not available here + $fields_hash = Array ( + 'l1_Name' => 'Content', 'Filename' => 'Content', 'AutomaticFilename' => 0, + 'l1_Description' => 'Content', 'Status' => 4, + ); + + $this->Conn->doInsert($fields_hash, $this->toolkit->getSystemConfig('Database', 'TablePrefix') . 'Category'); + + $this->toolkit->SetModuleRootCategory('Core', $this->Conn->getInsertID()); + // set module "Core" version after install (based on upgrade scripts) $this->toolkit->SetModuleVersion('Core'); } @@ -741,6 +753,8 @@ WHERE ' . $theme_idfield . ' = ' . $theme_id; $this->Conn->Query($sql); + $this->toolkit->rebuildThemes(); // rescan theme to create structure after theme is enabled !!! + if ($this->Application->isModuleEnabled('In-Portal')) { // 2. compile theme stylesheets (only In-Portal uses them) $css_table = $this->Application->getUnitOption('css', 'TableName'); @@ -1090,6 +1104,11 @@ $ret = Array (); foreach ($this->Application->ModuleInfo as $module_name => $module_info) { + if ($module_name == 'In-Portal') { + // don't show In-Portal, because it shares upgrade scripts with Core module + continue; + } + $upgrades_file = sprintf(UPGRADES_FILE, $module_info['Path'], 'sql'); if (!file_exists($upgrades_file)) { // no upgrade file Index: branches/RC/core/admin_templates/forms/form_field_edit.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/forms/form_field_edit.tpl (revision 0) +++ branches/RC/core/admin_templates/forms/form_field_edit.tpl (revision 11610) @@ -0,0 +1,59 @@ + + + + + + + + + + +
+ +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
+
+ + \ No newline at end of file Index: branches/RC/themes/default2009/platform/template_manager/edit_template.tpl =================================================================== diff -u -N -r11427 -r11610 --- branches/RC/themes/default2009/platform/template_manager/edit_template.tpl (.../edit_template.tpl) (revision 11427) +++ branches/RC/themes/default2009/platform/template_manager/edit_template.tpl (.../edit_template.tpl) (revision 11610) @@ -1,39 +1,6 @@
- -
@@ -55,6 +22,5 @@
\ No newline at end of file Index: branches/RC/core/units/sections/sections_config.php =================================================================== diff -u -N -r11495 -r11610 --- branches/RC/core/units/sections/sections_config.php (.../sections_config.php) (revision 11495) +++ branches/RC/core/units/sections/sections_config.php (.../sections_config.php) (revision 11610) @@ -29,9 +29,29 @@ 'SectionPrefix' => 'c', ), + 'in-portal:browse_site' => Array( + 'parent' => 'in-portal:site', + 'icon' => 'browse-site', + 'label' => 'la_tab_BrowsePages', + 'url' => Array('t' => 'index', 'index_file' => '../index.php', 'admin' => 1, 'pass' => 'm'), + 'permissions' => Array('view'), + 'priority' => 0.1, + 'type' => stTREE, + ), + + 'in-portal:configemail' => Array( + 'parent' => 'in-portal:site', + 'icon' => 'core:e-mail', + 'label' => 'la_tab_E-mails', + 'url' => Array('t' => 'config/email_events', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array('view', 'edit'), + 'priority' => 0.2, + 'type' => stTREE, + ), + 'in-portal:browse' => Array ( 'parent' => 'in-portal:site', - 'icon' => 'proj-cms:structure', // 'catalog' + 'icon' => 'structure', // 'catalog' 'label' => 'la_title_Structure', // 'la_tab_Browse', 'url' => Array ('t' => 'catalog/catalog', 'pass' => 'm'), 'late_load' => Array ('t' => 'categories/xml/tree_categories', 'pass' => 'm', 'm_cat_id' => 0), Index: branches/RC/core/admin_templates/img/icons/icon46_list_form.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/forms/forms_edit.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/forms/forms_edit.tpl (revision 0) +++ branches/RC/core/admin_templates/forms/forms_edit.tpl (revision 11610) @@ -0,0 +1,68 @@ + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + + +
+
+ + \ No newline at end of file Index: branches/RC/core/install/install_toolkit.php =================================================================== diff -u -N -r11504 -r11610 --- branches/RC/core/install/install_toolkit.php (.../install_toolkit.php) (revision 11504) +++ branches/RC/core/install/install_toolkit.php (.../install_toolkit.php) (revision 11610) @@ -99,14 +99,21 @@ */ function CheckPrerequisites($module_path, $versions, $mode) { + static $prerequisit_classes = Array (); + $prerequisites_file = sprintf(PREREQUISITE_FILE, $module_path); if (!file_exists($prerequisites_file) || !$versions) { return Array (); } - include_once $prerequisites_file; + if (!isset($prerequisit_classes[$module_path])) { + // save class name, because 2nd time + // (in after call $prerequisite_class variable will not be present) + include_once $prerequisites_file; + $prerequisit_classes[$module_path] = $prerequisite_class; + } - $prerequisite_object = new $prerequisite_class(); + $prerequisite_object = new $prerequisit_classes[$module_path](); if (method_exists($prerequisite_object, 'setToolkit')) { $prerequisite_object->setToolkit($this); } @@ -554,7 +561,7 @@ $fields['description'] => $description, 'Status' => $status, ); - $category_fields['ParentId'] = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $category_fields['ParentId'] = $this->Application->findModule('Name', 'Core', 'RootCat'); if (isset($category_template)) { $category_fields['Template'] = $category_template; @@ -580,7 +587,10 @@ { $this->Application->removeObject('c-cdata'); + // recreate all fields, because custom fields are added during install script $category->defineFields(); + $category->prepareConfigOptions(); // creates ml fields + $category->SetDBField('cust_' . $prefix .'_ItemTemplate', $item_template); $category->Update(); } Index: branches/RC/core/kernel/nparser/nparser.php =================================================================== diff -u -N -r11402 -r11610 --- branches/RC/core/kernel/nparser/nparser.php (.../nparser.php) (revision 11402) +++ branches/RC/core/kernel/nparser/nparser.php (.../nparser.php) (revision 11610) @@ -492,8 +492,12 @@ function DecorateBlock($block_content, $block_params, $is_template = false) { - static $used_ids = Array (); + static $used_ids = Array (), $base_url = null; + if (!isset($base_url)) { + $base_url = $this->Application->BaseURL(); + } + // $prepend = '[name: ' . $block_params['name'] . '] [params: ' . implode(', ', array_keys($block_params)) . ']'; $decorate = false; @@ -559,11 +563,21 @@ // prepare parameter string $param_string = $block_name . ':' . $function_name; - $block_editor = '
- edit
- %s -
'; + + $block_editor = ' +
+
+
+ +
+
Edit
+
+
+ %s +
+
'; + // 1 - text before, 2 - open tag, 3 - open tag attributes, 4 - content inside tag, 5 - closing tag, 6 - text after closing tag if (preg_match('/^(\s*)<(td|span)(.*?)>(.*)<\/(td|span)>(.*)$/is', $block_content, $regs)) { // div inside span -> put div outside span Index: branches/RC/core/kernel/constants.php =================================================================== diff -u -N -r11405 -r11610 --- branches/RC/core/kernel/constants.php (.../constants.php) (revision 11405) +++ branches/RC/core/kernel/constants.php (.../constants.php) (revision 11610) @@ -56,7 +56,7 @@ safeDefine('DBG_TOOLBAR_BUTTONS', 0); } - + define('smNORMAL', 1); // show section even, if they were marked as smDEBUG or smSUPER_ADMIN before define('smDEBUG', 2); // show section in debug mode only define('smSUPER_ADMIN', 4); // show section in super admin & debug mode @@ -103,4 +103,8 @@ define('MAILING_LIST_PARTIALLY_PROCESSED', 2); define('MAILING_LIST_PROCESSED', 3); define('MAILING_LIST_CANCELLED', 4); + + // theme file statuses (related to structure creation process) + define('SMS_MODE_AUTO', 1); + define('SMS_MODE_FORCE', 2); ?> \ No newline at end of file Index: branches/RC/core/units/form_fields/form_fields_tp.php =================================================================== diff -u -N --- branches/RC/core/units/form_fields/form_fields_tp.php (revision 0) +++ branches/RC/core/units/form_fields/form_fields_tp.php (revision 11610) @@ -0,0 +1,39 @@ +getObject($params); + $source_prefix = $this->Application->Parser->GetParam('SourcePrefix'); + + $source_tp =& $this->Application->recallTagProcessor($source_prefix); + $params['name'] = 'fld_'.$object->GetDBField('FormFieldId'); + if (isset($params['verify'])) $params['name'] .= '_verify'; + return $source_tp->InputName($params); + } + + function SubmissionTag($params) + { + $object =& $this->getObject($params); + + $params['field'] = 'fld_'.$object->GetDBField('FormFieldId'); + $source_prefix = $this->Application->Parser->GetParam('SourcePrefix'); + + return $this->Application->ProcessParsedTag($source_prefix, $params['tag'], $params); + } + + /** + * Allows to modify block params & current list record before PrintList parses record + * + * @param kDBList $object + * @param Array $block_params + */ + function PrepareListElementParams(&$object, &$block_params) + { + $object->SetDBField('DirectOptions', false); + } + +} + +?> \ No newline at end of file Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/units/categories/categories_item.php =================================================================== diff -u -N -r11501 -r11610 --- branches/RC/core/units/categories/categories_item.php (.../categories_item.php) (revision 11501) +++ branches/RC/core/units/categories/categories_item.php (.../categories_item.php) (revision 11610) @@ -78,8 +78,13 @@ function checkFilename() { if ($this->GetDBField('AutomaticFilename')) { + // filename will be generated from scratch, don't check anything here return ; } + elseif ($this->GetDBField('IsSystem')) { + // system page with AutomaticFilename checkbox unchecked -> compatibility with Proj-CMS <= 4.3.9 (when "/" were allowed in Filename) + return ; + } $filename = $this->GetDBField('Filename'); $this->SetDBField('Filename', $this->stripDisallowed($filename)); Index: branches/RC/core/units/structure/structure_tp.php =================================================================== diff -u -N --- branches/RC/core/units/structure/structure_tp.php (revision 0) +++ branches/RC/core/units/structure/structure_tp.php (revision 11610) @@ -0,0 +1,2 @@ +toolkit->getThemes(); Index: branches/RC/core/admin_templates/js/catalog.js =================================================================== diff -u -N -r11546 -r11610 --- branches/RC/core/admin_templates/js/catalog.js (.../catalog.js) (revision 11546) +++ branches/RC/core/admin_templates/js/catalog.js (.../catalog.js) (revision 11610) @@ -224,8 +224,8 @@ return false; } - if (!isset($prefix) || $prefix == '') { - // prefix not given OR empty prefix + if (!isset($prefix) || $prefix == '' || this.queryTabRegistry('prefix', $prefix, 'prefix') === false) { + // prefix not given OR empty prefix OR non-existing tab $prefix = this.ActivePrefix; } Index: branches/RC/themes/default2009/platform/template_manager/inc/template_manager.css =================================================================== diff -u -N -r11427 -r11610 --- branches/RC/themes/default2009/platform/template_manager/inc/template_manager.css (.../template_manager.css) (revision 11427) +++ branches/RC/themes/default2009/platform/template_manager/inc/template_manager.css (.../template_manager.css) (revision 11610) @@ -1,24 +1,3 @@ -span.edit-block { - font-family: Arial, Verdana; - font-size: 9pt; - width: auto; - font-weight: normal; - color: #0000FF; - background-color: #F7C300; - border: 1px solid #CE0031; - padding: 1px 10px 1px 10px; - cursor: pointer; -} - -div.block-container { - border: 1px dashed transparent; - margin: 8px; -} - -div.block-container-over { - border-color: red; -} - div.tm-editor, div.tm-editor td { font-size: 14px; font-family: serif; Index: branches/RC/core/admin_templates/forms/forms_list.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/forms/forms_list.tpl (revision 0) +++ branches/RC/core/admin_templates/forms/forms_list.tpl (revision 11610) @@ -0,0 +1,61 @@ + + + + + + + + + + + +
+ +
+ + + + + + + \ No newline at end of file Index: branches/RC/core/admin_templates/img/itemicons/icon16_form_submission.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/units/forms/forms_tp.php =================================================================== diff -u -N --- branches/RC/core/units/forms/forms_tp.php (revision 0) +++ branches/RC/core/units/forms/forms_tp.php (revision 11610) @@ -0,0 +1,25 @@ +SelectParam($params, 'name,field'); + $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); + + $value = $object->GetDBField($field); + + if ($value) return 'checked'; + if (is_null($value)) return $params['default']; + + return ''; + } + + function MaxUploadSize($params) + { + return round(MAX_UPLOAD_SIZE/1024/1024).' Mb'; + } + +} + +?> \ No newline at end of file Index: branches/RC/core/admin_templates/catalog/catalog_counters.tpl =================================================================== diff -u -N -r11538 -r11610 --- branches/RC/core/admin_templates/catalog/catalog_counters.tpl (.../catalog_counters.tpl) (revision 11538) +++ branches/RC/core/admin_templates/catalog/catalog_counters.tpl (.../catalog_counters.tpl) (revision 11610) @@ -15,7 +15,7 @@
-setInnerHTML('category_path', ''); +setInnerHTML('category_path', ''); Index: branches/RC/core/units/form_submissions/form_submissions_eh.php =================================================================== diff -u -N --- branches/RC/core/units/form_submissions/form_submissions_eh.php (revision 0) +++ branches/RC/core/units/form_submissions/form_submissions_eh.php (revision 11610) @@ -0,0 +1,124 @@ +Application->IsAdmin()) { + if ($event->Name == 'OnCreate') { + // anybody can submit forms on front + return true; + } + } + return parent::CheckPermission($event); + } + + function mapPermissions() + { + parent::mapPermissions(); + $permissions = Array( + 'OnEdit' => Array('self' => 'view', 'subitem' => 'view'), + ); + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + /** + * Returns filter block based on field element type + * + * @param string $element_type + * @return string + */ + function _getFilterBlock($element_type) + { + $mapping = Array ( + 'text' => 'grid_like_filter', + 'select' => 'grid_options_filter', + 'radio' => 'grid_options_filter', + 'checkbox' => 'grid_options_filter', + 'password' => 'grid_like_filter', + 'textarea' => 'grid_like_filter', + 'label' => 'grid_like_filter', + ); + + return $mapping[$element_type]; + } + + function OnBuildFormFields(&$event) + { + $form_id = $this->Application->GetVar('form_id'); + if (!$form_id) return ; + + $conf_fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); + $conf_grids = $this->Application->getUnitOption($event->Prefix, 'Grids'); + + $helper =& $this->Application->recallObject('InpCustomFieldsHelper'); + + $fields = $this->Conn->Query('SELECT * FROM '.TABLE_PREFIX.'FormFields WHERE FormId = '.$form_id.' ORDER BY Priority DESC', 'FormFieldId'); + foreach ($fields as $field_id => $options) { + $conf_fields['fld_'.$field_id] = Array('type'=>'string', 'default'=>$options['DefaultValue']); + if ($options['Required']) { + $conf_fields['fld_'.$field_id]['required'] = 1; + } + if ($options['Validation'] == 1) { + $conf_fields['fld_'.$field_id]['formatter'] = 'kFormatter'; + $conf_fields['fld_'.$field_id]['regexp'] = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i'; + } + if ($options['DisplayInGrid']) { + $title = $options['Prompt']; + if (substr($title, 0,1) == '+') { + $this->Application->Phrases->AddCachedPhrase('form_col_title'.$field_id, substr($title,1)); + $title = 'form_col_title'.$field_id; + } + $conf_grids['Default']['Fields']['fld_'.$field_id] = Array('title'=>$title, 'no_special' => 1, 'nl2br' => 1, 'first_chars' => 200, 'filter_block' => $this->_getFilterBlock($options['ElementType'])); + if ($options['Validation'] == 1) + { + $conf_grids['Default']['Fields']['fld_'.$field_id]['data_block'] = 'grid_email_td'; + } + } + if ($options['ElementType'] == 'radio' || $options['ElementType'] == 'select') { + $conf_fields['fld_'.$field_id]['options'] = $helper->GetValuesHash( $options['ValueList'] ); + $conf_fields['fld_'.$field_id]['formatter'] = 'kOptionsFormatter'; + } + if ($options['ElementType'] == 'password') { + $conf_fields['fld_'.$field_id]['formatter'] = 'kPasswordFormatter'; + $conf_fields['fld_'.$field_id]['encryption_method'] = 'plain'; + $conf_fields['fld_'.$field_id]['verify_field'] = 'fld_'.$field_id.'_verify'; + } + } + + $this->Application->setUnitOption($event->Prefix, 'Fields', $conf_fields); + $this->Application->setUnitOption($event->Prefix, 'Grids', $conf_grids); + } + + function SetCustomQuery(&$event) + { + $object =& $event->getObject(); + $form_id = $this->Application->GetVar('form_id'); + $object->addFilter('form_filter','%1$s.FormId = '.$form_id); + } + + function GetPassedId(&$event) + { + if (!$this->Application->IsAdmin()) { + return 0; + } + return parent::getPassedID($event); + } + + function OnCreate(&$event) + { + parent::OnCreate($event); + if ($event->status == erSUCCESS) { + + $this->Application->EmailEventAdmin('FORM.SUBMITTED'); + //$this->Application->EmailEventUser('FORM.SUBMITTED', null, 'to_email' = ) + + $event->redirect_params['opener'] = 's'; + $event->redirect_params['m_cat_id'] = 0; + $event->redirect = $this->Application->GetVar('success_template'); + } + } + +} + +?> \ No newline at end of file Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_submission.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/img/icons/icon24_form_submission.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/install/english.lang =================================================================== diff -u -N -r11599 -r11610 --- branches/RC/core/install/english.lang (.../english.lang) (revision 11599) +++ branches/RC/core/install/english.lang (.../english.lang) (revision 11610) @@ -45,6 +45,7 @@ QnkgdGhlbWU= Q2FuY2Vs Q2F0ZWdvcnk= + Q2F0ZWdvcnkgSW5kZXg= RGF0ZQ== TnVtYmVyIG9mIGRheXMgZm9yIGEgY2F0LiB0byBiZSBORVc= Q2F0ZWdvcnkgRGVzY3JpcHRpb24= @@ -59,6 +60,7 @@ QW5kIHRoZW4gYnk= T3JkZXIgY2F0ZWdvcmllcyBieQ== Q2xvc2U= + Rm9ybSBTdWJtaXR0ZWQ= QWx0IFZhbHVl Q2Vuc29yZWQgV29yZA== Q3JlYXRlZCBPbg== @@ -152,11 +154,15 @@ TWVzc2FnZSBIdG1s TWVzc2FnZSBUZXh0 TWlzc3BlbGxlZCBXb3Jk + TGFzdCBVcGRhdGVk TW9kdWxl TmFtZQ== TmV4dCBSdW4gT24= T2NjdXJlZCBPbg== UGFjayBOYW1l + SUQ= + UGFnZSBUaXRsZQ== + UGF0aA== QWRk RGVsZXRl RWRpdA== @@ -187,10 +193,13 @@ U2Vzc2lvbiBTdGFydA== TmFtZQ== U3RhdHVz + U3RvcCBXb3Jk U3ViamVjdA== U3VnZ2VzdGVkIENvcnJlY3Rpb24= + UGFnZSBUeXBl SXRlbQ== SXRlbSBUeXBl + VGVtcGxhdGUgVHlwZQ== VGhlc2F1cnVzIFRlcm0= VGhlc2F1cnVzIFR5cGU= VGl0bGU= @@ -201,6 +210,7 @@ VXNlcm5hbWU= RmllbGQgVmFsdWU= VmVyc2lvbg== + VmlzaWJsZQ== VmlzaXQgRGF0ZQ== Q29tbWE= QXNjZW5kaW5n @@ -213,6 +223,7 @@ TGlzdCBhdXRvbWF0aWMgcmVmcmVzaCBpbnRlcnZhbHMgKGluIG1pbnV0ZXMp QmFja3VwIFBhdGg= U3dpdGNoIENhdGFsb2cgdGFicyBiYXNlZCBvbiBNb2R1bGU= + Q2hlY2sgU3RvcCBXb3Jkcw== Q29tcGFueQ== RGVmYXVsdCBDU1YgRXhwb3J0IERlbGltaXRlcg== RGVmYXVsdCBDU1YgRXhwb3J0IEVuY2xvc3VyZSBDaGFyYWN0ZXI= @@ -268,6 +279,7 @@ WWFob28gQXBwbGljYXRpb25JZA== QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBzZWxlY3RlZCBFeHBvcnQgUHJlc2V0Pw== VGhlIGNhdGVnb3J5IHRyZWUgbXVzdCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGxhdGVzdCBjaGFuZ2Vz + Q29udGFpbmVy Q29udGludWU= QXJ1YmE= QWZnaGFuaXN0YW4= @@ -579,6 +591,7 @@ RG91YmxlLXF1b3Rlcw== RG93bmxvYWQgRXhwb3J0IEZpbGU= RG93bmxvYWQgTGFuZ3VhZ2UgRXhwb3J0 + Q29udGVudCBFZGl0b3I= WW91IGhhdmUgbm90IHNhdmVkIGNoYW5nZXMgdG8gdGhlIGl0ZW0geW91IGFyZSBlZGl0aW5nITxiciAvPkNsaWNrIE9LIHRvIGxvb3NlIGNoYW5nZXMgYW5kIGdvIHRvIHRoZSBzZWxlY3RlZCBzZWN0aW9uPGJyIC8+b3IgQ2FuY2VsIHRvIHN0YXkgaW4gdGhlIGN1cnJlbnQgc2VjdGlvbi4= RGVmYXVsdCB0ZXh0 RmlsZSBpcyBlbXB0eQ== @@ -625,6 +638,7 @@ TW9kaWZ5IENhdGVnb3J5 RGVsZXRlIENhdGVnb3J5 Q29tbW9uIEZvb3RlciBUZW1wbGF0ZQ== + VGhpcyBlLW1haWwgaXMgc2VudCB0byBhIHVzZXIgYWZ0ZXIgZmlsbGluZyBpbiB0aGUgQ29udGFjdCBVcyBmb3Jt RW1haWwgZXZlbnRzIGltcG9ydCBwcm9ncmVzcw== QWRkIExpbms= QWRkIFBlbmRpbmcgTGluaw== @@ -671,6 +685,7 @@ VW5rbm93biBlcnJvciBjcmVhdGluZyBmb2xkZXI= RmllbGQ= RGlzcGxheSBPcmRlcg== + UHJpb3JpdHk= RnJvbQ== VG8= QWN0aW9u @@ -682,6 +697,7 @@ QWx0IFZhbHVl QXNzaWduZWQgQ291cG9u QXR0YWNobWVudA== + QXV0byBDcmVhdGUgRmlsZSBOYW1l QXV0b21hdGljIEZpbGVuYW1l QXZhaWxhYmxlIENvbHVtbnM= QmFja2dyb3VuZA== @@ -708,6 +724,7 @@ Q2l0eQ== RGVzY3JpcHRpb24= Q29tcGFueQ== + Q29udGVudA== Q29weSBMYWJlbHMgZnJvbSB0aGlzIExhbmd1YWdl Q291bnRyeQ== Q3JlYXRlZCBCeQ== @@ -720,6 +737,7 @@ RGVjaW1hbCBQb2ludA== RGVzY3JpcHRpb24= RGlzcGxheQ== + RGlzcGxheSBpbiBHcmlk QXMgUGxhaW4gVGV4dA== RHVyYXRpb24= RWRpdG9ycyBQaWNr @@ -758,6 +776,9 @@ Rm9udCBTaXpl Rm9udCBTdHlsZQ== Rm9udCBXZWlnaHQ= + T25saW5lIEZvcm0= + T25saW5lIEZvcm0gU3VibWl0dGVkIFRlbXBsYXRl + RnJpZW5kbHkgVVJM QWxsb3cgUmVnaXN0cmF0aW9uIG9uIEZyb250LWVuZA== SUQ= R3JvdXAgTmFtZQ== @@ -771,14 +792,18 @@ SW1wb3J0IENhdGVnb3J5 SW1wb3J0IEZpbGVuYW1l SW5jbHVkZSBmaWVsZCB0aXRsZXM= + SW5kZXggVG9vbHMgQ29kZQ== SW5wdXQgRGF0ZSBGb3JtYXQ= SW5wdXQgVGltZSBGb3JtYXQ= SW5zdGFsbCBNb2R1bGVz SW5zdGFsbCBQaHJhc2UgVHlwZXM= VXNlIGN1cnJlbnQgY2F0ZWdvcnkgYXMgcm9vdCBmb3IgdGhlIGV4cG9ydA== VXNlIGFzIEZyZWUgUHJvbW8gU2hpcHBpbmc= + SXMgSW5kZXggUGFnZQ== UHJpbWFyeQ== + UmVxdWlyZWQ= SXMgU3lzdGVt + U3lzdGVtIFRlbXBsYXRl SXRlbSBGaWVsZA== SXRlbSBJRA== SXRlbSBUZW1wbGF0ZQ== @@ -806,6 +831,7 @@ TWFzdGVyIFByZWZpeA== TWF4aW11bSBudW1iZXIgb2YgQ2F0ZWdvcmllcyBvbiBJdGVtIGNhbiBiZSBhZGRlZCB0bw== Q3VzdG9tIE1lbnUgSWNvbiAoaWUuIGltZy9tZW51X3Byb2R1Y3RzLmdpZik= + TWVudSBTdGF0dXM= TWVzc2FnZSBCb2R5 TWVzc2FnZSBUZXh0 TWVzc2FnZSBUeXBl @@ -827,6 +853,12 @@ UGFkZGluZyBSaWdodA== UGFkZGluZ3M= UGFkZGluZyBUb3A= + VGl0bGUgKE9uIFBhZ2Up + VGl0bGUgKEhUTUwgJmx0O3RpdGxlJmd0Oyk= + UGFnZSBJRA== + VGl0bGUgKE1lbnUgSXRlbSk= + UGFnZSBUaXRsZQ== + UGFyZW50IFNlY3Rpb24= UGFzc3dvcmQ= UGVyY2VudHMgQ29tcGxldGVk UGhvbmU= @@ -849,6 +881,7 @@ VHlwZQ== UmVtb3RlIFVSTA== UmVwbGFjZSBEdXBsaWNhdGVz + UmVxdWlyZWQ= UmV2aWV3IElE UmV2aWV3IFRleHQ= UnVsZSBUeXBl @@ -867,11 +900,15 @@ U29ydCBWYWx1ZXM= U3RhdGU= U3RhdHVz + U3RvcCBXb3Jk U3R5bGVzaGVldCBJRA== U3ViamVjdA== + U3VibWl0dGVkIE9u U3VnZ2VzdGVkIENvcnJlY3Rpb24= UG9pbnRzIHRvIENhdGVnb3J5 SXRlbQ== + VGVtcGxhdGUgKGRlc2lnbik= + VGVtcGxhdGUgVHlwZQ== VGV4dCBBbGlnbg== VGV4dCBEZWNvcmF0aW9u VGV4dCBWZXJzaW9u @@ -882,6 +919,7 @@ VGl0bGU= VG8= VG9w + VHJhY2tpbmcgQ29kZQ== VmFsdWU= VHlwZQ== TWVhc3VyZXMgU3lzdGVt @@ -908,6 +946,7 @@ SGVhZCBmcmFtZSBjb2xvcnM8YnIvPg0KTWFpbiAvIE1haW4gQmFja2dyb3VuZCwgQmFyIC8gQmFyIEJhY2tncm91bmQg SGVhZCBGcmFtZQ== VGhpcyBoZWxwIHNlY3Rpb24gZG9lcyBub3QgeWV0IGV4aXN0LCBpdCdzIGNvbWluZyBzb29uIQ== + SGlkZQ== aHRtbA== SUQgRmllbGQ= SW1wb3J0aW5nIEVtYWlsIEV2ZW50cyAuLi4= @@ -1151,13 +1190,17 @@ RGF0YWJhc2UgVXNlciBOYW1l RGVjaW1hbCBQb2ludA== RGVmYXVsdA== + RGVmYXVsdCBEZXNpZ24gVGVtcGxhdGU= + SW5kZXh0b29scyBEZWZhdWx0IENvZGU= VXNlciBJRCBmb3IgRGVmYXVsdCBQZXJzaXN0ZW50IFNldHRpbmdz + RGVmYXVsdCBWYWx1ZQ== RGVsZXRl RGVzY3JpcHRpb24= RGlyZWN0b3J5IE5hbWU= RGlzYWJsZWQgQXJ0aWNsZXM= RGlzYWJsZWQgQ2F0ZWdvcmllcw== RGlzYWJsZWQgTGlua3M= + RGlzcGxheSBpbiBHcmlk RGlzcGxheSBPcmRlcg== RG93bmxvYWQgTGFuZ3VhZ2UgRXhwb3J0Og== QWxsb3cgRHVwbGljYXRlIFJhdGluZyBWb3Rlcw== @@ -1168,6 +1211,7 @@ RWRpdG9yJ3MgUGljayBMaW5rcw== RWRpdG9yIFBpY2sgVG9waWNz RWRpdCBRdWVyeQ== + VHlwZQ== RW1haWw= RW1haWwgQm9keQ== RW1haWwgZGVsaXZlcnkgYWJvcnRlZA== @@ -1339,6 +1383,7 @@ U2VhcmNoIFJlbGV2ZW5jZSBTZXR0aW5ncw== VXNlIHJlbW90ZSBpbWFnZSAoVVJMKQ== UmVwbGFjZW1lbnQgV29yZA== + UmVxdWlyZWQ= SW5jcmVhc2UgaW1wb3J0YW5jZSBpZiBmaWVsZCBjb250YWlucyBhIHJlcXVpcmVkIGtleXdvcmQgYnk= UmVzdG9yZSBoYXMgZmFpbGVkIGFuIGVycm9yIG9jY3VyZWQ6 Q2hvb3NlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGJhY2t1cCBkYXRlcyB0byByZXN0b3JlIG9yIGRlbGV0ZQ== @@ -1383,6 +1428,7 @@ U3R5bGVzaGVldA== U3ViamVjdA== U3ViIFNlYXJjaA== + U3VibWl0dGVkIE9u RW5hYmxlIFRhZyBDYWNoaW5n VG90YWwgU2l6ZSBvZiBTeXN0ZW0gRmlsZXM= U3lzdGVtIHByZW1pc3Npb25z @@ -1421,6 +1467,7 @@ UGVuZGluZyBVc2Vycw== TnVtYmVyIG9mIFVuaXF1ZSBDb3VudHJpZXMgb2YgVXNlcnM= TnVtYmVyIG9mIFVuaXF1ZSBTdGF0ZXMgb2YgVXNlcnM= + VmFsaWRhdGlvbg== VmFsdWU= TGlzdCBvZiBWYWx1ZXM= Vmlld3M= @@ -1467,17 +1514,20 @@ Q2xlYXIgU2VhcmNo TmV3IFNlYXJjaA== TUVUQSBJbmZvcm1hdGlvbg== + QmxvY2sgUHJvcGVydGllcw== Q2F0ZWdvcnk= Q29uZmlnIEZpbGVz Q291bnRlcnM= Q3VzdG9tIEZpZWxkcw== + U3VibWlzc2lvbiBEYXRh RnVsbCBTaXplIEltYWdl R2VuZXJhbA== SW1hZ2U= SW1hZ2UgU2V0dGluZ3M= VXNlciBJdGVtcw== TWVzc2FnZQ== U2VjdGlvbiBPdmVydmlldw== + UGFnZSBQcm9wZXJ0aWVz UHJvcGVydGllcw== UXVpY2sgTGlua3M= UmVsYXRpb24= @@ -1493,6 +1543,7 @@ T25lIGZpZWxkIGZvciBlYWNoIGNhdGVnb3J5IGxldmVs UmVzZXQgQ29uZmlncyBDYWNoZQ== UmUtYnVpbGQgVGhlbWVzIEZpbGVz + UmVzZXQgU01TIE1lbnUgQ2FjaGU= UmVzZXQgbW9kX3Jld3JpdGUgQ2FjaGU= UmVzZXQgU2VjdGlvbnMgQ2FjaGU= Q2xvbmU= @@ -1510,6 +1561,7 @@ UHJpbWFyeQ== VXA= Vmlldw== + U2hvdw== U2hvd2luZyBMb2dz U2hvd2luZyBTdGF0aXN0aWNz U2hvdyBFbWFpbCBMb2c= @@ -1587,6 +1639,7 @@ RGVmaW5pdGlvbg== UHJldmlldw== U3VuZGF5 + U3lzdGVt VGFi QWRtaW5pc3RyYXRpb24gUGFuZWwgVUk= QWR2YW5jZWQgVmlldw== @@ -1595,11 +1648,14 @@ QmFzZSBTdHlsZXM= QmxvY2sgU3R5bGVz Q2F0YWxvZw== + QnJvd3NlIFNpdGU= Q2F0ZWdvcmllcw== U2VsZWN0IEl0ZW0= Q2F0ZWdvcnkgU2VsZWN0 Q2Vuc29yc2hpcA== Q2hhbmdlIExvZw== + Rm9ybXM= + U3VibWlzc2lvbnM= Q29tbXVuaXR5 R2VuZXJhbCBTZXR0aW5ncw== Q2Vuc29yc2hpcA== @@ -1624,7 +1680,9 @@ RW1haWwgUXVldWU= RXhwb3J0IERhdGE= RXhwb3J0IExhbmd1YWdlIFBhY2s= + RmllbGRz RmlsZXM= + Rm9ybXMgQ29uZmlndXJhdGlvbg== R2VuZXJhbA== R2VuZXJhbCBTZXR0aW5ncw== R3JvdXA= @@ -1926,13 +1984,18 @@ QWRkaW5nIE1haWxpbmcgTGlzdA== QWRkaW5nIFNraW4= QWRkaW5nIFNwZWxsaW5nIERpY3Rpb25hcnk= + QWRkaW5nIFN0b3AgV29yZA== QWRkaW5nIFRoZXNhdXJ1cw== QWRkaW5nIEJhc2UgU3R5bGU= QWRkaW5nIEJsb2NrIFN0eWxl QWRkaW5nIENhdGVnb3J5 + QWRkaW5nIENNUyBCbG9jaw== + QWRkaW5nIEZvcm0= + QWRkaW5nIEZvcm0gRmllbGQ= QWRkaW5nIEdyb3Vw QWRkaW5nIEltYWdl QWRkaW5nIExhbmd1YWdl + QWRkaW5nIFBhZ2U= QWRkaW5nIFBocmFzZQ== QWRkaW5nIEtleXdvcmQ= QWRkaW5nIFJlbGF0aW9uc2hpcA== @@ -1969,17 +2032,22 @@ RWRpdGluZyBNZW1iZXJzaGlw RWRpdGluZyBTa2lu RWRpdGluZyBTcGVsbGluZyBEaWN0aW9uYXJ5 + RWRpdGluZyBTdG9wIFdvcmQ= RWRpdGluZyBTdHlsZQ== RWRpdGluZyBUaGVzYXVydXM= RWRpdGluZyBUcmFuc2xhdGlvbg== RWRpdGluZyBCYXNlIFN0eWxl RWRpdGluZyBCbG9jayBTdHlsZQ== RWRpdGluZyBDYXRlZ29yeQ== + RWRpdGluZyBDTVMgQmxvY2s= RWRpdGluZyBDdXN0b20gRmllbGQ= RWRpdGluZyBFLW1haWw= + RWRpdGluZyBGb3Jt + RWRpdGluZyBGb3JtIEZpZWxk RWRpdGluZyBHcm91cA== RWRpdGluZyBJbWFnZQ== RWRpdGluZyBMYW5ndWFnZQ== + RWRpdGluZyBQYWdl RWRpdGluZyBQaHJhc2U= RWRpdGluZyBLZXl3b3Jk S2V5d29yZA== @@ -1995,12 +2063,16 @@ U2l0ZSBTdHJ1Y3R1cmU= RWRpdCBVc2Vy RS1tYWlsIEV2ZW50cw== + RS1tYWlscw== RS1tYWlsIFNldHRpbmdz RXhwb3J0IERhdGE= RXhwb3J0IExhbmd1YWdlIFBhY2s= RXhwb3J0IExhbmd1YWdlIFBhY2sgLSBSZXN1bHRz RXhwb3J0IExhbmd1YWdlIFBhY2sgLSBTdGVwMQ== + RmllbGRz RmlsZXM= + Rm9ybXM= + Rm9ybSBTdWJtaXNzaW9ucw== R2VuZXJhbA== R2VuZXJhbCBDb25maWd1cmF0aW9u R3JvdXBz @@ -2032,9 +2104,12 @@ TmV3IEJhc2UgU3R5bGU= TmV3IEJsb2NrIFN0eWxl TmV3IENhdGVnb3J5 + TmV3IEZvcm0= + TmV3IEZvcm0gRmllbGQ= TmV3IEdyb3Vw TmV3IEltYWdl TmV3IExhbmd1YWdl + TmV3IFBhZ2U= TmV3IFBocmFzZQ== TmV3IFJlbGF0aW9uc2hpcA== TmV3IFJldmlldw== @@ -2071,6 +2146,8 @@ TW9kdWxlcyAmIFNldHRpbmdz U3RydWN0dXJlICYgRGF0YQ== U3BlbGxpbmcgRGljdGlvbmFyeQ== + U3RvcCBXb3Jkcw== + U3RydWN0dXJl U3R5bGVzaGVldHM= U3VtbWFyeQ== U3lzdGVtIFRvb2xz @@ -2084,6 +2161,7 @@ VXNlcnM= U2VsZWN0IHVzZXI= VXNlcnMgTWFuYWdlbWVudA== + Vmlld2luZyBmb3JtIHN1Ym1pc3Npb24= Vmlld2luZyBNYWlsaW5nIExpc3Q= VmlzaXRz V2Vic2l0ZSBTZXR0aW5ncw== @@ -2137,6 +2215,7 @@ TmV3IEdyb3Vw TmV3IGxhYmVs TmV3IExhbmd1YWdl + TmV3IFBhZ2U= TmV3IFJldmlldw== TmV3IFNlYXJjaCBGaWVsZA== TmV3IFN0eWxlc2hlZXQ= @@ -2149,6 +2228,8 @@ TmV3IEN1c3RvbSBGaWVsZA== TmV3IERpc2NvdW50 TmV3IEVtb3Rpb24gSWNvbg== + TmV3IEZvcm0= + TmV3IEZvcm0gRmllbGQ= TmV3IEltYWdl TmV3IEltYWdlcw== QWRkIEtleXdvcmQ= @@ -2250,6 +2331,7 @@ VXNlIFRvb2xiYXIgTGFiZWxz VXNlIEVtYWlscyBBcyBMb2dpbg== VVMvVUs= + RS1tYWlsIGFkZHJlc3M= UGxlYXNlIGNoZWNrIHRoZSByZXF1aXJlZCBmaWVsZHMgYW5kIHRyeSBhZ2FpbiE= VmFsdWU= RW50ZXIgbGlzdCBvZiB2YWx1ZXMgYW5kIHRoZWlyIGRlc2NyaXB0aW9ucywgbGlrZSAxPU9uZSwgMj1Ud28= @@ -2548,6 +2630,7 @@ TnVtYmVyIG9mIFJhdGluZyBWb3Rlcw== Q2F0ZWdvcnkgSWQ= Q2l0eQ== + UGFnZSBDb250ZW50cw== Q291bnRyeQ== Q3JlYXRlZCBCeSBVc2VyIElE RGF0ZSBDcmVhdGVk @@ -2576,6 +2659,7 @@ Tm90aWZ5IE93bmVyIG9mIENoYW5nZXM= T3JpZ2luYWwgSXRlbSBJRA== T3duZXIgVXNlciBJRA== + VGl0bGUgKE1lbnUgSXRlbSk= UGFyZW50IElk UGFyZW50IENhdGVnb3J5IFBhdGg= UGFzc3dvcmQ= Index: branches/RC/core/install/install_data.sql =================================================================== diff -u -N -r11593 -r11610 --- branches/RC/core/install/install_data.sql (.../install_data.sql) (revision 11593) +++ branches/RC/core/install/install_data.sql (.../install_data.sql) (revision 11610) @@ -761,6 +761,38 @@ INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:server_info.view', 11, 1, 1, 0); INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:help.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:browse_site.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:configemail.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:configemail.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.add', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:submissions.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.add', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:email_queue.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:email_queue.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:session_logs.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:session_logs.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:change_logs.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:change_logs.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:change_logs.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.add', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.add', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.delete', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.view', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.add', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.edit', 11, 1, 1, 0); +INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.delete', 11, 1, 1, 0); + INSERT INTO Skins VALUES (DEFAULT, 'Default', '/* General elements */\r\n\r\nhtml {\r\n height: 100%;\r\n}\r\n\r\nbody {\r\n font-family: verdana,arial,helvetica,sans-serif;\r\n font-size: 9pt;\r\n color: #000000;\r\n overflow-x: auto; overflow-y: auto;\r\n margin: 0px 0px 0px 0px;\r\n text-decoration: none;\r\n}\r\n\r\na {\r\n color: #006699;\r\n text-decoration: none;\r\n}\r\n\r\na:hover {\r\n color: #009ff0;\r\n text-decoration: none;\r\n}\r\n\r\nform {\r\n display: inline;\r\n}\r\n\r\nimg { border: 0px; }\r\n\r\nbody.height-100 {\r\n height: 100%;\r\n}\r\n\r\nbody.regular-body {\r\n margin: 0px 10px 5px 10px;\r\n color: #000000;\r\n background-color: @@SectionBgColor@@;\r\n}\r\n\r\nbody.edit-popup {\r\n margin: 0px 0px 0px 0px;\r\n}\r\n\r\ntable.collapsed {\r\n border-collapse: collapse;\r\n}\r\n\r\n.bordered, table.bordered, .bordered-no-bottom {\r\n border: 1px solid #000000;\r\n border-collapse: collapse;\r\n}\r\n\r\n.bordered-no-bottom {\r\n border-bottom: none;\r\n}\r\n\r\n.login-table td {\r\n padding: 1px;\r\n}\r\n\r\n.disabled {\r\n background-color: #ebebeb;\r\n}\r\n\r\n/* Head frame */\r\n.head-table tr td {\r\n background-color: @@HeadBgColor@@;\r\n color: @@HeadColor@@\r\n}\r\n\r\ntd.kx-block-header, .head-table tr td.kx-block-header{\r\n color: @@HeadBarColor@@;\r\n background-color: @@HeadBarBgColor@@;\r\n padding-left: 7px;\r\n padding-right: 7px;\r\n}\r\n\r\na.kx-header-link {\r\n text-decoration: underline;\r\n color: #FFFFFF;\r\n}\r\n\r\na.kx-header-link:hover {\r\n color: #FFCB05;\r\n text-decoration: none;\r\n}\r\n\r\n.kx-secondary-foreground {\r\n color: @@HeadBarColor@@;\r\n background-color: @@HeadBarBgColor@@;\r\n}\r\n\r\n.kx-login-button {\r\n background-color: #2D79D6;\r\n color: #FFFFFF;\r\n}\r\n\r\n/* General form button (yellow) */\r\n.button {\r\n font-size: 12px;\r\n font-weight: normal;\r\n color: #000000;\r\n background: url(@@base_url@@/proj-base/admin_templates/img/button_back.gif) #f9eeae repeat-x;\r\n text-decoration: none;\r\n}\r\n\r\n/* Disabled (grayed-out) form button */\r\n.button-disabled {\r\n font-size: 12px;\r\n font-weight: normal;\r\n color: #676767;\r\n background: url(@@base_url@@/proj-base/admin_templates/img/button_back_disabled.gif) #f9eeae repeat-x;\r\n text-decoration: none;\r\n}\r\n\r\n/* Tabs bar */\r\n\r\n.tab, .tab-active {\r\n background-color: #F0F1EB;\r\n padding: 3px 7px 2px 7px;\r\n border-top: 1px solid black;\r\n border-left: 1px solid black;\r\n border-right: 1px solid black;\r\n}\r\n\r\n.tab-active {\r\n background-color: #2D79D6;\r\n border-bottom: 1px solid #2D79D6;\r\n}\r\n\r\n.tab a {\r\n color: #00659C;\r\n font-weight: bold;\r\n}\r\n\r\n.tab-active a {\r\n color: #fff;\r\n font-weight: bold;\r\n}\r\n\r\n\r\n/* Toolbar */\r\n\r\n.toolbar {\r\n font-size: 8pt;\r\n border: 1px solid #000000;\r\n border-width: 0px 1px 1px 1px;\r\n background-color: @@ToolbarBgColor@@;\r\n border-collapse: collapse;\r\n}\r\n\r\n.toolbar td {\r\n height: 100%;\r\n}\r\n\r\n.toolbar-button, .toolbar-button-disabled, .toolbar-button-over {\r\n float: left;\r\n text-align: center;\r\n font-size: 8pt;\r\n padding: 5px 5px 5px 5px;\r\n vertical-align: middle;\r\n color: #006F99;\r\n}\r\n\r\n.toolbar-button-over {\r\n color: #000;\r\n}\r\n\r\n.toolbar-button-disabled {\r\n color: #444;\r\n}\r\n\r\n/* Scrollable Grids */\r\n\r\n\r\n.layout-only-table td {\r\n border: none !important;\r\n}\r\n\r\n/* Main Grid class */\r\n.grid-scrollable {\r\n padding: 0px;\r\n border: 1px solid black !important;\r\n border-top: none !important;\r\n}\r\n\r\n/* Div generated by js, which contains all the scrollable grid elements, affects the style of scrollable area without data (if there are too few rows) */\r\n.grid-container {\r\n background-color: #fff;\r\n}\r\n\r\n.grid-container table {\r\n border-collapse: collapse;\r\n}\r\n\r\n/* Inner div generated in each data-cell */\r\n.grid-cell-div {\r\n overflow: hidden;\r\n height: auto;\r\n}\r\n\r\n/* Main row definition */\r\n.grid-data-row td, .grid-data-row-selected td, .grid-data-row-even-selected td, .grid-data-row-mouseover td, .table-color1, .table-color2 {\r\n font-weight: normal;\r\n color: @@OddColor@@;\r\n background-color: @@OddBgColor@@;\r\n padding: 3px 5px 3px 5px;\r\n overflow: hidden;\r\n border-right: 1px solid #c9c9c9;\r\n}\r\n.grid-data-row-even td, .table-color2 {\r\n background-color: @@EvenBgColor@@;\r\n color: @@EvenColor@@;\r\n}\r\n.grid-data-row td a, .grid-data-row-selected td a, .grid-data-row-mouseover td a {\r\n text-decoration: underline;\r\n}\r\n\r\n/* mouse-over rows */\r\n.grid-data-row-mouseover td, table tr.grid-data-row[_row_highlighted] td {\r\n background: #FFFDF4;\r\n}\r\n\r\n/* Selected row, applies to both checkbox and data areas */\r\n.grid-data-row-selected td, table tr.grid-data-row[_row_selected] td {\r\n background: #FEF2D6;\r\n}\r\n\r\n.grid-data-row-even-selected td, .grid-data-row-even[_row_selected] td {\r\n background: #FFF7E0;\r\n}\r\n\r\n/* General header cell definition */\r\n.grid-header-row td {\r\n font-weight: bold;\r\n background-color: @@ColumnTitlesBgColor@@;\r\n text-decoration: none;\r\n padding: 3px 5px 3px 5px;\r\n color: @@ColumnTitlesColor@@;\r\n border-right: none;\r\n text-align: left;\r\n vertical-align: middle !important;\r\n white-space: nowrap;\r\n border-right: 1px solid #777;\r\n}\r\n\r\n/* Filters row */\r\ntr.grid-header-row-0 td {\r\n background-color: @@FiltersBgColor@@;\r\n border-bottom: 1px solid black;\r\n}\r\n\r\n/* Grid Filters */\r\ntable.range-filter {\r\n width: 100%;\r\n}\r\n\r\n.range-filter td {\r\n padding: 0px 0px 2px 2px !important;\r\n border: none !important;\r\n font-size: 8pt !important;\r\n font-weight: normal !important;\r\n text-align: left;\r\n color: #000000 !important;\r\n}\r\n\r\ninput.filter, select.filter, input.filter-active, select.filter-active {\r\n margin-bottom: 0px;\r\n border: 1px solid #aaa;\r\n}\r\n\r\ninput.filter-active {\r\n background-color: #FFFF00;\r\n}\r\n\r\nselect.filter-active {\r\n background-color: #FFFF00;\r\n}\r\n\r\n/* Column titles row */\r\ntr.grid-header-row-1 td {\r\n height: 25px;\r\n font-weight: bold;\r\n background-color: @@ColumnTitlesBgColor@@;\r\n color: @@ColumnTitlesColor@@;\r\n}\r\n\r\ntr.grid-header-row-1 td a {\r\n color: @@ColumnTitlesColor@@;\r\n}\r\n\r\ntr.grid-header-row-1 td a:hover {\r\n color: #FFCC00;\r\n}\r\n\r\n\r\n.grid-footer-row td {\r\n background-color: #D7D7D7;\r\n font-weight: bold;\r\n border-right: none;\r\n padding: 3px 5px 3px 5px;\r\n}\r\n\r\ntd.grid-header-last-cell, td.grid-data-last-cell, td.grid-footer-last-cell {\r\n border-right: none !important;\r\n}\r\n\r\ntd.grid-data-col-0, td.grid-data-col-0 div {\r\n text-align: center;\r\n vertical-align: middle !important;\r\n}\r\n\r\ntr.grid-header-row-0 td.grid-header-col-0 {\r\n text-align: center;\r\n vertical-align: middle !important;\r\n}\r\n\r\ntr.grid-header-row-0 td.grid-header-col-0 div {\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.grid-status-bar {\r\n border: 1px solid black;\r\n border-top: none;\r\n padding: 0px;\r\n width: 100%;\r\n border-collapse: collapse;\r\n height: 30px;\r\n}\r\n\r\n.grid-status-bar td {\r\n background-color: @@TitleBarBgColor@@;\r\n color: @@TitleBarColor@@;\r\n font-size: 11pt;\r\n font-weight: normal;\r\n padding: 2px 8px 2px 8px;\r\n}\r\n\r\n/* /Scrollable Grids */\r\n\r\n\r\n/* Forms */\r\ntable.edit-form {\r\n border: none;\r\n border-top-width: 0px;\r\n border-collapse: collapse;\r\n width: 100%;\r\n}\r\n\r\n.edit-form-odd, .edit-form-even {\r\n padding: 0px;\r\n}\r\n\r\n.subsectiontitle {\r\n font-size: 10pt;\r\n font-weight: bold;\r\n background-color: #4A92CE;\r\n color: #fff;\r\n height: 25px;\r\n border-top: 1px solid black;\r\n vertical-align: middle;\r\n}\r\n\r\n.subsectiontitle td {\r\n vertical-align: middle;\r\n padding: 3px 5px 3px 5px;\r\n}\r\n\r\n.label-cell {\r\n background: #DEE7F6 url(@@base_url@@/proj-base/admin_templates/img/bgr_input_name_line.gif) no-repeat right bottom;\r\n font: 12px arial, sans-serif;\r\n padding: 4px 20px;\r\n width: 150px;\r\n}\r\n\r\n.control-mid {\r\n width: 13px;\r\n border-left: 1px solid #7A95C2;\r\n background: #fff url(@@base_url@@/proj-base/admin_templates/img/bgr_mid.gif) repeat-x left bottom;\r\n}\r\n\r\n.control-cell {\r\n font: 11px arial, sans-serif;\r\n padding: 4px 10px 5px 5px;\r\n background: #fff url(@@base_url@@/proj-base/admin_templates/img/bgr_input_line.gif) no-repeat left bottom;\r\n width: auto;\r\n vertical-align: middle;\r\n}\r\n\r\n.label-cell-filler {\r\n background: #DEE7F6 none;\r\n}\r\n.control-mid-filler {\r\n background: #fff none;\r\n border-left: 1px solid #7A95C2;\r\n}\r\n.control-cell-filler {\r\n background: #fff none;\r\n}\r\n\r\n.error {\r\n color: red;\r\n}\r\n.error-cell {\r\n color: red;\r\n}\r\n\r\n.field-required {\r\n color: red;\r\n}\r\n\r\n.form-warning {\r\n color: red;\r\n}\r\n\r\n.req-note {\r\n font-style: italic;\r\n color: #333;\r\n}\r\n\r\n#scroll_container table.tableborder {\r\n border-collapse: separate\r\n}\r\n\r\n\r\n/* Uploader */\r\n\r\n.uploader-main {\r\n position: absolute;\r\n display: none;\r\n z-index: 10;\r\n border: 1px solid #777;\r\n padding: 10px;\r\n width: 350px;\r\n height: 120px;\r\n overflow: hidden;\r\n background-color: #fff;\r\n}\r\n\r\n.uploader-percent {\r\n width: 100%;\r\n padding-top: 3px;\r\n text-align: center;\r\n position: relative;\r\n z-index: 20;\r\n float: left;\r\n font-weight: bold;\r\n}\r\n\r\n.uploader-left {\r\n width: 100%;\r\n border: 1px solid black;\r\n height: 20px;\r\n background: #fff url(@@base_url@@/core/admin_templates/img/progress_left.gif);\r\n}\r\n\r\n.uploader-done {\r\n width: 0%;\r\n background-color: green;\r\n height: 20px;\r\n background: #4A92CE url(@@base_url@@/core/admin_templates/img/progress_done.gif);\r\n}\r\n\r\n\r\n/* To be sorted */\r\n\r\n\r\n/* Section title, right to the big icon */\r\n.admintitle {\r\n font-size: 16pt;\r\n font-weight: bold;\r\n color: @@SectionColor@@;\r\n text-decoration: none;\r\n}\r\n\r\n/* Left sid of bluebar */\r\n.header_left_bg {\r\n background-color: @@TitleBarBgColor@@;\r\n background-image: none;\r\n padding-left: 5px;\r\n}\r\n\r\n/* Right side of bluebar */\r\n.tablenav, tablenav a {\r\n font-size: 11pt;\r\n font-weight: bold;\r\n color: @@TitleBarColor@@;\r\n\r\n text-decoration: none;\r\n background-color: @@TitleBarBgColor@@;\r\n background-image: none;\r\n}\r\n\r\n/* Section title in the bluebar * -- why ''link''? :S */\r\n.tablenav_link {\r\n font-size: 11pt;\r\n font-weight: bold;\r\n color: @@TitleBarColor@@;\r\n text-decoration: none;\r\n}\r\n\r\n/* Active page in top and bottom bluebars pagination */\r\n.current_page {\r\n font-size: 10pt;\r\n font-weight: bold;\r\n background-color: #fff;\r\n color: #2D79D6;\r\n padding: 3px 2px 3px 3px;\r\n}\r\n\r\n/* Other pages and arrows in pagination on blue */\r\n.nav_url {\r\n font-size: 10pt;\r\n font-weight: bold;\r\n color: #fff;\r\n padding: 3px 2px 3px 3px;\r\n}\r\n\r\n/* Tree */\r\n.tree-body {\r\n background-color: @@TreeBgColor@@;\r\n height: 100%\r\n}\r\n\r\n.tree_head.td, .tree_head, .tree_head:hover {\r\n font-weight: bold;\r\n font-size: 10px;\r\n color: #FFFFFF;\r\n font-family: Verdana, Arial;\r\n text-decoration: none;\r\n}\r\n\r\n.tree {\r\n padding: 0px;\r\n border: none;\r\n border-collapse: collapse;\r\n}\r\n\r\n.tree tr td {\r\n padding: 0px;\r\n margin: 0px;\r\n font-family: helvetica, arial, verdana,;\r\n font-size: 11px;\r\n white-space: nowrap;\r\n}\r\n\r\n.tree tr td a {\r\n font-size: 11px;\r\n color: @@TreeColor@@;\r\n font-family: Helvetica, Arial, Verdana;\r\n text-decoration: none;\r\n padding: 2px 0px 2px 2px;\r\n}\r\n\r\n.tree tr.highlighted td a {\r\n background-color: @@TreeHighBgColor@@;\r\n color: @@TreeHighColor@@;\r\n}\r\n\r\n.tree tr.highlighted td a:hover {\r\n color: #fff;\r\n}\r\n\r\n.tree tr td a:hover {\r\n color: #000000;\r\n}', 'in-portal_logo_img.jpg', 'in-portal_logo_img2.jpg', 'in-portal_logo_login.jpg', 'a:20:{s:11:"HeadBgColor";a:2:{s:11:"Description";s:27:"Head frame background color";s:5:"Value";s:7:"#1961B8";}s:9:"HeadColor";a:2:{s:11:"Description";s:21:"Head frame text color";s:5:"Value";s:7:"#CCFF00";}s:14:"SectionBgColor";a:2:{s:11:"Description";s:28:"Section bar background color";s:5:"Value";s:7:"#FFFFFF";}s:12:"SectionColor";a:2:{s:11:"Description";s:22:"Section bar text color";s:5:"Value";s:7:"#2D79D6";}s:12:"HeadBarColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:14:"HeadBarBgColor";a:1:{s:5:"Value";s:7:"#1961B8";}s:13:"TitleBarColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:15:"TitleBarBgColor";a:1:{s:5:"Value";s:7:"#2D79D6";}s:14:"ToolbarBgColor";a:1:{s:5:"Value";s:7:"#F0F1EB";}s:14:"FiltersBgColor";a:1:{s:5:"Value";s:7:"#D7D7D7";}s:17:"ColumnTitlesColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:19:"ColumnTitlesBgColor";a:1:{s:5:"Value";s:7:"#999999";}s:8:"OddColor";a:1:{s:5:"Value";s:7:"#000000";}s:10:"OddBgColor";a:1:{s:5:"Value";s:7:"#F6F6F6";}s:9:"EvenColor";a:1:{s:5:"Value";s:7:"#000000";}s:11:"EvenBgColor";a:1:{s:5:"Value";s:7:"#EBEBEB";}s:9:"TreeColor";a:1:{s:5:"Value";s:7:"#006F99";}s:11:"TreeBgColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:13:"TreeHighColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:15:"TreeHighBgColor";a:1:{s:5:"Value";s:7:"#4A92CE";}}', 1206520493, 1); INSERT INTO LocalesList VALUES @@ -1114,5 +1146,7 @@ INSERT INTO ConfigurationAdmin VALUES ('ResizableFrames', 'la_Text_Website', 'la_config_ResizableFrames', 'checkbox', '', '', 10.30, 0, 0); INSERT INTO ConfigurationValues VALUES (DEFAULT, 'ResizableFrames', '0', 'In-Portal', 'in-portal:configure_general'); +#INSERT INTO PageContent VALUES (DEFAULT, 1, 1, 'In-portal is a revolutionary Web Site management system that allows you to automate and facilitate management of large portal and community web sites. Regardless of whether you are running a directory site or a content news portal, a community site or an online mall, In-portal will enhance your web site management experience with innovative.

We are proud to present our newly developed "default" theme that introduces a fresh look as well totally new approach in the template system.
', NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0); + INSERT INTO Modules VALUES ('Core', 'core/', 'adm', DEFAULT, 1, 1, '', 0, '0'); INSERT INTO Modules VALUES ('In-Portal', 'core/', 'm', '5.0.0', 1, 0, '', 0, '0'); \ No newline at end of file Index: branches/RC/core/admin_templates/img/icons/icon24_browse-site.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/submissions/submissions_list.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/submissions/submissions_list.tpl (revision 0) +++ branches/RC/core/admin_templates/submissions/submissions_list.tpl (revision 11610) @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + +
+ +
+ + + + "> + + + + + + \ No newline at end of file Index: branches/RC/core/admin_templates/img/icons/icon46_form.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/incs/cms.css =================================================================== diff -u -N --- branches/RC/core/admin_templates/incs/cms.css (revision 0) +++ branches/RC/core/admin_templates/incs/cms.css (revision 11610) @@ -0,0 +1,67 @@ +/* === Common styles for "Section Properties" and "Edit" buttons === */ +div.cms-btn-image { + float: left; + height: 15px; + vertical-align: middle; +} + +div.cms-btn-text { + margin-left: 3px; + float: left; + white-space: nowrap; + vertical-align: middle; +} + +div.cms-btn-content { + padding: 5px; +} + +div.cms-section-properties-btn, div.cms-edit-btn { + padding: 2px 5px; + font-family: Arial, Verdana; + font-size: 13px; + font-weight: normal; + width: auto; + position: absolute; + color: black; + cursor: pointer; + -moz-border-radius: 10px; + + margin-top: -10px; + z-index: 99; +} + +/* === Styles for "Section Properties" button === */ +div.cms-section-properties-btn { + float: right; + position: relative; + + margin-right: -10px; + border: 2px solid #A1D0A1; + background-color: #CCFF00; +} + +div.cms-section-properties-btn-container { + border: 1px dashed #A1D0A1; + margin: 10px; +} + +/* === Styles for "Edit" button === */ +div.cms-edit-btn-container { + border: 1px dashed #FF6E00; +} + +div.cms-edit-btn { + margin-left: -10px; + border: 2px solid #FF6E00; + background-color: #FFCC00; +} + +/* === Styles for Template Editor === */ +div.block-edit-btn-container { + border: 1px dashed transparent; +} + +div.block-edit-btn-container-over { + border-color: #FF6E00; +} \ No newline at end of file Index: branches/RC/core/install/upgrades.sql =================================================================== diff -u -N -r11600 -r11610 --- branches/RC/core/install/upgrades.sql (.../upgrades.sql) (revision 11600) +++ branches/RC/core/install/upgrades.sql (.../upgrades.sql) (revision 11610) @@ -1024,7 +1024,7 @@ ALTER TABLE Category ADD ThemeId INT UNSIGNED NOT NULL, ADD INDEX (ThemeId), - ADD COLUMN UseExternalUrl tinyint(3) unsigned NOT NULL default '0' AFTER Path, + ADD COLUMN UseExternalUrl tinyint(3) unsigned NOT NULL default '0' AFTER Template, ADD COLUMN ExternalUrl varchar(255) NOT NULL default '' AFTER UseExternalUrl, ADD COLUMN UseMenuIconUrl tinyint(3) unsigned NOT NULL default '0' AFTER ExternalUrl, ADD COLUMN MenuIconUrl varchar(255) NOT NULL default '' AFTER UseMenuIconUrl, @@ -1038,8 +1038,9 @@ UPDATE Category SET l3_MenuTitle = l3_Name WHERE l3_MenuTitle = '' OR l3_MenuTitle LIKE '_Auto: %'; UPDATE Category SET l4_MenuTitle = l4_Name WHERE l4_MenuTitle = '' OR l4_MenuTitle LIKE '_Auto: %'; UPDATE Category SET l5_MenuTitle = l5_Name WHERE l5_MenuTitle = '' OR l5_MenuTitle LIKE '_Auto: %'; -UPDATE Category SET Template = '/platform/designs/default_design.des' WHERE Template = '/in-edit/designs/general'; -UPDATE Category SET CachedTemplate = '/platform/designs/default_design.des' WHERE CachedTemplate = '/in-edit/designs/general'; +UPDATE Category SET Template = '/platform/designs/general' WHERE Template = '/in-edit/designs/general'; +UPDATE Category SET CachedTemplate = '/platform/designs/general' WHERE CachedTemplate = '/in-edit/designs/general'; +UPDATE Category SET CachedTemplate = Template WHERE Template <> ''; CREATE TABLE PageContent ( PageContentId int(11) NOT NULL auto_increment, @@ -1109,6 +1110,28 @@ UPDATE ConfigurationAdmin SET DisplayOrder = 10.29 WHERE VariableName = 'cms_DefaultDesign'; UPDATE Phrase SET Module = 'Core' WHERE Phrase IN ('la_Hide', 'la_Show', 'la_fld_Requied', 'la_col_Modified'); +UPDATE Phrase SET Phrase = 'la_title_Editing_E-mail' WHERE Phrase = 'la_title_editing_e-mail'; + ALTER TABLE Phrase ADD UNIQUE (LanguageId, Phrase); -ALTER TABLE CustomField ADD IsRequired TINYINT( 3 ) UNSIGNED; +ALTER TABLE CustomField ADD IsRequired TINYINT(3) UNSIGNED; + +DELETE FROM Permissions WHERE Permission LIKE 'proj-cms:structure%'; +UPDATE Permissions SET Permission = REPLACE(Permission, 'proj-cms:browse', 'in-portal:browse_site'); +UPDATE Permissions SET Permission = REPLACE(Permission, 'proj-cms:', 'in-portal:'); + +ALTER TABLE CategoryItems ADD INDEX (ItemResourceId); +ALTER TABLE CategoryItems + DROP INDEX Filename, + ADD INDEX Filename(Filename); + +DROP TABLE Pages; +DELETE FROM PermissionConfig WHERE PermissionName LIKE 'PAGE.%'; +DELETE FROM Permissions WHERE Permission LIKE 'PAGE.%'; +DELETE FROM SearchConfig WHERE TableName = 'Pages'; +DELETE FROM ConfigurationAdmin WHERE VariableName LIKE '%_pages'; +DELETE FROM ConfigurationValues WHERE VariableName LIKE '%_pages'; +DELETE FROM ConfigurationAdmin WHERE VariableName LIKE 'PerPage_Pages%'; +DELETE FROM ConfigurationValues WHERE VariableName LIKE 'PerPage_Pages%'; + +UPDATE Modules SET Version = '5.0.0' WHERE Name = 'In-Portal'; Index: branches/RC/core/units/modules/modules_config.php =================================================================== diff -u -N -r11561 -r11610 --- branches/RC/core/units/modules/modules_config.php (.../modules_config.php) (revision 11561) +++ branches/RC/core/units/modules/modules_config.php (.../modules_config.php) (revision 11610) @@ -21,7 +21,7 @@ 'TitlePresets' => Array( 'module_list' => Array ( 'prefixes' => Array ('mod_List'), 'format' => "!la_title_Module_Status!", - 'toolbar_buttons' => Array ('approve', 'decline', 'view'), + 'toolbar_buttons' => Array ('approve', 'deny', 'view'), ), 'tree_modules' => Array('format' => '!la_section_overview!'), ), Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_submission_f2.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/forms/forms_edit_fields.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/forms/forms_edit_fields.tpl (revision 0) +++ branches/RC/core/admin_templates/forms/forms_edit_fields.tpl (revision 11610) @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + \ No newline at end of file Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_submission_f3.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/admin_templates/img/itemicons/icon16_form.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/core/units/structure/structure_eh.php =================================================================== diff -u -N --- branches/RC/core/units/structure/structure_eh.php (revision 0) +++ branches/RC/core/units/structure/structure_eh.php (revision 11610) @@ -0,0 +1,2 @@ + + + + + + + + + + + +
+ +
+ + + + +
+ + + + + + + + + + + + + +
+
+ + \ No newline at end of file Index: branches/RC/core/units/admin/admin_tag_processor.php =================================================================== diff -u -N -r11576 -r11610 --- branches/RC/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 11576) +++ branches/RC/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 11610) @@ -484,7 +484,7 @@ } $params['t'] = 'catalog/item_selector/item_selector_'.$mode; - $params['m_cat_id'] = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $params['m_cat_id'] = $this->Application->findModule('Name', 'Core', 'RootCat'); $default_params = Array('no_amp' => 1, 'pass' => 'all,'.$params['prefix']); unset($params['prefix']); @@ -756,7 +756,7 @@ if (isset($params['m_opener']) && $params['m_opener'] == 'r') { // front-end link for highlighting purposes $vars['t'] = 'index'; - $vars['m_cat_id'] = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $vars['m_cat_id'] = $this->Application->findModule('Name', 'Core', 'RootCat'); } unset($recursion_templates[ array_search('index', $recursion_templates)]); Index: branches/RC/core/units/form_submissions/form_submissions_config.php =================================================================== diff -u -N --- branches/RC/core/units/form_submissions/form_submissions_config.php (revision 0) +++ branches/RC/core/units/form_submissions/form_submissions_config.php (revision 11610) @@ -0,0 +1,89 @@ + 'formsubs', + 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), + 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), + 'EventHandlerClass' => Array('class'=>'FormSubmissionsEventHandler','file'=>'form_submissions_eh.php','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class'=>'kDBTagProcessor', 'file' => '', 'build_event'=>'OnBuild'), + 'AutoLoad' => true, + 'QueryString' => Array( + 1 => 'id', + 2 => 'page', + 3 => 'event', + ), + + 'Hooks' => Array( + Array( + 'Mode' => hAFTER, + 'Conditional' => false, + 'HookToPrefix' => 'formsubs', //self + 'HookToSpecial' => '*', + 'HookToEvent' => Array('OnAfterConfigRead'), + 'DoPrefix' => '', + 'DoSpecial' => '', + 'DoEvent' => 'OnBuildFormFields', + ), + ), + + 'TitlePresets' => Array( + 'default' => Array( 'new_status_labels' => Array('form'=>'!la_title_Adding_Form!'), + 'edit_status_labels' => Array('form'=>'!la_title_Editing_Form!'), + 'new_titlefield' => Array('form'=>''), + ), + + 'formsubs_list'=>Array('prefixes' => Array('formsubs_List'), + 'format' => "!la_title_FormSubmissions!", + ), + + 'formsubs_view'=>Array( 'prefixes' => Array('formsubs'), + 'format' => "!la_title_ViewingFormSubmission!", + ), + + ), + + 'PermSection' => Array('main' => 'in-portal:submissions'), + + 'IDField' => 'FormSubmissionId', + /*'TitleField' => 'Name',*/ + 'TableName' => TABLE_PREFIX.'FormSubmissions', + 'ListSQLs' => Array( + ''=>' SELECT %1$s.* %2$s FROM %1$s', + ), // key - special, value - list select sql + 'ItemSQLs' => Array( + ''=>'SELECT %1$s.* %2$s FROM %1$s', + ), + + /*'ForeignKey' => 'FormId', + 'ParentTableKey' => 'FormId', + 'ParentPrefix' => 'form', + 'AutoDelete' => true, + 'AutoClone' => true,*/ + + 'ListSortings' => Array( + '' => Array( + 'Sorting' => Array('SubmissionTime' => 'desc'), + ) + ), + + 'Fields' => Array( + 'FormSubmissionId' => Array('type' => 'int', 'not_null' => 1,'default' => 0), + 'FormId' => Array('type' => 'int','not_null' => '1','default' => 0), + 'SubmissionTime' => Array('type'=>'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#', 'not_null' => '1' ), + ), + 'VirtualFields' => Array( + ), + 'CalculatedFields' => Array( + ), + 'Grids' => Array( + 'Default' => Array( + 'Icons' => Array('default'=>'icon16_form_submission.gif'), + 'Fields' => Array( + 'FormSubmissionId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'sort_field' => 'FormFieldId', 'filter_block' => 'grid_range_filter', 'width' => 80 ), + 'SubmissionTime' => Array( 'title'=>'la_prompt_SumbissionTime', 'filter_block' => 'grid_date_range_filter'), + ), + ), + ), + ); + +?> \ No newline at end of file Index: branches/RC/core/units/forms/forms_eh.php =================================================================== diff -u -N --- branches/RC/core/units/forms/forms_eh.php (revision 0) +++ branches/RC/core/units/forms/forms_eh.php (revision 11610) @@ -0,0 +1,206 @@ + Array('self' => true), + ); + + $this->permMapping = array_merge($this->permMapping, $permissions); + } + + function OnCreateSubmissionNodes(&$event) + { + if (defined('IS_INSTALL') && IS_INSTALL) { + // skip any processing, because Forms table doesn't exists until install is finished + return ; + } + $sections = $this->Application->getUnitOption($event->Prefix, 'Sections'); + + $forms = $this->Conn->GetCol('SELECT Title, FormId FROM '.TABLE_PREFIX.'Forms ORDER BY Title ASC', 'FormId'); + if (!$forms || count($forms) == 0) { + return; + } + + $base_priority = $sections['in-portal:forms']['priority']; + + $sections['in-portal:submissions'] = Array( + 'parent' => 'in-portal:site', + 'use_parent_header' => 1, + 'icon' => 'form_submission', + 'label' => 'la_tab_CMSForms', + 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array('view', 'add', 'edit', 'delete'), + 'priority' => $base_priority + 0.1, + 'type' => stTREE, + ); + + $form_subsection = Array( + 'parent' => 'in-portal:submissions', + 'icon' => 'form_submission', + 'label' => '', + 'url' => Array('t' => 'submissions/submissions_list', 'pass' => 'm,form'), + 'permissions' => Array('view', 'add', 'edit', 'delete'), + 'priority' => 1, + 'type' => stTREE, + ); + + $priority = 1; + foreach ($forms as $form_id => $form_name) { + $this->Application->Phrases->AddCachedPhrase('form_sub_label_'.$form_id, $form_name); + $this->Application->Phrases->AddCachedPhrase('la_description_in-portal:submissions:'.$form_id, $form_name.' Submissions'); + $form_subsection['label'] = 'form_sub_label_'.$form_id; + $form_subsection['url']['form_id'] = $form_id; + $form_subsection['priority'] = $priority++; + $sections['in-portal:submissions:'.$form_id] = $form_subsection; + } + + $this->Application->setUnitOption($event->Prefix, 'Sections', $sections); + } + + function OnSave(&$event) + { + parent::OnSave($event); + if ($event->status == erSUCCESS) { + + $this->OnCreateFormFields($event); + + $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName = "sections_parsed"'); + $this->Application->StoreVar('RefreshStructureTree', 1); + } + } + + function OnMassDelete(&$event) + { + parent::OnMassDelete($event); + $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName = "sections_parsed"'); + $this->Application->StoreVar('RefreshStructureTree', 1); + } + + /** + * Dynamically fills customdata config + * + * @param kEvent $event + */ + function OnCreateFormFields(&$event) + { + $cur_fields = $this->Conn->Query('DESCRIBE '.TABLE_PREFIX.'FormSubmissions', 'Field'); + $cur_fields = array_keys($cur_fields); + + // keep all fields, that are not created on the fly (includes ones, that are added during customizations) + foreach ($cur_fields as $field_index => $field_name) { + if (!preg_match('/^fld_[\d]+/', $field_name)) { + unset($cur_fields[$field_index]); + } + } + + $desired_fields = $this->Conn->GetCol('SELECT CONCAT(\'fld_\', FormFieldId) FROM '.TABLE_PREFIX.'FormFields ORDER BY FormFieldId'); + + $sql = array(); + + $fields_to_add = array_diff($desired_fields, $cur_fields); + foreach ($fields_to_add as $field) { + $field_expression = $field.' Text NULL'; + $sql[] = 'ADD COLUMN '.$field_expression; + } + + $fields_to_drop = array_diff($cur_fields, $desired_fields); + foreach ($fields_to_drop as $field) { + $sql[] = 'DROP COLUMN '.$field; + } + + if ($sql) { + $query = 'ALTER TABLE '.TABLE_PREFIX.'FormSubmissions '.implode(', ', $sql); + $this->Conn->Query($query); + } + } + + /*function GetPassedId($event) + { + return 0; + } + + function LoadItem(&$event) + { + $object =& $event->getObject(); + $object->SetField('Id',0); + $object->SetId(0); + } +*/ + /** + * Enter description here... + * + * @param kEvent $event + */ + function OnFormSubmit(&$event) + { + $object =& $event->GetObject(); + + $fields = explode(',',$this->Application->GetVar('fields')); + $required_fields = explode(',', $this->Application->GetVar('required_fields')); + $fields_params = $this->Application->GetVar('fields_params'); + + foreach ($fields as $field) { + $virt_fields[$field] = Array(); + if (in_array($field, $required_fields)) { + $virt_fields[$field]['required'] = 1; + } + $params = getArrayValue($fields_params, $field); + if ($params !== false) { + if (getArrayValue($params, 'Type') == 'email') { + //'formatter'=>'kFormatter', 'regexp'=>'/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i', 'error_msgs' => Array('invalid_format'=>'!la_invalid_email!') + $virt_fields[$field]['formatter'] = 'kFormatter'; + $virt_fields[$field]['regexp'] = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i'; + $virt_fields[$field]['error_msgs'] = Array('invalid_format'=>'!la_invalid_email!'); + } + if (getArrayValue($params, 'Type') == 'file') { + $virt_fields[$field]['formatter'] = 'kUploadFormatter'; + $virt_fields[$field]['upload_dir'] = '/uploads/sketches/'; + } + } + } + $object->SetVirtualFields($virt_fields); + + $field_values = $this->getSubmittedFields($event); + + + $checkboxes = Array('MailingList', 'In-Link', 'In-Newz', 'In-Bulletin'); + $checkboxes = explode(',', $this->Application->GetVar('checkbox_fields')); + foreach ($checkboxes as $checkbox) { + if (isset($field_values[$checkbox])) { + $field_values[$checkbox] = 1; + } + else { + $field_values[$checkbox] = '0'; + } + } + + $object->SetFieldsFromHash($field_values); + if ($object->Validate()) { + $event->redirect = $this->Application->GetVar('success_template'); + $this->Application->EmailEventAdmin($this->Application->GetVar('email_event')); + $this->Application->EmailEventUser($this->Application->GetVar('email_event'), null, + Array('to_email' => $field_values[$this->Application->GetVar('email_field')], + 'to_name' => $field_values[$this->Application->GetVar('name_field')])); + + if ($field_values['MailingList']) { + $this->Application->StoreVar('SubscriberEmail', $field_values['Email']); + $this->Application->HandleEvent($sub_event, 'u:OnSubscribeUser', Array('no_unsubscribe' => 1)); + } + } + else { + $event->status = erFAIL; + } + } + +} + +?> \ No newline at end of file Index: branches/RC/core/units/categories/cache_updater.php =================================================================== diff -u -N -r11504 -r11610 --- branches/RC/core/units/categories/cache_updater.php (.../cache_updater.php) (revision 11504) +++ branches/RC/core/units/categories/cache_updater.php (.../cache_updater.php) (revision 11610) @@ -331,10 +331,10 @@ $data['titles'] = Array(); $data['parent_path'] = Array(); $data['named_path'] = Array(); + $data['file_name'] = ''; $data['template'] = ''; // design $data['item_template'] = ''; $data['children_count'] = 0; -// $data['system'] = 0; $data['left'] = 0; $data['right'] = 2; $data['debug_title'] = 'ROOT'; @@ -444,7 +444,6 @@ $data['parent_path'][] = $category_id; $data['named_path'][] = preg_replace('/^Content\\//', '', $record['Filename']); -// $data['system'] = $record['IsSystem']; $data['file_name'] = $record['Filename']; // it is one of the modules root category Index: branches/RC/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r11538 -r11610 --- branches/RC/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 11538) +++ branches/RC/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 11610) @@ -505,7 +505,7 @@ $cat_hierarchy = $this->Conn->GetOne($sql); if ($cat_hierarchy === false) { // category was deleted, but refrence to it stays in other tables -> data integrity is broken - $cat_hierarchy = '|' . $this->Application->findModule('Name', 'Proj-CMS', 'RootCat') . '|'; + $cat_hierarchy = '|' . $this->Application->findModule('Name', 'Core', 'RootCat') . '|'; } } Index: branches/RC/core/units/content/content_config.php =================================================================== diff -u -N --- branches/RC/core/units/content/content_config.php (revision 0) +++ branches/RC/core/units/content/content_config.php (revision 11610) @@ -0,0 +1,58 @@ + 'content', + 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), + 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), + 'EventHandlerClass' => Array('class'=>'kDBEventHandler','file'=>'','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'), + 'AutoLoad' => true, + 'QueryString' => Array( + 1 => 'id', + 2 => 'Page', + 3 => 'event', + 4 => 'mode', + ), + 'IDField' => 'PageContentId', + 'ParentTableKey'=> 'CategoryId', // linked field in master table + 'ForeignKey' => 'PageId', // linked field in subtable + 'ParentPrefix' => 'c', + 'AutoDelete' => true, + 'AutoClone' => true, + + 'TitleField' => 'ContentNum', // field, used in bluebar when editing existing item + + 'ViewMenuPhrase' => 'la_text_Pages', + + 'TitlePhrase' => 'la_text_PageContent', + + 'TitlePresets' => Array( + 'default' => Array( 'new_status_labels' => Array('content'=>'!la_title_Adding_Content!'), + 'edit_status_labels' => Array('content'=>'!la_title_Editing_Content!'), + 'new_titlefield' => Array('content'=>''), + ), + 'content_edit' => Array('prefixes' => Array('content'), 'format' => '#content_status# - !la_title_General!'), + ), + + 'TableName' => TABLE_PREFIX.'PageContent', + +// 'PermSection' => Array('main' => 'CATEGORY:in-portal:structure', ), + + 'ListSQLs' => Array('' => 'SELECT * FROM %s'), // key - special, value - list select sql + 'ListSortings' => Array( + '' => Array( + 'Sorting' => Array('ContentNum' => 'asc'), + ) + ), + 'ItemSQLs' => Array('' => 'SELECT * FROM %s'), + + 'Fields' => Array ( + 'PageContentId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), + 'ContentNum' => Array('type' => 'int','not_null' => 1, 'default' => 0), + 'PageId' => Array('type' => 'int','not_null' => 1, 'default' => 0), + 'Content' => Array('type' => 'string','formatter'=>'kMultiLanguage', 'format'=>'no_default', 'default' => ''), + 'Translated' => Array ('type' => 'int', 'formatter' => 'kMultiLanguage', 'not_null' => 1, 'default' => 0, 'db_type' => 'tinyint', 'index_type' => 'int'), + ), + + ); +?> \ No newline at end of file Index: branches/RC/core/kernel/application.php =================================================================== diff -u -N -r11546 -r11610 --- branches/RC/core/kernel/application.php (.../application.php) (revision 11546) +++ branches/RC/core/kernel/application.php (.../application.php) (revision 11610) @@ -2370,25 +2370,31 @@ */ function handleError($errno, $errstr, $errfile = '', $errline = '', $errcontext = '') { - if( constOn('SILENT_LOG') ) - { + if (defined('SILENT_LOG') && SILENT_LOG) { $fp = fopen(FULL_PATH.'/silent_log.txt','a'); $time = adodb_date('d/m/Y H:i:s'); fwrite($fp, '['.$time.'] #'.$errno.': '.strip_tags($errstr).' in ['.$errfile.'] on line '.$errline."\n"); fclose($fp); } - if (!$this->errorHandlers || (defined('DEBUG_MODE') && DEBUG_MODE && defined('DBG_SKIP_REPORTING') && DBG_SKIP_REPORTING)) { + $debug_mode = defined('DEBUG_MODE') && DEBUG_MODE; + $skip_reporting = defined('DBG_SKIP_REPORTING') && DBG_SKIP_REPORTING; + + if (!$this->errorHandlers || ($debug_mode && $skip_reporting)) { // when debugger absent OR it's present, but we actually can't see it's error report (e.g. during ajax request) - if ($errno == E_USER_ERROR) { + $ignore_fatal_errors = defined('DBG_IGNORE_FATAL_ERRORS') && DBG_IGNORE_FATAL_ERRORS; + + if (($errno == E_USER_ERROR) && !$ignore_fatal_errors) { header('HTTP/1.0 500 Script Fatal Error'); - echo ('
- Fatal Error: - '."$errstr in $errfile on line $errline".' -
'); + echo ('
+ Fatal Error: '."$errstr in $errfile on line $errline".' +
'); exit; } - return true; + + if (!$this->errorHandlers) { + return true; + } } $res = false; Index: branches/RC/themes/default2009/platform/template_manager/inc/template_manager.js =================================================================== diff -u -N -r11484 -r11610 --- branches/RC/themes/default2009/platform/template_manager/inc/template_manager.js (.../template_manager.js) (revision 11484) +++ branches/RC/themes/default2009/platform/template_manager/inc/template_manager.js (.../template_manager.js) (revision 11610) @@ -61,24 +61,21 @@ TemplateManager.prototype.onMouseOver = function ($e, $element) { - if (!$element.className.match(/[ ]{0,1}block-container-over[ ]{0,1}/)) { - $element.className += ' block-container-over'; - } - + $($element).addClass('block-edit-btn-container-over'); $e.stopPropagation(); } TemplateManager.prototype.onMouseOut = function ($e, $element) { - $element.className = $element.className.replace(/[ ]{0,1}block-container-over[ ]{0,1}/, ''); - + $($element).removeClass('block-edit-btn-container-over'); $e.stopPropagation(); } TemplateManager.prototype.searchBlocks = function () { $('div').each ( function () { - var $id = this.getAttribute('id'); - if (!$id || !$id.match(/parser_block\[.*\]/)) { + var $id = $(this).attr('id'); + + if (!$id || $id.match(/parser_block\[.*\].*_btn$/) || !$id.match(/parser_block\[.*\]/)) { // skip other divs return true; } @@ -139,36 +136,4 @@ window[$id] = new CodePress($textarea); $( window[$id] ).insertBefore($textarea); -} - -function getFrame($name) -{ - var $main_window = window; - - // 1. cycle through popups to get main window - try { - // will be error, when other site is opened in parent window - var $i = 0; - while ($main_window.opener) { - if ($i == 10) { - break; - } - - $main_window = $main_window.opener; - $i++; - } - } - catch (err) { - // catch Access/Permission Denied error -// alert('getFrame.Error: [' + err.description + ']'); - return window; - } - - var $frameset = $main_window.parent.frames; - for ($i = 0; $i < $frameset.length; $i++) { - if ($frameset[$i].name == $name) { - return $frameset[$i]; - } - } - return $main_window.parent; } \ No newline at end of file Index: branches/RC/core/units/languages/languages_event_handler.php =================================================================== diff -u -N -r11538 -r11610 --- branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 11538) +++ branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 11610) @@ -125,7 +125,8 @@ function OnBeforeItemUpdate(&$event) { $object =& $event->getObject(); - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') ); + $status_fields = $this->Application->getUnitOption($event->Prefix, 'StatusField'); + $status_field = array_shift($status_fields); if ($object->GetDBField('PrimaryLang') == 1 && $object->GetDBField($status_field) == 0) { $object->SetDBField($status_field, 1); Index: branches/RC/themes/default2009/index.tpl =================================================================== diff -u -N -r11591 -r11610 --- branches/RC/themes/default2009/index.tpl (.../index.tpl) (revision 11591) +++ branches/RC/themes/default2009/index.tpl (.../index.tpl) (revision 11610) @@ -35,7 +35,7 @@ - +
Index: branches/RC/themes/default2009/platform/designs/default_design.des.tpl =================================================================== diff -u -N -r11599 -r11610 --- branches/RC/themes/default2009/platform/designs/default_design.des.tpl (.../default_design.des.tpl) (revision 11599) +++ branches/RC/themes/default2009/platform/designs/default_design.des.tpl (.../default_design.des.tpl) (revision 11610) @@ -15,104 +15,107 @@ + + - -
-
- - - - - - - -
- -
- -
+ +
+
+ + + + + + + +
+ +
+ +
- img/s.gif" width="1" height="1" alt=""/>
- img/grey_pix.gif" width="100%" height="1" alt=""/>
- img/s.gif" width="1" height="1" alt=""/>
+ img/s.gif" width="1" height="1" alt=""/>
+ img/grey_pix.gif" width="100%" height="1" alt=""/>
+ img/s.gif" width="1" height="1" alt=""/>
- - - - + + REMOVE THIS LINE TO UNCOMMENT ##--> + +
-
- -
- -
-
- -
-
+ + + + - + + + + - - - + + + - - - + + +
+ + - -
- + + + - - - - REMOVE THIS LINE TO UNCOMMENT ##--> - -
+
+ +
+ +
+
+ +
+
- -
-
- img/s.gif" width="3" height="1" alt=""/>
-
+ img/s.gif" width="3" height="1" alt=""/>
+
-
- -
- -
+ +
+
+ +
+ +
-
- - - - +
+ + + + - - -
- + +
+
+
- -
-
-
- img/s.gif" width="3" height="1" alt=""/>
-
+ img/s.gif" width="3" height="1" alt=""/>
+
- -
+ +
+ +
- - - - -
- -
-
+ + + + +
+ +
+
+ \ No newline at end of file Index: branches/RC/core/kernel/nparser/compiler.php =================================================================== diff -u -N -r11303 -r11610 --- branches/RC/core/kernel/nparser/compiler.php (.../compiler.php) (revision 11303) +++ branches/RC/core/kernel/nparser/compiler.php (.../compiler.php) (revision 11610) @@ -27,6 +27,8 @@ $this->Application->errorHandlers[0] = array(&$this, 'SaveError'); safeDefine('DBG_NPARSER_FORCE_COMPILE', 1); + safeDefine('DBG_IGNORE_FATAL_ERRORS', 1); + $i = $current; $this->Application->InitParser(); while ($i < $total && $i < ($current + 20)) { Index: branches/RC/system/user_files/in-portal_logo_img2.jpg =================================================================== diff -u -N Binary files differ Index: branches/RC/themes/default2009/platform/designs/general.tpl =================================================================== diff -u -N -r11599 -r11610 --- branches/RC/themes/default2009/platform/designs/general.tpl (.../general.tpl) (revision 11599) +++ branches/RC/themes/default2009/platform/designs/general.tpl (.../general.tpl) (revision 11610) @@ -32,7 +32,7 @@ - +
Index: branches/RC/core/units/categories/categories_event_handler.php =================================================================== diff -u -N -r11586 -r11610 --- branches/RC/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 11586) +++ branches/RC/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 11610) @@ -162,10 +162,8 @@ $object =& $event->getObject(); /* @var $object kDBList */ - /*if (!$this->Application->IsAdmin()) { - // don't show categories visible in menu as sub-categories - $object->addFilter('system_categories', '%1$s.IsMenu = 0'); - }*/ + // don't show "Content" category in advanced view + $object->addFilter('system_categories', '%1$s.Status <> 4'); // show system templates from current theme only + all virtual templates $object->addFilter('theme_filter', '%1$s.ThemeId = ' . $this->_getCurrentThemeId() . ' OR %1$s.ThemeId = 0'); @@ -407,7 +405,7 @@ $themes_helper =& $this->Application->recallObject('ThemesHelper'); /* @var $themes_helper kThemesHelper */ - return $themes_helper->getCurrentThemeId(); + return (int)$themes_helper->getCurrentThemeId(); } /** @@ -1350,7 +1348,7 @@ $theme_id = $this->_getCurrentThemeId(); } - $root_category = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $root_category = $this->Application->findModule('Name', 'Core', 'RootCat'); $page_category = $this->Application->GetVar('m_cat_id'); if (!$page_category) { $page_category = $root_category; @@ -1607,7 +1605,7 @@ return ; } - $root_category = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $root_category = $this->Application->findModule('Name', 'Core', 'RootCat'); // set root category $section_ajustments = $this->Application->getUnitOption($event->Prefix, 'SectionAdjustments'); Index: branches/RC/core/admin_templates/custom_fields/custom_fields_edit.tpl =================================================================== diff -u -N -r11600 -r11610 --- branches/RC/core/admin_templates/custom_fields/custom_fields_edit.tpl (.../custom_fields_edit.tpl) (revision 11600) +++ branches/RC/core/admin_templates/custom_fields/custom_fields_edit.tpl (.../custom_fields_edit.tpl) (revision 11610) @@ -75,7 +75,7 @@ - + Index: branches/RC/core/units/general/helpers/modules.php =================================================================== diff -u -N -r10832 -r11610 --- branches/RC/core/units/general/helpers/modules.php (.../modules.php) (revision 10832) +++ branches/RC/core/units/general/helpers/modules.php (.../modules.php) (revision 11610) @@ -172,7 +172,7 @@ } } - array_push($modules, 'Core', 'Proj-base', 'Proj-CMS', 'Custom'); + array_push($modules, 'Core', 'In-Portal', 'In-Link', 'In-News', 'In-Bulletin', 'Proj-base', 'Custom'); return $modules; } Index: branches/RC/core/units/form_fields/form_fields_config.php =================================================================== diff -u -N --- branches/RC/core/units/form_fields/form_fields_config.php (revision 0) +++ branches/RC/core/units/form_fields/form_fields_config.php (revision 11610) @@ -0,0 +1,85 @@ + 'formflds', + 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), + 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), + 'EventHandlerClass' => Array('class'=>'kDBEventHandler','file'=>'','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class'=>'FormFieldsTagProcessor','file'=>'form_fields_tp.php'), + 'AutoLoad' => true, + 'QueryString' => Array( + 1 => 'id', + 2 => 'page', + 3 => 'event', + ), + + 'IDField' => 'FormFieldId', + 'TitleField' => 'FieldName', + 'TableName' => TABLE_PREFIX.'FormFields', + 'ListSQLs' => Array( + ''=>' SELECT %1$s.* %2$s FROM %1$s', + ), // key - special, value - list select sql + 'ItemSQLs' => Array( + ''=>'SELECT %1$s.* %2$s FROM %1$s', + ), + + 'ForeignKey' => 'FormId', + 'ParentTableKey' => 'FormId', + 'ParentPrefix' => 'form', + 'AutoDelete' => true, + 'AutoClone' => true, + + 'ListSortings' => Array( + '' => Array( + 'Sorting' => Array('Name' => 'asc'), + ) + ), + + 'ListSortings' => Array( + '' => Array( + 'ForcedSorting' => Array('Priority' => 'desc'), + 'Sorting' => Array('FieldName' => 'asc'), + ) + ), + + 'Fields' => Array( + 'FormFieldId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), + 'FormId' => Array('type' => 'int','not_null' => 1, 'default' => 0), + 'Type' => Array('type' => 'int','not_null' => 1, 'default' => 0), + 'FieldName' => Array('required'=>'1', 'type' => 'string','not_null' => 1,'default' => ''), + 'FieldLabel' => Array('type' => 'string', 'required' => 1, 'default' => null), + 'Heading' => Array('type' => 'string', 'default' => null), + 'Prompt' => Array('type' => 'string','default' => null,'required'=>1), + 'ElementType' => Array('required'=>'1', 'type'=>'string', 'not_null'=>1, 'default'=>'', 'formatter'=>'kOptionsFormatter', 'use_phrases' => 1, 'options'=>Array('' => 'la_EmptyValue', 'text' => 'la_type_text', 'select' => 'la_type_select', 'radio' => 'la_type_radio', 'checkbox' => 'la_type_SingleCheckbox', 'password' => 'la_type_password', 'textarea' => 'la_type_textarea', 'label' => 'la_type_label')), + 'ValueList' => Array('type' => 'string','default' => null), + 'Priority' => Array('type' => 'int','not_null' => 1, 'default' => 0), + 'IsSystem' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), + 'Required' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), + 'DisplayInGrid' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 1), + 'DefaultValue' => Array('type' => 'string','not_null' => 1, 'default' => ''), + 'Validation' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(0 => 'la_None', 1 => 'la_ValidationEmail'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), + ), + + 'VirtualFields' => Array( + 'DirectOptions' => Array('type' => 'string', 'default' => ''), + ), + + 'CalculatedFields' => Array( + ), + 'Grids' => Array( + 'Default' => Array( + 'Icons' => Array('default'=>'icon16_custom.gif'), + 'Fields' => Array( + 'FormFieldId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'), + 'FieldName' => Array( 'title'=>'la_prompt_FieldName', 'filter_block' => 'grid_like_filter'), + 'FieldLabel' => Array( 'title'=>'la_prompt_FieldLabel', 'data_block' => 'label_grid_data_td', 'filter_block' => 'grid_like_filter'), + 'Priority' => Array('title' => 'la_prompt_Priority', 'filter_block' => 'grid_range_filter'), + 'ElementType' => Array('title' => 'la_prompt_ElementType', 'filter_block' => 'grid_options_filter'), + 'Required' => Array('title' => 'la_prompt_Required', 'filter_block' => 'grid_options_filter'), + 'DisplayInGrid' => Array('title' => 'la_prompt_DisplayInGrid', 'filter_block' => 'grid_options_filter'), + ), + ), + ), + ); + +?> \ No newline at end of file Index: branches/RC/core/units/structure/structure_config.php =================================================================== diff -u -N --- branches/RC/core/units/structure/structure_config.php (revision 0) +++ branches/RC/core/units/structure/structure_config.php (revision 11610) @@ -0,0 +1,185 @@ + 'st', + 'ItemClass' => Array('class'=>'CategoriesItem','file'=>'structure_item.php', 'build_event'=>'OnItemBuild'), + 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), + 'EventHandlerClass' => Array('class'=>'CategoriesEventHandler','file'=>'structure_eh.php', 'build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class'=>'CategoriesTagProcessor','file'=>'structure_tp.php', 'build_event'=>'OnBuild'), + + 'AutoLoad' => true, + + 'QueryString' => Array( + 1 => 'id', + 2 => 'page', + 3 => 'event', + 4 => 'mode', + ), + 'ConfigPriority' => 0, + 'Hooks' => Array( + Array ( + 'Mode' => hBEFORE, + 'Conditional' => false, + 'HookToPrefix' => '', + 'HookToSpecial' => '*', + 'HookToEvent' => Array('OnAfterConfigRead'), + 'DoPrefix' => 'cdata', + 'DoSpecial' => '*', + 'DoEvent' => 'OnDefineCustomFields', + ), + ), + + 'IDField' => 'CategoryId', + + 'StatusField' => Array('IsMenu'), + + 'TitleField' => 'Name', // field, used in bluebar when editing existing item + + 'TableName' => TABLE_PREFIX.'Category', + + 'TitlePresets' => Array( + 'default' => Array( 'new_status_labels' => Array('st'=>'!la_title_Adding_Page!'), + 'edit_status_labels' => Array('st'=>'!la_title_Editing_Page!'), + 'new_titlefield' => Array('st'=>''), + ), + 'structure_list' => Array( + 'prefixes' => Array('st_List', 'st.current'), + 'format' => "!la_title_Structure! - '#st.current_Name#'" + ), + 'structure_edit' => Array( + 'prefixes' => Array('st'), + 'format' => "#st_status# '#st_titlefield#'", + ), + + 'all_pages_list' => Array('prefixes' => Array('st.all_List'), 'format' => "!la_title_AllPages!"), + + 'edit_content' => array('format' => '!la_EditingContent!'), + +/* 'categories_edit' => Array('prefixes' => Array('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_General!"),*/ + + ), + + 'PermItemPrefix' => 'CATEGORY', + 'PermSection' => Array('main' => 'CATEGORY:in-portal:structure', 'email' => 'in-portal:configemail'), + + 'ListSQLs' => Array( ''=> ' SELECT %1$s.* %2$s + FROM %1$s + LEFT JOIN '.TABLE_PREFIX.'PermCache ON '.TABLE_PREFIX.'PermCache.CategoryId = %1$s.CategoryId'), + + 'ItemSQLs' => Array( ''=> ' SELECT %1$s.* %2$s + FROM %1$s + LEFT JOIN '.TABLE_PREFIX.'PermCache ON '.TABLE_PREFIX.'PermCache.CategoryId = %1$s.CategoryId'), + + 'SubItems' => Array('content'), + + 'ListSortings' => Array( + '' => Array( + 'ForcedSorting' => Array('Priority' => 'desc'), + 'Sorting' => Array('Name' => 'asc'), + ) + ), + + 'CalculatedFields' => Array( + '' => Array( + 'CurrentSort' => "REPLACE(ParentPath, CONCAT('|', ".'%1$s'.".CategoryId, '|'), '')", + ) + ), + + 'Fields' => Array ( + 'CategoryId' => Array('type' => 'int', 'not_null' => 1,'default' => 0), + 'Type' => Array('type' => 'int','not_null' => 1,'default' => 0), + 'ParentId' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'not_null' => 1,'default' => 0, 'required'=>1), + 'Name' => Array('type' => 'string', 'formatter' => 'kMultiLanguage', 'format'=>'no_default', 'not_null' => 1, 'required' => 1, 'default' => ''), + 'Filename' => Array('type' => 'string', 'not_null' => 1, 'default' => '', 'required' => 1), + 'AutomaticFilename' => Array('type' => 'int', 'not_null' => 1, 'default' => 1), + 'Description' => Array('type' => 'string', 'formatter' => 'kMultiLanguage', 'format'=>'no_default', 'default' => null), + 'CreatedOn' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'default'=>'#NOW#', 'required' => 1, 'not_null' => 1), + 'EditorsPick' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), + 'Status' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Active', 2 => 'la_Pending', 0 => 'la_Disabled' ), 'use_phrases' => 1, 'not_null' => 1,'default' => 4), // invisible + 'Priority' => Array('type' => 'int', 'not_null' => 1, 'formatter' => 'kOptionsFormatter', 'options' => array(), 'required' => 1, 'default' => 0), + 'MetaKeywords' => Array('type' => 'string', 'default' => null), + 'CachedDescendantCatsQty' => Array('type' => 'int', 'default' => 0), + 'CachedNavbar' => Array('type' => 'string', 'formatter' => 'kMultiLanguage', 'default' => null), + 'CreatedById' => Array('type' => 'int', 'formatter' => 'kLEFTFormatter', 'options' => Array(-1 => 'root', -2 => 'Guest'),'left_sql'=>'SELECT %s FROM '.TABLE_PREFIX.'PortalUser WHERE `%s` = \'%s\'', 'left_key_field' => 'PortalUserId', 'left_title_field' => 'Login', 'not_null' => 1,'default' => 0), + 'ResourceId' => Array('type' => 'int', 'default' => null), + 'ParentPath' => Array('type' => 'string', 'default' => null), + 'NamedParentPath' => Array('type' => 'string', 'default' => null), + 'MetaDescription' => Array('type' => 'string', 'default' => null), + 'HotItem' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (2 => 'la_Auto', 1 => 'la_Always', 0 => 'la_Never'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 2), + 'NewItem' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (2 => 'la_Auto', 1 => 'la_Always', 0 => 'la_Never'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 2), + 'PopItem' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (2 => 'la_Auto', 1 => 'la_Always', 0 => 'la_Never'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 2), + 'Modified' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => 1,'default' => '#NOW#'), + 'ModifiedById' => Array('type' => 'int', 'formatter' => 'kLEFTFormatter', 'options' => Array(-1 => 'root', -2 => 'Guest'),'left_sql'=>'SELECT %s FROM '.TABLE_PREFIX.'PortalUser WHERE `%s` = \'%s\'', 'left_key_field' => 'PortalUserId', 'left_title_field' => 'Login', 'not_null' => 1,'default' => 0), + 'CachedTemplate' => Array('type' => 'string', 'not_null' => 1, 'default' => ''), + + + // fields from Pages + 'Template' => Array('type' => 'string', 'formatter' => 'kOptionsFormatter', + 'options_sql' => ' SELECT CONCAT(tf.Description, " (", TRIM(TRAILING ".tpl" FROM FileName), ")") AS Title, + CONCAT(FilePath, "/", TRIM(TRAILING ".tpl" FROM FileName)) AS Value + FROM '.TABLE_PREFIX.'ThemeFiles AS tf LEFT JOIN '.TABLE_PREFIX.'Theme AS t ON t.ThemeId = tf.ThemeId WHERE t.Enabled = 1 AND FilePath = "/designs"', + 'option_key_field' => 'Value', 'option_title_field' => 'Title', 'default' => null/*, 'required' => 1*/), + 'Title' => Array('type' => 'string', 'formatter' => 'kMultiLanguage', 'format'=>'no_default', 'default' => '', 'not_null'=>1), + 'MenuTitle' => Array('type' => 'string', 'formatter' => 'kMultiLanguage', 'format'=>'no_default', 'not_null' => 1, 'default' => ''), + 'MetaTitle' => Array('type' => 'string', 'default' => null), + 'IndexTools' => Array('type' => 'string','default' => null), + 'IsIndex' => + Array( + 'type' => 'int','not_null' => 1, 'default' => 0, + 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_Regular', 1 => 'la_CategoryIndex', 2=>'la_Container'), 'use_phrases' => 1, + ), + 'IsMenu' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Show', 0 => 'la_Hide'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 1), + 'IsSystem' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_System', 0 => 'la_Regular'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), + 'FormId' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', + 'options' => array('' => ''), + 'options_sql' => 'SELECT Title, FormId FROM '.TABLE_PREFIX.'Forms ORDER BY Title', + 'option_key_field' => 'FormId', 'option_title_field' => 'Title', 'default' => 0), + 'FormSubmittedTemplate' => Array('type' => 'string', 'default' => null), + 'Translated' => Array ('type' => 'int', 'formatter' => 'kMultiLanguage', 'not_null' => 1, 'default' => 0, 'db_type' => 'tinyint', 'index_type' => 'int'), + 'FriendlyURL' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), + 'ThemeId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), + ), + + 'VirtualFields' => Array( + 'CurrentSort' => Array('type' => 'string', 'default' => ''), + 'IsNew' => Array('type' => 'int', 'default' => 0), + 'OldPriority' => Array('type' => 'int', 'default' => 0), + ), + + 'Grids' => Array( + 'Default' => Array( + 'Icons' => Array(1 => 'icon16_folder.gif', 0 => 'icon16_folder-red.gif'), + 'Fields' => Array( + 'CategoryId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'filter_width' => '20' ), + 'Name' => Array( 'title'=>'la_col_PageTitle', 'data_block' => 'page_browse_td', 'filter_block' => 'grid_like_filter'), + 'Modified_formatted' => Array( 'title'=>'la_col_Modified', 'sort_field' => 'Modified', 'filter_block' => 'grid_date_range_filter' ), + 'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter' ), + 'IsMenu' => Array( 'title'=>'la_col_Visible', 'filter_block' => 'grid_options_filter' ), + 'Path' => Array( 'title'=>'la_col_Path', 'data_block' => 'page_entercat_td', 'filter_block' => 'grid_like_filter' ), + 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'use_phrases'=>1 ), + ), + ), + + 'AllPages' => Array( + 'Icons' => Array(1 => 'icon16_folder.gif', 0 => 'icon16_folder-red.gif'), + 'Fields' => Array( + 'CategoryId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'filter_width' => '20' ), + 'Name' => Array( 'title'=>'la_col_PageTitle', 'data_block' => 'page_browse_td', 'filter_block' => 'grid_like_filter' ), + 'Path' => Array( 'title'=>'la_col_Path', 'data_block'=>'page_path_td', 'sort_field' => 'CachedNavbar', 'filter_block' => 'grid_like_filter' ), + 'Modified_formatted' => Array( 'title'=>'la_col_Modified', 'sort_field' => 'Modified', 'filter_block' => 'grid_date_range_filter' ), + 'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'hidden' => true ), + 'IsMenu' => Array( 'title'=>'la_col_Visible', 'filter_block' => 'grid_options_filter' ), + 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'use_phrases'=>1 ), + ), + ), + ), + + 'ConfigMapping' => Array( + 'PerPage' => 'Perpage_Category', + 'ShortListPerPage' => 'Perpage_Category_Short', + 'DefaultSorting1Field' => 'Category_Sortfield', + 'DefaultSorting2Field' => 'Category_Sortfield2', + 'DefaultSorting1Dir' => 'Category_Sortorder', + 'DefaultSorting2Dir' => 'Category_Sortorder2', + ), + ); \ No newline at end of file Index: branches/RC/core/install/upgrades.php =================================================================== diff -u -N -r11599 -r11610 --- branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11599) +++ branches/RC/core/install/upgrades.php (.../upgrades.php) (revision 11610) @@ -686,17 +686,84 @@ } /** + * Returns module root category + * + * @param string $module_name + * @return int + */ + function _getRootCategory($module_name) + { + // don't cache anything here (like in static variables), because database value is changed on the fly !!! + $sql = 'SELECT RootCat + FROM ' . TABLE_PREFIX . 'Modules + WHERE LOWER(Name) = ' . $this->Conn->qstr( strtolower($module_name) ); + $root_category = $this->Conn->GetOne($sql); + + // put to cache too, because CategoriesEventHandler::_prepareAutoPage uses kApplication::findModule + $this->Application->ModuleInfo[$module_name]['Name'] = $module_name; + $this->Application->ModuleInfo[$module_name]['RootCat'] = $root_category; + + return $root_category; + } + + /** * Move all categories (except "Content") from "Home" to "Content" category and hide them from menu * */ function _restructureCatalog() { - $root_category = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat'); + $root_category = $this->_getRootCategory('Core'); - $sql = 'UPDATE ' . TABLE_PREFIX . 'Category - SET IsMenu = 0, ParentId = ' . $root_category . ' + $sql = 'SELECT CategoryId + FROM ' . TABLE_PREFIX . 'Category WHERE ParentId = 0 AND CategoryId <> ' . $root_category; - $this->Conn->Query($sql); + $top_categories = $this->Conn->GetCol($sql); + + if ($top_categories) { + // hide all categories located outside "Content" category from menu + $sql = 'UPDATE ' . TABLE_PREFIX . 'Category + SET IsMenu = 0 + WHERE (ParentPath LIKE "|' . implode('|%") OR (ParentPath LIKE "|', $top_categories) . '|%")'; + $this->Conn->Query($sql); + + // move all top level categories under "Content" category and make them visible in menu + $sql = 'UPDATE ' . TABLE_PREFIX . 'Category + SET IsMenu = 1, ParentId = ' . $root_category . ' + WHERE ParentId = 0 AND CategoryId <> ' . $root_category; + $this->Conn->Query($sql); + } + + // make sure, that all categories have valid value for Priority field + + $priority_helper =& $this->Application->recallObject('PriorityHelper'); + /* @var $priority_helper kPriorityHelper */ + + $event = new kEvent('c:OnListBuild'); + + // update all categories, because they are all under "Content" category now + $sql = 'SELECT CategoryId + FROM ' . TABLE_PREFIX . 'Category'; + $categories = $this->Conn->GetCol($sql); + + foreach ($categories as $category_id) { + $priority_helper->recalculatePriorities($event, 'ParentId = ' . $category_id); + } + + // create initial theme structure in Category table + $this->_toolkit->rebuildThemes(); + + // make sure, that all system templates have ThemeId set (only possible during platform project upgrade) + $sql = 'SELECT ThemeId + FROM ' . TABLE_PREFIX . 'Theme + WHERE PrimaryTheme = 1'; + $primary_theme_id = $this->Conn->GetOne($sql); + + if ($primary_theme_id) { + $sql = 'UPDATE ' . TABLE_PREFIX . 'Category + SET ThemeId = ' . $primary_theme_id . ' + WHERE IsSystem = 1 AND ThemeId = 0'; + $this->Conn->Query($sql); + } } /** @@ -742,6 +809,56 @@ function _createProjCMSTables() { + // 0. make sure, that Content category exists + $root_category = $this->_getRootCategory('Proj-CMS'); + if ($root_category) { + // proj-cms module found -> remove it + $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Modules + WHERE Name = "Proj-CMS"'; + $this->Conn->Query($sql); + unset($this->Application->ModuleInfo['Proj-CMS']); + + // unhide all structure categories + $sql = 'UPDATE ' . TABLE_PREFIX . 'Category + SET Status = 1 + WHERE (Status = 4) AND (CategoryId <> ' . $root_category . ')'; + $this->Conn->Query($sql); + } else { + $root_category = $this->_getRootCategory('In-Edit'); + if ($root_category) { + // in-edit module found -> remove it + $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Modules + WHERE Name = "In-Edit"'; + $this->Conn->Query($sql); + unset($this->Application->ModuleInfo['In-Edit']); + + // hide root category of In-Edit and set it's fields + $fields_hash = Array ( + 'l1_Name' => 'Content', 'Filename' => 'Content', 'AutomaticFilename' => 0, + 'l1_Description' => 'Content', 'Status' => 4, + ); + + $this->Conn->doUpdate($fields_hash, TABLE_PREFIX . 'Category', 'CategoryId = ' . $root_category); + } + } + + if (!$root_category) { + // create "Content" category when Proj-CMS/In-Edit module was not installed before + // use direct sql here, because category table structure doesn't yet match table structure in object + + $fields_hash = Array ( + 'l1_Name' => 'Content', 'Filename' => 'Content', 'AutomaticFilename' => 0, + 'l1_Description' => 'Content', 'Status' => 4, + ); + + $this->Conn->doInsert($fields_hash, TABLE_PREFIX . 'Category'); + + $root_category = $this->Conn->getInsertID(); + } + + $this->_toolkit->deleteCache(); + $this->_toolkit->SetModuleRootCategory('Core', $root_category); + // 1. process "Category" table $structure = $this->Conn->Query('DESCRIBE ' . TABLE_PREFIX . 'Category', 'Field'); if (!array_key_exists('Template', $structure)) { @@ -855,7 +972,7 @@ $sql = "INSERT INTO " . TABLE_PREFIX . "ConfigurationAdmin VALUES ('cms_DefaultDesign', 'la_Text_General', 'la_prompt_DefaultDesignTemplate', 'text', NULL, NULL, 10.29, 0, 0)"; $this->Conn->Query($sql); - $sql = "INSERT INTO " . TABLE_PREFIX . "ConfigurationValues VALUES (DEFAULT, 'cms_DefaultDesign', '/platform/designs/default_design.des', 'In-Portal', 'in-portal:configure_categories')"; + $sql = "INSERT INTO " . TABLE_PREFIX . "ConfigurationValues VALUES (DEFAULT, 'cms_DefaultDesign', '/platform/designs/general', 'In-Portal', 'in-portal:configure_categories')"; $this->Conn->Query($sql); } } Index: branches/RC/core/admin_templates/config/email_events.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/config/email_events.tpl (revision 0) +++ branches/RC/core/admin_templates/config/email_events.tpl (revision 11610) @@ -0,0 +1,40 @@ + + + + + + + + + + + +
+ +
+ + + + \ No newline at end of file