Index: branches/1.1.x/units/sections/sections_config.php
===================================================================
--- branches/1.1.x/units/sections/sections_config.php	(revision 14286)
+++ branches/1.1.x/units/sections/sections_config.php	(revision 14287)
@@ -1,107 +1,107 @@
 <?php
 
 	/**
 	 * Custom-sections prefix
 	 *
 	 * @author dmitrya
 	 * @package Custom (Development Kit)
 	 */
 
 	defined('FULL_PATH') or die('restricted access!');
 
 	$config = Array (
 
 		'Prefix' => 'custom-sections',
 
 		'ConfigPriority' => 2,
 
 		# Event handler class used for HOOKing to existing events (ie. )
 		'EventHandlerClass'	=> Array ('class' => 'CustomEventHandler', 'file' => 'custom_eh.php', 'build_event' => 'OnBuild'),
 
 		# Defined to draw new sections (if any) in left nav. tree, normally each unit has it's own Tag Processor
 		'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'),
 
 		# Extend/override already existing classes (ie. Event Handlers, Tag Processors, Helpers)
 		'RegisterClasses' => Array (
 
 			# extend default User core/units/users/users_tag_processor.php / users_event_handler.php
 //			Array ('pseudo' => 'u_TagProcessor', 'class' => 'EUserTagProcessor', 'file' => 'users/e_user_tp.php'),
 //			Array ('pseudo' => 'u_EventHandler', 'class' => 'EUserEventHandler', 'file' => 'users/e_user_eh.php'),
 
 			# extend default Product classes /in-commerce/units/products/products_tag_processor.php / products_event_handler.php
 //			Array ('pseudo' => 'p_TagProcessor', 'class' => 'EProductTagProcessor', 'file' => 'products/e_product_tp.php'),
 //			Array ('pseudo' => 'p_EventHandler', 'class' => 'EProductEventHandler', 'file' => 'products/e_product_eh.php'),
 
 			# extend default Link /in-link/units/links/link_tag_processor.php / links_event_handler.php
 //			Array ('pseudo' => 'l_TagProcessor', 'class' => 'ELinkTagProcessor', 'file' => 'links/e_link_tp.php'),
 //			Array ('pseudo' => 'l_EventHandler', 'class' => 'ELinkEventHandler', 'file' => 'links/e_link_eh.php'),
 
 			# extend default Category /core/units/categories/categories_tag_processor.php / categories_event_handler.php
 //			Array ('pseudo' => 'c_TagProcessor', 'class' => 'ECategoryTagProcessor', 'file' => 'categories/e_category_tp.php'),
 //			Array ('pseudo' => 'c_EventHandler', 'class' => 'ECategoryEventHandler', 'file' => 'categories/e_category_eh.php'),
 
 			# extend default Article /in-news/units/articles/article_tag_processor.php / articles_event_handler.php
 //			Array ('pseudo' => 'n_TagProcessor', 'class' => 'EArticleTagProcessor', 'file' => 'articles/e_article_tp.php'),
 //			Array ('pseudo' => 'n_EventHandler', 'class' => 'EArticleEventHandler', 'file' => 'articles/e_article_eh.php'),
 
 		),
 
 		# Replace/substiture any admin default templates with custom ones
 		'ReplacementTemplates'	=>	Array (
 			# replace default image block with custom template
 //			'incs/image_blocks' => 'custom/incs/image_blocks',
 
 			# replace default edit link template
 //			'in-links/links/links_edit' => 'custom/links/links_edit',
 
 			# replace default edit category template
 //			'categories/categories_edit' => 'custom/categories/categories_edit',
 		),
 
 		# Hooks to events that may call any other events
 		'Hooks' => Array (
-			
+
 			# hook to OnAfterCacheRebuild event of "adm" prefix (tiggered when unit cache is rebuild and stored) called
 			# to override cloned sub-items (ie. register extended classes for cloned unit configs such as n-img, n-rev)
 			/*Array (
 				'Mode' => hAFTER,
 				'Conditional' => false,
 				'HookToPrefix' => 'adm',
 				'HookToSpecial' => '*',
 				'HookToEvent' => Array ('OnAfterCacheRebuild'),
 				'DoPrefix' => '',
 				'DoSpecial' => '*',
 				'DoEvent' => 'OnOverrideClonedSubItems',
 			),*/
-		
+
 			# hook to category OnAfterConfigRead event called to customize category configuration settings
 			/*Array (
 				'Mode' => hAFTER,
 				'Conditional' => false,
 				'HookToPrefix' => 'c',
 				'HookToSpecial' => '*',
 				'HookToEvent' => Array ('OnAfterConfigRead'),
 				'DoPrefix' => '',
 				'DoSpecial' => '*',
 				'DoEvent' => 'OnModifyCategoriesConfig',
 			),*/
 		),
 
 		'PermSection' => Array ('main' => 'custom', 'email' => 'custom:configuration_email'),
 
 		# New sections in left navigation
 		/*'Sections' => Array (
 			'custom' => Array (
 				'parent'		=>	'in-portal:root',
 				'icon'			=>	'conf_custom',
 				'label'			=>	'la_title_Custom',
 				'url'			=>	Array ('t' => 'index', 'pass' => 'm'),
 				'permissions'	=>	Array ('view'),
 				'priority'		=>	2.4,
 				'container'		=>	true,
 				'type'			=>	stTREE,
 			),
 
 		),*/
 
 	);
