Index: branches/5.2.x/units/links/links_config.php
===================================================================
--- branches/5.2.x/units/links/links_config.php	(revision 15468)
+++ branches/5.2.x/units/links/links_config.php	(revision 15469)
@@ -1,653 +1,653 @@
 <?php
 /**
 * @version	$Id$
 * @package	In-Link
 * @copyright	Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
 * @license      GNU/GPL
 * In-Portal is Open Source software.
 * This means that this software may have been modified pursuant
 * the GNU General Public License, and as distributed it includes
 * or is derivative of works licensed under the GNU General Public License
 * or other free or open source software licenses.
 * See http://www.in-portal.org/license for copyright notices and details.
 */
 
 	defined('FULL_PATH') or die('restricted access!');
 
 	$config =	Array (
 					'Prefix'			=>	'l',
 					'ItemClass'			=>	Array ('class' => 'kCatDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
 					'ListClass'			=>	Array ('class' => 'kCatDBList', 'file' => '', 'build_event' => 'OnListBuild'),
 					'EventHandlerClass'	=>	Array ('class' => 'LinksEventHandler', 'file' => 'links_event_handler.php', 'build_event' => 'OnBuild'),
 					'TagProcessorClass' =>	Array ('class' => 'LinkTagProcessor', 'file' => 'link_tag_processor.php', 'build_event' => 'OnBuild'),
 					'AutoLoad'			=>	true,
 
 					'ConfigPriority' => 0,
 
 					'RewritePriority' => 101,
 					'RewriteListener' => 'CategoryItemRewrite:RewriteListener',
 
 					'Hooks' => Array (
 						Array (
 							'Mode' => hBEFORE,
 							'Conditional' => false,
 							'HookToPrefix' => '',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => 'cdata',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnDefineCustomFields',
 						),
 
 						Array (
 							'Mode' => hBEFORE,
 							'Conditional' => false,
 							'HookToPrefix' => '#file',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => '',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnCloneSubItem',
 						),
 
 						Array (
 							'Mode' => hBEFORE,
 							'Conditional' => false,
 							'HookToPrefix' => 'rev',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => '',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnCloneSubItem',
 						),
 
 						Array (
 							'Mode' => hBEFORE,
 							'Conditional' => false,
 							'HookToPrefix' => 'fav',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => '',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnCloneSubItem',
 						),
 
 						Array (
 							'Mode' => hBEFORE,
 							'Conditional' => false,
 							'HookToPrefix' => 'rel',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => '',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnCloneSubItem',
 						),
 
 						Array (
 							'Mode' => hBEFORE,
 							'Conditional' => false,
 							'HookToPrefix' => 'img',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => '',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnCloneSubItem',
 						),
 
 						Array (
 							'Mode' => hBEFORE,
 							'Conditional' => false,
 							'HookToPrefix' => 'ci',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => '',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnCloneSubItem',
 						),
 
 						Array (
 							'Mode' => hAFTER,
 							'Conditional' => false,
 							'HookToPrefix' => '',
 							'HookToSpecial' => '*',
 							'HookToEvent' => Array ('OnAfterConfigRead'),
 							'DoPrefix' => 'captcha',
 							'DoSpecial' => '*',
 							'DoEvent' => 'OnPrepareCaptcha',
 						),
 					),
 
 					'QueryString'		=>	Array (
 												1	=>	'id',
 												2	=>	'Page',
 												3	=>	'PerPage',
 												4	=>	'event',
 												5	=>	'mode',
 											),
 
 					'AggregateTags' => Array (
 						Array (
 							'AggregateTo' => 'l',
 							'AggregatedTagName' => 'ListLinks',
 							'LocalTagName' => 'PrintList2',
 						),
 					),
 
 					'CatalogItem'			=>	true,
 					'AdminTemplatePath'		=>	'links',
 					'AdminTemplatePrefix'	=>	'links_',
 					'SearchConfigPostfix' 	=>	'links',
 
    					'IDField'			=>	'LinkId',
    					'StatusField'		=>	Array ('Status'),	// field, that is affected by Approve/Decline events
 
    					'ItemType'			=>	4,
 
    					'StatisticsInfo'	=>	Array (
 													'pending'	=>	Array (
 																			'icon'		=>	'icon16_link_pending.png',
 																			'label'		=>	'la_Text_Links',
 																			'js_url' 	=>	'#url#',
 																			'url'		=>	Array ('t' => 'catalog/advanced_view', 'SetTab' => 'l', 'pass' => 'm,l.showall', 'l.showall_event' => 'OnSetFilterPattern', 'l.showall_filters' => 'show_active=0,show_pending=1,show_disabled=0,show_new=1,show_hot=1,show_pop=1,show_pick=1'),
 																			'status'	=>	STATUS_PENDING,
 																	),
 											),
 
    					'TitlePhrase'		=>	'la_Text_Link',	// phrase used to specify item type in relationship list
 
    					'ViewMenuPhrase'	=>	'la_title_Links',
    					'CatalogTabIcon' => 'in-link:icon16_links.png',
    					'UsePendingEditing'	=>	true, // item editing is controlled by LINK.ADD/EDIT, LINK.ADD/EDIT.PENDING permissions
 
    					'CatalogSelectorName'	=>	'linklist', // used in old catalog section
 
    					'ItemPropertyMappings'	=>	Array (
 													'NewDays'		=>	'Link_NewDays',		// number of days item to be NEW
 													'MinPopVotes'	=>	'Link_MinPopVotes',	// minimum number of votes for an item to be POP
 													'MinPopRating'	=>	'Link_MinPopRating',	// minimum rating for an item to be POP
 													'MaxHotNumber'	=>	'Link_MaxHotNumber',	// maximum number of HOT items
 
 													'HotLimit'		=>	'Link_HotLimit',	// variable name in inp_Cache table
 													'ClickField'	=>	'Hits',				// item click count is stored here (in item table)
 												),
 
    					'TitleField'		=>	'Name',
 
    					'TitlePresets'		=>	Array (
 												'default' => Array (
 													'new_status_labels'	=> Array ('l' => '!la_title_AddingLink!'),
 													'edit_status_labels' => Array ('l' => '!la_title_EditingLink!'),
 													'new_titlefield' => Array ('l' => '!la_title_NewLink!'),
 													),
 
 												'links_edit' => Array (
 													'prefixes' => Array ('l'), 'format' => "#l_status# '#l_titlefield#' - !la_title_General!",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'),
 													),
 
 												'link_list' => Array (
 													'prefixes' => Array ('c_List', 'l_List'),
 													'format' =>	"!la_title_Categories! (#c_recordcount#) - !la_title_Links!",
 													'toolbar_buttons' => Array (),
 													),
 
 												'links_categories' => Array (
 													'prefixes' => Array ('l', 'l-ci_List'), 'format' => "#l_status# '#l_titlefield#' - !la_title_Categories!",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_item', 'delete', 'setprimary',),
 													),
 
 												'links_relations' => Array (
 													'prefixes' => Array ('l'), 'format' => "#l_status# '#l_titlefield#' - !la_title_Relations!",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_item', 'edit', 'delete', 'approve', 'decline', 'view', 'dbl-click'),
 													),
 
 												'links_images' => Array (
 													'prefixes' => Array ('l'), 'format' => "#l_status# '#l_titlefield#' - !la_title_Images!",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_item', 'edit', 'delete', 'move_up', 'move_down', 'setprimary', 'view', 'dbl-click'),
 													),
 
 												'links_files' => Array (
 													'prefixes' => Array ('l'), 'format' => "#l_status# '#l_titlefield#' - !la_title_Files!",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_item', 'edit', 'delete', 'view', 'dbl-click'),
 													),
 
 												'links_reviews'	=> Array (
 													'prefixes' => Array ('l'), 'format' => "#l_status# '#l_titlefield#' - !la_title_Reviews!",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next', 'new_item', 'edit', 'delete', 'approve', 'decline', 'move_up', 'move_down', 'view', 'dbl-click'),
 													),
 
 												'links_custom' => Array (
 													'prefixes' => Array ('l'), 'format' => "#l_status# '#l_titlefield#' - !la_title_Custom!",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'),
 													),
 
 												'images_edit' => Array (
 													'prefixes' => Array ('l', 'l-img'),
 													'new_status_labels'		=>	Array ('l-img' => '!la_title_Adding_Image!'),
 													'edit_status_labels'	=>	Array ('l-img' => '!la_title_Editing_Image!'),
 													'new_titlefield'		=>	Array ('l-img' => '!la_title_New_Image!'),
 													'format'				=>	"#l_status# '#l_titlefield#' - #l-img_status# '#l-img_titlefield#'",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'),
 													),
 
 												'file_edit' => Array (
 													'prefixes' => Array ('l', 'l-file'),
 													'new_status_labels' => Array ('l-file' => "!la_title_AddingFile!"),
 													'edit_status_labels' => Array ('l-file' => '!la_title_EditingFile!'),
 													'new_titlefield' => Array ('l-file' => '!la_title_NewFile!'),
 													'format' => "#l_status# '#l_titlefield#' - #l-file_status# '#l-file_titlefield#'",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'),
 													),
 
 												'reviews_edit' => Array (
 													'prefixes' => Array ('l', 'l-rev'),
 													'new_status_labels'	=>	Array ('l-rev' =>"!la_title_Adding_Review! '!la_title_New_Review!'"),
 													'edit_status_labels' =>	Array ('l-rev' => '!la_title_Editing_Review!'),
 													'format' =>	"#l_status# '#l_titlefield#' - #l-rev_status#",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'),
 													),
 
 												'relations_edit' =>	Array (
 													'prefixes' => Array ('l', 'l-rel'),
 													'new_status_labels' => Array ('l-rel' =>"!la_title_Adding_Relationship! '!la_title_New_Relationship!'"),
 													'edit_status_labels' =>	Array ('l-rel' => '!la_title_Editing_Relationship!'),
 													'format' =>	"#l_status# '#l_titlefield#' - #l-rel_status#",
 													'toolbar_buttons' => Array ('select', 'cancel', 'prev', 'next'),
 													),
 
 												'links_export' => Array ('format' => '!la_title_LinksExport!'),
 
 												'links_import' => Array ('format' => '!la_title_ImportLinks!'),
 
 												'duplicate_links' => Array (
 													'prefixes' => Array ('l.duplicates_List'), 'format' => "!la_title_DuplicateLinks! - %s",
 													'toolbar_buttons' => Array ('edit', 'view', 'dbl-click'),
 													),
 
 												'duplicate_links_view' => Array (
 													'prefixes' => Array ('l.duplicates-sub_List'), 'format' => "!la_title_Links!",
 													'toolbar_buttons' => Array ('cancel', 'edit', 'delete', 'merge_links', 'view', 'dbl-click'),
 													),
 
 												'tree_in-link' => Array ('format' => '!la_Text_Version! '.$this->Application->findModule('Name', 'In-Link', 'Version')),
 											),
 
 					'EditTabPresets' => Array (
    						'Default' => Array (
 							'general' => Array ('title' => 'la_tab_General', 't' => 'in-link/links/links_edit', 'priority' => 1),
 							'categories' => Array ('title' => 'la_tab_Categories', 't' => 'in-link/links/links_categories', 'priority' => 2),
 							'relations' => Array ('title' => 'la_tab_Relations', 't' => 'in-link/links/links_relations', 'priority' => 3),
 							'images' => Array ('title' => 'la_tab_Images', 't' => 'in-link/links/links_images', 'priority' => 4),
 							'files' => Array ('title' => 'la_tab_Files', 't' => 'in-link/links/links_files', 'priority' => 5),
 							'reviews' => Array ('title' => 'la_tab_Reviews', 't' => 'in-link/links/links_reviews', 'priority' => 6),
 							'custom' => Array ('title' => 'la_tab_Custom', 't' => 'in-link/links/links_custom', 'priority' => 7),
    						),
    					),
 
 					'PermItemPrefix'	=>	'LINK',
 
 					'PermTabText'		=>	'In-Link',
 					'PermSection'		=>	Array ('main' => 'CATEGORY:in-link:links_list', 'search' => 'in-link:configuration_search', 'custom' => 'in-link:configuration_custom'),
 
 					'Sections'			=>	Array (
 						'in-link'	=>	Array (
 							'parent'		=>	'in-portal:root',
 							'icon'			=>	'settings_in-link',
 							'label'			=>	'la_title_In-Link',
 							'url'			=>	Array ('t' => 'index', 'pass_section' => true, 'pass' => 'm'),
 							'permissions'	=>	Array ('view'),
 							'priority'		=>	2.3,
 							'container'		=>	true,
 							'type'			=>	stTREE,
 						),
 
 						'in-link:links'	=>	Array (
 							'parent'		=>	'in-portal:site',
 							'icon'			=>	'links',
 							'label'			=>	'la_tab_Links',
 							'url'			=>	Array ('t' => 'catalog/advanced_view', 'anchor' => 'tab-l.showall', 'pass' => 'm'),
 							'onclick'		=>	'setCatalogTab(\'l.showall\')',
 							'permissions'	=>	Array ('view'),
 							'priority'		=>	3.1,
 							'type'			=>	stTREE,
 						),
 
 						'in-link:duplicate_checker'	=>	Array (
 							'parent'		=>	'in-link',
 							'icon'			=>	'duplicate_checker',
 							'label'			=>	'la_tab_DuplicateChecker',
 							'url'			=>	Array ('t' => 'in-link/duplicate_checker', 'pass' => 'm'),
 							'permissions'	=>	Array ('view', 'add', 'edit', 'delete'),
 							'priority'		=>	2,
 							'type'			=>	stTREE,
 						),
 
 						// link settings
 						'in-link:setting_folder' => Array (
 							'parent'		=>	'in-portal:system',
 							'icon'			=>	'conf_directory',
 							'label'			=>	'la_title_In-Link',
 							'use_parent_header' => 1,
 							'url'			=>	Array ('t' => 'index', 'pass_section' => true, 'pass' => 'm'),
 							'permissions'	=>	Array ('view'),
 							'priority'		=>	3.3,
 							'container'		=>	true,
 							'type'			=>	stTREE,
 						),
 
 						/*'in-link:inlink_general'	=>	Array (
 							'parent'		=>	'in-link:setting_folder',
 							'icon'			=>	'core:settings_general',
 							'label'			=>	'la_tab_GeneralSettings',
 							'url'			=>	Array ('t' => 'config/config_general', 'pass_section' => true, 'pass' => 'm'),
-							'permissions'	=>	Array ('view', 'edit'),
+							'permissions'	=>	Array ('view', 'add', 'edit'),
 							'priority'		=>	0.9,
 							'type'			=>	stTREE,
 						),*/
 
 						'in-link:configuration_output'	=>	Array (
 							'parent'		=>	'in-link:setting_folder',
 							'icon'			=>	'core:conf_output',
 							'label'			=>	'la_tab_ConfigOutput',
 							'url'			=>	Array ('t' => 'config/config_general', 'pass_section' => true, 'pass' => 'm'),
-							'permissions'	=>	Array ('view', 'edit'),
+							'permissions'	=>	Array ('view', 'add', 'edit'),
 							'priority'		=>	1,
 							'type'			=>	stTREE,
 						),
 
 						'in-link:configuration_search'	=>	Array (
 							'parent'		=>	'in-link:setting_folder',
 							'icon'			=>	'core:conf_search',
 							'label'			=>	'la_tab_ConfigSearch',
 							'url'			=>	Array ('t' => 'config/config_search', 'module_key' => 'links', 'pass_section' => true, 'pass' => 'm'),
 							'permissions'	=>	Array ('view', 'edit'),
 							'priority'		=>	2,
 							'type'			=>	stTREE,
 						),
 
 						'in-link:configuration_custom'	=>	Array (
 							'parent'		=>	'in-link:setting_folder',
 							'icon'			=>	'core:conf_customfields',
 							'label'			=>	'la_tab_ConfigCustom',
 							'url'			=>	Array ('t' => 'custom_fields/custom_fields_list', 'cf_type' => 4, 'pass_section' => true, 'pass' => 'm,cf'),
 							'permissions'	=>	Array ('view', 'add', 'edit', 'delete'),
 							'priority'		=>	3,
 							'type'			=>	stTREE,
 						),
 					),
 
 					'FilterMenu'		=>	Array (
 						'Groups' => Array (
 							Array ('mode' => 'AND', 'filters' => Array ('show_new'), 'type' => kDBList::HAVING_FILTER),
 							Array ('mode' => 'AND', 'filters' => Array ('show_hot'), 'type' => kDBList::HAVING_FILTER),
 							Array ('mode' => 'AND', 'filters' => Array ('show_pop'), 'type' => kDBList::HAVING_FILTER),
 							Array ('mode' => 'AND', 'filters' => Array ('show_pick'), 'type' => kDBList::WHERE_FILTER),
 						),
 						'Filters' => Array (
 							'show_new'	=>	Array ('label' => 'la_Text_New', 'on_sql' => '', 'off_sql' => '`IsNew` != 1'  ),
 							'show_hot'	=>	Array ('label' => 'la_Text_Hot', 'on_sql' => '', 'off_sql' => '`IsHot` != 1'  ),
 							'show_pop'	=>	Array ('label' => 'la_Text_Pop', 'on_sql' => '', 'off_sql' => '`IsPop` != 1'  ),
 							'show_pick'	=>	Array ('label' => 'la_prompt_EditorsPick', 'on_sql' => '', 'off_sql' => '%1$s.`EditorsPick` != 1'  ),
 						),
 					),
 
 					'TableName'			=>	TABLE_PREFIX.'Link',
 					'CustomDataTableName' => TABLE_PREFIX . 'LinkCustomData',
 
 					'CalculatedFields' => Array (
 						'' => Array (
 							'UserName' => 'IF (ISNULL(u.Username), IF (%1$s.CreatedById = ' . USER_ROOT . ', "root", IF (%1$s.CreatedById = ' . USER_GUEST . ', "Guest", "n/a")), u.Username)',
 							'CategoryId' => TABLE_PREFIX.'%3$sCategoryItems.CategoryId',
 							'Filename' => TABLE_PREFIX.'%3$sCategoryItems.Filename',
 							'CategoryFilename' => TABLE_PREFIX.'Categories.NamedParentPath',
 							'PrimaryCat'	=> TABLE_PREFIX.'%3$sCategoryItems.PrimaryCat',
 							'ParentPath' => TABLE_PREFIX.'Categories.ParentPath',
 
 							'AltName'		=>	'img.AltName',
 							'SameImages'	=>	'img.SameImages',
 							'LocalThumb'	=>	'img.LocalThumb',
 							'ThumbPath'		=>	'img.ThumbPath',
 							'ThumbUrl'		=>	'img.ThumbUrl',
 							'LocalImage'	=>	'img.LocalImage',
 							'LocalPath'		=>	'img.LocalPath',
 							'FullUrl'		=>	'img.Url',
 						),
 					),
 
 					'CacheModRewrite' => true,
 
 					'AggregatedCalculatedFields' => Array (
 
 												'duplicates'	=>	Array (
 																		'DupeCount'	=>	'COUNT(*)',
 																	),
 										),
 
 					'ListSQLs'			=>	Array (	'' => '	SELECT %1$s.* %2$s
 															FROM %1$s
 															LEFT JOIN '.TABLE_PREFIX.'%3$sCategoryItems ON '.TABLE_PREFIX.'%3$sCategoryItems.ItemResourceId = %1$s.ResourceId
 															LEFT JOIN '.TABLE_PREFIX.'Categories ON '.TABLE_PREFIX.'Categories.CategoryId = '.TABLE_PREFIX.'%3$sCategoryItems.CategoryId
 															LEFT JOIN '.TABLE_PREFIX.'%3$sCatalogImages img ON img.ResourceId = %1$s.ResourceId AND img.DefaultImg = 1
 															LEFT JOIN '.TABLE_PREFIX.'CategoryPermissionsCache perm ON perm.CategoryId = '.TABLE_PREFIX.'%3$sCategoryItems.CategoryId
 															LEFT JOIN '.TABLE_PREFIX.'Users u ON %1$s.CreatedById = u.PortalUserId
 															LEFT JOIN '.TABLE_PREFIX.'%3$sLinkCustomData cust ON %1$s.ResourceId = cust.ResourceId',
 
 											), // key - special, value - list select sql
 
 					'ListSortings'	=> 	Array (
 												'' => Array (
 															'ForcedSorting' => Array ('EditorsPick' => 'desc', 'Priority' => 'desc'),
 															'Sorting' => Array ('Name' => 'asc', 'Description' => 'desc'),
 														)
 										),
 					'ItemSQLs'			=>	Array (	'' => '	SELECT %1$s.* %2$s
 															FROM %1$s
 															LEFT JOIN '.TABLE_PREFIX.'%3$sCategoryItems ON '.TABLE_PREFIX.'%3$sCategoryItems.ItemResourceId = %1$s.ResourceId
 															LEFT JOIN '.TABLE_PREFIX.'Categories ON '.TABLE_PREFIX.'Categories.CategoryId = '.TABLE_PREFIX.'%3$sCategoryItems.CategoryId
 															LEFT JOIN '.TABLE_PREFIX.'%3$sCatalogImages img ON img.ResourceId = %1$s.ResourceId AND img.DefaultImg = 1
 															LEFT JOIN '.TABLE_PREFIX.'Users u ON %1$s.CreatedById = u.PortalUserId
 															LEFT JOIN '.TABLE_PREFIX.'%3$sLinkCustomData cust ON %1$s.ResourceId = cust.ResourceId'),
 
 					'SubItems'			=>	Array ('l-rev', 'l-ci', 'l-rel', 'l-img', 'l-cdata', 'l-fav', 'l-file'),
 
 					'Fields' => Array (
 			            'LinkId'			=>	Array ('type' => 'int', 'not_null' => 1, 'default' => 0,),
 			            'Name'				=>	Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'not_null' => 1, 'required' => 1, 'max_len' => 255, 'default' => ''),
 						'AutomaticFilename' =>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 1),
 			            'Description'		=>	Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'using_fck' => 1, 'default' => null),
 			            'Url'				=>	Array ('type' => 'string', 'not_null' => 1, 'required' => 1, 'default' => ''),
 			            'CreatedOn'			=>	Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'),
 			            'Modified'			=>	Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'),
 			            'Expire'			=>	Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => null),
 			            'Hits'				=>	Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%d', 'not_null' => 1, 'default' => 0),
 			            'CachedRating'		=>	Array ('type' => 'string', 'not_null' => 1, 'formatter' => 'kFormatter', 'default' => 0),
 			            'CachedVotesQty'	=>	Array ('type' => 'int', 'formatter' => 'kFormatter', 'not_null' => 1, 'default' => 0),
 			            'CachedReviewsQty'	=>	Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
 			            'CreatedById' => Array (
 			            	'type' => 'int',
 			            	'formatter' => 'kLEFTFormatter',
 			            	'options' => Array (USER_ROOT => 'root', USER_GUEST => 'Guest'),
 			            	'left_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'Users
 			            					WHERE `%s` = \'%s\'',
 			            	'left_key_field' => 'PortalUserId',
 			            	'left_title_field' => 'Username',
 							'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!'),
 			            	'sample_value' => 'Guest', 'required' => 1, 'default' => NULL,
 						),
 			            'ModifiedById'		=>	Array ('type' => 'int', 'formatter' => 'kLEFTFormatter', 'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!'), 'options' => Array (USER_ROOT => 'root', USER_GUEST => 'Guest'), 'left_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Users WHERE `%s` = \'%s\'', 'left_key_field' => 'PortalUserId', 'left_title_field' => 'Username', 'default' => NULL),
 			            'Priority'			=>	Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
 			            'Status'			=>	Array (
 			            	'type' => 'int',
 			            	'formatter' => 'kOptionsFormatter',
 			            	'options' => Array (1 => 'la_Active', 2 => 'la_Pending', 0 => 'la_Disabled'), 'use_phrases' => 1,
 			            	'not_null' => 1, 'default' => 2,
 						),
 			            'EditorsPick'		=>	Array (
 			            	'type' => 'int',
 			            	'formatter' => 'kOptionsFormatter',
 			            	'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1,
 			            	'not_null' => 1, 'default' => 0,
 						),
 			            'ResourceId'		=>	Array ('type' => 'int', 'default' => null),
 						'HotItem'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (2 => 'la_Auto', 1 => 'la_Always', 0 => 'la_Never'), 'use_phrases' => 1,  'not_null' => 1, 'default' => 2),
 						'PopItem'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (2 => 'la_Auto', 1 => 'la_Always', 0 => 'la_Never'), 'use_phrases' => 1,  'not_null' => 1, 'default' => 2),
 						'NewItem'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (2 => 'la_Auto', 1 => 'la_Always', 0 => 'la_Never'), 'use_phrases' => 1,  'not_null' => 1, 'default' => 2),
 			            'OrgId'				=>	Array ('type' => 'int', 'default' => null),
 			            'CustomTemplate'	=>	Array ('type' => 'string', 'not_null' => 1, 'default' => ''),
 			            'MetaKeywords'			=>	Array ('type' => 'string', 'default' => null),
 						'MetaDescription'		=>	Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null),
 						'ReciprocalLinkFound' => Array (
 							'type' => 'int',
 							'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_NotChecked', 1 => 'la_Yes', 2 => 'la_No'), 'use_phrases' => 1,
 							'not_null' => 1, 'default' => 0
 						),
 		        	),
 
 					'VirtualFields'	=> 	Array (
 						'Relevance'		=>	Array ('type' => 'float', 'default' => 0),
 						'UserName'		=>	Array ('type' => 'string', 'default' => ''),
 						'DupeCount'		=>	Array ('type' => 'string', 'default' => ''),
 
 						'ListingTypeId'	=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %1$s FROM '.TABLE_PREFIX.'ListingTypes ORDER BY Name', 'option_title_field' => 'Name', 'option_key_field' => 'ListingTypeId', 'default' => 0),
 
 						'MoreCategories' => Array ('type' => 'string', 'default' => ''),
 
 						// export related fields: begin
 						'CategoryId'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'default' => 0),
 						'ExportFormat'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'CSV', /*2 => 'XML'*/), 'default' => 1),
 						'ExportFilename'		=>	Array ('type' => 'string', 'default' => ''),
 						'FieldsSeparatedBy'		=>	Array ('type' => 'string', 'default' => ','),
 						'FieldsEnclosedBy'		=>	Array ('type' => 'string', 'default' => '"'),
 						'LineEndings'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'Windows', 2 => 'UNIX'), 'default' => 1),
 						'LineEndingsInside'		=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'CRLF', 2 => 'LF'), 'default' => 2),
 						'IncludeFieldTitles'	=>	Array (
 					    	'type' => 'int',
 					    	'formatter' => 'kOptionsFormatter',
 					    	'options' => Array (0 => 'la_No', 1 => 'la_Yes'),
 					    	'use_phrases' => 1, 'default' => 1,
 						),
 						'ExportColumns'			=>	Array ('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'default' => ''),
 						'AvailableColumns'		=>	Array ('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'default' => ''),
 						'CategoryFormat'		=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_MixedCategoryPath', 2 => 'la_SeparatedCategoryPath'), 'use_phrases' => 1, 'default' => 1),
 						'CategorySeparator'		=>	Array ('type' => 'string', 'error_field' => 'CategoryFormat', 'default' => ':'),
 						'IsBaseCategory'		=>	Array (
 					    	'type' => 'int',
 					    	'formatter' => 'kOptionsFormatter',
 					    	'options' => Array (0 => 'la_No', 1 => 'la_Yes'),
 					    	'use_phrases' => 1, 'default' => 0,
 						),
 						// export related fields: end
 
 						// import related fields: begin
 						'FieldTitles'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Automatic', 2 => 'la_Manual'), 'use_phrases' => 1, 'default' => 1),
 						'ImportSource'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Upload', 2 => 'la_Local'), 'use_phrases' => 1, 'default' => 2),
 						'ImportFilename'		=>	Array ('type' => 'string', 'formatter' => 'kUploadFormatter', 'max_size' => MAX_UPLOAD_SIZE, 'upload_dir' => EXPORT_BASE_PATH . '/', 'default' => ''),
 						'ImportLocalFilename'	=>	Array ('type' => 'string', 'formatter' => 'kOptionsFormatter', 'default' => ''),
 						'CheckDuplicatesMethod'	=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_IDField', 2 => 'la_OtherFields'), 'use_phrases' => 1, 'default' => 1),
 						'ReplaceDuplicates'		=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'default' => 0),
 						'DuplicateCheckFields'	=>	Array ('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array ('Name' => 'NAME', 'Url' => 'URL'), 'default' => '|Name|Url|'),
 						'SkipFirstRow'			=>	Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'default' => 1),
 						// import related fields: end
 
 						'ThumbnailImage'		=>	Array ('type' => 'string', 'default' => ''),
 						'FullImage'				=>	Array ('type' => 'string', 'default' => ''),
 						'ImageAlt'				=>	Array ('type' => 'string', 'default' => ''),
 
 						'Filename'				=>	Array ('type' => 'string', 'default' => ''),
 						'CategoryFilename'		=>	Array ('type' => 'string', 'default' => ''),
 						'PrimaryCat'			=>	Array ('type' => 'int', 'default' => 0),
 						'IsHot'					=>	Array ('type' => 'int', 'default' => 0),
 						'IsNew'					=>	Array ('type' => 'int', 'default' => 0),
 						'IsPop'					=>	Array ('type' => 'int', 'default' => 0),
 						'CachedNavbar'			=>	Array ('type' => 'string', 'default' => ''),
 						'ParentPath'			=>	Array ('type' => 'string', 'default' => ''),
 
 						// for primary image
 						'AltName'		=>	Array ('type' => 'string', 'default' => ''),
 						'SameImages'	=>	Array ('type' => 'string', 'default' => ''),
 						'LocalThumb'	=>	Array ('type' => 'string', 'default' => ''),
 						'ThumbPath'		=>	Array ('type' => 'string', 'default' => ''),
 						'ThumbUrl'		=>	Array ('type' => 'string', 'default' => ''),
 						'LocalImage'	=>	Array ('type' => 'string', 'default' => ''),
 						'LocalPath'		=>	Array ('type' => 'string', 'default' => ''),
 						'FullUrl'		=>	Array ('type' => 'string', 'default' => ''),
 					),
 
 					'Grids' => Array (
 						'Default' => Array (
 							'Icons' => Array (
 								0 => 'icon16_link_disabled.png',
 								1 => 'icon16_link.png',
 								2 => 'icon16_link_pending.png',
 								'NEW' => 'icon16_link_new.png',
 							),
 							'Fields' => Array (
 								'LinkId' => Array ('title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60, ),
 								'Name' => Array ('title' => 'column:la_fld_LinkName', 'data_block' => 'grid_catitem_td', 'width' => 200, ),
 								'Priority' => Array('filter_block' => 'grid_range_filter', 'width' => 65),
 								'Url' => Array ('title' => 'la_col_LinkUrl', 'width' => 200, ),
 								'Description' => Array ('first_chars' => 100, 'width' => 100, ),
 								'CreatedOn' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ),
 								'Modified' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ),
 								'Status' => Array ('filter_block' => 'grid_options_filter', 'width' => 70, ),
 								'Hits' => Array ('filter_block' => 'grid_range_filter', 'width' => 60, ),
 								'CachedRating' => Array ('title' => 'column:la_fld_Rating', 'filter_block' => 'grid_range_filter', 'width' => 70, ),
 								'CachedVotesQty' => Array ('title' => 'la_col_VoteCount', 'filter_block' => 'grid_range_filter', 'width' => 70, ),
 								'CachedReviewsQty' => Array ('title' => 'la_col_ReviewCount', 'filter_block' => 'grid_range_filter', 'width' => 85, ),
 							),
 						),
 
 						'Radio' => Array (
 							'Icons' => Array (
 								0 => 'icon16_link_disabled.png',
 								1 => 'icon16_link.png',
 								2 => 'icon16_link_pending.png',
 								'NEW' => 'icon16_link_new.png',
 							),
 							'Selector' => 'radio',
 							'Fields' => Array (
 								'LinkId' => Array ('title' => 'column:la_fld_Id', 'data_block' => 'grid_radio_td', 'filter_block' => 'grid_range_filter', 'width' => 70, ),
 								'Name' => Array ('title' => 'column:la_fld_LinkName', 'data_block' => 'grid_catitem_td', 'width' => 200, ),
 								'Priority' => Array('filter_block' => 'grid_range_filter', 'width' => 65),
 								'Url' => Array ('title' => 'la_col_LinkUrl', 'width' => 200, ),
 								'Description' => Array ('first_chars' => 100, 'width' => 100, ),
 								'CreatedOn' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ),
 								'Modified' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ),
 								'Status' => Array ('filter_block' => 'grid_options_filter', 'width' => 70, ),
 								'Hits' => Array ('filter_block' => 'grid_range_filter', 'width' => 60, ),
 								'CachedRating' => Array ('title' => 'column:la_fld_Rating', 'filter_block' => 'grid_range_filter', 'width' => 70, ),
 								'CachedVotesQty' => Array ('title' => 'la_col_VoteCount', 'filter_block' => 'grid_range_filter', 'width' => 70, ),
 								'CachedReviewsQty' => Array ('title' => 'la_col_ReviewCount', 'filter_block' => 'grid_range_filter', 'width' => 85, ),
 							),
 						),
 
 						'Duplicates' => Array (
 							'Icons' => Array (
 								0 => 'icon16_link_disabled.png',
 								1 => 'icon16_link.png',
 								2 => 'icon16_link_pending.png',
 								'NEW' => 'icon16_link_new.png',
 							),
 
 							'Fields' => Array (
 								'Name' => Array ('title' => 'column:la_fld_LinkName', 'filter_block' => 'grid_like_filter', 'width' => 250, ),
 								'Url' => Array ('title' => 'la_col_LinkUrl', 'filter_block' => 'grid_like_filter', 'width' => 300, ),
 								'DupeCount' => Array ('title' => 'la_col_DupeCount', 'filter_block' => 'grid_range_filter', 'width' => 100, ),
 							),
 						),
 					),
 
 					'ConfigMapping' => 	Array (
 												'PerPage'				=>	'Perpage_Links',
 												'ShortListPerPage'		=>	'Perpage_Links_Short',
 												'ForceEditorPick'		=>	'Link_ShowPick',
 												'DefaultSorting1Field'	=>	'Link_SortField',
 												'DefaultSorting2Field'	=>	'Link_SortField2',
 												'DefaultSorting1Dir'	=>	'Link_SortOrder',
 												'DefaultSorting2Dir'	=>	'Link_SortOrder2',
 
 												'RatingDelayValue'		=>	'link_RatingDelay_Value',
 												'RatingDelayInterval'	=>	'link_RatingDelay_Interval',
 
 										),
 	);
