Index: branches/5.2.x/units/affiliate_payments/affiliate_payments_config.php =================================================================== --- branches/5.2.x/units/affiliate_payments/affiliate_payments_config.php (revision 16579) +++ branches/5.2.x/units/affiliate_payments/affiliate_payments_config.php (revision 16580) @@ -1,151 +1,151 @@ 'apayments', 'ItemClass' => Array ('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), 'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array ('class' => 'AffiliatePaymentsEventHandler', 'file' => 'affiliate_payments_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array ('class' => 'AffiliatePaymentsTagProcessor', 'file' => 'affiliate_payments_tag_processor.php', 'build_event' => 'OnBuild'), 'AutoLoad' => true, 'AggregateTags' => Array ( Array ( 'AggregateTo' => 'ord', 'AggregatedTagName' => 'InitPaymentsList', 'LocalTagName' => 'InitList', ), Array ( 'AggregateTo' => 'ord', 'AggregatedTagName' => 'ListPayments', 'LocalTagName' => 'ListPayments', ), Array ( 'AggregateTo' => 'ord', 'AggregatedTagName' => 'PaymentsPaginationBar', 'LocalTagName' => 'PaginationBar', ), Array ( 'AggregateTo' => 'ord', 'AggregatedTagName' => 'PaymentsCount', 'LocalTagName' => 'TotalRecords', ), ), 'QueryString' => Array ( 1 => 'id', 2 => 'Page', 3 => 'PerPage', 4 => 'event', ), 'IDField' => 'AffiliatePaymentId', 'TitlePresets' => Array ( 'payments_log' => Array ( 'prefixes' => Array ('apayments.log_List'), 'format' => "!la_title_AffiliatePayments!", ), ), 'Sections' => Array ( 'in-commerce:paymentlog' => Array ( 'parent' => 'in-commerce', 'icon' => 'transactions', 'label' => 'la_tab_PaymentLog', 'url' => Array ('t' => 'in-commerce/payments/payments_list', 'pass' => 'm'), 'permissions' => Array ('view'), 'priority' => 6, 'type' => stTREE, ), ), 'TableName' => TABLE_PREFIX.'AffiliatePayments', 'ListSQLs' => Array ( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId LEFT JOIN '.TABLE_PREFIX.'Users au ON af.PortalUserId = au.PortalUserId' ), 'CalculatedFields' => Array ( '' => Array ( 'PortalUserId' => 'af.PortalUserId', ), 'log' => Array ( 'Username' => 'IF(au.Username = "", au.Email, au.Username)', 'PortalUserId' => 'af.PortalUserId', ), ), 'ForeignKey' => 'AffiliateId', 'ParentTableKey' => 'AffiliateId', 'ParentPrefix' => 'affil', 'AutoDelete' => true, 'AutoClone' => true, 'ListSortings' => Array ( '' => Array ( 'Sorting' => Array ('PaymentDate' => 'desc'), ) ), 'Fields' => Array ( 'AffiliatePaymentId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'AffiliateId' => Array ('type' => 'int', 'formatter' => 'kLEFTFormatter', 'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!'), 'options' => Array (0 => 'lu_None'), 'left_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Affiliates af LEFT JOIN '.TABLE_PREFIX.'Users u ON u.PortalUserId = af.PortalUserId WHERE %s', 'left_key_field' => 'af.AffiliateId', 'left_title_field' => 'IF(u.Email = "", u.Username, u.Email)', 'not_null'=>1,'default'=>0), 'PaymentDate' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'), 'Amount' => Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%.02f', 'not_null' => '1', 'required'=>1, 'default' => '0.00'), - 'Comment' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => NULL), + 'Comment' => Array ('type' => 'string', 'default' => NULL), 'PaymentReference' => Array ('type' => 'string', 'not_null' => '1', 'default' => ''), 'PaymentTypeId' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT Name, PaymentTypeId FROM '.TABLE_PREFIX.'AffiliatePaymentTypes WHERE Status = 1 ORDER BY IsPrimary DESC, Priority DESC, Name ASC', 'option_key_field' => 'PaymentTypeId', 'option_title_field' => 'Name', 'not_null' => 1, 'default' => 0), ), 'VirtualFields' => Array ( 'Username' => Array ('type' => 'string', 'default' => ''), 'PortalUserId' => Array ('type' => 'int', 'default' => 0), ), 'Grids' => Array ( 'Default' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', 'module' => 'core', ), 'Fields' => Array ( 'AffiliatePaymentId'=> Array ( 'title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60, ), 'PaymentDate' => Array ( 'filter_block' => 'grid_date_range_filter', 'width' => 140, ), 'Amount' => Array ( 'filter_block' => 'grid_range_filter'), 'Comment' => Array ( 'filter_block' => 'grid_like_filter', 'first_chars' => 50), 'PaymentTypeId' => Array ( 'title' => 'column:la_fld_PaymentType', 'filter_block' => 'grid_options_filter'), 'PaymentReference' => Array ( 'filter_block' => 'grid_like_filter', 'first_chars' => 50), ), ), 'Log' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', 'module' => 'core', ), 'Fields' => Array ( 'AffiliatePaymentId'=> Array ( 'title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60, ), 'Username' => Array ( 'data_block' => 'grid_userlink_td', 'filter_block' => 'grid_like_filter'), 'PaymentDate' => Array ( 'filter_block' => 'grid_date_range_filter', 'width' => 140, ), 'Amount' => Array ( 'data_block' => 'grid_currency_td', 'filter_block' => 'grid_range_filter'), 'Comment' => Array ( 'filter_block' => 'grid_like_filter', 'first_chars' => 50), 'PaymentTypeId' => Array ( 'title' => 'column:la_fld_PaymentType', 'filter_block' => 'grid_options_filter'), 'PaymentReference' => Array ( 'filter_block' => 'grid_like_filter', 'first_chars' => 50), ), ), ), ); Index: branches/5.2.x/units/orders/orders_config.php =================================================================== --- branches/5.2.x/units/orders/orders_config.php (revision 16579) +++ branches/5.2.x/units/orders/orders_config.php (revision 16580) @@ -1,599 +1,599 @@ 'ord', 'ItemClass' => Array ('class' => 'OrdersItem', 'file' => 'orders_item.php', 'build_event' => 'OnItemBuild'), 'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array ('class' => 'OrdersEventHandler', 'file' => 'orders_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array ('class' => 'OrdersTagProcessor', 'file' => 'orders_tag_processor.php', 'build_event' => 'OnBuild'), 'ValidatorClass' => 'OrderValidator', 'AutoLoad' => true, 'RegisterClasses' => Array ( Array ('pseudo' => 'OrderCalculator', 'class' => 'OrderCalculator', 'file' => 'order_calculator.php', 'build_event' => ''), Array ('pseudo' => 'OrderManager', 'class' => 'OrderManager', 'file' => 'order_manager.php', 'build_event' => ''), Array ('pseudo' => 'OrderValidator', 'class' => 'OrderValidator', 'file' => 'order_validator.php', 'build_event' => ''), ), 'Hooks' => Array ( Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'ord', 'HookToSpecial' => '', 'HookToEvent' => Array ( 'OnPreSave' ), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnRecalculateItems', ), Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => '', 'HookToSpecial' => '', 'HookToEvent' => Array ( 'OnUpdateCart', 'OnUpdateCartJSON', 'OnCheckout' ), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnApplyCoupon', ), Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => '', 'HookToSpecial' => '', 'HookToEvent' => Array ( 'OnUpdateCart', 'OnUpdateCartJSON', 'OnCheckout' ), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnApplyGiftCertificate', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'u', 'HookToSpecial' => '*', 'HookToEvent' => Array ( 'OnCreate' ), 'DoPrefix' => '', 'DoSpecial' => '*', 'DoEvent' => 'OnUserCreate', ), Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => 'u', 'HookToSpecial' => '', 'HookToEvent' => Array ('OnCheckExpiredMembership'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnCheckRecurringOrders', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'u', 'HookToSpecial' => '', 'HookToEvent' => Array ( 'OnAfterLogin' ), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnUserLogin', ), Array ( 'Mode' => hBEFORE, // before because OnInpLogin is called after real in-portal login and uses data from hooks 'Conditional' => false, 'HookToPrefix' => 'u', 'HookToSpecial' => '', 'HookToEvent' => Array ( 'OnInpLogin' ), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnUserLogin', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'adm', 'HookToSpecial' => '*', 'HookToEvent' => Array ('OnStartup'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnRestoreOrder', ), array( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'conf', 'HookToSpecial' => '', 'HookToEvent' => array('OnBeforeItemValidate'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnBeforeNextOrderNumberChange', ), ), 'AggregateTags' => Array ( Array ( 'AggregateTo' => 'orditems', 'AggregatedTagName' => 'LinkRemoveFromCart', 'LocalTagName' => 'Orditems_LinkRemoveFromCart', ), Array ( 'AggregateTo' => 'orditems', 'AggregatedTagName' => 'ProductLink', 'LocalTagName' => 'Orderitems_ProductLink', ), Array ( 'AggregateTo' => 'orditems', 'AggregatedTagName' => 'ProductExists', 'LocalTagName' => 'Orderitems_ProductExists', ), ), 'QueryString' => Array ( 1 => 'id', 2 => 'Page', 3 => 'PerPage', 4 => 'event', 5 => 'mode', ), 'IDField' => 'OrderId', 'StatusField' => Array ('Status'), // field, that is affected by Approve/Decline events 'ViewMenuPhrase' => 'la_title_Orders', 'CatalogTabIcon' => 'icon16_item.png', 'TitleField' => 'OrderNumber', 'TitlePresets' => Array ( 'default' => Array ( 'new_status_labels' => Array ('ord' => '!la_title_Adding_Order!'), 'edit_status_labels' => Array ('ord' => '!la_title_Editing_Order!'), 'new_titlefield' => Array ('ord' => '!la_title_New_Order!'), ), 'orders_incomplete' => Array ( 'prefixes' => Array ('ord.incomplete_List'), 'format' => "!la_title_IncompleteOrders!", ), 'orders_pending' => Array ( 'prefixes' => Array ('ord.pending_List'), 'format' => "!la_title_PendingOrders!", ), 'orders_backorders' => Array ( 'prefixes' => Array ('ord.backorders_List'), 'format' => "!la_title_BackOrders!", ), 'orders_toship' => Array ( 'prefixes' => Array ('ord.toship_List'), 'format' => "!la_title_OrdersToShip!", ), 'orders_processed' => Array ( 'prefixes' => Array ('ord.processed_List'), 'format' => "!la_title_OrdersProcessed!", ), 'orders_returns' => Array ( 'prefixes' => Array ('ord.returns_List'), 'format' => "!la_title_OrdersReturns!", ), 'orders_denied' => Array ( 'prefixes' => Array ('ord.denied_List'), 'format' => "!la_title_OrdersDenied!", ), 'orders_archived' => Array ( 'prefixes' => Array ('ord.archived_List'), 'format' => "!la_title_OrdersArchived!", ), 'orders_search' => Array ( 'prefixes' => Array ('ord.search_List'), 'format' => "!la_title_OrdersSearch!", ), 'orders_edit_general' => Array ('prefixes' => Array ('ord'), 'format' => "#ord_status# '#ord_titlefield#' - !la_title_General!"), 'orders_edit_billing' => Array ('prefixes' => Array ('ord'), 'format' => "#ord_status# '#ord_titlefield#' - !la_title_OrderBilling!"), 'orders_edit_shipping' => Array ('prefixes' => Array ('ord'), 'format' => "#ord_status# '#ord_titlefield#' - !la_title_OrderShipping!"), 'orders_edit_items' => Array ('prefixes' => Array ('ord', 'orditems_List'), 'format' => "#ord_status# '#ord_titlefield#' - !la_title_OrderItems!"), 'orders_edit_preview' => Array ('prefixes' => Array ('ord'), 'format' => "#ord_status# '#ord_titlefield#' - !la_title_OrderPreview!"), 'orders_gw_result' => Array ('prefixes' => Array ('ord'), 'format' => "!la_title_OrderGWResult!"), 'orders_export' => Array ('format' => '!la_title_OrdersExport!'), 'orders_product_edit' => Array ('format' => '!la_title_Editing_Order_Item!'), ), 'EditTabPresets' => Array ( 'Default' => Array ( 'general' => Array ('title' => 'la_tab_General', 't' => 'in-commerce/orders/orders_edit', 'priority' => 1), 'items' => Array ('title' => 'la_tab_Items', 't' => 'in-commerce/orders/orders_edit_items', 'priority' => 2), 'shipping' => Array ('title' => 'la_tab_Shipping', 't' => 'in-commerce/orders/orders_edit_shipping', 'priority' => 3), 'billing' => Array ('title' => 'la_tab_Billing', 't' => 'in-commerce/orders/orders_edit_billing', 'priority' => 4), 'preview' => Array ('title' => 'la_tab_Preview', 't' => 'in-commerce/orders/orders_edit_preview', 'priority' => 5), ), ), 'PermSection' => Array ('main' => 'in-commerce:orders'), 'Sections' => Array ( 'in-commerce:orders' => Array ( 'parent' => 'in-commerce', 'icon' => 'in-commerce:orders', 'label' => 'la_tab_Orders', 'url' => Array ('t' => 'in-commerce/orders/orders_pending_list', 'pass' => 'm'), 'permissions' => Array ('view', 'add', 'edit', 'delete', 'advanced:approve', 'advanced:deny', 'advanced:archive', 'advanced:place', 'advanced:process', 'advanced:ship', 'advanced:reset_to_pending'), 'priority' => 1, 'type' => stTREE, ), ), 'SectionAdjustments' => Array ( 'in-portal:visits' => Array ( 'url' => Array ('t' => 'in-commerce/visits/visits_list_incommerce', 'pass' => 'm'), ), ), 'StatisticsInfo' => Array ( 'pending' => Array ( 'icon' => 'core:icon16_item.png', 'label' => 'la_title_Orders', 'js_url' => "#url#", 'url' => Array ('t' => 'in-commerce/orders/orders_pending_list', 'pass' => 'm'), 'status' => ORDER_STATUS_PENDING, ), ), 'TableName' => TABLE_PREFIX . 'Orders', 'CalculatedFields' => Array ( '' => Array ( 'CustomerName' => 'IF( ISNULL(u.Username), IF (%1$s.PortalUserId = ' . USER_ROOT . ', "root", IF (%1$s.PortalUserId = ' . USER_GUEST . ', "Guest", "n/a")), CONCAT(u.FirstName," ",u.LastName) )', 'Username' => 'IF( ISNULL(u.Username),"root",IF(u.Username = "", u.Email, u.Username))', 'OrderNumber' => 'CONCAT(LPAD(%1$s.Number,6,"0"),\'-\',LPAD(%1$s.SubNumber,3,"0") )', 'SubtotalWithoutDiscount' => '(%1$s.SubTotal + %1$s.DiscountTotal)', 'SubtotalWithDiscount' => '(%1$s.SubTotal)', 'AmountWithoutVAT' => '(%1$s.SubTotal+IF(%1$s.ShippingTaxable=1, %1$s.ShippingCost, 0)+IF(%1$s.ProcessingTaxable=1, %1$s.ProcessingFee, 0)-IF(%1$s.VATIncluded=1,%1$s.VAT,0))', 'TotalAmount' => '%1$s.SubTotal+%1$s.ShippingCost+IF(%1$s.VATIncluded=1,0,%1$s.VAT)+%1$s.ProcessingFee+%1$s.InsuranceFee-%1$s.GiftCertificateDiscount', 'CouponCode' => 'pc.Code', 'CouponName' => 'pc.Name', 'AffiliateUser' => 'IF(au.PortalUserId IS NULL, "!la_None!", IF(au.Username = "", au.Email, au.Username))', 'AffiliatePortalUserId' => 'af.PortalUserId', 'GiftCertificateCode' => 'gc.Code', 'GiftCertificateRecipient' => 'gc.Recipient', 'ShippingSubTotal' => '%1$s.ShippingCost + %1$s.InsuranceFee', ), 'myorders' => Array ( 'OrderNumber' => 'CONCAT(LPAD(%1$s.Number,6,"0"),\'-\',LPAD(%1$s.SubNumber,3,"0") )', 'SubtotalWithoutDiscount' => '(%1$s.SubTotal + %1$s.DiscountTotal)', 'SubtotalWithDiscount' => '(%1$s.SubTotal)', 'AmountWithoutVAT' => '(%1$s.SubTotal+IF(%1$s.ShippingTaxable=1, %1$s.ShippingCost, 0)+IF(%1$s.ProcessingTaxable=1, %1$s.ProcessingFee, 0)-IF(%1$s.VATIncluded=1,%1$s.VAT,0))', 'TotalAmount' => '%1$s.SubTotal+%1$s.ShippingCost+IF(%1$s.VATIncluded=1,0,%1$s.VAT)+%1$s.ProcessingFee+%1$s.InsuranceFee-%1$s.GiftCertificateDiscount', /*'ItemsCount' => 'COUNT(%1$s.OrderId)',*/ 'ShippingSubTotal' => '%1$s.ShippingCost + %1$s.InsuranceFee', ), ), // %1$s - table name of object // %2$s - calculated fields 'ListSQLs' => Array ( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Users u ON %1$s.PortalUserId = u.PortalUserId LEFT JOIN '.TABLE_PREFIX.'ProductsCoupons pc ON %1$s.CouponId = pc.CouponId LEFT JOIN '.TABLE_PREFIX.'GiftCertificates gc ON %1$s.GiftCertificateId = gc.GiftCertificateId LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId LEFT JOIN '.TABLE_PREFIX.'Users au ON af.PortalUserId = au.PortalUserId', 'myorders' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Users u ON %1$s.PortalUserId = u.PortalUserId', // LEFT JOIN '.TABLE_PREFIX.'OrderItems ON %1$s.OrderId = '.TABLE_PREFIX.'OrderItems.OrderId', ), 'SubItems' => Array ('orditems'), 'ListSortings' => Array ( '' => Array ( 'Sorting' => Array ('OrderDate' => 'desc'), ) ), 'Fields' => Array ( 'OrderId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0, 'filter_type' => 'equals'), 'Number' => Array ('type' => 'int', 'required' =>1, 'formatter' => 'kFormatter', 'unique' =>Array ('SubNumber'), 'format' => '%06d', 'max_value_inc'>999999, 'not_null' => 1, 'default' => 0), 'SubNumber' => Array ('type' => 'int', 'required' =>1, 'formatter' => 'kFormatter', 'unique' =>Array ('Number'), 'format' => '%03d', 'max_value_inc'>999, 'not_null' => 1, 'default' => 0), 'Status' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' =>Array (0=> 'la_Incomplete',1=> 'la_Pending',2=> 'la_BackOrders',3=> 'la_ToShip',4=> 'la_Processed',5=> 'la_Denied',6=> 'la_Archived'), 'use_phrases' =>1, 'not_null' => 1, 'default' => 0, 'filter_type' => 'equals'), 'OnHold' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0, ), 'OrderDate' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'required' => 1, 'default' => '#NOW#'), 'PortalUserId' =>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', 'left_key_field' => 'PortalUserId', 'left_title_field' => USER_TITLE_FIELD, 'required' =>1, 'not_null' =>1, 'default' =>-1), 'OrderIP' => Array ('type' => 'string', 'not_null' => 1, 'default' => '', 'filter_type' => 'like'), - 'UserComment' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => NULL), - 'AdminComment' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => NULL), + 'UserComment' => Array ('type' => 'string', 'default' => NULL), + 'AdminComment' => Array ('type' => 'string', 'default' => NULL), 'BillingTo' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingCompany' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingPhone' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingFax' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingEmail' => Array ( 'type' => 'string', 'formatter' => 'kFormatter', 'regexp' => '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i', 'error_msgs' => Array ('invalid_format' => '!la_invalid_email!', 'unique' => '!lu_email_already_exist!'), 'not_null' => 1, 'default' => '', ), 'BillingAddress1' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingAddress2' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingCity' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingState' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'option_key_field' => 'DestAbbr', 'option_title_field' => 'Translation', 'not_null' => 1, 'default' => '', ), 'BillingZip' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'BillingCountry' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options_sql' => ' SELECT IF(l%2$s_Name = "", l%3$s_Name, l%2$s_Name) AS Name, IsoCode FROM '.TABLE_PREFIX.'CountryStates WHERE Type = ' . DESTINATION_TYPE_COUNTRY . ' ORDER BY Name', 'option_key_field' => 'IsoCode', 'option_title_field' => 'Name', 'not_null' => 1, 'default' => 'USA' ), 'VAT' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'not_null' =>1, 'default' => '0', 'format' => '%01.2f'), 'VATPercent' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'not_null' =>1, 'default' => '0', 'format' => '%01.3f'), 'VATIncluded' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0, ), 'PaymentType' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT IF(l%2$s_Description <> "", l%2$s_Description, l%3$s_Description) AS Description, PaymentTypeId FROM ' . TABLE_PREFIX . 'PaymentTypes WHERE Status = 1 ORDER BY Priority DESC, Name ASC', 'option_key_field' => 'PaymentTypeId', 'option_title_field' => 'Description', 'not_null' => 1, 'default' => 0 ), 'PaymentAccount' => Array ('type' => 'string', 'not_null' => 1, 'cardtype_field' => 'PaymentCardType', 'default' => '', 'filter_type' => 'like'), 'PaymentNameOnCard' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'PaymentCCExpDate' => Array ('type' => 'string', 'formatter' => 'kCCDateFormatter', 'month_field' => 'PaymentCCExpMonth', 'year_field' => 'PaymentCCExpYear', 'not_null' => 1, 'default' => ''), 'PaymentCardType' => Array ('type' => 'string', 'not_null' => 1, 'formatter' => 'kOptionsFormatter', 'options' => Array ('' => '', '1' => 'Visa', '2' => 'Mastercard', '3' => 'Amex', '4' => 'Discover', '5' => 'Diners Club', '6' => 'JBC'), 'default' => ''), 'PaymentExpires' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'), 'ShippingTo' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingCompany' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingPhone' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingFax' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingEmail' => Array ( 'type' => 'string', 'formatter' => 'kFormatter', 'regexp' => '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i', 'error_msgs' => Array ('invalid_format' => '!la_invalid_email!'), 'not_null' => 1, 'default' => '', ), 'ShippingAddress1' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingAddress2' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingCity' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingState' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'option_key_field' => 'DestAbbr', 'option_title_field' => 'Translation', 'not_null' => 1, 'default' => ''), 'ShippingZip' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingCountry' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options_sql' => ' SELECT IF(l%2$s_Name = "", l%3$s_Name, l%2$s_Name) AS Name, IsoCode FROM '.TABLE_PREFIX.'CountryStates WHERE Type = ' . DESTINATION_TYPE_COUNTRY . ' ORDER BY Name', 'option_key_field' => 'IsoCode', 'option_title_field' => 'Name', 'not_null' => 1, 'default' => 'USA' ), 'ShippingType' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'ShippingType WHERE Status = 1', 'option_key_field' => 'ShippingID', 'option_title_field' => 'Name', 'not_null' => 1, 'default' => 0, ), 'ShippingCost' => Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'not_null' => 1, 'default' => '0.00'), 'ShippingCustomerAccount' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingTracking' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'ShippingDate' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => null), 'SubTotal' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'not_null' => 1, 'default' => '0.00'), 'ReturnTotal' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'not_null' => 1, 'default' => '0.00'), 'CostTotal' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'not_null' => 1, 'default' => '0.00'), 'OriginalAmount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'not_null' => 1, 'default' => '0.00'), 'ShippingOption' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array ( 0 => 'la_ship_all_together', 1 => 'la_ship_backorder_separately', 2 => 'la_ship_backorders_upon_avail', ), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0, ), 'ShippingGroupOption' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' => Array (0 => 'la_opt_AutoGroupShipments', 1 => 'la_opt_ManualGroupShipments'), 'not_null' => 1, 'default' => 0, ), 'GiftCertificateId' => Array ('type' => 'int', 'default' => null), 'GiftCertificateDiscount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'not_null' => 1, 'default' => '0.00',), 'ShippingInfo' => Array ('type' => 'string', 'default' => NULL), 'CouponId' => Array ('type' => 'int', 'default' => null), 'CouponDiscount' => Array ('type' => 'float', 'not_null' => 1, 'default' => '0.00', 'formatter' => 'kFormatter', 'format' => '%01.2f'), 'DiscountTotal' => Array ('type' => 'float', 'not_null' => 1, 'default' => '0.00', 'formatter' => 'kFormatter', 'format' => '%01.2f'), 'TransactionStatus' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_opt_Invalid', 1 => 'la_opt_Verified', 2 => 'la_opt_Pending'), 'use_phrases' =>1, 'not_null' => 1, 'default' => 2, ), 'GWResult1' => Array ('type' => 'string', 'formatter' => 'kSerializedFormatter', 'default' => NULL), 'GWResult2' => Array ('type' => 'string', 'formatter' => 'kSerializedFormatter', 'default' => NULL), 'AffiliateId' => Array ('type' => 'int', 'formatter' => 'kLEFTFormatter', 'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!'), 'options' => Array (0 => 'lu_None'), 'left_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Affiliates af LEFT JOIN '.TABLE_PREFIX.'Users u ON u.PortalUserId = af.PortalUserId WHERE %s', 'left_key_field' => 'AffiliateId', 'left_title_field' => 'IF(u.Email = "", u.Username, u.Email)', 'not_null' =>1, 'default' =>0), 'VisitId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'AffiliateCommission' => Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%.02f', 'not_null' => 1, 'default' => '0.0000'), 'ProcessingFee' => Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%.02f', 'not_null' => '0', 'default' => '0.0000'), 'InsuranceFee' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'not_null' => 1, 'default' => '0.00'), 'ShippingTaxable' => Array ('type' => 'int', 'not_null' => 0, 'default' => 0), 'ProcessingTaxable' => Array ('type' => 'int', 'not_null' => 0, 'default' => 0), 'IsRecurringBilling' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes',), 'use_phrases' => 1, 'default' => 0, 'not_null' => 1, ), 'ChargeOnNextApprove' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes',), 'use_phrases' => 1, 'default' => 0, 'not_null' => 1, ), 'NextCharge' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => null), 'GroupId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'GoogleOrderNumber' => Array ('type' => 'string', 'default' => NULL), // MySQL BIGINT UNSIGNED = 8 Bytes, PHP int = 4 Bytes -> threat as string ), 'VirtualFields' => Array ( 'CustomerName' => Array ('type' => 'string', 'default' => '', 'filter_type' => 'like'), 'TotalAmount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'default' => '0.00'), 'AmountWithoutVAT' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'default' => '0.00'), 'SubtotalWithDiscount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'default' => '0.00'), 'SubtotalWithoutDiscount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'default' => '0.00'), 'ShippingSubTotal' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%01.2f', 'default' => '0.00'), 'OrderNumber' => Array ('type' => 'string', 'default' => '', 'filter_type' => 'like'), 'CouponCode' => Array ('type' => 'string', 'default' => ''), 'CouponName' => Array ('type' => 'string', 'default' => ''), 'GiftCertificateCode' => Array ('type' => 'string', 'default' => ''), 'GiftCertificateRecipient' => Array ('type' => 'string', 'default' => ''), // for ResetToUser 'UserTo' => Array ('type' => 'string', 'default' => ''), 'UserCompany' => Array ('type' => 'string', 'default' => ''), 'UserPhone' => Array ('type' => 'string', 'default' => ''), 'UserFax' => Array ('type' => 'string', 'default' => ''), 'UserEmail' => Array ('type' => 'string', 'default' => ''), 'UserAddress1' => Array ('type' => 'string', 'default' => ''), 'UserAddress2' => Array ('type' => 'string', 'default' => ''), 'UserCity' => Array ('type' => 'string', 'default' => ''), 'UserState' => Array ('type' => 'string', 'default' => ''), 'UserZip' => Array ('type' => 'string', 'default' => ''), 'UserCountry' => Array ('type' => 'string', 'default' => ''), // for Search 'Username' => Array ('type' => 'string', 'filter_type' => 'like', 'default' => ''), 'HasBackOrders' => Array ('type' => 'int', 'default' => 0), 'PaymentCVV2' => Array ('type' => 'string', 'default' => ''), 'AffiliateUser' => Array ('type' => 'string', 'filter_type' => 'like', 'default' => ''), 'AffiliatePortalUserId' => Array ('type' => 'int', 'default' => 0), // export related fields: begin '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' => ''), 'ExportPresets' => Array ('type' => 'string', 'formatter' => 'kOptionsFormatter', 'options' => Array (), 'default' => ''), 'ExportSavePreset' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'default' => 0, ), 'ExportPresetName' => Array ('type' => 'string', 'default' => ''), // export related fields: end // for "one step checkout" 'UserPassword' => Array ( 'type' => 'string', 'formatter' => 'kPasswordFormatter', 'hashing_method' => PasswordHashingMethod::MD5, 'verify_field' => 'VerifyUserPassword', 'skip_empty' => 1, 'default' => 'd41d8cd98f00b204e9800998ecf8427e' ), // for "Shipping Info" step during Checkout 'ShippingTypeId' => Array ('type' => 'array', 'default' => ''), ), 'Grids' => Array ( 'Default' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', 1 => 'icon16_pending.png', 5 => 'icon16_disabled.png', 'module' => 'core', ), 'Fields' => Array ( 'OrderId' => Array ('title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 70, ), 'OrderNumber' => Array ( 'data_block' => 'grid_ordernumber_td', 'filter_block' => 'grid_like_filter', 'width' => 100, ), 'OrderDate' => Array ( 'title' => 'la_col_OrderDate', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_date_range_filter', 'width' => 140, ), 'CustomerName' => Array ( 'title' => 'la_col_CustomerName', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId', 'filter_block' => 'grid_like_filter', 'width' => 140, ), 'PaymentType' => Array ( 'data_block' => 'grid_billinglink_td', 'filter_block' => 'grid_options_filter', 'width' => 140, ), 'TotalAmount' => Array ( 'data_block' => 'grid_previewlink_td', 'filter_block' => 'grid_range_filter', 'width' => 140, ), 'AffiliateUser' => Array ( 'data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId', 'filter_block' => 'grid_like_filter', 'width' => 140, ), 'OnHold' => Array ('filter_block' => 'grid_options_filter', 'width' => 100, ), ), ), 'Search' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', 1 => 'icon16_pending.png', 5 => 'icon16_disabled.png', 'module' => 'core', ), 'Fields' => Array ( 'OrderId' => Array ('title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 70, ), 'OrderNumber' => Array ('data_block' => 'grid_ordernumber_td', 'filter_block' => 'grid_like_filter', 'width' => 100, ), 'Status' => Array ('filter_block' => 'grid_options_filter', 'filter_block' => 'grid_options_filter', 'width' => 100, ), 'OrderDate' => Array ('title' => 'la_col_OrderDate', 'filter_block' => 'grid_date_range_filter', 'width' => 140, ), 'CustomerName' => Array ('title' => 'la_col_CustomerName', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId', 'filter_block' => 'grid_like_filter'), 'PaymentType' => Array ('data_block' => 'grid_billinglink_td', 'filter_block' => 'grid_options_filter'), 'TotalAmount' => Array ('data_block' => 'grid_previewlink_td', 'filter_block' => 'grid_range_filter'), 'AffiliateUser' => Array ('data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId', 'filter_block' => 'grid_user_like_filter'), 'OrderIP' => Array ('filter_block' => 'grid_like_filter'), 'Username' => Array ('filter_block' => 'grid_user_like_filter'), 'PaymentAccount' => Array ('title' => 'column:la_fld_CreditCardNumber', 'filter_block' => 'grid_like_filter'), ), ), ), ); Index: branches/5.2.x/units/products/products_config.php =================================================================== --- branches/5.2.x/units/products/products_config.php (revision 16579) +++ branches/5.2.x/units/products/products_config.php (revision 16580) @@ -1,701 +1,701 @@ 'p', 'ItemClass' => Array ('class' => 'ProductsItem', 'file' => 'products_item.php', 'build_event' => 'OnItemBuild'), 'ListClass' => Array ('class' => 'kCatDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array ('class' => 'ProductsEventHandler', 'file' => 'products_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array ('class' => 'ProductsTagProcessor', 'file' => 'products_tag_processor.php', 'build_event' => 'OnBuild'), 'AutoLoad' => true, 'QueryString' => Array ( 1 => 'id', 2 => 'Page', 3 => 'PerPage', 4 => 'event', 5 => 'mode', ), 'CatalogItem' => true, 'AdminTemplatePath' => 'products', 'AdminTemplatePrefix' => 'products_', 'SearchConfigPostfix' => 'products', 'ConfigPriority' => 0, 'RewritePriority' => 104, 'RewriteListener' => 'CategoryItemRewrite:RewriteListener', 'Hooks' => Array ( Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'lst', 'HookToSpecial' => '', 'HookToEvent' => Array ( 'OnBeforeCopyToLive' ), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnSaveVirtualProduct', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'lst', 'HookToSpecial' => '*', 'HookToEvent' => Array ('OnAfterItemDelete'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnDeleteListingType', ), Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => 'lst', 'HookToSpecial' => '*', 'HookToEvent' => Array ('OnAfterConfigRead'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnModifyPaidListingConfig', ), Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => 'file', 'HookToSpecial' => '', 'HookToEvent' => Array ( 'OnNew', 'OnEdit' ), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnPreSave', ), Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => '', 'HookToSpecial' => '*', 'HookToEvent' => Array ('OnAfterConfigRead'), 'DoPrefix' => 'cdata', 'DoSpecial' => '*', 'DoEvent' => 'OnDefineCustomFields', ), 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' => 'ci', 'HookToSpecial' => '*', 'HookToEvent' => Array ('OnAfterConfigRead'), 'DoPrefix' => '', 'DoSpecial' => '*', 'DoEvent' => 'OnCloneSubItem', ), ), 'IDField' => 'ProductId', 'StatusField' => Array ('Status'), // field, that is affected by Approve/Decline events 'TitleField' => 'Name', // field, used in bluebar when editing existing item 'ItemType' => 11, // this is used when relation to product is added from in-portal and via-versa 'ViewMenuPhrase' => 'la_text_Products', 'CatalogTabIcon' => 'in-commerce:icon16_products.png', 'ItemPropertyMappings' => Array ( 'NewDays' => 'Product_NewDays', // number of days item to be NEW 'MinPopVotes' => 'Product_MinPopVotes', // minimum number of votes for an item to be POP 'MinPopRating' => 'Product_MinPopRating', // minimum rating for an item to be POP 'MaxHotNumber' => 'Product_MaxHotNumber', // maximum number of HOT (top seller) items 'HotLimit' => 'Product_HotLimit', // variable name in inp_Cache table 'ClickField' => 'Hits', // item click count is stored here (in item table) ), 'TitlePhrase' => 'la_text_Product', 'TitlePresets' => Array ( 'default' => Array ( 'new_status_labels' => Array ('p' => '!la_title_Adding_Product!'), 'edit_status_labels' => Array ('p' => '!la_title_Editing_Product!'), 'new_titlefield' => Array ('p' => '!la_title_NewProduct!'), ), 'product_list' =>Array ( 'prefixes' => Array ('c_List', 'p_List'), 'tag_params' => Array ('c' => Array ('per_page' =>-1)), 'format' => "!la_title_Categories! (#c_recordcount#) - !la_title_Products! (#p_recordcount#)", ), 'products_edit' =>Array ( 'prefixes' => Array ('p'), 'new_titlefield' => Array ('p' => '!la_title_NewProduct!'), 'format' => "#p_status# '#p_titlefield#' - !la_title_General!", ), 'inventory' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# - '#p_titlefield#' - !la_title_Product_Inventory!"), 'pricing' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Product_Pricing!"), 'access_pricing' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Product_AccessPricing!"), 'access' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Product_Access!"), 'files' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Product_Files!"), 'options' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Product_Options!"), 'categories' => Array ('prefixes' => Array ('p', 'p-ci_List'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Categories!"), 'relations' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Relations!"), 'content' => Array ('prefixes' => Array ('p', 'p.content_List'), 'tag_params' => Array ('p.content' => Array ('types' => 'content', 'live_table' =>true)), 'format' => "#p_status# '#p_titlefield#' - !la_title_Product_PackageContent!"), 'images' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Images!"), 'reviews' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Reviews!"), 'products_custom' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_Custom!"), 'images_edit' => Array ( 'prefixes' => Array ('p', 'img'), 'new_status_labels' => Array ('img' => '!la_title_Adding_Image!'), 'edit_status_labels' => Array ('img' => '!la_title_Editing_Image!'), 'new_titlefield' => Array ('img' => '!la_title_New_Image!'), 'format' => "#p_status# '#p_titlefield#' - #img_status# '#img_titlefield#'", ), 'pricing_edit' => Array ( 'prefixes' => Array ('p', 'pr'), 'new_status_labels' => Array ('pr' =>"!la_title_Adding_PriceBracket! '!la_title_New_PriceBracket!'"), 'edit_status_labels' => Array ('pr' => '!la_title_Editing_PriceBracket!'), 'format' => "#p_status# '#p_titlefield#' - #pr_status#", ), 'options_edit' => Array ( 'prefixes' => Array ('p', 'po'), 'new_status_labels' => Array ('po' =>"!la_title_Adding_Option!"), 'edit_status_labels' => Array ('po' => '!la_title_Editing_Option!'), 'new_titlefield' => Array ('po' => '!la_title_New_Option!'), 'format' => "#p_status# '#p_titlefield#' - #po_status# '#po_titlefield#'", ), 'options_combinations' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_ManagingOptionCombinations!"), 'shipping_options' => Array ('prefixes' => Array ('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_ManagingShippingOptions!"), 'file_edit' => Array ( 'prefixes' => Array ('p', 'file'), 'new_status_labels' => Array ('file' =>"!la_title_Adding_File!"), 'edit_status_labels' => Array ('file' => '!la_title_Editing_File!'), 'new_titlefield' => Array ('file' => '!la_title_New_File!'), 'format' => "#p_status# '#p_titlefield#' - #file_status# '#file_titlefield#'", ), 'relations_edit' => Array ( 'prefixes' => Array ('p', 'rel'), 'new_status_labels' => Array ('rel' =>"!la_title_Adding_Relationship! '!la_title_New_Relationship!'"), 'edit_status_labels' => Array ('rel' => '!la_title_Editing_Relationship!'), 'format' => "#p_status# '#p_titlefield#' - #rel_status#", ), 'reviews_edit' => Array ( 'prefixes' => Array ('p', 'rev'), 'new_status_labels' => Array ('rev' =>"!la_title_Adding_Review! '!la_title_New_Review!'"), 'edit_status_labels' => Array ('rev' => '!la_title_Editing_Review!'), 'format' => "#p_status# '#p_titlefield#' - #rev_status#", ), 'products_export' => Array ('format' => '!la_title_ProductsExport!'), 'products_import' => Array ('format' => '!la_title_ImportProducts!'), 'tree_in-commerce' => Array ('format' => '!la_Text_Version! '.$this->Application->findModule('Name', 'In-Commerce', 'Version')), ), 'EditTabPresets' => Array ( 'Default' => Array ( 'general' => Array ('title' => 'la_tab_General', 't' => 'in-commerce/products/products_edit', 'priority' => 1), 'inventory' => Array ('title' => 'la_tab_Inventory', 't' => 'in-commerce/products/products_inventory', 'priority' => 2), 'access_and_pricing' => Array ('title' => 'la_tab_AccessAndPricing', 't' => 'in-commerce/products/products_access', 'priority' => 3), 'pricing' => Array ('title' => 'la_tab_Pricing', 't' => 'in-commerce/products/products_pricing', 'priority' => 4), // 'pricing2' => Array ('title' => 'la_tab_Pricing', 't' => 'in-commerce/products/products_access_pricing', 'priority' => 5), 'files_and_pricing' => Array ('title' => 'la_tab_FilesAndPricing', 't' => 'in-commerce/products/products_files', 'priority' => 6), 'options' => Array ('title' => 'la_tab_Options', 't' => 'in-commerce/products/products_options', 'priority' => 7), 'categories' => Array ('title' => 'la_tab_Categories', 't' => 'in-commerce/products/products_categories', 'priority' => 8), 'relations' => Array ('title' => 'la_tab_Relations', 't' => 'in-commerce/products/products_relations', 'priority' => 9), 'package_content' => Array ('title' => 'la_tab_PackageContent', 't' => 'in-commerce/products/products_packagecontent', 'priority' => 10), 'images' => Array ('title' => 'la_tab_Images', 't' => 'in-commerce/products/products_images', 'priority' => 11), 'reviews' => Array ('title' => 'la_tab_Reviews', 't' => 'in-commerce/products/products_reviews', 'priority' => 12), 'custom' => Array ('title' => 'la_tab_Custom', 't' => 'in-commerce/products/products_custom', 'priority' => 13), ), ), 'PermItemPrefix' => 'PRODUCT', 'PermTabText' => 'In-Commerce', 'PermSection' => Array ('main' => 'CATEGORY:in-commerce:products_list', 'search' => 'in-commerce:search', 'custom' => 'in-commerce:configuration_custom'), 'Sections' => Array ( 'in-commerce' => Array ( 'parent' => 'in-portal:root', 'icon' => 'ecommerce', 'label' => 'la_title_In-Commerce', 'url' => Array ('t' => 'index', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view'), 'priority' => 2.1, 'container' => true, 'type' => stTREE, ), 'in-commerce:products' => Array ( 'parent' => 'in-portal:site', 'icon' => 'products', 'label' => 'la_tab_Products', 'url' => Array ('t' => 'catalog/advanced_view', 'anchor' => 'tab-p.showall', 'pass' => 'm'), 'onclick' => 'setCatalogTab(\'p.showall\')', 'permissions' => Array ('view'), 'priority' => 3.2, 'type' => stTREE, ), // product settings 'in-commerce:setting_folder' => Array ( 'parent' => 'in-portal:system', 'icon' => 'conf_ecommerce', 'label' => 'la_title_In-Commerce', 'use_parent_header' => 1, 'url' => Array ('t' => 'index', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view'), 'priority' => 3.1, 'container' => true, 'type' => stTREE, ), 'in-commerce:general' => Array ( 'parent' => 'in-commerce:setting_folder', 'icon' => 'conf_ecommerce_general', 'label' => 'la_tab_GeneralSettings', 'url' => Array ('t' => 'config/config_general', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view', 'add', 'edit'), 'priority' => 1, 'type' => stTREE, ), 'in-commerce:output' => Array ( 'parent' => 'in-commerce:setting_folder', 'icon' => 'core:conf_output', 'label' => 'la_tab_ConfigOutput', 'url' => Array ('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view', 'add', 'edit'), 'priority' => 2, 'type' => stTREE, ), 'in-commerce:search' => Array ( 'parent' => 'in-commerce:setting_folder', 'icon' => 'core:conf_search', 'label' => 'la_tab_ConfigSearch', 'url' => Array ('t' => 'config/config_search', 'module_key' => 'products', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view', 'edit'), 'priority' => 7, 'type' => stTREE, ), 'in-commerce:configuration_custom' => Array ( 'parent' => 'in-commerce:setting_folder', 'icon' => 'core:conf_customfields', 'label' => 'la_tab_ConfigCustom', 'url' => Array ('t' => 'custom_fields/custom_fields_list', 'cf_type' => 11, 'pass_section' => true, 'pass' => 'm,cf'), 'permissions' => Array ('view', 'add', 'edit', 'delete'), 'priority' => 8, 'type' => stTREE, ), 'in-commerce:contacts' => Array ( 'parent' => 'in-commerce:setting_folder', 'icon' => 'conf_contact_info', 'label' => 'la_tab_ConfigContacts', 'url' => Array ('t' => 'config/config_universal', 'pass_section' => true, 'pass' => 'm'), 'permissions' => Array ('view', 'add', 'edit'), 'priority' => 10, '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_TopSellers', '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 . 'Products', 'CustomDataTableName' => TABLE_PREFIX . 'ProductsCustomData', 'CalculatedFields' => Array ( '' => Array ( 'AltName' => 'img.AltName', 'SameImages' => 'img.SameImages', 'LocalThumb' => 'img.LocalThumb', 'ThumbPath' => 'img.ThumbPath', 'ThumbUrl' => 'img.ThumbUrl', 'LocalImage' => 'img.LocalImage', 'LocalPath' => 'img.LocalPath', 'FullUrl' => 'img.Url', 'Price' => 'COALESCE(pricing.Price, 0)', 'Cost' => 'COALESCE(pricing.Cost, 0)', 'PrimaryCat' => TABLE_PREFIX.'%3$sCategoryItems.PrimaryCat', 'CategoryId' => TABLE_PREFIX.'%3$sCategoryItems.CategoryId', 'ParentPath' => TABLE_PREFIX.'Categories.ParentPath', 'Manufacturer' => TABLE_PREFIX.'Manufacturers.Name', 'Filename' => TABLE_PREFIX.'%3$sCategoryItems.Filename', 'CategoryFilename' => TABLE_PREFIX.'Categories.NamedParentPath', 'FileSize' => 'files.Size', 'FilePath' => 'files.FilePath', 'FileVersion' => 'files.Version', ), 'showall' => Array ( 'Price' => 'COALESCE(pricing.Price, 0)', 'Manufacturer' => TABLE_PREFIX.'Manufacturers.Name', 'PrimaryCat' => TABLE_PREFIX.'%3$sCategoryItems.PrimaryCat', 'CategoryId' => TABLE_PREFIX.'%3$sCategoryItems.CategoryId', 'FileSize' => 'files.Size', 'FilePath' => 'files.FilePath', 'FileVersion' => 'files.Version', 'Filename' => TABLE_PREFIX.'%3$sCategoryItems.Filename', 'CategoryFilename' => TABLE_PREFIX.'Categories.NamedParentPath', ), ), 'CacheModRewrite' => true, 'ListSQLs' => Array ( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'UserGroups ON '.TABLE_PREFIX.'UserGroups.GroupId = %1$s.AccessGroupId LEFT JOIN '.TABLE_PREFIX.'%3$sCategoryItems ON '.TABLE_PREFIX.'%3$sCategoryItems.ItemResourceId = %1$s.ResourceId {PERM_JOIN} 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.'%3$sProductFiles files ON files.ProductId = %1$s.ProductId AND files.IsPrimary = 1 LEFT JOIN '.TABLE_PREFIX.'%3$sProductsPricing pricing ON pricing.ProductId = %1$s.ProductId AND pricing.IsPrimary = 1 LEFT JOIN '.TABLE_PREFIX.'Manufacturers ON '.TABLE_PREFIX.'Manufacturers.ManufacturerId = %1$s.ManufacturerId LEFT JOIN '.TABLE_PREFIX.'%3$sProductsCustomData cust ON %1$s.ResourceId = cust.ResourceId', 'showall' => 'SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'%3$sProductsPricing pricing ON pricing.ProductId = %1$s.ProductId AND pricing.IsPrimary = 1 LEFT JOIN '.TABLE_PREFIX.'%3$sProductFiles files ON files.ProductId = %1$s.ProductId AND files.IsPrimary = 1 LEFT JOIN '.TABLE_PREFIX.'Manufacturers ON '.TABLE_PREFIX.'Manufacturers.ManufacturerId = %1$s.ManufacturerId LEFT JOIN '.TABLE_PREFIX.'%3$sCategoryItems ON '.TABLE_PREFIX.'%3$sCategoryItems.ItemResourceId = %1$s.ResourceId {PERM_JOIN} LEFT JOIN '.TABLE_PREFIX.'Categories ON '.TABLE_PREFIX.'Categories.CategoryId = '.TABLE_PREFIX.'%3$sCategoryItems.CategoryId LEFT JOIN '.TABLE_PREFIX.'%3$sProductsCustomData cust ON %1$s.ResourceId = cust.ResourceId', ), 'ListSortings' => Array ( '' => Array ( 'ForcedSorting' => Array ('EditorsPick' => 'desc', 'Priority' => 'desc'), 'Sorting' => Array ('Name' => 'asc'), ) ), 'ItemSQLs' => Array ( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'UserGroups pg ON pg.GroupId = %1$s.AccessGroupId 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.'%3$sProductFiles files ON files.ProductId = %1$s.ProductId AND files.IsPrimary = 1 LEFT JOIN '.TABLE_PREFIX.'%3$sProductsPricing pricing ON pricing.ProductId = %1$s.ProductId AND pricing.IsPrimary = 1 LEFT JOIN '.TABLE_PREFIX.'Manufacturers ON '.TABLE_PREFIX.'Manufacturers.ManufacturerId = %1$s.ManufacturerId LEFT JOIN '.TABLE_PREFIX.'%3$sProductsCustomData cust ON %1$s.ResourceId = cust.ResourceId', ), 'SubItems' => Array ('pr', 'rev', 'img', 'po', 'poc', 'p-ci', 'rel', 'file', 'p-cdata', 'p-fav'), 'Fields' => Array ( 'ProductId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0,), 'Name' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'required' => 1, 'max_len' =>255, 'default' => ''), 'AutomaticFilename' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 1, ), 'SKU' => Array ('type' => 'string', 'required' => 1, 'max_len' =>255, 'error_msgs' => Array ('required' => 'Please fill in'), 'default' => NULL), 'Description' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'using_fck' => 1, 'default' => NULL), - 'DescriptionExcerpt' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'using_fck' => 1, 'default' => NULL), + 'DescriptionExcerpt' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'default' => NULL), 'Weight' => Array ('type' => 'float', 'min_value_exc' => 0, 'formatter' => 'kUnitFormatter', 'format' => '%0.2f', 'default' => NULL), 'MSRP' => Array ('type' => 'float', 'min_value_inc' => 0, 'formatter' => 'kFormatter', 'format' => '%0.2f', 'default' => NULL), 'ManufacturerId' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Manufacturers ORDER BY Name', 'option_key_field' => 'ManufacturerId', 'option_title_field' => 'Name', '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, 'default' => 2, 'not_null' => 1, ), 'BackOrder' => Array ('type' => 'int', 'not_null' => 1, 'options' => Array ( 2 => 'la_Auto', 1 => 'la_Always', 0 => 'la_Never' ), 'use_phrases' => 1, 'default' => 2 ), 'BackOrderDate' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'error_msgs' => Array ('bad_date_format' => 'Please use the following date format: %s'), 'default' => NULL), '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 ), '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 ), 'EditorsPick' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0, ), 'Featured' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0, ), 'OnSale' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0, ), 'Priority' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'CachedRating' => Array ('type' => 'string', 'not_null' => 1, 'formatter' => 'kFormatter', 'default' => 0), 'CachedVotesQty' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'Hits' => Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%d', 'not_null' => 1, 'default' => 0), 'CreatedOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'), 'Expire' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' =>null), 'Type' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' => Array ( PRODUCT_TYPE_TANGIBLE => 'la_product_tangible', PRODUCT_TYPE_SUBSCRIPTION => 'la_product_subscription', PRODUCT_TYPE_SERVICE => 'la_product_service', PRODUCT_TYPE_DOWNLOADABLE => 'la_product_downloadable', /* PRODUCT_TYPE_PACKAGE => 'la_product_package', */ ), 'not_null' => 1, 'default' => 1, ), 'Modified' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'), 'ModifiedById' => Array ('type' => 'int', 'default' => NULL), 'CreatedById' => Array ( 'type' => 'int', 'formatter' => 'kLEFTFormatter', 'options' => Array (USER_ROOT => 'root', USER_GUEST => 'Guest'), 'left_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'Users WHERE %s', 'left_key_field' => 'PortalUserId', 'left_title_field' => USER_TITLE_FIELD, 'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!'), 'sample_value' => 'Guest', 'required' => 1, 'default' => NULL, ), 'ResourceId' => Array ('type' => 'int', 'default' => null), 'CachedReviewsQty' => Array ('type' => 'int', 'formatter' => 'kFormatter', 'format' => '%d', 'not_null' => 1, 'default' => 0), 'InventoryStatus' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_Disabled', 1 => 'la_by_product', 2 => 'la_by_options'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), 'QtyInStock' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'QtyInStockMin' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'QtyReserved' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'QtyBackOrdered' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'QtyOnOrder' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), - 'InventoryComment' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null), + 'InventoryComment' => Array ('type' => 'string', 'default' => null), 'Qty' => Array ('type' => 'int', 'formatter' => 'kFormatter', 'regexp' => '/^[\d]+$/', 'error_msgs' => Array ('invalid_format' => '!la_invalid_integer!')), 'AccessGroupId' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'UserGroups WHERE System!=1 AND Personal !=1 ORDER BY Name', 'option_key_field' => 'GroupId', 'option_title_field' => 'Name', 'default' => NULL), 'AccessDuration' => Array ('type' => 'int', 'default' => NULL), 'AccessDurationType' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' =>Array (1 => 'la_opt_sec', 2 => 'la_opt_min', 3 => 'la_opt_hour', 4 => 'la_opt_day', 5 => 'la_opt_week', 6 => 'la_opt_month', 7 => 'la_opt_year' ), 'default' => NULL,), 'AccessStart' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => NULL), 'AccessEnd' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => NULL,), 'OptionsSelectionMode' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' =>Array (0 => 'la_opt_Selection', 1 => 'la_opt_List'), 'default' => 0), 'HasRequiredOptions' => Array ('type' => 'int', 'default' => 0, 'not_null' => 1), 'Virtual' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'ProcessingData' => Array ('type' => 'string', 'default' => ''), 'PackageContent' => Array ('type' => 'string', 'default' => NULL), 'IsRecurringBilling' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_No', 1 => 'la_Yes'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0, ), //'PayPalRecurring' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => '1', 'default' => '0'), 'ShippingMode' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' =>Array (0 => 'la_shipping_AnyAndSelected', 1 => 'la_shipping_Limited'), 'not_null' => 1, 'default' =>0), 'ProcessingData' => Array ('type' => 'string', 'default' => null), 'ShippingLimitation' => Array ('type' => 'string', 'default' => NULL), 'AssignedCoupon' => Array ( 'type' => 'int', 'formatter' => 'kLEFTFormatter', 'options' => Array (0 => 'None'), 'left_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'ProductsCoupons WHERE %s', 'left_key_field' => 'CouponId', 'left_title_field' => 'Name', 'not_null' => 1, 'default' => 0, ), 'MinQtyFreePromoShipping' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'MetaKeywords' => Array ('type' => 'string', 'default' => null), - 'MetaDescription' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => null), + 'MetaDescription' => Array ('type' => 'string', 'default' => null), ), 'VirtualFields' => Array ( 'Relevance' => Array ('type' => 'float', 'default' => 0), 'Qty' => Array ('type' => 'int', 'formatter' => 'kFormatter', 'regexp' => '/^[\d]+$/', 'default' => 0), 'Price' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => NULL), 'Cost' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => NULL), '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), 'Manufacturer' => 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', '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'), 'default' => '|Name|'), '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' => ''), 'CachedNavbar' => Array ('type' => 'string', 'default' => ''), 'ParentPath' => Array ('type' => 'string', 'default' => ''), 'FileSize' => Array ('type' => 'int', 'formatter' => 'kFilesizeFormatter', 'default' => 0), 'FilePath' => Array ('type' => 'string', 'default' => ''), 'FileVersion' => 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 ( 'default' => 'icon16_product.png', 0 => 'icon16_product_disabled.png', 1 => 'icon16_product.png', 2 => 'icon16_product_pending.png', 'NEW' => 'icon16_product_new.png', ), 'Fields' => Array ( 'ProductId' => Array ( 'title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60, ), 'SKU' => Array ( 'title' => 'la_col_ProductSKU', 'filter_block' => 'grid_like_filter', 'width' => 100, ), 'Name' => Array ( 'title' => 'la_col_ProductName', 'data_block' => 'grid_catitem_td', 'filter_block' => 'grid_like_filter', 'width' => 150, ), 'Priority' => Array ('filter_block' => 'grid_range_filter', 'width' => 65), 'Type' => Array ('title' => 'column:la_fld_ProductType', 'filter_block' => 'grid_options_filter', 'width' => 80, ), 'Manufacturer' => Array ('filter_block' => 'grid_like_filter', 'width' => 100, ), 'Price' => Array ('filter_block' => 'grid_range_filter', 'width' => 70, ), 'Status' => Array ('filter_block' => 'grid_options_filter', 'width' => 70, ), 'QtyInStock' => Array ('title' => 'column:la_fld_Qty', 'data_block' => 'qty_td', 'filter_block' => 'grid_range_filter', 'width' => 80, ), 'QtyBackOrdered' => Array ('title' => 'column:la_fld_QtyBackOrdered', 'filter_block' => 'grid_range_filter', 'width' => 80, ), 'OnSale' => Array ('title' => 'column:la_fld_OnSale', 'filter_block' => 'grid_options_filter', 'width' => 70, ), /*'Weight' => Array ( 'title' => 'la_col_ProductWeight', 'filter_block' => 'grid_range_filter', 'width' => 150, ), 'CreatedOn' => Array ( 'title' => 'la_col_ProductCreatedOn', 'filter_block' => 'grid_date_range_filter', 'width' => 150, ), 'BackOrderDate' => Array ( 'title' => 'la_col_ProductBackOrderDate', 'filter_block' => 'grid_date_range_filter', 'width' => 150, ),*/ ), ), 'Radio' => Array ( 'Icons' => Array ( 'default' => 'icon16_product.png', 0 => 'icon16_product_disabled.png', 1 => 'icon16_product.png', 2 => 'icon16_product_pending.png', 'NEW' => 'icon16_product_new.png', ), 'Selector' => 'radio', 'Fields' => Array ( 'ProductId' => Array ( 'title' => 'column:la_fld_Id', 'data_block' => 'grid_radio_td', 'filter_block' => 'grid_range_filter', 'width' => 60, ), 'SKU' => Array ( 'title' => 'la_col_ProductSKU', 'filter_block' => 'grid_like_filter', 'width' => 100, ), 'Name' => Array ( 'title' => 'la_col_ProductName', 'data_block' => 'grid_catitem_td', 'filter_block' => 'grid_like_filter', 'width' => 150, ), 'Priority' => Array ('filter_block' => 'grid_range_filter', 'width' => 65), 'Type' => Array ('title' => 'column:la_fld_ProductType', 'filter_block' => 'grid_options_filter', 'width' => 80, ), 'Manufacturer' => Array ('filter_block' => 'grid_like_filter', 'width' => 100, ), 'Price' => Array ('filter_block' => 'grid_range_filter', 'width' => 70, ), 'Status' => Array ('filter_block' => 'grid_options_filter', 'width' => 70, ), 'QtyInStock' => Array ('title' => 'column:la_fld_Qty', 'data_block' => 'qty_td', 'filter_block' => 'grid_range_filter', 'width' => 80, ), 'QtyBackOrdered' => Array ('title' => 'column:la_fld_QtyBackOrdered', 'filter_block' => 'grid_range_filter', 'width' => 80, ), ), ), ), 'ConfigMapping' => Array ( 'PerPage' => 'Comm_Perpage_Products', 'ShortListPerPage' => 'Comm_Perpage_Products_Short', 'ForceEditorPick' => 'products_EditorPicksAboveRegular', 'DefaultSorting1Field' => 'product_OrderProductsBy', 'DefaultSorting2Field' => 'product_OrderProductsThenBy', 'DefaultSorting1Dir' => 'product_OrderProductsByDir', 'DefaultSorting2Dir' => 'product_OrderProductsThenByDir', 'RatingDelayValue' => 'product_RatingDelay_Value', 'RatingDelayInterval' => 'product_RatingDelay_Interval', ), ); Index: branches/5.2.x/units/affiliates/affiliates_config.php =================================================================== --- branches/5.2.x/units/affiliates/affiliates_config.php (revision 16579) +++ branches/5.2.x/units/affiliates/affiliates_config.php (revision 16580) @@ -1,241 +1,241 @@ 'affil', 'ItemClass' => Array ('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), 'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array ('class' => 'AffiliatesEventHandler', 'file' => 'affiliates_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array ('class' => 'AffiliatesTagProcessor', 'file' => 'affiliates_tag_processor.php', 'build_event' => 'OnBuild'), 'AutoLoad' => true, 'Hooks' => Array ( Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'u', 'HookToSpecial' => 'register', 'HookToEvent' => Array ('OnBeforeItemCreate', 'OnBeforeItemUpdate'), 'DoPrefix' => '', 'DoSpecial' => 'register', 'DoEvent' => 'OnValidateAffiliate', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'u', 'HookToSpecial' => 'register', 'HookToEvent' => Array ('OnCreate'), 'DoPrefix' => '', 'DoSpecial' => 'register', 'DoEvent' => 'OnRegisterAffiliate', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'adm', 'HookToSpecial' => '', 'HookToEvent' => Array ('OnStartup'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnResetStatistics', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'adm', 'HookToSpecial' => '', 'HookToEvent' => Array ('OnStartup'), 'DoPrefix' => '', 'DoSpecial' => '', 'DoEvent' => 'OnStoreAffiliate', ), ), 'AggregateTags' => Array ( Array ( 'AggregateTo' => 'u', 'AggregatedTagName' => 'IsAffiliate', 'LocalTagName' => 'User_IsAffiliate', ), Array ( 'AggregateTo' => 'u', 'AggregatedTagName' => 'AffiliateIsActive', 'LocalTagName' => 'User_AffiliateIsActive', ), Array ( 'AggregateTo' => 'u', 'AggregatedTagName' => 'AffiliateField', 'LocalTagName' => 'CurrentUserAffiliateField', ), Array ( 'AggregateTo' => 'u', 'AggregatedTagName' => 'IsAffiliateOrRegisterAsAffiliateAllowed', 'LocalTagName' => 'IsAffiliateOrRegisterAsAffiliateAllowed', ), Array ( 'AggregateTo' => 'm', 'AggregatedTagName' => 'RequireAffiliate', 'LocalTagName' => 'Main_RequireAffiliate', ), Array ( 'AggregateTo' => 'm', 'AggregatedTagName' => 'AllowAffiliateRegistration', 'LocalTagName' => 'AllowAffiliateRegistration', ), ), 'QueryString' => Array ( 1 => 'id', 2 => 'Page', 3 => 'PerPage', 4 => 'event', 5 => 'mode', ), 'IDField' => 'AffiliateId', 'StatusField' => Array ('Status'), // field, that is affected by Approve/Decline events 'TitleField' => 'UserName', 'TitlePresets' => Array ( 'default' => Array ( 'new_status_labels' => Array ('affil' => '!la_title_Adding_Affiliate!'), 'edit_status_labels' => Array ('affil' => '!la_title_Editing_Affiliate!'), 'new_titlefield' => Array ('affil' => '!la_title_New_Affiliate!'), ), 'affiliates_list' => Array ('prefixes' => Array ('affil_List'), 'format' => "!la_title_Affiliates!"), 'affiliates_edit' => Array ('prefixes' => Array ('affil'), 'format' => "#affil_status# '#affil_titlefield#' - !la_title_General!"), 'affiliate_payments' => Array ('prefixes' => Array ('affil', 'apayments_List'), 'format' => "#affil_status# '#affil_titlefield#' - !la_title_Payments!"), 'affiliates_payout' => Array ('prefixes' => Array ('affil', 'apayments'), 'format' => "!la_title_PayOut_To! '#affil_titlefield#'"), ), 'Forms' => Array ( 'registration' => Array ( 'VirtualFields' => Array ( 'TermsAccepted' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'error_msgs' => Array ('required' => '!lu_comm_MustAgreeAffiliateTermsError!'), 'required' => 1, 'default' => NULL, ), ) ), ), 'EditTabPresets' => Array ( 'Default' => Array ( 'general' => Array ('title' => 'la_tab_General', 't' => 'in-commerce/affiliate_plans/affiliates_edit', 'priority' => 1), 'payments' => Array ('title' => 'la_tab_Payments', 't' => 'in-commerce/affiliate_plans/affiliate_edit_payments', 'priority' => 2), ), ), 'PermSection' => Array ('main' => 'in-commerce:affiliates'), 'Sections' => Array ( 'in-commerce:affiliates_folder' => Array ( 'parent' => 'in-commerce', 'icon' => 'affiliates', 'label' => 'la_tab_Affiliates', 'use_parent_header' => 1, 'permissions' => Array (), 'priority' => 5, 'type' => stTREE, ), 'in-commerce:affiliates' => Array ( 'parent' => 'in-commerce:affiliates_folder', 'icon' => 'affiliates', 'label' => 'la_tab_Affiliates', 'url' => Array ('t' => 'in-commerce/affiliate_plans/affiliates_list', 'pass' => 'm'), 'permissions' => Array ('view', 'add', 'edit', 'delete', 'advanced:approve', 'advanced:decline'), 'priority' => 5.1, // ., because this section replaces parent in tree 'type' => stTAB, ), ), 'TableName' => TABLE_PREFIX.'Affiliates', 'CalculatedFields' => Array ( '' => Array ( 'UserId' => 'u.PortalUserId', 'UserName' => 'IF(u.Username = "", u.Email, u.Username)', 'PlanName' => 'ap.Name', ), ), 'ListSQLs' => Array ( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN '.TABLE_PREFIX.'Users u ON %1$s.PortalUserId = u.PortalUserId LEFT JOIN '.TABLE_PREFIX.'AffiliatePlans ap ON %1$s.AffiliatePlanId = ap.AffiliatePlanId' ), 'SubItems' => Array ('apayments'), 'ListSortings' => Array ( '' => Array ( 'Sorting' => Array ('CreatedOn' => 'desc', 'UserName' => 'asc'), ) ), 'Fields' => Array ( 'AffiliateId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'PortalUserId' => Array ('type' => 'int', 'unique'=>Array (), 'formatter' => 'kLEFTFormatter', 'error_msgs' => Array ('invalid_option' => '!la_error_UserNotFound!', 'unique' => '!la_affiliate_already_exists!'), 'options' => Array (USER_ROOT => 'root', USER_GUEST => 'Guest'),'left_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Users WHERE %s', 'left_key_field' => 'PortalUserId', 'left_title_field' => USER_TITLE_FIELD, 'required' => 1, 'default' => null), 'AffiliatePlanId' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT Name, AffiliatePlanId FROM '.TABLE_PREFIX.'AffiliatePlans WHERE Enabled = 1 ORDER BY Name', 'option_key_field' => 'AffiliatePlanId', 'option_title_field' => 'Name', 'not_null' => 1, 'default' => 0), 'AccumulatedAmount' => Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%.02f', 'not_null' => '1', 'default' => '0.00'), 'AmountToPay' => Array ('type' => 'double', 'formatter' => 'kFormatter', 'format' => '%.02f', 'not_null' => '1', 'default' => '0.00'), 'LastPaymentDate' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => NULL), 'LastOrderDate' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => NULL), 'Status' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options'=>Array (1=>'la_Active', 2=>'la_Pending', 0=>'la_Disabled'), 'use_phrases'=>1, 'not_null' => '1', 'default' => STATUS_PENDING), 'AffiliateCode' => Array ('type' => 'string', 'not_null' => '1', 'default' => ''), 'ItemsSold' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'PaymentTypeId' => Array ('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => ''), 'options_sql' => 'SELECT Name, PaymentTypeId FROM '.TABLE_PREFIX.'AffiliatePaymentTypes WHERE Status = 1 ORDER BY IsPrimary DESC, Priority DESC, Name ASC', 'option_key_field' => 'PaymentTypeId', 'option_title_field' => 'Name', 'not_null' => 1, 'default' => 0), 'SSN' => Array ('type' => 'string', 'not_null' => '1', 'default' => '', 'required' => 1), - 'Comments' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'using_fck' => 1, 'default' => NULL), + 'Comments' => Array ('type' => 'string', 'default' => NULL), 'CreatedOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'), ), 'VirtualFields' => Array ( 'UserName' => Array ('type' => 'string', 'default' => ''), 'PlanName' => Array ('type' => 'string', 'default' => ''), 'UserId' => Array ('type' => 'int', 'default' => 0), ), 'Grids' => Array ( 'Default' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', 0 => 'icon16_disabled.png', 1 => 'icon16_item.png', 2 => 'icon16_pending.png', 'module' => 'core', ), 'Fields' => Array ( 'AffiliateId' => Array ( 'title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 60, ), 'UserName' => Array ( 'data_block' => 'grid_userlink_td', 'filter_block' => 'grid_like_filter'), 'PlanName' => Array ( 'title' => 'la_col_PlanName', 'filter_block' => 'grid_like_filter'), 'PaymentTypeId' => Array ( 'title' => 'column:la_fld_PaymentType', 'filter_block' => 'grid_options_filter', 'width' => 120, ), 'CreatedOn' => Array ( 'title' => 'column:la_fld_RegisteredOn', 'format' => '_regional_DateFormat', 'filter_block' => 'grid_date_range_filter', 'width' => 140, ), 'Status' => Array ( 'filter_block' => 'grid_options_filter', 'width' => 100, ), ), ), ), ); Index: branches/5.2.x/admin_templates/manufacturers/manufacturers_edit.tpl =================================================================== --- branches/5.2.x/admin_templates/manufacturers/manufacturers_edit.tpl (revision 16579) +++ branches/5.2.x/admin_templates/manufacturers/manufacturers_edit.tpl (revision 16580) @@ -1,83 +1,83 @@
- +
- \ No newline at end of file + Index: branches/5.2.x/admin_templates/products/products_edit.tpl =================================================================== --- branches/5.2.x/admin_templates/products/products_edit.tpl (revision 16579) +++ branches/5.2.x/admin_templates/products/products_edit.tpl (revision 16580) @@ -1,181 +1,181 @@
- + " />
:   Open
:    Open
- \ No newline at end of file +