\ No newline at end of file
Index: branches/1.1.x/admin_templates/widgets/widget_edit.tpl
===================================================================
--- branches/1.1.x/admin_templates/widgets/widget_edit.tpl	(revision 14286)
+++ branches/1.1.x/admin_templates/widgets/widget_edit.tpl	(revision 14287)
@@ -1,89 +1,91 @@
 <inp2:adm_SetPopupSize width="750" height="570"/>
 
+<inp2:m_DefaultParam prefix="widget" grid="Default" title_preset="widget_edit" section="custom:widgets" id_field="WidgetId"/>
+
 <inp2:m_include t="incs/header"/>
-<inp2:m_RenderElement name="combined_header" section="custom:widgets" prefix="widget" title_preset="widget_edit"/>
+<inp2:m_RenderElement name="combined_header" section="$section" prefix="$prefix" title_preset="$title_preset"/>
 
 <!-- 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('widget','<inp2:widget_SaveEvent/>');
+						submit_event('<inp2:m_Param name="prefix"/>','<inp2:{$prefix}_SaveEvent/>');
 					}
 				));
 				a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel" escape="1"/>', function() {
-						cancel_edit('widget','OnCancelEdit','<inp2:widget_SaveEvent/>','<inp2:m_Phrase label="la_FormCancelConfirmation" escape="1"/>');
+						cancel_edit('<inp2:m_Param name="prefix"/>','OnCancelEdit','<inp2:{$prefix}_SaveEvent/>','<inp2:m_Phrase label="la_FormCancelConfirmation" escape="1"/>');
 					}
 				));
 
 				a_toolbar.AddButton( new ToolBarButton('reset_edit', '<inp2:m_phrase label="la_ToolTip_Reset" escape="1"/>', function() {
-						reset_form('widget', 'OnReset', '<inp2:m_Phrase label="la_FormResetConfirmation" escape="1"/>');
+						reset_form('<inp2:m_Param name="prefix"/>', 'OnReset', '<inp2:m_Phrase label="la_FormResetConfirmation" escape="1"/>');
 					}
 				));
 
 				a_toolbar.AddButton( new ToolBarSeparator('sep1') );
 
 				a_toolbar.AddButton( new ToolBarButton('prev', '<inp2:m_phrase label="la_ToolTip_Prev" escape="1"/>', function() {
-							go_to_id('widget', '<inp2:widget_PrevId/>');
+							go_to_id('<inp2:m_Param name="prefix"/>', '<inp2:{$prefix}_PrevId/>');
 						}
 				));
 				a_toolbar.AddButton( new ToolBarButton('next', '<inp2:m_phrase label="la_ToolTip_Next" escape="1"/>', function() {
-							go_to_id('widget', '<inp2:widget_NextId/>');
+							go_to_id('<inp2:m_Param name="prefix"/>', '<inp2:{$prefix}_NextId/>');
 						}
 				));
 
 				a_toolbar.Render();
 
-				<inp2:m_if check="widget_IsSingle" >
+				<inp2:m_if check="{$prefix}_IsSingle" >
 					a_toolbar.HideButton('prev');
 					a_toolbar.HideButton('next');
 					a_toolbar.HideButton('sep1');
 				<inp2:m_else/>
-					<inp2:m_if check="widget_IsLast" >
+					<inp2:m_if check="{$prefix}_IsLast" >
 						a_toolbar.DisableButton('next');
 					</inp2:m_if>