\ No newline at end of file
Index: branches/5.2.x/install/upgrades.php
===================================================================
--- branches/5.2.x/install/upgrades.php	(revision 15468)
+++ branches/5.2.x/install/upgrades.php	(revision 15469)
@@ -1,178 +1,179 @@
 <?php
 /**
 * @version	$Id$
 * @package	In-Link
 * @copyright	Copyright (C) 1997 - 2009 Intechnic. All rights reserved.
 * @license      GNU/GPL
 * In-Portal is Open Source software.
 * This means that this software may have been modified pursuant
 * the GNU General Public License, and as distributed it includes
 * or is derivative of works licensed under the GNU General Public License
 * or other free or open source software licenses.
 * See http://www.in-portal.org/license for copyright notices and details.
 */
 
 	defined('FULL_PATH') or die('restricted access!');
 
 	$upgrade_class = 'InLinkUpgrades';
 
 	/**
 	 * Class, that holds all upgrade scripts for "In-Link" module
 	 *
 	 */
 	class InLinkUpgrades extends kUpgradeHelper {
 
 		public function __construct()
 		{
 			parent::__construct();
 
 			$this->dependencies = Array (
 				'4.3.9' => Array ('Core' => '4.3.9'),
 				'5.0.0' => Array ('Core' => '5.0.0'),
 				'5.0.1' => Array ('Core' => '5.0.1'),
 				'5.0.2-B1' => Array ('Core' => '5.0.2-B1'),
 				'5.0.2-B2' => Array ('Core' => '5.0.2-B2'),
 				'5.0.2-RC1' => Array ('Core' => '5.0.2-RC1'),
 				'5.0.2' => Array ('Core' => '5.0.2'),
 				'5.0.3-B1' => Array ('Core' => '5.0.3-B1'),
 				'5.0.3-B2' => Array ('Core' => '5.0.3-B2'),
 				'5.0.3-RC1' => Array ('Core' => '5.0.3-RC1'),
 				'5.0.3' => Array ('Core' => '5.0.3'),
 				'5.0.4-B1' => Array ('Core' => '5.0.4-B1'),
 				'5.0.4-B2' => Array ('Core' => '5.0.4-B2'),
 				'5.0.4' => Array ('Core' => '5.0.4'),
 				'5.1.0-B1' => Array ('Core' => '5.1.0-B1'),
 				'5.1.0-RC1' => Array ('Core' => '5.1.0-RC1'),
 				'5.1.0' => Array ('Core' => '5.1.0'),
 				'5.1.1-B1' => Array ('Core' => '5.1.1-B1'),
 				'5.1.1-B2' => Array ('Core' => '5.1.1-B2'),
 				'5.1.1-RC1' => Array ('Core' => '5.1.1-RC1'),
 				'5.1.1' => Array ('Core' => '5.1.1'),
 				'5.1.2-B1' => Array ('Core' => '5.1.2-B1'),
 				'5.1.2-RC1' => Array ('Core' => '5.1.2-RC1'),
 				'5.1.2' => Array ('Core' => '5.1.2'),
 				'5.1.3-B1' => Array ('Core' => '5.1.3-B2'),
 				'5.1.3-RC1' => Array ('Core' => '5.1.3-RC1'),
 				'5.1.3-RC2' => Array ('Core' => '5.1.3-RC2'),
 				'5.1.3' => Array ('Core' => '5.1.3'),
 				'5.2.0-B1' => Array ('Core' => '5.2.0-B1'),
 				'5.2.0-B2' => Array ('Core' => '5.2.0-B2'),
 				'5.2.0-B3' => Array ('Core' => '5.2.0-B3'),
 				'5.2.0-RC1' => Array ('Core' => '5.2.0-RC1'),
+				'5.2.0' => Array ('Core' => '5.2.0'),
 			);
 		}
 
 		/**
 		 * Changes table structure, where multilingual fields of TEXT type are present
 		 *
 		 * @param string $mode when called mode {before, after)
 		 */
 		function Upgrade_5_0_0($mode)
 		{
 			if ($mode == 'after') {
 				$root_category = $this->Application->findModule('Name', 'In-Link', 'RootCat');
 
 				$sql = 'UPDATE ' . $this->Application->getUnitOption('c', 'TableName') . '
 						SET UseMenuIconUrl = 1, MenuIconUrl = "in-link/img/menu_links.gif"
 						WHERE ' . $this->Application->getUnitOption('c', 'IDField') . ' = ' . $root_category;
 				$this->Conn->Query($sql);
 
 				$this->_updateDetailTemplate('l', 'inlink/detail', 'in-link/designs/detail');
 
 				// copy link name and description to their multilingual equivalents
 				$this->_copyToMultilingual();
 			}
 		}
 
 		/**
 		 * Copy link values from normal fields to multilingual
 		 *
 		 */
 		function _copyToMultilingual()
 		{
 			$fields = Array ('Name', 'Description');
 			$primary_language = $this->Application->GetDefaultLanguageId();
 
 			$set_clause = Array ();
 			foreach ($fields as $field) {
 				$set_clause[] = 'l' . $primary_language . '_' . $field . ' = ' . $field;
 			}
 
 			$sql = 'UPDATE ' . TABLE_PREFIX . 'Link
 					SET ' . implode(', ', $set_clause);
 			$this->Conn->Query($sql);
 		}
 
 		/**
 		 * Update to 5.0.1
 		 *
 		 * @param string $mode when called mode {before, after)
 		 */
 		function Upgrade_5_0_1($mode)
 		{
 			if ($mode == 'after') {
 				$this->_updateDetailTemplate('l', 'in-link/designs/detail', 'in-link/links/link_detail');
 
 				// delete old events
 				$events_to_delete = Array ( 'LINK.OWNER.MODIFY.PENDING', 'LINK.OWNER.MODIFY' );
 
 				$sql = 'SELECT EventId FROM ' . TABLE_PREFIX . 'Events
 							WHERE Event IN ("' . implode('","', $events_to_delete) . '")';
 				$event_ids = $this->Conn->GetCol($sql);
 
 				if ($event_ids) {
 					$sql = 'DELETE FROM ' . TABLE_PREFIX . 'EmailMessage
 								WHERE EventId IN (' . implode(',', $event_ids) . ')';
 					$this->Conn->Query($sql);
 
 					$sql = 'DELETE FROM ' . TABLE_PREFIX . 'Events
 								WHERE EventId IN (' . implode(',', $event_ids) . ')';
 					$this->Conn->Query($sql);
 
 					$sql = 'DELETE FROM ' . TABLE_PREFIX . 'Phrase
 								WHERE Phrase IN ("la_event_link.owner.modify", "la_event_link.owner.modify.pending")';
 					$this->Conn->Query($sql);
 				}
 			}
 		}
 
 		/**
 		 * Update to 5.0.4-B1
 		 *
 		 * @param string $mode when called mode {before, after)
 		 */
 		function Upgrade_5_0_4_B1($mode)
 		{
 			if ($mode == 'after') {
 				// check in-link custom fields if need to add to search config
 				$custom_fields = Array (
 					'LinkAddress' => "('CustomField', 'LinkAddress', 1, 1, 'la_fld_LinkAddress', 'lu_fld_LinkAddress', 'In-Link', 'la_section_BusinessLocation', 1, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, {CUSTOM_FIELD_ID})",
 					'LinkCity' => "('CustomField', 'LinkCity', 1, 1, 'la_fld_LinkCity', 'lu_fld_LinkCity', 'In-Link', 'la_section_BusinessLocation', 2, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, {CUSTOM_FIELD_ID})",
 					'LinkState' => "('CustomField', 'LinkState', 1, 1, 'la_fld_LinkState', 'lu_fld_LinkState', 'In-Link', 'la_section_BusinessLocation', 3, DEFAULT, 0, 'select', NULL, NULL, NULL, NULL, NULL, NULL, {CUSTOM_FIELD_ID})",
 					'LinkZipCode' => "('CustomField', 'LinkZipCode', 1, 1, 'la_fld_LinkZipCode', 'lu_fld_LinkZipCode', 'In-Link', 'la_section_BusinessLocation', 4, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, {CUSTOM_FIELD_ID})",
 					'LinkCountry' => "('CustomField', 'LinkCountry', 1, 1, 'la_fld_LinkCountry', 'lu_fld_LinkCountry', 'In-Link', 'la_section_BusinessLocation', 5, DEFAULT, 0, 'select', NULL, NULL, NULL, NULL, NULL, NULL, {CUSTOM_FIELD_ID})",
 					'LinkPhone' => "('CustomField', 'LinkPhone', 1, 1, 'la_fld_LinkPhone', 'lu_fld_LinkPhone', 'In-Link', 'la_section_BusinessLocation', 6, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, {CUSTOM_FIELD_ID})",
 				);
 
 				// get all in-link custom fields ides at once
 				$sql = 'SELECT CustomFieldId, FieldName
 						FROM ' . TABLE_PREFIX . 'CustomField
 						WHERE Type = 4 AND IsSystem = 0';
 				$custom_field_ids = $this->Conn->GetCol($sql, 'FieldName');
 
 				foreach ($custom_fields as $field_name => $custom_field_sql) {
 					$sql = 'SELECT FieldName
 							FROM ' . TABLE_PREFIX . 'SearchConfig
 							WHERE (FieldName = ' . $this->Conn->qstr($field_name) . ') AND (LOWER(ModuleName) = "in-link")';
 					$found = $this->Conn->GetOne($sql);
 
 					if (!$found) {
 						// replace sql and insert new search config record
 						$sql = str_replace('{CUSTOM_FIELD_ID}', $custom_field_ids[$field_name], $custom_field_sql);
 						$sql = 'INSERT INTO ' . TABLE_PREFIX . 'SearchConfig VALUES ' . $sql;
 						$this->Conn->Query($sql);
 					}
 				}
 			}
 		}
 	}
