Index: branches/5.0.x/core/units/categories/categories_config.php =================================================================== --- branches/5.0.x/core/units/categories/categories_config.php (revision 12541) +++ branches/5.0.x/core/units/categories/categories_config.php (revision 12542) @@ -1,474 +1,474 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array ( 'Prefix' => 'c', 'ItemClass' => Array ('class' => 'CategoriesItem', 'file' => 'categories_item.php', 'build_event' => 'OnItemBuild'), 'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array ('class' => 'CategoriesEventHandler', 'file' => 'categories_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array ('class' => 'CategoriesTagProcessor', 'file' => 'categories_tag_processor.php', 'build_event' => 'OnBuild'), 'RegisterClasses' => Array ( Array ('pseudo' => 'kPermCacheUpdater', 'class' => 'kPermCacheUpdater', 'file' => 'cache_updater.php', 'build_event' => ''), ), 'ConfigPriority' => 0, 'Hooks' => Array ( Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'adm', //self 'HookToSpecial' => '*', 'HookToEvent' => Array('OnRebuildThemes'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnAfterRebuildThemes', ), Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => '', 'HookToSpecial' => '*', 'HookToEvent' => Array('OnAfterConfigRead'), 'DoPrefix' => 'cdata', 'DoSpecial' => '*', 'DoEvent' => 'OnDefineCustomFields', ), ), 'AutoLoad' => true, 'CatalogItem' => true, 'AdminTemplatePath' => 'categories', 'AdminTemplatePrefix' => 'categories_', 'QueryString' => Array ( 1 => 'id', 2 => 'Page', 3 => 'event', 4 => 'mode', ), 'AggregateTags' => Array ( Array ( 'AggregateTo' => 'm', 'AggregatedTagName' => 'CategoryLink', 'LocalTagName' => 'CategoryLink', ), ), 'IDField' => 'CategoryId', 'StatusField' => Array ('Status'), // 'Status' 'TitleField' => 'Name', 'TitlePhrase' => 'la_Text_Category', 'ItemType' => 1, // used for custom fields only 'StatisticsInfo' => Array ( 'pending' => Array ( 'icon' => 'icon16_cat_pending.gif', 'label' => 'la_tab_Categories', 'js_url' => '#url#', 'url' => Array('t' => 'catalog/advanced_view', 'SetTab' => 'c', 'pass' => 'm,c.showall', 'c.showall_event' => 'OnSetFilterPattern', 'c.showall_filters' => 'show_active=0,show_pending=1,show_disabled=0,show_new=1,show_pick=1'), 'status' => STATUS_PENDING, ), ), 'TableName' => TABLE_PREFIX.'Category', 'ViewMenuPhrase' => 'la_text_Categories', - 'CatalogTabIcon' => 'icon16_section.png', + 'CatalogTabIcon' => 'icon16_sections.png', 'TitlePresets' => Array ( 'default' => Array ( 'new_status_labels' => Array ('c' => '!la_title_Adding_Category!'), 'edit_status_labels' => Array ('c' => '!la_title_Editing_Category!'), 'new_titlefield' => Array ('c' => '!la_title_New_Category!'), ), 'category_list' => Array ('prefixes' => Array ('c_List'), 'format' => "!la_title_Categories! (#c_recordcount#)"), 'catalog' => Array ( 'prefixes' => Array (), 'format' => "<span id='category_path'>!la_title_Categories!</span>", 'toolbar_buttons' => Array ('select', 'cancel', 'upcat', 'homecat', 'new_cat', 'new_link', 'new_article', 'new_topic', 'new_product', 'edit', 'delete', 'new_listing', 'approve', 'decline', 'cut', 'copy', 'paste', 'move_up', 'move_down', 'tools', 'view', 'dbl-click') ), 'advanced_view' => Array ( 'prefixes' => Array (), 'format' => "!la_title_AdvancedView!", 'toolbar_buttons' => Array ('select', 'cancel', 'new_cat', 'new_link', 'new_article', 'new_topic', 'new_product', 'edit', 'delete', 'new_listing', 'approve', 'decline', 'view', 'dbl-click'), ), 'reviews' => Array ( 'prefixes' => Array (), 'format' => "!la_title_Reviews!", 'toolbar_buttons' => Array ('edit', 'delete', 'approve', 'decline', 'view', 'dbl-click',) ), '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!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'), ), 'categories_relations' => Array ( 'prefixes' => Array ('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_Relations!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_item', 'edit', 'delete', 'approve', 'decline', 'view', 'dbl-click'), ), 'categories_related_searches' => Array ( 'prefixes' => Array ('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_RelatedSearches!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_related_search', 'edit', 'delete', 'move_up', 'move_down', 'approve', 'decline', 'view', 'dbl-click'), ), 'categories_images' => Array ( 'prefixes' => Array ('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_Images!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_item', 'edit', 'delete', 'move_up', 'move_down', 'setprimary', 'view', 'dbl-click'), ), 'categories_permissions' => Array ( 'prefixes' => Array ('c', 'g_List'), 'format' => "#c_status# '#c_titlefield#' - !la_title_Permissions!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'), ), 'categories_custom' => Array ('prefixes' => Array ('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_Custom!"), 'categories_update' => Array ('prefixes' => Array (), 'format' => "!la_title_UpdatingCategories!"), 'images_edit' => Array ( 'prefixes' => Array ('c', 'c-img'), 'new_status_labels' => Array ('c-img' => '!la_title_Adding_Image!'), 'edit_status_labels' => Array ('c-img' => '!la_title_Editing_Image!'), 'new_titlefield' => Array ('c-img' => ''), 'format' => "#c_status# '#c_titlefield#' - #c-img_status# '#c-img_titlefield#'", 'toolbar_buttons' => Array ('select', 'cancel'), ), 'relations_edit' => Array ( 'prefixes' => Array ('c', 'c-rel'), 'new_status_labels' => Array ('c-rel' => "!la_title_Adding_Relationship! '!la_title_New_Relationship!'"), 'edit_status_labels' => Array ('c-rel' => '!la_title_Editing_Relationship!'), 'format' => "#c_status# '#c_titlefield#' - #c-rel_status#", 'toolbar_buttons' => Array ('select', 'cancel'), ), 'related_searches_edit' => Array ( 'prefixes' => Array ('c', 'c-search'), 'new_status_labels' => Array ('c-search' => "!la_title_Adding_RelatedSearch_Keyword!"), 'edit_status_labels' => Array ('c-search' => '!la_title_Editing_RelatedSearch_Keyword!'), 'format' => "#c_status# '#c_titlefield#' - #c-search_status#", 'toolbar_buttons' => Array ('select', 'cancel'), ), 'edit_content' => Array ('format' => '!la_EditingContent!'), 'tree_site' => Array ('format' => '!la_selecting_categories!'), ), 'EditTabPresets' => Array ( 'Default' => Array ( 'general' => Array ('title' => 'la_tab_General', 't' => 'categories/categories_edit', 'priority' => 1), 'properties' => Array ('title' => 'la_tab_Properties', 't' => 'categories/categories_edit_properties', 'priority' => 2), 'relations' => Array ('title' => 'la_tab_Relations', 't' => 'categories/categories_edit_relations', 'priority' => 3), 'related_searches' => Array ('title' => 'la_tab_Related_Searches', 't' => 'categories/categories_edit_related_searches', 'priority' => 4), 'images' => Array ('title' => 'la_tab_Images', 't' => 'categories/categories_edit_images', 'priority' => 5), 'permissions' => Array ('title' => 'la_tab_Permissions', 't' => 'categories/categories_edit_permissions', 'priority' => 6), 'custom' => Array ('title' => 'la_tab_Custom', 't' => 'categories/categories_edit_custom', 'priority' => 7), ), ), 'PermItemPrefix' => 'CATEGORY', 'PermSection' => Array ('main' => 'CATEGORY:in-portal:categories', /*'search' => 'in-portal:configuration_search',*/ 'email' => 'in-portal:configuration_email', 'custom' => 'in-portal:configuration_custom'), 'Sections' => Array ( 'in-portal:configure_categories' => Array ( 'parent' => 'in-portal:website_setting_folder', 'icon' => 'conf_output', 'label' => 'la_tab_ConfigOutput', 'url' => Array ('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view', 'edit'), 'priority' => 11.1, 'type' => stTREE, ), 'in-portal:configuration_search' => Array ( 'parent' => 'in-portal:website_setting_folder', 'icon' => 'conf_search', 'label' => 'la_tab_ConfigSearch', 'url' => Array ('t' => 'config/config_search', 'module_key' => 'category', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view', 'edit'), 'priority' => 11.2, 'type' => stTREE, ), 'in-portal:configuration_email' => Array ( 'parent' => 'in-portal:website_setting_folder', 'icon' => 'conf_email', 'label' => 'la_tab_ConfigE-mail', 'url' => Array ('t' => 'config/config_email', 'module' => 'Core:Category', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view', 'edit'), 'priority' => 11.3, 'type' => stTREE, ), 'in-portal:configuration_custom' => Array ( 'parent' => 'in-portal:website_setting_folder', 'icon' => 'conf_customfields', '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' => 11.4, 'type' => stTREE, ), ), 'FilterMenu' => Array ( 'Groups' => Array ( Array ('mode' => 'AND', 'filters' => Array ('show_active', 'show_pending', 'show_disabled'), 'type' => WHERE_FILTER), Array ('mode' => 'AND', 'filters' => Array ('show_new'), 'type' => HAVING_FILTER), Array ('mode' => 'AND', 'filters' => Array ('show_pick'), 'type' => WHERE_FILTER), ), 'Filters' => Array ( 'show_active' => Array ('label' =>'la_Active', 'on_sql' => '', 'off_sql' => 'Status != 1'), 'show_pending' => Array ('label' => 'la_Pending', 'on_sql' => '', 'off_sql' => 'Status != 2'), 'show_disabled' => Array ('label' => 'la_Disabled', 'on_sql' => '', 'off_sql' => 'Status != 0'), 's1' => Array (), 'show_new' => Array ('label' => 'la_Text_New', 'on_sql' => '', 'off_sql' => '`IsNew` != 1'), 'show_pick' => Array ('label' => 'la_prompt_EditorsPick', 'on_sql' => '', 'off_sql' => '`EditorsPick` != 1'), ) ), 'ListSQLs' => Array ( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Images img ON img.ResourceId = %1$s.ResourceId AND img.DefaultImg = 1 LEFT JOIN '.TABLE_PREFIX.'PermCache ON '.TABLE_PREFIX.'PermCache.CategoryId = %1$s.CategoryId LEFT JOIN '.TABLE_PREFIX.'%3$sCategoryCustomData cust ON %1$s.ResourceId = cust.ResourceId' ), 'SubItems' => Array ('c-rel', 'c-search','c-img', 'c-cdata', 'c-perm', 'content'), 'ListSortings' => Array ( '' => Array ( 'Sorting' => Array ('Priority' => 'desc', 'Name' => 'asc'), ) ), 'CalculatedFields' => Array ( '' => Array ( 'CurrentSort' => "REPLACE(ParentPath, CONCAT('|', ".'%1$s'.".CategoryId, '|'), '')", 'SameImages' => 'img.SameImages', 'LocalThumb' => 'img.LocalThumb', 'ThumbPath' => 'img.ThumbPath', 'ThumbUrl' => 'img.ThumbUrl', 'LocalImage' => 'img.LocalImage', 'LocalPath' => 'img.LocalPath', 'FullUrl' => 'img.Url', ) ), 'CacheModRewrite' => true, 'Fields' => Array ( 'CategoryId' => Array ('type' => 'int', 'not_null' => 1,'default' => 0), 'Type' => Array ('type' => 'int', 'not_null' => 1,'default' => 0), 'SymLinkCategoryId' => Array ('type' => 'int', 'default' => NULL), 'ParentId' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'not_null' => 1,'default' => 0, 'required' => 1), 'Name' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'not_null' => 1, 'required' => 1, 'default' => ''), 'Filename' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'AutomaticFilename' => Array ('type' => 'int', 'not_null' => 1, 'default' => 1), 'Description' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'using_fck' => 1, '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' => 1), 'Priority' => Array ('type' => 'int', 'not_null' => 1, 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'default' => 0), 'MetaKeywords' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null), 'CachedDescendantCatsQty' => Array ('type' => 'int', 'default' => 0), 'CachedNavbar' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'default' => null), 'CreatedById' => Array ('type' => 'int', 'formatter' => 'kLEFTFormatter', 'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!'), '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), 'TreeLeft' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'TreeRight' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'NamedParentPath' => Array ('type' => 'string', 'default' => null), 'MetaDescription' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, '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', 'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!'), '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, " :: ", FilePath, "/", 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 (tf.FileName NOT LIKE "%%.elm.tpl") AND (tf.FileName NOT LIKE "%%.des.tpl") AND (tf.FilePath = "/designs") ORDER BY tf.Description ASC, tf.FileName ASC', 'option_key_field' => 'Value', 'option_title_field' => 'Title', 'error_msgs' => Array ( 'no_inherit' => '!la_error_NoInheritancePossible!', ), 'required' => 1, 'not_null' => 1, 'default' => CATEGORY_TEMPLATE_INHERIT ), 'UseExternalUrl' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0 ), 'ExternalUrl' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''), 'UseMenuIconUrl' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0 ), 'MenuIconUrl' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''), 'Title' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'default' => '', 'not_null'=>1), 'MenuTitle' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'not_null' => 1, 'default' => ''), 'MetaTitle' => Array ('type' => 'string', 'default' => null), 'IndexTools' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, '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_text_User'), '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), // for primary image 'SameImages' => Array('type' => 'string', 'default' => ''), 'LocalThumb' => Array('type' => 'string', 'default' => ''), 'ThumbPath' => Array('type' => 'string', 'default' => ''), 'ThumbUrl' => Array('type' => 'string', 'default' => ''), 'LocalImage' => Array('type' => 'string', 'default' => ''), 'LocalPath' => Array('type' => 'string', 'default' => ''), 'FullUrl' => Array('type' => 'string', 'default' => ''), ), 'Grids' => Array( 'Default' => Array ( 'Icons' => Array( // 'StatusField' => Array ('IsSystem', 'Status', 'IsMenu'), // 'Status' 'default' => 'icon_section.png', '1_0_0' => 'icon16_section_system.png', // system '1_0_1' => 'icon16_section_system.png', // system '1_1_1' => 'icon16_section_system.png', // system '0_0_0' => 'icon16_section_disabled.png', // disabled '0_0_1' => 'icon16_section_disabled.png', // disabled '0_1_0' => 'icon16_section_menuhidden.png', // hidden from menu '0_2_0' => 'icon16_section_pending.png', // pending '0_2_1' => 'icon16_section_pending.png', // pending 'NEW' => 'icon16_section_new.png', // section is new ), 'Fields' => Array( 'CategoryId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60), 'Name' => Array( 'title'=>'la_col_PageTitle', 'data_block' => 'page_browse_td', 'filter_block' => 'grid_like_filter', 'width' => 250), 'Priority' => Array( 'title'=>'la_col_Priority', 'filter_block' => 'grid_options_filter', 'width' => 60), 'IsMenu' => Array( 'title'=>'la_col_InMenu', 'filter_block' => 'grid_options_filter', 'width' => 75), 'Modified' => Array( 'title'=>'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 150), 'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'width' => 220), 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'width' => 80), ), ), 'Radio' => Array ( 'Selector' => 'radio', 'Icons' => Array( // 'StatusField' => Array ('IsSystem', 'Status', 'IsMenu'), // 'Status' 'default' => 'icon_section.png', '1_0_0' => 'icon16_section_system.png', // system '1_0_1' => 'icon16_section_system.png', // system '1_1_1' => 'icon16_section_system.png', // system '0_0_0' => 'icon16_section_disabled.png', // disabled '0_0_1' => 'icon16_section_disabled.png', // disabled '0_1_0' => 'icon16_section_menuhidden.png', // hidden from menu '0_2_0' => 'icon16_section_pending.png', // pending '0_2_1' => 'icon16_section_pending.png', // pending 'NEW' => 'icon16_section_new.png', // section is new ), 'Fields' => Array( 'CategoryId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_radio_td', 'filter_block' => 'grid_range_filter', 'width' => 60), 'Name' => Array( 'title'=>'la_col_PageTitle', 'data_block' => 'page_browse_td', 'filter_block' => 'grid_like_filter', 'width' => 250), 'Priority' => Array( 'title'=>'la_col_Priority', 'filter_block' => 'grid_options_filter', 'width' => 60), 'IsMenu' => Array( 'title'=>'la_col_InMenu', 'filter_block' => 'grid_options_filter', 'width' => 75), 'Modified' => Array( 'title'=>'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 150), 'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'width' => 220), 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'width' => 80), ), ), 'Structure' => Array ( 'Icons' => Array( // 'StatusField' => Array ('IsSystem', 'Status', 'IsMenu'), // 'Status' 'default' => 'icon_section.png', '1_0_0' => 'icon16_section_system.png', // system '1_0_1' => 'icon16_section_system.png', // system '1_1_1' => 'icon16_section_system.png', // system '0_0_0' => 'icon16_section_disabled.png', // disabled '0_0_1' => 'icon16_section_disabled.png', // disabled '0_1_0' => 'icon16_section_menuhidden.png', // hidden from menu '0_2_0' => 'icon16_section_pending.png', // pending '0_2_1' => 'icon16_section_pending.png', // pending 'NEW' => 'icon16_section_new.png', // section is new ), 'Fields' => Array( 'CategoryId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60), 'Name' => Array( 'title'=>'la_col_PageTitle', 'data_block' => 'page_browse_td', 'filter_block' => 'grid_like_filter', 'width' => 250), 'Priority' => Array( 'title'=>'la_col_Priority', 'filter_block' => 'grid_options_filter', 'width' => 60), 'IsMenu' => Array( 'title'=>'la_col_InMenu', 'filter_block' => 'grid_options_filter', 'width' => 75), 'Path' => Array( 'title'=>'la_col_Path', 'data_block' => 'page_entercat_td', 'filter_block' => 'grid_like_filter', 'width' => 150), 'Modified' => Array( 'title'=>'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 150), 'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'width' => 220), 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'width' => 80), ), ), ), '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/5.0.x/core/units/statistics/statistics_config.php =================================================================== --- branches/5.0.x/core/units/statistics/statistics_config.php (revision 12541) +++ branches/5.0.x/core/units/statistics/statistics_config.php (revision 12542) @@ -1,77 +1,77 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array( 'Prefix' => 'stat', 'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), 'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array('class' => 'StatisticsEventHandler', 'file' => 'statistics_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array('class' => 'StatisticsTagProcessor', 'file' => 'statistics_tag_processor.php', 'build_event' => 'OnBuild'), 'AutoLoad' => true, 'QueryString' => Array( 1 => 'id', 2 => 'page', 3 => 'event', 4 => 'mode', ), 'IDField' => 'StatItemId', 'TitleField' => 'ListLabel', 'TitlePresets' => Array( 'statistics_list' => Array('prefixes' => Array('stat_List'), 'format' => "!la_title_Statistics!"), ), 'TableName' => TABLE_PREFIX.'StatItem', 'ListSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'), 'ItemSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'), 'ListSortings' => Array( '' => Array( 'Sorting' => Array('Priority' => 'asc'), ) ), 'Fields' => Array( 'StatItemId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'Module' => Array('type' => 'string','not_null' => '1','default' => ''), 'ValueSQL' => Array('type' => 'string','default' => null), 'ResetSQL' => Array('type' => 'string','default' => null), 'ListLabel' => Array('type' => 'string','not_null' => 1, 'default' => ''), 'Priority' => Array('type' => 'int','not_null' => 1, 'default' => 0), 'AdminSummary' => Array('type' => 'int','not_null' => 1, 'default' => 0), ), 'Grids' => Array( 'Default' => Array( - 'Icons' => Array('default' => 'icon16_custom.gif'), + 'Icons' => Array('default' => 'icon16_item.png'), 'Fields' => Array( 'Login' => Array('title' => 'la_col_Username', 'data_block' => 'grid_checkbox_td'), 'LastName' => Array( 'title'=>'la_col_LastName'), 'FirstName' => Array( 'title'=>'la_col_FirstName'), ), ), ), ); \ No newline at end of file Index: branches/5.0.x/core/units/related_searches/related_searches_config.php =================================================================== --- branches/5.0.x/core/units/related_searches/related_searches_config.php (revision 12541) +++ branches/5.0.x/core/units/related_searches/related_searches_config.php (revision 12542) @@ -1,98 +1,102 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array( 'Prefix' => 'search', 'Clones' => Array( 'c-search' => Array('ParentPrefix' => 'c'), /*'l-rel' => Array('ParentPrefix' => 'l'), 'n-rel' => Array('ParentPrefix' => 'n'), 'bb-rel'=> Array('ParentPrefix' => 'bb'), 'p-rel' => Array('ParentPrefix' => 'p'), 'cms-rel'=> Array('ParentPrefix' => 'cms'),*/ ), 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), 'EventHandlerClass' => Array('class'=>'RelatedSearchEventHandler','file'=>'related_searches_event_handler.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class'=>'RelatedSearchTagProcessor','file'=>'related_searches_tag_processor.php','build_event'=>'OnBuild'), 'AutoLoad' => true, 'QueryString' => Array( 1 => 'id', 2 => 'page', 3 => 'event', ), 'IDField' => 'RelatedSearchId', 'StatusField' => Array('Enabled'), 'TableName' => TABLE_PREFIX.'RelatedSearches', 'ParentTableKey' => 'ResourceId', 'ForeignKey' => 'ResourceId', 'ParentPrefix' => 'c', 'AutoDelete' => true, 'AutoClone' => true, 'FilterMenu' => Array( 'Groups' => Array( Array('mode' => 'AND', 'filters' => Array('show_active','show_disabled'), 'type' => WHERE_FILTER), ), 'Filters' => Array( 'show_active' => Array('label' =>'la_Active', 'on_sql' => '', 'off_sql' => 'Enabled != 1' ), 'show_disabled' => Array('label' => 'la_Disabled', 'on_sql' => '', 'off_sql' => 'Enabled != 0' ), ) ), 'CalculatedFields' => Array( '' => Array( ), ), 'ListSQLs' => Array( ''=> 'SELECT %1$s.* %2$s FROM %1$s', ), // key - special, value - list select sql 'ListSortings' => Array( '' => Array( 'ForcedSorting' => Array('Priority' => 'desc'), 'Sorting' => Array('Keyword' => 'asc'), ) ), 'ItemSQLs' => Array( '' => 'SELECT %1$s.* %2$s FROM %1$s',), 'Fields' => Array( 'RelatedSearchId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'ResourceId' => Array('type'=>'int', 'not_null' => 1, 'required' => 1, 'default' => 0), 'Keyword' => Array('type'=>'string', 'required' => 1, 'not_null' => 1, 'default' => ''), 'ItemType' => Array('type'=>'int', 'not_null' => 1, 'required' => 1, 'default' => 0), 'Enabled' => Array('type'=>'int','formatter'=>'kOptionsFormatter','options'=>Array(0=>'la_Disabled',1=>'la_Enabled'),'not_null'=>1,'default'=>1,'use_phrases'=>1), 'Priority' => Array('type'=>'int','not_null'=>1,'default'=>0), ), 'VirtualFields' => Array( ), 'Grids' => Array( 'Default' => Array( - 'Icons' => Array('default'=>'icon16_custom.gif','1_0'=>'icon16_relation_one-way.gif','0_0'=>'icon16_relation_one-way_disabled.gif','1_1'=>'icon16_relation_reciprocal.gif','0_1'=>'icon16_relation_reciprocal_disabled.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used + 'Icons' => Array( + 'default' => 'icon16_item.png', + 0 => 'icon16_disabled.png', + 1 => 'icon16_item.png' + ), 'Fields' => Array( 'RelatedSearchId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'), 'Keyword' => Array( 'title'=>'la_col_Keyword', 'data_block' => 'grid_keyword_td', 'filter_block' => 'grid_like_filter'), 'Enabled' => Array( 'title'=>'la_col_Status', 'filter_block' => 'grid_options_filter'), ), ), ), ); \ No newline at end of file Index: branches/5.0.x/core/units/admin/admin_events_handler.php =================================================================== --- branches/5.0.x/core/units/admin/admin_events_handler.php (revision 12541) +++ branches/5.0.x/core/units/admin/admin_events_handler.php (revision 12542) @@ -1,1201 +1,1201 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); class AdminEventsHandler extends kDBEventHandler { function mapPermissions() { parent::mapPermissions(); $permissions = Array( 'OnSaveColumns' => array('self' => true), 'OnClosePopup' => array('self' => true), 'OnSaveSetting' => array('self' => true), // export/import permissions is checked within events 'OnExportCSV' => Array('self' => true), 'OnGetCSV' => Array('self' => true), 'OnCSVImportBegin' => Array('self' => true), 'OnCSVImportStep' => Array('self' => true), 'OnDropTempTablesByWID' => Array('self' => true), ); $this->permMapping = array_merge($this->permMapping, $permissions); } /** * Checks permissions of user * * @param kEvent $event */ function CheckPermission(&$event) { $system_events = Array ( 'OnResetModRwCache', 'OnResetCMSMenuCache', 'OnResetSections', 'OnResetConfigsCache', 'OnCompileTemplates', 'OnGenerateTableStructure', 'OnRebuildThemes', 'OnCheckPrefixConfig', ); if ($this->Application->isDebugMode(false) && in_array($event->Name, $system_events)) { return true; } $tools_events = Array ( 'OnBackup' => 'in-portal:backup.view', 'OnBackupProgress' => 'in-portal:backup.view', 'OnDeleteBackup' => 'in-portal:backup.view', 'OnBackupCancel' => 'in-portal:backup.view', 'OnRestore' => 'in-portal:restore.view', 'OnRestoreProgress' => 'in-portal:restore.view', 'OnRestoreCancel' => 'in-portal:backup.view', 'OnSqlQuery' => 'in-portal:sql_query.view', ); if (array_key_exists($event->Name, $tools_events)) { return $this->Application->CheckPermission($tools_events[$event->Name]); } if ($event->Name == 'OnSaveMenuFrameWidth') { if (!$this->Application->IsAdmin() || !$this->Application->LoggedIn()) { return false; } return true; } return parent::CheckPermission($event); } /** * Enter description here... * * @param kEvent $event */ function OnResetModRwCache(&$event) { if ($this->Application->GetVar('ajax') == 'yes') { $event->status = erSTOP; } $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName LIKE "mod_rw%"'); } function OnResetCMSMenuCache(&$event) { if ($this->Application->GetVar('ajax') == 'yes') { $event->status = erSTOP; } $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName IN ("cms_menu", "StructureTree")'); } function OnResetSections(&$event) { if ($this->Application->GetVar('ajax') == 'yes') { $event->status = erSTOP; } $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Cache WHERE VarName = "sections_parsed"'; $this->Conn->Query($sql); if (isset($this->Application->Memcached)) { $this->Application->Memcached->delete('master:sections_parsed'); } $event->SetRedirectParam('refresh_tree', 1); } function OnResetConfigsCache(&$event) { if ($this->Application->GetVar('ajax') == 'yes') { $event->status = erSTOP; } $sql = 'DELETE FROM ' . TABLE_PREFIX . 'Cache WHERE VarName IN("config_files", "configs_parsed", "sections_parsed")'; $this->Conn->Query($sql); if (isset($this->Application->Memcached)) { $this->Application->Memcached->delete('master:config_files'); $this->Application->Memcached->delete('master:configs_parsed'); $this->Application->Memcached->delete('master:sections_parsed'); } $event->SetRedirectParam('refresh_tree', 1); } function OnCompileTemplates(&$event) { $compiler =& $this->Application->recallObject('NParserCompiler'); /* @var $compiler NParserCompiler */ $compiler->CompileTemplatesStep(); $event->status = erSTOP; } /** * Generates sturcture for specified table * * @param kEvent $event * @author Alex */ function OnGenerateTableStructure(&$event) { $types_hash = Array( 'string' => 'varchar|text|mediumtext|longtext|date|datetime|time|timestamp|char|year|enum|set', 'int' => 'smallint|mediumint|int|bigint|tinyint', 'float' => 'float|double|decimal', ); $table_name = $this->Application->GetVar('table_name'); if (!$table_name) { echo 'error: no table name specified'; return ; } if (TABLE_PREFIX && !preg_match('/^'.preg_quote(TABLE_PREFIX, '/').'(.*)/', $table_name) && (strtolower($table_name) != $table_name)) { // table name without prefix, then add it (don't affect K3 tables named in lowercase) $table_name = TABLE_PREFIX.$table_name; } if (!$this->Conn->TableFound($table_name)) { // table with prefix doesn't exist, assume that just config prefix passed -> resolve table name from it $prefix = preg_replace('/^' . preg_quote(TABLE_PREFIX, '/') . '/', '', $table_name); if ($this->Application->prefixRegistred($prefix)) { // when prefix is found -> use it's table (don't affect K3 tables named in lowecase) $table_name = $this->Application->getUnitOption($prefix, 'TableName'); } } $table_info = $this->Conn->Query('DESCRIBE '.$table_name); // 1. prepare config keys $grids = Array ( 'Default' => Array ( - 'Icons' => Array ('default' => 'icon16_custom.gif'), + 'Icons' => Array ('default' => 'icon16_item.png'), 'Fields' => Array (), ) ); $grid_fields = Array(); $id_field = ''; $fields = Array(); $float_types = Array ('float', 'double', 'numeric'); foreach ($table_info as $field_info) { if (preg_match('/l[\d]+_.*/', $field_info['Field'])) { // don't put multilingual fields in config continue; } $field_options = Array (); $grid_col_options = Array( 'title' => 'la_col_' . $field_info['Field'], 'filter_block' => 'grid_like_filter', ); // 1. get php field type by mysql field type foreach ($types_hash as $php_type => $db_types) { if (preg_match('/'.$db_types.'/', $field_info['Type'])) { $field_options['type'] = $php_type; break; } } $default_value = $field_info['Default']; if (in_array($php_type, $float_types)) { // this is float number if (preg_match('/'.$db_types.'\([\d]+,([\d]+)\)/i', $field_info['Type'], $regs)) { // size is described in structure -> add formatter $field_options['formatter'] = 'kFormatter'; $field_options['format'] = '%01.'.$regs[1].'f'; if ($field_info['Null'] != 'YES') { // null fields, will most likely have NULL as default value $default_value = 0; } } else { // no size information, just convert to float if ($field_info['Null'] != 'YES') { // null fields, will most likely have NULL as default value $default_value = (float)$default_value; } } } if (preg_match('/varchar\(([\d]+)\)/i', $field_info['Type'], $regs)) { $field_options['max_len'] = (int)$regs[1]; } if ($field_info['Null'] != 'YES') { $field_options['not_null'] = 1; } if ($field_info['Key'] == 'PRI') { $default_value = 0; $id_field = $field_info['Field']; } if ($php_type == 'int' && ($field_info['Null'] != 'YES' || is_numeric($default_value))) { // is integer field AND not null $field_options['default'] = (int)$default_value; } else { $field_options['default'] = $default_value; } $fields[ $field_info['Field'] ] = $this->transformDump($field_options); $grids_fields[ $field_info['Field'] ] = $this->transformDump($grid_col_options); } $grids['Default']['Fields'] = $grids_fields; $ret = "'IDField' => '".$id_field."',\n'Fields' => A".substr(stripslashes(var_export($fields, true)), 1).','; $ret .= "\n"."'Grids' => ".stripslashes(var_export($grids, true)); $ret = str_replace('array (', 'Array (', $ret); $ret = preg_replace("/'(.*?)' => 'Array \((.*?), \)',/", "'\\1' => Array (\\2),", $ret); $ret = preg_replace("/\n '/", "\n\t'", $ret); $this->Application->InitParser(); ob_start(); echo $this->Application->ParseBlock(Array('name' => 'incs/header', 'body_properties' => 'style="background-color: #E7E7E7; margin: 8px;"')); ?> <script type="text/javascript"> set_window_title('Table "<?php echo $table_name; ?>" Structure'); </script> <a href="javascript:window_close();">Close Window</a><br /><br /> <?php echo $GLOBALS['debugger']->highlightString($ret); ?> <br /><br /><a href="javascript:window_close();">Close Window</a><br /> <?php echo $this->Application->ParseBlock(Array('name' => 'incs/footer')); echo ob_get_clean(); $event->status = erSTOP; } function transformDump($dump) { if (is_array($dump)) { $dump = var_export($dump, true); } $dump = preg_replace("/,\n[ ]*/", ', ', $dump); $dump = preg_replace("/array \(\n[ ]*/", 'Array (', $dump); // replace array start $dump = preg_replace("/,\n[ ]*\),/", "),", $dump); // replace array end return $dump; } /** * Refreshes ThemeFiles & Theme tables by actual content on HDD * * @param kEvent $event */ function OnRebuildThemes(&$event) { if ($this->Application->GetVar('ajax') == 'yes') { $event->status = erSTOP; } $themes_helper =& $this->Application->recallObject('ThemesHelper'); /* @var $themes_helper kThemesHelper */ $themes_helper->refreshThemes(); } function OnSaveColumns(&$event) { $picker_helper =& $this->Application->recallObject('ColumnPickerHelper'); /* @var $picker_helper kColumnPickerHelper */ $picker_helper->SetGridName($this->Application->GetLinkedVar('grid_name')); $picked = trim($this->Application->GetVar('picked_str'), '|'); $hidden = trim($this->Application->GetVar('hidden_str'), '|'); $main_prefix = $this->Application->GetVar('main_prefix'); $picker_helper->SaveColumns($main_prefix, $picked, $hidden); $this->finalizePopup($event); } /** * Saves various admin settings via ajax * * @param kEvent $event */ function OnSaveSetting(&$event) { if ($this->Application->GetVar('ajax') != 'yes') { return ; } $var_name = $this->Application->GetVar('var_name'); $var_value = $this->Application->GetVar('var_value'); $this->Application->StorePersistentVar($var_name, $var_value); $event->status = erSTOP; } /** * Just closes popup & deletes last_template & opener_stack if popup, that is closing * * @param kEvent $event */ function OnClosePopup(&$event) { $event->SetRedirectParam('opener', 'u'); } /** * Occurs right after initialization of the kernel, used mainly as hook-to event * * @param kEvent $event */ function OnStartup(&$event) { } /** * Occurs right before echoing the output, in Done method of application, used mainly as hook-to event * * @param kEvent $event */ function OnBeforeShutdown(&$event) { } /** * Is called after tree was build (when not from cache) * * @param kEvent $event */ function OnAfterBuildTree(&$event) { } /** * Called by AJAX to perform CSV export * * @param kEvent $event */ function OnExportCSV(&$event) { $export_helper =& $this->Application->recallObject('CSVHelper'); /* @var $export_helper kCSVHelper */ $prefix_special = $this->Application->GetVar('PrefixSpecial'); if(!$prefix_special) { $prefix_special = $export_helper->ExportData('prefix'); } $prefix_elems = split('\.|_', $prefix_special, 2); $perm_sections = $this->Application->getUnitOption($prefix_elems[0], 'PermSection'); if(!$this->Application->CheckPermission($perm_sections['main'].'.view')) { $this->Application->Redirect('no_permission'); } $export_helper->PrefixSpecial = $prefix_special; $export_helper->grid = $this->Application->GetVar('grid'); $export_helper->ExportStep(); $event->status = erSTOP; } /** * Returning created by AJAX CSV file * * @param kEvent $event */ function OnGetCSV(&$event) { $export_helper =& $this->Application->recallObject('CSVHelper'); /* @var $export_helper kCSVHelper */ $prefix_special = $export_helper->ExportData('prefix'); $prefix_elems = split('\.|_', $prefix_special, 2); $perm_sections = $this->Application->getUnitOption($prefix_elems[0], 'PermSection'); if(!$this->Application->CheckPermission($perm_sections['main'].'.view')) { $this->Application->Redirect('no_permission'); } $export_helper->GetCSV(); } /** * Enter description here... * * @param kEvent $event */ function OnCSVImportBegin(&$event) { $prefix_special = $this->Application->GetVar('PrefixSpecial'); $prefix_elems = split('\.|_', $prefix_special, 2); $perm_sections = $this->Application->getUnitOption($prefix_elems[0], 'PermSection'); if(!$this->Application->CheckPermission($perm_sections['main'].'.add') && !$this->Application->CheckPermission($perm_sections['main'].'.edit')) { $this->Application->Redirect('no_permission'); } $object =& $event->getObject( Array('skip_autoload' => true) ); /* @var $object kDBItem */ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); $field_values = array_shift($items_info); $object->SetFieldsFromHash($field_values); $event->redirect = false; $result = 'required'; if($object->GetDBField('ImportFile')) { $import_helper =& $this->Application->recallObject('CSVHelper'); /* @var $import_helper kCSVHelper */ $import_helper->PrefixSpecial = $this->Application->GetVar('PrefixSpecial'); $import_helper->grid = $this->Application->GetVar('grid'); $result = $import_helper->ImportStart( $object->GetField('ImportFile', 'file_paths') ); if($result === true) { $event->redirect = $this->Application->GetVar('next_template'); $event->SetRedirectParam('PrefixSpecial', $this->Application->GetVar('PrefixSpecial')); $event->SetRedirectParam('grid', $this->Application->GetVar('grid')); } } if($event->redirect === false) { $object->SetError('ImportFile', $result); $event->status = erFAIL; } } /** * Enter description here... * * @param kEvent $event */ function OnCSVImportStep(&$event) { $import_helper =& $this->Application->recallObject('CSVHelper'); /* @var $export_helper kCSVHelper */ $prefix_special = $import_helper->ImportData('prefix'); $prefix_elems = split('\.|_', $prefix_special, 2); $perm_sections = $this->Application->getUnitOption($prefix_elems[0], 'PermSection'); if(!$this->Application->CheckPermission($perm_sections['main'].'.add') && !$this->Application->CheckPermission($perm_sections['main'].'.edit')) { $this->Application->Redirect('no_permission'); } $import_helper->ImportStep(); $event->status = erSTOP; } /** * Shows unit config filename, where requested prefix is defined * * @param kEvent $event */ function OnCheckPrefixConfig(&$event) { $prefix = $this->Application->GetVar('config_prefix'); $config_file = $this->Application->UnitConfigReader->prefixFiles[$prefix]; $this->Application->InitParser(); ob_start(); echo $this->Application->ParseBlock(Array('name' => 'incs/header', 'body_properties' => 'style="background-color: #E7E7E7; margin: 8px;"')); ?> <script type="text/javascript"> set_window_title('Unit Config of "<?php echo $prefix; ?>" prefix'); </script> <a href="javascript:window_close();">Close Window</a><br /><br /> <strong>Prefix:</strong> <?php echo $prefix; ?><br /> <strong>Unit Config:</strong> <?php echo $GLOBALS['debugger']->highlightString($config_file); ?><br /> <br /><a href="javascript:window_close();">Close Window</a><br /> <?php echo $this->Application->ParseBlock(Array('name' => 'incs/footer')); echo ob_get_clean(); $event->status = erSTOP; } function OnUploadFile(&$event) { // Flash uploader does NOT send correct cookies, so we need to make our own check $cookie_name = 'adm_'.$this->Application->ConfigValue('SessionCookieName'); $this->Application->HttpQuery->Cookie['cookies_on'] = 1; $this->Application->HttpQuery->Cookie[$cookie_name] = $this->Application->GetVar('flashsid'); $admin_ses =& $this->Application->recallObject('Session.admin'); /* @var $admin_ses Session */ $user = $admin_ses->RecallVar('user_id'); $perm_helper =& $this->Application->recallObject('PermissionsHelper'); /* @var $perm_helper kPermissionsHelper */ /*if() { $prefix_special = $this->Application->GetVar('PrefixSpecial'); $prefix_elems = split('\.|_', $prefix_special, 2); $perm_sections = $this->Application->getUnitOption($prefix_elems[0], 'PermSection'); $section = $perm_sections['main']; } else {*/ $section = $event->getSection(); /*}*/ if ($this->Application->GetVar('t') != 'import/import_start' && !$perm_helper->CheckUserPermission($user, $section.'.add') && !$perm_helper->CheckUserPermission($user, $section.'.edit')) { $event->status = erPERM_FAIL; header('HTTP/1.0 403 You don\'t have permissions to upload'); exit; return; } if (!$cookie_name) $cookie_name = 'sid'; $value = $this->Application->GetVar('Filedata'); if (!$value) return ; $tmp_path = WRITEABLE . '/tmp/'; $fname = $value['name']; $id = $this->Application->GetVar('id'); if ($id) $fname = $id.'_'.$fname; if (!is_writable($tmp_path)) { header('HTTP/1.0 500 Write permissions not set on the server'); exit; } move_uploaded_file($value['tmp_name'], $tmp_path.$fname); exit; } function OnDropTempTablesByWID(&$event) { $sid = $this->Application->GetSID(); $wid = $this->Application->GetVar('m_wid'); $tables = $this->Conn->GetCol('SHOW TABLES'); $mask_edit_table = '/'.TABLE_PREFIX.'ses_'.$sid.'_'.$wid.'_edit_(.*)$/'; foreach($tables as $table) { if( preg_match($mask_edit_table,$table,$rets) ) { $this->Conn->Query('DROP TABLE IF EXISTS '.$table); } } echo 'OK'; $event->status = erSTOP; return ; } /** * Backup all data * * @param kEvent $event */ function OnBackup(&$event) { $a_tables = $this->Conn->GetCol('SHOW TABLES'); // array_keys($tables); $TableNames = Array(); for($x=0;$x<count($a_tables);$x++) { if(substr($a_tables[$x],0,strlen(TABLE_PREFIX))==TABLE_PREFIX) { if (!strstr($a_tables[$x], 'ses_')) { $TableNames[] = $a_tables[$x]; } } } // echo "<pre>"; print_r($TableNames); echo "</pre>"; // exit; $backupProgress = Array ( 'table_num' => 0, 'table_names' => $TableNames, 'table_count' => count($TableNames), 'record_count' => 0, 'file_name' => $this->Application->ConfigValue('Backup_Path')."/dump".adodb_mktime().".txt", ); $this->Application->RemoveVar('adm.backupcomplete_filename'); $this->Application->RemoveVar('adm.backupcomplete_filesize'); $out = array(); for($x=0;$x<count($TableNames);$x++) { if (!strstr($TableNames[$x], 'ses_')) { $out[] = $this->GetTableCreate($TableNames[$x]); } } $fp = fopen($backupProgress['file_name'], 'a'); $sql = "SELECT Name, Version FROM ".TABLE_PREFIX."Modules"; $r = $this->Conn->Query($sql); foreach ($r AS $a_module) { $version = $a_module['Version']; fwrite($fp, "# ".$a_module['Name']." Version: $version;\n"); } fwrite($fp, "#------------------------------------------\n\n"); fwrite($fp,implode("\n",$out)); fwrite($fp,"\n"); fclose($fp); $this->Application->StoreVar('adm.backup_status', serialize($backupProgress)); $event->redirect = 'tools/backup2'; } /** * Perform next backup step * * @param kEvent $event */ function OnBackupProgress(&$event) { $done_percent = $this->performBackup(); if ($done_percent == 100) { $event->redirect = 'tools/backup3'; return ; } echo $done_percent; $event->status = erSTOP; } /** * Stops Backup & redirect to Backup template * * @param kEvent $event */ function OnBackupCancel(&$event) { $event->redirect = 'tools/backup1'; } /** * Stops Restore & redirect to Restore template * * @param kEvent $event */ function OnRestoreCancel(&$event) { $event->redirect = 'tools/restore1'; } function performBackup() { $backupProgress = unserialize($this->Application->RecallVar('adm.backup_status')); // echo "<pre>"; print_r($backupProgress); echo "</pre>"; // exit; $CurrentTable = $backupProgress['table_names'][$backupProgress['table_num']]; // get records $a_records = $this->insert_data($CurrentTable,$backupProgress['record_count'],50,""); // echo "<pre>"; print_r($a_records); echo "</pre>"; // exit; if ($a_records['num'] < 50) { $backupProgress['table_num']++; // if ($backupProgress['table_names'][$backupProgress['table_num']] == TABLE_PREFIX.'Cache') { // $backupProgress['table_num']++; // } $backupProgress['record_count'] = 0; } else { $backupProgress['record_count']+=50; } if ($a_records['sql']) { $fp = fopen($backupProgress['file_name'], 'a'); fwrite($fp, $a_records['sql']); fclose($fp); } $percent = ($backupProgress['table_num'] / $backupProgress['table_count']) * 100; if ($percent >= 100) { $percent = 100; $this->Application->StoreVar('adm.backupcomplete_filename', $backupProgress['file_name']); $this->Application->StoreVar('adm.backupcomplete_filesize', round(filesize($backupProgress['file_name'])/1024/1024, 2)); // Mbytes } else { $this->Application->StoreVar('adm.backup_status', serialize($backupProgress)); } return round($percent); } //extracts the rows of data from tables using limits function insert_data($table, $start, $limit, $mywhere) { // global $out; if ($mywhere !="") { $whereclause= " WHERE ".$mywhere." "; } else { $whereclause = ""; } $a_data = $this->Conn->Query("SELECT * from $table $whereclause LIMIT $start, $limit"); // echo "SELECT * from $table $whereclause LIMIT $start, $limit"; // echo "<pre>"; print_r($a_records); echo "</pre>"; // exit; if (!$a_data) { return Array( 'num' => 0, 'sql' => '', ); } // $prefix = GetTablePrefix(); $rowcount = 0; $a_fields = array_keys($a_data[0]); $fields_sql = ''; foreach ($a_fields AS $field_name) { $fields_sql .= '`'.$field_name.'`,'; } $fields_sql = preg_replace('/(.*),$/', '\\1', $fields_sql); $temp = ''; foreach ($a_data AS $a_row) { $values_sql = ''; foreach ($a_row as $field_name => $field_value) { $values_sql .= $this->Conn->qstr($field_value).','; } $values_sql = preg_replace('/(.*),$/', '\\1', $values_sql); $sql = 'INSERT INTO '.$table.' ('.$fields_sql.') VALUES ('.$values_sql.');'; $sql = str_replace("\n", "\\n", $sql); $sql = str_replace("\r", "\\r", $sql); $temp .= $sql."\n"; } if(strlen(TABLE_PREFIX)) { $temp = str_replace("INSERT INTO ".TABLE_PREFIX, "INSERT INTO ", $temp); } return Array( 'num' => count($a_data), 'sql' => $temp, ); } function GetTableCreate($table, $crlf="\n") { $schema_create = 'DROP TABLE IF EXISTS ' . $table . ';' . $crlf; $schema_create .="# --------------------------------------------------------".$crlf; $this->Conn->Query("SET SQL_QUOTE_SHOW_CREATE = 0"); $tmpres = $this->Conn->Query("SHOW CREATE TABLE $table"); // echo "<pre>"; print_r($tmpres); echo "</pre>"; // exit; if(is_array($tmpres) && isset($tmpres[0])) { $tmpres = $tmpres[0]; $pos = strpos($tmpres["Create Table"], ' ('); $pos2 = strpos($tmpres["Create Table"], '('); if ($pos2 != $pos + 1) { $pos = $pos2; $tmpres["Create Table"] = str_replace(",", ",\n ", $tmpres["Create Table"]); } $tmpres["Create Table"] = substr($tmpres["Create Table"], 0, 13) . (($use_backquotes) ? $tmpres["Table"] : $tmpres["Table"]) . substr($tmpres["Create Table"], $pos); $tmpres["Create Table"] = str_replace("\n", $crlf, $tmpres["Create Table"]); if (preg_match_all('((,\r?\n[\s]*(CONSTRAINT|FOREIGN[\s]*KEY)[^\r\n,]+)+)', $tmpres["Create Table"], $regs)) { if (!isset($sql_constraints)) { if (isset($GLOBALS['no_constraints_comments'])) { $sql_constraints = ''; } else { $sql_constraints = $crlf . '#' . $crlf . '# ' . $GLOBALS['strConstraintsForDumped'] . $crlf . '#' . $crlf; } } if (!isset($GLOBALS['no_constraints_comments'])) { $sql_constraints .= $crlf .'#' . $crlf .'# ' . $GLOBALS['strConstraintsForTable'] . ' ' . $table . $crlf . '#' . $crlf; } $sql_constraints .= 'ALTER TABLE $table $crlf ' . preg_replace('/(,\r?\n|^)([\s]*)(CONSTRAINT|FOREIGN[\s]*KEY)/', '\1\2ADD \3', substr($regs[0][0], 2)) . ";\n"; $tmpres["Create Table"] = preg_replace('((,\r?\n[\s]*(CONSTRAINT|FOREIGN[\s]*KEY)[^\r\n,]+)+)', '', $tmpres["Create Table"]); } $schema_create .= $tmpres["Create Table"]; } if(strlen($schema_create)) { $schema_create = str_replace("DROP TABLE IF EXISTS ".TABLE_PREFIX,"DROP TABLE ",$schema_create); $schema_create = str_replace("CREATE TABLE ".TABLE_PREFIX,"CREATE TABLE ",$schema_create); while(strlen($schema_create && substr($schema_create,-1)!=")")) { $schema_create = substr($schema_create,0,-1); } } $schema_create .= "\n# --------------------------------------------------------\n"; return $schema_create; } /** * Deletes one backup file * * @param kEvent $event */ function OnDeleteBackup(&$event) { @unlink($this->get_backup_file()); } function get_backup_file() { return $this->Application->ConfigValue('Backup_Path').'/dump'.$this->Application->GetVar('backupdate').'.txt'; } /** * Starts restore process * * @param kEvent $event */ function OnRestore(&$event) { $file = $this->get_backup_file(); $restoreProgress = Array ( 'file_pos' => 0, 'file_name' => $file, 'file_size' => filesize($file), ); $this->Application->RemoveVar('adm.restore_success'); $this->Application->StoreVar('adm.restore_status', serialize($restoreProgress)); $event->redirect = 'tools/restore3'; } function OnRestoreProgress(&$event) { $done_percent = $this->performRestore(); if ($done_percent == -3) { $event->redirect = 'tools/restore4'; return ; } if ($done_percent < 0) { $this->Application->StoreVar('adm.restore_error', 'File read error'); $event->redirect = 'tools/restore4'; return ; } if ($done_percent == 100) { $this->replaceRestoredFiles(); $this->Application->StoreVar('adm.restore_success', 1); $event->redirect = 'tools/restore4'; return ; } echo $done_percent; $event->status = erSTOP; } function replaceRestoredFiles() { // gather restored table names $tables = $this->Conn->GetCol('SHOW TABLES'); $mask_restore_table = '/^restore'.TABLE_PREFIX.'(.*)$/'; foreach($tables as $table) { if( preg_match($mask_restore_table,$table,$rets) ) { $old_table = substr($table, 7); $this->Conn->Query('DROP TABLE IF EXISTS '.$old_table); $this->Conn->Query('CREATE TABLE '.$old_table.' LIKE '.$table); $this->Conn->Query('INSERT INTO '.$old_table.' SELECT * FROM '.$table); $this->Conn->Query('DROP TABLE '.$table); } } } function performRestore() { $restoreProgress = unserialize($this->Application->RecallVar('adm.restore_status')); $filename = $restoreProgress['file_name']; $FileOffset = $restoreProgress['file_pos']; $MaxLines = 200; $size = filesize($filename); if($FileOffset > $size) { return -2; } $fp = fopen($filename,"r"); if(!$fp) { return -1; } if($FileOffset>0) { fseek($fp,$FileOffset); } else { $EndOfSQL = FALSE; $sql = ""; while(!feof($fp) && !$EndOfSQL) { $l = fgets($fp); if(substr($l,0,11)=="INSERT INTO") { $EndOfSQL = TRUE; } else { $sql .= $l; $FileOffset = ftell($fp) - strlen($l); } } if(strlen($sql)) { $error = $this->runSchemaText($sql); if ($error != '') { $this->Application->StoreVar('adm.restore_error', $error); return -3; } } fseek($fp,$FileOffset); } $LinesRead = 0; $sql = ""; $AllSql = array(); while($LinesRead < $MaxLines && !feof($fp)) { $sql = fgets($fp); if(strlen($sql)) { $AllSql[] = $sql; $LinesRead++; } } if(!feof($fp)) { $FileOffset = ftell($fp); } else { $FileOffset = $size; } fclose($fp); if(count($AllSql)>0) { $error = $this->runSQLText($AllSql); if ($error != '') { $this->Application->StoreVar('adm.restore_error', $error); return -3; } } $restoreProgress['file_pos'] = $FileOffset; $this->Application->StoreVar('adm.restore_status', serialize($restoreProgress)); return round($FileOffset/$size * 100); // $this->Application->StoreVar('adm.restore_error', 'lalalal'); // $event->redirect = 'tools/restore4'; } function runSchemaText($sql) { $table_prefix = 'restore'.TABLE_PREFIX; // $table_prefix = TABLE_PREFIX; if (strlen($table_prefix) > 0) { $replacements = Array ('INSERT INTO ', 'UPDATE ', 'ALTER TABLE ', 'DELETE FROM ', 'REPLACE INTO '); foreach ($replacements as $replacement) { $sql = str_replace($replacement, $replacement . $table_prefix, $sql); } } $sql = str_replace('CREATE TABLE ', 'CREATE TABLE IF NOT EXISTS ' . $table_prefix, $sql); $sql = str_replace('DROP TABLE ', 'DROP TABLE IF EXISTS ' . $table_prefix, $sql); $commands = explode("# --------------------------------------------------------",$sql); if(count($commands)>0) { // $query_func = getConnectionInterface('query',$dbo_type); // $errorno_func = getConnectionInterface('errorno',$dbo_type); // $errormsg_func = getConnectionInterface('errormsg',$dbo_type); for($i = 0; $i < count($commands); $i++) { $cmd = $commands[$i]; $cmd = trim($cmd); if(strlen($cmd)>0) { $this->Conn->Query($cmd); if($this->Conn->errorCode != 0) { return $this->Conn->errorMessage." COMMAND:<PRE>$cmd</PRE>"; } } } } } function runSQLText($allsql) { $line = 0; // $query_func = getConnectionInterface('query',$dbo_type); // $errorno_func = getConnectionInterface('errorno',$dbo_type); // $errormsg_func = getConnectionInterface('errormsg',$dbo_type); while($line<count($allsql)) { $sql = $allsql[$line]; if(strlen(trim($sql))>0 && substr($sql,0,1)!="#") { $table_prefix = 'restore'.TABLE_PREFIX; if (strlen($table_prefix) > 0) { $replacements = Array ('INSERT INTO ', 'UPDATE ', 'ALTER TABLE ', 'DELETE FROM ', 'REPLACE INTO '); foreach ($replacements as $replacement) { $sql = str_replace($replacement, $replacement . $table_prefix, $sql); } } $sql = str_replace('CREATE TABLE ', 'CREATE TABLE IF NOT EXISTS ' . $table_prefix, $sql); $sql = str_replace('DROP TABLE ', 'DROP TABLE IF EXISTS ' . $table_prefix, $sql); $sql = trim($sql); if(strlen($sql)>0) { $this->Conn->Query($sql); if($this->Conn->errorCode != 0) { return $this->Conn->errorMessage." COMMAND:<PRE>$sql</PRE>"; } } } $line++; } } /** * Starts restore process * * @param kEvent $event */ function OnSqlQuery(&$event) { $sql = $this->Application->GetVar('sql'); if ($sql) { $start = $this->getMoment(); $result = $this->Conn->Query($sql); $this->Application->SetVar('sql_time', round($this->getMoment() - $start, 7)); if ($result) { if (is_array($result)) { $this->Application->SetVar('sql_has_rows', 1); $this->Application->SetVar('sql_rows', serialize($result)); } } $check_sql = trim(strtolower($sql)); if ( (substr($check_sql, 0, 6) == 'insert') || (substr($check_sql, 0, 6) == 'update') || (substr($check_sql, 0, 7) == 'replace') || (substr($check_sql, 0, 6) == 'delete') ) { $this->Application->SetVar('sql_has_affected', 1); $this->Application->SetVar('sql_affected', $this->Conn->getAffectedRows()); } } $this->Application->SetVar('query_status', 1); $event->status = erFAIL; } function getMoment() { list($usec, $sec) = explode(' ', microtime()); return ((float)$usec + (float)$sec); } /** * Occurs after unit config cache was successfully rebuilt * * @param kEvent $event */ function OnAfterCacheRebuild(&$event) { } /** * Removes "Community -> Groups" section when it is not allowed * * @param kEvent $event */ function OnAfterConfigRead(&$event) { parent::OnAfterConfigRead($event); if (!$this->Application->ConfigValue('AdvancedUserManagement')) { $section_ajustments = $this->Application->getUnitOption($event->Prefix, 'SectionAdjustments'); if (!$section_ajustments) { $section_ajustments = Array (); } $section_ajustments['in-portal:user_groups'] = 'remove'; $this->Application->setUnitOption($event->Prefix, 'SectionAdjustments', $section_ajustments); } } /** * Saves menu (tree) frame width * * @param kEvent $event */ function OnSaveMenuFrameWidth(&$event) { $event->status = erSTOP; if (!$this->Application->ConfigValue('ResizableFrames')) { return ; } $sql = 'UPDATE ' . $this->Application->getUnitOption('conf', 'TableName') . ' SET VariableValue = ' . (int)$this->Application->GetVar('width') . ' WHERE VariableName = "MenuFrameWidth"'; $this->Conn->Query($sql); if ($this->Conn->getAffectedRows()) { $this->Application->UnitConfigReader->ResetParsedData(false); } } } \ No newline at end of file Index: branches/5.0.x/core/units/config_search/config_search_config.php =================================================================== --- branches/5.0.x/core/units/config_search/config_search_config.php (revision 12541) +++ branches/5.0.x/core/units/config_search/config_search_config.php (revision 12542) @@ -1,127 +1,127 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array( 'Prefix' => 'confs', 'Clones' => Array( 'confs-cf' => Array( 'Prefix' => 'confs-cf', 'ParentPrefix' => 'cf', 'ParentTableKey' => 'CustomFieldId', // linked field in master table 'ForeignKey' => 'CustomFieldId', // linked field in subtable 'AutoClone' => false, // because OnCreateCustomField hook does the stuff 'AutoDelete' => true, 'Hooks' => Array( Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => '#PARENT#', 'HookToSpecial' => '*', 'HookToEvent' => Array('OnAfterItemCreate', 'OnAfterItemUpdate'), 'DoPrefix' => '', 'DoSpecial' => '*', 'DoEvent' => 'OnCreateCustomField', ), ), ), ), 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), 'EventHandlerClass' => Array('class'=>'ConfigSearchEventHandler','file'=>'config_search_event_handler.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class'=>'ConfigSearchTagProcessor','file'=>'config_search_tag_processor.php','build_event'=>'OnBuild'), 'AutoLoad' => true, 'hooks' => Array(), 'QueryString' => Array( 1 => 'id', 2 => 'page', 3 => 'event', ), 'IDField' => 'SearchConfigId', 'TitleField' => 'FieldName', 'TitlePresets' => Array( 'default' => Array( 'new_status_labels' => Array('confs'=>'!la_title_Adding_ConfigSearch!'), 'edit_status_labels' => Array('confs'=>'!la_title_Editing_ConfigSearch!'), 'new_titlefield' => Array('confs'=>'!la_title_New_ConfigSearch!'), ), 'configsearch_edit' => Array('prefixes' => Array('confs'), 'format' => "#confs_status# '#confs_titlefield#' - !la_title_General!"), 'config_list_search' => Array('prefixes' => Array('confs_List'), 'tag_params' => Array('confs' => Array('per_page' => -1) ), 'format' => "!la_updating_config!"), ), 'TableName' => TABLE_PREFIX.'SearchConfig', 'CalculatedFields' => Array( '' => Array( 'IsCustom' => 'IF(CustomFieldId IS NULL, 0, 1)', ), ), 'ListSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'), 'ItemSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'), 'Fields' => Array( 'TableName' => Array('type' => 'string','not_null' => '1', 'required' => 1, 'default' => ''), 'FieldName' => Array('type' => 'string','not_null' => '1', 'required' => 1, 'default' => ''), 'SimpleSearch' => Array('type' => 'int', 'not_null' => 1, 'default' => 1), 'AdvancedSearch' => Array('type' => 'int', 'not_null' => 1, 'default' => 1), 'Description' => Array('type' => 'string','default' => null), 'DisplayName' => Array('type' => 'string', 'required' => 1, 'default' => null), 'ModuleName' => Array('type' => 'string', 'formatter'=>'kOptionsFormatter', 'options'=>Array(''=>''), 'options_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Modules WHERE Loaded = 1 ORDER BY LoadOrder', 'option_key_field'=>'Name', 'option_title_field'=>'Name', 'not_null' => '1','default' => 'In-Portal'), 'ConfigHeader' => Array('type' => 'string', 'required' => 1, 'default' => null), 'DisplayOrder' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'SearchConfigId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'Priority' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'FieldType' => Array('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array('text' => 'text', 'range' => 'range', 'boolean' => 'boolean', 'date' => 'date'), 'not_null' => '1', 'required' => 1, 'default' => 'text'), 'ForeignField' => Array('type' => 'string','default' => null), 'JoinClause' => Array('type' => 'string','default' => null), 'IsWhere' => Array('type' => 'string','default' => null), 'IsNotWhere' => Array('type' => 'string','default' => null), 'ContainsWhere' => Array('type' => 'string','default' => null), 'NotContainsWhere' => Array('type' => 'string','default' => null), 'CustomFieldId' => Array('type' => 'int', 'default' => null), ), 'VirtualFields' => Array( 'IsCustom' => Array('type' => 'int', 'default' => 0), ), 'ListSortings' => Array( '' => Array( 'ForcedSorting' => Array('IsCustom' => 'asc'), 'Sorting' => Array('DisplayOrder' => 'asc'), ) ), 'Grids' => Array( 'Default' => Array( - 'Icons' => Array('default'=>'icon16_custom.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used + 'Icons' => Array('default' => 'icon16_item.png'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used 'Fields' => Array( 'TableName' => Array( 'title'=>'la_col_TableName', 'data_block' => 'grid_data_td'), 'FieldName' => Array( 'title'=>'la_col_FieldName', 'data_block' => 'grid_data_td' ), 'SimpleSearch' => Array( 'title'=>'la_col_SimpleSearch', 'data_block' => 'grid_data_td'), ), ), ), ); \ No newline at end of file Index: branches/5.0.x/core/units/relationship/relationship_config.php =================================================================== --- branches/5.0.x/core/units/relationship/relationship_config.php (revision 12541) +++ branches/5.0.x/core/units/relationship/relationship_config.php (revision 12542) @@ -1,120 +1,126 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array( 'Prefix' => 'rel', 'Clones' => Array( 'c-rel' => Array('ParentPrefix' => 'c'), 'l-rel' => Array('ParentPrefix' => 'l'), 'n-rel' => Array('ParentPrefix' => 'n'), 'bb-rel'=> Array('ParentPrefix' => 'bb'), /*'p-rel' => Array('ParentPrefix' => 'p'),*/ /*'cms-rel'=> Array('ParentPrefix' => 'cms'),*/ ), 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), 'EventHandlerClass' => Array('class'=>'RelationshipEventHandler','file'=>'relationship_event_handler.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class'=>'RelationshipTagProcessor','file'=>'relationship_tp.php','build_event'=>'OnBuild'), 'AutoLoad' => true, 'Hooks' => Array( Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => '#PARENT#', 'HookToSpecial' => '*', 'HookToEvent' => Array('OnAfterItemDelete'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnDeleteForeignRelations', ), ), 'QueryString' => Array( 1 => 'id', 2 => 'page', 3 => 'event', ), 'IDField' => 'RelationshipId', 'StatusField' => Array('Enabled','Type'), 'TableName' => TABLE_PREFIX.'Relationship', 'ParentTableKey'=> 'ResourceId', 'ForeignKey' => 'SourceId', 'ParentPrefix' => 'p', 'AutoDelete' => true, 'AutoClone' => true, 'FilterMenu' => Array( 'Groups' => Array( Array('mode' => 'AND', 'filters' => Array('show_active','show_disabled'), 'type' => WHERE_FILTER), Array('mode' => 'AND', 'filters' => Array('show_recip','show_oneway'), 'type' => WHERE_FILTER), ), 'Filters' => Array( 'show_active' => Array('label' =>'la_Active', 'on_sql' => '', 'off_sql' => 'Enabled != 1' ), 'show_disabled' => Array('label' => 'la_Disabled', 'on_sql' => '', 'off_sql' => 'Enabled != 0' ), 's1' => Array(), 'show_recip' => Array('label' => 'la_Reciprocal', 'on_sql' => '', 'off_sql' => '%1$s.Type != 1' ), 'show_oneway' => Array('label' => 'la_OneWay', 'on_sql' => '', 'off_sql' => '%1$s.Type != 2' ), ) ), 'CalculatedFields' => Array( '' => Array( 'ItemName' => 'TRIM(CONCAT(#ITEM_NAMES#))', 'ItemType' => '#ITEM_TYPES#', ), ), 'ListSQLs' => Array( ''=> 'SELECT %1$s.RelationshipId, %1$s.Priority, %1$s.Type, %1$s.Enabled %2$s FROM %1$s #ITEM_JOIN#', ), // key - special, value - list select sql 'ListSortings' => Array( '' => Array( 'ForcedSorting' => Array('Priority' => 'desc'), 'Sorting' => Array('ItemName' => 'asc', 'ItemType' => 'asc'), ) ), 'ItemSQLs' => Array( '' => 'SELECT %1$s.* %2$s FROM %1$s #ITEM_JOIN#',), 'Fields' => Array( 'RelationshipId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'SourceId' => Array('type'=>'int', 'required' => 1, 'default' => NULL), 'TargetId' => Array('type'=>'int', 'required' => 1, 'default' => NULL), 'SourceType' => Array('type'=>'int','not_null'=>1,'default'=>0), 'TargetType' => Array('type'=>'int','not_null'=>1,'default'=>0), 'Type' => Array('type'=>'int','formatter'=>'kOptionsFormatter', 'required' => 1, 'options'=>Array(1=>'la_Reciprocal',0=>'la_OneWay'), 'not_null'=>1,'default'=>0,'use_phrases'=>1), 'Enabled' => Array('type'=>'int','formatter'=>'kOptionsFormatter','options'=>Array(0=>'la_Disabled',1=>'la_Enabled'), 'not_null' => 1, 'default'=>1, 'use_phrases'=>1), 'Priority' => Array('type'=>'int','not_null'=>1,'default'=>0), ), 'VirtualFields' => Array( 'ItemName' => Array(), 'ItemType' => Array(), ), 'Grids' => Array( 'Default' => Array( - 'Icons' => Array('default'=>'icon16_custom.gif','1_0'=>'icon16_relation_one-way.gif','0_0'=>'icon16_relation_one-way_disabled.gif','1_1'=>'icon16_relation_reciprocal.gif','0_1'=>'icon16_relation_reciprocal_disabled.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used + 'Icons' => Array( + 'default' => 'icon16_item.png', + '1_0' => 'icon16_relation_one-way.gif', + '0_0' => 'icon16_relation_one-way_disabled.gif', + '1_1' => 'icon16_relation_reciprocal.gif', + '0_1' => 'icon16_relation_reciprocal_disabled.gif' + ), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used 'Fields' => Array( 'RelationshipId' => Array ('title' => 'la_col_Id', 'filter_block' => 'grid_range_filter'), 'ItemName' => Array( 'title'=>'la_col_TargetId', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_like_filter'), 'ItemType' => Array( 'title'=>'la_col_TargetType', 'filter_block' => 'grid_like_filter'), 'Type' => Array( 'title'=>'la_col_RelationshipType', 'filter_block' => 'grid_options_filter'), 'Enabled' => Array( 'title'=>'la_col_Status', 'filter_block' => 'grid_options_filter'), ), ), ), ); \ No newline at end of file Index: branches/5.0.x/core/units/languages/languages_config.php =================================================================== --- branches/5.0.x/core/units/languages/languages_config.php (revision 12541) +++ branches/5.0.x/core/units/languages/languages_config.php (revision 12542) @@ -1,270 +1,276 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array( 'Prefix' => 'lang', 'ItemClass' => Array('class'=>'LanguagesItem','file'=>'languages_item.php','build_event'=>'OnItemBuild'), 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), 'EventHandlerClass' => Array('class'=>'LanguagesEventHandler','file'=>'languages_event_handler.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class'=>'LanguagesTagProcessor','file'=>'languages_tag_processor.php','build_event'=>'OnBuild'), 'AutoLoad' => true, 'Hooks' => Array( Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'lang', 'HookToSpecial' => '', 'HookToEvent' => Array('OnSave'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnReflectMultiLingualFields', ), Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'lang', 'HookToSpecial' => '', 'HookToEvent' => Array('OnPreSave'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnCopyLabels', ), Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'lang', 'HookToSpecial' => '*', 'HookToEvent' => Array('OnSave'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnUpdatePrimary', ), Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'lang', 'HookToSpecial' => '*', 'HookToEvent' => Array('OnSave','OnMassDelete'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnScheduleTopFrameReload', ), ), 'QueryString' => Array( 1 => 'id', 2 => 'page', 3 => 'event', 4 => 'mode', ), 'IDField' => 'LanguageId', 'StatusField' => Array('Enabled','PrimaryLang'), // field, that is affected by Approve/Decline events 'TitleField' => 'PackName', // field, used in bluebar when editing existing item 'TitlePresets' => Array( 'default' => Array( 'new_status_labels' => Array('lang'=>'!la_title_Adding_Language!'), 'edit_status_labels' => Array('lang'=>'!la_title_Editing_Language!'), 'new_titlefield' => Array('lang'=>''), ), 'languages_list' => Array( 'prefixes' => Array('lang_List'), 'format' => "!la_title_Configuration! - !la_title_LanguagePacks!", 'toolbar_buttons' => Array ('new_item', 'edit', 'delete', 'export', 'import', 'setprimary', 'refresh', 'view', 'dbl-click'), ), 'languages_edit_general' => Array( 'prefixes' => Array('lang'), 'format' => "#lang_status# '#lang_titlefield#' - !la_title_General!"), 'phrases_list' => Array( 'prefixes' => Array('lang','phrases_List'), 'format' => "#lang_status# '#lang_titlefield#' - !la_title_Labels!"), 'phrase_edit' => Array ( 'prefixes' => Array('phrases'), 'new_status_labels' => Array('phrases'=>'!la_title_Adding_Phrase!'), 'edit_status_labels' => Array('phrases' => '!la_title_Editing_Phrase!'), 'format' => "#phrases_status# '#phrases_titlefield#'" ), 'import_language' => Array( 'prefixes' => Array('phrases.import'), 'format' => "!la_title_InstallLanguagePackStep1!"), 'import_language_step2' => Array( 'prefixes' => Array('phrases.import'), 'format' => "!la_title_InstallLanguagePackStep2!"), 'export_language' => Array( 'prefixes' => Array('phrases.export'), 'format' => "!la_title_ExportLanguagePackStep1!"), 'export_language_results' => Array( 'prefixes' => Array(), 'format' => "!la_title_ExportLanguagePackResults!"), 'events_list' => Array( 'prefixes' => Array('lang','emailevents_List'), 'format' => "#lang_status# '#lang_titlefield#' - !la_title_EmailEvents!"), 'event_edit' => Array( 'prefixes' => Array('emailevents'), 'edit_status_labels' => Array('emailevents' => '!la_title_Editing_EmailEvent!'), 'format' => '#emailevents_status# - #emailevents_titlefield#'), 'email_messages_edit' => Array( 'prefixes' => Array('lang','emailmessages'), 'new_titlefield' => Array('emailmessages' => ''), 'format' => "#lang_status# '#lang_titlefield#' - !la_title_EditingEmailEvent! '#emailmessages_titlefield#'"), // for separate language list 'languages_list_st' => Array ('prefixes' => Array ('lang_List'), 'format' => "!la_title_LanguagesManagement!"), ), 'EditTabPresets' => Array ( 'Default' => Array ( 'general' => Array ('title' => 'la_tab_General', 't' => 'regional/languages_edit', 'priority' => 1), 'labels' => Array ('title' => 'la_tab_Labels', 't' => 'regional/languages_edit_phrases', 'priority' => 2), 'email_events' => Array ('title' => 'la_tab_EmailEvents', 't' => 'regional/languages_edit_email_events', 'priority' => 3), ), ), 'PermSection' => Array('main' => 'in-portal:configure_lang'), 'Sections' => Array ( 'in-portal:configure_lang' => Array ( 'parent' => 'in-portal:website_setting_folder', 'icon' => 'conf_regional', 'label' => 'la_tab_Regional', 'url' => Array('t' => 'regional/languages_list', 'pass' => 'm'), 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:set_primary', 'advanced:import', 'advanced:export'), 'priority' => 4, 'type' => stTREE, ), // "Lang. Management" /*'in-portal:lang_management' => Array ( 'parent' => 'in-portal:system', 'icon' => 'core:settings_general', 'label' => 'la_title_LangManagement', 'url' => Array ('t' => 'languages/language_list', 'pass' => 'm'), 'permissions' => Array ('view', 'add', 'edit', 'delete'), 'perm_prefix' => 'lang', 'priority' => 10.03, 'show_mode' => smSUPER_ADMIN, 'type' => stTREE, ),*/ ), 'TableName' => TABLE_PREFIX.'Language', 'SubItems' => Array('phrases','emailmessages'), 'FilterMenu' => Array( 'Groups' => Array( Array('mode' => 'AND', 'filters' => Array(0,1), 'type' => WHERE_FILTER), ), 'Filters' => Array( 0 => Array('label' =>'la_Enabled', 'on_sql' => '', 'off_sql' => '%1$s.Enabled != 1' ), 1 => Array('label' => 'la_Disabled', 'on_sql' => '', 'off_sql' => '%1$s.Enabled != 0' ), ) ), 'AutoDelete' => true, 'AutoClone' => true, 'ListSQLs' => Array( ''=>'SELECT * FROM %s', ), // key - special, value - list select sql 'ItemSQLs' => Array( ''=>'SELECT * FROM %s', ), 'ListSortings' => Array ( '' => Array ( 'Sorting' => Array ('Priority' => 'desc', 'PackName' => 'asc'), ), ), 'Fields' => Array( 'LanguageId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'PackName' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Language ORDER BY PackName', 'option_title_field' => 'PackName', 'option_key_field' => 'PackName', 'not_null' => 1, 'required' => 1, 'default' => '' ), 'LocalName' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Language ORDER BY PackName', 'option_title_field' => 'LocalName', 'option_key_field' => 'LocalName', 'not_null' => 1, 'required' => 1, 'default' => '' ), 'Enabled' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(0 => 'la_Disabled', 1 => 'la_Active'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 1), 'PrimaryLang' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), 'AdminInterfaceLang' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), 'Priority' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'IconURL' => Array ('type' => 'string', 'max_len' => 255, 'default' => NULL), 'IconDisabledURL' => Array ('type' => 'string', 'max_len' => 255, 'default' => NULL), 'DateFormat' => Array('type' => 'string','not_null' => '1','default' => '','required'=>1), 'TimeFormat' => Array('type' => 'string','not_null' => '1','default' => '','required'=>1), 'InputDateFormat' => Array('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array('m/d/Y' => 'mm/dd/yyyy', 'd/m/Y' => 'dd/mm/yyyy', 'm.d.Y' => 'mm.dd.yyyy', 'd.m.Y' => 'dd.mm.yyyy'), 'not_null' => '1','default' => 'm/d/Y', 'required' => 1), 'InputTimeFormat' => Array('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array('g:i:s A' => 'g:i:s A', 'g:i A' => 'g:i A', 'H:i:s' => 'H:i:s', 'H:i' => 'H:i' ), 'not_null' => '1','default' => 'g:i:s A', 'required' => 1), 'DecimalPoint' => Array('type' => 'string','not_null' => 1, 'required' => 1, 'default' => ''), 'ThousandSep' => Array('type' => 'string','not_null' => 1, 'default' => ''), 'Charset' => Array('type' => 'string','not_null' => '1','default' => '','required'=>1), 'UnitSystem' => Array('type' => 'int','not_null' => 1, 'default' => 1, 'formatter' => 'kOptionsFormatter','options' => Array(1 => 'la_Metric', 2 => 'la_US_UK'),'use_phrases' => 1), 'FilenameReplacements' => Array ('type' => 'string', 'default' => NULL), 'Locale' => Array('type' => 'string','not_null' => 1, 'default' => 'en-US', 'formatter' => 'kOptionsFormatter', 'options' => Array('' => ''), 'options_sql' => "SELECT CONCAT(LocaleName, ' ' ,'\/',Locale,'\/') AS name, Locale FROM ".TABLE_PREFIX."LocalesList ORDER BY LocaleId", 'option_title_field' => "name", 'option_key_field' => 'Locale', ), 'UserDocsUrl' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''), ), 'VirtualFields' => Array( 'CopyLabels' => Array('type' => 'int', 'default' => 0), 'CopyFromLanguage' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Language ORDER BY PackName', 'option_title_field' => 'PackName', 'option_key_field' => 'LanguageId'), ), 'Grids' => Array( 'Default' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', '0_0' => 'icon16_disabled.png', '0_1' => 'icon16_disabled.png', '1_0' => 'icon16_item.png', '1_1' => 'icon16_primary.png', ), 'Fields' => Array( 'LanguageId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 50, ), 'PackName' => Array ('title' => 'la_col_PackName', 'filter_block' => 'grid_options_filter', 'width' => 150, ),// 'PrimaryLang' => Array ('title' => 'la_col_IsPrimaryLanguage', 'filter_block' => 'grid_options_filter', 'width' => 150, ), 'AdminInterfaceLang' => Array ('title' => 'la_col_AdminInterfaceLang', 'filter_block' => 'grid_options_filter', 'width' => 150, ), 'Charset' => Array ('title' => 'la_col_Charset', 'filter_block' => 'grid_options_filter', 'width' => 100, ), 'Priority' => Array ('title' => 'la_col_Priority', 'filter_block' => 'grid_options_filter', 'width' => 60, ), 'Enabled' => Array ('title' => 'la_col_Status', 'filter_block' => 'grid_options_filter', 'width' => 60, ), ), ), /*'LangManagement' => Array ( - 'Icons' => Array ('default' => 'icon16_custom.gif', '0_0' => 'icon16_language_disabled.gif', '1_0' => 'icon16_language.gif', '0_1' => 'icon16_language_disabled.gif', '1_1' => 'icon16_language_primary.gif'), + 'Icons' => Array ( + 'default' => 'icon16_item.png', + '0_0' => 'icon16_disabled.png', + '0_1' => 'icon16_disabled.png', + '1_0' => 'icon16_item.png', + '1_1' => 'icon16_primary.png', + ), 'Fields' => Array ( 'LanguageId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60), 'PackName' => Array ('title' => 'la_col_Language', 'filter_block' => 'grid_options_filter', 'width' => 120), 'LocalName' => Array ('title' => 'la_col_Prefix', 'filter_block' => 'grid_options_filter', 'width' => 120), 'IconURL' => Array ('title' => 'la_col_Image', 'filter_block' => 'grid_empty_filter', 'width' => 80), ), ),*/ ), ); \ No newline at end of file Index: branches/5.0.x/core/units/stylesheets/stylesheets_config.php =================================================================== --- branches/5.0.x/core/units/stylesheets/stylesheets_config.php (revision 12541) +++ branches/5.0.x/core/units/stylesheets/stylesheets_config.php (revision 12542) @@ -1,173 +1,177 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array( 'Prefix' => 'css', 'ItemClass' => Array('class'=>'StylesheetsItem','file'=>'stylesheets_item.php','build_event'=>'OnItemBuild'), 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), 'EventHandlerClass' => Array('class'=>'StylesheetsEventHandler','file'=>'stylesheets_event_handler.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'), 'AutoLoad' => true, 'Hooks' => Array( Array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'css', 'HookToSpecial' => '', 'HookToEvent' => Array('OnSave'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnCompileStylesheet', ), ), 'QueryString' => Array( 1 => 'id', 2 => 'page', 3 => 'event', 4 => 'mode', ), 'IDField' => 'StylesheetId', 'StatusField' => Array('Enabled'), 'TitleField' => 'Name', 'TitlePresets' => Array( 'default' => Array( 'new_status_labels' => Array('css'=>'!la_title_Adding_Stylesheet!'), 'edit_status_labels' => Array('css'=>'!la_title_Editing_Stylesheet!'), 'new_titlefield' => Array('css'=>'!la_title_New_Stylesheet!'), ), 'styles_list' => Array( 'prefixes' => Array('css_List'), 'format' => "!la_title_Stylesheets!", 'toolbar_buttons' => Array('new_style', 'edit', 'delete', 'approve', 'decline', 'clone', 'view', 'dbl-click'), ), 'stylesheets_edit' => Array( 'prefixes' => Array('css'), 'format' => "#css_status# '#css_titlefield#' - !la_title_General!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'), ), 'base_styles' => Array( 'prefixes' => Array('css', 'selectors.base_List'), 'format' => "#css_status# '#css_titlefield#' - !la_title_BaseStyles!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_selector', 'edit', 'delete', 'clone', 'view', 'dbl-click'), ), 'block_styles' => Array( 'prefixes' => Array('css', 'selectors.block_List'), 'format' => "#css_status# '#css_titlefield#' - !la_title_BlockStyles!", 'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_selector', 'edit', 'delete', 'clone', 'reset_to_base', 'view', 'dbl-click'), ), 'base_style_edit' => Array( 'prefixes' => Array('css', 'selectors',), 'new_status_labels' => Array('selectors' => '!la_title_Adding_BaseStyle!'), 'edit_status_labels' => Array('selectors' => '!la_title_Editing_BaseStyle!'), 'new_titlefield' => Array('selectors'=>'!la_title_New_BaseStyle!'), 'format' => "#css_status# '#css_titlefield#' - #selectors_status# '#selectors_titlefield#'", 'toolbar_buttons' => Array('select', 'cancel'), ), 'block_style_edit' => Array( 'prefixes' => Array('css', 'selectors'), 'new_status_labels' => Array('selectors'=>'!la_title_Adding_BlockStyle!'), 'edit_status_labels' => Array('selectors'=>'!la_title_Editing_BlockStyle!'), 'new_titlefield' => Array('selectors'=>'!la_title_New_BlockStyle!'), 'format' => "#css_status# '#css_titlefield#' - #selectors_status# '#selectors_titlefield#'", 'toolbar_buttons' => Array('select', 'cancel', 'reset_to_base'), ), 'style_edit' => Array( 'prefixes' => Array('selectors'), 'format' => "!la_title_EditingStyle! '#selectors_titlefield#'", 'toolbar_buttons' => Array('select', 'cancel', 'reset_to_base'), ), ), 'EditTabPresets' => Array ( 'Default' => Array ( 'general' => Array ('title' => 'la_tab_General', 't' => 'stylesheets/stylesheets_edit', 'priority' => 1), 'block_styles' => Array ('title' => 'la_tab_BlockStyles', 't' => 'stylesheets/stylesheets_edit_block', 'priority' => 2), 'base_styles' => Array ('title' => 'la_tab_BaseStyles', 't' => 'stylesheets/stylesheets_edit_base', 'priority' => 3), ), ), 'PermSection' => Array('main' => 'in-portal:configure_styles'), /* removed until figure out what to do with this section 'Sections' => Array ( 'in-portal:configure_styles' => Array ( 'parent' => 'in-portal:website_setting_folder', 'icon' => 'style', 'label' => 'la_tab_Stylesheets', 'url' => Array('t' => 'stylesheets/stylesheets_list', 'pass' => 'm'), 'permissions' => Array('view', 'add', 'edit', 'delete'), 'priority' => 10, 'type' => stTREE, ), ), */ 'TableName' => TABLE_PREFIX.'Stylesheets', 'SubItems' => Array('selectorsbase', 'selectorsblock'), 'FilterMenu' => Array( 'Groups' => Array( Array('mode' => 'AND', 'filters' => Array(0,1), 'type' => WHERE_FILTER), ), 'Filters' => Array( 0 => Array('label' => 'la_Enabled', 'on_sql' => '', 'off_sql' => '%1$s.Enabled != 1'), 1 => Array('label' => 'la_Disabled', 'on_sql' => '', 'off_sql' => '%1$s.Enabled != 0'), ), ), 'AutoDelete' => true, 'AutoClone' => true, 'ListSQLs' => Array( '' => 'SELECT * FROM %s', ), // key - special, value - list select sql 'ItemSQLs' => Array( '' => 'SELECT * FROM %s', ), 'ListSortings' => Array( '' => Array( 'Sorting' => Array('Name' => 'asc'), ), ), 'Fields' => Array( 'StylesheetId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'Name' => Array('type' => 'string','not_null' => '1','default' => '','required'=>1), 'Description' => Array('type' => 'string', 'formatter' => 'kFormatter', 'not_null' => 1, 'using_fck' => 1, 'default' => ''), 'AdvancedCSS' => Array('type' => 'string', 'formatter' => 'kFormatter', 'not_null' => 1, 'using_fck' => 1, 'default' => ''), 'LastCompiled' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => 1, 'default' => 0), 'Enabled' => Array('type' => 'int', 'formatter'=>'kOptionsFormatter', 'options'=>Array(0 => 'la_Disabled', 1 => 'la_Enabled'), 'use_phrases' => 1, 'not_null' => '1','default' => 0), ), 'VirtualFields' => Array(), 'Grids' => Array( 'Default' => Array( - 'Icons' => Array('default' => 'icon16_custom.gif', 0 =>'icon16_style_disabled.gif', 1 =>'icon16_style.gif'), + 'Icons' => Array( + 'default' => 'icon16_item.png', + 0 => 'icon16_disabled.png', + 1 => 'icon16_item.png' + ), 'Fields' => Array( 'Name' => Array('title'=>'la_col_Name', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_like_filter'), 'Description' => Array('title'=>'la_col_Description', 'first_chars' => 100, 'filter_block' => 'grid_like_filter'), 'Enabled' => Array('title'=>'la_col_Status', 'filter_block' => 'grid_options_filter'), 'LastCompiled' => Array('title' => 'la_col_LastCompiled', 'filter_block' => 'grid_date_range_filter'), ), ), ), ); \ No newline at end of file Index: branches/5.0.x/core/units/email_messages/email_messages_config.php =================================================================== --- branches/5.0.x/core/units/email_messages/email_messages_config.php (revision 12541) +++ branches/5.0.x/core/units/email_messages/email_messages_config.php (revision 12542) @@ -1,155 +1,155 @@ <?php /** * @version $Id$ * @package In-Portal * @copyright Copyright (C) 1997 - 2009 Intechnic. All rights reserved. * @license GNU/GPL * In-Portal is Open Source software. * This means that this software may have been modified pursuant * the GNU General Public License, and as distributed it includes * or is derivative of works licensed under the GNU General Public License * or other free or open source software licenses. * See http://www.in-portal.net/license/ for copyright notices and details. */ defined('FULL_PATH') or die('restricted access!'); $config = Array ( 'Prefix' => 'emailmessages', 'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), 'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array('class' => 'EmailMessagesEventHandler', 'file' => 'email_messages_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array('class' => 'EmailMessageTagProcessor', 'file' => 'email_message_tp.php', 'build_event' => 'OnBuild'), 'AutoLoad' => true, 'QueryString' => Array ( 1 => 'id', 2 => 'page', 3 => 'event', 4 => 'mode', ), 'IDField' => 'EmailMessageId', 'TitleField' => 'Subject', 'StatusField' => Array ('Enabled'), 'TitlePresets' => Array ( 'email_messages_direct_list' => Array ( 'prefixes' => Array ('emailmessages.st_List'), 'format' => "!la_title_EmailMessages!", 'toolbar_buttons' => Array ('edit', 'approve', 'decline', 'view', 'dbl-click'), ), '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#', 'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit'), ), ), 'Sections' => Array ( 'in-portal:configemail' => Array( 'parent' => 'in-portal:site', 'icon' => 'email_templates', 'label' => 'la_tab_E-mails', 'url' => Array('t' => 'languages/email_message_list', 'pass' => 'm'), 'permissions' => Array('view', 'edit'), 'priority' => 5, 'type' => stTREE, ), ), 'TableName' => TABLE_PREFIX.'EmailMessage', 'ListSQLs' => Array ( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Events ON '.TABLE_PREFIX.'Events.EventId = %1$s.EventId' ), 'ListSortings' => Array ( '' => Array ( 'ForcedSorting' => Array ('Enabled' => 'desc'), 'Sorting' => Array ('Description' => 'asc') ), ), 'ForeignKey' => 'LanguageId', 'ParentTableKey' => 'LanguageId', 'ParentPrefix' => 'lang', 'AutoDelete' => true, 'AutoClone' => true, 'CalculatedFields' => Array ( '' => Array ( 'Description' => TABLE_PREFIX.'Events.Description', 'Module' => TABLE_PREFIX.'Events.Module', 'Type' => TABLE_PREFIX.'Events.Type', 'ReplacementTags' => TABLE_PREFIX.'Events.ReplacementTags', 'Enabled' => TABLE_PREFIX.'Events.Enabled', ), ), 'Fields' => Array ( 'EmailMessageId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'Template' => Array('type' => 'string', 'default' => null), 'MessageType' => Array('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array('text'=>'la_Text','html'=>'la_Html'), 'use_phrases' => 1, 'not_null' => '1','default' => 'text'), 'LanguageId' => Array( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'Language ORDER BY PackName', 'option_key_field' => 'LanguageId', 'option_title_field' => 'PackName', 'not_null' => 1, 'default' => 0 ), 'EventId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'Subject' => Array('type' => 'string', 'default' => null), ), 'VirtualFields' => Array ( 'Headers' => Array('type' => 'string', 'default' => ''), 'Body' => Array('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => ''), 'ReplacementTags' => Array ('type' => 'string', 'default' => null), 'Description' => Array('type'=>'string', 'sql_filter_type'=>'having'), 'Module' => Array('type' => 'string','not_null' => '1','default' => ''), 'Type' => Array('formatter'=>'kOptionsFormatter', 'options' => Array (1 => 'la_Text_Admin', 0 => 'la_Text_User'), 'use_phrases' => 1, 'default' => 0, 'not_null' => 1), 'Enabled' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 1 ), // for mass mail sending 'MassSubject' => Array ('type' => 'string', 'default' => ''), 'MassAttachment' => Array ('type' => 'string', 'formatter' => 'kUploadFormatter', 'upload_dir' => ITEM_FILES_PATH, 'max_size' => 50000000, 'default' => ''), 'MassHtmlMessage' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => 'Type your Message Here'), 'MassTextMessage' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => 'Type your Message Here'), ), 'Grids' => Array( 'Default' => Array( -// 'Icons' => Array('default'=>'icon16_custom.gif'), +// 'Icons' => Array('default'=>'icon16_item.png'), 'Fields' => Array( 'Subject' => Array( 'title'=>'la_col_Subject', 'filter_block' => 'grid_like_filter', 'width' => 60, ), 'Description' => Array( 'title'=>'la_col_Description', 'data_block' => 'label_grid_checkbox_td', 'filter_block' => 'grid_like_filter', 'width' => 60, ), 'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter', 'width' => 60, ), ), ), 'Emails' => Array( 'Icons' => Array ( 'default' => 'icon16_item.png', 0 => 'icon16_disabled.png', 1 => 'icon16_item.png', ), 'Fields' => Array( 'EventId' => Array( 'title'=>'la_col_Id', 'filter_block' => 'grid_range_filter', 'width' => 60, ), 'Subject' => Array( 'title'=>'la_col_Subject', 'filter_block' => 'grid_like_filter', 'width' => 300, ), 'Description' => Array( 'title'=>'la_col_Description', 'data_block' => 'label_grid_checkbox_td', 'filter_block' => 'grid_like_filter', 'width' => 250, ), 'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter', 'width' => 60, ), 'LanguageId' => Array( 'title'=>'la_col_Language', 'filter_block' => 'grid_options_filter', 'width' => 100, ), 'Enabled' => Array( 'title'=>'la_col_Enabled', 'filter_block' => 'grid_options_filter', 'width' => 70, ), ), ), ), ); \ No newline at end of file Index: branches/5.0.x/core/admin_templates/login.tpl =================================================================== --- branches/5.0.x/core/admin_templates/login.tpl (revision 12541) +++ branches/5.0.x/core/admin_templates/login.tpl (revision 12542) @@ -1,243 +1,243 @@ <inp2:m_Set skip_last_template="1"/> <inp2:adm_HTTPAuth result_to_var="http_auth"/> <inp2:m_include t="incs/header" nobody="yes"/> <body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0" bgcolor="#FFFFFF"> <style type="text/css"> <!-- html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; } #header-div { position: absolute; top: 0px; height: 160px; left: 0px; right: 0px; background: url('img/login/login-top.png') no-repeat right top #007bf4; z-index: 2; } #body-div { position: absolute; top: 160px; bottom: 160px; width: 100%; text-align: center; z-index: 5; } #footer-div { position: absolute; bottom: 0px; height: 160px; left: 0px; right: 0px; background: url('img/login/login-bottom.png') no-repeat left bottom #007bf4; z-index: 2; } #outer { position: absolute; top: 50%; left: 0px; width: 100%; height: 1px; overflow: visible; z-index: 10; } #inner { text-align: left; width: 100%; height: 300px; margin-left: -50%; /*** width / 2 ***/ position: absolute; top: -150px; /*** height / 2 ***/ left: 50%; z-index: 5; /* border: 1px solid #000000; */ } #form table { -moz-border-radius-bottomleft:20px; -moz-border-radius-bottomright:20px; -moz-border-radius-topleft:20px; -moz-border-radius-topright:20px; border: 1px solid #CCCCCC; font-weight: normal; background-color: #ECECEC; z-index: 5; } #form table td { padding: 2px 15px 2px 15px; } .login-table { background: #ECECEC; } .roundbutton { -moz-border-radius: 11px; cursor: pointer; padding: 2px 5px; text-decoration: none; } --> </style> <div id="header-div"></div> <div id="body-div"> <div id="outer"> <div id="inner" align="center"> <div id="logo" align="center" style="margin-bottom: 20px;"> <table class="head-table" style="background: none;"> <tr> <inp2:m_if check="adm_AdminSkin" type="LogoLogin"> <td align="center"><img src="<inp2:adm_AdminSkin type='LogoLogin'/>" alt="<inp2:m_GetConfig var='Site_Name'/>"></td> <inp2:m_else/> <inp2:m_if check="adm_AdminSkin" type="Logo"> <td> <img src="<inp2:adm_AdminSkin type='Logo'/>" alt="<inp2:m_GetConfig var='Site_Name'/>"><br/> <inp2:m_if check="adm_AdminSkin" type="LogoBottom"> <img src="<inp2:adm_AdminSkin type='LogoBottom'/>" alt="<inp2:m_GetConfig var='Site_Name'/>"> </inp2:m_if> </td> </inp2:m_if> <td align="left" valign="middle"> <span style="font-size: 48px; color: black;"><inp2:m_GetConfig var="Site_Name"/></span> </td> </inp2:m_if> </tr> </table> </div> <div id="form" align="center"> <inp2:m_if check="m_Param" name="http_auth"> <table class="login-table"> <tr> <td colspan="2" style="text-align: center"> <inp2:m_if check="u.current_HasError" field="any"> <span class="error-cell"><inp2:u.current_Error field="ValidateLogin"/></span> </inp2:m_if><br/> </td> </tr> <tr> <td class="text"><inp2:m_phrase name="la_Text_Login"/>:</td> <td><input type="text" name="login" class="text" value="<inp2:u_CookieUsername submit_field="login"/>" style="width: 150px;"></td> </tr> <tr> <td class="text"><inp2:m_phrase name="la_prompt_Password"/>:</td> <td><input type="password" name="password" class="text" style="width: 150px;"></td> </tr> <tr> <td colspan="2"> <input type="checkbox" id="save_username" name="cb_save_username"<inp2:m_if check="m_GetEquals" name="save_username" value="" inverse="inverse"> checked="checked"</inp2:m_if>/> <label for="save_username"><inp2:m_Phrase label="la_SaveLogin"/></label> </td> </tr> <tr> <td colspan="2" align="center" style="padding: 5px 15px 10px 15px;"> <input type="submit" name="login_button" value="<inp2:m_phrase name="la_Login"/>" class="kx-login-button roundbutton"></td> </tr> </table> <inp2:m_else/> - 401 Authentication Required + <h1 style="color: red;">401 Authentication Required</h1> </inp2:m_if> </div> </div> </div> </div> <div id="footer-div"></div> <inp2:m_if check="m_Param" name="http_auth"> <input type="hidden" name="events[u]" value="OnLogin"/> <input type="hidden" name="next_template" value="<inp2:m_if check="m_GetEquals" name="next_template" value="">index<inp2:m_else/><inp2:m_get var="next_template"/></inp2:m_if>"/> <input type="hidden" name="skip_last_template" value="1"/> <script type="text/javascript"> $(document).ready( function() { $("input[name='login']").focus(); } ); var a_parent = window.parent; var to_close = new Array(); function redirect() { // alert('running redirect in "' + window.name + '"'); // window.name = 'redirect'; var $main_frame = getFrame('main'); a_parent = window; try { var i = 0; while (i < 10) { i++; var $opener = $main_frame.getWindowOpener(a_parent); // console.log('window: ', a_parent.name, '; opener: ', $opener ? $opener.name : null); if ($opener) { to_close.push(a_parent); a_parent = $opener; continue; } if (a_parent.name == 'main_frame') { break; } if (a_parent.parent && a_parent.parent.name != a_parent.name) { a_parent = a_parent.parent; continue; } } } catch (err) { // another website is opened in parent window alert('Error while trying to access window opener: [' + err.message + ']'); i = 10; } if (i < 10) { // console.log('to close: ', to_close); setTimeout(close_windows, 100); } } function close_windows() { page = '<inp2:m_t t="index" expired="1" escape="1" no_amp="1" m_wid=""/>'; // a_parent.location.href + '?expired=1'; // alert('redirecting ' + a_parent.name + ' to ' + page); a_parent.location.href = page; // alert('closing ' + to_close.length + ' windows'); for (var c = (to_close.length - 1); c >= 0; c--) { // alert('closing ' + to_close[c].name); window_close(to_close[c]); } } if (window.top.frames.length > 0) { redirect(); } </script> </inp2:m_if> <inp2:m_include t="incs/footer"/> \ No newline at end of file Index: branches/5.0.x/core/admin_templates/img/itemicons/icon16_sections.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/5.0.x/core/admin_templates/img/itemicons/icon16_sections.png ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: branches/5.0.x/core/admin_templates/img/toolbar/tool_select_user_f3.gif =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: branches/5.0.x/core/admin_templates/img/icons/icon24_translate.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: branches/5.0.x/core/admin_templates/img/icons/icon24_translate.png ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: branches/5.0.x/core/admin_templates/popups/translator.tpl =================================================================== --- branches/5.0.x/core/admin_templates/popups/translator.tpl (revision 12541) +++ branches/5.0.x/core/admin_templates/popups/translator.tpl (revision 12542) @@ -1,50 +1,50 @@ <inp2:m_include t="incs/header"/> <inp2:m_RenderElement name="combined_header" prefix="trans" perm_event="trans:OnLoad" section="in-portal:root" title_preset="trans_edit"/> <!-- ToolBar --> <table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td> <script type="text/javascript"> a_toolbar = new ToolBar(); a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save" escape="1"/>', function() { submit_event('trans','OnSaveAndClose'); } ) ); a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel" escape="1"/>', function() { window_close(); } ) ); a_toolbar.Render(); </script> </td> </tr> </tbody> </table> <input type="hidden" name="trans_prefix" value="<inp2:m_get var="trans_prefix"/>"> <input type="hidden" name="trans_field" value="<inp2:m_get var="trans_field"/>"> <div id="scroll_container"> <table class="edit-form"> <inp2:m_RenderElement name="inp_edit_hidden" prefix="trans" field="Language"/> <inp2:m_RenderElement name="subsection" prefix="trans" fields="Original,SwitchLanguage,Translation" title="!la_section_Translation!"/> - <inp2:m_RenderElement name="inp_label" prefix="trans" title="!la_fld_Original!" field="Original"/> + <inp2:m_RenderElement name="inp_label" prefix="trans" title="!la_fld_PrimaryTranslation!" field="Original"/> <inp2:m_RenderElement name="inp_edit_options" prefix="trans" field="SwitchLanguage" title="!la_fld_Language!" size="50" onchange="submit_event('trans', 'OnChangeLanguage')"/> <inp2:m_if check="m_get" var="trans_multi_line" value="1"> <inp2:m_RenderElement name="inp_edit_textarea" prefix="trans" field="Translation" title="!la_fld_Translation!" cols="70" rows="13"/> <inp2:m_else/> <inp2:m_RenderElement name="inp_edit_box" prefix="trans" field="Translation" title="!la_fld_Translation!" size="50"/> </inp2:m_if> <inp2:m_RenderElement name="inp_edit_filler"/> </table> </div> <inp2:m_include t="incs/footer"/> \ No newline at end of file Index: branches/5.0.x/core/admin_templates/incs/grid_blocks.tpl =================================================================== --- branches/5.0.x/core/admin_templates/incs/grid_blocks.tpl (revision 12541) +++ branches/5.0.x/core/admin_templates/incs/grid_blocks.tpl (revision 12542) @@ -1,890 +1,890 @@ <inp2:m_DefineElement name="current_page"> <span class="current_page"><inp2:m_param name="page"/></span> </inp2:m_DefineElement> <inp2:m_DefineElement name="page"> <a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>, <inp2:m_param name="ajax"/>)" class="nav_url"><inp2:m_param name="page"/></a> </inp2:m_DefineElement> <inp2:m_DefineElement name="next_page"> <a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>, <inp2:m_param name="ajax"/>)" class="nav_url">></a> </inp2:m_DefineElement> <inp2:m_DefineElement name="prev_page"> <a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>, <inp2:m_param name="ajax"/>)" class="nav_url"><</a> </inp2:m_DefineElement> <inp2:m_DefineElement name="next_page_split"> <a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>, <inp2:m_param name="ajax"/>)" class="nav_url">>></a> </inp2:m_DefineElement> <inp2:m_DefineElement name="prev_page_split"> <a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>, <inp2:m_param name="ajax"/>)" class="nav_url"><<</a> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_pagination_elem" main_special="" ajax="0"> <inp2:m_if check="GridInfo" type="needs_pagination" pass_params="1"> <inp2:m_phrase name="la_Page"/>: <inp2:PrintPages active_block="current_page" split="10" inactive_block="page" prev_page_block="prev_page" next_page_block="next_page" prev_page_split_block="prev_page_split" next_page_split_block="next_page_split" main_special="$main_special" ajax="$ajax" grid="$grid"/> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_pagination" SearchPrefixSpecial="" ajax="0"> <!--## Maybe not in use ##--> <table cellspacing="0" cellpadding="2" width="100%" border="0" class="pagination_bar"> <tbody> <tr> <td width="100%"> <inp2:m_RenderElement name="grid_pagination_elem" pass_params="1"/> </td> <td> <inp2:m_if check="m_ParamEquals" param="search" value="on"> <inp2:m_if check="m_ParamEquals" name="SearchPrefixSpecial" value=""> <inp2:m_RenderElement name="grid_search" grid="$grid" PrefixSpecial="$PrefixSpecial" ajax="$ajax"/> <inp2:m_else /> <inp2:m_RenderElement name="grid_search" grid="$grid" PrefixSpecial="$SearchPrefixSpecial" ajax="$ajax"/> </inp2:m_if> </inp2:m_if> </td> </tr> </tbody> </table> </inp2:m_DefineElement> <inp2:m_DefineElement name="search_main_toolbar"> <td style="white-space: nowrap; text-align: right; width: 260px;" align="right"> <div style="float: right"> <table cellpadding="0" cellspacing="0"> <tr> <td> <input type="text" id="<inp2:m_param name='prefix'/>_search_keyword" class="filter <inp2:m_ifnot check='m_Recall' var='{$prefix}_search_keyword' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:m_param name='prefix'/>_search_keyword" value="<inp2:m_recall var='{$prefix}_search_keyword' no_null='no_null' special='1'/>" PrefixSpecial="<inp2:m_param name='prefix'/>" Grid="<inp2:m_param name='grid'/>" ajax="0" style="width:160px"/> </td> <td style="white-space: nowrap;"> <script type="text/javascript"> b_toolbar = new ToolBar(); b_toolbar.AddButton( new ToolBarButton('search', '<inp2:m_phrase label="la_ToolTip_Search" escape="1"/>', function() { search('<inp2:m_Param name="prefix"/>', '<inp2:m_Param name="grid"/>', 0); } ) ); b_toolbar.AddButton( new ToolBarButton('search_reset_alt', '<inp2:m_phrase label="la_ToolTip_SearchReset" escape="1"/>', function() { search_reset('<inp2:m_Param name="prefix"/>', '<inp2:m_Param name="grid"/>', 0); } ) ); b_toolbar.Render(); </script> </td> </tr> </table> </div> </td> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_search" ajax="0"> <td align="right" class="search-cell"> <img src="img/spacer.gif" width="250" height="1" alt=""/><br /> <table cellspacing="0" cellpadding="0"> <tr> <td><inp2:m_phrase name="la_Search"/>: </td> <td> <input type="text" id="<inp2:m_param name='PrefixSpecial'/>_search_keyword" class="filter <inp2:m_ifnot check='m_Recall' var='{$PrefixSpecial}_search_keyword' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:m_param name='PrefixSpecial'/>_search_keyword" value="<inp2:m_recall var='{$PrefixSpecial}_search_keyword' no_null='no_null' special='1'/>" PrefixSpecial="<inp2:m_param name='PrefixSpecial'/>" Grid="<inp2:m_param name='grid'/>" ajax="<inp2:m_param name='ajax'/>"/> <input type="text" style="display: none;"/> </td> <td style="white-space: nowrap;" id="search_buttons[<inp2:m_param name="PrefixSpecial"/>]"> </td> </tr> </table> <inp2:m_if check="m_Param" name="ajax" equals_to="0"> <script type="text/javascript"> addLoadEvent( function () { <inp2:m_RenderElement name="grid_search_buttons" pass_params="true"/> } ) </script> </inp2:m_if> </td> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_search_buttons" PrefixSpecial="" grid="" ajax="1"> var $search_box = document.getElementById('<inp2:m_param name="PrefixSpecial"/>_search_keyword'); if ($search_box) { //$search_box.onkeydown = search_keydown; $( jq('#<inp2:m_param name="PrefixSpecial"/>_search_keyword') ).keydown(search_keydown); } var $search_buttons = document.getElementById('search_buttons[<inp2:m_param name="PrefixSpecial"/>]'); if ($search_buttons) { Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'] = new ToolBar('icon16_'); Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].IconSize = {w:22,h:22}; Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].UseLabels = false; Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].AddButton( new ToolBarButton( 'search', '<inp2:m_phrase name="la_ToolTip_Search" escape="1"/>', function() { search('<inp2:m_param name="PrefixSpecial"/>','<inp2:m_param name="grid"/>', <inp2:m_param name="ajax"/>) }, null, '<inp2:m_param name="PrefixSpecial"/>' ) ); Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].AddButton( new ToolBarButton( 'search_reset', '<inp2:m_phrase name="la_ToolTip_SearchReset" escape="1"/>', function() { search_reset('<inp2:m_param name="PrefixSpecial"/>','<inp2:m_param name="grid"/>', <inp2:m_param name="ajax"/>) }, null, '<inp2:m_param name="PrefixSpecial"/>' ) ); Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].Render($search_buttons); } </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_checkbox_td" format=""> <inp2:m_RenderElement name="grid_data_td" pass_params="1"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_checkbox_td_no_icon" format=""> <inp2:m_RenderElement name="grid_data_td" pass_params="1"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="label_grid_checkbox_td" format=""> <inp2:m_RenderElement name="grid_data_label_td" pass_params="1"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_icon_td" format=""> <inp2:m_RenderElement name="grid_data_td" pass_params="1"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_radio_td" format=""> <inp2:m_RenderElement name="grid_data_td" pass_params="1"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_data_td" format="" no_special="1" nl2br="" first_chars="" td_style=""> <inp2:Field field="$field" first_chars="$first_chars" nl2br="$nl2br" grid="$grid" no_special="$no_special" format="$format"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_total_td"> <inp2:m_if check="FieldOption" field="$field" option="totals"> <inp2:FieldOption field="$field" option="totals" result_to_var="totals"/> '<inp2:FieldTotal field="$field" function="$totals"/>' <inp2:m_else/> ' ' </inp2:m_if> <inp2:m_ifnot check="m_Param" name="is_last">, </inp2:m_ifnot> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_priority_td" format="" no_special="" nl2br="" first_chars="" td_style="" currency=""> <inp2:Field field="$field" first_chars="$first_chars" currency="$currency" nl2br="$nl2br" grid="$grid" no_special="$no_special" format="$format"/> <inp2:m_ifnot check="Field" field="Priority" equals_to="0" db="db"><span class="priority"><sup><inp2:Field field="Priority"/></sup></span></inp2:m_ifnot> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_edit_td" format="" > <input type="text" id="<inp2:{$PrefixSpecial}_InputName field="$field"/>" name="<inp2:{$PrefixSpecial}_InputName field="$field"/>" value="<inp2:{$PrefixSpecial}_field field="$field" grid="$grid" format="$format"/>"> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_picker_td" nl2br="0" no_special="1" separator=" "> <inp2:Field name="$field" format="$separator" nl2br="$nl2br" no_special="$no_special"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_options_td" format=""> <select name="<inp2:InputName field="$field"/>" id="<inp2:InputName field="$field"/>"> <inp2:m_if check="FieldOption" field="$field" option="use_phrases"> <inp2:PredefinedOptions field="$field" block="inp_option_phrase" selected="selected" has_empty="1" empty_value="0"/> <inp2:m_else/> <inp2:PredefinedOptions field="$field" block="inp_option_item" selected="selected" has_empty="1" empty_value="0"/> </inp2:m_if> </select> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_date_td" format=""> <input type="text" name="<inp2:InputName field="{$field}_date"/>" id="<inp2:InputName field="{$field}_date"/>" value="<inp2:Field field="{$field}_date" format="_regional_InputDateFormat"/>" size="<inp2:Format field="{$field}_date" input_format="1" edit_size="edit_size"/>" datepickerIcon="<inp2:m_ProjectBase/>core/admin_templates/img/calendar_icon.gif"> <img src="img/calendar_icon.gif" id="cal_img_<inp2:InputName field="{$field}"/>" width="13" height="12" style="cursor: pointer; margin-right: 5px" title="Date selector" /> <span class="small">(<inp2:Format field="{$field}_date" input_format="1" human="true"/>)</span> <script type="text/javascript"> Calendar.setup({ inputField : "<inp2:InputName field="{$field}_date"/>", ifFormat : Calendar.phpDateFormat("<inp2:Format field="{$field}_date" input_format="1"/>"), button : "cal_img_<inp2:InputName field="{$field}"/>", align : "br", singleClick : true, showsTime : true, weekNumbers : false, firstDay : <inp2:m_GetConfig var="FirstDayOfWeek"/>, onUpdate : function(cal) { runOnChange('<inp2:InputName field="{$field}_date"/>'); } }); </script> <input type="hidden" name="<inp2:InputName field="{$field}_time"/>" id="<inp2:InputName field="{$field}_time" input_format="1"/>" value=""> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_data_label_td" > <inp2:Field field="$field" grid="$grid" plus_or_as_label="1" no_special="no_special" format="$format"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_data_label_ml_td" format="" > <span class="<inp2:m_if check="{$SourcePrefix}_HasError" field="$virtual_field">error-cell</inp2:m_if>"> <inp2:{$PrefixSpecial}_Field field="$field" grid="$grid" as_label="1" no_special="no_special" format="$format"/> </span><inp2:m_if check="{$SourcePrefix}_IsRequired" field="$virtual_field"><span class="field-required"> *</span></inp2:m_if>:<br /> <inp2:m_if check="FieldEquals" field="$ElementTypeField" value="textarea"> <inp2:m_if check="Field" name="MultiLingual" equals_to="1" db="db"> - <a href="javascript:PreSaveAndOpenTranslatorCV('<inp2:m_param name="SourcePrefix"/>,<inp2:m_param name="SourcePrefix"/>-cdata', '<inp2:m_param name="SourcePrefix"/>-cdata:cust_<inp2:Field name="CustomFieldId"/>', 'popups/translator', <inp2:$SourcePrefix_Field field="ResourceId"/>, 1);" title="<inp2:m_Phrase label="la_Translate" escape="1"/>"><img src="img/icons/icon24_translate.gif" style="cursor:hand;" width="24" height="24" border="0"></a> + <a href="javascript:PreSaveAndOpenTranslatorCV('<inp2:m_param name="SourcePrefix"/>,<inp2:m_param name="SourcePrefix"/>-cdata', '<inp2:m_param name="SourcePrefix"/>-cdata:cust_<inp2:Field name="CustomFieldId"/>', 'popups/translator', <inp2:$SourcePrefix_Field field="ResourceId"/>, 1);" title="<inp2:m_Phrase label="la_Translate" escape="1"/>"><img src="img/icons/icon24_translate.png" style="cursor:hand;" width="24" height="24" border="0"></a> <inp2:m_else/> <inp2:Field name="FieldName" result_to_var="custom_field"/> <a href="javascript:OpenEditor('§ion=in-link:editlink_general', 'kernel_form', '<inp2:{$SourcePrefix}_InputName field="cust_{$custom_field}"/>');"><img src="img/icons/icon24_link_editor.gif" style="cursor: hand;" width="24" height="24" border="0"></a> </inp2:m_if> <inp2:m_else/> <inp2:m_if check="Field" name="MultiLingual" equals_to="1" db="db"> - <a href="javascript:PreSaveAndOpenTranslatorCV('<inp2:m_param name="SourcePrefix"/>,<inp2:m_param name="SourcePrefix"/>-cdata', '<inp2:m_param name="SourcePrefix"/>-cdata:cust_<inp2:Field name="CustomFieldId"/>', 'popups/translator', <inp2:$SourcePrefix_Field field="ResourceId"/>);" title="<inp2:m_Phrase label="la_Translate" escape="1"/>"><img src="img/icons/icon24_translate.gif" style="cursor:hand;" width="24" height="24" border="0"></a> + <a href="javascript:PreSaveAndOpenTranslatorCV('<inp2:m_param name="SourcePrefix"/>,<inp2:m_param name="SourcePrefix"/>-cdata', '<inp2:m_param name="SourcePrefix"/>-cdata:cust_<inp2:Field name="CustomFieldId"/>', 'popups/translator', <inp2:$SourcePrefix_Field field="ResourceId"/>);" title="<inp2:m_Phrase label="la_Translate" escape="1"/>"><img src="img/icons/icon24_translate.png" style="cursor:hand;" width="24" height="24" border="0"></a> </inp2:m_if> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_empty_filter"> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_column_filter"> <!--## this cheat makes sure, that columns without a filter are using like filter ##--> <inp2:m_RenderElement name="grid_like_filter" pass_params="1"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_options_filter" use_phrases="0" filter_width="90%"> <select class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='options' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:SearchInputName field="$filter_field" filter_type="options" grid="$grid"/>" style="width: <inp2:m_Param name="filter_width"/>"> <inp2:m_if check="m_ParamEquals" name="use_phrases" value="1"> <inp2:PredefinedSearchOptions field="$filter_field" block="inp_option_phrase" selected="selected" has_empty="1" empty_value="" filter_type="options" grid="$grid"/> <inp2:m_else/> <inp2:PredefinedSearchOptions field="$filter_field" block="inp_option_item" selected="selected" has_empty="1" empty_value="" filter_type="options" grid="$grid"/> </inp2:m_if> </select> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_like_filter" filter_width="95%"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='like' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" style="width: <inp2:m_Param name="filter_width"/>" name="<inp2:SearchInputName field="$filter_field" filter_type="like" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="like" grid="$grid"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_user_like_filter" selector_template="user_selector" filter_width="95%"> <table class="range-filter"> <tr> <td style="width: 100%"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='like' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" style="width: <inp2:m_Param name="filter_width"/>" name="<inp2:SearchInputName field="$filter_field" filter_type="like" grid="$grid"/>" id="<inp2:SearchInputName field="$filter_field" filter_type="like" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="like" grid="$grid"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </td> <td valign="middle"> <a href="javascript:openSelector('<inp2:m_param name="PrefixSpecial"/>', '<inp2:m_t t="$selector_template" pass="all,$PrefixSpecial" escape="1"/>', '<inp2:m_param name="filter_field"/>');"> <img src="img/icons/icon24_link_user.gif" style="cursor:hand;" width="24" height="24" border="0"> </a> </td> </tr> </table> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_picker_filter" use_phrases="0" filter_width="90%"> <select class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='options' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:SearchInputName field="$filter_field" filter_type="picker" grid="$grid"/>" style="width: <inp2:m_Param name="filter_width"/>"> <inp2:m_if check="m_ParamEquals" name="use_phrases" value="1"> <inp2:PredefinedSearchOptions field="$filter_field" block="inp_option_phrase" selected="selected" has_empty="1" empty_value="" filter_type="picker" grid="$grid"/> <inp2:m_else/> <inp2:PredefinedSearchOptions field="$filter_field" block="inp_option_item" selected="selected" has_empty="1" empty_value="" filter_type="picker" grid="$grid"/> </inp2:m_if> </select> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_like_combo_filter" filter_width="95%"> <input type="text" autocomplete="off" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='like' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" style="width: <inp2:m_Param name="filter_width"/>" name="<inp2:SearchInputName field="$filter_field" filter_type="like" grid="$grid"/>" id="<inp2:SearchInputName field="$filter_field" filter_type="like" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="like" grid="$grid"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> <script type="text/javascript"> new AJAXDropDown('<inp2:SearchInputName field="$filter_field" filter_type="like" grid="$grid"/>', function(cur_value) { return '<inp2:m_t no_amp="1" pass="m,{$PrefixSpecial}" field="$filter_field" {$PrefixSpecial}_event="OnSuggestValues" cur_value="#VALUE#"/>'.replace('#VALUE#', cur_value); } ); </script> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_equals_filter" filter_width="95%"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='equals' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" style="width: <inp2:m_Param name="filter_width"/>" name="<inp2:SearchInputName field="$filter_field" filter_type="equals" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="equals" grid="$grid"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_range_filter" filter_width="90%"> <table class="range-filter"> <tr> <td style="width: 100%"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='range' type='from' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:SearchInputName field="$filter_field" filter_type="range" type="from" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="range" type="from" grid="$grid"/>" style="width: <inp2:m_Param name="filter_width"/>;" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </td> <td rowspan="2" valign="middle"> <img src="<inp2:m_TemplatesBase/>/img/expand_filter.gif" width="7" height="9" alt="" onclick="filter_toggle('<inp2:SearchInputName field='$filter_field' filter_type='range' type='to' grid='$grid'/>_row', '<inp2:m_Param name='PrefixSpecial'/>');"/> </td> </tr> <tr class="to-range-filter<inp2:m_ifnot check='RangeFiltersUsed' grid='$grid'> hidden-filter</inp2:m_ifnot>" id="<inp2:SearchInputName field='$filter_field' filter_type='range' type='to' grid='$grid'/>_row"> <td style="width: 100%;<inp2:m_ifnot check='RangeFiltersUsed' grid='$grid'> display: none;</inp2:m_ifnot>"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='range' type='to' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:SearchInputName field="$filter_field" filter_type="range" type="to" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="range" type="to" grid="$grid"/>" style="width: <inp2:m_Param name="filter_width"/>;" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </td> </tr> </table> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_float_range_filter" filter_width="90%"> <table class="range-filter"> <tr> <td style="width: 100%"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='float_range' type='from' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:SearchInputName field="$filter_field" filter_type="float_range" type="from" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="float_range" type="from" grid="$grid"/>" style="width: <inp2:m_Param name="filter_width"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </td> <td rowspan="2" valign="middle"> <img src="<inp2:m_TemplatesBase/>/img/expand_filter.gif" width="7" height="9" alt="" onclick="filter_toggle('<inp2:SearchInputName field='$filter_field' filter_type='range' type='to' grid='$grid'/>_row', '<inp2:m_Param name='PrefixSpecial'/>');"/> </td> </tr> <tr class="to-range-filter<inp2:m_ifnot check='RangeFiltersUsed' grid='$grid'> hidden-filter</inp2:m_ifnot>" id="<inp2:SearchInputName field='$filter_field' filter_type='float_range' type='to' grid='$grid'/>_row"> <td style="width: 100%;<inp2:m_ifnot check='RangeFiltersUsed' grid='$grid'> display: none;</inp2:m_ifnot>"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='float_range' type='to' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" name="<inp2:SearchInputName field="$filter_field" filter_type="float_range" type="to" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="float_range" type="to" grid="$grid"/>" style="width: <inp2:m_Param name="filter_width"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </td> </tr> </table> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_date_range_filter" calendar_format="" filter_width="80%"> <table class="range-filter"> <tr> <td style="width: 100%"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='date_range' type='from' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" style="width: <inp2:m_Param name="filter_width"/>" name="<inp2:SearchInputName field="$filter_field" filter_type="date_range" type="from" grid="$grid"/>" id="<inp2:SearchInputName field="$filter_field" filter_type="date_range" type="from" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="date_range" type="from" grid="$grid"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </td> <td> <img src="img/calendar_icon.gif" width="13" height="12" id="cal_img_<inp2:SearchInputName field="$filter_field" filter_type="date_range" type="from" grid="$grid"/>" style="cursor: pointer; margin-right: 5px" title="Date selector" /> </td> <td rowspan="2" valign="middle"> <img src="<inp2:m_TemplatesBase/>/img/expand_filter.gif" width="7" height="9" alt="" onclick="filter_toggle('<inp2:SearchInputName field='$filter_field' filter_type='date_range' type='to' grid='$grid'/>_row', '<inp2:m_Param name='PrefixSpecial'/>');"/> </td> </tr> <tr class="to-range-filter<inp2:m_ifnot check='RangeFiltersUsed' grid='$grid'> hidden-filter</inp2:m_ifnot>" id="<inp2:SearchInputName field='$filter_field' filter_type='date_range' type='to' grid='$grid'/>_row"> <td style="width: 100%;<inp2:m_ifnot check='RangeFiltersUsed' grid='$grid'> display: none;</inp2:m_ifnot>"> <input type="text" class="filter <inp2:m_ifnot check='SearchField' field='$filter_field' filter_type='date_range' type='to' grid='$grid' equals_to=''>filter-active</inp2:m_ifnot>" style="width: <inp2:m_Param name="filter_width"/>" name="<inp2:SearchInputName field="$filter_field" filter_type="date_range" type="to" grid="$grid"/>" id="<inp2:SearchInputName field="$filter_field" filter_type="date_range" type="to" grid="$grid"/>" value="<inp2:SearchField field="$filter_field" filter_type="date_range" type="to" grid="$grid"/>" onkeypress="search_keydown(event, '<inp2:m_Param name="PrefixSpecial"/>', '<inp2:m_Param name="grid"/>', '<inp2:m_Param name="ajax"/>')"/> </td> <td<inp2:m_ifnot check='RangeFiltersUsed' grid='$grid'> style="display: none;"</inp2:m_ifnot>> <img src="img/calendar_icon.gif" width="13" height="12" id="cal_img_<inp2:SearchInputName field="$filter_field" filter_type="date_range" type="to" grid="$grid"/>" style="cursor: pointer; margin-right: 5px" title="Date selector" /> </td> </tr> </table> <script type="text/javascript"> var $format = "<inp2:m_if check='m_Param' name='calendar_format'><inp2:m_Param name='calendar_format'/><inp2:m_else/><inp2:Format field='{$sort_field}' input_format='1'/></inp2:m_if>"; Calendar.setup({ inputField : "<inp2:SearchInputName field='$filter_field' filter_type='date_range' type='from' grid='$grid'/>", ifFormat : Calendar.phpDateFormat($format), button : "cal_img_<inp2:SearchInputName field='$filter_field' filter_type='date_range' type='from' grid='$grid'/>", align : 'br', singleClick : true, showsTime : true, weekNumbers : false, firstDay : <inp2:m_GetConfig var="FirstDayOfWeek"/> }); Calendar.setup({ inputField : "<inp2:SearchInputName field='$filter_field' filter_type='date_range' type='to' grid='$grid'/>", ifFormat : Calendar.phpDateFormat($format), button : "cal_img_<inp2:SearchInputName field='$filter_field' filter_type='date_range' type='to' grid='$grid'/>", align : 'br', singleClick : true, showsTime : true, weekNumbers : false, firstDay : <inp2:m_GetConfig var="FirstDayOfWeek"/> }); </script> </inp2:m_DefineElement> <inp2:m_DefineElement name="viewmenu_sort_block"> $Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'].addMenuItem('<inp2:m_phrase name="$title" js_escape="1"/>','direct_sort_grid("<inp2:m_param name="PrefixSpecial"/>","<inp2:m_param name="sort_field"/>","<inp2:{$PrefixSpecial}_OrderInfo type="direction" pos="1"/>", null, <inp2:m_param name="ajax"/>);','<inp2:m_if check="{$PrefixSpecial}_IsOrder" field="$sort_field" pos="1" >2</inp2:m_if>'); </inp2:m_DefineElement> <inp2:m_DefineElement name="viewmenu_filter_block"> $Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'].addMenuItem('<inp2:m_param name="label" js_escape="1"/>','<inp2:m_param name="filter_action"/>','<inp2:m_param name="filter_status"/>'); </inp2:m_DefineElement> <inp2:m_DefineElement name="viewmenu_filter_separator"> $Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'].addMenuSeparator(); </inp2:m_DefineElement> <inp2:m_include template="incs/menu_blocks"/> <inp2:m_DefineElement name="grid_save_warning"> <table width="100%" border="0" cellspacing="0" cellpadding="4" class="warning-table"> <tr> <td valign="top" class="form-warning"> <inp2:m_phrase name="la_Warning_Save_Item"/> </td> </tr> </table> <script type="text/javascript"> $edit_mode = <inp2:m_if check="m_ParamEquals" name="edit_mode" value="1">true<inp2:m_else />false</inp2:m_if>; if (Form) Form.Changed(); // window.parent.document.title += ' - MODE: ' + ($edit_mode ? 'EDIT' : 'LIVE'); </script> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_status" no_special="0" pagination="1"> <table class="grid-status-bar"> <tr> <td nowrap="nowrap" style="vertical-align: middle;"> <inp2:m_Phrase label="la_Records"/>: <inp2:GridInfo type="filtered" no_special="$no_special"/> (<inp2:GridInfo type="from" no_special="$no_special"/> - <inp2:GridInfo type="to" no_special="$no_special"/>) <inp2:m_Phrase label="la_OutOf"/> <inp2:GridInfo type="total" no_special="$no_special"/> </td> <td align="right" class="tablenav" valign="middle"> <inp2:m_if check="m_Param" name="pagination"> <inp2:m_RenderElement name="grid_pagination_elem" pass_params="1"/> </inp2:m_if> </td> </tr> </table> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_column_title_html" no_special="0"> <table style="width: auto" class="layout-only-table"><tr> <td style="vertical-align: middle; padding: 0px"> <a href="javascript:resort_grid('<inp2:m_param name="PrefixSpecial"/>','<inp2:m_param name="sort_field"/>', <inp2:m_param name="ajax"/>);" class="columntitle_small" title="<inp2:m_Phrase name='la_col_SortBy' no_editing='1' html_escape='1'/> <inp2:m_if check='m_Param' name='use_phrases'><inp2:m_Phrase name='$title' no_editing='1' html_escape='1'/><inp2:m_else/><inp2:m_Param name='title'/></inp2:m_if>"> <img alt="<inp2:m_Phrase name='la_col_SortBy' no_editing='1' html_escape='1'/> <inp2:m_if check='m_Param' name='use_phrases'><inp2:m_Phrase name='$title' no_editing='1' html_escape='1'/><inp2:m_else/><inp2:m_Param name='title'/></inp2:m_if>" src="img/list_arrow_<inp2:Order field='$sort_field' no_special='$no_special'/>.gif" width="15" height="15" border="0" align="absmiddle" /> </a> </td> <td style="vertical-align: middle; text-align: left; padding: 1px; white-space: normal"> <a href="javascript:resort_grid('<inp2:m_param name="PrefixSpecial"/>','<inp2:m_param name="sort_field"/>', <inp2:m_param name="ajax"/>);" class="columntitle_small" title="<inp2:m_Phrase name='la_col_SortBy' no_editing='1' html_escape='1'/> <inp2:m_if check='m_Param' name='use_phrases'><inp2:m_Phrase name='$title' no_editing='1' html_escape='1'/><inp2:m_else/><inp2:m_Param name='title'/></inp2:m_if>"> <inp2:m_if check="m_Param" name="use_phrases"><inp2:m_Phrase name="$title"/><inp2:m_else/><inp2:m_Param name="title"/></inp2:m_if> </a> </td> </tr></table> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_selector_icon_html" selector="checkbox"> <div style="white-space: nowrap;"> <inp2:m_if check="m_Param" name="selector"> <input type="<inp2:m_Param name='selector'/>" name="<inp2:InputName field='$IdField' IdField='$IdField'/>" id="<inp2:InputName field='$IdField' IdField='$IdField'/>"> </inp2:m_if> <inp2:ItemIcon name="module" grid="$grid" result_to_var="icon_module"/> <img src="<inp2:ModulePath module='$icon_module'/>img/itemicons/<inp2:ItemIcon grid='$grid'/>" width="16" height="16" alt=""/> </div> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_selector_html" selector="checkbox"> <inp2:m_if check="m_Param" name="selector"> <input type="<inp2:m_Param name='selector'/>" name="<inp2:InputName field='$IdField' IdField='$IdField'/>" id="<inp2:InputName field='$IdField' IdField='$IdField'/>"> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_select_all_checkbox_html"> <input type="checkbox" onclick="Grids['<inp2:m_param name="PrefixSpecial"/>'].InvertSelection(); this.checked=false;" ondblclick="Grids['<inp2:m_param name="PrefixSpecial"/>'].ClearSelection(); this.checked=false;" /> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_column_title" use_phrases="1"> '<inp2:m_RenderElement name="grid_column_title_html" pass_params="1" js_escape="1"/>'<inp2:m_if check="m_Param" name="is_last" inverse="1">,</inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_column_title_no_sorting" use_phrases="1"> '<inp2:m_if check="m_ParamEquals" name="use_phrases" value="1"><inp2:m_phrase name="$title" js_escape="1"/><inp2:m_else/><inp2:m_param name="title" js_escape="1"/></inp2:m_if>'<inp2:m_if check="m_Param" name="is_last" inverse="1">,</inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_js_data_td" format="" no_special="1" nl2br="" first_chars="" td_style=""> '<inp2:m_RenderElement name="$data_block" pass_params="1" js_escape="1"/>'<inp2:m_if check="m_Param" name="is_last" inverse="1">,</inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_js_filter_block" use_phrases="0"> '<inp2:m_RenderElement name="$filter_block" pass_params="1" js_escape="1"/>'<inp2:m_if check="m_Param" name="is_last" inverse="1">,</inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_js_width_td" format="" width="" no_special="1" nl2br="" first_chars="" td_style=""> <inp2:m_Param name="width" js_escape="1"/><inp2:m_if check="m_Param" name="is_last" inverse="1">,</inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid" main_prefix="" per_page="" main_special="" grid_filters="" search="on" header_block="grid_column_title" filter_block="grid_column_filter" data_block="grid_data_td" totals_block="grid_total_td" row_block="_row" ajax="0" totals="0" limited_heights="false" max_row_height="45" grid_height="auto" no_special="0" selector="checkbox" grid_status="1" totals_render_as="" > <!--## grid_filters - show individual filters for each column has_filters - draw filter section in "View" menu in toolbar ##--> <inp2:InitList pass_params="1"/> <!--## this is to avoid recalling prefix as an item in first iterate grid, by col-picker for instance ##--> <inp2:{$PrefixSpecial}_SaveWarning name="grid_save_warning" pass_params="1"/> <inp2:m_if check="{$PrefixSpecial}_SearchActive" grid="$grid"> <table width="100%" border="0" cellspacing="0" cellpadding="4" class="warning-table"> <tr> <td valign="top" class="form-warning"> <inp2:m_phrase name="la_Warning_Filter"/> </td> </tr> </table> </inp2:m_if> <div id="grid_<inp2:m_Param name='PrefixSpecial'/>_container"></div> <inp2:m_if check="m_Param" name="grid_status"> <inp2:m_RenderElement name="grid_status" grid="$grid" PrefixSpecial="$PrefixSpecial" main_special="$main_special" no_special="$no_special" search="$search" ajax="$ajax"/> </inp2:m_if> <inp2:m_if check="m_ParamEquals" name="ajax" value="0"> <inp2:m_if check="m_GetEquals" name="fw_menu_included" value=""> <link rel="stylesheet" rev="stylesheet" href="incs/nlsmenu.css" type="text/css" /> <script type="text/javascript" src="js/nlsmenu.js"></script> <script type="text/javascript" src="js/nlsmenueffect_1_2_1.js"></script> <script type="text/javascript"> var menuMgr = new NlsMenuManager("mgr"); menuMgr.timeout = 500; menuMgr.flowOverFormElement = true; </script> <inp2:m_set fw_menu_included="1"/> </inp2:m_if> <script type="text/javascript"> <inp2:m_RenderElement name="grid_js" mouseover_class="grid-data-row-mouseover" selected_class="grid-data-row-selected:grid-data-row-even-selected" tag_name="tr" pass_params="true"/> </script> </inp2:m_if> <input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1" name="<inp2:m_param name="PrefixSpecial"/>_Sort1" value=""> <input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" name="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" value="asc"> </inp2:m_DefineElement> <inp2:m_DefineElement name="default_sorting_element" ajax="0"> <div style="text-align: center;"> <a href="#" onclick="reset_sorting('<inp2:m_Param name="prefix"/>', <inp2:m_param name="ajax"/>); return false;" title="<inp2:m_phrase name="la_col_ResetToDefaultSorting" html_escape="1"/>"> <img src="img/list_arrow_<inp2:m_if check='{$prefix}_OrderChanged'>no<inp2:m_else/>desc</inp2:m_if>_big.gif" width="16" height="16" alt="<inp2:m_phrase name="la_col_ResetToDefaultSorting" html_escape="1"/>"/> </a> </div> </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_total_row"> GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].SetFooter( [ [' ', <inp2:IterateGridFields grid="$grid" mode="total" force_block="$totals_block" ajax="$ajax"/>] ] ); </inp2:m_DefineElement> <inp2:m_DefineElement name="grid_js" main_prefix="" per_page="" main_special="" grid_filters="" header_block="grid_column_title" filter_block="grid_column_filter" data_block="grid_data_td" totals_block="grid_total_td" row_block="_row" ajax="0" totals="0" limited_heights="false" max_row_height="45" grid_height="auto" grid_status="1" ajax="1" totals_render_as="" no_special="0" selector="checkbox" mouseover_class="grid-data-row-mouseover" selected_class="grid-data-row-selected:grid-data-row-even-selected" tag_name="tr" > <inp2:GridSelector grid="$grid" default="$selector" result_to_var="selector"/> // 1. create grid GridScrollers['<inp2:m_param name="PrefixSpecial"/>'] = new GridScroller('grid_<inp2:m_Param name="PrefixSpecial" />', 'auto', <inp2:m_if check="m_Param" name="grid_height" equals_to="auto">'<inp2:m_Param name="grid_height"/>'<inp2:m_else/><inp2:m_Param name="grid_height"/></inp2:m_if>); GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].Spacer = 'img/spacer.gif'; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].LeftCells = <inp2:FreezerPosition grid="$grid"/>; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].BottomOffset = <inp2:m_if check="m_Param" name="grid_status">30<inp2:m_else/>0</inp2:m_if>; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].MinWidths = [<inp2:GridSelectorColumnWidth selector="$selector" icon_width="20" selector_width="30" grid="$grid"/>, <inp2:IterateGridFields grid="$grid" mode="width" block="grid_js_width_td" ajax="$ajax" no_special="$no_special"/>]; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].PickerCRC = '<inp2:PickerCRC grid="$grid"/>'; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].LimitedHeights = <inp2:m_param name="limited_heights"/>; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].MaxRowHeight = <inp2:m_param name="max_row_height"/>; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].SetHeader( [ [' <inp2:m_RenderElement name="default_sorting_element" prefix="$PrefixSpecial" ajax="$ajax" js_escape="1" strip_nl="2"/>', <inp2:IterateGridFields grid="$grid" mode="header" block="$header_block" ajax="$ajax" no_special="$no_special"/>], ['<inp2:m_if check="m_Param" name="selector" equals_to="checkbox"><inp2:m_RenderElement name="grid_select_all_checkbox_html" pass_params="1" js_escape="1"/><inp2:m_else/> </inp2:m_if>', <inp2:IterateGridFields grid="$grid" mode="filter" force_block="grid_js_filter_block" ajax="$ajax" no_special="$no_special"/>] ] ) GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].FieldNames = ['_CheckboxColumn', <inp2:IterateGridFields grid="$grid" mode="fields" no_special="$no_special"/>]; GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].SetData( [ <inp2:m_DefineElement name="js_row" td_style="" row_class_render_as="" selector_render_as="grid_selector_html" row_class=""> { 'row_class': '<inp2:m_if check="m_Param" name="row_class_render_as"><inp2:m_RenderElement name="$row_class_render_as" PrefixSpecial="$PrefixSpecial" trim="1"/><inp2:m_else/><inp2:m_Param name="row_class"/></inp2:m_if>', 'data': ['<inp2:m_RenderElement name="$selector_render_as" pass_params="1" js_escape="1"/>',<inp2:IterateGridFields grid="$grid" mode="data" force_block="grid_js_data_td" no_special="$no_special"/>] }<inp2:m_if check="m_Param" name="is_last" inverse="1">,</inp2:m_if> </inp2:m_DefineElement> <inp2:m_set {$PrefixSpecial}_sequence="1" odd_even="table-color1"/> <inp2:m_if check="UseItemIcons" grid="$grid"> <inp2:PrintList block="js_row" selector_render_as="grid_selector_icon_html" per_page="$per_page" main_special="$main_special" no_special="$no_special" selector="$selector" grid="$grid"/> <inp2:m_else/> <inp2:PrintList block="js_row" selector_render_as="grid_selector_html" per_page="$per_page" main_special="$main_special" no_special="$no_special" selector="$selector" grid="$grid"/> </inp2:m_if> ] ) GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].IDs = [ <inp2:m_DefineElement name="js_id"> '<inp2:m_param name="PrefixSpecial"/>_<inp2:Field field="$IdField"/>'<inp2:m_if check="m_Param" name="is_last" inverse="1">,</inp2:m_if> </inp2:m_DefineElement> <inp2:PrintList block="js_id" per_page="$per_page" main_special="$main_special" no_special="$no_special" /> ] <inp2:m_if check="m_Param" name="totals_render_as"> <inp2:m_RenderElement name="$totals_render_as" pass_params="1"/> </inp2:m_if> GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].Render('grid_<inp2:m_Param name="PrefixSpecial" />_container'); <inp2:m_ifnot check="m_Param" name="ajax"> <inp2:m_RenderElement name="grid_search_buttons" pass_params="1"/> </inp2:m_ifnot> GridScrollers['<inp2:m_param name="PrefixSpecial"/>'].SaveURL = '<inp2:m_t pass="m,$PrefixSpecial" {$PrefixSpecial}_event="OnSaveWidths" widths="#WIDTHS#" no_amp="1" grid_name="$grid"/>'; <inp2:m_if check="m_Param" name="selector"> // 2. scan grid (only when using selector) Grids['<inp2:m_param name="PrefixSpecial"/>'] = new Grid('<inp2:m_param name="PrefixSpecial"/>', '<inp2:m_param name="selected_class"/>', ':original', ($allow_dbl_click === undefined || $allow_dbl_click ? edit : function() {}) , a_toolbar); Grids['<inp2:m_param name="PrefixSpecial"/>'].MouseOverClass = '<inp2:m_param name="mouseover_class"/>'; Grids['<inp2:m_param name="PrefixSpecial"/>'].StickySelection = true; Grids['<inp2:m_param name="PrefixSpecial"/>'].AddItemsByIdMask('<inp2:m_param name="tag_name"/>', /^<inp2:m_param name="PrefixSpecial"/>_([\d\w-=]+)/, '<inp2:m_param name="PrefixSpecial"/>[$$ID$$][<inp2:m_param name="IdField"/>]'); Grids['<inp2:m_param name="PrefixSpecial"/>'].InitItems(); <inp2:m_if check="m_Param" name="selector" equals_to="radio"> Grids['<inp2:m_param name="PrefixSpecial"/>'].EnableRadioMode(); </inp2:m_if> <inp2:m_if check="{$PrefixSpecial}_UseAutoRefresh"> function refresh_grid() { // window.location.reload(); var $window_url = window.location.href; if ($window_url.indexOf('skip_session_refresh=1') == -1) { $window_url += '&skip_session_refresh=1'; } window.location.href = $window_url; } setTimeout('refresh_grid()', <inp2:{$PrefixSpecial}_AutoRefreshInterval/> * 60000); </inp2:m_if> </inp2:m_if> <inp2:m_RenderElement name="nlsmenu_declaration" pass_params="true"/> $ViewMenus = new Array('<inp2:m_param name="PrefixSpecial"/>'); </inp2:m_DefineElement> <inp2:m_DefineElement name="old_grid" main_prefix="" per_page="" main_special="" grid_filters="" search="on" header_block="grid_column_title" filter_block="grid_column_filter" data_block="grid_data_td" totals_block="grid_total_td" row_block="_row" ajax="0" totals="0" selector="checkbox"> <!--## DEPRICATED. LEFT FOR EDUCATION PURPOSES. grid_filters - show individual filters for each column has_filters - draw filter section in "View" menu in toolbar ##--> <inp2:InitList pass_params="1"/> <!--## this is to avoid recalling prefix as an item in first iterate grid, by col-picker for instance ##--> <inp2:GridSelector grid="$grid" default="$selector" result_to_var="selector"/> <inp2:{$PrefixSpecial}_SaveWarning name="grid_save_warning" main_prefix="$main_prefix"/> <inp2:m_if check="{$PrefixSpecial}_SearchActive" grid="$grid"> <table width="100%" border="0" cellspacing="0" cellpadding="4" class="warning-table" > <tr> <td valign="top" class="hint_red"> <inp2:m_phrase name="la_Warning_Filter"/> </td> </tr> </table> </inp2:m_if> <inp2:m_if check="m_ParamEquals" name="per_page" value="-1" inverse="1"> <inp2:m_RenderElement name="grid_pagination" grid="$grid" PrefixSpecial="$PrefixSpecial" main_special="$main_special" search="$search" ajax="$ajax"/> </inp2:m_if> <table width="100%" cellspacing="0" cellpadding="4" class="bordered"> <inp2:m_if check="m_ParamEquals" name="grid_filters" value="1"> <tr class="pagination_bar"> <inp2:{$PrefixSpecial}_IterateGridFields grid="$grid" mode="filter" block="$filter_block" ajax="$ajax"/> </tr> </inp2:m_if> <tr class="grid-header-row grid-header-row-1"> <inp2:{$PrefixSpecial}_IterateGridFields grid="$grid" mode="header" block="$header_block" ajax="$ajax"/> </tr> <inp2:m_DefineElement name="_row" td_style=""> <tr class="<inp2:m_odd_even odd="grid-data-row grid-data-row-even" even="grid-data-row"/>" id="<inp2:m_param name="PrefixSpecial"/>_<inp2:Field field="$IdField"/>" sequence="<inp2:m_get param="{$PrefixSpecial}_sequence"/>"><inp2:m_inc param="{$PrefixSpecial}_sequence" by="1"/> <inp2:IterateGridFields grid="$grid" mode="data" block="$data_block"/> </tr> </inp2:m_DefineElement> <inp2:m_set {$PrefixSpecial}_sequence="1" odd_even="table-color1"/> <inp2:{$PrefixSpecial}_PrintList block="$row_block" per_page="$per_page" main_special="$main_special" /> <inp2:m_DefineElement name="grid_total_td"> <inp2:m_if check="m_Param" name="total"> <td style="<inp2:m_param name="td_style"/>"> <inp2:FieldTotal name="$field" function="$total"/> </td> <inp2:m_else/> <td style="<inp2:m_param name="td_style"/>"> </td> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_if check="m_ParamEquals" name="totals" value="1"> <tr class="totals-row"/> <inp2:IterateGridFields grid="$grid" mode="data" block="$totals_block"/> </tr> </inp2:m_if> </table> <inp2:m_if check="m_ParamEquals" name="ajax" value="0"> <inp2:m_if check="m_GetEquals" name="fw_menu_included" value=""> <script type="text/javascript" src="incs/fw_menu.js"></script> <link rel="stylesheet" rev="stylesheet" href="incs/nlsmenu.css" type="text/css" /> <script type="text/javascript" src="js/nlsmenu.js"></script> <script type="text/javascript" src="js/nlsmenueffect_1_2_1.js"></script> <script type="text/javascript"> var menuMgr = new NlsMenuManager("mgr"); menuMgr.timeout = 500; menuMgr.flowOverFormElement = true; </script> <inp2:m_set fw_menu_included="1"/> </inp2:m_if> <script type="text/javascript"> <inp2:m_RenderElement name="old_grid_js" mouseover_class="grid-data-row-mouseover" selected_class="grid-data-row-selected:grid-data-row-even-selected" tag_name="tr" pass_params="true"/> </script> </inp2:m_if> <input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1" name="<inp2:m_param name="PrefixSpecial"/>_Sort1" value=""> <input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" name="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" value="asc"> </inp2:m_DefineElement> <inp2:m_DefineElement name="old_grid_js" selector="checkbox" ajax="1"> <!--## DEPRICATED. LEFT FOR EDUCATION PURPOSES. ##--> <inp2:GridSelector grid="$grid" default="$selector" result_to_var="selector"/> <inp2:m_if check="m_Param" name="selector"> Grids['<inp2:m_param name="PrefixSpecial"/>'] = new Grid('<inp2:m_param name="PrefixSpecial"/>', 'grid-data-row-selected:grid-data-row-even-selected', ':original', edit, a_toolbar); Grids['<inp2:m_param name="PrefixSpecial"/>'].MouseOverClass = 'grid-data-row-mouseover'; Grids['<inp2:m_param name="PrefixSpecial"/>'].StickySelection = true; Grids['<inp2:m_param name="PrefixSpecial"/>'].AddItemsByIdMask('<inp2:m_param name="tag_name"/>', /^<inp2:m_param name="PrefixSpecial"/>_([\d\w-]+)/, '<inp2:m_param name="PrefixSpecial"/>[$$ID$$][<inp2:m_param name="IdField"/>]'); Grids['<inp2:m_param name="PrefixSpecial"/>'].InitItems(); <inp2:m_if check="m_Param" name="selector" equals_to="radio"> Grids['<inp2:m_param name="PrefixSpecial"/>'].EnableRadioMode(); </inp2:m_if> </inp2:m_if> <inp2:m_RenderElement name="nlsmenu_declaration" pass_params="true"/> $ViewMenus = new Array('<inp2:m_param name="PrefixSpecial"/>'); </inp2:m_DefineElement> \ No newline at end of file Index: branches/5.0.x/core/admin_templates/incs/form_blocks.tpl =================================================================== --- branches/5.0.x/core/admin_templates/incs/form_blocks.tpl (revision 12541) +++ branches/5.0.x/core/admin_templates/incs/form_blocks.tpl (revision 12542) @@ -1,1075 +1,1075 @@ <inp2:m_DefineElement name="combined_header" permission_type="view" perm_section="" perm_prefix="" perm_event="" system_permission="1" title_preset="" tab_preset="" additional_title_render_as="" additional_blue_bar_render_as="" pagination_prefix="" parent="1" grid="Default"> <inp2:m_if check="m_Param" name="perm_section" inverse="1"> <inp2:adm_SectionInfo section="$section" info="perm_section" result_to_var="perm_section"/> </inp2:m_if> <inp2:m_if check="m_Param" name="permission_type"> <inp2:m_RequireLogin permissions="{$perm_section}.{$permission_type}" perm_event="$perm_event" perm_prefix="$perm_prefix" system="$system_permission"/> <inp2:m_else/> <inp2:m_RequireLogin permissions="{$perm_section}" perm_event="$perm_event" perm_prefix="$perm_prefix" system="$system_permission"/> </inp2:m_if> <inp2:m_if check="m_Param" name="prefix" inverse="1"><inp2:adm_SectionInfo section="$section" info="SectionPrefix" result_to_var="prefix"/></inp2:m_if> <inp2:m_if check="m_get" var="m_wid" inverse="1"> <inp2:m_if check="m_GetConfig" name="UseSmallHeader"> <img src="img/spacer.gif" height="8" width="1" alt=""/> <inp2:m_else/> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <!--## <tr<inp2:m_ifnot check="m_ModuleEnabled" module="Proj-Base"> style="background: url(<inp2:adm_SectionInfo section="$section" parent="$parent" info="module_path"/>img/logo_bg.gif) no-repeat top right; height: 55px;"</inp2:m_ifnot>> ##--> <tr> <td valign="top" class="admintitle" align="left" style="padding-top: 10px; padding-bottom: 10px;"> <!--## <img width="46" height="46" src="<inp2:adm_SectionInfo section='$section' parent='$parent' info='module_path'/>img/icons/icon46_<inp2:adm_SectionInfo section='$section' parent='$parent' info='icon'/>.gif" align="absmiddle" title="<inp2:adm_SectionInfo section='$section' parent='$parent' info='label'/>" alt=""/> ##--> <inp2:adm_SectionInfo section="$section" parent="$parent" info="label"/> </td> <inp2:m_if check="m_Param" name="additional_title_render_as"> <inp2:m_RenderElement name="$additional_title_render_as" pass_params="1"/> </inp2:m_if> </tr> </table> </inp2:m_if> <inp2:m_else/> <inp2:m_if check="m_Param" name="additional_title_render_as"> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <!--## <tr<inp2:m_ifnot check="m_ModuleEnabled" module="Proj-Base"> style="background: url(<inp2:adm_SectionInfo section="$section" parent="$parent" info="module_path"/>img/logo_bg.gif) no-repeat top right; height: 55px;"</inp2:m_ifnot>> ##--> <tr> <inp2:m_RenderElement name="$additional_title_render_as" pass_params="1"/> </tr> </table> </inp2:m_if> </inp2:m_if> <inp2:$prefix_ModifyUnitConfig pass_params="1"/> <inp2:m_if check="m_Param" name="tabs"> <inp2:m_include t="$tabs" pass_params="1"/> </inp2:m_if> <inp2:m_if check="m_Param" name="tab_preset"> <inp2:m_RenderElement name="edit_tabs" prefix="$prefix" preset_name="$tab_preset"/> </inp2:m_if> <table border="0" cellpadding="2" cellspacing="0" class="bordered-no-bottom" width="100%" style="height: 30px;"> <tr> <td class="header_left_bg" nowrap="nowrap" style="vertical-align: middle;"> <inp2:adm_SectionInfo section="$section" info="label" result_to_var="default_title"/> <inp2:adm_SectionInfo section="$section" parent="$parent" info="label" result_to_var="group_title"/> <span class="tablenav_link" id="blue_bar"> <inp2:$prefix_SectionTitle title_preset="$title_preset" section="$section" title="$default_title" group_title="$group_title" cut_first="100" pass_params="true"/> </span> </td> <td align="right" class="tablenav" style="vertical-align: middle;"> <inp2:m_if check="m_Param" name="additional_blue_bar_render_as"> <inp2:m_RenderElement name="$additional_blue_bar_render_as" pass_params="1"/> <inp2:m_else/> <inp2:m_if check="m_Param" name="pagination"> <inp2:$prefix_SelectParam possible_names="pagination_prefix,prefix" result_to_var="pagination_prefix"/> <inp2:m_RenderElement name="grid_pagination_elem" PrefixSpecial="$pagination_prefix" pass_params="1"/> </inp2:m_if> </inp2:m_if> </td> </tr> </table> <script type="text/javascript"> var $visible_toolbar_buttons = <inp2:m_if check="{$prefix}_VisibleToolbarButtons" title_preset="$title_preset">[<inp2:$prefix_VisibleToolbarButtons title_preset="$title_preset"/>]<inp2:m_else/>true</inp2:m_if>; var $allow_dbl_click = ($visible_toolbar_buttons === true) || in_array('dbl-click', $visible_toolbar_buttons); set_window_title( $.trim( $('#blue_bar').text().replace(/\s+/g, ' ') ) + ' - <inp2:m_Phrase label="la_AdministrativeConsole" js_escape="1"/>'); setHelpLink('<inp2:lang.current_Field name="UserDocsUrl" js_escape="1"/>', '<inp2:m_Param name="title_preset" js_escape="1"/>'); </script> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_original_label"> <td><inp2:$prefix.original_Field field="$field" nl2br="1"/></td> </inp2:m_DefineElement> <inp2:m_DefineElement name="subsection" prefix="" fields="" colspan="3"> <inp2:m_if check="m_Param" name="prefix" equals_to=""> <tr class="subsectiontitle"> <td colspan="<inp2:m_param name='colspan'/>"><inp2:m_phrase label="$title"/></td> </tr> <inp2:m_else/> <inp2:m_if check="{$prefix}_FieldsVisible" fields="$fields"> <tr class="subsectiontitle"> <td colspan="<inp2:m_param name='colspan'/>"><inp2:m_phrase label="$title"/></td> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <td><inp2:m_phrase name="$original_title"/></td> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_field_caption" title="" hint_label="" NamePrefix=""> <inp2:m_inc param="tab_index" by="1"/> <td class="label-cell" onmouseover="show_form_error('<inp2:m_Param name='prefix' js_escape='1'/>', '<inp2:m_Param name='field' js_escape='1'/>')" onmouseout="hide_form_error('<inp2:m_Param name='prefix' js_escape='1'/>')"> <inp2:m_if check="m_Param" name="title"> <label for="<inp2:m_param name='NamePrefix'/><inp2:{$prefix}_InputName field='$field'/>"> <span class="<inp2:m_if check='{$prefix}_HasError' field='$field'>error-cell</inp2:m_if>"><inp2:m_phrase label="$title"/></span></span><inp2:m_if check="{$prefix}_IsRequired" field="$field"><span class="field-required"> *</span></inp2:m_if>:<inp2:m_if check="m_Param" name="hint_label"><span> <img src="<inp2:m_TemplatesBase/>/img/hint_icon.png" width="12" height="13" title="<inp2:m_Phrase label='$hint_label' html_escape='1'/>" alt="<inp2:m_Phrase label='$hint_label' html_escape='1'/>"/></inp2:m_if> </label> <inp2:m_else/> </inp2:m_if> </td> <td class="control-mid"> </td> <script type="text/javascript"> if (typeof(fields['<inp2:m_Param name="prefix" js_escape="1"/>']) == 'undefined') { fields['<inp2:m_Param name="prefix" js_escape="1"/>'] = new Object(); } fields['<inp2:m_Param name="prefix" js_escape="1"/>']['<inp2:m_Param name="field" js_escape="1"/>'] = '<inp2:m_phrase label="$title" js_escape="1"/>' </script> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_label" style="" format="" db="" hint_label="" as_label="" currency="" no_special="" nl2br="0" with_hidden="0" is_last=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell" valign="top"> <span style="<inp2:m_Param name='style'/>" id="<inp2:$prefix_InputName field='$field'/>"> <inp2:{$prefix}_Field field="$field" format="$format" as_label="$as_label" currency="$currency" nl2br="$nl2br" no_special="$no_special"/> </span> <inp2:m_if check="m_Param" name="with_hidden"> <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' db='$db'/>"> </inp2:m_if> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_id_label"> <inp2:m_ifnot check="Field" field="$field" equals_to="|0"> <inp2:m_RenderElement name="inp_label" pass_params="true"/> </inp2:m_ifnot> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_error"> <script type="text/javascript"> add_form_error('<inp2:m_Param name="prefix" js_escape="1"/>', '<inp2:m_Param name="field" js_escape="1"/>', '<inp2:{$prefix}_InputName field="$field"/>', '<inp2:{$prefix}_Error field="$field" js_escape="1"/>') </script> <!--##<td class="error-cell"><inp2:{$prefix}_Error field="$field"/> </td>##--> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_box" class="" format="" is_last="" maxlength="" onblur="" onchange="" size="" onkeyup="" hint_label="" style="width: 100%"> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <input style="<inp2:m_Param name='style'/>" type="text" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' format='$format'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" maxlength="<inp2:m_param name='maxlength'/>" class="<inp2:m_param name='class'/>" onblur="<inp2:m_Param name='onblur'/>" onkeyup="<inp2:m_Param name='onkeyup'/>" onchange="<inp2:m_Param name='onchange'/>"> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_password" class="" size="" hint_label="" style=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" hint_label="$hint_label" title="$title"/> <td class="control-cell"> <input style="<inp2:m_Param name='style'/>" type="password" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field name='{$field}_plain'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" class="<inp2:m_param name='class'/>" /> <script type="text/javascript"> $(document).ready( function() { <inp2:m_ifnot check="{$prefix}_Field" name="{$field}_plain"> $('#' + jq('<inp2:{$prefix}_InputName field="$field"/>')).val(''); </inp2:m_ifnot> } ); </script> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_upload" class="" size="" thumbnail="" is_last="" hint_label="" style=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <inp2:m_if check="m_Param" name="thumbnail"> <inp2:m_if check="{$prefix}_FieldEquals" name="$field" value="" inverse="inverse"> <img src="<inp2:{$prefix}_Field field='$field' format='resize:{$thumbnail}'/>" alt=""/><br /> <table cellpadding="0" cellspacing="0"> <tr> <td> <input type="hidden" id="<inp2:{$prefix}_InputName field='Delete{$field}'/>" name="<inp2:{$prefix}_InputName field='Delete{$field}'/>" value="0" /> <input type="checkbox" id="_cb_<inp2:{$prefix}_InputName field='Delete{$field}'/>" onchange="update_checkbox(this, document.getElementById('<inp2:{$prefix}_InputName field='Delete{$field}'/>'));"> </td> <td> <label for="_cb_<inp2:{$prefix}_InputName field='Delete{$field}'/>"><inp2:m_phrase name="la_btn_DeleteImage"/></label> </td> </tr> </table> </inp2:m_if> <input type="file" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" class="<inp2:m_param name='class'/>"> <inp2:m_else/> <input type="file" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" class="<inp2:m_param name='class'/>"> <inp2:m_if check="{$prefix}_FieldEquals" name="$field" value="" inverse="inverse"> (<inp2:{$prefix}_Field field="$field"/>) </inp2:m_if> </inp2:m_if> <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>[upload]" id="<inp2:{$prefix}_InputName field='$field'/>[upload]" value="<inp2:{$prefix}_Field field='$field'/>"> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_box_ml"> <inp2:m_RenderElement name="inp_edit_box" format="no_default" pass_params="true"/> <!--## <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <td class="label-cell" valign="top"> <span class="<inp2:m_if check='{$prefix}_HasError' field='$field'>error-cell</inp2:m_if>" > <inp2:m_phrase label="$title"/><inp2:m_if check="{$prefix}_IsRequired" field="$field"><span class="field-required"> *</span></inp2:m_if>:</span><br> - <a href="javascript:PreSaveAndOpenTranslator('<inp2:m_param name='prefix'/>', '<inp2:m_param name='field'/>', 'popups/translator');" title="<inp2:m_Phrase label='la_Translate'/>"><img src="img/icons/icon24_translate.gif" style="cursor:hand" border="0"></a> + <a href="javascript:PreSaveAndOpenTranslator('<inp2:m_param name='prefix'/>', '<inp2:m_param name='field'/>', 'popups/translator');" title="<inp2:m_Phrase label='la_Translate'/>"><img src="img/icons/icon24_translate.png" style="cursor:hand" border="0"></a> </td> <td class="control-cell"> <input style="<inp2:m_Param name='style'/>" type="text" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' format='no_default'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" maxlength="<inp2:m_param name='maxlength'/>" class="<inp2:m_param name='class'/>" onblur="<inp2:m_Param name='onblur'/>"> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> ##--> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_swf_upload" class="" is_last="" hint_label="" style=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <div class="uploader-main" id="<inp2:{$prefix}_InputName field='$field'/>_progress"> <div class="uploader-percent" id="<inp2:{$prefix}_InputName field='$field'/>_percent">0%</div> <div class="uploader-left"> <div class="uploader-done" id="<inp2:{$prefix}_InputName field='$field'/>_done"></div> </div> <table style="border-collapse: collapse; width: 100%;"> <tr> <td style="width: 120px">Uploading:</td><td id="<inp2:{$prefix}_InputName field='$field'/>_progress_filename"></td> </tr> <tr> <td>Progress:</td><td id="<inp2:{$prefix}_InputName field='$field'/>_progress_progress"></td> </tr> <tr> <td>Time elapsed:</td><td id="<inp2:{$prefix}_InputName field='$field'/>_progress_elapsed"></td> </tr> <tr> <td>Time remaining:</td><td id="<inp2:{$prefix}_InputName field='$field'/>_progress_remaining"></td> </tr> <tr> <td colspan="2" style="text-align: center"><a href="javascript:UploadsManager.CancelUpload('<inp2:{$prefix}_InputName field='$field'/>')">Cancel</a></td> </tr> </table> </div> <table cellpadding="0" cellspacing="3"> <tr> <td style="width: 63px; height: 21px;" id="<inp2:{$prefix}_InputName field='$field'/>_place_holder"> </td> <td> <input class="button" type="button" onclick="UploadsManager.StartUpload('<inp2:{$prefix}_InputName field='$field'/>')" value="Upload"/> </td> </tr> </table> <div id="<inp2:{$prefix}_InputName field='$field'/>_queueinfo"></div> <div id="<inp2:{$prefix}_InputName field='$field'/>_holder"></div> <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>[upload]" id="<inp2:{$prefix}_InputName field='$field'/>[upload]" value="<inp2:{$prefix}_Field field='$field' format='file_names'/>"><br/> <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>[tmp_ids]" id="<inp2:{$prefix}_InputName field='$field'/>[tmp_ids]" value=""> <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>[tmp_names]" id="<inp2:{$prefix}_InputName field='$field'/>[tmp_names]" value=""> <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>[tmp_deleted]" id="<inp2:{$prefix}_InputName field='$field'/>[tmp_deleted]" value=""> <script type="text/javascript"> UploadsManager.AddUploader('<inp2:{$prefix}_InputName field="$field"/>', { baseUrl: '<inp2:m_TemplatesBase />', allowedFiletypesDescription : '<inp2:{$prefix}_FieldOption field="$field" option="files_description" result_to_var="files_description"/><inp2:m_Phrase name="$files_description" js_escape="1"/>', allowedFiletypes : '<inp2:{$prefix}_FieldOption field="$field" option="file_types"/>', allowedFilesize : '<inp2:{$prefix}_FieldOption field="$field" option="max_size"/>', multiple : '<inp2:{$prefix}_FieldOption field="$field" option="multiple"/>', prefix : '<inp2:m_Param name="prefix"/>', field : '<inp2:m_Param name="field"/>', urls : '<inp2:{$prefix}_Field field="$field" format="file_urls" js_escape="1"/>', names : '<inp2:{$prefix}_Field field="$field" format="file_names" js_escape="1"/>', sizes : '<inp2:{$prefix}_Field field="$field" format="file_sizes" js_escape="1"/>', flashsid : '<inp2:m_SID/>', uploadURL : '<inp2:m_t pass="m,$prefix" {$prefix}_event="OnUploadFile" js_escape="1" no_amp="1" />', deleteURL : '<inp2:m_t pass="m,$prefix" {$prefix}_event="OnDeleteFile" field="#FIELD#" file="#FILE#" js_escape="1" no_amp="1"/>', tmp_url : '<inp2:m_t pass="m,$prefix" {$prefix}_event="OnViewFile" tmp="1" field="#FIELD#" file="#FILE#" id="#ID#" js_escape="1" no_amp="1" />', // Button settings buttonImageURL: 'img/upload.png', // Relative to the Flash file buttonWidth: 63, buttonHeight: 21, buttonText: '<span class="theFont">Browse</span>', buttonTextStyle: ".theFont { font-size: 12; font-family: arial, sans}", buttonTextTopPadding: 2, buttonTextLeftPadding: 9, buttonPlaceholderId: '<inp2:{$prefix}_InputName field="$field"/>_place_holder' } ) </script> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_hidden" db=""> <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' db='$db'/>"> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_date" class="" hint_label="" is_last=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="{$field}_date" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <input type="text" name="<inp2:{$prefix}_InputName field='{$field}_date'/>" id="<inp2:{$prefix}_InputName field='{$field}_date'/>" value="<inp2:{$prefix}_Field field='{$field}_date' format='_regional_InputDateFormat'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:{$prefix}_Format field='{$field}_date' input_format='1' edit_size='edit_size'/>" class="<inp2:m_param name='class'/>" datepickerIcon="<inp2:m_ProjectBase/>core/admin_templates/img/calendar_icon.gif"> <img src="img/calendar_icon.gif" id="cal_img_<inp2:{$prefix}_InputName field='{$field}'/>" style="cursor: pointer; margin-right: 5px" title="Date selector" /> <span class="small">(<inp2:{$prefix}_Format field="{$field}_date" input_format="1" human="true"/>)</span> <script type="text/javascript"> Calendar.setup({ inputField : "<inp2:{$prefix}_InputName field='{$field}_date'/>", ifFormat : Calendar.phpDateFormat("<inp2:{$prefix}_Format field='{$field}_date' input_format='1'/>"), button : "cal_img_<inp2:{$prefix}_InputName field='{$field}'/>", align : "br", singleClick : true, showsTime : true, weekNumbers : false, firstDay : <inp2:m_GetConfig var="FirstDayOfWeek"/>, onUpdate : function(cal) { runOnChange('<inp2:$prefix_InputName field='{$field}_date'/>'); } }); </script> <input type="hidden" name="<inp2:{$prefix}_InputName field='{$field}_time'/>" id="<inp2:{$prefix}_InputName field='{$field}_time' input_format='1'/>" value=""> </td> <inp2:m_RenderElement name="inp_edit_error" field="{$field}_date" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_time" class="" hint_label="" is_last=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="{$field}_time" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <input type="text" name="<inp2:{$prefix}_InputName field='{$field}_time'/>" id="<inp2:{$prefix}_InputName field='{$field}_time'/>" value="<inp2:{$prefix}_Field field='{$field}_time' format='_regional_InputTimeFormat'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' edit_size='edit_size'/>" class="<inp2:m_param name='class'/>"> <span class="small">(<inp2:{$prefix}_Format field="{$field}_time" input_format="1" human="true"/>)</span> <input type="hidden" name="<inp2:{$prefix}_InputName field='{$field}_date'/>" id="<inp2:{$prefix}_InputName field='{$field}_date' input_format='1'/>" value=""> </td> <inp2:m_RenderElement name="inp_edit_error" field="{$field}_time" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_date_time" class="" hint_label="" is_last=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <!-- <input type="hidden" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' db='db'/>"> --> <input type="text" name="<inp2:{$prefix}_InputName field='{$field}_date'/>" id="<inp2:{$prefix}_InputName field='{$field}_date'/>" value="<inp2:{$prefix}_Field field='{$field}_date' format='_regional_InputDateFormat'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:{$prefix}_Format field='{$field}_date' input_format='1' edit_size='edit_size'/>" class="<inp2:m_param name='class'/>" datepickerIcon="<inp2:m_ProjectBase/>core/admin_templates/img/calendar_icon.gif"> <img src="img/calendar_icon.gif" id="cal_img_<inp2:{$prefix}_InputName field="{$field}"/>" style="cursor: pointer; margin-right: 5px" title="Date selector" /> <span class="small">(<inp2:{$prefix}_Format field="{$field}_date" input_format="1" human="true"/>)</span> <input type="hidden" id="full_date_<inp2:{$prefix}_InputName field='{$field}'/>" value="<inp2:{$prefix}_Field field='{$field}' format=''/>" /> <script type="text/javascript"> Calendar.setup({ inputField : "full_date_<inp2:{$prefix}_InputName field='{$field}'/>", ifFormat : Calendar.phpDateFormat("<inp2:{$prefix}_Format field='{$field}' input_format='1'/>"), button : "cal_img_<inp2:{$prefix}_InputName field='{$field}'/>", align : "br", singleClick : true, showsTime : true, weekNumbers : false, firstDay : <inp2:m_GetConfig var="FirstDayOfWeek"/>, onUpdate : function(cal) { document.getElementById('<inp2:{$prefix}_InputName field="{$field}_date"/>').value = cal.date.print( Calendar.phpDateFormat("<inp2:{$prefix}_Format field="{$field}_date" input_format="1"/>") ); document.getElementById('<inp2:{$prefix}_InputName field="{$field}_time"/>').value = cal.date.print( Calendar.phpDateFormat("<inp2:{$prefix}_Format field="{$field}_time" input_format="1"/>") ); } }); </script> <input type="text" name="<inp2:{$prefix}_InputName field='{$field}_time'/>" id="<inp2:{$prefix}_InputName field='{$field}_time'/>" value="<inp2:{$prefix}_Field field='{$field}_time' format='_regional_InputTimeFormat'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:{$prefix}_Format field='{$field}_time' input_format='1' edit_size='edit_size'/>" class="<inp2:m_param name='class'/>"><span class="small"> (<inp2:{$prefix}_Format field="{$field}_time" input_format="1" human="true"/>)</span> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_textarea" class="" format="" edit_template="popups/editor" allow_html="allow_html" style="text-align: left; width: 100%; height: 100px;" control_options="false"> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>" style="height: auto"> <td class="label-cell" onmouseover="show_form_error('<inp2:m_Param name='prefix' js_escape='1'/>', '<inp2:m_Param name='field' js_escape='1'/>')" onmouseout="hide_form_error('<inp2:m_Param name='prefix' js_escape='1'/>')" valign="top"> <span class="<inp2:m_if check='{$prefix}_HasError' field='$field'>error-cell</inp2:m_if>" > <inp2:m_phrase label="$title"/><inp2:m_if check="{$prefix}_IsRequired" field="$field"><span class="field-required"> *</span></inp2:m_if>:</span><br> <inp2:m_if check="m_ParamEquals" name="allow_html" value="allow_html"> <inp2:{$prefix}_InputName field="$field" result_to_var="input_name"/> <a href="<inp2:m_Link template='$edit_template' TargetField='$input_name' pass_through='TargetField' pass='m,$prefix'/>" onclick="openSelector('<inp2:m_Param name='prefix' js_escape='1'/>', this.href, '', '800x575'); return false;"> <img src="img/icons/icon24_link_editor.gif" style="cursor: hand;" border="0"> </a> <!--## <a href="javascript:OpenEditor('§ion=in-link:editlink_general','kernel_form','<inp2:{$prefix}_InputName field="$field"/>');"><img src="img/icons/icon24_link_editor.gif" style="cursor:hand" border="0"></a> ##--> </inp2:m_if> </td> <td class="control-mid"> </td> <script type="text/javascript"> if (typeof(fields['<inp2:m_Param name="prefix" js_escape="1"/>']) == 'undefined') { fields['<inp2:m_Param name="prefix" js_escape="1"/>'] = new Object(); } fields['<inp2:m_Param name="prefix" js_escape="1"/>']['<inp2:m_Param name="field" js_escape="1"/>'] = '<inp2:m_phrase label="$title" js_escape="1"/>' </script> <td class="control-cell"> <textarea style="<inp2:m_Param name='style'/>" tabindex="<inp2:m_get param='tab_index'/>" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" ><inp2:{$prefix}_Field field="$field" format="fck_ready;{$format}"/></textarea> <script type="text/javascript"> Form.addControl('<inp2:{$prefix}_InputName field="$field"/>', <inp2:m_param name="control_options"/>); </script> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_fck" class="" is_last="" maxlength="" bgcolor="" onblur="" size="" onkeyup="" style="" control_options="false"> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <td class="control-cell" colspan="3" onmouseover="show_form_error('<inp2:m_Param name='prefix' js_escape='1'/>', '<inp2:m_Param name='field' js_escape='1'/>')" onmouseout="hide_form_error('<inp2:m_Param name='prefix' js_escape='1'/>')"> <inp2:FCKEditor field="$field" width="100%" bgcolor="$bgcolor" height="200" late_load="1"/> <script type="text/javascript"> if (typeof(fields['<inp2:m_Param name="prefix" js_escape="1"/>']) == 'undefined') { fields['<inp2:m_Param name="prefix" js_escape="1"/>'] = new Object(); } fields['<inp2:m_Param name="prefix" js_escape="1"/>']['<inp2:m_Param name="field" js_escape="1"/>'] = '<inp2:m_phrase label="$title" js_escape="1"/>' Form.addControl('<inp2:$prefix_InputName field="$field"/>___Frame', <inp2:m_param name="control_options"/>); </script> </td> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_codepress" is_last="" style="width: 100%;" language="html" control_options="false"> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='table_color1' even='table_color2'/>"> <td class="control-cell" colspan="3" onmouseover="show_form_error('<inp2:m_Param name='prefix' js_escape='1'/>', '<inp2:m_Param name='field' js_escape='1'/>')" onmouseout="hide_form_error('<inp2:m_Param name='prefix' js_escape='1'/>')"> <inp2:m_ifnot check="m_Get" name="codepress_included"> <script type="text/javascript" src="<inp2:m_TemplatesBase/>/themes/codepress/codepress.js"></script> <script type="text/javascript"> CodePress.path = '<inp2:m_TemplatesBase/>/themes/codepress/'; // set path here, because script tags are not found in table cells </script> <inp2:m_Set codepress_included="1"/> </inp2:m_ifnot> <textarea id="<inp2:$prefix_InputName field='$field'/>" name="<inp2:$prefix_InputName field='$field'/>" class="codepress <inp2:m_Param name='language'/>" style="<inp2:m_Param name='style'/>"><inp2:$prefix_Field field="$field"/></textarea> <script type="text/javascript"> Application.setHook( new Array ('<inp2:m_Param name="prefix" js_escape="1"/>:OnPreSaveAndGoToTab', '<inp2:m_Param name="prefix" js_escape="1"/>:OnPreSaveAndGo', '<inp2:m_Param name="prefix" js_escape="1"/>:OnSave', '<inp2:m_Param name="prefix" js_escape="1"/>:OnCreate', '<inp2:m_Param name="prefix" js_escape="1"/>:OnUpdate'), function($event) { <inp2:m_Param name="field"/>.toggleEditor(); // enable textarea back to save data $event.status = true; } ); if (typeof(fields['<inp2:m_Param name="prefix" js_escape="1"/>']) == 'undefined') { fields['<inp2:m_Param name="prefix" js_escape="1"/>'] = new Object(); } fields['<inp2:m_Param name="prefix" js_escape="1"/>']['<inp2:m_Param name="field" js_escape="1"/>'] = '<inp2:m_phrase label="$title" js_escape="1"/>' Form.addControl('<inp2:$prefix_InputName field="$field"/>', <inp2:m_param name="control_options"/>); </script> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_textarea_ml"> <inp2:m_RenderElement name="inp_edit_textarea" format="no_default" pass_params="true"/> <!--## <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <td class="label-cell" valign="top"> <span class="<inp2:m_if check='{$prefix}_HasError' field='$field'>error-cell</inp2:m_if>" > <inp2:m_phrase label="$title"/><inp2:m_if check="{$prefix}_IsRequired" field="$field"><span class="field-required"> *</span></inp2:m_if>:</span><br> <a href="javascript:OpenEditor('§ion=in-link:editlink_general','kernel_form','<inp2:{$prefix}_InputName field="$field"/>');"><img src="img/icons/icon24_link_editor.gif" style="cursor:hand" border="0"></a> - <a href="javascript:PreSaveAndOpenTranslator('<inp2:m_param name="prefix"/>', '<inp2:m_param name="field"/>', 'popups/translator', 1);" title="<inp2:m_Phrase label="la_Translate"/>"><img src="img/icons/icon24_translate.gif" style="cursor:hand" border="0"></a> + <a href="javascript:PreSaveAndOpenTranslator('<inp2:m_param name="prefix"/>', '<inp2:m_param name="field"/>', 'popups/translator', 1);" title="<inp2:m_Phrase label="la_Translate"/>"><img src="img/icons/icon24_translate.png" style="cursor:hand" border="0"></a> </td> <td class="control-mid"> </td> <td> <textarea tabindex="<inp2:m_get param='tab_index'/>" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" cols="<inp2:m_param name='cols'/>" rows="<inp2:m_param name='rows'/>" class="<inp2:m_param name='class'/>"><inp2:{$prefix}_Field field="$field" format="fck_ready,{$format}"/></textarea> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> ##--> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_user" class="" size="" is_last="" old_style="0" hint_label="" onkeyup=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <input type="text" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" class="<inp2:m_param name='class'/>" onkeyup="<inp2:m_Param name='onkeyup'/>"> <inp2:m_if check="m_ParamEquals" name="old_style" value="1"> <a href="#" onclick="return OpenUserSelector('','kernel_form','<inp2:{$prefix}_InputName field="$field"/>');"> <inp2:m_else/> <a href="javascript:openSelector('<inp2:m_param name='prefix'/>', '<inp2:m_t t='user_selector' pass='all,$prefix' escape='1'/>', '<inp2:m_param name='field'/>');"> </inp2:m_if> <img src="img/icons/icon24_link_user.gif" style="cursor:hand;" border="0"> </a> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_category" class="" size="" is_last="" old_style="0" hint_label="" onkeyup=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <table cellpadding="0" cellspacing="0"> <tr> <td id="<inp2:{$prefix}_InputName field='$field'/>_path"> <inp2:m_DefineElement name="category_caption"> <inp2:m_ifnot check="c_HomeCategory" equals_to="$cat_id"> <inp2:m_param name="separator"/> </inp2:m_ifnot> <inp2:m_param name="cat_name"/> </inp2:m_DefineElement> <inp2:$prefix_FieldCategoryPath field="$field" separator=" > " render_as="category_caption"/> <inp2:m_RenderElement name="inp_edit_hidden" pass_params="1"/> </td> <td valign="middle"> <img src="img/spacer.gif" width="3" height="1" alt=""/> <a href="javascript:openSelector('<inp2:m_param name='prefix'/>', '<inp2:adm_SelectorLink prefix='$prefix' selection_mode='single' tab_prefixes='none'/>', '<inp2:m_param name='field'/>');"> <img src="img/icons/icon24_cat.gif" width="24" height="24" border="0"/> </a> <a href="#" onclick="disable_category('<inp2:m_Param name='field'/>'); return false;"><inp2:m_Phrase name="la_Text_Disable"/></a> <script type="text/javascript"> function disable_category($field) { var $field = '<inp2:{$prefix}_InputName field="#FIELD_NAME#"/>'.replace('#FIELD_NAME#', $field); set_hidden_field($field, ''); document.getElementById($field + '_path').style.display = 'none'; } </script> </td> </tr> </table> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_option_item"> <option value="<inp2:m_param name='key'/>"<inp2:m_param name="selected"/>><inp2:m_param name="option"/></option> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_option_phrase"> <option value="<inp2:m_param name='key'/>"<inp2:m_param name="selected"/>><inp2:m_phrase label="$option"/></option> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_options" is_last="" onchange="" has_empty="0" empty_value="" hint_label="" style=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <select tabindex="<inp2:m_get param='tab_index'/>" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" onchange="<inp2:m_Param name='onchange'/>"> <inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases"> <inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_phrase" selected="selected" has_empty="$has_empty" empty_value="$empty_value"/> <inp2:m_else/> <inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_item" selected="selected" has_empty="$has_empty" empty_value="$empty_value"/> </inp2:m_if> </select> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_multioptions" is_last="" has_empty="0" empty_value="" hint_label="" style=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <select multiple tabindex="<inp2:m_get param='tab_index'/>" id="<inp2:{$prefix}_InputName field='$field'/>_select" onchange="update_multiple_options('<inp2:{$prefix}_InputName field='$field'/>');"> <inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases"> <inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_phrase" selected="selected" has_empty="$has_empty" empty_value="$empty_value"/> <inp2:m_else/> <inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_item" selected="selected" has_empty="$has_empty" empty_value="$empty_value"/> </inp2:m_if> </select> <input type="hidden" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' db='db'/>"/> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_radio_item" onclick="" onchange=""> <input type="radio" <inp2:m_param name="checked"/> name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>" value="<inp2:m_param name="key"/>" onclick="<inp2:m_param name="onclick"/>" onchange="<inp2:m_param name="onchange"/>"><label for="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>"><inp2:m_param name="option"/></label> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_radio_phrase" onclick="" onchange=""> <input type="radio" <inp2:m_param name="checked"/> name="<inp2:{$prefix}_InputName field="$field"/>" id="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>" value="<inp2:m_param name="key"/>" onclick="<inp2:m_param name="onclick"/>" onchange="<inp2:m_param name="onchange"/>"><label for="<inp2:{$prefix}_InputName field="$field"/>_<inp2:m_param name="key"/>"><inp2:m_phrase label="$option"/></label> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_radio" is_last="" pass_tabindex="" onclick="" hint_label="" onchange=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases"> <inp2:{$prefix}_PredefinedOptions field="$field" tabindex="$pass_tabindex" block="inp_radio_phrase" selected="checked" onclick="$onclick" onchange="$onchange" /> <inp2:m_else /> <inp2:{$prefix}_PredefinedOptions field="$field" tabindex="$pass_tabindex" block="inp_radio_item" selected="checked" onclick="$onclick" onchange="$onchange" /> </inp2:m_if> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_checkbox" is_last="" field_class="" onchange="" hint_label="" onclick=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last" NamePrefix="_cb_"/> <td class="control-cell"> <input type="hidden" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' db='db'/>"> <!--<input tabindex="<inp2:m_get param='tab_index'/>" type="checkbox" id="_cb_<inp2:{$prefix}_InputName field='$field'/>" name="_cb_<inp2:{$prefix}_InputName field='$field'/>" <inp2:{$prefix}_Field field="$field" checked="checked" db="db"/> class="<inp2:m_param name='field_class'/>" onclick="update_checkbox(this, document.getElementById('<inp2:{$prefix}_InputName field='$field'/>'));" onchange="<inp2:m_param name='onchange'/>">--> <input tabindex="<inp2:m_get param='tab_index'/>" type="checkbox" id="_cb_<inp2:{$prefix}_InputName field='$field'/>" name="_cb_<inp2:{$prefix}_InputName field='$field'/>" <inp2:{$prefix}_Field field="$field" checked="checked" db="db"/> class="<inp2:m_param name='field_class'/>" onchange="update_checkbox(this, document.getElementById('<inp2:{$prefix}_InputName field='$field'/>'));<inp2:m_param name='onchange'/>" onclick="<inp2:m_param name='onclick'/>"> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_checkbox_item"> <input type="checkbox" <inp2:m_param name='checked'/> id="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>" value="<inp2:m_param name='key'/>" onclick="update_checkbox_options(/^<inp2:{$prefix}_InputName field='$field' as_preg='1'/>_([0-9A-Za-z-]+)/, '<inp2:{$prefix}_InputName field='$field'/>');"><label for="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>"><inp2:m_param name="option"/></label> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_checkbox_phrase"> <input type="checkbox" <inp2:m_param name='checked'/> id="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>" value="<inp2:m_param name='key'/>" onclick="update_checkbox_options(/^<inp2:{$prefix}_InputName field='$field' as_preg='1'/>_([0-9A-Za-z-]+)/, '<inp2:{$prefix}_InputName field='$field'/>');"><label for="<inp2:{$prefix}_InputName field='$field'/>_<inp2:m_param name='key'/>"><inp2:m_phrase label="$option"/></label> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_checkboxes" no_empty="" pass_tabindex="" hint_label="" is_last=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <inp2:m_if check="{$prefix}_FieldOption" field="$field" option="use_phrases"> <inp2:{$prefix}_PredefinedOptions field="$field" no_empty="$no_empty" tabindex="$pass_tabindex" block="inp_checkbox_phrase" selected="checked"/> <inp2:m_else/> <inp2:{$prefix}_PredefinedOptions field="$field" no_empty="$no_empty" tabindex="$pass_tabindex" block="inp_checkbox_item" selected="checked"/> </inp2:m_if> <inp2:m_RenderElement prefix="$prefix" name="inp_edit_hidden" field="$field" db="db"/> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_checkbox_allow_html" is_last="" field_class="" onchange="" onclick="" title="la_enable_html" hint_label="la_Warning_Enable_HTML"> <inp2:m_RenderElement name="inp_edit_checkbox" pass_params="1"/> <!--## <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <input type="hidden" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field' db='db'/>"> <input tabindex="<inp2:m_get param='tab_index'/>" type="checkbox" id="_cb_<inp2:{$prefix}_InputName field='$field'/>" name="_cb_<inp2:{$prefix}_InputName field='$field'/>" <inp2:{$prefix}_Field field="$field" checked="checked" db="db"/> class="<inp2:m_param name='field_class'/>" onchange="update_checkbox(this, document.getElementById('<inp2:{$prefix}_InputName field='$field'/>'));<inp2:m_param name='onchange'/>" onclick="<inp2:m_param name='onclick'/>"> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> </tr> </inp2:m_if> ##--> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_weight" class="" is_last="" hint_label="" maxlength=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <inp2:m_if check="lang.current_FieldEquals" field="UnitSystem" value="1"> <input type="text" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" maxlength="<inp2:m_param name='maxlength'/>" class="<inp2:m_param name='class'/>" onblur="<inp2:m_Param name='onblur'/>"> <inp2:m_phrase label="la_kg" /> </inp2:m_if> <inp2:m_if check="lang.current_FieldEquals" field="UnitSystem" value="2"> <input type="text" name="<inp2:{$prefix}_InputName field='{$field}_a'/>" id="<inp2:{$prefix}_InputName field='{$field}_a'/>" value="<inp2:{$prefix}_Field field='{$field}_a'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" maxlength="<inp2:m_param name='maxlength'/>" class="<inp2:m_param name='class'/>" onblur="<inp2:m_Param name='onblur'/>"> <inp2:m_phrase label="la_lbs" /> <input type="text" name="<inp2:{$prefix}_InputName field='{$field}_b'/>" id="<inp2:{$prefix}_InputName field='{$field}_b'/>" value="<inp2:{$prefix}_Field field='{$field}_b'/>" tabindex="<inp2:m_get param='tab_index'/>" size="<inp2:m_param name='size'/>" maxlength="<inp2:m_param name='maxlength'/>" class="<inp2:m_param name='class'/>" onblur="<inp2:m_Param name='onblur'/>"> <inp2:m_phrase label="la_oz" /> </inp2:m_if> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> <inp2:m_if check="{$prefix}_DisplayOriginal" pass_params="1"> <inp2:m_RenderElement prefix="$prefix" field="$field" name="inp_original_label"/> </inp2:m_if> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_minput" style="" format="" allow_add="1" allow_edit="1" allow_delete="1" allow_move="1" hint_label="" title=""> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" hint_label="$hint_label" title="$title"/> <td class="control-cell"> <table> <tr> <td colspan="2"> <input type="button" class="button" style="width: 70px;" value="<inp2:m_Phrase name='la_btn_Add'/>" id="<inp2:$prefix_InputName field='$field'/>_add_button"/> <input type="button" class="button" style="width: 70px;" value="<inp2:m_Phrase name='la_btn_Cancel'/>" id="<inp2:$prefix_InputName field='$field'/>_cancel_button"/> </td> </tr> <tr> <td valign="top"> <select multiple tabindex="<inp2:m_get param='tab_index'/>" id="<inp2:$prefix_InputName field='$field'/>_minput" style="<inp2:m_Param name='style'/>"> </select> </td> <td valign="top"> <inp2:m_if check="m_Param" name="allow_edit"> <input type="button" class="button" style="width: 100px;" value="<inp2:m_Phrase name='la_btn_Edit'/>" id="<inp2:$prefix_InputName field='$field'/>_edit_button"/><br /> <img src="img/spacer.gif" height="4" width="1" alt=""/><br /> </inp2:m_if> <inp2:m_if check="m_Param" name="allow_delete"> <input type="button" class="button" style="width: 100px;" value="<inp2:m_Phrase name='la_btn_Delete'/>" id="<inp2:$prefix_InputName field='$field'/>_delete_button"/><br /> </inp2:m_if> <inp2:m_if check="m_Param" name="allow_move"> <br /><br /> <input type="button" class="button" style="width: 100px;" value="<inp2:m_Phrase name='la_btn_MoveUp'/>" id="<inp2:$prefix_InputName field='$field'/>_moveup_button"/><br /> <img src="img/spacer.gif" height="4" width="1" alt=""/><br /> <input type="button" class="button" style="width: 100px;" value="<inp2:m_Phrase name='la_btn_MoveDown'/>" id="<inp2:$prefix_InputName field='$field'/>_movedown_button"/><br /> </inp2:m_if> </td> </tr> <inp2:m_RenderElement name="inp_edit_hidden" prefix="$prefix" field="$field" db="db"/> <script type="text/javascript"> var <inp2:m_Param name="field"/> = new MultiInputControl('<inp2:m_Param name="field"/>', '<inp2:{$prefix}_InputName field="#FIELD_NAME#"/>', fields['<inp2:m_Param name="prefix"/>'], '<inp2:m_Param name="format"/>'); <inp2:m_Param name="field"/>.ValidateURL = '<inp2:m_Link template="dummy" pass="m,$prefix" {$prefix}_event="OnValidateMInputFields" js_escape="1"/>'; <inp2:m_if check="m_Param" name="allow_add"> <inp2:m_Param name="field"/>.SetPermission('add', true); </inp2:m_if> <inp2:m_if check="m_Param" name="allow_edit"> <inp2:m_Param name="field"/>.SetPermission('edit', true); </inp2:m_if> <inp2:m_if check="m_Param" name="allow_delete"> <inp2:m_Param name="field"/>.SetPermission('delete', true); </inp2:m_if> <inp2:m_if check="m_Param" name="allow_move"> <inp2:m_Param name="field"/>.SetPermission('move', true); </inp2:m_if> <inp2:m_Param name="field"/>.InitEvents(); <inp2:m_Param name="field"/>.SetMessage('required_error', '<inp2:m_Phrase name="la_error_required" escape="1"/>'); <inp2:m_Param name="field"/>.SetMessage('unique_error', '<inp2:m_Phrase name="la_error_unique" escape="1"/>'); <inp2:m_Param name="field"/>.SetMessage('delete_confirm', '<inp2:m_Phrase label="la_Delete_Confirm" escape="1"/>'); <inp2:m_Param name="field"/>.SetMessage('add_button', '<inp2:m_Phrase name="la_btn_Add" escape="1"/>'); <inp2:m_Param name="field"/>.SetMessage('save_button', '<inp2:m_Phrase name="la_btn_Save" escape="1"/>'); </script> </table> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_picker" is_last="" has_empty="0" empty_value="" style="width: 225px;" hint_label="" size="15"> <inp2:m_if check="{$prefix}_FieldVisible" field="$field"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>"> <inp2:m_RenderElement name="inp_edit_field_caption" prefix="$prefix" field="$field" title="$title" hint_label="$hint_label" is_last="$is_last"/> <td class="control-cell"> <table cellpadding="0" cellspacing="0"> <tr> <td><strong><inp2:m_Phrase label="la_SelectedItems" /></strong></td> <td> </td> <td><strong><inp2:m_Phrase label="la_AvailableItems" /></strong></td> </tr> <tr> <td> <inp2:m_DefineElement name="picker_option_block"> <option value="<inp2:Field name='$key_field' />"><inp2:Field name="$value_field" /></option> </inp2:m_DefineElement> <select multiple id="<inp2:$prefix_InputName name='$field' />_selected" style="<inp2:m_param name='style'/>" size="<inp2:m_param name='size'/>"> <inp2:$optprefix.selected_PrintList render_as="picker_option_block" key_field="$option_key_field" value_field="$option_value_field" per_page="-1" requery="1" link_to_prefix="$prefix" link_to_field="$field"/> </select> </td> <td align="center"> <img src="img/icons/icon_left.gif" id="<inp2:$prefix_InputName name="$field" />_move_left_button"/><br /> <img src="img/icons/icon_right.gif" id="<inp2:$prefix_InputName name="$field" />_move_right_button"/> </td> <td> <select multiple id="<inp2:$prefix_InputName name='$field' />_available" style="<inp2:m_param name='style'/>" size="<inp2:m_param name='size'/>"> <inp2:$optprefix.available_PrintList render_as="picker_option_block" key_field="$option_key_field" value_field="$option_value_field" requery="1" per_page="-1" link_to_prefix="$prefix" link_to_field="$field"/> </select> </td> </tr> </table> <input type="hidden" name="<inp2:$prefix_InputName name='$field' />" id="<inp2:$prefix_InputName name='$field' />" value="<inp2:$prefix_Field field='$field' db='db'/>"> <input type="hidden" name="unselected_<inp2:$prefix_InputName name='$field' />" id="<inp2:$prefix_InputName name='$field' />_available_field" value=""> <script type="text/javascript"> <inp2:m_Param name="field"/> = new EditPickerControl('<inp2:m_Param name="field"/>', '<inp2:$prefix_InputName name="$field" />'); <inp2:m_Param name="field"/>.SetMessage('nothing_selected', '<inp2:m_Phrase label="la_SelectItemToMove" escape="1"/>'); </script> </td> <inp2:m_RenderElement name="inp_edit_error" pass_params="1"/> </tr> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="inp_edit_filler" control_options="false"> <tr class="<inp2:m_odd_even odd='edit-form-odd' even='edit-form-even'/>" style="height: auto"> <td class="label-cell-filler" ></td> <td class="control-mid-filler" ></td> <td class="control-cell-filler"> <div id="form_filler" style="width: 100%; height: 5px; background-color: inherit"></div> <script type="text/javascript"> Form.addControl('form_filler', <inp2:m_param name="control_options"/>); </script> </td> </tr> </inp2:m_DefineElement> <inp2:m_DefineElement name="ajax_progress_bar"> <table width="100%" border="0" cellspacing="0" cellpadding="2" class="tableborder"> <tr class="<inp2:m_odd_even odd='table-color1' even='table-color2'/>"> <td colspan="2"> <img src="img/spacer.gif" height="10" width="1" alt="" /><br /> <!-- progress bar paddings: begin --> <table width="90%" cellpadding="2" cellspacing="0" border="0" align="center"> <tr> <td class="progress-text">0%</td> <td width="100%"> <!-- progress bar: begin --> <table cellspacing="0" cellpadding="0" width="100%" border="0" align="center" style="background-color: #FFFFFF; border: 1px solid #E6E6E6;"> <tr> <td colspan="3"><img src="img/spacer.gif" height="2" width="1" alt="" /></td> </tr> <tr> <td width="2"><img src="img/spacer.gif" height="13" width="3" alt="" /></td> <td align="center" width="100%"> <table cellspacing="0" cellpadding="0" width="100%" border="0" style="background: url(img/progress_left.gif) repeat-x;"> <tr> <td id="progress_bar[done]" style="background: url(img/progress_done.gif);" align="left"></td> <td id="progress_bar[left]" align="right"><img src="img/spacer.gif" height="9" width="1" alt="" /></td> </tr> </table> </td> <td width="1"><img src="img/spacer.gif" height="13" width="3" alt="" /></td> </tr> <tr> <td colspan="3"><img src="img/spacer.gif" height="2" width="1" alt="" /></td> </tr> </table> <!-- progress bar: end --> </td> <td class="progress-text">100%</td> </tr> </table> <!-- progress bar paddings: end --> <img src="img/spacer.gif" height="10" width="1" alt="" /><br /> </td> </tr> <tr class="<inp2:m_odd_even odd='table-color1' even='table-color2'/>"> <td width="50%" align="right"><inp2:m_phrase name="la_fld_PercentsCompleted"/>:</td> <td id="progress_display[percents_completed]">0%</td> </tr> <tr class="<inp2:m_odd_even odd='table-color1' even='table-color2'/>"> <td align="right"><inp2:m_phrase name="la_fld_ElapsedTime"/>:</td> <td id="progress_display[elapsed_time]">00:00</td> </tr> <tr class="<inp2:m_odd_even odd='table-color1' even='table-color2'/>"> <td align="right"><inp2:m_phrase name="la_fld_EstimatedTime"/>:</td> <td id="progress_display[Estimated_time]">00:00</td> </tr> <tr class="<inp2:m_odd_even odd='table-color1' even='table-color2'/>"> <td align="center" colspan="2"> <input type="button" class="button" onclick="<inp2:m_param name="cancel_action"/>" value="<inp2:m_phrase name="la_Cancel"/>" /> </td> </tr> </table> </inp2:m_DefineElement> <inp2:m_DefineElement name="edit_navigation" toolbar="a_toolbar"> <inp2:m_if check="{$prefix}_IsTopmostPrefix"> <inp2:m_if check="{$prefix}_IsSingle"> <inp2:m_param name="toolbar"/>.HideButton('prev'); <inp2:m_param name="toolbar"/>.HideButton('next'); <inp2:m_else/> <inp2:m_if check="{$prefix}_IsLast"> <inp2:m_param name="toolbar"/>.DisableButton('next'); </inp2:m_if> <inp2:m_if check="{$prefix}_IsFirst"> <inp2:m_param name="toolbar"/>.DisableButton('prev'); </inp2:m_if> </inp2:m_if> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="tabs_container" tabs_render_as=""> <table cellpadding="0" cellspacing="0" style="width: 100%;"> <tr> <td style="width: 20px;"> <img src="<inp2:m_TemplatesBase/>/img/spacer.gif" width="20" height="0" alt=""/><br/> <a href="#" class="scroll-left disabled"></a> </td> <td height="23" align="right"> <div id="tab-measure" style="display: none; width: 100%; height: 23px;"> </div> <div style="overflow: hidden; height: 23px;" class="tab-viewport"> <table class="tabs" cellpadding="0" cellspacing="0" height="23"> <tr> <inp2:m_RenderElement name="$tabs_render_as" pass_params="1"/> </tr> </table> </div> </td> <td class="scroll-right-container disabled"> <img src="<inp2:m_TemplatesBase/>/img/spacer.gif" width="20" height="0" alt=""/><br/> <a href="#" class="scroll-right disabled"></a> </td> </tr> </table> </inp2:m_DefineElement> <inp2:m_DefineElement name="edit_tabs_element"> <inp2:m_DefineElement name="edit_tab"> <inp2:m_RenderElement name="tab" title="$title" t="$template" main_prefix="$PrefixSpecial"/> </inp2:m_DefineElement> <inp2:{$prefix}_PrintEditTabs render_as="edit_tab" preset_name="$preset_name"/> </inp2:m_DefineElement> <inp2:m_DefineElement name="edit_tabs" preset_name="Default"> <inp2:m_if check="{$prefix}_HasEditTabs" preset_name="$preset_name"> <inp2:m_RenderElement name="tabs_container" tabs_render_as="edit_tabs_element" pass_params="1"/> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="ml_selector" prefix="" field="Translated"> <inp2:m_if check="lang_IsMultiLanguage"> <td align="right" style="padding-right: 5px;"> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td align="right"> <inp2:m_phrase name="la_fld_Language"/>: <select name="language" onchange="submit_event('<inp2:m_param name='prefix'/>', 'OnPreSaveAndChangeLanguage');"> <inp2:m_DefineElement name="lang_elem"> <option value="<inp2:Field name='LanguageId'/>" <inp2:m_if check="SelectedLanguage">selected="selected"</inp2:m_if> ><inp2:Field name="LocalName" no_special='no_special' /></option> </inp2:m_DefineElement> <inp2:lang_PrintList render_as="lang_elem"/> </select> </td> </tr> <tr> <td align="right"> <inp2:m_if check="lang_IsPrimaryLanguage"> <input type="hidden" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" value="1"> <input type="checkbox" disabled id="_cb_<inp2:{$prefix}_InputName field='$field'/>" name="_cb_<inp2:{$prefix}_InputName field='$field'/>" checked="checked"/> <inp2:m_else/> <input type="hidden" id="<inp2:{$prefix}_InputName field='$field'/>" name="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field'/>"> <input type="checkbox" id="_cb_<inp2:{$prefix}_InputName field='$field'/>" name="_cb_<inp2:{$prefix}_InputName field='$field'/>" <inp2:{$prefix}_Field field="$field" checked="checked"/> onchange="update_checkbox(this, document.getElementById('<inp2:{$prefix}_InputName field='$field'/>'));" /> </inp2:m_if> <label for="_cb_<inp2:{$prefix}_InputName field='$field'/>"><inp2:m_Phrase label="la_Translated"/></label> </td> </tr> <tr> <td align="right" style="vertical-align: bottom; padding: 2px 0px 5px 2px;"> <span style="color: red">*</span> <span class="req-note"><inp2:m_Phrase name="la_text_RequiredFields"/></span> </td> </tr> </table> </td> <inp2:m_else/> <td align="right" style="vertical-align: bottom; padding: 2px 5px 5px 2px;"> <span style="color: red">*</span> <span class="req-note"><inp2:m_Phrase name="la_text_RequiredFields"/></span> </td> </inp2:m_if> </inp2:m_DefineElement> <inp2:m_DefineElement name="form_error_warning"> <table width="100%" border="0" cellspacing="0" cellpadding="4" class="warning-table"> <tr> <td valign="top" class="form-warning"> <inp2:m_phrase name="la_Warning_NewFormError"/><br/> <span id="error_msg_<inp2:m_Param name='prefix'/>" style="font-weight: bold"><br/></span> </td> </tr> </table> </inp2:m_DefineElement>