-					<inp2:m_if check="widget_IsFirst" >
+					<inp2:m_if check="{$prefix}_IsFirst" >
 						a_toolbar.DisableButton('prev');
 					</inp2:m_if>
 				</inp2:m_if>
 			</script>
 
 			<script type="text/javascript" src="js/swfobject.js"></script>
 			<script type="text/javascript" src="<inp2:m_Compress files='js/uploader/upload_manager.js|js/uploader/uploader.js'/>"></script>
 		</td>
 	</tr>
 </tbody>
 </table>
 
-<inp2:widget_SaveWarning name="grid_save_warning"/>
-<inp2:widget_ErrorWarning name="form_error_warning"/>
+<inp2:{$prefix}_SaveWarning name="grid_save_warning"/>
+<inp2:{$prefix}_ErrorWarning name="form_error_warning"/>
 
 <div id="scroll_container">
 	<table class="edit-form">
 		<inp2:m_RenderElement name="subsection" title="la_section_Page"/>
-			<inp2:m_RenderElement name="inp_id_label" prefix="widget" field="WidgetId" title="la_fld_Id"/>
-			<inp2:m_RenderElement name="inp_edit_box" prefix="widget" field="Title" title="la_fld_Title" style="width: 100px"/>
-			<inp2:m_RenderElement name="inp_edit_checkbox" prefix="widget" field="Good" title="la_fld_Good"/>
-			<inp2:m_RenderElement name="inp_edit_fck" prefix="widget" field="Description" title="la_fld_Description"/>
-			<inp2:m_RenderElement name="inp_edit_radio" prefix="widget" field="Status" title="la_fld_Status"/>
-			<inp2:m_RenderElement name="inp_edit_options" prefix="widget" field="Type" title="la_fld_Type" has_empty="1"/>
+			<inp2:m_RenderElement name="inp_id_label" prefix="$prefix" field="$id_field" title="la_fld_Id"/>
+			<inp2:m_RenderElement name="inp_edit_box" prefix="$prefix" field="Title" title="la_fld_Title" style="width: 100px"/>
+			<inp2:m_RenderElement name="inp_edit_checkbox" prefix="$prefix" field="Good" title="la_fld_Good"/>
+			<inp2:m_RenderElement name="inp_edit_fck" prefix="$prefix" field="Description" title="la_fld_Description"/>
+			<inp2:m_RenderElement name="inp_edit_radio" prefix="$prefix" field="Status" title="la_fld_Status"/>
+			<inp2:m_RenderElement name="inp_edit_options" prefix="$prefix" field="Type" title="la_fld_Type" has_empty="1"/>
 
 		<!--##
-			<inp2:m_RenderElement name="inp_edit_date" prefix="widget" field="CreatedOn" title="la_fld_CreatedOn"/>			
-			<inp2:m_RenderElement name="inp_edit_checkbox" prefix="widget" field="IsSystem" title="la_fld_IsSystemTemplate" onchange="OnSystemClick()"/>
+			<inp2:m_RenderElement name="inp_edit_date" prefix="$prefix" field="CreatedOn" title="la_fld_CreatedOn"/>			
+			<inp2:m_RenderElement name="inp_edit_checkbox" prefix="$prefix" field="IsSystem" title="la_fld_IsSystemTemplate" onchange="OnSystemClick()"/>
 		##-->
 
-			<inp2:m_RenderElement name="inp_edit_box" prefix="widget" field="Qty" title="la_fld_Qty" style="width: 50px"/>
-			<inp2:m_RenderElement name="inp_edit_textarea" prefix="widget" field="Phone" title="la_fld_Phone"/>
-			<inp2:m_RenderElement name="inp_edit_box" prefix="widget" field="Email" title="la_fld_Email" style="width: 200px"/>
+			<inp2:m_RenderElement name="inp_edit_box" prefix="$prefix" field="Qty" title="la_fld_Qty" style="width: 50px"/>
+			<inp2:m_RenderElement name="inp_edit_textarea" prefix="$prefix" field="Phone" title="la_fld_Phone"/>
+			<inp2:m_RenderElement name="inp_edit_box" prefix="$prefix" field="Email" title="la_fld_Email" style="width: 200px"/>
 
