Index: branches/RC/core/units/general/cat_tag_processor.php =================================================================== diff -u -N -r10274 -r10455 --- branches/RC/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 10274) +++ branches/RC/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 10455) @@ -143,6 +143,12 @@ // pass params to block with tab content $params['name'] = $params['render_as']; $params['prefix'] = trim($this->Prefix.'.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + + $prefix_append = $this->Application->GetVar('prefix_append'); + if ($prefix_append) { + $params['prefix'] .= $prefix_append; + } + $params['cat_prefix'] = trim('c.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); $params['tab_mode'] = $tab_params['mode']; $params['tab_dependant'] = $tab_params['dependant']; Index: branches/RC/core/units/categories/categories_config.php =================================================================== diff -u -N -r9382 -r10455 --- branches/RC/core/units/categories/categories_config.php (.../categories_config.php) (revision 9382) +++ branches/RC/core/units/categories/categories_config.php (.../categories_config.php) (revision 10455) @@ -76,6 +76,10 @@ 'advanced_view' => Array('prefixes' => Array('c_List'), 'format' => "!la_title_AdvancedView!"), + 'reviews' => Array('prefixes' => Array(), 'format' => "!la_title_Reviews!"), + + 'review_edit' => Array('prefixes' => Array(), 'format' => "!la_title_Editing_Review!"), + 'categories_edit' => Array('prefixes' => Array('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_General!"), 'categories_properties' => Array('prefixes' => Array('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_Properties!"), 'categories_relations' => Array('prefixes' => Array('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_Relations!"), Index: branches/RC/core/units/sections/sections_config.php =================================================================== diff -u -N -r10211 -r10455 --- branches/RC/core/units/sections/sections_config.php (.../sections_config.php) (revision 10211) +++ branches/RC/core/units/sections/sections_config.php (.../sections_config.php) (revision 10455) @@ -1,342 +1,342 @@ 'inportal-sections', - 'EventHandlerClass' => Array('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'), - 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'), + $config = Array ( + 'Prefix' => 'inportal-sections', + 'EventHandlerClass' => Array ('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'), + 'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'), -// 'SectionPrefix' => 'u', - 'Sections' => Array( - 'in-portal:root' => Array( - 'parent' => null, - 'icon' => 'in-portal:site', - 'label' => $this->Application->ConfigValue('Site_Name'), - 'url' => Array('t' => 'sections_list', 'pass' => 'm', 'pass_section' => true, 'no_amp' => 1), - 'permissions' => Array('advanced:admin_login', 'advanced:front_login'), - 'priority' => 0, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), +// 'SectionPrefix' => 'u', + 'Sections' => Array ( + 'in-portal:root' => Array ( + 'parent' => null, + 'icon' => 'in-portal:site', + 'label' => $this->Application->ConfigValue('Site_Name'), + 'url' => Array ('t' => 'sections_list', 'pass' => 'm', 'pass_section' => true, 'no_amp' => 1), + 'permissions' => Array ('advanced:admin_login', 'advanced:front_login'), + 'priority' => 0, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:site' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:struct', - 'label' => 'la_tab_Site_Structure', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 1, - 'type' => stTREE, - 'SectionPrefix' => 'c', - ), + 'in-portal:site' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:struct', + 'label' => 'la_tab_Site_Structure', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 1, + 'type' => stTREE, + 'SectionPrefix' => 'c', + ), - 'in-portal:browse' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:catalog', - 'label' => 'la_tab_Browse', - 'url' => Array('t' => 'in-portal/catalog', 'pass' => 'm'), - 'late_load' => Array('t' => 'in-portal/xml/tree_categories', 'pass' => 'm', 'm_cat_id' => 0), - 'onclick' => 'checkCatalog(0)', - 'permissions' => Array('view'), - 'priority' => 0.1, - 'type' => stTREE, - ), - 'in-portal:advanced_view' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:advanced_view', - 'label' => 'la_tab_AdvancedView', - 'url' => Array('t' => 'in-portal/advanced_view', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 0.2, - 'type' => stTREE, - ), + 'in-portal:browse' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:catalog', + 'label' => 'la_tab_Browse', + 'url' => Array ('t' => 'in-portal/catalog', 'pass' => 'm'), + 'late_load' => Array ('t' => 'in-portal/xml/tree_categories', 'pass' => 'm', 'm_cat_id' => 0), + 'onclick' => 'checkCatalog(0)', + 'permissions' => Array ('view'), + 'priority' => 1, + 'type' => stTREE, + ), + 'in-portal:advanced_view' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:advanced_view', + 'label' => 'la_tab_AdvancedView', + 'url' => Array ('t' => 'in-portal/advanced_view', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:reviews' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:reviews', - 'label' => 'la_tab_Reviews', - 'url' => Array('index_file' => 'reviews.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:reviews' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:reviews', + 'label' => 'la_tab_Reviews', + 'url' => Array ('t' => 'in-portal/reviews', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:configure_categories' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:cat_settings', - 'label' => 'la_tab_Settings', - 'url' => Array('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:configure_categories' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:cat_settings', + 'label' => 'la_tab_Settings', + 'url' => Array ('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:configuration_search' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:settings_search', - 'label' => 'la_tab_ConfigSearch', - 'url' => Array('t' => 'in-portal/config/config_search', 'module_key' => 'category', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:configuration_search' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:settings_search', + 'label' => 'la_tab_ConfigSearch', + 'url' => Array ('t' => 'in-portal/config/config_search', 'module_key' => 'category', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 5, + 'type' => stTREE, + ), - 'in-portal:configuration_email' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:settings_email', - 'label' => 'la_tab_ConfigE-mail', - 'url' => Array('t' => 'in-portal/config/config_email', 'module' => 'In-Portal:Category', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 6, - 'type' => stTREE, - ), + 'in-portal:configuration_email' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:settings_email', + 'label' => 'la_tab_ConfigE-mail', + 'url' => Array ('t' => 'in-portal/config/config_email', 'module' => 'In-Portal:Category', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 6, + 'type' => stTREE, + ), - 'in-portal:configuration_custom' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:settings_custom', - 'label' => 'la_tab_ConfigCustom', - 'url' => Array('t' => 'custom_fields/custom_fields_list', 'cf_type' => 1, 'pass_section' => true, 'pass' => 'm,cf'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 7, - 'type' => stTREE, - ), + 'in-portal:configuration_custom' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:settings_custom', + 'label' => 'la_tab_ConfigCustom', + 'url' => Array ('t' => 'custom_fields/custom_fields_list', 'cf_type' => 1, 'pass_section' => true, 'pass' => 'm,cf'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 7, + 'type' => stTREE, + ), - 'in-portal:users' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:community', - 'label' => 'la_tab_Community', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 2, - 'type' => stTREE, - 'SectionPrefix' => 'u', - ), + 'in-portal:users' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:community', + 'label' => 'la_tab_Community', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 2, + 'type' => stTREE, + 'SectionPrefix' => 'u', + ), - 'in-portal:user_list' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:users', - 'label' => 'la_tab_User_List', - 'url' => Array('t' => 'in-portal/users/users_list', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email', /*'advanced:add_favorite', 'advanced:remove_favorite',*/), - 'priority' => 1, - 'type' => stTREE, - ), + 'in-portal:user_list' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:users', + 'label' => 'la_tab_User_List', + 'url' => Array ('t' => 'in-portal/users/users_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email', /*'advanced:add_favorite', 'advanced:remove_favorite',*/), + 'priority' => 1, + 'type' => stTREE, + ), - 'in-portal:user_groups' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:usergroups', - 'label' => 'la_tab_User_Groups', - 'url' => Array('t' => 'in-portal/groups/groups_list', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:send_email', 'advanced:manage_permissions'), - 'priority' => 2, - 'type' => stTREE, - ), + 'in-portal:user_groups' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:usergroups', + 'label' => 'la_tab_User_Groups', + 'url' => Array ('t' => 'in-portal/groups/groups_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete', 'advanced:send_email', 'advanced:manage_permissions'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:configure_users' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:users_settings', - 'label' => 'la_tab_ConfigSettings', - 'url' => Array('t' => 'config/config_universal', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:configure_users' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:users_settings', + 'label' => 'la_tab_ConfigSettings', + 'url' => Array ('t' => 'config/config_universal', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:user_email' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:settings_email', - 'label' => 'la_tab_ConfigE-mail', - 'url' => Array('t' => 'config/config_email', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:user_email' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:settings_email', + 'label' => 'la_tab_ConfigE-mail', + 'url' => Array ('t' => 'config/config_email', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:user_custom' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:settings_custom', - 'label' => 'la_tab_ConfigCustom', - 'url' => Array('t' => 'custom_fields/custom_fields_list', 'cf_type' => 6, 'pass_section' => true, 'pass' => 'm,cf'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:user_custom' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:settings_custom', + 'label' => 'la_tab_ConfigCustom', + 'url' => Array ('t' => 'custom_fields/custom_fields_list', 'cf_type' => 6, 'pass_section' => true, 'pass' => 'm,cf'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 5, + 'type' => stTREE, + ), - 'in-portal:user_banlist' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:banlist', - 'label' => 'la_tab_BanList', - 'url' => Array('index_file' => 'config/edit_banlist.php', 'DataType' => 6, 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 6, - 'type' => stTREE, - ), + 'in-portal:user_banlist' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:banlist', + 'label' => 'la_tab_BanList', + 'url' => Array ('index_file' => 'config/edit_banlist.php', 'DataType' => 6, 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 6, + 'type' => stTREE, + ), - // "Help" section - 'in-portal:help' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:help', - 'label' => 'la_tab_Help', - 'url' => Array('index_file' => 'help/manual.pdf', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 7, - 'type' => stTREE, - ), + // "Help" section + 'in-portal:help' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:help', + 'label' => 'la_tab_Help', + 'url' => Array ('index_file' => 'help/manual.pdf', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 7, + 'type' => stTREE, + ), - // "Summary & Logs" section - 'in-portal:reports' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:summary_logs', - 'label' => 'la_tab_Reports', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 4, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), + // "Summary & Logs" section + 'in-portal:reports' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:summary_logs', + 'label' => 'la_tab_Reports', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 4, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:log_summary' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:summary', - 'label' => 'la_tab_Summary', - 'url' => Array('index_file' => 'logs/summary.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 1, - 'type' => stTREE, - ), + 'in-portal:log_summary' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:summary', + 'label' => 'la_tab_Summary', + 'url' => Array ('index_file' => 'logs/summary.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 1, + 'type' => stTREE, + ), - 'in-portal:searchlog' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:search_log', - 'label' => 'la_tab_SearchLog', - 'url' => Array('index_file' => 'logs/searchlog.php', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 2, - 'type' => stTREE, - ), + 'in-portal:searchlog' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:search_log', + 'label' => 'la_tab_SearchLog', + 'url' => Array ('index_file' => 'logs/searchlog.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:sessionlog' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:sessions_log', - 'label' => 'la_tab_SessionLog', - 'url' => Array('index_file' => 'logs/session_list.php', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:sessionlog' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:sessions_log', + 'label' => 'la_tab_SessionLog', + 'url' => Array ('index_file' => 'logs/session_list.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:emaillog' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:email_log', - 'label' => 'la_tab_EmailLog', - 'url' => Array('index_file' => 'logs/email_log.php', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:emaillog' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:email_log', + 'label' => 'la_tab_EmailLog', + 'url' => Array ('index_file' => 'logs/email_log.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:visits' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:visits', - 'label' => 'la_tab_Visits', - 'url' => Array('t' => 'in-portal/visits/visits_list', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:visits' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:visits', + 'label' => 'la_tab_Visits', + 'url' => Array ('t' => 'in-portal/visits/visits_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 5, + 'type' => stTREE, + ), - // "Configuration" section - 'in-portal:system' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:conf', - 'label' => 'la_tab_Sys_Config', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 5, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), + // "Configuration" section + 'in-portal:system' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:conf', + 'label' => 'la_tab_Sys_Config', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 5, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:configure_general' => Array( - 'parent' => 'in-portal:system', - 'icon' => 'in-portal:conf_general', - 'label' => 'la_tab_General', - 'url' => Array('t' => 'config/config_universal', 'pass_section' => true, 'module' => 'In-Portal', 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 1, - 'type' => stTREE, - ), + 'in-portal:configure_general' => Array ( + 'parent' => 'in-portal:system', + 'icon' => 'in-portal:conf_general', + 'label' => 'la_tab_General', + 'url' => Array ('t' => 'config/config_universal', 'pass_section' => true, 'module' => 'In-Portal', 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 1, + 'type' => stTREE, + ), - 'in-portal:configure_themes' => Array( - 'parent' => 'in-portal:system', - 'icon' => 'in-portal:conf_themes', - 'label' => 'la_tab_Themes', - 'url' => Array('index_file' => 'config/config_theme.php', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:configure_themes' => Array ( + 'parent' => 'in-portal:system', + 'icon' => 'in-portal:conf_themes', + 'label' => 'la_tab_Themes', + 'url' => Array ('index_file' => 'config/config_theme.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 3, + 'type' => stTREE, + ), - // "Tools" section - 'in-portal:tools' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:tools', - 'label' => 'la_tab_Tools', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 6, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), + // "Tools" section + 'in-portal:tools' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:tools', + 'label' => 'la_tab_Tools', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 6, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:backup' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_backup', - 'label' => 'la_tab_Backup', - 'url' => Array('index_file' => 'backup/backup1.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 2, - 'type' => stTREE, - ), + 'in-portal:backup' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_backup', + 'label' => 'la_tab_Backup', + 'url' => Array ('index_file' => 'backup/backup1.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:restore' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_restore', - 'label' => 'la_tab_Restore', - 'url' => Array('index_file' => 'backup/restore1.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:restore' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_restore', + 'label' => 'la_tab_Restore', + 'url' => Array ('index_file' => 'backup/restore1.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:main_import' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_import', - 'label' => 'la_tab_ImportData', - 'url' => Array('index_file' => 'import/step1.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:main_import' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_import', + 'label' => 'la_tab_ImportData', + 'url' => Array ('index_file' => 'import/step1.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:sql_query' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_import', - 'label' => 'la_tab_QueryDB', - 'url' => Array('index_file' => 'tools/sql_query.php', 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:sql_query' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_import', + 'label' => 'la_tab_QueryDB', + 'url' => Array ('index_file' => 'tools/sql_query.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 5, + 'type' => stTREE, + ), - 'in-portal:server_info' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:server_info', - 'label' => 'la_tab_ServerInfo', - 'url' => Array('index_file' => 'tools/server_info.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 6, - 'type' => stTREE, - ), - ), + 'in-portal:server_info' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:server_info', + 'label' => 'la_tab_ServerInfo', + 'url' => Array ('index_file' => 'tools/server_info.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 6, + 'type' => stTREE, + ), + ), ); \ No newline at end of file Index: branches/RC/kernel/units/sections/sections_config.php =================================================================== diff -u -N -r10211 -r10455 --- branches/RC/kernel/units/sections/sections_config.php (.../sections_config.php) (revision 10211) +++ branches/RC/kernel/units/sections/sections_config.php (.../sections_config.php) (revision 10455) @@ -1,342 +1,342 @@ 'inportal-sections', - 'EventHandlerClass' => Array('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'), - 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'), + $config = Array ( + 'Prefix' => 'inportal-sections', + 'EventHandlerClass' => Array ('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'), + 'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'), -// 'SectionPrefix' => 'u', - 'Sections' => Array( - 'in-portal:root' => Array( - 'parent' => null, - 'icon' => 'in-portal:site', - 'label' => $this->Application->ConfigValue('Site_Name'), - 'url' => Array('t' => 'sections_list', 'pass' => 'm', 'pass_section' => true, 'no_amp' => 1), - 'permissions' => Array('advanced:admin_login', 'advanced:front_login'), - 'priority' => 0, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), +// 'SectionPrefix' => 'u', + 'Sections' => Array ( + 'in-portal:root' => Array ( + 'parent' => null, + 'icon' => 'in-portal:site', + 'label' => $this->Application->ConfigValue('Site_Name'), + 'url' => Array ('t' => 'sections_list', 'pass' => 'm', 'pass_section' => true, 'no_amp' => 1), + 'permissions' => Array ('advanced:admin_login', 'advanced:front_login'), + 'priority' => 0, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:site' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:struct', - 'label' => 'la_tab_Site_Structure', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 1, - 'type' => stTREE, - 'SectionPrefix' => 'c', - ), + 'in-portal:site' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:struct', + 'label' => 'la_tab_Site_Structure', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 1, + 'type' => stTREE, + 'SectionPrefix' => 'c', + ), - 'in-portal:browse' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:catalog', - 'label' => 'la_tab_Browse', - 'url' => Array('t' => 'in-portal/catalog', 'pass' => 'm'), - 'late_load' => Array('t' => 'in-portal/xml/tree_categories', 'pass' => 'm', 'm_cat_id' => 0), - 'onclick' => 'checkCatalog(0)', - 'permissions' => Array('view'), - 'priority' => 0.1, - 'type' => stTREE, - ), - 'in-portal:advanced_view' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:advanced_view', - 'label' => 'la_tab_AdvancedView', - 'url' => Array('t' => 'in-portal/advanced_view', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 0.2, - 'type' => stTREE, - ), + 'in-portal:browse' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:catalog', + 'label' => 'la_tab_Browse', + 'url' => Array ('t' => 'in-portal/catalog', 'pass' => 'm'), + 'late_load' => Array ('t' => 'in-portal/xml/tree_categories', 'pass' => 'm', 'm_cat_id' => 0), + 'onclick' => 'checkCatalog(0)', + 'permissions' => Array ('view'), + 'priority' => 1, + 'type' => stTREE, + ), + 'in-portal:advanced_view' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:advanced_view', + 'label' => 'la_tab_AdvancedView', + 'url' => Array ('t' => 'in-portal/advanced_view', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:reviews' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:reviews', - 'label' => 'la_tab_Reviews', - 'url' => Array('index_file' => 'reviews.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:reviews' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:reviews', + 'label' => 'la_tab_Reviews', + 'url' => Array ('t' => 'in-portal/reviews', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:configure_categories' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:cat_settings', - 'label' => 'la_tab_Settings', - 'url' => Array('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:configure_categories' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:cat_settings', + 'label' => 'la_tab_Settings', + 'url' => Array ('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:configuration_search' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:settings_search', - 'label' => 'la_tab_ConfigSearch', - 'url' => Array('t' => 'in-portal/config/config_search', 'module_key' => 'category', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:configuration_search' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:settings_search', + 'label' => 'la_tab_ConfigSearch', + 'url' => Array ('t' => 'in-portal/config/config_search', 'module_key' => 'category', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 5, + 'type' => stTREE, + ), - 'in-portal:configuration_email' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:settings_email', - 'label' => 'la_tab_ConfigE-mail', - 'url' => Array('t' => 'in-portal/config/config_email', 'module' => 'In-Portal:Category', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 6, - 'type' => stTREE, - ), + 'in-portal:configuration_email' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:settings_email', + 'label' => 'la_tab_ConfigE-mail', + 'url' => Array ('t' => 'in-portal/config/config_email', 'module' => 'In-Portal:Category', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 6, + 'type' => stTREE, + ), - 'in-portal:configuration_custom' => Array( - 'parent' => 'in-portal:site', - 'icon' => 'in-portal:settings_custom', - 'label' => 'la_tab_ConfigCustom', - 'url' => Array('t' => 'custom_fields/custom_fields_list', 'cf_type' => 1, 'pass_section' => true, 'pass' => 'm,cf'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 7, - 'type' => stTREE, - ), + 'in-portal:configuration_custom' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'in-portal:settings_custom', + 'label' => 'la_tab_ConfigCustom', + 'url' => Array ('t' => 'custom_fields/custom_fields_list', 'cf_type' => 1, 'pass_section' => true, 'pass' => 'm,cf'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 7, + 'type' => stTREE, + ), - 'in-portal:users' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:community', - 'label' => 'la_tab_Community', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 2, - 'type' => stTREE, - 'SectionPrefix' => 'u', - ), + 'in-portal:users' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:community', + 'label' => 'la_tab_Community', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 2, + 'type' => stTREE, + 'SectionPrefix' => 'u', + ), - 'in-portal:user_list' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:users', - 'label' => 'la_tab_User_List', - 'url' => Array('t' => 'in-portal/users/users_list', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email', /*'advanced:add_favorite', 'advanced:remove_favorite',*/), - 'priority' => 1, - 'type' => stTREE, - ), + 'in-portal:user_list' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:users', + 'label' => 'la_tab_User_List', + 'url' => Array ('t' => 'in-portal/users/users_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email', /*'advanced:add_favorite', 'advanced:remove_favorite',*/), + 'priority' => 1, + 'type' => stTREE, + ), - 'in-portal:user_groups' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:usergroups', - 'label' => 'la_tab_User_Groups', - 'url' => Array('t' => 'in-portal/groups/groups_list', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:send_email', 'advanced:manage_permissions'), - 'priority' => 2, - 'type' => stTREE, - ), + 'in-portal:user_groups' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:usergroups', + 'label' => 'la_tab_User_Groups', + 'url' => Array ('t' => 'in-portal/groups/groups_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete', 'advanced:send_email', 'advanced:manage_permissions'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:configure_users' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:users_settings', - 'label' => 'la_tab_ConfigSettings', - 'url' => Array('t' => 'config/config_universal', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:configure_users' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:users_settings', + 'label' => 'la_tab_ConfigSettings', + 'url' => Array ('t' => 'config/config_universal', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:user_email' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:settings_email', - 'label' => 'la_tab_ConfigE-mail', - 'url' => Array('t' => 'config/config_email', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:user_email' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:settings_email', + 'label' => 'la_tab_ConfigE-mail', + 'url' => Array ('t' => 'config/config_email', 'module' => 'In-Portal:Users', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:user_custom' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:settings_custom', - 'label' => 'la_tab_ConfigCustom', - 'url' => Array('t' => 'custom_fields/custom_fields_list', 'cf_type' => 6, 'pass_section' => true, 'pass' => 'm,cf'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:user_custom' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:settings_custom', + 'label' => 'la_tab_ConfigCustom', + 'url' => Array ('t' => 'custom_fields/custom_fields_list', 'cf_type' => 6, 'pass_section' => true, 'pass' => 'm,cf'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 5, + 'type' => stTREE, + ), - 'in-portal:user_banlist' => Array( - 'parent' => 'in-portal:users', - 'icon' => 'in-portal:banlist', - 'label' => 'la_tab_BanList', - 'url' => Array('index_file' => 'config/edit_banlist.php', 'DataType' => 6, 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 6, - 'type' => stTREE, - ), + 'in-portal:user_banlist' => Array ( + 'parent' => 'in-portal:users', + 'icon' => 'in-portal:banlist', + 'label' => 'la_tab_BanList', + 'url' => Array ('index_file' => 'config/edit_banlist.php', 'DataType' => 6, 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 6, + 'type' => stTREE, + ), - // "Help" section - 'in-portal:help' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:help', - 'label' => 'la_tab_Help', - 'url' => Array('index_file' => 'help/manual.pdf', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 7, - 'type' => stTREE, - ), + // "Help" section + 'in-portal:help' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:help', + 'label' => 'la_tab_Help', + 'url' => Array ('index_file' => 'help/manual.pdf', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 7, + 'type' => stTREE, + ), - // "Summary & Logs" section - 'in-portal:reports' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:summary_logs', - 'label' => 'la_tab_Reports', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 4, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), + // "Summary & Logs" section + 'in-portal:reports' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:summary_logs', + 'label' => 'la_tab_Reports', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 4, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:log_summary' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:summary', - 'label' => 'la_tab_Summary', - 'url' => Array('index_file' => 'logs/summary.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 1, - 'type' => stTREE, - ), + 'in-portal:log_summary' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:summary', + 'label' => 'la_tab_Summary', + 'url' => Array ('index_file' => 'logs/summary.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 1, + 'type' => stTREE, + ), - 'in-portal:searchlog' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:search_log', - 'label' => 'la_tab_SearchLog', - 'url' => Array('index_file' => 'logs/searchlog.php', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 2, - 'type' => stTREE, - ), + 'in-portal:searchlog' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:search_log', + 'label' => 'la_tab_SearchLog', + 'url' => Array ('index_file' => 'logs/searchlog.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:sessionlog' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:sessions_log', - 'label' => 'la_tab_SessionLog', - 'url' => Array('index_file' => 'logs/session_list.php', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:sessionlog' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:sessions_log', + 'label' => 'la_tab_SessionLog', + 'url' => Array ('index_file' => 'logs/session_list.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:emaillog' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:email_log', - 'label' => 'la_tab_EmailLog', - 'url' => Array('index_file' => 'logs/email_log.php', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:emaillog' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:email_log', + 'label' => 'la_tab_EmailLog', + 'url' => Array ('index_file' => 'logs/email_log.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:visits' => Array( - 'parent' => 'in-portal:reports', - 'icon' => 'in-portal:visits', - 'label' => 'la_tab_Visits', - 'url' => Array('t' => 'in-portal/visits/visits_list', 'pass' => 'm'), - 'permissions' => Array('view', 'delete'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:visits' => Array ( + 'parent' => 'in-portal:reports', + 'icon' => 'in-portal:visits', + 'label' => 'la_tab_Visits', + 'url' => Array ('t' => 'in-portal/visits/visits_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'delete'), + 'priority' => 5, + 'type' => stTREE, + ), - // "Configuration" section - 'in-portal:system' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:conf', - 'label' => 'la_tab_Sys_Config', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 5, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), + // "Configuration" section + 'in-portal:system' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:conf', + 'label' => 'la_tab_Sys_Config', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 5, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:configure_general' => Array( - 'parent' => 'in-portal:system', - 'icon' => 'in-portal:conf_general', - 'label' => 'la_tab_General', - 'url' => Array('t' => 'config/config_universal', 'pass_section' => true, 'module' => 'In-Portal', 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 1, - 'type' => stTREE, - ), + 'in-portal:configure_general' => Array ( + 'parent' => 'in-portal:system', + 'icon' => 'in-portal:conf_general', + 'label' => 'la_tab_General', + 'url' => Array ('t' => 'config/config_universal', 'pass_section' => true, 'module' => 'In-Portal', 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 1, + 'type' => stTREE, + ), - 'in-portal:configure_themes' => Array( - 'parent' => 'in-portal:system', - 'icon' => 'in-portal:conf_themes', - 'label' => 'la_tab_Themes', - 'url' => Array('index_file' => 'config/config_theme.php', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:configure_themes' => Array ( + 'parent' => 'in-portal:system', + 'icon' => 'in-portal:conf_themes', + 'label' => 'la_tab_Themes', + 'url' => Array ('index_file' => 'config/config_theme.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), + 'priority' => 3, + 'type' => stTREE, + ), - // "Tools" section - 'in-portal:tools' => Array( - 'parent' => 'in-portal:root', - 'icon' => 'in-portal:tools', - 'label' => 'la_tab_Tools', - 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 6, - 'type' => stTREE, - 'SectionPrefix' => 'adm', - ), + // "Tools" section + 'in-portal:tools' => Array ( + 'parent' => 'in-portal:root', + 'icon' => 'in-portal:tools', + 'label' => 'la_tab_Tools', + 'url' => Array ('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 6, + 'type' => stTREE, + 'SectionPrefix' => 'adm', + ), - 'in-portal:backup' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_backup', - 'label' => 'la_tab_Backup', - 'url' => Array('index_file' => 'backup/backup1.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 2, - 'type' => stTREE, - ), + 'in-portal:backup' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_backup', + 'label' => 'la_tab_Backup', + 'url' => Array ('index_file' => 'backup/backup1.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 2, + 'type' => stTREE, + ), - 'in-portal:restore' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_restore', - 'label' => 'la_tab_Restore', - 'url' => Array('index_file' => 'backup/restore1.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 3, - 'type' => stTREE, - ), + 'in-portal:restore' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_restore', + 'label' => 'la_tab_Restore', + 'url' => Array ('index_file' => 'backup/restore1.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 3, + 'type' => stTREE, + ), - 'in-portal:main_import' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_import', - 'label' => 'la_tab_ImportData', - 'url' => Array('index_file' => 'import/step1.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 4, - 'type' => stTREE, - ), + 'in-portal:main_import' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_import', + 'label' => 'la_tab_ImportData', + 'url' => Array ('index_file' => 'import/step1.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 4, + 'type' => stTREE, + ), - 'in-portal:sql_query' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:tool_import', - 'label' => 'la_tab_QueryDB', - 'url' => Array('index_file' => 'tools/sql_query.php', 'pass' => 'm'), - 'permissions' => Array('view', 'edit'), - 'priority' => 5, - 'type' => stTREE, - ), + 'in-portal:sql_query' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:tool_import', + 'label' => 'la_tab_QueryDB', + 'url' => Array ('index_file' => 'tools/sql_query.php', 'pass' => 'm'), + 'permissions' => Array ('view', 'edit'), + 'priority' => 5, + 'type' => stTREE, + ), - 'in-portal:server_info' => Array( - 'parent' => 'in-portal:tools', - 'icon' => 'in-portal:server_info', - 'label' => 'la_tab_ServerInfo', - 'url' => Array('index_file' => 'tools/server_info.php', 'pass' => 'm'), - 'permissions' => Array('view'), - 'priority' => 6, - 'type' => stTREE, - ), - ), + 'in-portal:server_info' => Array ( + 'parent' => 'in-portal:tools', + 'icon' => 'in-portal:server_info', + 'label' => 'la_tab_ServerInfo', + 'url' => Array ('index_file' => 'tools/server_info.php', 'pass' => 'm'), + 'permissions' => Array ('view'), + 'priority' => 6, + 'type' => stTREE, + ), + ), ); \ No newline at end of file Index: branches/RC/core/units/admin/admin_events_handler.php =================================================================== diff -u -N -r10334 -r10455 --- branches/RC/core/units/admin/admin_events_handler.php (.../admin_events_handler.php) (revision 10334) +++ branches/RC/core/units/admin/admin_events_handler.php (.../admin_events_handler.php) (revision 10455) @@ -212,9 +212,11 @@ $themes_helper->refreshThemes(); } - function OnSaveColumns(&$event) { + function OnSaveColumns(&$event) + { + $picker_helper =& $this->Application->recallObject('ColumnPickerHelper'); /* @var $picker_helper kColumnPickerHelper */ - $picker_helper =& $this->Application->RecallObject('ColumnPickerHelper'); + $picker_helper->SetGridName($this->Application->GetLinkedVar('grid_name')); $picked = trim($this->Application->GetVar('picked_str'), '|'); Index: branches/RC/core/units/reviews/reviews_config.php =================================================================== diff -u -N -r9373 -r10455 --- branches/RC/core/units/reviews/reviews_config.php (.../reviews_config.php) (revision 9373) +++ branches/RC/core/units/reviews/reviews_config.php (.../reviews_config.php) (revision 10455) @@ -125,12 +125,12 @@ LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = %1$s.CreatedById', 'products' => ' SELECT %1$s.* %2$s - FROM %1$s + FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Products pr ON pr.ResourceId = %1$s.ItemId LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = %1$s.CreatedById', 'product' => ' SELECT %1$s.* %2$s - FROM %1$s + FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Products pr ON pr.ResourceId = %1$s.ItemId LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = %1$s.CreatedById', ), @@ -161,13 +161,17 @@ 'VirtualFields' => Array ( 'ReviewedBy' => Array('type' => 'string', 'default' => ''), + + 'CatalogItemName' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), + 'CatalogItemId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), ), 'Grids' => Array ( 'Default' => Array ( 'Icons' => Array ('default'=>'icon16_custom.gif',1=>'icon16_review.gif',2=>'icon16_review_pending.gif',0=>'icon16_review_disabled.gif'), 'Fields' => Array ( - 'ReviewText' => Array( 'title'=>'la_col_ReviewText', 'data_block' => 'reviewtext_checkbox_td'), + 'ReviewId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td'), + 'ReviewText' => Array( 'title'=>'la_col_ReviewText',), 'ReviewedBy' => Array( 'title'=>'la_col_ReviewedBy' ), 'CreatedOn_formatted' => Array( 'title'=>'la_col_CreatedOn', 'sort_field' => 'CreatedOn' ), 'Status' => Array( 'title'=>'la_col_Status' ), @@ -178,10 +182,12 @@ 'ReviewsSection' => Array ( 'Icons' => Array ('default'=>'icon16_custom.gif',1=>'icon16_review.gif',2=>'icon16_review_pending.gif',0=>'icon16_review_disabled.gif'), 'Fields' => Array ( - 'ReviewText' => Array( 'title'=>'la_col_ReviewText', 'data_block' => 'grid_checkbox_namelink_td'), + 'ReviewId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td'), + 'ReviewText' => Array( 'title'=>'la_col_ReviewText', 'data_block' => 'grid_reviewtext_td'), 'ReviewedBy' => Array( 'title'=>'la_col_ReviewedBy' ), 'CreatedOn_formatted' => Array( 'title'=>'la_col_CreatedOn', 'sort_field' => 'CreatedOn' ), 'Status' => Array( 'title'=>'la_col_Status' ), + 'Rating' => Array( 'title'=>'la_col_Rating' ), ), ), ), Index: branches/RC/kernel/units/reviews/reviews_config.php =================================================================== diff -u -N -r9373 -r10455 --- branches/RC/kernel/units/reviews/reviews_config.php (.../reviews_config.php) (revision 9373) +++ branches/RC/kernel/units/reviews/reviews_config.php (.../reviews_config.php) (revision 10455) @@ -125,12 +125,12 @@ LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = %1$s.CreatedById', 'products' => ' SELECT %1$s.* %2$s - FROM %1$s + FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Products pr ON pr.ResourceId = %1$s.ItemId LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = %1$s.CreatedById', 'product' => ' SELECT %1$s.* %2$s - FROM %1$s + FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Products pr ON pr.ResourceId = %1$s.ItemId LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = %1$s.CreatedById', ), @@ -161,13 +161,17 @@ 'VirtualFields' => Array ( 'ReviewedBy' => Array('type' => 'string', 'default' => ''), + + 'CatalogItemName' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), + 'CatalogItemId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), ), 'Grids' => Array ( 'Default' => Array ( 'Icons' => Array ('default'=>'icon16_custom.gif',1=>'icon16_review.gif',2=>'icon16_review_pending.gif',0=>'icon16_review_disabled.gif'), 'Fields' => Array ( - 'ReviewText' => Array( 'title'=>'la_col_ReviewText', 'data_block' => 'reviewtext_checkbox_td'), + 'ReviewId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td'), + 'ReviewText' => Array( 'title'=>'la_col_ReviewText',), 'ReviewedBy' => Array( 'title'=>'la_col_ReviewedBy' ), 'CreatedOn_formatted' => Array( 'title'=>'la_col_CreatedOn', 'sort_field' => 'CreatedOn' ), 'Status' => Array( 'title'=>'la_col_Status' ), @@ -178,10 +182,12 @@ 'ReviewsSection' => Array ( 'Icons' => Array ('default'=>'icon16_custom.gif',1=>'icon16_review.gif',2=>'icon16_review_pending.gif',0=>'icon16_review_disabled.gif'), 'Fields' => Array ( - 'ReviewText' => Array( 'title'=>'la_col_ReviewText', 'data_block' => 'grid_checkbox_namelink_td'), + 'ReviewId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td'), + 'ReviewText' => Array( 'title'=>'la_col_ReviewText', 'data_block' => 'grid_reviewtext_td'), 'ReviewedBy' => Array( 'title'=>'la_col_ReviewedBy' ), 'CreatedOn_formatted' => Array( 'title'=>'la_col_CreatedOn', 'sort_field' => 'CreatedOn' ), 'Status' => Array( 'title'=>'la_col_Status' ), + 'Rating' => Array( 'title'=>'la_col_Rating' ), ), ), ), Index: branches/RC/kernel/admin_templates/reviews.tpl =================================================================== diff -u -N --- branches/RC/kernel/admin_templates/reviews.tpl (revision 0) +++ branches/RC/kernel/admin_templates/reviews.tpl (revision 10455) @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + +
+ "/> + + + + + + +
+ + + +
+ + + + + + + + + +
+ -rev_tab" cellpadding="0" cellspacing="0" width="100%" class="catalog-tab-unselected" onclick="$Catalog.switchTab('-rev');"> + + + + + + +
+ + + (-rev_item_count">?) + + + + +
+
+ + + + + + + + + + + \ No newline at end of file Index: branches/RC/kernel/units/reviews/reviews_event_handler.php =================================================================== diff -u -N -r9475 -r10455 --- branches/RC/kernel/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 9475) +++ branches/RC/kernel/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 10455) @@ -43,17 +43,92 @@ return $res; } + $check_events = Array ( + 'OnItemBuild', 'OnUpdate', /*'OnMassApprove', 'OnMassDecline'*/ + ); + + $perm_category = $this->_getReviewCategory($event); + + if (in_array($event->Name, $check_events)) { + // check for PRODUCT.VIEW permission + + $perm_helper =& $this->Application->recallObject('PermissionsHelper'); + /* @var $perm_helper kPermissionsHelper */ + + $perm_prefix = $this->getPermPrefix($event); + + if ($perm_category === false) { + // no item id present -> allow + return true; + } + + switch ($event->Name) { + case 'OnItemBuild': + $res = $this->Application->CheckPermission($perm_prefix . '.VIEW', 0, $perm_category); + break; + + case 'OnUpdate': + case 'OnMassApprove': + case 'OnMassDecline': + $res = $this->Application->CheckPermission($perm_prefix . '.ADD', 0, $perm_category) || + $this->Application->CheckPermission($perm_prefix . '.MODIFY', 0, $perm_category); + break; + } + + if (!$res) { + $event->status = erPERM_FAIL; + } + + return $res; + + } + return parent::CheckPermission($event); } /** + * Returns primary category of review's main item + * + * @param kEvent $event + * @return int + */ + function _getReviewCategory(&$event) + { + $items_info = $this->Application->GetVar($event->getPrefixSpecial()); + list ($review_id, ) = each($items_info); + + if (!$review_id) { + return false; + } + + // 1. get main item resource id + $sql = 'SELECT ItemId + FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + WHERE ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' = ' . $review_id; + $resource_id = $this->Conn->GetOne($sql); + + // 2. set main item id (for permission checks) + $parent_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); + $sql = 'SELECT ' . $this->Application->getUnitOption($parent_prefix, 'IDField') .' + FROM ' . $this->Application->getUnitOption($parent_prefix, 'TableName') .' + WHERE ResourceId = ' . $resource_id; + $this->Application->SetVar($parent_prefix . '_id', $this->Conn->GetOne($sql)); + + // 3. get main item category + $sql = 'SELECT CategoryId + FROM ' . $this->Application->getUnitOption('ci', 'TableName') .' + WHERE ItemResourceId = ' . $resource_id .' AND PrimaryCat = 1'; + return $this->Conn->GetOne($sql); + } + + /** * Returns prefix for permissions * * @param kEvent $event */ function getPermPrefix(&$event) { - $main_prefix = $this->Application->GetTopmostPrefix($event->Prefix); + $main_prefix = $this->Application->GetTopmostPrefix($event->Prefix, true); // this will return LINK for l, ARTICLE for n, TOPIC for bb, PRODUCT for p $item_prefix = $this->Application->getUnitOption($main_prefix, 'PermItemPrefix'); @@ -100,6 +175,12 @@ break;*/ } + if (preg_match('/(.*)-rev/', $event->Prefix, $regs)) { + // "Structure & Data" -> "Reviews" (section in K4) + $item_type = $this->Application->getUnitOption($regs[1], 'ItemType'); + $object->addFilter('itemtype_filter', '%1$s.ItemType = ' . $item_type); + } + if ($event->getEventParam('type') == 'current_user') { // $object->removeFilter('active'); $object->addFilter('current_user', '%1$s.CreatedById = '.$this->Application->RecallVar('user_id')); @@ -341,6 +422,53 @@ $parent_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); $event->SetRedirectParam('pass', 'm,'.$parent_prefix); } + + /** + * Makes left join to item's table, when in separate grid + * + * @param kEvent $event + */ + function OnAfterConfigRead(&$event) + { + parent::OnAfterConfigRead($event); + + if (preg_match('/(.*)-rev/', $event->Prefix, $regs)) { + // "Structure & Data" -> "Reviews" (section in K4) + + // 1. add join to items table (for "Structure & Data" -> "Reviews" section) + $item_table = $this->Application->getUnitOption($regs[1], 'TableName'); + + $list_sqls = $this->Application->getUnitOption($event->Prefix, 'ListSQLs'); + $list_sqls[''] .= ' LEFT JOIN '.$item_table.' item_table ON item_table.ResourceId = %1$s.ItemId'; + $this->Application->setUnitOption($event->Prefix, 'ListSQLs', $list_sqls); + + // 2. add calculated field + $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); + $calculated_fields['']['CatalogItemName'] = 'item_table.' . $this->getTitleField($regs[1]); + $calculated_fields['']['CatalogItemId'] = 'item_table.' . $this->Application->getUnitOption($regs[1], 'IDField'); + $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + } + } + + /** + * Convert TitleField field of kMultiLanguage formatter used for it + * + * @param string $prefix + * @return string + */ + function getTitleField($prefix) + { + $lang_prefix = 'l'.$this->Application->GetVar('m_lang').'_'; + + $title_field = $this->Application->getUnitOption($prefix, 'TitleField'); + $field_options = $this->Application->getUnitOption($prefix.'.'.$title_field, 'Fields'); + + $formatter_class = isset($field_options['formatter']) ? $field_options['formatter'] : ''; + if ($formatter_class == 'kMultiLanguage' && !isset($field_options['master_field'])) { + $title_field = $lang_prefix.$title_field; + } + return $title_field; + } } ?> \ No newline at end of file Index: branches/RC/kernel/admin_templates/reviews/reviews_tab.tpl =================================================================== diff -u -N --- branches/RC/kernel/admin_templates/reviews/reviews_tab.tpl (revision 0) +++ branches/RC/kernel/admin_templates/reviews/reviews_tab.tpl (revision 10455) @@ -0,0 +1,46 @@ + + + + + + + + $Catalog.setItemCount('', ''); + $Catalog.setCurrentCategory('', 0); + + + + + Grids[''].AddAlternativeGrid('', true); + + Grids[''].SetDependantToolbarButtons( new Array('edit','delete','approve','decline','sep3','cut','copy','move_up','move_down','sep6')); + $Catalog.reflectPasteButton(); + $Catalog.setViewMenu(''); + + Grids[''].EnableRadioMode(); + Grids[''].DblClick = function() {return false}; + + #separator# + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + \ No newline at end of file Index: branches/RC/core/units/reviews/reviews_event_handler.php =================================================================== diff -u -N -r9475 -r10455 --- branches/RC/core/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 9475) +++ branches/RC/core/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 10455) @@ -43,17 +43,92 @@ return $res; } + $check_events = Array ( + 'OnItemBuild', 'OnUpdate', /*'OnMassApprove', 'OnMassDecline'*/ + ); + + $perm_category = $this->_getReviewCategory($event); + + if (in_array($event->Name, $check_events)) { + // check for PRODUCT.VIEW permission + + $perm_helper =& $this->Application->recallObject('PermissionsHelper'); + /* @var $perm_helper kPermissionsHelper */ + + $perm_prefix = $this->getPermPrefix($event); + + if ($perm_category === false) { + // no item id present -> allow + return true; + } + + switch ($event->Name) { + case 'OnItemBuild': + $res = $this->Application->CheckPermission($perm_prefix . '.VIEW', 0, $perm_category); + break; + + case 'OnUpdate': + case 'OnMassApprove': + case 'OnMassDecline': + $res = $this->Application->CheckPermission($perm_prefix . '.ADD', 0, $perm_category) || + $this->Application->CheckPermission($perm_prefix . '.MODIFY', 0, $perm_category); + break; + } + + if (!$res) { + $event->status = erPERM_FAIL; + } + + return $res; + + } + return parent::CheckPermission($event); } /** + * Returns primary category of review's main item + * + * @param kEvent $event + * @return int + */ + function _getReviewCategory(&$event) + { + $items_info = $this->Application->GetVar($event->getPrefixSpecial()); + list ($review_id, ) = each($items_info); + + if (!$review_id) { + return false; + } + + // 1. get main item resource id + $sql = 'SELECT ItemId + FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + WHERE ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' = ' . $review_id; + $resource_id = $this->Conn->GetOne($sql); + + // 2. set main item id (for permission checks) + $parent_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); + $sql = 'SELECT ' . $this->Application->getUnitOption($parent_prefix, 'IDField') .' + FROM ' . $this->Application->getUnitOption($parent_prefix, 'TableName') .' + WHERE ResourceId = ' . $resource_id; + $this->Application->SetVar($parent_prefix . '_id', $this->Conn->GetOne($sql)); + + // 3. get main item category + $sql = 'SELECT CategoryId + FROM ' . $this->Application->getUnitOption('ci', 'TableName') .' + WHERE ItemResourceId = ' . $resource_id .' AND PrimaryCat = 1'; + return $this->Conn->GetOne($sql); + } + + /** * Returns prefix for permissions * * @param kEvent $event */ function getPermPrefix(&$event) { - $main_prefix = $this->Application->GetTopmostPrefix($event->Prefix); + $main_prefix = $this->Application->GetTopmostPrefix($event->Prefix, true); // this will return LINK for l, ARTICLE for n, TOPIC for bb, PRODUCT for p $item_prefix = $this->Application->getUnitOption($main_prefix, 'PermItemPrefix'); @@ -100,6 +175,12 @@ break;*/ } + if (preg_match('/(.*)-rev/', $event->Prefix, $regs)) { + // "Structure & Data" -> "Reviews" (section in K4) + $item_type = $this->Application->getUnitOption($regs[1], 'ItemType'); + $object->addFilter('itemtype_filter', '%1$s.ItemType = ' . $item_type); + } + if ($event->getEventParam('type') == 'current_user') { // $object->removeFilter('active'); $object->addFilter('current_user', '%1$s.CreatedById = '.$this->Application->RecallVar('user_id')); @@ -341,6 +422,53 @@ $parent_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); $event->SetRedirectParam('pass', 'm,'.$parent_prefix); } + + /** + * Makes left join to item's table, when in separate grid + * + * @param kEvent $event + */ + function OnAfterConfigRead(&$event) + { + parent::OnAfterConfigRead($event); + + if (preg_match('/(.*)-rev/', $event->Prefix, $regs)) { + // "Structure & Data" -> "Reviews" (section in K4) + + // 1. add join to items table (for "Structure & Data" -> "Reviews" section) + $item_table = $this->Application->getUnitOption($regs[1], 'TableName'); + + $list_sqls = $this->Application->getUnitOption($event->Prefix, 'ListSQLs'); + $list_sqls[''] .= ' LEFT JOIN '.$item_table.' item_table ON item_table.ResourceId = %1$s.ItemId'; + $this->Application->setUnitOption($event->Prefix, 'ListSQLs', $list_sqls); + + // 2. add calculated field + $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); + $calculated_fields['']['CatalogItemName'] = 'item_table.' . $this->getTitleField($regs[1]); + $calculated_fields['']['CatalogItemId'] = 'item_table.' . $this->Application->getUnitOption($regs[1], 'IDField'); + $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + } + } + + /** + * Convert TitleField field of kMultiLanguage formatter used for it + * + * @param string $prefix + * @return string + */ + function getTitleField($prefix) + { + $lang_prefix = 'l'.$this->Application->GetVar('m_lang').'_'; + + $title_field = $this->Application->getUnitOption($prefix, 'TitleField'); + $field_options = $this->Application->getUnitOption($prefix.'.'.$title_field, 'Fields'); + + $formatter_class = isset($field_options['formatter']) ? $field_options['formatter'] : ''; + if ($formatter_class == 'kMultiLanguage' && !isset($field_options['master_field'])) { + $title_field = $lang_prefix.$title_field; + } + return $title_field; + } } ?> \ No newline at end of file Index: branches/RC/core/admin_templates/reviews/reviews_tab.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/reviews/reviews_tab.tpl (revision 0) +++ branches/RC/core/admin_templates/reviews/reviews_tab.tpl (revision 10455) @@ -0,0 +1,46 @@ + + + + + + + + $Catalog.setItemCount('', ''); + $Catalog.setCurrentCategory('', 0); + + + + + Grids[''].AddAlternativeGrid('', true); + + Grids[''].SetDependantToolbarButtons( new Array('edit','delete','approve','decline','sep3','cut','copy','move_up','move_down','sep6')); + $Catalog.reflectPasteButton(); + $Catalog.setViewMenu(''); + + Grids[''].EnableRadioMode(); + Grids[''].DblClick = function() {return false}; + + #separator# + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + \ No newline at end of file Index: branches/RC/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r10417 -r10455 --- branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 10417) +++ branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 10455) @@ -128,8 +128,8 @@ 'OnExportProgress' => Array('self' => 'view|advanced:export'), - 'OnSetAutoRefreshInterval' => Array ('self' => 'view', 'subitem' => 'view'), - 'OnAutoRefreshToggle' => Array ('self' => 'view', 'subitem' => 'view'), + 'OnSetAutoRefreshInterval' => Array ('self' => true, 'subitem' => true), + 'OnAutoRefreshToggle' => Array ('self' => true, 'subitem' => true), // theese event do not harm, but just in case check them too :) 'OnCancelEdit' => Array('self' => true, 'subitem' => true), Index: branches/RC/kernel/units/reviews/reviews_tag_processor.php =================================================================== diff -u -N -r8929 -r10455 --- branches/RC/kernel/units/reviews/reviews_tag_processor.php (.../reviews_tag_processor.php) (revision 8929) +++ branches/RC/kernel/units/reviews/reviews_tag_processor.php (.../reviews_tag_processor.php) (revision 10455) @@ -10,19 +10,21 @@ */ function ItemEditLink($params) { - $item_prefix = $params['item_prefix']; - $id_field = $this->Application->getUnitOption($item_prefix,'IDField'); + $object =& $this->getObject(); + /* @var $object kDBList */ - $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); - $item_id = $object->GetDBField($id_field); + $item_prefix = $this->Application->findModule('Name', $object->GetDBField('Module'), 'Var'); + $edit_template = $this->Application->getUnitOption($item_prefix, 'AdminTemplatePath') . '/' . $this->Application->getUnitOption($item_prefix, 'AdminTemplatePrefix') . 'edit'; - return $this->Application->HREF($params['edit_template'],'', Array( - 'm_opener' => 'd', - $item_prefix.'_mode' => 't', - $item_prefix.'_event' => 'OnEdit', - $item_prefix.'_id' => $item_id, - 'pass' => 'all,'.$item_prefix - ), 'index.php'); + $url_params = Array ( + 'm_opener' => 'd', + $item_prefix.'_mode' => 't', + $item_prefix.'_event' => 'OnEdit', + $item_prefix.'_id' => $object->GetDBField('CatalogItemId'), + 'pass' => 'all,'.$item_prefix + ); + + return $this->Application->HREF($edit_template,'', $url_params); } /** @@ -91,6 +93,45 @@ } return parent::PageLink($params); } + + function InitCatalogTab($params) + { + $tab_params['mode'] = $this->Application->GetVar('tm'); // single/multi selection possible + $tab_params['special'] = $this->Application->GetVar('ts'); // use special for this tab + $tab_params['dependant'] = $this->Application->GetVar('td'); // is grid dependant on categories grid + + // set default params (same as in catalog) + if ($tab_params['mode'] === false) $tab_params['mode'] = 'multi'; + if ($tab_params['special'] === false) $tab_params['special'] = ''; + if ($tab_params['dependant'] === false) $tab_params['dependant'] = 'yes'; + + // pass params to block with tab content + $params['name'] = $params['render_as']; + $params['prefix'] = trim($this->Prefix.'.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + + $params['cat_prefix'] = trim('c.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + $params['tab_mode'] = $tab_params['mode']; + $params['tab_dependant'] = $tab_params['dependant']; + $params['show_category'] = $tab_params['special'] == 'showall' ? 1 : 0; // this is advanced view -> show category name + $params['tab_name'] = $this->Application->GetVar('tab_name'); + + return $this->Application->ParseBlock($params, 1); + } + + /** + * Returns reviews count for each item type (in "Reviews" section) + * + * @param Array $params + * @return string + */ + function CatalogItemCount($params) + { + $object =& $this->GetList($params); + if (!$object->Counted) { + $object->CountRecs(); + } + return $object->NoFilterCount != $object->RecordsCount ? $object->RecordsCount.' / '.$object->NoFilterCount : $object->RecordsCount; + } } Index: branches/RC/core/admin_templates/incs/form_blocks.tpl =================================================================== diff -u -N -r10327 -r10455 --- branches/RC/core/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 10327) +++ branches/RC/core/admin_templates/incs/form_blocks.tpl (.../form_blocks.tpl) (revision 10455) @@ -577,7 +577,7 @@ - + "> Index: branches/RC/core/units/reviews/reviews_tag_processor.php =================================================================== diff -u -N -r8929 -r10455 --- branches/RC/core/units/reviews/reviews_tag_processor.php (.../reviews_tag_processor.php) (revision 8929) +++ branches/RC/core/units/reviews/reviews_tag_processor.php (.../reviews_tag_processor.php) (revision 10455) @@ -10,19 +10,21 @@ */ function ItemEditLink($params) { - $item_prefix = $params['item_prefix']; - $id_field = $this->Application->getUnitOption($item_prefix,'IDField'); + $object =& $this->getObject(); + /* @var $object kDBList */ - $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); - $item_id = $object->GetDBField($id_field); + $item_prefix = $this->Application->findModule('Name', $object->GetDBField('Module'), 'Var'); + $edit_template = $this->Application->getUnitOption($item_prefix, 'AdminTemplatePath') . '/' . $this->Application->getUnitOption($item_prefix, 'AdminTemplatePrefix') . 'edit'; - return $this->Application->HREF($params['edit_template'],'', Array( - 'm_opener' => 'd', - $item_prefix.'_mode' => 't', - $item_prefix.'_event' => 'OnEdit', - $item_prefix.'_id' => $item_id, - 'pass' => 'all,'.$item_prefix - ), 'index.php'); + $url_params = Array ( + 'm_opener' => 'd', + $item_prefix.'_mode' => 't', + $item_prefix.'_event' => 'OnEdit', + $item_prefix.'_id' => $object->GetDBField('CatalogItemId'), + 'pass' => 'all,'.$item_prefix + ); + + return $this->Application->HREF($edit_template,'', $url_params); } /** @@ -91,6 +93,45 @@ } return parent::PageLink($params); } + + function InitCatalogTab($params) + { + $tab_params['mode'] = $this->Application->GetVar('tm'); // single/multi selection possible + $tab_params['special'] = $this->Application->GetVar('ts'); // use special for this tab + $tab_params['dependant'] = $this->Application->GetVar('td'); // is grid dependant on categories grid + + // set default params (same as in catalog) + if ($tab_params['mode'] === false) $tab_params['mode'] = 'multi'; + if ($tab_params['special'] === false) $tab_params['special'] = ''; + if ($tab_params['dependant'] === false) $tab_params['dependant'] = 'yes'; + + // pass params to block with tab content + $params['name'] = $params['render_as']; + $params['prefix'] = trim($this->Prefix.'.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + + $params['cat_prefix'] = trim('c.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + $params['tab_mode'] = $tab_params['mode']; + $params['tab_dependant'] = $tab_params['dependant']; + $params['show_category'] = $tab_params['special'] == 'showall' ? 1 : 0; // this is advanced view -> show category name + $params['tab_name'] = $this->Application->GetVar('tab_name'); + + return $this->Application->ParseBlock($params, 1); + } + + /** + * Returns reviews count for each item type (in "Reviews" section) + * + * @param Array $params + * @return string + */ + function CatalogItemCount($params) + { + $object =& $this->GetList($params); + if (!$object->Counted) { + $object->CountRecs(); + } + return $object->NoFilterCount != $object->RecordsCount ? $object->RecordsCount.' / '.$object->NoFilterCount : $object->RecordsCount; + } } Index: branches/RC/core/admin_templates/reviews/reviews.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/reviews/reviews.tpl (revision 0) +++ branches/RC/core/admin_templates/reviews/reviews.tpl (revision 10455) @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + +
+ "/> + + + + + + +
+ + + +
+ + + + + + + + + +
+ -rev_tab" cellpadding="0" cellspacing="0" width="100%" class="catalog-tab-unselected" onclick="$Catalog.switchTab('-rev');"> + + + + + + +
+ + + (-rev_item_count">?) + + + + +
+
+ + + + + + + + + + + \ No newline at end of file Index: branches/RC/core/admin_templates/reviews/review_direct_edit.tpl =================================================================== diff -u -N --- branches/RC/core/admin_templates/reviews/review_direct_edit.tpl (revision 0) +++ branches/RC/core/admin_templates/reviews/review_direct_edit.tpl (revision 10455) @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+ Index: branches/RC/kernel/admin_templates/img/icons/icon46_reviews.gif =================================================================== diff -u -N Binary files differ Index: branches/RC/kernel/admin_templates/reviews/review_direct_edit.tpl =================================================================== diff -u -N --- branches/RC/kernel/admin_templates/reviews/review_direct_edit.tpl (revision 0) +++ branches/RC/kernel/admin_templates/reviews/review_direct_edit.tpl (revision 10455) @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + +
+