\ No newline at end of file
Index: branches/5.2.x/install/upgrades.sql
===================================================================
--- branches/5.2.x/install/upgrades.sql	(revision 15468)
+++ branches/5.2.x/install/upgrades.sql	(revision 15469)
@@ -1,193 +1,196 @@
 # ===== v 4.3.9 =====
 INSERT INTO Events VALUES (DEFAULT, 'LINK.VALIDATION.RESULTS', NULL, 1, 0, 'In-Link', 'la_event_link.validation.results', 1);
 
 INSERT INTO ImportScripts VALUES (DEFAULT, 'Links from CSV file [In-Link]', '', 'l', 'In-Link', '', 'CSV', '1');
 
 UPDATE CustomField
 SET ValueList = '=+||<SQL>SELECT DestAbbr AS OptionValue, DestName AS OptionName FROM <PREFIX>StdDestinations WHERE DestType = 2 AND (DestParentId = 225 OR DestParentId = 38) ORDER BY DestParentId DESC, DestAbbr ASC</SQL>'
 WHERE FieldName = 'LinkState';
 
 UPDATE CustomField
 SET ValueList = '=+||<SQL>SELECT DestAbbr AS OptionValue, DestName AS OptionName FROM <PREFIX>StdDestinations WHERE DestType = 1 ORDER BY DestAbbr ASC</SQL>'
 WHERE FieldName = 'LinkCountry';
 
 # ===== v 5.0.0 =====
 INSERT INTO Counters VALUES (DEFAULT, 'linkhits_count', 'SELECT ROUND(SUM(Hits)) FROM <%PREFIX%>Link', NULL, NULL, '300', '0', '|Link|');
 UPDATE Category SET Template = '/in-link/designs/section' WHERE Template = 'inlink/index';
 UPDATE Category SET CachedTemplate = '/in-link/designs/section' WHERE CachedTemplate = 'inlink/index';
 
 UPDATE ConfigurationValues SET VariableValue = '/in-link/designs/section' WHERE VariableName = 'l_CategoryTemplate';
 UPDATE ConfigurationValues SET VariableValue = 'in-link/designs/detail' WHERE VariableName = 'l_ItemTemplate';
 
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:links.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:setting_folder.view', 11, 1, 1, 0);
 DELETE FROM Permissions WHERE Permission LIKE 'in-link:inlink_general.%';
 
 UPDATE Events SET Description = 'la_event_link.owner.modify' WHERE  Description = 'la_event_link.modify.modify';
 UPDATE Events SET Description = 'la_event_link.owner.modify.pending' WHERE  Description = 'la_event_link.modify.modify.pending';
 
 UPDATE Phrase SET Module = 'In-Link' WHERE ((Phrase LIKE '%Links%' OR Phrase LIKE '%Listing%') AND (Module = 'Core') AND Phrase NOT IN ('la_section_QuickLinks'));
 
 UPDATE Phrase SET Module = 'In-Link', PhraseType = 1 WHERE ( (Phrase LIKE '%Validation%' OR Phrase LIKE 'la_title_In-Link') AND (Module = 'Core') AND Phrase NOT IN ('la_ValidationEmail', 'la_prompt_validation'));
 
 # ===== v 5.0.1 =====
 UPDATE ConfigurationValues SET VariableValue = 'in-link/links/link_detail' WHERE VariableName = 'l_ItemTemplate';
 
 UPDATE ConfigurationAdmin SET ValueList = 'ReviewText=la_opt_CommentText,CreatedOn=la_opt_CreatedOn'
 WHERE VariableName IN ('Link_ReviewsSort', 'Link_ReviewsSort2');
 
 UPDATE ConfigurationAdmin SET ValueList = 'ASC=la_common_Ascending,DESC=la_common_Descending'
 WHERE VariableName IN ('Link_ReviewsOrder', 'Link_ReviewsOrder2');
 
 UPDATE ConfigurationAdmin SET ValueList = 'Name=la_Link_Name,Description=la_Link_Description,Url=la_Link_URL,CreatedOn=la_opt_CreatedOn,Hits=la_Link_Hits,CachedRating=la_opt_Rating,<SQL>SELECT Prompt AS OptionName, CONCAT("cust_", FieldName) AS OptionValue FROM <PREFIX>CustomField WHERE (Type = 4) AND (IsSystem = 0)</SQL>'
 WHERE VariableName IN ('Link_SortField', 'Link_SortField2');
 
 UPDATE ConfigurationAdmin
 SET ValueList = '1=la_opt_Sec,60=la_opt_Min,3600=la_opt_Hour,86400=la_opt_Day,604800=la_opt_Week,2419200=la_opt_Month,29030400=la_opt_Year'
 WHERE VariableName IN ('link_ReviewDelay_Interval', 'link_RatingDelay_Interval');
 
 UPDATE CustomField SET FieldLabel = 'la_fld_cust_l_ItemTemplate', Prompt = 'la_fld_cust_l_ItemTemplate' WHERE FieldName = 'l_ItemTemplate';
 
 INSERT INTO Events VALUES(DEFAULT, 'LINK.REVIEW.ADD.PENDING', NULL, 1, 0, NULL, 'In-Link', 'la_event_link.review.add.pending', 1);
 
 UPDATE ConfigurationAdmin SET ValueList = 'style="width: 50px;"' WHERE VariableName IN ('link_ReviewDelay_Value', 'link_RatingDelay_Value');
 
 # ===== v 5.0.2-B1 =====
 ALTER TABLE ListingTypes CHANGE Description Description text NULL;
 ALTER TABLE LinkValidation CHANGE ValidationTime ValidationTime INT NULL DEFAULT NULL;
 ALTER TABLE LinkVisits CHANGE VisitTimestamp VisitTimestamp INT(11) NULL DEFAULT NULL;
 
 # ===== v 5.0.2-B2 =====
 
 # ===== v 5.0.2-RC1 =====
 
 # ===== v 5.0.2 =====
 
 # ===== v 5.0.3-B1 =====
 UPDATE Phrase
 SET Module = 'In-Link'
 WHERE Phrase IN (
 	'lu_PermName_Link.Add.Pending_desc', 'lu_PermName_Link.Add_desc', 'lu_PermName_Link.Delete_desc',
 	'lu_PermName_Link.Modify.Pending_desc', 'lu_PermName_Link.Modify_desc', 'lu_PermName_Link.Owner.Delete_desc',
 	'lu_PermName_Link.Owner.Modify.Pending_desc', 'lu_PermName_Link.Owner.Modify_desc', 'lu_PermName_Link.Rate_desc',
 	'lu_PermName_Link.Review_Pending_desc', 'lu_PermName_Link.View_desc'
 );
 
 # ===== v 5.0.3-B2 =====
 
 # ===== v 5.0.3-RC1 =====
 
 # ===== v 5.0.3 =====
 
 # ===== v 5.0.4-B1 =====
 
 # ===== v 5.0.4-B2 =====
 
 # ===== v 5.0.4 =====
 
 # ===== v 5.1.0-B1 =====
 UPDATE Modules SET Path = 'modules/in-link/' WHERE `Name` = 'In-Link';
 DELETE FROM ConfigurationValues WHERE VariableName IN ('StartValidationTime', 'LastExpirationTime', 'Link_Root');
 
 UPDATE CustomField
 SET ValueList = '=+||<SQL+>SELECT IsoCode AS OptionValue, l%3$s_Name AS OptionName FROM <PREFIX>CountryStates WHERE Type = 2 ORDER BY StateCountryId DESC, IsoCode ASC</SQL>'
 WHERE ValueList = '=+||<SQL>SELECT DestAbbr AS OptionValue, DestName AS OptionName FROM <PREFIX>StdDestinations WHERE DestType = 2 AND (DestParentId = 225 OR DestParentId = 38) ORDER BY DestParentId DESC, DestAbbr ASC</SQL>';
 
 UPDATE CustomField
 SET ValueList = '=+||<SQL+>SELECT IsoCode AS OptionValue, l%3$s_Name AS OptionName FROM <PREFIX>CountryStates WHERE Type = 1 ORDER BY IsoCode ASC</SQL>'
 WHERE ValueList = '=+||<SQL>SELECT DestAbbr AS OptionValue, DestName AS OptionName FROM <PREFIX>StdDestinations WHERE DestType = 1 ORDER BY DestAbbr ASC</SQL>';
 
 DELETE FROM Permissions WHERE Permission LIKE 'in-link:configuration_email%';
 
 # ===== v 5.1.0-RC1 =====
 
 # ===== v 5.1.0 =====
 
 # ===== v 5.1.1-B1 =====
 ALTER TABLE Link
 	CHANGE CreatedById CreatedById INT(11) NULL DEFAULT NULL ,
 	CHANGE ModifiedById ModifiedById INT(11) NULL DEFAULT NULL;
 
 # ===== v 5.1.1-B2 =====
 UPDATE Events
 SET l<%PRIMARY_LANGUAGE%>_Body = REPLACE(l<%PRIMARY_LANGUAGE%>_Body, '<inp2:<inp2:', '<inp2:')
 WHERE Event LIKE 'LINK.ADD.PENDING' AND `Type` = 1;
 
 # ===== v 5.1.1-RC1 =====
 
 # ===== v 5.1.1 =====
 
 # ===== v 5.1.2-B1 =====
 
 # ===== v 5.1.2-RC1 =====
 
 # ===== v 5.1.2 =====
 
 # ===== v 5.1.3-B1 =====
 
 # ===== v 5.1.3-RC1 =====
 UPDATE ConfigurationValues
 SET VariableValue = 'in-link/links/link_detail'
 WHERE VariableName = 'l_ItemTemplate' AND VariableValue = 'in-link/designs/detail';
 
 # ===== v 5.1.3-RC2 =====
 
 # ===== v 5.1.3 =====
 UPDATE Phrase
 SET `Module` = 'Core'
 WHERE PhraseKey IN ('LA_FLD_LISTINGID', 'LA_FLD_LISTINGTYPE');
 
 # ===== v 5.2.0-B1 =====
 UPDATE SearchConfig
 SET ForeignField = 'PortalUser.Username'
 WHERE ForeignField = 'PortalUser.Login' AND ModuleName = 'In-Link';
 
 UPDATE SearchConfig
 SET DisplayName = REPLACE(DisplayName, 'lu_', 'lc_')
 WHERE DisplayName IN ('lu_field_linkid', 'lu_field_url');
 
 UPDATE SystemSettings
 SET Section = 'in-portal:configure_advanced', ModuleOwner = 'In-Portal', Heading = 'la_section_Settings3rdPartyAPI', DisplayOrder = 80.02
 WHERE VariableName = 'l_GoogleMapsAPIKey';
 
 UPDATE SystemSettings
 SET DisplayOrder = DisplayOrder - 0.01
 WHERE VariableName IN ('l_EnableLinkContactForm', 'ReciprocalLinkChecking');
 
 UPDATE LanguageLabels
 SET Module = 'In-Link'
 WHERE PhraseKey IN ('LA_LINK_CREATEDON', 'LA_LINK_DESCRIPTION', 'LA_LINK_HITS', 'LA_LINK_NAME', 'LA_LINK_URL');
 
 DELETE FROM LanguageLabels
 WHERE PhraseKey IN (
 	'LA_LINK_URLSTATUS_PROMPT', 'LA_TEXT_LINK_SEARCH', 'LA_LINK_CATCHEDRATING',
 	'LA_LINK_CATCHEDREVIEWSQTY', 'LA_LINK_CATCHEDVOTESQTY'
 );
 
 DELETE FROM SystemSettings
 WHERE VariableName IN (
 	'Link_Highlight_OpenTag', 'Link_Highlight_CloseTag', 'Link_RatingToPop', 'Link_UrlStatus',
 	'Search_Link_CatchedRating', 'Search_Link_CatchedReviewsQty', 'Search_Link_CatchedVotesQty',
 	'Search_Link_CreatedOn', 'Search_Link_Description', 'Search_Link_EditorsPick', 'Search_Link_Hits',
 	'Search_Link_HotItem', 'Search_Link_LinkId', 'Search_Link_Name', 'Search_Link_NewItem', 'Search_Link_PopItem',
 	'Search_Link_Priority', 'Search_Link_ResourceId', 'Search_Link_ReviewById', 'Search_Link_Status', 'Search_Link_Url'
 );
 
 UPDATE SystemSettings
 SET DisplayOrder = DisplayOrder - 0.01
 WHERE VariableName IN (
 	'link_ReviewDelay_Value', 'link_ReviewDelay_Interval', 'link_RatingDelay_Value', 'link_RatingDelay_Interval',
 	'l_MaxCategories', 'l_EnableGoogleMaps', 'l_EnableLinkContactForm', 'ReciprocalLinkChecking'
 );
 
 UPDATE SearchConfig
 SET ForeignField = 'Users.Username'
 WHERE ForeignField = 'PortalUser.Username' AND ModuleName = 'In-Link';
 
 # ===== v 5.2.0-B2 =====
 UPDATE Link main_table
 SET main_table.CachedReviewsQty = (SELECT COUNT(*) FROM <%TABLE_PREFIX%>CatalogReviews review_table WHERE review_table.ItemId = main_table.ResourceId);
 
 # ===== v 5.2.0-B3 =====
 
 # ===== v 5.2.0-RC1 =====