-			<inp2:m_RenderElement name="inp_edit_swf_upload" prefix="widget" field="Image" title="la_fld_Image"/>
-			<inp2:m_RenderElement name="inp_edit_swf_upload" prefix="widget" field="DataFile" title="la_fld_DataFile"/>
+			<inp2:m_RenderElement name="inp_edit_swf_upload" prefix="$prefix" field="Image" title="la_fld_Image"/>
+			<inp2:m_RenderElement name="inp_edit_swf_upload" prefix="$prefix" field="DataFile" title="la_fld_DataFile"/>
 			<inp2:m_RenderElement name="inp_edit_filler"/>
 	</table>
 </div>
 
 <inp2:m_include t="incs/footer"/>
\ No newline at end of file
Index: branches/1.1.x/admin_templates/widgets/widget_list.tpl
===================================================================
--- branches/1.1.x/admin_templates/widgets/widget_list.tpl	(revision 14286)
+++ branches/1.1.x/admin_templates/widgets/widget_list.tpl	(revision 14287)
@@ -1,139 +1,140 @@
-<inp2:m_include t="incs/header" />
+<inp2:m_DefaultParam prefix="widget" grid="Default" title_preset="widget_list" section="custom:widgets" edit_template="custom/widgets/widget_edit" id_field="WidgetId"/>
 
-<inp2:m_RenderElement name="combined_header" prefix="widget" section="custom:widgets" title_preset="widget_list" pagination="1"/>
+<inp2:m_include t="incs/header" />
+<inp2:m_RenderElement name="combined_header" prefix="$prefix" section="$section" title_preset="$title_preset" pagination="1"/>
 
 <!-- ToolBar -->
 <table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
 <tbody>
 	<tr>
   		<td>
 	  		<table width="100%" cellpadding="0" cellspacing="0">
 	  			<tr>
-	  				<td >
-	  					<script type="text/javascript">
-								a_toolbar = new ToolBar();
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'new_item',
-										'<inp2:m_phrase label="la_ToolTip_NewWidget" escape="1"/>::<inp2:m_phrase label="la_Add" escape="1"/>',
-										function() {
-											std_precreate_item('widget', 'custom/widgets/widget_edit')
-										}
-									)
-								);
-
-								function edit() {
-								  	std_edit_item('widget', 'custom/widgets/widget_edit');
-								}
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'edit',
-										'<inp2:m_phrase label="la_ToolTip_Edit" escape="1"/>::<inp2:m_phrase label="la_ShortToolTip_Edit" escape="1"/>',
-										edit
-									)
-								);
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'delete',
-										'<inp2:m_phrase label="la_ToolTip_Delete" escape="1"/>',
-										function() {
-											std_delete_items('widget');
-										}
-									)
-								);
-
-								a_toolbar.AddButton( new ToolBarSeparator('sep1') );
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'approve',
-										'<inp2:m_phrase label="la_ToolTip_Approve" escape="1"/>',
-										function() {
-											submit_event('widget', 'OnMassApprove');
-										}
-				 					)
-				 				);
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'decline',
-										'<inp2:m_phrase label="la_ToolTip_Decline" escape="1"/>',
-										function() {
-											submit_event('widget', 'OnMassDecline');
-										}
-								 	)
-								);
-
-								a_toolbar.AddButton( new ToolBarSeparator('sep2') );
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'export',
-										'<inp2:m_phrase label="la_ToolTip_Export" escape="1"/>',
-										function() {
-											std_csv_export('widget', 'Default', 'export/export_progress');
-										}
-									)
-								);
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'import',
-										'<inp2:m_phrase label="la_ToolTip_Import" escape="1"/>',
-										function() {
-											std_csv_import('widget', 'Default', 'import/import_start');
-										}
-									)
-								);
-
-								a_toolbar.AddButton( new ToolBarSeparator('sep3') );
-
-								a_toolbar.AddButton(
-									new ToolBarButton(
-										'view',
-										'<inp2:m_phrase label="la_ToolTip_View" escape="1"/>',
-										function(id) {
-											show_viewmenu(a_toolbar,'view');
-										}
-									)
-								);
+	  				<td>
+		  				<script type="text/javascript">
+							a_toolbar = new ToolBar();
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'new_item',
+									'<inp2:m_phrase label="la_ToolTip_NewWidget" escape="1"/>::<inp2:m_phrase label="la_Add" escape="1"/>',
+									function() {
+										std_precreate_item('<inp2:m_Param name="prefix"/>', '<inp2:m_Param name="edit_template"/>')
+									}
+								)
+							);
+
+							function edit() {
+							  	std_edit_item('<inp2:m_Param name="prefix"/>', '<inp2:m_Param name="edit_template"/>');
+							}
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'edit',
+									'<inp2:m_phrase label="la_ToolTip_Edit" escape="1"/>::<inp2:m_phrase label="la_ShortToolTip_Edit" escape="1"/>',
+									edit
+								)
+							);
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'delete',
+									'<inp2:m_phrase label="la_ToolTip_Delete" escape="1"/>',
+									function() {
+										std_delete_items('<inp2:m_Param name="prefix"/>');
+									}
+								)
+							);
+
+							a_toolbar.AddButton( new ToolBarSeparator('sep1') );
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'approve',
+									'<inp2:m_phrase label="la_ToolTip_Approve" escape="1"/>',
+									function() {
+										submit_event('<inp2:m_Param name="prefix"/>', 'OnMassApprove');
+									}
+			 					)
+			 				);
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'decline',
+									'<inp2:m_phrase label="la_ToolTip_Decline" escape="1"/>',
+									function() {
+										submit_event('<inp2:m_Param name="prefix"/>', 'OnMassDecline');
+									}
+							 	)
+							);
+
+							a_toolbar.AddButton( new ToolBarSeparator('sep2') );
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'export',
+									'<inp2:m_phrase label="la_ToolTip_Export" escape="1"/>',
+									function() {
+										std_csv_export('<inp2:m_Param name="prefix"/>', '<inp2:m_Param name="grid"/>', 'export/export_progress');
+									}
+								)
+							);
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'import',
+									'<inp2:m_phrase label="la_ToolTip_Import" escape="1"/>',
+									function() {
+										std_csv_import('<inp2:m_Param name="prefix"/>', '<inp2:m_Param name="grid"/>', 'import/import_start');
+									}
+								)
+							);
+
+							a_toolbar.AddButton( new ToolBarSeparator('sep3') );
+
+							a_toolbar.AddButton(
+								new ToolBarButton(
+									'view',
+									'<inp2:m_phrase label="la_ToolTip_View" escape="1"/>',
+									function(id) {
+										show_viewmenu(a_toolbar,'view');
+									}
+								)
+							);
 
