Index: admin/system_presets/simple/categories_c.php
===================================================================
--- admin/system_presets/simple/categories_c.php (revision 13936)
+++ admin/system_presets/simple/categories_c.php (working copy)
@@ -45,7 +45,7 @@
'CachedNavbar',*/ 'CreatedById', /*'ResourceId', 'ParentPath', 'TreeLeft', 'TreeRight', 'NamedParentPath',
'MetaDescription', 'HotItem',*/ 'NewItem', /*'PopItem', 'Modified', 'ModifiedById', 'CachedTemplate',*/
'Template', /*'UseExternalUrl', 'ExternalUrl',*/ 'UseMenuIconUrl', 'MenuIconUrl', 'Title', 'MenuTitle',
- /*'MetaTitle', 'IndexTools', 'IsMenu', 'IsSystem',*/ 'FormId', 'FormSubmittedTemplate',
+ /*'MetaTitle', 'IndexTools', 'IsMenu',*/'Protected', 'Type', 'FormId', 'FormSubmittedTemplate',
/*'FriendlyURL', 'ThemeId', 'EnablePageCache', 'OverridePageCacheKey', 'PageCacheKey', 'PageExpiration'*/
);
@@ -76,9 +76,9 @@
// hide columns in grids
$hide_columns = Array (
- 'Default' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu', 'IsSystem',*/ 'Priority'),
- 'DefaultShowAll' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu', 'IsSystem', 'Priority', 'CachedNavbar'*/),
- 'Radio' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu', 'IsSystem',*/ 'Priority'),
- 'RadioShowALl' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu', 'IsSystem', 'Priority', 'CachedNavbar'*/),
- 'Structure' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu', 'Path', 'IsSystem',*/ 'Priority'),
+ 'Default' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu',*/ 'Protected', /*'Type',*/ 'Priority'),
+ 'DefaultShowAll' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu',*/ 'Protected',/*'Type', 'Priority', 'CachedNavbar'*/),
+ 'Radio' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu',*/ 'Protected', /*'Type',*/ 'Priority'),
+ 'RadioShowALl' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu',*/ 'Protected'/*, 'Type', 'Priority', 'CachedNavbar'*/),
+ 'Structure' => Array (/*'CategoryId', 'Name', 'Modified',*/ 'Template', /*'IsMenu', 'Path',*/ 'Protected',/*'Type',*/ 'Priority'),
);
\ No newline at end of file
Index: core/admin_templates/catalog_tab.tpl
===================================================================
--- core/admin_templates/catalog_tab.tpl (revision 13936)
+++ core/admin_templates/catalog_tab.tpl (working copy)
@@ -64,7 +64,7 @@
<a href="<inp2:PageBrowseLink/>" title="<inp2:m_Phrase name='la_alt_Browse' no_editing='1'/>"><img src="<inp2:m_TemplatesBase/>/img/ic_browse_mode.gif" width="8" height="7" alt="<inp2:m_Phrase name='la_alt_Browse' html_escape='1'/>" border="0"/></a>
</inp2:m_if>
- <inp2:m_if check="Field" field="IsSystem" db="db">
+ <inp2:m_if check="Field" field="Type" equals_to="2" db="db">
<span class="field-required" title="<inp2:m_Phrase name='la_System' no_editing='1'/>"> *</span>
</inp2:m_if>
</inp2:m_DefineElement>
Index: core/admin_templates/categories/categories_edit.tpl
===================================================================
--- core/admin_templates/categories/categories_edit.tpl (revision 13949)
+++ core/admin_templates/categories/categories_edit.tpl (working copy)
@@ -68,33 +68,91 @@
<inp2:m_RenderElement name="inp_edit_box_ml" prefix="c" field="Name" title="la_fld_PageTitle" size="70"/> <!-- la_fld_Name -->
<inp2:m_RenderElement name="inp_edit_textarea_ml" prefix="c" field="Description" title="la_fld_Description" control_options="{min_height: 60}" rows="4" cols="70"/>
<inp2:m_RenderElement name="inp_edit_user" prefix="c" field="CreatedById" title="la_fld_CreatedById" size="30" display_original="1"/>
- <inp2:m_RenderElement name="inp_edit_checkbox" prefix="c" field="AutomaticFilename" title="la_fld_AutoCreateFileName" onclick="reflectFilename()"/> <!-- la_fld_CategoryAutomaticFilename -->
- <inp2:m_RenderElement name="inp_edit_box" prefix="c" field="Filename" title="la_fld_Filename" size="70" /> <!-- la_fld_CategoryFilename -->
+
+ <inp2:m_if check="c_PageEditable">
+ <inp2:m_RenderElement name="inp_edit_checkbox" prefix="c" field="AutomaticFilename" title="la_fld_AutoCreateFileName" onclick="reflectFilename()"/> <!-- la_fld_CategoryAutomaticFilename -->
+ <inp2:m_RenderElement name="inp_edit_box" prefix="c" field="Filename" title="la_fld_Filename" size="70"/> <!-- la_fld_CategoryFilename -->
+ <inp2:m_else/>
+ <inp2:m_RenderElement name="inp_label" prefix="c" field="Filename" title="la_fld_Filename"/> <!-- la_fld_CategoryFilename -->
+ </inp2:m_if>
+
<inp2:m_RenderElement name="inp_edit_category" prefix="c" field="SymLinkCategoryId" title="la_fld_SymLinkCategoryId"/>
- <inp2:m_RenderElement name="subsection" prefix="c" fields="Title,MenuTitle,FriendlyURL,ParentId,Template,FormId,FormSubmittedTemplate,IsMenu" title="la_section_Page"/>
+ <inp2:m_RenderElement name="subsection" prefix="c" fields="Title,MenuTitle,FriendlyURL,ParentId,Template,FormId,FormSubmittedTemplate,IsMenu,Type,Protected" title="la_section_Page"/>
<inp2:m_RenderElement name="inp_edit_box_ml" prefix="c" field="Title" title="la_fld_PageContentTitle" size="40"/>
<inp2:m_RenderElement name="inp_edit_box_ml" prefix="c" field="MenuTitle" title="la_fld_PageMentTitle" size="40"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="c" field="FriendlyURL" title="la_fld_FriendlyURL" size="63"/>
<inp2:m_RenderElement name="inp_edit_options" prefix="c" field="ParentId" title="la_fld_ParentSection"/>
-<!-- <inp2:m_RenderElement name="inp_edit_checkbox" prefix="c" field="IsSystem" title="la_fld_IsSystemTemplate" onchange="OnSystemClick()"/>-->
-
- <inp2:m_if check="c_Field" name="IsSystem" equals_to="1" db="db">
- <inp2:m_if check="m_IsDebugMode">
- <inp2:m_RenderElement name="inp_edit_box" prefix="c" field="Template" title="la_fld_TemplateFile" size="40"/>
- </inp2:m_if>
+ <inp2:m_if check="m_IsDebugMode">
+ <inp2:m_RenderElement name="inp_edit_radio" prefix="c" field="Type" title="la_fld_Type" onclick="reflectPageType();"/>
<inp2:m_else/>
- <inp2:m_RenderElement name="inp_edit_options" prefix="c" field="Template" title="la_fld_TemplateType" size="40"/>
+ <inp2:m_RenderElement name="inp_label" prefix="c" field="Type" title="la_fld_Type"/>
</inp2:m_if>
+ <inp2:m_DefineElement name="template_caption_element">
+ <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>" id="template_title"><inp2:m_if check="m_Param" name="title"><inp2:m_phrase label="$title"/></inp2:m_else/><inp2:m_Param name="title_text"/></inp2:m_if></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_DefineElement>
+
+ <inp2:m_RenderElement design="form_row" caption_render_as="template_caption_element" prefix="c" field="Template" title="la_fld_TemplateFile">
+ <td class="control-cell">
+ <span id="<inp2:$prefix_InputName field='$field'/>_label">
+ <inp2:{$prefix}_Field field="$field"/>
+ </span>
+
+ <input style="width: 100%; display: none;" type="text" id="<inp2:{$prefix}_InputName field='$field'/>_textbox" value="<inp2:{$prefix}_Field field='$field' db='db'/>" tabindex="<inp2:m_get param='tab_index'/>"/>
+
+ <select style="display: none;" tabindex="<inp2:m_get param='tab_index'/>" id="<inp2:{$prefix}_InputName field='$field'/>_dropdown">
+ <inp2:{$prefix}_PredefinedOptions field="$field" block="inp_option_item" selected="selected" has_empty="1"/>
+ </select>
+
+ <input type="hidden" name="<inp2:{$prefix}_InputName field='$field'/>" id="<inp2:{$prefix}_InputName field='$field'/>" value="<inp2:{$prefix}_Field field='$field'/>"/>
+
+ <script type="text/javascript">
+ $(document).ready(
+ function () {
+ var $field_mask = '<inp2:$prefix_InputName name="#FIELD_NAME#" js_escape="1"/>';
+
+ $( get_control($field_mask, '<inp2:m_Param name="field"/>', 'textbox') ).keyup(
+ function ($e) {
+ $( get_control($field_mask, '<inp2:m_Param name="field"/>') ).val( $(this).val() );
+ }
+ );
+
+ $( get_control($field_mask, '<inp2:m_Param name="field"/>', 'dropdown') ).change(
+ function ($e) {
+ var $value = $(this).val();
+
+ $( get_control($field_mask, '<inp2:m_Param name="field"/>') ).val($value);
+ $( get_control($field_mask, '<inp2:m_Param name="field"/>', 'textbox') ).val($value);
+ }
+ );
+ }
+ );
+ </script>
+ </td>
+ </inp2:m_RenderElement>
+
<inp2:m_RenderElement name="inp_edit_options" prefix="c" field="FormId" title="la_fld_Form"/>
<inp2:m_RenderElement name="inp_edit_box" prefix="c" field="FormSubmittedTemplate" title="la_fld_FormSubmittedTemplate" size="60"/>
<inp2:m_RenderElement name="inp_edit_radio" prefix="c" field="IsMenu" title="la_fld_MenuStatus"/>
+ <inp2:m_if check="m_IsDebugMode">
+ <inp2:m_RenderElement name="inp_edit_checkbox" prefix="c" field="Protected" title="la_fld_Protected"/>
+ <inp2:m_else/>
+ <inp2:m_RenderElement name="inp_label" prefix="c" field="Protected" title="la_fld_Protected"/>
+ </inp2:m_if>
+
<inp2:m_RenderElement name="subsection" prefix="c" fields="Status,NewItem,EditorsPick,Priority,UseMenuIconUrl,MenuIconUrl,UseExternalUrl,ExternalUrl,CreatedOn,MetaKeywords,MetaDescription,IndexTools" title="la_section_Properties"/>
- <inp2:m_RenderElement name="inp_edit_radio" prefix="c" field="Status" title="la_fld_Status"/>
+ <inp2:m_if check="c_PageEditable">
+ <inp2:m_RenderElement name="inp_edit_radio" prefix="c" field="Status" title="la_fld_Status"/>
+ <inp2:m_else/>
+ <inp2:m_RenderElement name="inp_label" prefix="c" field="Status" title="la_fld_Status"/>
+ </inp2:m_if>
+
<inp2:m_RenderElement name="inp_edit_radio" prefix="c" field="NewItem" title="la_fld_New"/>
<inp2:m_RenderElement name="inp_edit_checkbox" prefix="c" field="EditorsPick" title="la_fld_EditorsPick"/>
@@ -126,94 +184,99 @@
</div>
<script type="text/javascript">
- function getControl ($field, $appendix, $prepend) {
- var $field_mask = '<inp2:c_InputName field="#FIELD_NAME#"/>';
+ var $field_mask = '<inp2:c_InputName name="#FIELD_NAME#" js_escape="1"/>';
- $appendix = isset($appendix) ? '_' + $appendix : '';
- $prepend = isset($prepend) ? $prepend + '_' : '';
+ <inp2:m_if check="c_FieldsVisible" fields="UseMenuIconUrl,MenuIconUrl">
+ function reflectMenuIcon() {
+ var $use = get_control($field_mask, 'UseMenuIconUrl', undefined, '_cb').checked;
+ get_control($field_mask, 'MenuIconUrl', 'row').style.display = $use ? '' : 'none';
+ }
- return document.getElementById( $prepend + $field_mask.replace('#FIELD_NAME#', $field) + $appendix );
- }
+ $(document).ready(reflectMenuIcon);
+ </inp2:m_if>
- function reflectMenuIcon() {
- var $menu_icon_url = getControl('MenuIconUrl');
- if ($menu_icon_url) {
- $menu_icon_url.parentNode.parentNode.style.display = getControl('UseMenuIconUrl', null, '_cb').checked ? '' : 'none';
+ <inp2:m_if check="c_FieldsVisible" fields="UseExternalUrl,ExternalUrl">
+ function reflectExternalUrl() {
+ var $use = get_control($field_mask, 'UseExternalUrl', undefined, '_cb').checked;
+ get_control($field_mask, 'ExternalUrl', 'row').style.display = $use ? '' : 'none';
}
- }
- function reflectExternalUrl() {
- var $external_url = getControl('ExternalUrl');
- if ($external_url) {
- $external_url.parentNode.parentNode.style.display = getControl('UseExternalUrl', null, '_cb').checked ? '' : 'none';
- }
- }
+ $(document).ready(reflectExternalUrl);
+ </inp2:m_if>
- function OnSystemClick() {
- var cel = getControl('IsSystem', null, '_cb');
- var tel = getControl('Template');
-
- if (cel) {
- if (cel.checked) {
- cel.setAttribute('old_template', tel.value);
- tel.value='';
- tel.disabled = true;
- tel.readonly = true;
+ <inp2:m_if check="c_FieldsVisible" fields="AutomaticFilename,Filename">
+ function reflectFilename() {
+ if ( get_control($field_mask, 'AutomaticFilename') ) {
+ var $checked = get_control($field_mask, 'AutomaticFilename', undefined, '_cb').checked;
+ get_control($field_mask, 'Filename').readOnly = $checked;
}
- else {
- var old_template = cel.getAttribute('old_template');
- tel.disabled = false;
- tel.readonly = false;
- if (old_template) {
- tel.value = old_template;
- }
- cel.setAttribute('old_template', '');
- }
- }
- }
+ }
- function reflectFilename() {
- var $filename = getControl('Filename');
- if ($filename) {
- var $checked = getControl('AutomaticFilename', null, '_cb').checked;
- $filename.readOnly = $checked;
- }
- }
+ $(document).ready(reflectFilename);
+ </inp2:m_if>
- function reflectCachingSettings() {
- var $checked = getControl('EnablePageCache', null, '_cb').checked;
+ <inp2:m_if check="c_FieldsVisible" fields="EnablePageCache,OverridePageCacheKey,PageCacheKey,PageExpiration">
+ function reflectCachingSettings() {
+ var $override = get_control($field_mask, 'OverridePageCacheKey', undefined, '_cb');
+ var $checked = get_control($field_mask, 'EnablePageCache', undefined, '_cb').checked;
- getControl('OverridePageCacheKey', null, '_cb').disabled = !$checked;
- getControl('PageCacheKey').disabled = !$checked || !getControl('OverridePageCacheKey', null, '_cb').checked;
-// getControl('PageExpiration').disabled = !$checked;
- }
+ $override.disabled = !$checked;
+ get_control($field_mask, 'PageCacheKey').disabled = !$checked || !$override.checked;
+// get_control($field_mask, 'PageExpiration').disabled = !$checked;
+ }
- function reflectCacheKeyOverride() {
- var $checked = getControl('OverridePageCacheKey', null, '_cb').checked;
- getControl('PageCacheKey').disabled = !$checked;
- }
+ function reflectCacheKeyOverride() {
+ var $checked = get_control($field_mask, 'OverridePageCacheKey', undefined, '_cb').checked;
+ get_control($field_mask, 'PageCacheKey').disabled = !$checked;
+ }
+ $(document).ready(reflectCachingSettings);
+ $(document).ready(reflectCacheKeyOverride);
+ </inp2:m_if>
+
+ <inp2:m_if check="c_FieldsVisible" fields="Type,Template">
+ function reflectPageType() {
+ // get page type
+ <inp2:m_if check="m_IsDebugMode">
+ var $page_type = $("input[name='" + jq($field_mask.replace('#FIELD_NAME#', 'Type')) + "']:checked").val();
+ <inp2:m_else/>
+ var $page_type = '<inp2:c_Field name="Type" db="db"/>';
+ </inp2:m_if>
+
+ // page type specific data (0 - title, 1 - visible control, 2 - hidden control)
+ var $data = {
+ '1': ['<inp2:m_Phrase name="la_fld_TemplateType" js_escape="1"/>', 'dropdown', 'textbox'],
+ '2': ['<inp2:m_Phrase name="la_fld_TemplateFile" js_escape="1"/>', 'textbox', 'dropdown']
+ };
+
+ // update field title according to page type
+ fields['c']['Template'] = $data[$page_type][0]; // for error message
+ $('#template_title').html($data[$page_type][0]); // for form label
+
+ <inp2:m_ifnot check="m_IsDebugMode">
+ <inp2:m_if check="c_Field" name="Protected" db="db">
+ return ;
+ </inp2:m_if>
+ </inp2:m_ifnot>
+
+ // display control, matching page type
+ $( get_control($field_mask, 'Template', 'label') ).hide();
+ var $template_source = $( get_control($field_mask, 'Template', $data[$page_type][1]) );
+
+ $( get_control($field_mask, 'Template') ).val( $template_source.show().val() );
+ $( get_control($field_mask, 'Template', $data[$page_type][2]) ).hide();
+ }
+
+ $(document).ready(reflectPageType);
+ </inp2:m_if>
+
Application.setHook(
'c:*',
function () {
- getControl('OverridePageCacheKey', null, '_cb').disabled = false;
- getControl('PageCacheKey').disabled = false;
-// getControl('PageExpiration').disabled = false;
+ $(':input:disabled', '#' + $form_name).attr('disabled', '');
}
);
- $(document).ready(
- function() {
- reflectMenuIcon();
- reflectExternalUrl();
- reflectFilename();
- // OnSystemClick();
-
- reflectCacheKeyOverride();
- reflectCachingSettings();
- }
- );
-
disable_categories('<inp2:c_InputName name="ParentId"/>', <inp2:c_AllowedCategoriesJSON/>);
</script>
Index: core/install/english.lang
===================================================================
--- core/install/english.lang (revision 13936)
+++ core/install/english.lang (working copy)
@@ -155,6 +155,7 @@
<PHRASE Label="la_col_PrimaryValue" Module="Core" Type="1">UHJpbWFyeSBWYWx1ZQ==</PHRASE>
<PHRASE Label="la_col_Priority" Module="Core" Type="1">T3JkZXI=</PHRASE>
<PHRASE Label="la_col_Prompt" Module="Core" Type="1">RmllbGQgUHJvbXB0</PHRASE>
+ <PHRASE Label="la_col_Protected" Module="Core" Type="1">UHJvdGVjdGVk</PHRASE>
<PHRASE Label="la_col_Queued" Module="Core" Type="1">UXVldWVk</PHRASE>
<PHRASE Label="la_col_Rating" Module="Core" Type="1">UmF0aW5n</PHRASE>
<PHRASE Label="la_col_RecipientType" Module="Core" Type="1">UmVjaXBpZW50IFR5cGU=</PHRASE>
@@ -569,6 +570,7 @@
<PHRASE Label="la_fld_PrimaryTranslation" Module="Core" Type="1">UHJpbWFyeSBMYW5ndWFnZSBQaHJhc2U=</PHRASE>
<PHRASE Label="la_fld_Priority" Module="Core" Type="1">T3JkZXI=</PHRASE>
<PHRASE Label="la_fld_ProcessUnmatchedEmails" Module="Core" Type="1">Q29udmVydCB1bm1hdGNoZWQgZS1tYWlscyBpbnRvIG5ldyBzdWJtaXNzaW9ucw==</PHRASE>
+ <PHRASE Label="la_fld_Protected" Module="Core" Type="1">UHJvdGVjdGVk</PHRASE>
<PHRASE Label="la_fld_Qty" Module="Core" Type="1">UXVhbnRpdHk=</PHRASE>
<PHRASE Label="la_fld_Rating" Module="Core" Type="1">UmF0aW5n</PHRASE>
<PHRASE Label="la_fld_RecipientAddress" Module="Core" Type="1">UmVjaXBpZW50J3MgQWRkcmVzcw==</PHRASE>
@@ -804,6 +806,7 @@
<PHRASE Label="la_opt_Success" Module="Core" Type="1">U3VjY2Vzcw==</PHRASE>
<PHRASE Label="la_opt_System" Module="Core" Type="1">U3lzdGVt</PHRASE>
<PHRASE Label="la_opt_Tab" Module="Core" Type="1">VGFi</PHRASE>
+ <PHRASE Label="la_opt_Template" Module="Core" Type="1">VGVtcGxhdGU=</PHRASE>
<PHRASE Label="la_opt_Title" Module="Core" Type="1">VGl0bGU=</PHRASE>
<PHRASE Label="la_opt_User" Module="Core" Type="1">VXNlcg==</PHRASE>
<PHRASE Label="la_opt_UserEmailActivation" Module="Core" Type="1">RW1haWwgQWN0aXZhdGlvbg==</PHRASE>
@@ -811,6 +814,7 @@
<PHRASE Label="la_opt_Username" Module="Core" Type="1">VXNlcm5hbWU=</PHRASE>
<PHRASE Label="la_opt_UserNotAllowedRegistration" Module="Core" Type="1">Tm90IEFsbG93ZWQ=</PHRASE>
<PHRASE Label="la_opt_UserUponApprovalRegistration" Module="Core" Type="1">VXBvbiBBcHByb3ZhbA==</PHRASE>
+ <PHRASE Label="la_opt_Virtual" Module="Core" Type="1">VmlydHVhbA==</PHRASE>
<PHRASE Label="la_opt_week" Module="Core" Type="1">d2VlayhzKQ==</PHRASE>
<PHRASE Label="la_opt_year" Module="Core" Type="1">eWVhcihzKQ==</PHRASE>
<PHRASE Label="la_opt_Zip" Module="Core" Type="1">Wmlw</PHRASE>
Index: core/install/install_schema.sql
===================================================================
--- core/install/install_schema.sql (revision 13936)
+++ core/install/install_schema.sql (working copy)
@@ -398,7 +398,7 @@
CREATE TABLE Category (
CategoryId int(11) NOT NULL AUTO_INCREMENT,
- `Type` int(11) NOT NULL DEFAULT '0',
+ `Type` int(11) NOT NULL DEFAULT '1',
SymLinkCategoryId int(10) unsigned DEFAULT NULL,
ParentId int(11) NOT NULL DEFAULT '0',
`Name` varchar(255) NOT NULL DEFAULT '',
@@ -458,7 +458,7 @@
MetaTitle text,
IndexTools text,
IsMenu tinyint(4) NOT NULL DEFAULT '1',
- IsSystem tinyint(4) NOT NULL DEFAULT '0',
+ Protected tinyint(4) NOT NULL DEFAULT '0',
FormId int(11) DEFAULT NULL,
FormSubmittedTemplate varchar(255) DEFAULT NULL,
FriendlyURL varchar(255) NOT NULL DEFAULT '',
@@ -493,7 +493,8 @@
KEY ThemeId (ThemeId),
KEY EnablePageCache (EnablePageCache),
KEY OverridePageCacheKey (OverridePageCacheKey),
- KEY PageExpiration (PageExpiration)
+ KEY PageExpiration (PageExpiration),
+ KEY Protected (Protected)
);
CREATE TABLE CategoryCustomData (
Index: core/install/upgrades.sql
===================================================================
--- core/install/upgrades.sql (revision 13936)
+++ core/install/upgrades.sql (working copy)
@@ -1944,3 +1944,11 @@
UPDATE Phrase
SET l<%PRIMARY_LANGUAGE%>_Translation = 'Comments'
WHERE PhraseKey = 'LA_FLD_COMMENTS';
+
+ALTER TABLE Category
+ CHANGE `Type` `Type` INT(11) NOT NULL DEFAULT '1',
+ CHANGE `IsSystem` `Protected` TINYINT( 4 ) NOT NULL DEFAULT '0',
+ ADD INDEX ( `Protected` );
+
+UPDATE Category SET `Type` = IF(`Protected` = 1, 2, 1);
+UPDATE Category SET `Protected` = 1 WHERE ThemeId > 0;
\ No newline at end of file
Index: core/kernel/constants.php
===================================================================
--- core/kernel/constants.php (revision 13936)
+++ core/kernel/constants.php (working copy)
@@ -161,7 +161,7 @@
// site domains
define('SITE_DOMAIN_REDIRECT_CURRENT', 1);
define('SITE_DOMAIN_REDIRECT_EXTERNAL', 2);
-
+
define ('KG_TO_POUND', 2.20462262);
define ('POUND_TO_KG', 0.45359237);
@@ -173,4 +173,6 @@
define('RECIPIENT_TYPE_TO', 1);
define('RECIPIENT_TYPE_CC', 2);
define('RECIPIENT_TYPE_BCC', 3);
-
\ No newline at end of file
+
+ define('PAGE_TYPE_VIRTUAL', 1);
+ define('PAGE_TYPE_TEMPLATE', 2);
\ No newline at end of file
Index: core/units/categories/categories_config.php
===================================================================
--- core/units/categories/categories_config.php (revision 13941)
+++ core/units/categories/categories_config.php (working copy)
@@ -290,7 +290,6 @@
'LocalImage' => 'img.LocalImage',
'LocalPath' => 'img.LocalPath',
'FullUrl' => 'img.Url',
- 'CreatedBySystem' => 'IF(ThemeId != 0, 1, 0)',
),
'-virtual' => Array (),
),
@@ -299,7 +298,11 @@
'Fields' => Array (
'CategoryId' => Array ('type' => 'int', 'not_null' => 1,'default' => 0),
- 'Type' => Array ('type' => 'int', 'not_null' => 1,'default' => 0),
+ 'Type' => Array (
+ 'type' => 'int',
+ 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_opt_Virtual', 2 => 'la_opt_Template'), 'use_phrases' => 1,
+ 'not_null' => 1,'default' => 1
+ ),
'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' => ''),
@@ -374,7 +377,7 @@
'MetaTitle' => Array ('type' => 'string', 'default' => null),
'IndexTools' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null),
'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),
+ 'Protected' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0),
'FormId' => Array (
'type' => 'int',
'formatter' => 'kOptionsFormatter', 'options' => Array ('' => ''),
@@ -414,12 +417,11 @@
'LocalImage' => Array('type' => 'string', 'default' => ''),
'LocalPath' => Array('type' => 'string', 'default' => ''),
'FullUrl' => Array('type' => 'string', 'default' => ''),
- 'CreatedBySystem' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_System', 0 => 'la_text_User'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0),
),
'Grids' => Array(
'Default' => Array (
- 'Icons' => Array( // 'StatusField' => Array ('IsSystem', 'Status', 'IsMenu'), // 'Status'
+ 'Icons' => Array( // 'StatusField' => Array ('Type', 'Status', 'IsMenu'), // 'Status'
'default' => 'icon_section.png',
'1_0_0' => 'icon16_section_system.png', // system
'1_0_1' => 'icon16_section_system.png', // system
@@ -438,15 +440,16 @@
'Modified' => Array( 'title'=>'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 170),
'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'width' => 220),
'IsMenu' => Array( 'title'=>'la_col_InMenu', 'filter_block' => 'grid_options_filter', 'width' => 70),
- 'CreatedBySystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'width' => 100),
+ 'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter', 'width' => 100),
'Status' => Array( 'title'=>'la_col_Status', 'filter_block' => 'grid_options_filter', 'width' => 100),
+ 'Protected' => Array( 'title'=>'la_col_Protected', 'filter_block' => 'grid_options_filter', 'width' => 100),
),
),
'Radio' => Array (
'Selector' => 'radio',
- 'Icons' => Array( // 'StatusField' => Array ('IsSystem', 'Status', 'IsMenu'), // 'Status'
+ 'Icons' => Array( // 'StatusField' => Array ('Type', 'Status', 'IsMenu'), // 'Status'
'default' => 'icon_section.png',
'1_0_0' => 'icon16_section_system.png', // system
'1_0_1' => 'icon16_section_system.png', // system
@@ -465,14 +468,15 @@
'IsMenu' => Array( 'title'=>'la_col_InMenu', 'filter_block' => 'grid_options_filter', 'width' => 70),
'Modified' => Array( 'title'=>'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 170),
'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'width' => 220),
- 'CreatedBySystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'width' => 100),
+ 'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter', 'width' => 100),
'Status' => Array( 'title'=>'la_col_Status', 'filter_block' => 'grid_options_filter', 'width' => 100),
+ 'Protected' => Array( 'title'=>'la_col_Protected', 'filter_block' => 'grid_options_filter', 'width' => 100),
),
),
'Structure' => Array (
- 'Icons' => Array( // 'StatusField' => Array ('IsSystem', 'Status', 'IsMenu'), // 'Status'
+ 'Icons' => Array( // 'StatusField' => Array ('Type', 'Status', 'IsMenu'), // 'Status'
'default' => 'icon_section.png',
'1_0_0' => 'icon16_section_system.png', // system
'1_0_1' => 'icon16_section_system.png', // system
@@ -492,8 +496,9 @@
'Path' => Array( 'title'=>'la_col_Path', 'data_block' => 'page_entercat_td', 'filter_block' => 'grid_like_filter'),
'Modified' => Array( 'title'=>'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 170),
'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'width' => 220),
- 'CreatedBySystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'width' => 100),
+ 'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter', 'width' => 100),
'Status' => Array( 'title'=>'la_col_Status', 'filter_block' => 'grid_options_filter', 'width' => 100),
+ 'Protected' => Array( 'title'=>'la_col_Protected', 'filter_block' => 'grid_options_filter', 'width' => 100),
),
),
Index: core/units/categories/categories_event_handler.php
===================================================================
--- core/units/categories/categories_event_handler.php (revision 13936)
+++ core/units/categories/categories_event_handler.php (working copy)
@@ -591,7 +591,7 @@
(
(NamedParentPath = ' . $this->Conn->qstr($template) . ') OR
(NamedParentPath = ' . $this->Conn->qstr('Content/' . $template) . ') OR
- (IsSystem = 1 AND CachedTemplate = ' . $this->Conn->qstr($template) . ')
+ (`Type` = ' . PAGE_TYPE_TEMPLATE . ' AND CachedTemplate = ' . $this->Conn->qstr($template) . ')
) AND (ThemeId = ' . $this->_getCurrentThemeId() . ' OR ThemeId = 0)';
$page_id = $this->Conn->GetOne($sql);
@@ -1143,7 +1143,7 @@
$sql = 'SELECT ' . $id_field . '
FROM ' . $table_name . '
- WHERE ' . $id_field . ' IN (' . implode(',', $clipboard_data['copy']) . ') AND (IsSystem = 0) AND (ThemeId = 0)';
+ WHERE ' . $id_field . ' IN (' . implode(',', $clipboard_data['copy']) . ') AND (`Type` = ' . PAGE_TYPE_VIRTUAL . ') AND (ThemeId = 0)';
$allowed_ids = $this->Conn->GetCol($sql);
if (!$allowed_ids) {
@@ -1405,29 +1405,21 @@
$ids = $this->StoreSelectedIDs($event);
if ($ids) {
+ $propagate_category_status = $this->Application->GetVar('propagate_category_status');
$status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') );
foreach ($ids as $id) {
$object->Load($id);
+ $object->SetDBField($status_field, $event->Name == 'OnMassApprove' ? 1 : 0);
- switch ($event->Name) {
- case 'OnMassApprove':
- $object->SetDBField($status_field, 1);
- break;
+ if ($object->Update()) {
+ if ($propagate_category_status) {
+ $sql = 'UPDATE '.$object->TableName.'
+ SET '.$status_field.' = '.$object->GetDBField($status_field).'
+ WHERE TreeLeft BETWEEN '.$object->GetDBField('TreeLeft').' AND '.$object->GetDBField('TreeRight');
+ $this->Conn->Query($sql);
+ }
- case 'OnMassDecline':
- $object->SetDBField($status_field, 0);
- break;
- }
-
- if ($this->Application->GetVar('propagate_category_status')) {
- $sql = 'UPDATE '.$object->TableName.'
- SET '.$status_field.' = '.$object->GetDBField($status_field).'
- WHERE TreeLeft BETWEEN '.$object->GetDBField('TreeLeft').' AND '.$object->GetDBField('TreeRight');
- $this->Conn->Query($sql);
- }
-
- if ($object->Update()) {
$event->status = erSUCCESS;
$email_event = $event->Name == 'OnMassApprove' ? 'CATEGORY.APPROVE' : 'CATEGORY.DENY';
@@ -1568,6 +1560,18 @@
$now = adodb_mktime();
+ if ( !$this->Application->isDebugMode() ) {
+ $object->SetDBField('Type', $object->GetOriginalField('Type'));
+ $object->SetDBField('Protected', $object->GetOriginalField('Protected'));
+
+ if ( $object->GetDBField('Protected') ) {
+ // some fields are read-only for protected pages, when debug mode is off
+ $object->SetDBField('AutomaticFilename', $object->GetOriginalField('AutomaticFilename'));
+ $object->SetDBField('Filename', $object->GetOriginalField('Filename'));
+ $object->SetDBField('Status', $object->GetOriginalField('Status'));
+ }
+ }
+
if ($object->GetChangedFields()) {
$object->SetDBField('Modified_date', $now);
$object->SetDBField('Modified_time', $now);
@@ -1576,7 +1580,7 @@
$object->setRequired('PageCacheKey', $object->GetDBField('OverridePageCacheKey'));
$object->SetDBField('Template', $this->_stripTemplateExtension( $object->GetDBField('Template') ));
- if ($object->GetDBField('IsSystem') == 1) {
+ if ($object->GetDBField('Type') == PAGE_TYPE_TEMPLATE) {
if (!$this->_templateFound($object->GetDBField('Template'), $object->GetDBField('ThemeId'))) {
$object->SetError('Template', 'template_file_missing', 'la_error_TemplateFileMissing');
}
@@ -1636,7 +1640,8 @@
function OnBeforeItemDelete(&$event)
{
$object =& $event->getObject();
- if ($object->GetDBField('IsSystem') && !$this->Application->isDebugMode()) {
+
+ if ( $object->GetDBField('Protected') && !$this->Application->isDebugMode() ) {
$event->status = erFAIL;
}
}
@@ -1652,13 +1657,13 @@
$template = $this->_stripTemplateExtension($template);
if ($system_mode == SMS_MODE_AUTO) {
- $system = $this->_templateFound($template, $theme_id) ? 1 : 0;
+ $page_type = $this->_templateFound($template, $theme_id) ? PAGE_TYPE_TEMPLATE : PAGE_TYPE_VIRTUAL;
}
else {
- $system = $system_mode == SMS_MODE_FORCE ? 1 : 0;
+ $page_type = $system_mode == SMS_MODE_FORCE ? PAGE_TYPE_TEMPLATE : PAGE_TYPE_VIRTUAL;
}
- if ($system && $template_info === false) {
+ if (($page_type == PAGE_TYPE_TEMPLATE) && ($template_info === false)) {
// do not autocreate system pages, when browsing through site
return false;
}
@@ -1674,7 +1679,7 @@
$this->Application->SetVar('m_cat_id', $page_category);
}
- if (!$system && strpos($template, '/') !== false) {
+ if (($page_type == PAGE_TYPE_VIRTUAL) && (strpos($template, '/') !== false)) {
// virtual page, but have "/" in template path -> create it's path
$category_path = explode('/', $template);
$template = array_pop($category_path);
@@ -1682,10 +1687,10 @@
$page_category = $this->_getParentCategoryFromPath($category_path, $root_category, $theme_id);
}
- $page_name = $system ? '_Auto: ' . $template : $template;
+ $page_name = ($page_type == PAGE_TYPE_TEMPLATE) ? '_Auto: ' . $template : $template;
$page_description = '';
- if ($system) {
+ if ($page_type == PAGE_TYPE_TEMPLATE) {
$design_template = strtolower($template); // leading "/" not added !
if ($template_info) {
if (array_key_exists('name', $template_info) && $template_info['name']) {
@@ -1708,10 +1713,11 @@
$object->Clear();
$object->SetDBField('ParentId', $page_category);
- $object->SetDBField('IsSystem', $system);
+ $object->SetDBField('Type', $page_type);
+ $object->SetDBField('Protected', 1); // $page_type == PAGE_TYPE_TEMPLATE
$object->SetDBField('IsMenu', 0);
- $object->SetDBField('ThemeId', $theme_id); // $system ? $theme_id : 0
+ $object->SetDBField('ThemeId', $theme_id);
// put all templates to then end of list (in their category)
$min_priority = $this->_getNextPriority($page_category, $object->TableName);
Index: core/units/categories/categories_item.php
===================================================================
--- core/units/categories/categories_item.php (revision 13936)
+++ core/units/categories/categories_item.php (working copy)
@@ -97,7 +97,7 @@
// filename will be generated from scratch, don't check anything here
return ;
}
- elseif ($this->GetDBField('IsSystem')) {
+ elseif ($this->GetDBField('Type') == PAGE_TYPE_TEMPLATE) {
// system page with AutomaticFilename checkbox unchecked -> compatibility with Proj-CMS <= 4.3.9 (when "/" were allowed in Filename)
return ;
}
Index: core/units/categories/categories_tag_processor.php
===================================================================
--- core/units/categories/categories_tag_processor.php (revision 13936)
+++ core/units/categories/categories_tag_processor.php (working copy)
@@ -87,7 +87,7 @@
$object =& $this->getObject($params);
/* @var $object kDBList */
- if ($object->GetDBField('CreatedBySystem')) {
+ if ($object->GetDBField('ThemeId') > 0) {
if (!$object->GetDBField('IsMenu')) {
return $icon_prefix . 'section_menuhidden_system.png';
}
@@ -511,9 +511,9 @@
else {
// all done, update left tree and redirect
$updater->SaveData();
- $this->Application->RemoveVar('PermCache_UpdateRequired');
- $this->Application->StoreVar('RefreshStructureTree', 1);
- $this->Application->Redirect($params['destination_template']);
+ $this->Application->RemoveVar('PermCache_UpdateRequired');
+ $this->Application->StoreVar('RefreshStructureTree', 1);
+ $this->Application->Redirect($params['destination_template']);
}
$ret = $updater->getDonePercent();
@@ -1962,4 +1962,16 @@
return $json_helper->encode($categories);
}
+
+ function PageEditable($params)
+ {
+ if ($this->Application->isDebugMode()) {
+ return true;
+ }
+
+ $object =& $this->getObject($params);
+ /* @var $object kDBItem */
+
+ return !$object->GetDBField('Protected');
+ }
}
\ No newline at end of file
Index: core/units/helpers/category_helper.php
===================================================================
--- core/units/helpers/category_helper.php (revision 13936)
+++ core/units/helpers/category_helper.php (working copy)
@@ -472,7 +472,7 @@
}
$sql = 'SELECT
- IF(c.IsSystem, CONCAT(c.Template, ":", c.ThemeId), CONCAT("id:", c.CategoryId)) AS SrcTemplate,
+ IF(c.`Type` = ' . PAGE_TYPE_TEMPLATE . ', CONCAT(c.Template, ":", c.ThemeId), CONCAT("id:", c.CategoryId)) AS SrcTemplate,
LOWER(
IF(
c.SymLinkCategoryId IS NOT NULL,
Index: core/units/helpers/menu_helper.php
===================================================================
--- core/units/helpers/menu_helper.php (revision 13936)
+++ core/units/helpers/menu_helper.php (working copy)
@@ -236,7 +236,7 @@
'cat_id' => $page['CategoryId'],
'item_type' => $page['ItemType'],
'page_id' => $page['ItemId'],
- 'use_section' => (int)$page['IsSystem'] && ($page['ItemPath'] != 'index'),
+ 'use_section' => ($page['Type'] == PAGE_TYPE_TEMPLATE) && ($page['ItemPath'] != 'index'),
'has_sub_menu' => isset($page['sub_items']) && count($page['sub_items']) > 0,
'external_url' => $page['UseExternalUrl'] ? $page['ExternalUrl'] : false, // for backward compatibility
'menu_icon' => $page['UseMenuIconUrl'] ? $page['MenuIconUrl'] : false,
@@ -341,11 +341,11 @@
c.Priority AS ItemPriority,
' . $lang_part . '
- IF(c.IsSystem, c.Template, CONCAT("id:", c.CategoryId)) AS ItemPath,
+ IF(c.`Type` = ' . PAGE_TYPE_TEMPLATE . ', c.Template, CONCAT("id:", c.CategoryId)) AS ItemPath,
c.ParentPath AS ParentPath,
c.ParentId As ParentId,
\'cat\' AS ItemType,
- c.IsMenu, c.IsSystem, c.ThemeId, c.UseExternalUrl, c.ExternalUrl, c.UseMenuIconUrl, c.MenuIconUrl
+ c.IsMenu, c.Type, c.ThemeId, c.UseExternalUrl, c.ExternalUrl, c.UseMenuIconUrl, c.MenuIconUrl
FROM ' . TABLE_PREFIX . 'Category AS c
WHERE c.Status = ' . STATUS_ACTIVE;
$items = $this->Conn->Query($sql, 'ItemId');
Index: core/units/helpers/themes_helper.php
===================================================================
--- core/units/helpers/themes_helper.php (revision 13936)
+++ core/units/helpers/themes_helper.php (working copy)
@@ -539,7 +539,7 @@
WHERE
(
(NamedParentPath = ' . $this->Conn->qstr('Content/' . $template) . ') OR
- (IsSystem = 1 AND CachedTemplate = ' . $this->Conn->qstr($template) . ')
+ (`Type` = ' . PAGE_TYPE_TEMPLATE . ' AND CachedTemplate = ' . $this->Conn->qstr($template) . ')
)
AND (ThemeId = ' . $theme_id . ($theme_id > 0 ? ' OR ThemeId = 0' : '') . ')';
Index: core/units/structure/structure_config.php
===================================================================
--- core/units/structure/structure_config.php (revision 13936)
+++ core/units/structure/structure_config.php (working copy)
@@ -124,7 +124,11 @@
'Fields' => Array (
'CategoryId' => Array('type' => 'int', 'not_null' => 1,'default' => 0),
- 'Type' => Array('type' => 'int','not_null' => 1,'default' => 0),
+ 'Type' => Array (
+ 'type' => 'int',
+ 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_opt_Virtual', 2 => 'la_opt_Template'), 'use_phrases' => 1,
+ 'not_null' => 1,'default' => 1
+ ),
'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' => ''),
@@ -182,7 +186,7 @@
'MetaTitle' => Array('type' => 'string', 'default' => null),
'IndexTools' => Array('type' => 'string','default' => null),
'IsMenu' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Show', 0 => 'la_Hide'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 1),
- 'IsSystem' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_System', 0 => 'la_Regular'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0),
+ 'Protected' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), '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',
@@ -221,7 +225,7 @@
'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter' ),
'IsMenu' => Array( 'title'=>'la_col_Visible', 'filter_block' => 'grid_options_filter' ),
'Path' => Array( 'title'=>'la_col_Path', 'data_block' => 'page_entercat_td', 'filter_block' => 'grid_like_filter' ),
- 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'use_phrases'=>1 ),
+ 'Protected' => Array( 'title'=>'la_col_Protected', 'filter_block' => 'grid_options_filter', 'width' => 100),
),
),
@@ -235,7 +239,7 @@
'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter' ),
'IsMenu' => Array( 'title'=>'la_col_Visible', 'filter_block' => 'grid_options_filter' ),
'Path' => Array( 'title'=>'la_col_Path', 'data_block' => 'page_entercat_td', 'filter_block' => 'grid_like_filter' ),
- 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'use_phrases'=>1 ),
+ 'Protected' => Array( 'title'=>'la_col_Protected', 'filter_block' => 'grid_options_filter', 'width' => 100),
),
),
@@ -248,7 +252,7 @@
'Modified' => Array( 'title'=>'la_col_Modified', 'filter_block' => 'grid_date_range_filter' ),
'Template' => Array( 'title'=>'la_col_TemplateType', 'filter_block' => 'grid_options_filter', 'hidden' => true ),
'IsMenu' => Array( 'title'=>'la_col_Visible', 'filter_block' => 'grid_options_filter' ),
- 'IsSystem' => Array( 'title'=>'la_col_System', 'filter_block' => 'grid_options_filter', 'use_phrases'=>1 ),
+ 'Protected' => Array( 'title'=>'la_col_Protected', 'filter_block' => 'grid_options_filter', 'width' => 100),
),
),
),