+
+# ===== v 5.2.0 =====
+INSERT INTO Permissions VALUES(DEFAULT, 'in-link:configuration_output.add', 11, 1, 1, 0);
Index: branches/5.2.x/install/install_data.sql
===================================================================
--- branches/5.2.x/install/install_data.sql	(revision 15468)
+++ branches/5.2.x/install/install_data.sql	(revision 15469)
@@ -1,225 +1,226 @@
 # Section "in-link:configuration_output":
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_SortField', 'Name', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_sortfield_prompt', 'select', '', 'Name=la_Link_Name||Description=la_Link_Description||Url=la_Link_URL||CreatedOn=la_opt_CreatedOn||Hits=la_Link_Hits||CachedRating=la_opt_Rating||<SQL>SELECT Prompt AS OptionName, CONCAT("cust_", FieldName) AS OptionValue FROM <PREFIX>CustomFields WHERE (Type = 4) AND (IsSystem = 0)</SQL>', 10.01, 1, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_SortOrder', 'asc', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_sortfield_prompt', 'select', '', 'asc=la_common_ascending||desc=la_common_descending', 10.01, 2, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_SortField2', 'Description', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_sortfield2_prompt', 'select', '', 'Name=la_Link_Name||Description=la_Link_Description||Url=la_Link_URL||CreatedOn=la_opt_CreatedOn||Hits=la_Link_Hits||CachedRating=la_opt_Rating||<SQL>SELECT Prompt AS OptionName, CONCAT("cust_", FieldName) AS OptionValue FROM <PREFIX>CustomFields WHERE (Type = 4) AND (IsSystem = 0)</SQL>', 10.02, 1, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_SortOrder2', 'desc', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_sortfield2_prompt', 'select', '', 'asc=la_common_ascending||desc=la_common_descending', 10.02, 2, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Perpage_Links', '10', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_perpage_prompt', 'text', '', '', 10.03, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Perpage_Links_Short', '3', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_perpage_short_prompt', 'text', '', '', 10.04, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_NewDays', '100', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_newdays_prompt', 'text', '', '', 10.05, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_MinPopRating', '5', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_fld_Link_MinPopRating', 'text', '', '', 10.06, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_MinPopVotes', '20', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_fld_Link_MinPopVotes', 'text', '', '', 10.07, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_MaxHotNumber', '5', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_fld_Link_MaxHotNumber', 'text', '', '', 10.08, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_EnhancedLinks', '0', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_EnhancedLinks', 'checkbox', '', '', 10.09, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_AllowFreeListings', '1', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_AllowFreeListings', 'checkbox', '', '', 10.1, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_ShowPick', '1', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_link_editorspick_prompt', 'checkbox', '', '', 10.11, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'link_ReviewDelay_Value', '1', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_prompt_DupReviews', 'text', '', 'style="width: 50px;"', 10.12, 1, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'link_ReviewDelay_Interval', '2419200', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_prompt_DupReviews', 'select', '', '1=la_opt_Sec||60=la_opt_Min||3600=la_opt_Hour||86400=la_opt_Day||604800=la_opt_Week||2419200=la_opt_Month||29030400=la_opt_Year', 10.12, 2, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'link_RatingDelay_Value', '1', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_prompt_DupRating', 'text', '', 'style="width: 50px;"', 10.13, 1, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'link_RatingDelay_Interval', '2419200', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_prompt_DupRating', 'select', '', '1=la_opt_Sec||60=la_opt_Min||3600=la_opt_Hour||86400=la_opt_Day||604800=la_opt_Week||2419200=la_opt_Month||29030400=la_opt_Year', 10.13, 2, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_MaxCategories', '3', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_fld_MaxCategories', 'text', NULL, NULL, 10.14, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_EnableGoogleMaps', '0', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_fld_LinkEnableGoogleMaps', 'checkbox', NULL, NULL, 10.15, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_EnableLinkContactForm', '1', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_config_EnableLinkContactForm', 'checkbox', NULL, NULL, 10.16, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'ReciprocalLinkChecking', '0', 'In-Link', 'in-link:configuration_output', 'la_Text_Links', 'la_config_ReciprocalLinkChecking', 'checkbox', NULL, NULL, 10.17, 0, 0, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_ReviewsSort', 'CreatedOn', 'In-Link', 'in-link:configuration_output', 'la_Text_Reviews', 'la_link_sortreviews_prompt', 'select', '', 'ReviewText=la_opt_CommentText||CreatedOn=la_opt_CreatedOn', 20.01, 1, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_ReviewsOrder', 'desc', 'In-Link', 'in-link:configuration_output', 'la_Text_Reviews', 'la_link_sortreviews_prompt', 'select', '', 'asc=la_common_Ascending||desc=la_common_Descending', 20.01, 2, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_ReviewsSort2', 'ReviewText', 'In-Link', 'in-link:configuration_output', 'la_Text_Reviews', 'la_link_sortreviews2_prompt', 'select', '', 'ReviewText=la_opt_CommentText||CreatedOn=la_opt_CreatedOn', 20.02, 1, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Link_ReviewsOrder2', 'asc', 'In-Link', 'in-link:configuration_output', 'la_Text_Reviews', 'la_link_sortreviews2_prompt', 'select', '', 'asc=la_common_Ascending||desc=la_common_Descending', 20.02, 2, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Perpage_LinkReviews', '10', 'In-Link', 'in-link:configuration_output', 'la_Text_Reviews', 'la_review_perpage_prompt', 'text', NULL, NULL, 20.03, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Perpage_LinkReviews_Short', '3', 'In-Link', 'in-link:configuration_output', 'la_Text_Reviews', 'la_review_perpage_short_prompt', 'text', NULL, NULL, 20.04, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_CategoryTemplate', '/in-link/designs/section', 'In-Link', 'in-link:configuration_output', 'la_section_Templates', 'la_fld_CategoryTemplate', 'text', '', '', 30.01, 0, 0, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_ItemTemplate', 'in-link/links/link_detail', 'In-Link', 'in-link:configuration_output', 'la_section_Templates', 'la_fld_ItemTemplate', 'text', '', '', 30.02, 0, 0, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_MaxImageCount', '5', 'In-Link', 'in-link:configuration_output', 'la_section_ImageSettings', 'la_config_MaxImageCount', 'text', '', '', 40.01, 0, 0, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_ThumbnailImageWidth', '120', 'In-Link', 'in-link:configuration_output', 'la_section_ImageSettings', 'la_config_ThumbnailImageWidth', 'text', '', '', 40.02, 0, 0, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_ThumbnailImageHeight', '120', 'In-Link', 'in-link:configuration_output', 'la_section_ImageSettings', 'la_config_ThumbnailImageHeight', 'text', '', '', 40.03, 0, 0, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_FullImageWidth', '450', 'In-Link', 'in-link:configuration_output', 'la_section_ImageSettings', 'la_config_FullImageWidth', 'text', '', '', 40.04, 0, 0, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'l_FullImageHeight', '450', 'In-Link', 'in-link:configuration_output', 'la_section_ImageSettings', 'la_config_FullImageHeight', 'text', '', '', 40.05, 0, 0, NULL);
 
 # Section "in-link:configuration_search":
 INSERT INTO SystemSettings VALUES(DEFAULT, 'SearchRel_Keyword_links', '90', 'In-Link', 'in-link:configuration_search', 'la_config_SearchRel_DefaultKeyword', 'la_text_keyword', 'text', NULL, NULL, 0, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'SearchRel_Pop_links', '5', 'In-Link', 'in-link:configuration_search', 'la_config_DefaultPop', 'la_text_popularity', 'text', NULL, NULL, 0, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'SearchRel_Rating_links', '5', 'In-Link', 'in-link:configuration_search', 'la_config_DefaultRating', 'la_prompt_Rating', 'text', NULL, NULL, 0, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'SearchRel_Increase_links', '30', 'In-Link', 'in-link:configuration_search', 'la_config_DefaultIncreaseImportance', 'la_text_increase_importance', 'text', NULL, NULL, 0, 0, 1, NULL);
 INSERT INTO SystemSettings VALUES(DEFAULT, 'Search_ShowMultiple_links', '0', 'In-Link', 'in-link:configuration_search', 'la_config_ShowMultiple', 'la_Text_MultipleShow', 'text', NULL, NULL, 0, 0, 1, NULL);
 
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ADD', NULL, 1, 1, 'In-Link', 'Add Link', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ADD', NULL, 1, 0, 'In-Link', 'Add Link', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ADD.PENDING', NULL, 1, 0, 'In-Link', 'Add Pending Link', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ADD.PENDING', NULL, 1, 1, 'In-Link', 'Add Pending Link', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.MODIFY', NULL, 1, 1, 'In-Link', 'Modify Link', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.MODIFY', NULL, 1, 0, 'In-Link', 'Modify Link', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.MODIFY.PENDING', NULL, 1, 0, 'In-Link', 'Link Modification Pending', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.MODIFY.PENDING', NULL, 1, 1, 'In-Link', 'Link Modification Pending', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.MODIFY.APPROVE', NULL, 1, 0, 'In-Link', 'Approve Link Modification', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.MODIFY.DENY', NULL, 1, 0, 'In-Link', 'Decline link modification', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.APPROVE', NULL, 1, 0, 'In-Link', 'Approve Pending Link', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.DENY', NULL, 1, 0, 'In-Link', 'Deny Link', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.REVIEW.ADD', NULL, 1, 1, 'In-Link', 'Link Comment Added', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.REVIEW.ADD', NULL, 1, 0, 'In-Link', 'Link Comment Added', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.REVIEW.ADD.PENDING', NULL, 1, 0, 'In-Link', 'Link Comment Pending', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.REVIEW.ADD.PENDING', NULL, 1, 0, 'In-Link', 'Link Comment Pending', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.REVIEW.APPROVE', NULL, 1, 0, 'In-Link', 'Link Comment Approved', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.REVIEW.DENY', NULL, 1, 0, 'In-Link', 'Link Comment Declined', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE', NULL, 1, 0, 'In-Link', 'Link enhancement submitted', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE', NULL, 1, 0, 'In-Link', 'Link enhancement submitted', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.APPROVE', NULL, 0, 0, 'In-Link', 'Link enhancement approved', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.APPROVE', NULL, 1, 0, 'In-Link', 'Link enhancement approved', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.DENY', NULL, 0, 0, 'In-Link', 'Link enhancement denied', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.DENY', NULL, 1, 0, 'In-Link', 'Link enhancement denied', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.EXPIRE', NULL, 1, 0, 'In-Link', 'Link enhancement expired', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.EXPIRE', NULL, 1, 0, 'In-Link', 'Link enhancement expired', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.EXTEND', NULL, 1, 0, 'In-Link', 'Link enhancement renewal submitted', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.EXTEND', NULL, 1, 0, 'In-Link', 'Link enhancement renewal submitted', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.RENEW', NULL, 0, 0, 'In-Link', 'Link enhancement extended', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.RENEW', NULL, 1, 0, 'In-Link', 'Link enhancement extended', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.RENEW.FAILED', NULL, 1, 0, 'In-Link', 'Link enhancement renewal failed', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.RENEW.FAILED', NULL, 1, 0, 'In-Link', 'Link enhancement renewal failed', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.CANCEL', NULL, 1, 0, 'In-Link', 'Link enhancement cancelled', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.CANCEL', NULL, 1, 0, 'In-Link', 'Link enhancement cancelled', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.RENEWAL.NOTICE', NULL, 1, 0, 'In-Link', 'Link enhancement is about to expire', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.ENHANCE.RENEWAL.NOTICE', NULL, 1, 0, 'In-Link', 'Link enhancement is about to expire', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.CONTACTFORM', NULL, 1, 0, 'In-Link', 'Link Contact Form', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.CONTACTFORM', NULL, 1, 0, 'In-Link', 'Link Contact Form', 0, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.RECIPROCAL.CHECK.FAILED', NULL, 1, 0, 'In-Link', 'Reciprocal Check Failed', 1, 1, 1);
 INSERT INTO EmailEvents (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'LINK.VALIDATION.RESULTS', NULL, 1, 0, 'In-Link', 'Link Validation Results', 1, 1, 1);
 
 INSERT INTO CustomFields VALUES (DEFAULT, 4, 'LinkAddress', 'lu_fld_LinkAddress', 0, 'la_section_BusinessLocation', 'la_fld_LinkAddress', 'text', 'size="40"', '', 1, 1, 0, 0);
 INSERT INTO CustomFields VALUES (DEFAULT, 4, 'LinkCity', 'lu_fld_LinkCity', 0, 'la_section_BusinessLocation', 'la_fld_LinkCity', 'text', 'size="40"', '', 2, 1, 0, 0);
 INSERT INTO CustomFields VALUES (DEFAULT, 4, 'LinkZipCode', 'lu_fld_LinkZipCode', 0, 'la_section_BusinessLocation', 'la_fld_LinkZipCode', 'text', NULL, '', 4, 1, 0, 0);
 INSERT INTO CustomFields VALUES (DEFAULT, 4, 'LinkState', 'lu_fld_LinkState', 0, 'la_section_BusinessLocation', 'la_fld_LinkState', 'select', '=+||<SQL+>SELECT IsoCode AS OptionValue, l%3$s_Name AS OptionName FROM <PREFIX>CountryStates WHERE Type = 2 ORDER BY StateCountryId DESC, IsoCode ASC</SQL>', '', 3, 1, 0, 0);
 INSERT INTO CustomFields VALUES (DEFAULT, 4, 'LinkCountry', 'lu_fld_LinkCountry', 0, 'la_section_BusinessLocation', 'la_fld_LinkCountry', 'select', '=+||<SQL+>SELECT IsoCode AS OptionValue, l%3$s_Name AS OptionName FROM <PREFIX>CountryStates WHERE Type = 1 ORDER BY IsoCode ASC</SQL>', '', 5, 1, 0, 0);
 INSERT INTO CustomFields VALUES (DEFAULT, 4, 'LinkPhone', 'lu_fld_LinkPhone', 0, 'la_section_BusinessLocation', 'la_fld_LinkPhone', 'text', NULL, '', 6, 1, 0, 0);
 
 INSERT INTO ItemTypes VALUES (4, 'In-Link', 'l', 'Link', 'Name', 'CreatedById', 'Hits', 'CachedRating', 'la_ItemTab_Links', 1, 'in-link/admin/addlink.php', 'clsLink', 'Link');
 
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.ADD', 'la_PermName_Link.Add_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.VIEW', 'la_PermName_Link.View_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.ADD.PENDING', 'la_PermName_Link.Add.Pending_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.MODIFY', 'la_PermName_Link.Modify_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.DELETE', 'la_PermName_Link.Delete_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.RATE', 'la_PermName_Link.Rate_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.REVIEW', 'la_PermName_Link.Review_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.REVIEW.PENDING', 'la_PermName_Link.Review_Pending_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.MODIFY.PENDING', 'la_PermName_Link.Modify.Pending_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.OWNER.MODIFY', 'la_PermName_Link.Owner.Modify_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.OWNER.MODIFY.PENDING', 'la_PermName_Link.Owner.Modify.Pending_desc', 'In-Link', 1);
 INSERT INTO CategoryPermissionsConfig VALUES (DEFAULT, 'LINK.OWNER.DELETE', 'la_PermName_Link.Owner.Delete_desc', 'In-Link', 1);
 
 INSERT INTO SearchConfig VALUES ('Link', 'OrgId', 0, 0, 'lu_fielddesc_link_orgid', 'lc_field_orgid', 'In-Link', 'la_text_link', 19, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'NewItem', 0, 1, 'lu_fielddesc_link_newitem', 'lc_field_newitem', 'In-Link', 'la_text_link', 18, DEFAULT, 0, 'boolean', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'PopItem', 0, 1, 'lu_fielddesc_link_popitem', 'lc_field_popitem', 'In-Link', 'la_text_link', 17, DEFAULT, 0, 'boolean', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'HotItem', 0, 1, 'lu_fielddesc_link_hotitem', 'lc_field_hotitem', 'In-Link', 'la_text_link', 16, DEFAULT, 0, 'boolean', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'ResourceId', 0, 1, 'lu_fielddesc_link_resourceid', 'lc_field_resourceid', 'In-Link', 'la_text_link', 15, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'EditorsPick', 0, 1, 'lu_fielddesc_link_editorspick', 'lc_field_EditorsPick', 'In-Link', 'la_text_link', 14, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'Status', 0, 0, 'lu_fielddesc_link_status', 'lc_field_status', 'In-Link', 'la_text_link', 13, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'Priority', 0, 0, 'lu_fielddesc_link_priority', 'lc_field_priority', 'In-Link', 'la_text_link', 12, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'ModifiedById', 0, 0, 'lu_fielddesc_link_modifiedbyid', 'lc_field_modifiedbyid', 'In-Link', 'la_text_link', 11, DEFAULT, 0, 'text', 'Users.Username', '{ForeignTable}.PortalUserId={LocalTable}.ModifiedById', NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'CreatedById', 0, 0, 'lu_fielddesc_link_createdbyid', 'lc_field_createdbyid', 'In-Link', 'la_text_link', 10, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'CachedReviewsQty', 0, 0, 'lu_fielddesc_link_cachedreviewsqty', 'lc_field_cachedreviewsqty', 'In-Link', 'la_text_link', 9, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'CachedVotesQty', 0, 0, 'lu_fielddesc_link_cachedvotesqty', 'lc_field_cachedvotesqty', 'In-Link', 'la_text_link', 8, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'LinkId', 0, 1, 'lu_fielddesc_link_linkid', 'lc_field_linkid', 'In-Link', 'la_text_link', 0, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'Name', 1, 1, 'lu_fielddesc_link_name', 'lc_field_name', 'In-Link', 'la_text_link', 1, DEFAULT, 1, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'Description', 1, 1, 'lu_fielddesc_link_description', 'lc_field_description', 'In-Link', 'la_text_link', 2, DEFAULT, 1, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'Url', 1, 1, 'lu_fielddesc_link_url', 'lc_field_url', 'In-Link', 'la_text_link', 3, DEFAULT, 2, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'CreatedOn', 0, 1, 'lu_fielddesc_link_createdon', 'lc_field_createdon', 'In-Link', 'la_text_link', 4, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'Modified', 0, 1, 'lu_fielddesc_link_modified', 'lc_field_modified', 'In-Link', 'la_text_link', 5, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'Hits', 0, 1, 'lu_fielddesc_link_hits', 'lc_field_hits', 'In-Link', 'la_text_link', 6, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('Link', 'CachedRating', 0, 0, 'lu_fielddesc_link_cachedrating', 'lc_field_cachedrating', 'In-Link', 'la_text_link', 7, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('CustomFields', 'LinkAddress', 1, 1, 'la_fld_LinkAddress', 'lu_fld_LinkAddress', 'In-Link', 'la_section_BusinessLocation', 1, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('CustomFields', 'LinkCity', 1, 1, 'la_fld_LinkCity', 'lu_fld_LinkCity', 'In-Link', 'la_section_BusinessLocation', 2, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('CustomFields', 'LinkState', 1, 1, 'la_fld_LinkState', 'lu_fld_LinkState', 'In-Link', 'la_section_BusinessLocation', 3, DEFAULT, 0, 'select', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('CustomFields', 'LinkZipCode', 1, 1, 'la_fld_LinkZipCode', 'lu_fld_LinkZipCode', 'In-Link', 'la_section_BusinessLocation', 4, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('CustomFields', 'LinkCountry', 1, 1, 'la_fld_LinkCountry', 'lu_fld_LinkCountry', 'In-Link', 'la_section_BusinessLocation', 5, DEFAULT, 0, 'select', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO SearchConfig VALUES ('CustomFields', 'LinkPhone', 1, 1, 'la_fld_LinkPhone', 'lu_fld_LinkPhone', 'In-Link', 'la_section_BusinessLocation', 6, DEFAULT, 0, 'text', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) as LinkCount FROM <%prefix%>Link WHERE Status=1', NULL, 'la_prompt_ActiveLinks', 0, 1);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) AS TotalLinks FROM <%prefix%>Link', NULL, 'la_prompt_TotalLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) AS ActiveLinks FROM <%prefix%>Link WHERE Status = 1', NULL, 'la_prompt_ActiveLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) AS PendingLinks FROM <%prefix%>Link WHERE Status = 2', NULL, 'la_prompt_PendingLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) AS DisabledLinks FROM <%prefix%>Link WHERE Status = 0', NULL, 'la_prompt_DisabledLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) AS NewLinks FROM <%prefix%>Link WHERE (NewItem = 1) OR ( (UNIX_TIMESTAMP() - CreatedOn) <= <%m:config name="Link_NewDays"%>*86400 AND (NewItem = 2) )', NULL, 'la_prompt_NewLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) FROM <%prefix%>Link WHERE EditorsPick = 1', NULL, 'la_prompt_EditorsPickLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) AS HotLinks FROM <%prefix%>Link WHERE (HotItem = 1) OR (Hits >= <%m:config name="Link_MaxHotNumber"%> AND (HotItem = 2) )', NULL, 'la_prompt_HotLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) AS PopularLinks FROM <%prefix%>Link WHERE (PopItem = 1) OR ( (CachedRating >= <%link:hit_count type="top"%>) AND <%link:hit_count type="top"%> AND (PopItem = 2) )', NULL, 'la_prompt_PopularLinks', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT <%m:post_format field="AVG(CachedRating)" type="currency" precision="2"%> FROM <%prefix%>Link WHERE CachedRating > 0', NULL, 'la_prompt_LinksAverageRating', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT MAX(Hits) AS MaxLinksHits FROM <%prefix%>Link', NULL, 'la_prompt_MaxLinksHits', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT MAX(CachedVotesQty) AS MaxLinksVotes FROM <%prefix%>Link', NULL, 'la_prompt_MaxLinksVotes', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT <%m:post_format field="MAX(CreatedOn)" type="date"%> FROM <%prefix%>Link', NULL, 'la_prompt_NewestLinkDate', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT <%m:post_format field="MAX(Modified)" type="date"%> FROM <%prefix%>Link', NULL, 'la_prompt_LastLinkUpdate', 0, 2);
 INSERT INTO StatItem VALUES (DEFAULT, 'In-Link', 'SELECT COUNT(*) FROM <%prefix%>CatalogReviews WHERE Module = \'<%modules:get_current%>\'', NULL, 'la_prompt_LinkReviews', 0, 2);
 
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.VIEW', 14, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'FAVORITES', 12, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.VIEW', 12, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.ADD.PENDING', 12, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.RATE', 12, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.REVIEW', 12, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.MODIFY', 12, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.MODIFY.PENDING', 12, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'FAVORITES', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.ADD', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.VIEW', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.RATE', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.REVIEW', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.MODIFY', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.MODIFY.PENDING', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.DELETE', 13, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'FAVORITES', 11, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.ADD', 11, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.VIEW', 11, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.MODIFY', 11, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.DELETE', 11, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.RATE', 11, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.REVIEW', 11, 1, 0, {LinkCatId});
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.ADD', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.VIEW', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.ADD.PENDING', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.MODIFY', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.DELETE', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.RATE', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.REVIEW', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.REVIEW.PENDING', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.MODIFY.PENDING', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.MODIFY', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.MODIFY.PENDING', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'LINK.OWNER.DELETE', 15, 0, 0, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:links.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:setting_folder.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_output.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_output.add', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_output.edit', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_search.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_search.edit', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_custom.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_custom.add', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_custom.edit', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:configuration_custom.delete', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:duplicate_checker.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:duplicate_checker.add', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:duplicate_checker.edit', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:duplicate_checker.delete', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:validation_list.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:validation_list.add', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:validation_list.edit', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:paid_listings.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:paid_listings.add', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:paid_listings.edit', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:paid_listings.delete', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:paid_listings.advanced:approve', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:paid_listings.advanced:decline', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:listing_types.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:listing_types.add', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:listing_types.edit', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:listing_types.delete', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:link_validation.view', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:link_validation.advanced:continue', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:link_validation.advanced:restart', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:link_validation.advanced:validate', 11, 1, 1, 0);
 INSERT INTO Permissions VALUES (DEFAULT, 'in-link:link_validation.advanced:reset', 11, 1, 1, 0);
 
 INSERT INTO ImportScripts VALUES (DEFAULT, 'Links from CSV file [In-Link]', '', 'l', 'In-Link', '', 'CSV', '1');
 
 INSERT INTO CustomFields VALUES (DEFAULT, 1, 'l_ItemTemplate', 'la_fld_cust_l_ItemTemplate ', 0, 'la_title_SystemCF', 'la_fld_cust_l_ItemTemplate ', 'text', NULL, '', 0, 0, 1, 0);
 
 INSERT INTO Counters VALUES (DEFAULT, 'linkhits_count', 'SELECT ROUND(SUM(Hits)) FROM <%PREFIX%>Link', NULL, NULL, '300', '0', '|Link|');
 
 INSERT INTO Modules VALUES ('In-Link', 'modules/in-link/', 'l', DEFAULT, 1, 1, 'in-link/', 2, NULL, NULL);