-								a_toolbar.Render();
-							</script>
+							a_toolbar.Render();
+						</script>
 	  				</td>
 
-	  				<inp2:m_RenderElement name="search_main_toolbar" prefix="widget" grid="Default"/>
+	  				<inp2:m_RenderElement name="search_main_toolbar" prefix="$prefix" grid="$grid"/>
 	  			</tr>
 	  		</table>
 		</td>
 	</tr>
 </tbody>
 </table>
 
 <style type="text/css">
 	.red-row td.Status {
 		background-color: red;
 	}
 </style>
 
 <inp2:m_DefineElement name="grid_image_td">
 	<img src="<inp2:Field name='$field' format='resize:120x120'/>" <inp2:Field name='$field' format='resize:120x120;img_size' no_special='1'/> alt=""/><br />
 </inp2:m_DefineElement>
 
 <inp2:m_DefineElement name="grid_delete_td">
 	<a href="<inp2:m_Link {$PrefixSpecial}_event='OnDelete' pass='m,$PrefixSpecial'/>" onclick="return confirm('Delete Record?')">Delete</a>
 </inp2:m_DefineElement>
 
 <inp2:m_DefineElement name="grid_custom_td">
 	<a href="<inp2:ItemEditLink/>" title="<inp2:m_Phrase name='la_Text_Edit' no_editing='1'/>" onclick="return direct_edit('<inp2:m_param name="PrefixSpecial"/>', this.href);"><inp2:Field field="$field" grid="$grid" format="$format"/></a>
 </inp2:m_DefineElement>
 
-<inp2:m_RenderElement name="grid" PrefixSpecial="widget" IdField="WidgetId" grid="Default" max_row_height="100"/>
+<inp2:m_RenderElement name="grid" PrefixSpecial="$prefix" IdField="$id_field" grid="$grid" max_row_height="100"/>
 <script type="text/javascript">
-	Grids['widget'].SetDependantToolbarButtons( new Array('edit', 'delete', 'approve', 'decline') );
+	Grids['<inp2:m_Param name="prefix"/>'].SetDependantToolbarButtons( new Array('edit', 'delete', 'approve', 'decline') );
 </script>
 
 <inp2:m_include t="incs/footer"/>
\ No newline at end of file