Index: branches/1.0.x/custom/units/helpers/sample_helper.php
===================================================================
--- branches/1.0.x/custom/units/helpers/sample_helper.php	(revision 12300)
+++ branches/1.0.x/custom/units/helpers/sample_helper.php	(revision 12301)
@@ -1,12 +1,14 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Sample helper contains methods used in different classes
 	 *
 	 */
 	class SampleHelper extends kHelper
 	{
 
 
 
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/helpers/helpers_config.php
===================================================================
--- branches/1.0.x/custom/units/helpers/helpers_config.php	(revision 12300)
+++ branches/1.0.x/custom/units/helpers/helpers_config.php	(revision 12301)
@@ -1,12 +1,14 @@
 <?php
 
+defined('FULL_PATH') or die('restricted access!');
+
 	$config = Array (
 
 		'Prefix' => 'custom-helpers',
 
 		'EventHandlerClass'	=> Array ('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
 
 		'RegisterClasses' => Array (
 			Array ('pseudo' => 'SampleHelper', 'class' => 'SampleHelper', 'file' => 'sample_helper.php', 'build_event' => '', 'require_classes' => 'kHelper'),
 		),
 	);
\ No newline at end of file
Index: branches/1.0.x/custom/units/widgets/widgets_config.php
===================================================================
--- branches/1.0.x/custom/units/widgets/widgets_config.php	(revision 12300)
+++ branches/1.0.x/custom/units/widgets/widgets_config.php	(revision 12301)
@@ -1,189 +1,191 @@
 <?php
 
 	/**
 	 * Sample config file for widgets
 	 *
 	 * @author dmitrya
 	 * @package Development Kit
 	 */
 
-	$config	= Array(
+defined('FULL_PATH') or die('restricted access!');
+
+	$config = Array(
 
 		'Prefix' =>	'widget',
 
 		'ItemClass' => Array ('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
 		'ListClass' => Array ('class' => 'kDBList', 'file'=> '', 'build_event' => 'OnListBuild'),
 
 		'EventHandlerClass'	=>	Array ('class' => 'WidgetEventHandler', 'file' => 'widget_eh.php', 'build_event' => 'OnBuild'),
 		'TagProcessorClass' =>	Array ('class' => 'WidgetTagProcessor', 'file' => 'widget_tp.php', 'build_event' => 'OnBuild'),
 
 		'AutoLoad' => true,
 
 		'QueryString' => Array (
 			1	=>	'id',
 			2	=>	'Page',
 			3	=>	'event',
 			4	=>	'mode',
 		),
 
 		'RewriteListener' => 'WidgetRewriteListener',
 
 		'IDField' => 'WidgetId',
 
 		'StatusField' => Array ('Status'),
 
 		'TableName'	=> TABLE_PREFIX.'Widgets',
 
 	/*
 		'ForeignKey' =>	'ParentId', // field title in TableName, linking record to a parent
 		'ParentTableKey' =>	'ParentId', // id (or other key) field title in parent's table
 		'ParentPrefix' => 'parent',
 		'AutoDelete' => true, // delete these items when parent is being deleted
 		'AutoClone' => true, // clone these items when parent is being cloned
 	*/
 
 		'TitlePresets' => Array (
 			'default' => Array (
 				'new_status_labels' => Array ('widget' => '!la_title_AddingWidget!'),
 				'edit_status_labels' => Array ('widget' => '!la_title_EditingWidget!'),
 				'new_titlefield' => Array ('widget' => '!la_title_NewWidget!'),
 			),
 
 			'widget_list' => Array (
 				'prefixes' => Array ('widget_List'), 'format' => '#section_label#',
 				'toolbar_buttons' => Array ('new_item', 'edit', 'delete', 'approve', 'decline', 'export', 'import', 'view', 'dbl-click',),
 			),
 
 			'widget_edit' => Array (
 				'prefixes' => Array ('widget'), 'format' => '#widget_status# - #widget_titlefield#',
 				'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit', 'prev', 'next'),
 			),
 		),
 
 		'PermSection' => Array('main' => 'custom:widgets'),
 
 		'Sections' => Array (
 			'custom:widgets' => Array (
 				'parent' =>	'custom',
 				'icon' => 'custom:widgets',
 				'label' => 'la_title_Widgets',
 				'url' => Array ('t' => 'custom/widgets/widget_list', 'pass' => 'm'),
 				'permissions' => Array ('view', 'add', 'edit', 'delete'),
 				'priority' =>	1,
 				'type' => stTREE,
 			),
 		),
 
 		'TitleField' =>	'Title',	// field, used in bluebar when editing existing item
 
 		// Use %1$s for local table name with prefix, %2$s for calculated fields
 		'ListSQLs' => Array (	// key - special, value - list select sql
 			'' => 'SELECT %1$s.* %2$s
 						 FROM %1$s',
 		),
 
 		'ItemSQLs' => Array (
 			'' => 'SELECT %1$s.* %2$s
 						 FROM %1$s',
 		),
 
 		'ListSortings'	=> 	Array (
 			'' => Array (
 	//			'ForcedSorting' => Array ('Priority' => 'desc'),
 				'Sorting' => Array ('Title' => 'asc'),
 			)
 		),
 
 		'Fields' =>	Array (
 			'WidgetId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
 			'Title' => Array ('type' => 'string', 'not_null' => '1', 'default' => '', 'required' => true, 'max_len' => 255),
 			'Description' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null),
 			'Email' => Array(
 				'type' => 'string', 'formatter' => 'kFormatter',
 				'regexp'=> '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i',
 				'sample_value' => 'email@domain.com',
 				'not_null' => 1, 'default' => '',
 				'error_msgs' => Array ('invalid_format' => '!la_invalid_email!')
 			),
 			'Type' => Array (
 				'type' => 'int',
 				'formatter' => 'kOptionsFormatter', 'use_phrases' => 1,
 				'options' => Array (
 					1 => 'la_opt_Default',
 					2 => 'la_opt_Custom',
 				),
 				'not_null' => 1,
 				'default' => 1,
 				'required' => 1,
 			),
 			'Phone' => Array (
 				'type' => 'string', 'formatter' => 'kFormatter',
 				'default' => '', 'using_fck' => 1, 'not_null' => 1),
 			'Qty' => Array ('type' => 'double', 'required' => 0, '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' => 2,
 			),
 			'CreatedOn' => Array (
 				'type' => 'int', 'formatter' => 'kDateFormatter',
 				'time_format' => '', 'input_time_format' => '', 'default'=>'#NOW#', 'not_null' => true),
 
 			'Good' => Array (
 				'type' => 'int', 'formatter' => 'kOptionsFormatter',
 				'options' => Array(1 => 'la_Yes', 0 => 'la_No'),
 				'use_phrases' => 1, 'not_null' => 1, 'default' => 0
 			),
 			'BirthTime' => Array (
 				'type' => 'int', 'formatter' => 'kDateFormatter',
 				'date_format' => '', 'input_date_format' => '',
 				'default' => null
 			),
 			'Image' => Array(
 				'type' => 'string', 'formatter' => 'kUploadFormatter',
 				'max_size' => MAX_UPLOAD_SIZE, // in Bytes !
 				'file_types' => '*.jpg;*.gif;*.png', 'files_description'=>'!la_hint_ImageFiles!',
 				'upload_dir' => '/system/user_files/', // relative to project's home
 				'as_image' => true, 'thumb_width' => 100, 'thumb_height' => 100,
 				'multiple' => false, // false or max number of files - will be stored as serialized array of paths
 				'direct_links' => false, // use direct file urls or send files through wrapper (requires mod_mime_magic)
 				'required' => 1, 'default' => null
 			),
 			'DataFile' => Array(
 				'type' => 'string', 'formatter'=>'kUploadFormatter',
 				'max_size' => MAX_UPLOAD_SIZE, // in Bytes !
 				'file_types' => '*.*',
 				'files_description' => '!la_hint_AllFiles!',
 				'upload_dir' => '/system/user_files/', // relative to project's home
 				'as_image' => false,
 				'multiple' => 5, // false or max number of files - will be stored as serialized array of paths
 				'direct_links' => true, // use direct file urls or send files through wrapper (requires mod_mime_magic)
 				'default' => null
 			),
 		),
 
 		'Grids'	=> Array (
 			'Default' => Array (
 	//			'Icons' => Array ('default' => 'icon16_custom.gif'),
 				'Fields' => Array (
 					'WidgetId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter'),
 					'Title' => Array ('title' => 'la_col_Name', 'data_block' => 'grid_delete_td'),
 					'Image' => Array ('title' => 'la_col_Image', 'data_block' => 'grid_image_td'),
 					'Type' => Array ('title' => 'la_col_Type', 'filter_block' => 'grid_options_filter'),
 					'Status' => Array ('title' => 'la_col_Status', 'filter_block' => 'grid_options_filter'),
 					'Good' => Array ('title' => 'la_col_Good'),
 					'Qty' => Array ('title' => 'la_col_Qty', 'header_block' => 'grid_column_title_no_sorting', 'filter_block' => 'grid_float_range_filter'),
 					'Email' => Array ('title' => 'la_col_Email'),
 					'Phone' => Array ('title' => 'la_col_Phone'),
 					'CreatedOn' => Array ('title' => 'la_col_CreatedOn', 'filter_block' => 'grid_date_range_filter'),
 					'Description' => Array ('title' => 'la_col_Description'),
 	//				'BirthTime' => Array ('title' => 'la_col_BirthTime', 'filter_block' => 'grid_date_range_filter'),
 				),
 			),
 		),
 
 		'ConfigMapping' => Array (
 			'PerPage' => 'Comm_Perpage_Widgets',
 			'ShortListPerPage' => 'Comm_Perpage_Widgets_Short',
 		),
 	);
Index: branches/1.0.x/custom/units/widgets/widget_eh.php
===================================================================
--- branches/1.0.x/custom/units/widgets/widget_eh.php	(revision 12300)
+++ branches/1.0.x/custom/units/widgets/widget_eh.php	(revision 12301)
@@ -1,243 +1,245 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Widgets Event Handler (sample)
 	 *
 	 */
 	class WidgetEventHandler extends kDBEventHandler {
 
 		/**
 		 * Allows to override standart permission mapping
 		 *
 		 */
 		function mapPermissions()
 		{
 			parent::mapPermissions();
 
 			$permissions = Array (
 				'OnItemBuild' => Array ('self' => true),
 				'OnCustomEvent' => Array ('self' => true),
 			);
 
 			$this->permMapping = array_merge($this->permMapping, $permissions);
 		}
 
 		/**
 		 * Permission exceptions
 		 *
 		 * @param kEvent $event
 		 */
 		function CheckPermission(&$event)
 		{
 			$skip_permissions_check_events = Array (
 				'OnAnotherCustomEvent',
 			);
 
 			if (in_array($event->Name, $skip_permissions_check_events)) {
 				return true;
 			}
 
 			return parent::CheckPermission($event);
 		}
 
 		/**
 		 * Set custom query for the list
 		 *
 		 * @param kEvent $event
 		 */
 		function OnCustomEvent(&$event)
 		{
 			$object =& $event->getObject();
 			/* @var $object kDBList */
 
 		}
 
 		/**
 		 * Set custom query for the list
 		 *
 		 * @param kEvent $event
 		 */
 		function SetCustomQuery(&$event)
 		{
 			parent::SetCustomQuery($event);
 
 			$object =& $event->getObject();
 			/* @var $object kDBList */
 
 			# identifying event based on special and setting filter
 			if ($event->Special == 'custom-special') {
 //				$object->addFilter('primary_filter', '%1$s.Status = '.STATUS_DISABLED);
 			}
 		}
 
 		/**
 		 * Before new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemCreate(&$event)
 		{
 			parent::OnBeforeItemCreate($event);
 
 		}
 
 		/**
 		 * Before existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemUpdate(&$event)
 		{
 			parent::OnBeforeItemUpdate($event);
 
 		}
 
 		/**
 		 * Before item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemDelete(&$event)
 		{
 			parent::OnBeforeItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemLoad(&$event)
 		{
 			parent::OnBeforeItemLoad($event);
 
 
 		}
 
 
 		/**
 		 * After new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemCreate(&$event)
 		{
 			parent::OnAfterItemCreate($event);
 
 
 		}
 
 		/**
 		 * After existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemUpdate(&$event)
 		{
 			parent::OnAfterItemUpdate($event);
 
 
 		}
 
 		/**
 		 * After item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemDelete(&$event)
 		{
 			parent::OnAfterItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemLoad(&$event)
 		{
 			parent::OnAfterItemLoad($event);
 
 
 		}
 
 		/**
 		 * Builds/parses widget part of url
 		 *
 		 * @param int $rewrite_mode Mode in what rewrite listener was called. Possbile two modes: REWRITE_MODE_BUILD, REWRITE_MODE_PARSE.
 		 * @param string $prefix Prefix, that listener uses for system integration
 		 * @param Array $params Params, that are used for url building or created during url parsing.
 		 * @param Array $url_parts Url parts to parse (only for parsing).
 		 * @param bool $keep_events Keep event names in resulting url (only for building).
 		 * @return bool Return true to continue to next listener; return false (when building) not to rewrite given prefix; return false (when parsing) to stop processing at this listener.
 		 */
 		function WidgetRewriteListener($rewrite_mode = REWRITE_MODE_BUILD, $prefix, &$params, &$url_parts, $keep_events = false)
 		{
 			if ($rewrite_mode == REWRITE_MODE_BUILD) {
 				if ($params['t'] == 'widgets/widget_detail') {
 					// this is default template for this prefix, so don't add it to resulting url
 					$params['pass_template'] = false;
 				}
 
 				$mod_rewrite_helper =& $this->Application->recallObject('ModRewriteHelper');
 				/* @var $mod_rewrite_helper kModRewriteHelper */
 
 				$processed_params = $mod_rewrite_helper->getProcessedParams($prefix, $params, $keep_events);
 
 				if ($processed_params === false) {
 					return '';
 				}
 
 				$ret = Array ('', '');
 
 				if ($processed_params[$prefix . '_id'] > 0) {
 					// add id
 					$sql = 'SELECT Title
 							FROM ' . TABLE_PREFIX . 'Widgets
 							WHERE WidgetId = ' . $processed_params[$prefix . '_id'];
 					$ret[0] .= 'widgets/' . $this->Conn->GetOne($sql) . '/';
 				} elseif ($processed_params[$prefix . '_Page'] > 1) {
 					// add page, only when ID is missing
 					$ret[1] .= $processed_params[$prefix . '_Page'] . '/';
 				}
 
 				$ret[0] = rtrim($ret[0], '/');
 				$ret[1] = rtrim($ret[1], '/');
 
 				return array_map('mb_strtolower', $ret);
 			}
 
 			if ($rewrite_mode == REWRITE_MODE_PARSE) {
 				if ($url_parts[0] == 'widgets') {
 					$sql = 'SELECT WidgetId
 							FROM ' . TABLE_PREFIX . 'Widgets
 							WHERE Title = ' . $this->Conn->qstr($url_parts[1]);
 					$id = $this->Conn->GetOne($sql);
 					$to_parse = $url_parts;
 
 					if ($id > 0) {
 						// id found
 						$params[$prefix . '_id'] = $id;
 						$to_parse = array_slice($to_parse, 2); // cut off first two parts - "widgets/<widget+name>"
 					}
 
 					$template = implode('/', $to_parse);
 
 					if ($template) {
 						// let others guess what template is
 						return true;
 					}
 
 					// template missing -> set default
 					$params['t'] = 'widgets/widget_detail';
 					return false;
 				}
 			}
 
 			return true;
 		}
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/widgets/widget_tp.php
===================================================================
--- branches/1.0.x/custom/units/widgets/widget_tp.php	(revision 12300)
+++ branches/1.0.x/custom/units/widgets/widget_tp.php	(revision 12301)
@@ -1,20 +1,22 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Widgets Tag Processor (sample)
 	 *
 	 */
 	class WidgetTagProcessor extends kDBTagProcessor {
 
 		/**
 		 * Custom tag to output "Hello World!"
 		 *
 		 * @param Array $params
 		 * @return string
 		 */
 		function NewTag($params)
 		{
 			return 'Hello world!';
 		}
 
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/sections_config.php
===================================================================
--- branches/1.0.x/custom/units/sections/sections_config.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/sections_config.php	(revision 12301)
@@ -1,87 +1,88 @@
 <?php
 
 	/**
 	 * Custom-sections prefix
 	 *
 	 * @author dmitrya
 	 * @package Custom (Development Kit)
 	 */
 
-	$config	= Array (
+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' => 'e_user_tp.php'),
 //			Array ('pseudo' => 'u_EventHandler', 'class' => 'EUserEventHandler', 'file' => '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' => 'e_product_tp.php'),
 //			Array ('pseudo' => 'p_EventHandler', 'class' => 'EProductEventHandler', 'file' => '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' => 'e_link_tp.php'),
 //			Array ('pseudo' => 'l_EventHandler', 'class' => 'ELinkEventHandler', 'file' => 'e_link_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 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'			=>	'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.0.x/custom/units/sections/e_link_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_link_eh.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/e_link_eh.php	(revision 12301)
@@ -1,187 +1,188 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Extends default LinksEventHandler class
 	 *
 	 */
 	class ELinkEventHandler extends LinksEventHandler {
 
 		/**
 		 * Allows to override standart permission mapping
 		 *
 		 */
 		function mapPermissions()
 		{
 			parent::mapPermissions();
 
 			$permissions = Array (
 				# admin
 				'OnCustomEvent1' => Array ('self' => true),
 
 				# front
 				'OnCustomEvent2' => Array ('self' => true),
 			);
 
 			$this->permMapping = array_merge($this->permMapping, $permissions);
 		}
 
 		/**
 		 * Permission exceptions
 		 *
 		 * @param kEvent $event
 		 */
 		function CheckPermission(&$event)
 		{
 			$skip_permissions_check_events = Array (
 				'OnAnotherCustomEvent',
 			);
 
 			if ( in_array($event->Name, $skip_permissions_check_events) ) {
 				return true;
 			}
 
 			return parent::CheckPermission($event);
 		}
 
 		/**
 		 * Updates structure config
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterConfigRead(&$event)
 		{
 			parent::OnAfterConfigRead($event);
 
 			# 1. Regular Fields from
 			$fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields
 //			$fields['Status']['default'] = 1; #add/edit configuration (make default = 1)
 			$this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save fields
 
 			# 2. Virtual Fields from /in-link/units/links/links_config.php
 			$virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields
 //			$virtual_fields['UserName']['default'] = ''; #add/edit configuration
 			$this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields
 		}
 
 		/**
 		 * Sets custom query for the list
 		 *
 		 * @param kEvent $event
 		 */
 		function SetCustomQuery(&$event)
 		{
 			parent::SetCustomQuery($event);
 
 			$object =& $event->getObject();
 			/* @var $object kDBList */
 
 			# identifying event based on special and setting filter
 			if ( $event->Special == 'custom-special' ) {
 //				$object->addFilter('primary_filter', '%1$s.Status = ' . STATUS_DISABLED);
 			}
 
 			# identifying event based not admin condition and setting filter
 			if ( !$this->Application->IsAdmin() ) {
 //				$object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE);
 			}
 		}
 
 		/**
 		 * Before new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemCreate(&$event)
 		{
 			parent::OnBeforeItemCreate($event);
 
 
 		}
 
 		/**
 		 * Before existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemUpdate(&$event)
 		{
 			parent::OnBeforeItemUpdate($event);
 
 
 		}
 
 		/**
 		 * Before item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemDelete(&$event)
 		{
 			parent::OnBeforeItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemLoad(&$event)
 		{
 			parent::OnBeforeItemLoad($event);
 
 
 		}
 
 
 		/**
 		 * After new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemCreate(&$event)
 		{
 			parent::OnAfterItemCreate($event);
 
 
 		}
 
 		/**
 		 * After existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemUpdate(&$event)
 		{
 			parent::OnAfterItemUpdate($event);
 
 
 		}
 
 		/**
 		 * After item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemDelete(&$event)
 		{
 			parent::OnAfterItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemLoad(&$event)
 		{
 			parent::OnAfterItemLoad($event);
 
 
 		}
 
-
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_user_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_user_eh.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/e_user_eh.php	(revision 12301)
@@ -1,187 +1,188 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Extends default UsersEventHandler class
 	 *
 	 */
 	class EUserEventHandler extends UsersEventHandler {
 
 		/**
 		 * Allows to override standart permission mapping
 		 *
 		 */
 		function mapPermissions()
 		{
 			parent::mapPermissions();
 
 			$permissions = Array (
 				# admin
 				'OnCustomEvent1' =>	Array ('self' => true),
 
 				# front
 				'OnCustomEvent2' => Array ('self' => true),
 			);
 
 			$this->permMapping = array_merge($this->permMapping, $permissions);
 		}
 
 		/**
 		 * Permission exceptions
 		 *
 		 * @param kEvent $event
 		 */
 		function CheckPermission(&$event)
 		{
 			$skip_permissions_check_events = Array (
 				'OnAnotherCustomEvent',
 			);
 
 			if ( in_array($event->Name, $skip_permissions_check_events) ) {
 				return true;
 			}
 
 			return parent::CheckPermission($event);
 		}
 
 		/**
 		 * Updates structure config
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterConfigRead(&$event)
 		{
 			parent::OnAfterConfigRead($event);
 
 			# 1. Regular Fields from /core/units/users/users_config.php
 			$fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields
 //			$fields['Status']['default'] = 1; #add/edit configuration (make default = 1)
 			$this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save regular fields
 
 			# 2. Virtual Fields from /core/units/users/users_config.php
 			$virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields
 //			$virtual_fields['FullName']['default'] = ''; #add/edit configuration
 			$this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields
 		}
 
 		/**
 		 * Sets custom query for the list
 		 *
 		 * @param kEvent $event
 		 */
 		function SetCustomQuery(&$event)
 		{
 			parent::SetCustomQuery($event);
 
 			$object =& $event->getObject();
 			/* @var $object kDBList */
 
 			# identifying event based on special and setting filter
 			if ( $event->Special == 'custom-special' ) {
 //				$object->addFilter('primary_filter', '%1$s.Status = ' . STATUS_DISABLED);
 			}
 
 			# identifying event based not admin condition and setting filter
 			if ( !$this->Application->IsAdmin() ) {
 //				$object->addFilter('status_filter', '%1$s.Status = ' . STATUS_ACTIVE);
 			}
 		}
 
 		/**
 		 * Before new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemCreate(&$event)
 		{
 			parent::OnBeforeItemCreate($event);
 
 
 		}
 
 		/**
 		 * Before existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemUpdate(&$event)
 		{
 			parent::OnBeforeItemUpdate($event);
 
 
 		}
 
 		/**
 		 * Before item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemDelete(&$event)
 		{
 			parent::OnBeforeItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemLoad(&$event)
 		{
 			parent::OnBeforeItemLoad($event);
 
 
 		}
 
 
 		/**
 		 * After new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemCreate(&$event)
 		{
 			parent::OnAfterItemCreate($event);
 
 
 		}
 
 		/**
 		 * After existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemUpdate(&$event)
 		{
 			parent::OnAfterItemUpdate($event);
 
 
 		}
 
 		/**
 		 * After item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemDelete(&$event)
 		{
 			parent::OnAfterItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemLoad(&$event)
 		{
 			parent::OnAfterItemLoad($event);
 
 
 		}
 
-
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_product_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_product_eh.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/e_product_eh.php	(revision 12301)
@@ -1,188 +1,189 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Extends/overrides methods of default ProductsEventHandler class
 	 *
 	 */
 	class EProductEventHandler extends ProductsEventHandler {
 
 		/**
 		 * Allows to override standart permission mapping
 		 *
 		 */
 		function mapPermissions()
 		{
 			parent::mapPermissions();
 
 			$permissions = Array (
 				# admin
 				'OnCustomEvent1' => Array ('self' => true),
 
 				# front
 				'OnCustomEvent2' => Array ('self' => true),
 			);
 
 			$this->permMapping = array_merge($this->permMapping, $permissions);
 		}
 
 		/**
 		 * Permission exceptions
 		 *
 		 * @param kEvent $event
 		 */
 		function CheckPermission(&$event)
 		{
 			$skip_permissions_check_events = Array (
 				'OnAnotherCustomEvent',
 			);
 
 			if ( in_array($event->Name, $skip_permissions_check_events) ) {
 				return true;
 			}
 
 			return parent::CheckPermission($event);
 		}
 
 		/**
 		 * Updates structure config
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterConfigRead(&$event)
 		{
 			parent::OnAfterConfigRead($event);
 
 			# 1. Regular Fields from /in-commerce/units/products/products_config.php
 			$fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields
 //			$fields['Status']['default'] = 1; #add/edit field configuration (make default = 1)
 			$this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save regular fields
 
 
 			# 2. Virtual Fields from /in-commerce/units/products/products_config.php
 			$virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields
 //			$virtual_fields['Qty']['default'] = 1; #add/edit field configuration
 			$this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); # save virtual fields
 		}
 
 		/**
 		 * Sets custom query for the list
 		 *
 		 * @param kEvent $event
 		 */
 		function SetCustomQuery(&$event)
 		{
 			parent::SetCustomQuery($event);
 
 			$object =& $event->getObject();
 			/* @var $object kDBList */
 
 			# identifying event based on special and setting filter
 			if ( $event->Special == 'custom-special' ) {
 //				$object->addFilter('primary_filter', '%1$s.Status = '.STATUS_DISABLED);
 			}
 
 			# identifying event based not admin condition and setting filter
 			if ( !$this->Application->IsAdmin() ) {
 //				$object->addFilter('status_filter', '%1$s.Status = '.STATUS_ACTIVE);
 			}
 		}
 
 		/**
 		 * Before new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemCreate(&$event)
 		{
 			parent::OnBeforeItemCreate($event);
 
 
 		}
 
 		/**
 		 * Before existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemUpdate(&$event)
 		{
 			parent::OnBeforeItemUpdate($event);
 
 
 		}
 
 		/**
 		 * Before item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemDelete(&$event)
 		{
 			parent::OnBeforeItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnBeforeItemLoad(&$event)
 		{
 			parent::OnBeforeItemLoad($event);
 
 
 		}
 
 
 		/**
 		 * After new item created
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemCreate(&$event)
 		{
 			parent::OnAfterItemCreate($event);
 
 
 		}
 
 		/**
 		 * After existing item updated
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemUpdate(&$event)
 		{
 			parent::OnAfterItemUpdate($event);
 
 
 		}
 
 		/**
 		 * After item deleted
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemDelete(&$event)
 		{
 			parent::OnAfterItemDelete($event);
 
 
 		}
 
 		/**
 		 * After item loaded
 		 *
 		 * @param kEvent $event
 		 */
 		function OnAfterItemLoad(&$event)
 		{
 			parent::OnAfterItemLoad($event);
 
 
 		}
 
-
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_link_tp.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_link_tp.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/e_link_tp.php	(revision 12301)
@@ -1,55 +1,56 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Extends default LinkTagProcessor class
 	 *
 	 */
 	class ELinkTagProcessor extends LinkTagProcessor {
 
 		/**
 		 * Adding custom processing to existing Field method
 		 *
 		 * @param Array $params
 		 * @return string
 		 */
 		function FormattedField($params)
 		{
 			// get from parent
 			$o = parent::Field($params);
 
 			// do some custom stuff here
 			$o = trim($o);
 
 			return $o;
 		}
 
 		/**
 		 * Variantion of overriding Field method for Link
 		 *
 		 * @param Array $params
 		 * @return string
 		 */
 		function Field($params)
 		{
 			$object =& $this->getObject($params);
 			/* @var $object kDBItem */
 
 			$o = '';
 
 			// do some custom stuff here
 			if ( $object->isLoaded() ) {
 				$o = $object->GetField($this->SelectParam($params, 'name,field') ); #field Formatter applied
 
 //				$o = $object->GetDBField($this->SelectParam($params, 'name,field') ); #field Formatter NOT applied
 			}
 
 			// in case if no data found
 			if ($o != '') {
 				$this->Application->Parser->DataExists = true;
 			}
 
 			return $o;
 		}
 
-
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_user_tp.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_user_tp.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/e_user_tp.php	(revision 12301)
@@ -1,38 +1,38 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Extends default UsersTagProcessor class
 	 *
 	 */
 	class EUserTagProcessor extends UsersTagProcessor  {
 
 
 		/**
 		 * Returns formated user address
 		 *
 		 * @param Array
 		 * @return string
 		 */
 		function PrintFormattedUserAddress($param)
 		{
 			$object =& $event->getObject();
 			/* @var $object kDBItem */
 
 			$ret = '';
 			$newline = '<br/>';
 
 			if ($object->isLoaded()) {
 				$ret = $object->GetField('Street') ? $object->GetField('Street') . $newline : '';
 				$ret .= $object->GetField('Street2') ? $object->GetField('Street2') . $newline : '';
 				$ret .= $object->GetField('City') ? $object->GetField('City') . ', ' : '';
 				$ret .= $object->GetField('State') ? $object->GetField('State') . ' ' : '';
 				$ret .= $object->GetField('Zip') ? $object->GetField('Zip') . $newline : '';
 				$ret .= $object->GetField('Country');
 			}
 
 			return $ret;
 		}
 
-
-
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/custom_eh.php
===================================================================
--- branches/1.0.x/custom/units/sections/custom_eh.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/custom_eh.php	(revision 12301)
@@ -1,37 +1,39 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Custom event handler class
 	 *
 	 */
 	class CustomEventHandler extends kEventHandler {
 
 		/**
 		* Connection to database
 		*
 		* @var kDBConnection
 		* @access public
 		*/
 		var $Conn;
 
 		function CustomEventHandler()
 		{
 			parent::kEventHandler();
 			$this->Conn =& $this->Application->GetADODBConnection();
 		}
 
 		/**
 		 * [HOOK] Modify config stored in "categories_config.php" without extending CategoriesEventHandler class
 		 *
 		 * @param kEvent $event
 		 */
 		function OnModifyCategoriesConfig(&$event)
 		{
 			# get Fields configuration from /core/units/categories/categories_config.php
 			$fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Fields');
 
 			# set configuration fields
 			$this->Application->setUnitOption($event->MasterEvent->Prefix, 'Fields', $fields);
 		}
 
 	}
\ No newline at end of file
Index: branches/1.0.x/custom/units/sections/e_product_tp.php
===================================================================
--- branches/1.0.x/custom/units/sections/e_product_tp.php	(revision 12300)
+++ branches/1.0.x/custom/units/sections/e_product_tp.php	(revision 12301)
@@ -1,26 +1,28 @@
 <?php
 
+	defined('FULL_PATH') or die('restricted access!');
+
 	/**
 	 * Extends/overrides methods of default ProductsTagProcessor class
 	 *
 	 */
 	class EProductTagProcessor extends ProductsTagProcessor {
 
 
 		/**
 		 * Adding custom processing to existing Field method
 		 *
 		 * @param Array $params
 		 * @return string
 		 */
 		function Field($params)
 		{
 			$o = parent::Field($params);
 
 			// do some custom stuff here
 			$o = trim($o);
 
 			return $o;
 		}
 
 	}
\ No newline at end of file