Index: modules/in-commerce/units/products/products_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/products/products_tag_processor.php (revision 15682) +++ modules/in-commerce/units/products/products_tag_processor.php (revision ) @@ -509,7 +509,8 @@ $backordering = $this->Application->ConfigValue('Comm_Enable_Backordering'); if ( $object->GetDBField('InventoryStatus') == 2 ) { - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); + $sql = 'SELECT SUM(IF(QtyInStock > ' . $object->GetDBField('QtyInStockMin') . ', 1, 0)) FROM ' . $poc_table . ' WHERE (ProductId = ' . $object->GetID() . ') AND (Availability = 1)'; @@ -553,8 +554,10 @@ function HasFiles($params) { - $sql = 'SELECT COUNT(FileId) FROM '.$this->Application->getUnitOption('file', 'TableName').' + $sql = 'SELECT COUNT(FileId) + FROM '.$this->Application->getUnitConfig('file')->getTableName().' WHERE ProductId = '.$this->Application->GetVar('p_id').' AND Status = 1'; + return $this->Conn->GetOne($sql) ? 1 : 0; } @@ -570,15 +573,13 @@ { $file_id = $this->Application->GetVar('file.downl_id'); $product_id = $file_id ? $this->Conn->GetOne('SELECT ProductId - FROM '.$this->Application->getUnitOption('file', 'TableName').' + FROM '.$this->Application->getUnitConfig('file')->getTableName().' WHERE FileId = '.$file_id) : $this->Application->GetVar($this->getPrefixSpecial().'_id'); - $download_helper_class = $this->Application->getUnitOption($this->Prefix, 'DownloadHelperClass'); + $download_helper_class = $this->getUnitConfig()->getDownloadHelperClass('DownloadHelper'); - if (!$download_helper_class) { - $download_helper_class = 'DownloadHelper'; - } + $download_helper = $this->Application->recallObject($download_helper_class); if (!$download_helper->CheckAccess($file_id, $product_id)) { $this->Application->ApplicationDie('File Access permission check failed!'); @@ -730,8 +731,8 @@ */ function ModifyUnitConfig($params) { - $edit_tab_presets = $this->Application->getUnitOption($this->Prefix, 'EditTabPresets'); - $edit_tab_preset = $edit_tab_presets['Default']; + $config = $this->getUnitConfig(); + $edit_tab_preset = $config->getEditTabPresetByName('Default'); $object = $this->getObject($params); /* @var $object kDBItem */ @@ -764,8 +765,7 @@ unset($edit_tab_preset['package_content']); } - $edit_tab_presets['Default'] = $edit_tab_preset; - $this->Application->setUnitOption($this->Prefix, 'EditTabPresets', $edit_tab_presets); + $config->addEditTabPresets($edit_tab_preset, 'Default'); } /** \ No newline at end of file Index: modules/in-link/units/listings/listings_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/listings/listings_event_handler.php (revision 15682) +++ modules/in-link/units/listings/listings_event_handler.php (revision ) @@ -44,18 +44,22 @@ */ function OnProcessSelected($event) { - $object = $event->getObject(); + $object =& $event->getObject(); + /* @var $object kDBItem */ $selected_ids = $this->Application->GetVar('selected_ids'); + - if ($selected_ids['l']) { + if ( $selected_ids['l'] ) { $link_id = $selected_ids['l']; + $config = $this->Application->getUnitConfig('l'); + $sql = 'SELECT ResourceId - FROM '.$this->Application->getUnitOption('l', 'TableName').' - WHERE '.$this->Application->getUnitOption('l', 'IDField').' = '.$link_id; + FROM ' . $config->getTableName() . ' + WHERE ' . $config->getIDField() . ' = ' . $link_id; $object->SetDBField($this->Application->RecallVar('dst_field'), $this->Conn->GetOne($sql)); $object->IgnoreValidation = true; - // $this->RemoveRequiredFields($object); +// $this->RemoveRequiredFields($object); $object->Update(); } @@ -126,7 +130,7 @@ /* @var $object kDBItem */ $sql = 'SELECT * - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + FROM ' . $event->getUnitConfig()->getTableName() . ' WHERE ListingId = ' . $object->GetId(); $original_values = $this->Conn->GetRow($sql); @@ -137,7 +141,7 @@ if ( $status_modified ) { $email_event = $object->GetDBField('Status') ? 'LINK.ENHANCE.APPROVE' : 'LINK.ENHANCE.DENY'; $sql = 'SELECT CreatedById - FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('l')->getTableName() . ' WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); $user_id = $this->Conn->GetOne($sql); @@ -158,45 +162,58 @@ } } + /** + * Enhances link + * + * @param kDBItem $object + * @param Array $original_values + * @return bool + */ function EnhanceLink(&$object, $original_values) { - if ($object->GetDBField('Status') != STATUS_ACTIVE) { + if ( $object->GetDBField('Status') != STATUS_ACTIVE ) { return false; } - if ($object->GetDBField('ExpiresOn') < adodb_mktime()) { + if ( $object->GetDBField('ExpiresOn') < adodb_mktime() ) { $object->SetDBField('Status', STATUS_PENDING); $object->Update(); $this->ResetLink($original_values); + return false; } $this->UpdateLink('OnPurchase', $object->GetDBField('ItemResourceId'), $object->GetDBField('ListingTypeId')); - $listtype_object = $this->Application->recallObject('lst'); - if ( $listtype_object->GetDBField('OnPurchaseAddToCatEnabled') ) - { + $listing_type_object = $this->Application->recallObject('lst'); + /* @var $listing_type_object kDBItem */ + + if ( $listing_type_object->GetDBField('OnPurchaseAddToCatEnabled') ) { $link_object = $this->Application->recallObject('l'); - $add_to_cat = (int)$listtype_object->GetDBField('OnPurchaseAddToCat'); - $sql = 'DELETE FROM '.$this->Application->getUnitOption('l-ci', 'TableName').' + /* @var $link_object kDBItem */ + + $add_to_cat = (int)$listing_type_object->GetDBField('OnPurchaseAddToCat'); + + $category_item_config = $this->Application->getUnitConfig('l-ci'); + + $sql = 'DELETE FROM ' . $category_item_config->getTableName() . ' - WHERE CategoryId = '.$add_to_cat.' + WHERE CategoryId = ' . $add_to_cat . ' - AND ItemResourceId = '.$link_object->GetDBField('ResourceId').' + AND ItemResourceId = ' . $link_object->GetDBField('ResourceId') . ' AND PrimaryCat = 0'; $this->Conn->Query($sql); - $sql = 'INSERT INTO '.$this->Application->getUnitOption('l-ci', 'TableName').' + + $sql = 'INSERT INTO ' . $category_item_config->getTableName() . ' (CategoryId, ItemResourceId, PrimaryCat) - VALUES ('.$add_to_cat.', '.$link_object->GetDBField('ResourceId').', 0)'; + VALUES (' . $add_to_cat . ', ' . $link_object->GetDBField('ResourceId') . ', 0)'; $this->Conn->Query($sql); } } function ResetLink($original_values) { - static $has_been_reset = Array(); + static $has_been_reset = Array (); - if( $original_values['Status'] != STATUS_ACTIVE || - getArrayValue($has_been_reset, $original_values['ListingId']) ) - { + if ( $original_values['Status'] != STATUS_ACTIVE || getArrayValue($has_been_reset, $original_values['ListingId']) ) { return; } @@ -204,13 +221,15 @@ $this->UpdateLink('OnExpire', $original_values['ItemResourceId'], $original_values['ListingTypeId']); - $listtype_object = $this->Application->recallObject('lst'); - if( $listtype_object->GetDBField('OnExpireRemoveFromCatEnabled') ) - { - $remove_from_cat = $listtype_object->GetDBField('OnExpireRemoveFromCat'); - $sql = 'DELETE FROM '.$this->Application->getUnitOption('l-ci', 'TableName').' + $listing_type_object = $this->Application->recallObject('lst'); + /* @var $listing_type_object kDBItem */ + + if ( $listing_type_object->GetDBField('OnExpireRemoveFromCatEnabled') ) { + $remove_from_cat = $listing_type_object->GetDBField('OnExpireRemoveFromCat'); + + $sql = 'DELETE FROM ' . $this->Application->getUnitConfig('l-ci')->getTableName() . ' - WHERE ItemResourceId = '.$original_values['ItemResourceId'].' + WHERE ItemResourceId = ' . $original_values['ItemResourceId'] . ' - AND CategoryId = '.$remove_from_cat.' + AND CategoryId = ' . $remove_from_cat . ' AND PrimaryCat = 0'; $this->Conn->Query($sql); } @@ -341,9 +360,11 @@ return false; } - // get resource_id of link beeing enhanced + $links_config = $this->Application->getUnitConfig('l'); + + // get resource_id of link being enhanced $sql = 'SELECT ResourceId - FROM '.$this->Application->getUnitOption('l', 'TableName').' + FROM '.$links_config->getTableName().' WHERE LinkId = '.$link_id; $resource_id = $this->Conn->GetOne($sql); @@ -376,6 +397,8 @@ // set expiration time for listing $listing_type = $this->Application->recallObject('lst', null, Array('skip_autoload' => true)); + /* @var $listing_type kDBItem */ + $listing_type->Load($listing_type_id); $dur_type_mapping = Array( 1 => 1, @@ -412,7 +435,7 @@ // when requesting enhancement from front (and not via in-commerce) $event->redirect = $this->Application->GetVar('success_template'); - $sql = 'SELECT CreatedById FROM '.$this->Application->getUnitOption('l', 'TableName').' + $sql = 'SELECT CreatedById FROM '.$links_config->getTableName().' WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); $this->Application->emailUser('LINK.ENHANCE', $this->Conn->GetOne($sql)); $this->Application->emailAdmin('LINK.ENHANCE'); @@ -445,8 +468,9 @@ unset($item_data['ListingTypeId']); $item_data['ListingId'] = $object->GetID(); - $orditems_idfield = $this->Application->getUnitOption('orditems', 'IDField'); - $orditems_table = $this->Application->getUnitOption('orditems', 'TableName'); + $order_items_config = $this->Application->getUnitConfig('orditems'); + $orditems_idfield = $order_items_config->getIDField(); + $orditems_table = $order_items_config->getTableName(); $this->Conn->doUpdate( Array('ItemData' => serialize($item_data)), $orditems_table, $orditems_idfield.' = '.$fields['OrderItemId'] ); } @@ -517,7 +541,7 @@ $fields = $event->getEventParam('field_values'); $item_data = unserialize($fields['ItemData']); - $sql = 'SELECT ListingId FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $sql = 'SELECT ListingId FROM ' . $event->getUnitConfig()->getTableName() . ' WHERE ItemResourceId = ' . $item_data['LinkId']; $listing_id = $this->Conn->GetOne($sql); @@ -547,6 +571,7 @@ /* @var $object kDBItem */ $ids = $this->StoreSelectedIDs($event); + $links_config = $this->Application->getUnitConfig('l'); if ( $event->Name == 'OnMassApprove' ) { foreach ($ids as $id) { @@ -567,7 +592,7 @@ $this->ResetLink($original_values); $sql = 'SELECT CreatedById - FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' + FROM ' . $links_config->getTableName() . ' WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); $this->Application->emailUser('LINK.ENHANCE.DENY', $this->Conn->GetOne($sql)); $this->Application->emailAdmin('LINK.ENHANCE.DENY'); @@ -586,7 +611,7 @@ $object->Load($id); $sql = 'SELECT CreatedById - FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' + FROM ' . $links_config->getTableName() . ' WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); $owner_id = $this->Conn->GetOne($sql); @@ -656,7 +681,7 @@ $link_id = $this->Application->GetVar('l_id'); $user_id = $this->Application->RecallVar('user_id'); $sql = 'SELECT ResourceId - FROM '.$this->Application->getUnitOption('l', 'TableName').' + FROM '.$this->Application->getUnitConfig('l')->getTableName().' WHERE (LinkId = '.$link_id.') AND (CreatedById = '.$user_id.')'; $resource_id = $this->Conn->GetOne($sql); @@ -666,7 +691,7 @@ } $sql = 'SELECT ListingId - FROM '.$this->Application->getUnitOption($event->Prefix, 'TableName').' + FROM '.$event->getUnitConfig()->getTableName().' WHERE ItemResourceId = '.$resource_id; return $this->Conn->GetOne($sql); @@ -686,7 +711,7 @@ $object->Update(); $event->redirect = $this->Application->GetVar('success_template'); - $sql = 'SELECT CreatedById FROM '.$this->Application->getUnitOption('l', 'TableName').' + $sql = 'SELECT CreatedById FROM '.$this->Application->getUnitConfig('l')->getTableName().' WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); $this->Application->emailUser('LINK.ENHANCE.EXTEND', $this->Conn->GetOne($sql)); $this->Application->emailAdmin('LINK.ENHANCE.EXTEND'); @@ -713,7 +738,7 @@ $original_values['Status'] = 1; $this->ResetLink($original_values); - $sql = 'SELECT CreatedById FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' + $sql = 'SELECT CreatedById FROM ' . $this->Application->getUnitConfig('l')->getTableName() . ' WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); $this->Application->emailUser('LINK.ENHANCE.CANCEL', $this->Conn->GetOne($sql)); $this->Application->emailAdmin('LINK.ENHANCE.CANCEL'); @@ -729,7 +754,10 @@ */ function OnCheckExpiredPaidListings($event) { - $sql = 'SELECT ListingId FROM '.$this->Application->getUnitOption($event->Prefix, 'TableName').' + $config = $event->getUnitConfig(); + $links_config = $this->Application->getUnitConfig('l'); + + $sql = 'SELECT ListingId FROM '.$config->getTableName().' WHERE ExpiresOn < '.adodb_mktime().' AND Status = 1'; $expired_listings = $this->Conn->GetCol($sql); if(is_array($expired_listings) && count($expired_listings) > 0) @@ -745,17 +773,17 @@ $object->SetDBField('Status', 2); $object->Update(); - $sql = 'SELECT CreatedById FROM '.$this->Application->getUnitOption('l', 'TableName').' + $sql = 'SELECT CreatedById FROM '.$links_config->getTableName().' WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); $this->Application->emailUser('LINK.ENHANCE.EXPIRE', $this->Conn->GetOne($sql)); $this->Application->emailAdmin('LINK.ENHANCE.EXPIRE'); } } - $sql = 'SELECT ls.ListingId, l.CreatedById FROM '.$this->Application->getUnitOption($event->Prefix, 'TableName').' ls - LEFT JOIN '.$this->Application->getUnitOption('lst', 'TableName').' lst + $sql = 'SELECT ls.ListingId, l.CreatedById FROM '.$config->getTableName().' ls + LEFT JOIN '.$this->Application->getUnitConfig('lst')->getTableName().' lst ON ls.ListingTypeId = lst.ListingTypeId - LEFT JOIN '.$this->Application->getUnitOption('l', 'TableName').' l + LEFT JOIN '.$links_config->getTableName().' l ON ls.ItemResourceId = l.ResourceId WHERE ls.Status = 1 AND ls.ExpiresOn < '.adodb_mktime().' + lst.RenewalReminder * 3600 *24 @@ -770,7 +798,7 @@ $this->Application->emailAdmin('LINK.ENHANCE.RENEWAL.NOTICE'); $listing_ids[] = $record['ListingId']; } - $sql = 'UPDATE '.$this->Application->getUnitOption($event->Prefix, 'TableName').' + $sql = 'UPDATE '.$config->getTableName().' SET RenewalReminderSent = 1 WHERE ListingId IN ('.implode(',', $listing_ids).')'; $this->Conn->Query($sql); @@ -809,8 +837,9 @@ */ function OnMoveEnhancement($event) { - $id_field = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'IDField'); - $item_table_name = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'TableName'); + $master_config = $event->MasterEvent->getUnitConfig(); + $id_field = $master_config->getIDField(); + $item_table_name = $master_config->getTableName(); $pending_id = $event->MasterEvent->getEventParam('id'); $original_id = $event->MasterEvent->getEventParam('original_id'); @@ -820,7 +849,7 @@ WHERE '.$id_field.' IN ('.$pending_id.','.$original_id.')'; $resource_ids = $this->Conn->GetCol($sql, $id_field); - $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); + $table_name = $event->getUnitConfig()->getTableName(); $sql = 'UPDATE '.$table_name.' SET ItemResourceId = '.$resource_ids[$pending_id].' WHERE ItemResourceId = '.$resource_ids[$original_id]; @@ -839,8 +868,9 @@ parent::OnAfterConfigRead($event); $language_id = $this->Application->GetVar('m_lang'); - $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); - $calculated_fields['']['LinkName'] = 'CONCAT(item_table.l' . $language_id . '_Name, " (", item_table.Url, ")")'; - $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + + $event->getUnitConfig()->addCalculatedFieldsBySpecial('', Array ( + 'LinkName' => 'CONCAT(item_table.l' . $language_id . '_Name, " (", item_table.Url, ")")', + )); } } \ No newline at end of file Index: modules/in-commerce/units/product_option_combinations/product_option_combinations_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/product_option_combinations/product_option_combinations_event_handler.php (revision 15682) +++ modules/in-commerce/units/product_option_combinations/product_option_combinations_event_handler.php (revision ) @@ -253,7 +253,7 @@ $object->setSelectSQL($sql); // 2. loads if allowed - $auto_load = $this->Application->getUnitOption($event->Prefix, 'AutoLoad'); + $auto_load = $event->getUnitConfig()->getAutoLoad(); $skip_autoload = $event->getEventParam('skip_autoload'); if ( $auto_load && !$skip_autoload ) { @@ -370,14 +370,14 @@ // check if product inventory management is via options and then proceed $id = $event->getEventParam('id'); - $products_table = $this->Application->getUnitOption('p', 'TableName'); - $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); + $products_table = $this->Application->getUnitConfig('p')->getTableName(); + $config = $event->getUnitConfig();; + $sql = 'SELECT p.InventoryStatus FROM ' . $products_table . ' p - LEFT JOIN ' . $table_name . ' poc ON poc.ProductId = p.ProductId - WHERE poc.' . $id_field . ' = ' . $id; + LEFT JOIN ' . $config->getTableName() . ' poc ON poc.ProductId = p.ProductId + WHERE poc.' . $config->getIDField() . ' = ' . $id; $inventory_status = $this->Conn->GetOne($sql); if ( $inventory_status == ProductInventory::BY_OPTIONS ) { \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_classes/atosorigin.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_classes/atosorigin.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_classes/atosorigin.php (revision ) @@ -75,8 +75,7 @@ $billing_email = $item_data['BillingEmail']; if (!$billing_email) { - $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitOption('u', 'TableName').' - WHERE PortalUserId = '.$this->Application->RecallVar('user_id')); + $billing_email = $this->_getUserEmail(); } $params['customer_email'] = $billing_email; \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_classes/authorizenet.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_classes/authorizenet.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_classes/authorizenet.php (revision ) @@ -48,9 +48,9 @@ $billing_email = $item_data['BillingEmail']; if (!$billing_email) { - $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitOption('u', 'TableName').' - WHERE PortalUserId = '.$this->Application->RecallVar('user_id')); + $billing_email = $this->_getUserEmail(); } + $post_fields['x_email'] = $billing_email; $post_fields['x_phone'] = $item_data['BillingPhone']; \ No newline at end of file Index: modules/in-link/units/links/links_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/links/links_event_handler.php (revision 15682) +++ modules/in-link/units/links/links_event_handler.php (revision ) @@ -118,8 +118,10 @@ // check, that user has not selected multiple links from same group $primary_links = Array (); - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); + $config = $event->getUnitConfig(); + $id_field = $config->getIDField(); + $table_name = $config->getTableName(); + $sql = 'SELECT * FROM ' . $table_name . ' WHERE ' . $id_field . ' IN (' . implode(',', $ids) . ')'; @@ -245,13 +247,14 @@ { parent::OnAfterConfigRead($event); - if (defined('IS_INSTALL') && IS_INSTALL) { + if ( defined('IS_INSTALL') && IS_INSTALL ) { - return ; + return; } + $config = $event->getUnitConfig(); $free_listings = $this->Application->ConfigValue('Link_AllowFreeListings'); - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); + $virtual_fields = $config->getVirtualFields(); $virtual_fields['ListingTypeId']['options'] = $free_listings ? Array (0 => 'lu_free_listing') : Array (); $language_id = $this->Application->GetVar('m_lang'); @@ -261,11 +264,11 @@ $default = $virtual_fields['DuplicateCheckFields']['default']; $virtual_fields['DuplicateCheckFields']['default'] = str_replace('|Name|', '|l' . $language_id . '_Name|', $default); - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); + $config->setVirtualFields($virtual_fields); - if (!$this->Application->isAdminUser) { + if ( !$this->Application->isAdminUser ) { // for now only on Front-End - $this->Application->setUnitOption($event->Prefix, 'PopulateMlFields', true); + $event->getUnitConfig()->setPopulateMlFields(true); } } @@ -425,8 +428,9 @@ $link_helper = $this->Application->recallObject('LinkHelper'); /* @var $link_helper LinkHelper */ - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); + $config = $event->getUnitConfig(); + $id_field = $config->getIDField(); + $table_name = $config->getTableName(); // 1. verify all links, that were not verified previously $sql = 'SELECT ' . $id_field . ' @@ -493,8 +497,10 @@ $load_keys[$field] = $field . ' = ' . $this->Conn->qstr($value); } - $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $config = $event->getUnitConfig(); + + $sql = 'SELECT ' . $config->getIDField() . ' + FROM ' . $config->getTableName() . ' WHERE (' . implode(') AND (', $load_keys) . ')'; $id = $this->Conn->GetOne($sql); } @@ -527,22 +533,24 @@ parent::OnCloneSubItem($event); if ( $event->MasterEvent->Prefix == 'rev' ) { - $clones = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Clones'); - $subitem_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; + $master_config = $event->MasterEvent->getUnitConfig(); + $sub_item_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; - $clones[$subitem_prefix]['ConfigMapping'] = Array ( + $master_config->addClones(Array ( + $sub_item_prefix => Array ( + 'ConfigMapping' => Array ( - 'PerPage' => 'Perpage_LinkReviews', - 'ShortListPerPage' => 'Perpage_LinkReviews_Short', - 'DefaultSorting1Field' => 'Link_ReviewsSort', - 'DefaultSorting2Field' => 'Link_ReviewsSort2', - 'DefaultSorting1Dir' => 'Link_ReviewsOrder', - 'DefaultSorting2Dir' => 'Link_ReviewsOrder2', + 'PerPage' => 'Perpage_LinkReviews', + 'ShortListPerPage' => 'Perpage_LinkReviews_Short', + 'DefaultSorting1Field' => 'Link_ReviewsSort', + 'DefaultSorting2Field' => 'Link_ReviewsSort2', + 'DefaultSorting1Dir' => 'Link_ReviewsOrder', + 'DefaultSorting2Dir' => 'Link_ReviewsOrder2', - 'ReviewDelayInterval' => 'link_ReviewDelay_Interval', - 'ReviewDelayValue' => 'link_ReviewDelay_Value', + 'ReviewDelayInterval' => 'link_ReviewDelay_Interval', + 'ReviewDelayValue' => 'link_ReviewDelay_Value', - ); - - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Clones', $clones); + ) + ) + )); } } @@ -562,10 +570,11 @@ $link_id = $event->getEventParam('original_id'); $new_resource_id = $object->GetDBField('ResourceId'); + $config = $event->getUnitConfig(); $sql = 'SELECT ResourceId - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' - WHERE ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . '=' . $link_id; + FROM ' . $config->getTableName() . ' + WHERE ' . $config->getIDField() . '=' . $link_id; $old_resource_id = $this->Conn->GetOne($sql); $this->Application->SetVar('original_resource_id', $old_resource_id); @@ -605,7 +614,7 @@ protected function changeResourceId($prefix, $field, $old_resource_id, $new_resource_id) { $fields_hash = Array ($field => $new_resource_id); - $table_name = $this->Application->getUnitOption($prefix, 'TableName'); + $table_name = $this->Application->getUnitConfig($prefix)->getTableName(); $this->Conn->doUpdate($fields_hash, $table_name, $field . ' = ' . $old_resource_id); } \ No newline at end of file Index: modules/custom/units/sections/users/e_user_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/sections/users/e_user_eh.php (revision 15682) +++ modules/custom/units/sections/users/e_user_eh.php (revision ) @@ -58,15 +58,17 @@ { parent::OnAfterConfigRead($event); +// $config = $event->getUnitConfig(); + # 1. Regular Fields from /core/units/users/users_config.php - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields = $config->getFields(); #get regular fields // $fields['Status']['default'] = 1; #add/edit configuration (make default = 1) - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save regular fields +// $config->setFields($fields); #save regular fields # 2. Virtual Fields from /core/units/users/users_config.php - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields +// $virtual_fields = $config->getVirtualFields(); #get virtual fields // $virtual_fields['FullName']['default'] = ''; #add/edit configuration - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields +// $config->setVirtualFields($virtual_fields); #save virtual fields } /** \ No newline at end of file Index: modules/in-commerce/units/affiliate_payment_types/affiliate_payment_types_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/affiliate_payment_types/affiliate_payment_types_event_handler.php (revision 15682) +++ modules/in-commerce/units/affiliate_payment_types/affiliate_payment_types_event_handler.php (revision ) @@ -89,11 +89,13 @@ /* @var $object kDBItem */ if ( $object->GetDBField('IsPrimary') && $object->Validate() ) { - $sql = 'UPDATE ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $config = $event->getUnitConfig(); + + $sql = 'UPDATE ' . $config->getTableName() . ' SET IsPrimary = 0'; $this->Conn->Query($sql); - $object->SetDBField($object->getStatusField(), 1); + $object->SetDBField($config->getStatusField(true), 1); } } @@ -108,10 +110,11 @@ protected function customProcessing(kEvent $event, $type) { if ( $event->Name == 'OnMassDelete' && $type == 'before' ) { + $config = $event->getUnitConfig(); $ids = $event->getEventParam('ids'); - $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $sql = 'SELECT ' . $config->getIDField() . ' + FROM ' . $config->getTableName() . ' WHERE IsPrimary = 1'; $primary_id = $this->Conn->GetOne($sql); \ No newline at end of file Index: modules/in-commerce/units/payment_type/payment_type_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/payment_type/payment_type_event_handler.php (revision 15682) +++ modules/in-commerce/units/payment_type/payment_type_event_handler.php (revision ) @@ -75,7 +75,7 @@ $event->SetRedirectParam('opener', 's'); } - function OnMassDecline($event) + function OnMassDecline(kEvent $event) { $object = $event->getObject(Array ('skip_autoload' => true)); /* @var $object kDBItem */ @@ -84,7 +84,7 @@ $ids = $this->getSelectedIDs($event); if ( $ids ) { - $status_field = $object->getStatusField(); + $status_field = $event->getUnitConfig()->getStatusField(true); foreach ($ids as $id) { $object->Load($id); @@ -120,7 +120,7 @@ $object = $event->getObject(); /* @var $object kDBItem */ - $status_field = $object->getStatusField(); + $status_field = $event->getUnitConfig()->getStatusField(true); if ( $object->GetDBField('IsPrimary') == 1 && $object->GetDBField($status_field) == 0 ) { $object->SetDBField($status_field, 1); @@ -201,11 +201,12 @@ { parent::OnAfterConfigRead($event); + $config = $event->getUnitConfig(); $default_group = $this->Application->ConfigValue('User_LoggedInGroup'); - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); + $fields = $config->getFields(); $fields['PortalGroups']['default'] = ','.$default_group.','; - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); + $config->setFields($fields); } /** \ No newline at end of file Index: modules/in-bulletin/units/helpers/post_helper.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/helpers/post_helper.php (revision 15682) +++ modules/in-bulletin/units/helpers/post_helper.php (revision ) @@ -81,29 +81,30 @@ } /** - * @return void - * @param int $date - * @desc Set any field to category & all it's parent categories - */ - function PropagateCategoryField($category_id, $field_name, $field_value) - { + * @return void + * @param int $date + * @desc Set any field to category & all it's parent categories + */ + function PropagateCategoryField($category_id, $field_name, $field_value) + { - $id_field = $this->Application->getUnitOption('c', 'IDField'); - $table_name = $this->Application->getUnitOption('c', 'TableName'); + $categories_config = $this->Application->getUnitConfig('c'); + $id_field = $categories_config->getIDField(); + $table_name = $categories_config->getTableName(); - $sql = 'SELECT ParentPath - FROM ' . $table_name . ' - WHERE ' . $id_field . ' = ' . $category_id; - $parent_path = $this->Conn->GetOne($sql); + $sql = 'SELECT ParentPath + FROM ' . $table_name . ' + WHERE ' . $id_field . ' = ' . $category_id; + $parent_path = $this->Conn->GetOne($sql); - $parent_categories = explode('|', substr($parent_path, 1, -1)); - if ( !$parent_categories ) { - return; - } + $parent_categories = explode('|', substr($parent_path, 1, -1)); + if ( !$parent_categories ) { + return; + } - $fields_hash = Array ($field_name => $field_value); + $fields_hash = Array ($field_name => $field_value); - $this->Conn->doUpdate($fields_hash, $table_name, $id_field . ' IN (' . implode(',', $parent_categories) . ')'); - } + $this->Conn->doUpdate($fields_hash, $table_name, $id_field . ' IN (' . implode(',', $parent_categories) . ')'); + } /** * Sets today posts count & today date for topic @@ -132,8 +133,9 @@ function updatePostCount($topic_id, $increment = 1) { - $id_field = $this->Application->getUnitOption('bb', 'IDField'); - $table_name = $this->Application->getUnitOption('bb', 'TableName'); + $topics_config = $this->Application->getUnitConfig('bb'); + $id_field = $topics_config->getIDField(); + $table_name = $topics_config->getTableName(); // helps in case, when 2 (or more) users tries to post in same topic at same time $sql = 'UPDATE '.$table_name.' \ No newline at end of file Index: modules/in-bulletin/units/topics/topics_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/topics/topics_event_handler.php (revision 15682) +++ modules/in-bulletin/units/topics/topics_event_handler.php (revision ) @@ -217,15 +217,17 @@ { parent::OnAfterConfigRead($event); - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); + $config = $event->getUnitConfig(); + + $fields = $config->getFields(); $fields['NotifyOwnerOnChanges']['default'] = (int)$this->Application->RecallPersistentVar('owner_notify'); - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); + $config->setFields($fields); - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); + $virtual_fields = $config->getVirtualFields(); $virtual_fields['DisableBBCodes']['default'] = (int)!$this->Application->RecallPersistentVar('bbcode'); $virtual_fields['DisableSmileys']['default'] = (int)!$this->Application->RecallPersistentVar('smileys'); $virtual_fields['ShowSignatures']['default'] = (int)$this->Application->RecallPersistentVar('show_sig'); - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); + $config->setVirtualFields($virtual_fields); } /** @@ -240,17 +242,18 @@ parent::OnCloneSubItem($event); if ( $event->MasterEvent->Prefix == 'rev' ) { - $clones = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Clones'); - $subitem_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; + $sub_item_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; - $clones[$subitem_prefix]['ConfigMapping'] = Array ( + $event->MasterEvent->getUnitConfig()->addClones(Array ( + $sub_item_prefix => Array ( + 'ConfigMapping' => Array ( - 'PerPage' => 'Perpage_TopicReviews', + 'PerPage' => 'Perpage_TopicReviews', - 'ReviewDelayInterval' => 'topic_ReviewDelay_Interval', - 'ReviewDelayValue' => 'topic_ReviewDelay_Value', + 'ReviewDelayInterval' => 'topic_ReviewDelay_Interval', + 'ReviewDelayValue' => 'topic_ReviewDelay_Value', - ); - - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Clones', $clones); + ) + ), + )); } } \ No newline at end of file Index: modules/in-commerce/units/discount_items/discount_items_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/discount_items/discount_items_event_handler.php (revision 15682) +++ modules/in-commerce/units/discount_items/discount_items_event_handler.php (revision ) @@ -40,10 +40,12 @@ */ function OnProcessSelected($event) { - $object = $event->getObject( Array('skip_autoload' => true) ); + $object = $event->getObject(Array ('skip_autoload' => true)); + /* @var $object kDBItem */ + $selected_ids = $this->Application->GetVar('selected_ids'); - if ($selected_ids['c'] == $this->Application->GetVar('m_cat_id')) { + if ( $selected_ids['c'] == $this->Application->GetVar('m_cat_id') ) { // no categories were selected, so selector returned current in catalog. This is not needed here $selected_ids['c'] = ''; } @@ -51,34 +53,41 @@ $table_data = $object->getLinkedInfo(); // in selectors we could select category & item together - $prefixes = Array('c', 'p'); + $prefixes = Array ('c', 'p'); foreach ($prefixes as $prefix) { - $item_ids = $selected_ids[$prefix] ? explode(',', $selected_ids[$prefix]) : Array(); + $item_ids = $selected_ids[$prefix] ? explode(',', $selected_ids[$prefix]) : Array (); - if (!$item_ids) continue; + if ( !$item_ids ) { + continue; + } + - if ($prefix == 'c') { + if ( $prefix == 'c' ) { // select all products from selected categories and their subcategories $sql = 'SELECT DISTINCT p.ResourceId - FROM '.TABLE_PREFIX.'Categories c + FROM ' . TABLE_PREFIX . 'Categories c - LEFT JOIN '.TABLE_PREFIX.'CategoryItems ci ON c.CategoryId = ci.CategoryId + LEFT JOIN ' . TABLE_PREFIX . 'CategoryItems ci ON c.CategoryId = ci.CategoryId - LEFT JOIN '.TABLE_PREFIX.'Products p ON p.ResourceId = ci.ItemResourceId + LEFT JOIN ' . TABLE_PREFIX . 'Products p ON p.ResourceId = ci.ItemResourceId - WHERE (p.ProductId IS NOT NULL) AND (c.ParentPath LIKE "%|'.implode('|%" OR c.ParentPath LIKE "%|', $item_ids).'|%")'; + WHERE (p.ProductId IS NOT NULL) AND (c.ParentPath LIKE "%|' . implode('|%" OR c.ParentPath LIKE "%|', $item_ids) . '|%")'; $resource_ids = $this->Conn->GetCol($sql); } else { - // select selected prodcts + // select selected products + $config = $this->Application->getUnitConfig($prefix); + $sql = 'SELECT ResourceId - FROM '.$this->Application->getUnitOption($prefix, 'TableName').' - WHERE '.$this->Application->getUnitOption($prefix, 'IDField').' IN ('.implode(',', $item_ids).')'; + FROM ' . $config->getTableName() . ' + WHERE ' . $config->getIDField() . ' IN (' . implode(',', $item_ids) . ')'; $resource_ids = $this->Conn->GetCol($sql); } - if (!$resource_ids) continue; + if ( !$resource_ids ) { + continue; + } $sql = 'SELECT ItemResourceId - FROM '.$object->TableName.' + FROM ' . $object->TableName . ' - WHERE ('.$table_data['ForeignKey'].' = '.$table_data['ParentId'].') AND (ItemResourceId IN ('.implode(',', $resource_ids).'))'; + WHERE (' . $table_data['ForeignKey'] . ' = ' . $table_data['ParentId'] . ') AND (ItemResourceId IN (' . implode(',', $resource_ids) . '))'; // 1. don't insert items, that are already in $skip_resource_ids = $this->Conn->GetCol($sql); @@ -132,10 +141,10 @@ function OnDeleteDiscountedItem($event) { $main_object = $event->MasterEvent->getObject(); - $resource_id = $main_object->GetDBField('ResourceId'); + /* @var $main_object kDBItem */ - $table = $this->Application->getUnitOption($event->Prefix,'TableName'); - $sql = 'DELETE FROM '.$table.' WHERE ItemResourceId = '.$resource_id; + $sql = 'DELETE FROM ' . $event->getUnitConfig()->getTableName() . ' + WHERE ItemResourceId = ' . $main_object->GetDBField('ResourceId'); $this->Conn->Query($sql); } @@ -150,12 +159,11 @@ { parent::OnAfterConfigRead($event); - $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); - $language_id = $this->Application->GetVar('m_lang'); $primary_language_id = $this->Application->GetDefaultLanguageId(); - $calculated_fields['']['ItemName'] = 'COALESCE(p.l' . $language_id . '_Name, p.l' . $primary_language_id . '_Name)'; - $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + $event->getUnitConfig()->addCalculatedFieldsBySpecial('', Array ( + 'ItemName' => 'COALESCE(p.l' . $language_id . '_Name, p.l' . $primary_language_id . '_Name)' + )); } } \ No newline at end of file Index: modules/in-auction/units/product_listing/product_listing_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-auction/units/product_listing/product_listing_eh.php (revision 15682) +++ modules/in-auction/units/product_listing/product_listing_eh.php (revision ) @@ -51,7 +51,7 @@ $main_prefix = 'p'; - $section = $this->Application->getUnitOption($main_prefix . '.ebay', 'PermSection'); + $section = $this->Application->getUnitConfig($main_prefix)->getPermSectionByName('ebay'); $event->setEventParam('PermSection', $section); return parent::CheckPermission($event); @@ -65,20 +65,17 @@ */ function OnModifyProductsConfig($event) { + $master_config = $event->MasterEvent->getUnitConfig(); - $title_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'TitlePresets'); - $title_presets['products_ebay'] = Array( - 'prefixes' => Array('p'), - 'format' => "#p_status# '#p_titlefield#' - !la_title_eBay!" - ); + $master_config->addTitlePresets(Array ( + 'products_ebay' => Array ( + 'prefixes' => Array('p'), 'format' => "#p_status# '#p_titlefield#' - !la_title_eBay!" + ), + )); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'TitlePresets', $title_presets); - - $subitems = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'SubItems'); - $subitems[] = 'p-ebay'; - $subitems[] = 's-ebay'; - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'SubItems', $subitems); - + $master_config->addSubItems(Array ( + 'p-ebay', 's-ebay' + )); } /** \ No newline at end of file Index: modules/in-news/units/articles/articles_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-news/units/articles/articles_event_handler.php (revision 15682) +++ modules/in-news/units/articles/articles_event_handler.php (revision ) @@ -70,14 +70,14 @@ return; } - $category_table = $this->Application->getUnitOption('c', 'TableName'); - $custom_table = $this->Application->getUnitOption('c-cdata', 'TableName'); + $category_table = $this->Application->getUnitConfig('c')->getTableName(); + $custom_table = $this->Application->getUnitConfig('c-cdata')->getTableName(); $category_custom_fields = $this->getCustomColumns('c'); $article_custom_fields = $this->getCustomColumns($event->Prefix); - // update categories which sould be updated + // update categories which should be updated $sql = 'SELECT cd.*, c.CategoryId FROM '.$category_table.' c LEFT JOIN '.$custom_table.' cd ON c.ResourceId = cd.ResourceId @@ -112,12 +112,13 @@ $categories = $this->Conn->GetCol($sql, 'ResourceId'); - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $table = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $ci_table = $this->Application->getUnitOption($event->Prefix.'-ci', 'TableName'); + $config = $event->getUnitConfig(); + $id_field = $config->getIDField(); + $table = $config->getTableName(); + $ci_table = $this->Application->getUnitConfig($event->Prefix . '-ci')->getTableName(); if ($categories) { - $article_custom_table = $this->Application->getUnitOption($event->Prefix.'-cdata', 'TableName'); + $article_custom_table = $this->Application->getUnitConfig($event->Prefix . '-cdata')->getTableName(); $sql = 'SELECT main_table.'.$id_field.' FROM '.$table.' main_table @@ -150,16 +151,18 @@ */ function getFeedArticles($event) { - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $table = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $custom_table = $this->Application->getUnitOption($event->Prefix.'-cdata', 'TableName'); + $config = $event->getUnitConfig(); + $id_field = $config->getIDField(); + $table = $config->getTableName(); + $custom_table = $this->Application->getUnitConfig($event->Prefix . '-cdata')->getTableName(); $crc_field = $event->getEventParam('custom_fields', 'RssArticleCRC'); - $sql = 'SELECT main_table.'.$id_field.', cd.'.$crc_field.' + $sql = 'SELECT main_table.' . $id_field . ', cd.' . $crc_field . ' - FROM '.$table.' main_table + FROM ' . $table . ' main_table - LEFT JOIN '.$custom_table.' cd ON cd.ResourceId = main_table.ResourceId + LEFT JOIN ' . $custom_table . ' cd ON cd.ResourceId = main_table.ResourceId - WHERE LENGTH(cd.'.$crc_field.') > 0'; + WHERE LENGTH(cd.' . $crc_field . ') > 0'; + return $this->Conn->GetCol($sql, $crc_field); } @@ -411,9 +414,10 @@ $ml_formatter = $this->Application->recallObject('kMultiLanguage'); /* @var $ml_formatter kMultiLanguage */ - $custom_fields = array_flip($this->Application->getUnitOption($prefix, 'CustomFields')); + $custom_fields = array_flip($this->Application->getUnitConfig($prefix)->getCustomFields()); + foreach ($custom_fields as $custom_name => $custom_id) { - $custom_fields[$custom_name] = $ml_formatter->LangFieldName('cust_'.$custom_id); + $custom_fields[$custom_name] = $ml_formatter->LangFieldName('cust_' . $custom_id); } return $custom_fields; @@ -499,21 +503,34 @@ */ function OnUpdateCategoryCustomFields($event) { - $new_virtual_fields = Array( + $this->Application->getUnitConfig('c')->addVirtualFields(Array ( - 'cust_RssSource' => Array('type' => 'string', 'default' => ''), + 'cust_RssSource' => Array ('type' => 'string', 'default' => ''), - 'cust_RssDefaultExpiration' => Array('type' => 'int', 'default' => ''), + 'cust_RssDefaultExpiration' => Array ('type' => 'int', 'default' => ''), - 'cust_RssDefaultExpirationType' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' => Array(60 => 'la_opt_min', 3600 => 'la_opt_hour', 86400 => 'la_opt_day', 2419200 => 'la_opt_month', 29030400 => 'la_opt_year'), 'default' => 60), + 'cust_RssDefaultExpirationType' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', 'options' => Array (60 => 'la_opt_min', 3600 => 'la_opt_hour', 86400 => 'la_opt_day', 2419200 => 'la_opt_month', 29030400 => 'la_opt_year'), 'use_phrases' => 1, + 'default' => 60 + ), - 'cust_RssExpireInterval' => Array('type' => 'int', 'default' => ''), + 'cust_RssExpireInterval' => Array ('type' => 'int', 'default' => ''), - 'cust_RssExpireIntervalType' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' => Array(60 => 'la_opt_min', 3600 => 'la_opt_hour', 86400 => 'la_opt_day', 2419200 => 'la_opt_month'), 'default' => 60), - 'cust_RssDeleteExpired' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' => Array(1 => 'la_Yes', 0 => 'la_No'), 'default' => 0), + 'cust_RssExpireIntervalType' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', 'options' => Array (60 => 'la_opt_min', 3600 => 'la_opt_hour', 86400 => 'la_opt_day', 2419200 => 'la_opt_month'), 'use_phrases' => 1, + 'default' => 60 + ), + 'cust_RssDeleteExpired' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), + 'default' => 0 + ), - 'cust_RssUpdateInterval' => Array('type' => 'int', 'default' => ''), + 'cust_RssUpdateInterval' => Array ('type' => 'int', 'default' => ''), - 'cust_RssUpdateIntervalType' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options' => Array(60 => 'la_opt_min', 3600 => 'la_opt_hour', 86400 => 'la_opt_day', 2419200 => 'la_opt_month'), 'default' => 60), + 'cust_RssUpdateIntervalType' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', 'options' => Array (60 => 'la_opt_min', 3600 => 'la_opt_hour', 86400 => 'la_opt_day', 2419200 => 'la_opt_month'), 'use_phrases' => 1, + 'default' => 60 + ), - 'cust_RssLastUpdated' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => ''), + 'cust_RssLastUpdated' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => ''), - 'cust_RssLastExpired' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => ''), + 'cust_RssLastExpired' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => ''), - ); - $virtual_fields = $this->Application->getUnitOption('c', 'VirtualFields'); - $virtual_fields = kUtil::array_merge_recursive($virtual_fields, $new_virtual_fields); - $this->Application->setUnitOption('c', 'VirtualFields', $virtual_fields); + )); } /** @@ -554,10 +571,12 @@ parent::OnCloneSubItem($event); if ( $event->MasterEvent->Prefix == 'rev' ) { - $clones = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Clones'); - $subitem_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; + $master_config = $event->MasterEvent->getUnitConfig(); - $clones[$subitem_prefix]['ConfigMapping'] = Array ( + $clones = $master_config->getClones('Clones', Array ()); + $sub_item_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; + + $clones[$sub_item_prefix]['ConfigMapping'] = Array ( 'PerPage' => 'Perpage_NewsReviews', 'ShortListPerPage' => 'Perpage_NewsReviews_Short', 'DefaultSorting1Field' => 'News_SortReviews', @@ -569,7 +588,7 @@ 'ReviewDelayValue' => 'News_ReviewDelay_Value', ); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Clones', $clones); + $master_config->setClones($clones); } } } \ No newline at end of file Index: modules/custom/units/widgets/widget_tp.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/widgets/widget_tp.php (revision 15682) +++ modules/custom/units/widgets/widget_tp.php (revision ) @@ -29,7 +29,8 @@ $object = $this->getObject($params); /* @var $object kDBList */ - $edit_template = $this->Application->getUnitOption($this->Prefix, 'AdminTemplatePath') . '/' . $this->Application->getUnitOption($this->Prefix, 'AdminTemplatePrefix') . 'edit'; + $config = $this->getUnitConfig(); + $edit_template = $config->getAdminTemplatePath() . '/' . $config->getAdminTemplatePrefix() . 'edit'; $url_params = Array ( 'm_opener' => 'd', \ No newline at end of file Index: modules/in-bulletin/units/private_messages/private_message_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/private_messages/private_message_eh.php (revision 15682) +++ modules/in-bulletin/units/private_messages/private_message_eh.php (revision ) @@ -217,12 +217,11 @@ $object = $event->getObject(); /* @var $object kDBItem */ - $body_idfield = $this->Application->getUnitOption($event->Prefix . '-body', 'IDField'); - $body_table = $this->Application->getUnitOption($event->Prefix . '-body', 'TableName'); + $config = $this->Application->getUnitConfig($event->Prefix . '-body'); - $sql = 'UPDATE ' . $body_table . ' + $sql = 'UPDATE ' . $config->getTableName() . ' SET ReferenceCount = ReferenceCount - 1 - WHERE ' . $body_idfield . ' = ' . $object->GetDBField('PMBodyId'); + WHERE ' . $config->getIDField() . ' = ' . $object->GetDBField('PMBodyId'); $this->Conn->Query($sql); } @@ -237,11 +236,13 @@ { parent::OnAfterConfigRead($event); - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); + $config = $event->getUnitConfig(); + + $virtual_fields = $config->getVirtualFields(); $virtual_fields['DisableBBCodes']['default'] = (int)!$this->Application->RecallPersistentVar('bbcode'); $virtual_fields['DisableSmileys']['default'] = (int)!$this->Application->RecallPersistentVar('smileys'); $virtual_fields['ShowSignatures']['default'] = (int)$this->Application->RecallPersistentVar('show_sig'); - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); + $config->setVirtualFields($virtual_fields); } /** \ No newline at end of file Index: modules/custom/units/sections/products/e_product_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/sections/products/e_product_eh.php (revision 15682) +++ modules/custom/units/sections/products/e_product_eh.php (revision ) @@ -58,16 +58,18 @@ { parent::OnAfterConfigRead($event); +// $config = $event->getUnitConfig(); + # 1. Regular Fields from /in-commerce/units/products/products_config.php - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields = $config->getFields(); #get regular fields // $fields['Status']['default'] = STATUS_ACTIVE; #add/edit field configuration (make default = STATUS_ACTIVE) - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save regular fields +// $config->setFields($fields); #save regular fields # 2. Virtual Fields from /in-commerce/units/products/products_config.php - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields +// $virtual_fields = $config->getVirtualFields(); #get virtual fields // $virtual_fields['Qty']['default'] = 1; #add/edit field configuration - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); # save virtual fields +// $config->setVirtualFields($virtual_fields); # save virtual fields } /** \ No newline at end of file Index: modules/in-auction/units/category_listing/category_listing_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-auction/units/category_listing/category_listing_eh.php (revision 15682) +++ modules/in-auction/units/category_listing/category_listing_eh.php (revision ) @@ -43,14 +43,16 @@ */ public function CheckPermission(kEvent $event) { -// $sql = 'SELECT Prefix -// FROM '.TABLE_PREFIX.'ItemTypes -// WHERE ItemType = '.$this->Conn->qstr( $this->Application->GetVar('cf_type') ); -// $main_prefix = $this->Conn->GetOne($sql); + /*$sql = 'SELECT Prefix + FROM ' . TABLE_PREFIX . 'ItemTypes + WHERE ItemType = ' . $this->Conn->qstr($this->Application->GetVar('cf_type')); + $main_prefix = $this->Conn->GetOne($sql);*/ + $main_prefix = 'c'; - $section = $this->Application->getUnitOption($main_prefix.'.ebay', 'PermSection'); + $section = $this->Application->getUnitConfig($main_prefix)->getPermSectionByName('ebay'); $event->setEventParam('PermSection', $section); + return parent::CheckPermission($event); } @@ -62,36 +64,16 @@ */ function OnModifyCategoriesConfig($event) { + $master_config = $event->MasterEvent->getUnitConfig(); - $title_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'TitlePresets'); - $title_presets['categories_ebay'] = Array( - 'prefixes' => Array('c'), - 'format' => "#c_status# '#c_titlefield#' - !la_title_eBay!" - ); + $master_config->addTitlePresets(Array ( + 'categories_ebay' => Array ( + 'prefixes' => Array('c'), 'format' => "#c_status# '#c_titlefield#' - !la_title_eBay!" + ), + )); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'TitlePresets', $title_presets); - - $subitems = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'SubItems'); - $subitems[] = 'c-ebay'; - $subitems[] = 'c-s-ebay'; - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'SubItems', $subitems); - + $master_config->addSubItems(Array ('c-ebay', 'c-s-ebay')); } - - -// /** -// * Enter description here... -// * -// * @param kEvent $event -// */ -// function OnAfterConfigRead($event) -// { -// -// parent::OnAfterConfigRead($event); -// // add fields -// -// } - function OnCategoriesPreSave($event) { Index: modules/in-commerce/units/currencies/currencies_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/currencies/currencies_tag_processor.php (revision 15682) +++ modules/in-commerce/units/currencies/currencies_tag_processor.php (revision ) @@ -17,32 +17,37 @@ function DisableUnusedWarning($params) { + $ret = ''; - $saved_ids = $this->Application->RecallVar('saved_curr_ids'); // when saving currency(-ies) + $saved_ids = $this->Application->RecallVar('saved_curr_ids'); // when saving currency(-ies) - $check_all = $this->Application->RecallVar('check_unused_currencies'); // when saving payment type + $check_all = $this->Application->RecallVar('check_unused_currencies'); // when saving payment type - $ret = ''; - if($saved_ids || $check_all) - { - $sql = 'SELECT DISTINCT CurrencyId FROM '.$this->Application->getUnitOption('ptc', 'TableName'); + + $config = $this->getUnitConfig(); + + if ( $saved_ids || $check_all ) { + $sql = 'SELECT DISTINCT CurrencyId + FROM ' . $this->Application->getUnitConfig('ptc')->getTableName(); $used_ids = $this->Conn->GetCol($sql); - if($check_all) - { - $sql = 'SELECT DISTINCT CurrencyId FROM '.$this->Application->getUnitOption('curr', 'TableName'); + + if ( $check_all ) { + $sql = 'SELECT DISTINCT CurrencyId + FROM ' . $config->getTableName(); $all_ids = $this->Conn->GetCol($sql); + - $unused_ids = implode(',', array_diff($all_ids, $used_ids) ); + $unused_ids = implode(',', array_diff($all_ids, $used_ids)); $this->Application->RemoveVar('check_unused_currencies'); } - else - { + else { $saved_ids = explode(',', $saved_ids); - $unused_ids = implode(',', array_diff($saved_ids, $used_ids) ); + $unused_ids = implode(',', array_diff($saved_ids, $used_ids)); $this->Application->RemoveVar('saved_curr_ids'); } if ( $unused_ids ) { $this->Application->SetVar('unused_ids', $unused_ids); + $sql = 'SELECT ISO - FROM '.$this->Application->getUnitOption($this->Prefix, 'TableName').' + FROM ' . $config->getTableName() . ' - WHERE CurrencyId IN('.$unused_ids.') AND Status = 1'; + WHERE CurrencyId IN(' . $unused_ids . ') AND Status = 1'; $params['unused_iso'] = implode(', ', $this->Conn->GetCol($sql)); if ( $params['unused_iso'] ) { @@ -52,6 +57,7 @@ } } } + return $ret; } @@ -82,7 +88,7 @@ function PrimaryCurrencyISO($params) { $sql = 'SELECT ISO - FROM ' . $this->Application->getUnitOption($this->Prefix, 'TableName') . ' + FROM ' . $this->getUnitConfig()->getTableName() . ' WHERE IsPrimary = 1'; return $this->Conn->GetOne($sql); @@ -91,7 +97,7 @@ function PrimaryCurrencyName($params) { $sql = 'SELECT Name - FROM ' . $this->Application->getUnitOption($this->Prefix, 'TableName') . ' + FROM ' . $this->getUnitConfig()->getTableName() . ' WHERE IsPrimary = 1'; return $this->Application->Phrase( $this->Conn->GetOne($sql) ); \ No newline at end of file Index: modules/in-link/units/links/link_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/links/link_tag_processor.php (revision 15682) +++ modules/in-link/units/links/link_tag_processor.php (revision ) @@ -42,9 +42,10 @@ function getListingInfo($resource_id, $field = null) { $sql = 'SELECT * - FROM '.$this->Application->getUnitOption('ls', 'TableName').' + FROM ' . $this->Application->getUnitConfig('ls')->getTableName() . ' - WHERE ItemResourceId = '.$resource_id; + WHERE ItemResourceId = ' . $resource_id; $listing_info = $this->Conn->GetRow($sql); + return isset($field) ? $listing_info[$field] : $listing_info; } @@ -119,8 +120,8 @@ $listing_info = $this->getListingInfo($object->GetDBField('ResourceId')); $sql = 'SELECT RenewalReminder - FROM '.$this->Application->getUnitOption('lst', 'TableName').' + FROM ' . $this->Application->getUnitConfig('lst')->getTableName() . ' - WHERE ListingTypeId = '.$listing_info['ListingTypeId']; + WHERE ListingTypeId = ' . $listing_info['ListingTypeId']; $renewal_interval = $this->Conn->GetOne($sql) * 3600 * 24; return ($listing_info['ExpiresOn'] - adodb_mktime() < $renewal_interval) ? 1 : 0; @@ -282,7 +283,7 @@ */ function LastVisited($params) { - if (!$this->Application->LoggedIn()) { + if ( !$this->Application->LoggedIn() ) { // we don't gather link visit statistics for Guests return ''; } @@ -292,30 +293,31 @@ $object = $this->getObject($params); /* @var $object kDBList */ - if (!isset($link_visited[$this->Special])) { + if ( !isset($link_visited[$this->Special]) ) { $resource_ids = $object->GetCol('ResourceId'); $user_id = $this->Application->RecallVar('user_id'); - $table_name = $this->Application->getUnitOption('l-visit', 'TableName'); + $table_name = $this->Application->getUnitConfig('l-visit')->getTableName(); $sql = 'SELECT VisitTimestamp, ResourceId - FROM '.$table_name.' + FROM ' . $table_name . ' - WHERE (PortalUserId = '.$user_id.') AND (ResourceId IN ('.implode(',', $resource_ids).'))'; + WHERE (PortalUserId = ' . $user_id . ') AND (ResourceId IN (' . implode(',', $resource_ids) . '))'; $link_visited[$this->Special] = $this->Conn->GetCol($sql, 'ResourceId'); } - if (!isset($link_visited[$this->Special][$object->GetDBField('ResourceId')])) { + if ( !isset($link_visited[$this->Special][$object->GetDBField('ResourceId')]) ) { // link has no visit information for current user return ''; } $link_visit = $link_visited[$this->Special][$object->GetDBField('ResourceId')]; - if (isset($params['formatted']) && $params['formatted']) { + if ( isset($params['formatted']) && $params['formatted'] ) { // format the date $lang = $this->Application->recallObject('lang.current'); + /* @var $lang LanguagesItem */ - if (isset($params['display_time']) && $params['display_time']) { + if ( isset($params['display_time']) && $params['display_time'] ) { - $display_format = $lang->GetDBField('DateFormat').' @ '.$lang->GetDBField('TimeFormat'); + $display_format = $lang->GetDBField('DateFormat') . ' @ ' . $lang->GetDBField('TimeFormat'); } else { $display_format = $lang->GetDBField('DateFormat'); @@ -409,8 +411,11 @@ // 1. get current grouping $grouping = $link_helper->getGrouping( $this->getPrefixSpecial() ); + $config = $this->getUnitConfig(); + // 2. replace field names in grouping with their corresponding column titles - $grids = $this->Application->getUnitOption($this->Prefix, 'Grids'); + $grids = $config->getGrids(); + foreach ($grouping as $index => $group_field) { $group_field = preg_replace('/^l[\d]+_/', '', $group_field); // remove ml prefix $grouping[$index] = $this->Application->Phrase($grids[$grid]['Fields'][$group_field]['title']); @@ -418,10 +423,9 @@ // 3. patch resulting title preset $concat_with = "' " . $this->Application->Phrase('la_and') . " '"; - $title_presets = $this->Application->getUnitOption($this->Prefix, 'TitlePresets'); - $title_presets['duplicate_links'] = str_replace('%s', "'" . implode($concat_with, $grouping) . "'", $title_presets['duplicate_links']); - - $this->Application->setUnitOption($this->Prefix, 'TitlePresets', $title_presets); + $title_preset = $config->getTitlePresetByName('duplicate_links'); + $title_preset = str_replace('%s', "'" . implode($concat_with, $grouping) . "'", $title_preset); + $config->addTitlePresets($title_preset, 'duplicate_links'); } /** \ No newline at end of file Index: modules/in-commerce/units/discount_items/discount_items_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/discount_items/discount_items_tag_processor.php (revision 15682) +++ modules/in-commerce/units/discount_items/discount_items_tag_processor.php (revision ) @@ -17,15 +17,16 @@ function IsEntireOrder($params) { - $table_name = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $table_name = $this->getUnitConfig()->getTableName(); - if ($this->Application->IsTempMode($this->Prefix)) { + if ( $this->Application->IsTempMode($this->Prefix) ) { $table_name = $this->Application->GetTempName($table_name, 'prefix:' . $this->Prefix); } $sql = 'SELECT COUNT(*) FROM ' . $table_name . ' WHERE (ItemType = 0) AND (DiscountId = ' . $this->Application->GetVar('d_id') . ')'; + return $this->Conn->GetOne($sql); } \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_classes/multicards.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_classes/multicards.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_classes/multicards.php (revision ) @@ -78,7 +78,7 @@ // prepopulated fields $billing_email = $item_data['BillingEmail']; if (!$billing_email) { - $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitOption('u', 'TableName').' + $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitConfig('u')->getTableName().' WHERE PortalUserId = '.$this->Application->RecallVar('user_id')); } $ret['cust_email'] = $billing_email; \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_classes/gw_base.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_classes/gw_base.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_classes/gw_base.php (revision ) @@ -258,4 +258,19 @@ return str_replace(DIRECTORY_SEPARATOR, '/', $ret); } + + /** + * Returns currently logged-in user's e-mail + * + * @return string + * @access protected + */ + protected function _getUserEmail() + { + $sql = 'SELECT Email + FROM ' . $this->Application->getUnitConfig('u')->getTableName() . ' + WHERE PortalUserId = ' . $this->Application->RecallVar('user_id'); + + return $this->Conn->GetOne($sql); + } } \ No newline at end of file Index: modules/in-commerce/units/addresses/addresses_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/addresses/addresses_event_handler.php (revision 15682) +++ modules/in-commerce/units/addresses/addresses_event_handler.php (revision ) @@ -419,9 +419,11 @@ $site_helper = $this->Application->recallObject('SiteHelper'); /* @var $site_helper SiteHelper */ - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); + $config = $this->Application->getUnitConfig($event->Prefix); + + $fields = $config->getFields(); $fields['Country']['default'] = $site_helper->getDefaultCountry('Shipping'); - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); + $config->setFields($fields); } /** @@ -431,28 +433,26 @@ */ function OnModifyUsersConfig($event) { - $title_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'TitlePresets'); + $config = $this->Application->getUnitConfig($event->MasterEvent->Prefix); - $title_presets['user_edit_addresses'] = Array ( + $config->addTitlePresets(Array ( + 'user_edit_addresses' => Array ( - 'prefixes' => Array ('u', $event->Prefix . '_List'), - 'format' => "#u_status# '#u_titlefield#' - !la_title_Addresses! (#" . $event->Prefix . "_recordcount#)" + 'prefixes' => Array ('u', $event->Prefix . '_List'), + 'format' => "#u_status# '#u_titlefield#' - !la_title_Addresses! (#" . $event->Prefix . "_recordcount#)" - ); - - $title_presets['user_address_edit'] = Array ( + ), + 'user_address_edit' => Array ( - 'prefixes' => Array ('u', $event->Prefix), - 'new_status_labels' => Array ($event->Prefix => '!la_title_AddingAddress!'), - 'edit_status_labels' => Array ($event->Prefix => '!la_title_EditingAddress!'), - 'new_titlefield' => Array ($event->Prefix => '!la_title_NewAddress!'), - 'format' => "#u_status# '#u_titlefield#' - #{$event->Prefix}_status#" + 'prefixes' => Array ('u', $event->Prefix), + 'new_status_labels' => Array ($event->Prefix => '!la_title_AddingAddress!'), + 'edit_status_labels' => Array ($event->Prefix => '!la_title_EditingAddress!'), + 'new_titlefield' => Array ($event->Prefix => '!la_title_NewAddress!'), + 'format' => "#u_status# '#u_titlefield#' - #{$event->Prefix}_status#" - ); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'TitlePresets', $title_presets); + ) + )); - $edit_tab_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'EditTabPresets'); - - $edit_tab_presets['Default'][] = Array ( + $config->addEditTabPresetTabs('Default', Array ( + 'addresses' => Array ( - 'title' => 'la_tab_Addresses', 't' => 'in-commerce/users/user_edit_addresses', 'priority' => 6 + 'title' => 'la_tab_Addresses', 't' => 'in-commerce/users/user_edit_addresses', 'priority' => 6 - ); - - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'EditTabPresets', $edit_tab_presets); + ) + )); } } \ No newline at end of file Index: modules/in-link/units/link_validation/link_validation_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/link_validation/link_validation_eh.php (revision 15682) +++ modules/in-link/units/link_validation/link_validation_eh.php (revision ) @@ -155,13 +155,15 @@ */ function _resetValidation($event) { + $config = $event->getUnitConfig(); + // 1. delete previous validation results - $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName'); + $sql = 'SELECT ' . $config->getIDField() . ' + FROM ' . $config->getTableName(); $ids = $this->Conn->GetCol($sql); - if ($ids) { + if ( $ids ) { - $temp_handler = $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); + $temp_handler = $this->Application->recallObject($event->getPrefixSpecial() . '_TempHandler', 'kTempTablesHandler'); /* @var $temp_handler kTempTablesHandler */ $temp_handler->DeleteItems($event->Prefix, $event->Special, $ids); @@ -270,18 +272,21 @@ function _getRecycleBinCategories() { $recycle_bin = $this->Application->ConfigValue('RecycleBinFolder'); + - if (!is_numeric($recycle_bin)) { + if ( !is_numeric($recycle_bin) ) { return Array (); } $recycle_categories = $this->Application->RecallVar('recycle_categories'); + - if ($recycle_categories === false) { + if ( $recycle_categories === false ) { + $categories_config = $this->Application->getUnitConfig('c'); $tree_indexes = $this->Application->getTreeIndex($recycle_bin); - $sql = 'SELECT ' . $this->Application->getUnitOption('c', 'IDField') . ' - FROM ' . $this->Application->getUnitOption('c', 'TableName') . ' + $sql = 'SELECT ' . $categories_config->getIDField() . ' + FROM ' . $categories_config->getTableName() . ' WHERE TreeLeft BETWEEN ' . $tree_indexes['TreeLeft'] . ' AND ' . $tree_indexes['TreeRight']; - $recycle_categories = serialize( $this->Conn->GetCol($sql) ); + $recycle_categories = serialize($this->Conn->GetCol($sql)); // store recycle bin categories in session to prevent query below happening on each link validation step $this->Application->StoreVar('recycle_categories', $recycle_categories); @@ -301,20 +306,20 @@ { static $recycle_bin = null; - if (!isset($recycle_bin)) { + if ( !isset($recycle_bin) ) { $recycle_bin = $this->_getRecycleBinCategories(); } - if (!$recycle_bin) { + if ( !$recycle_bin ) { // Recycle Bin not used in system -> link is 100% not there return false; } $sql = 'SELECT CategoryId - FROM ' . $this->Application->getUnitOption('l-ci', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('l-ci')->getTableName() . ' WHERE ItemResourceId = ' . $resource_id . ' AND PrimaryCat = 1'; - return in_array( $this->Conn->GetOne($sql), $recycle_bin); + return in_array($this->Conn->GetOne($sql), $recycle_bin); } function _validateLink($link_id) @@ -322,19 +327,21 @@ $curl_helper = $this->Application->recallObject('CurlHelper'); /* @var $curl_helper kCurlHelper */ + $link_config = $this->Application->getUnitConfig('l'); + $sql = 'SELECT Url, ResourceId - FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' - WHERE ' . $this->Application->getUnitOption('l', 'IDField') . ' = ' . $link_id; + FROM ' . $link_config->getTableName() . ' + WHERE ' . $link_config->getIDField() . ' = ' . $link_id; $link_data = $this->Conn->GetRow($sql); - if (!preg_match('/^(http|https):\/\/(.*)/U', $link_data['Url']) || $this->_inRecycleBin($link_data['ResourceId'])) { + if ( !preg_match('/^(http|https):\/\/(.*)/U', $link_data['Url']) || $this->_inRecycleBin($link_data['ResourceId']) ) { - return ; + return; } $curl_helper->timeout = LINK_VALIDATION_TIMEOUT; $result = $curl_helper->Send($link_data['Url']); - if ($result === false || $curl_helper->lastErrorMsg != '') { + if ( $result === false || $curl_helper->lastErrorMsg != '' ) { $curl_helper->lastErrorCode = 500; } @@ -352,6 +359,7 @@ 'ValidationCode' => $curl_helper->lastHTTPCode, 'ValidationStatus' => $curl_helper->lastHTTPCode < 400 ? LINK_VALIDATION_VALID : LINK_VALIDATION_INVALID, ); + $link_validation->SetDBFieldsFromHash($fields_hash); return $link_validation->isLoaded() ? $link_validation->Update() : $link_validation->Create(); @@ -394,10 +402,11 @@ */ function _getSelectedIds($event, $transform = false) { - $ids = Array(); + $ids = Array (); - $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); + $items_info = $this->Application->GetVar($event->getPrefixSpecial(true)); + - if ($items_info) { + if ( $items_info ) { foreach ($items_info as $id => $field_values) { if ( getArrayValue($field_values, 'ForeignLinkId') ) { // we are not gathering ids by unit idfield here! @@ -406,9 +415,11 @@ } } - if ($transform && $ids) { + if ( $transform && $ids ) { - $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $config = $event->getUnitConfig(); + + $sql = 'SELECT ' . $config->getIDField() . ' + FROM ' . $config->getTableName() . ' WHERE LinkId IN (' . implode(',', $ids) . ')'; $ids = $this->Conn->GetCol($sql); } @@ -491,14 +502,14 @@ function OnPrepareLinkEditing($event) { // hook to OnAfterConfigRead instead of OnEdit, because fake ids should be available in CheckPermission - if ($this->Application->GetVar('l_event') != 'OnEdit') { + if ( $this->Application->GetVar('l_event') != 'OnEdit' ) { - return ; + return; } + $items_info = Array (); $ids = $this->_getSelectedIds($event); - $id_field = $this->Application->getUnitOption('l', 'IDField'); + $id_field = $this->Application->getUnitConfig('l')->getIDField(); - $items_info = Array (); foreach ($ids as $id) { $items_info[$id][$id_field] = 'on'; } @@ -516,19 +527,22 @@ function _prepareValidation($event) { // 2. get ids of all links and put them into validation queue - $id_field = $this->Application->getUnitOption('l', 'IDField'); - $sql = 'SELECT ' . $id_field . ' - FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' - WHERE LinkId NOT IN (SELECT LinkId FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ')'; + $links_config = $this->Application->getUnitConfig('l'); + + $sql = 'SELECT ' . $links_config->getIDField() . ' + FROM ' . $links_config->getTableName() . ' + WHERE LinkId NOT IN (SELECT LinkId FROM ' . $event->getUnitConfig()->getTableName() . ')'; $link_ids = $this->Conn->GetCol($sql); - if ($link_ids) { + if ( $link_ids ) { $validation_data = Array ( 'processed' => 0, 'total' => count($link_ids), 'items' => $link_ids, ); + $this->Application->StoreVar($event->Prefix . '_status', serialize($validation_data)); // 4K links will be 78KB serialized + return true; } @@ -563,9 +577,9 @@ { parent::OnAfterConfigRead($event); - $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); - $calculated_fields['']['LinkName'] = 'l.l' . $this->Application->GetVar('m_lang') . '_Name'; - $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + $event->getUnitConfig()->addCalculatedFieldsBySpecial('', Array ( + 'LinkName' => 'l.l' . $this->Application->GetVar('m_lang') . '_Name', + )); } } \ No newline at end of file Index: modules/in-link/units/l-visits/l-visit_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/l-visits/l-visit_eh.php (revision 15682) +++ modules/in-link/units/l-visits/l-visit_eh.php (revision ) @@ -20,16 +20,19 @@ * Deletes visits when user/link got deleted * * @param kEvent $event + * @return void + * @access protected */ - function OnDeleteVisits($event) + protected function OnDeleteVisits(kEvent $event) { $key_field = $event->MasterEvent->Prefix == 'u' ? 'PortalUserId' : 'ResourceId'; - $table_name = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $table_name = $this->getUnitConfig()->getTableName(); $object = $event->MasterEvent->getObject(); + /* @var $object kDBItem */ - $sql = 'DELETE FROM '.$table_name.' + $sql = 'DELETE FROM ' . $table_name . ' - WHERE '.$key_field.' = '.$object->GetDBField($key_field); + WHERE ' . $key_field . ' = ' . $object->GetDBField($key_field); $this->Conn->Query($sql); } } \ No newline at end of file Index: modules/in-commerce/units/orders/orders_item.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/orders/orders_item.php (revision 15682) +++ modules/in-commerce/units/orders/orders_item.php (revision ) @@ -58,7 +58,7 @@ } } - $pt_table = $this->Application->getUnitOption('pt', 'TableName'); + $pt_table = $this->Application->getUnitConfig('pt')->getTableName(); $sql = 'SELECT GatewayId FROM %s @@ -71,8 +71,8 @@ $ret = $this->Conn->GetRow(sprintf($sql, TABLE_PREFIX . 'Gateways', $gw_id)); // get Gateway parameters based on payment type - $gwf_table = $this->Application->getUnitOption('gwf', 'TableName'); - $gwfv_table = $this->Application->getUnitOption('gwfv', 'TableName'); + $gwf_table = $this->Application->getUnitConfig('gwf')->getTableName(); + $gwfv_table = $this->Application->getUnitConfig('gwfv')->getTableName(); $sql = 'SELECT gwfv.Value, gwf.SystemFieldName FROM %s gwf @@ -130,8 +130,8 @@ $tax = false; $sql = 'SELECT tx.* - FROM '.$this->Application->getUnitOption('tax', 'TableName').' tx - LEFT JOIN '.$this->Application->getUnitOption('taxdst', 'TableName').' txd ON tx.TaxZoneId = txd.TaxZoneId + FROM '.$this->Application->getUnitConfig('tax')->getTableName().' tx + LEFT JOIN '.$this->Application->getUnitConfig('taxdst')->getTableName().' txd ON tx.TaxZoneId = txd.TaxZoneId WHERE ( txd.StdDestId IN ('.$shipping_country_id.','.$shipping_state_id.') AND @@ -250,7 +250,7 @@ function requireCreditCard() { $sql = 'SELECT RequireCCFields - FROM ' . $this->Application->getUnitOption('pt', 'TableName') . ' pt + FROM ' . $this->Application->getUnitConfig('pt')->getTableName() . ' pt LEFT JOIN '.TABLE_PREFIX.'Gateways gw ON gw.GatewayId = pt.GatewayId WHERE pt.PaymentTypeId = ' . $this->GetDBField('PaymentType'); \ No newline at end of file Index: modules/custom/units/sections/articles/e_article_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/sections/articles/e_article_eh.php (revision 15682) +++ modules/custom/units/sections/articles/e_article_eh.php (revision ) @@ -58,15 +58,17 @@ { parent::OnAfterConfigRead($event); +// $config = $event->getUnitConfig(); + # 1. Regular Fields from /in-news/units/articles/articles_config.php - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields = $config->getFields(); #get regular fields // $fields['Status']['default'] = STATUS_ACTIVE; #add/edit configuration (make default = STATUS_ACTIVE) - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save fields +// $config->setFields($fields); #save fields # 2. Virtual Fields from /in-news/units/articles/articles_config.php - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields +// $virtual_fields = $config->getVirtualFields(); #get virtual fields // $virtual_fields['UserName']['default'] = ''; #add/edit configuration - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields +// $config->setVirtualFields($virtual_fields); #save virtual fields } /** Index: modules/in-bulletin/units/poll_comments/poll_comment_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/poll_comments/poll_comment_eh.php (revision 15682) +++ modules/in-bulletin/units/poll_comments/poll_comment_eh.php (revision ) @@ -48,10 +48,12 @@ if ( $this->Application->RecallVar('user_id') == USER_GUEST ) { // make Guest Name and Email required for guests - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); + $config = $event->getUnitConfig(); + + $fields = $config->getFields(); $fields['GuestName']['required'] = 1; $fields['GuestEmail']['required'] = 1; - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); + $config->setFields($fields); } } \ No newline at end of file Index: modules/in-commerce/units/shipping_quote_engines/usps.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/shipping_quote_engines/usps.php (revision 15682) +++ modules/in-commerce/units/shipping_quote_engines/usps.php (revision ) @@ -1121,10 +1121,12 @@ foreach ( $orders as $k => $order ) { // try to track order if ( $order['ShippingTracking'] != '' && $this->TrackOrder($order['ShippingTracking']) ) { + $config = $this->Application->getUnitConfig('ord'); + $update_order = sprintf("UPDATE %s SET `Delivered` = 1 WHERE %s = %s", TABLE_PREFIX.'Orders', - $this->Application->getUnitOption('ord', 'IDField'), - $order[$this->Application->getUnitOption('ord', 'IDField')] + $config->getIDField(), + $order[$config->getIDField()] ); $this->Application->Conn->Query($update_order); } @@ -1190,7 +1192,7 @@ function LoadParams() { - $sql = 'SELECT Properties FROM '.$this->Application->getUnitOption('sqe', 'TableName').' + $sql = 'SELECT Properties FROM '.$this->Application->getUnitConfig('sqe')->getTableName().' WHERE ClassName="USPS"'; $params = $this->Conn->GetOne($sql); \ No newline at end of file Index: modules/custom/units/sections/links/e_link_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/sections/links/e_link_eh.php (revision 15682) +++ modules/custom/units/sections/links/e_link_eh.php (revision ) @@ -58,15 +58,17 @@ { parent::OnAfterConfigRead($event); +// $config = $event->getUnitConfig(); + # 1. Regular Fields from /in-link/units/links/links_config.php - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields = $config->getFields(); #get regular fields // $fields['Status']['default'] = STATUS_ACTIVE; #add/edit configuration (make default = STATUS_ACTIVE) - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save fields +// $config->setFields($fields); #save fields # 2. Virtual Fields from /in-link/units/links/links_config.php - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields +// $virtual_fields = $config->getVirtualFields(); #get virtual fields // $virtual_fields['UserName']['default'] = ''; #add/edit configuration - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields +// $config->setVirtualFields($virtual_fields); #save virtual fields } /** \ No newline at end of file Index: modules/in-commerce/units/shipping_quote_engines/intershipper.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/shipping_quote_engines/intershipper.php (revision 15682) +++ modules/in-commerce/units/shipping_quote_engines/intershipper.php (revision ) @@ -348,7 +348,7 @@ function LoadParams() { - $sql = 'SELECT Properties, FlatSurcharge, PercentSurcharge FROM '.$this->Application->getUnitOption('sqe', 'TableName').' + $sql = 'SELECT Properties, FlatSurcharge, PercentSurcharge FROM '.$this->Application->getUnitConfig('sqe')->getTableName().' WHERE Name="Intershipper.com"'; $data = $this->Conn->GetRow($sql); \ No newline at end of file Index: modules/in-commerce/units/orders/order_calculator.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/orders/order_calculator.php (revision 15682) +++ modules/in-commerce/units/orders/order_calculator.php (revision ) @@ -169,7 +169,7 @@ */ protected function queryItems() { - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); $query = ' SELECT oi.ProductId, oi.OptionsSalt, oi.ItemData, oi.Quantity, IF(p.InventoryStatus = ' . ProductInventory::BY_OPTIONS . ', poc.QtyInStock, p.QtyInStock) AS QtyInStock, \ No newline at end of file Index: modules/in-commerce/units/order_items/order_items_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/order_items/order_items_event_handler.php (revision 15682) +++ modules/in-commerce/units/order_items/order_items_event_handler.php (revision ) @@ -58,7 +58,7 @@ $product_object->Load($product_id); $sql = 'SELECT COUNT(*) - FROM ' . $this->Application->getUnitOption('po', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('po')->getTableName() . ' WHERE (Required = 1) AND (ProductId = ' . $product_id . ')'; if ( $this->Conn->GetOne($sql) ) { @@ -278,13 +278,11 @@ { parent::OnAfterClone($event); - $id = $event->getEventParam('id'); - $table = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); + $config = $event->getUnitConfig(); - $sql = 'UPDATE ' . $table . ' + $sql = 'UPDATE ' . $config->getTableName() . ' SET QuantityReserved = NULL - WHERE ' . $id_field . ' = ' . $id; + WHERE ' . $config->getIDField() . ' = ' . $event->getEventParam('id'); $this->Conn->Query($sql); } \ No newline at end of file Index: modules/in-commerce/install/upgrades.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/install/upgrades.php (revision 15682) +++ modules/in-commerce/install/upgrades.php (revision ) @@ -74,11 +74,12 @@ { if ($mode == 'after') { // update icon + $categories_config = $this->Application->getUnitConfig('c'); $root_category = $this->Application->findModule('Name', 'In-Commerce', 'RootCat'); - $sql = 'UPDATE ' . $this->Application->getUnitOption('c', 'TableName') . ' + $sql = 'UPDATE ' . $categories_config->getTableName() . ' SET UseMenuIconUrl = 1, MenuIconUrl = "in-commerce/img/menu_products.gif" - WHERE ' . $this->Application->getUnitOption('c', 'IDField') . ' = ' . $root_category; + WHERE ' . $categories_config->getIDField() . ' = ' . $root_category; $this->Conn->Query($sql); $this->_updateDetailTemplate('p', 'in-commerce/product/details', 'in-commerce/designs/detail'); @@ -156,7 +157,7 @@ return; } - $table_name = $this->Application->getUnitOption('pt', 'TableName'); + $table_name = $this->Application->getUnitConfig('pt')->getTableName(); $table_structure = $this->Conn->Query('DESCRIBE ' . $table_name, 'Field'); if ( isset($table_structure['Description']) ) { \ No newline at end of file Index: modules/in-commerce/units/orders/orders_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/orders/orders_tag_processor.php (revision 15682) +++ modules/in-commerce/units/orders/orders_tag_processor.php (revision ) @@ -236,7 +236,7 @@ /* @var $object kDBItem */ $ord_id = $object->GetID(); - $oi_table = $this->Application->getUnitOption('orditems', 'TableName'); + $oi_table = $this->Application->getUnitConfig('orditems')->getTableName(); if ( $object->IsTempTable() ) { $oi_table = $this->Application->GetTempName($oi_table, 'prefix:' . $object->Prefix); @@ -532,7 +532,7 @@ $object->SetDBField('PaymentType', $pt); } - $pt_table = $this->Application->getUnitOption('pt','TableName'); + $pt_table = $this->Application->getUnitConfig('pt')->getTableName(); $sql = 'SELECT GatewayId FROM %s WHERE PaymentTypeId = %s'; $gw_id = $this->Conn->GetOne( sprintf( $sql, $pt_table, $pt ) ); @@ -614,8 +614,9 @@ */ function OrderEditable($params) { - $id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); - $table_name = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $config = $this->getUnitConfig(); + $id_field = $config->getIDField(); + $table_name = $config->getTableName(); if ($this->Application->IsTempMode($this->Prefix, $this->Special)) { $table_name = $this->Application->GetTempName($table_name, 'prefix:' . $this->Prefix); @@ -640,9 +641,11 @@ case ORDER_STATUS_PENDING: case ORDER_STATUS_BACKORDERS: + $config = $this->Application->getUnitConfig('pt'); + $sql = 'SELECT PlacedOrdersEdit - FROM ' . $this->Application->getUnitOption('pt', 'TableName') . ' - WHERE ' . $this->Application->getUnitOption('pt', 'IDField') . ' = ' . $order_data['PaymentType']; + FROM ' . $config->getTableName() . ' + WHERE ' . $config->getIDField() . ' = ' . $order_data['PaymentType']; $ret = $this->Conn->GetOne($sql); break; @@ -1402,9 +1405,12 @@ function UserHasPendingOrders($params) { - $sql = 'SELECT OrderId FROM '.$this->Application->getUnitOption($this->Prefix, 'TableName').' - WHERE PortalUserId = '.$this->Application->RecallVar('user_id').' - AND Status = '.ORDER_STATUS_PENDING; + $user_id = $this->Application->RecallVar('user_id'); + + $sql = 'SELECT OrderId + FROM '.$this->getUnitConfig()->getTableName().' + WHERE PortalUserId = '. $user_id .' AND Status = '.ORDER_STATUS_PENDING; + return $this->Conn->GetOne($sql) ? 1 : 0; } \ No newline at end of file Index: modules/in-link/units/listings/listings_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/units/listings/listings_tag_processor.php (revision 15682) +++ modules/in-link/units/listings/listings_tag_processor.php (revision ) @@ -41,8 +41,10 @@ $object = $this->getObject($params); /* @var $object kDBItem */ - $sql = 'SELECT '.$this->Application->getUnitOption('l', 'IDField').' - FROM '.$this->Application->getUnitOption('l', 'TableName').' + $links_config = $this->Application->getUnitConfig('l'); + + $sql = 'SELECT '.$links_config->getIDField().' + FROM '.$links_config->getTableName().' WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); return $this->Application->HREF($params['edit_template'],'', Array( \ No newline at end of file Index: modules/in-news/install/upgrades.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-news/install/upgrades.php (revision 15682) +++ modules/in-news/install/upgrades.php (revision ) @@ -71,11 +71,12 @@ function Upgrade_5_0_0($mode) { if ($mode == 'after') { + $categories_config = $this->Application->getUnitConfig('c'); $root_category = $this->Application->findModule('Name', 'In-News', 'RootCat'); - $sql = 'UPDATE ' . $this->Application->getUnitOption('c', 'TableName') . ' + $sql = 'UPDATE ' . $categories_config->getTableName() . ' SET UseMenuIconUrl = 1, MenuIconUrl = "in-news/img/menu_articles.gif" - WHERE ' . $this->Application->getUnitOption('c', 'IDField') . ' = ' . $root_category; + WHERE ' . $categories_config->getIDField() . ' = ' . $root_category; $this->Conn->Query($sql); $this->_updateDetailTemplate('n', 'innews/detail', 'in-news/designs/detail'); \ No newline at end of file Index: modules/in-bulletin/units/posts/post_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/posts/post_eh.php (revision 15682) +++ modules/in-bulletin/units/posts/post_eh.php (revision ) @@ -216,7 +216,7 @@ $object = $event->getObject(); /* @var $object kDBItem */ - $parent_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); + $parent_prefix = $event->getUnitConfig()->getParentPrefix(); $main_object = $this->Application->recallObject($parent_prefix); /* @var $main_object kCatDBItem */ @@ -394,11 +394,13 @@ { parent::OnAfterConfigRead($event); - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); + $config = $event->getUnitConfig(); + + $virtual_fields = $config->getVirtualFields(); $virtual_fields['DisableBBCodes']['default'] = (int)!$this->Application->RecallPersistentVar('bbcode'); $virtual_fields['DisableSmileys']['default'] = (int)!$this->Application->RecallPersistentVar('smileys'); $virtual_fields['ShowSignatures']['default'] = (int)$this->Application->RecallPersistentVar('show_sig'); - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); + $config->setVirtualFields($virtual_fields); } /** @@ -413,7 +415,7 @@ parent::OnDelete($event); if ( $event->status == kEvent::erSUCCESS && !$this->Application->isAdmin ) { - $parent_prefix = $this->Application->getUnitOption($event->Prefix, 'ParentPrefix'); + $parent_prefix = $event->getUnitConfig()->getParentPrefix(); $event->SetRedirectParam('pass', 'm,' . $parent_prefix); } } \ No newline at end of file Index: modules/custom/units/sections/reviews/e_review_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/sections/reviews/e_review_eh.php (revision 15682) +++ modules/custom/units/sections/reviews/e_review_eh.php (revision ) @@ -19,13 +19,15 @@ { parent::OnAfterConfigRead($event); +// $config = $event->getUnitConfig(); + // 1. add fields -// $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); -// $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); +// $fields = $config->getFields(); +// $config->setFields($fields); // 2. calculated fields -// $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); -// $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); +// $calculated_fields = $config->getCalculatedFieldsBySpecial(''); +// $config->setCalculatedFieldsBySpecial('', $calculated_fields); } /** Index: modules/in-commerce/units/reports/reports_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/reports/reports_event_handler.php (revision 15682) +++ modules/in-commerce/units/reports/reports_event_handler.php (revision ) @@ -330,21 +330,20 @@ $this->Application->StoreVar('report_options', serialize($field_values)); } - function OnUpdateConfig($event) + function OnUpdateConfig(kEvent $event) { $report = $this->Application->RecallVar('report_options'); + - if (!$report) { + if ( !$report ) { - return ; + return; } $field_values = unserialize($report); - $rep_options = $this->Application->getUnitOptions('rep'); - $new_options = Array (); + $config = $event->getUnitConfig('rep'); + $config->setTableName($field_values['table_name']); - $new_options['TableName'] = $field_values['table_name']; - - $new_options['Fields'] = Array ( + $config->addFields(Array ( 'Qty' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%d', 'default' => 0, 'totals' => 'sum'), 'Cost' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), 'Amount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), @@ -352,97 +351,94 @@ 'Shipping' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), 'Processing' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), 'Profit' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), - ); + )); if ( $this->Application->isModuleEnabled('in-auction') ) { - if ( in_Array ($field_values['ReportType'], Array (1, 5)) ) { - $new_options['Fields'] += Array ( + if ( in_array($field_values['ReportType'], Array (1, 5)) ) { + $config->addFields(Array ( 'StoreQty' => Array ('type' => 'int', 'formatter' => 'kFormatter', 'format' => '%d', 'default' => 0, 'totals' => 'sum'), 'StoreAmount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), 'StoreProfit' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), 'eBayQty' => Array ('type' => 'int', 'formatter' => 'kFormatter', 'format' => '%d', 'default' => 0, 'totals' => 'sum'), 'eBayAmount' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), 'eBayProfit' => Array ('type' => 'float', 'formatter' => 'kFormatter', 'format' => '%.2f', 'default' => 0, 'totals' => 'sum'), - ); + )); } } - if ($field_values['ReportType'] == 1) { // by Category + if ( $field_values['ReportType'] == 1 ) { // by Category + $config->setListSQLsBySpecial('', ' SELECT %1$s.* %2$s + FROM %1$s + LEFT JOIN ' . TABLE_PREFIX . 'Categories AS c ON c.CategoryId = %1$s.CategoryId'); - $new_options['ListSQLs'][''] = - 'SELECT %1$s.* %2$s FROM %1$s - LEFT JOIN '.TABLE_PREFIX.'Categories AS c - ON c.CategoryId = %1$s.CategoryId'; - $new_options['Grids']['Default'] = Array ( - 'Icons' => Array ( - 'default' => 'icon16_item.png', - 'module' => 'core', - ), + if ( $this->Application->isModuleEnabled('in-auction') ) { + $config->addGrids(Array ( + 'Icons' => Array ('default' => 'icon16_item.png', 'module' => 'core'), - 'Fields' => Array ( - 'CategoryName' => Array ('title' => 'la_col_CategoryName', 'filter_block' => 'grid_like_filter'), - 'Qty' => Array ('td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'StoreQty' => Array ('title' => 'la_col_StoreQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'eBayQty' => Array ('title' => 'la_col_eBayQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'Cost' => Array ('td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Amount' => Array ('title' => 'la_col_GMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'StoreAmount' => Array ('title' => 'la_col_StoreGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'eBayAmount' => Array ('title' => 'la_col_eBayGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'Tax' => Array ('title' => 'la_col_Tax', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Shipping' => Array ('title' => 'la_col_Shipping', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'StoreProfit' => Array ('title' => 'la_col_StoreProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'eBayProfit' => Array ('title' => 'la_col_eBayProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - ), + 'Fields' => Array ( + 'CategoryName' => Array ('title' => 'la_col_CategoryName', 'filter_block' => 'grid_like_filter'), + 'Qty' => Array ('td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'StoreQty' => Array ('title' => 'la_col_StoreQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'eBayQty' => Array ('title' => 'la_col_eBayQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Cost' => Array ('td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Amount' => Array ('title' => 'la_col_GMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'StoreAmount' => Array ('title' => 'la_col_StoreGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'eBayAmount' => Array ('title' => 'la_col_eBayGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Tax' => Array ('title' => 'la_col_Tax', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Shipping' => Array ('title' => 'la_col_Shipping', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'StoreProfit' => Array ('title' => 'la_col_StoreProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'eBayProfit' => Array ('title' => 'la_col_eBayProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + ), - - ); - - if (!$this->Application->isModuleEnabled('in-auction')) { - $a_fields =& $new_options['Grids']['Default']['Fields']; - unset($a_fields['StoreQty']); - unset($a_fields['eBayQty']); - unset($a_fields['StoreAmount']); - unset($a_fields['eBayAmount']); - unset($a_fields['StoreProfit']); - unset($a_fields['eBayProfit']); + ), 'Default'); } + else { + $config->addGrids(Array ( + 'Icons' => Array ('default' => 'icon16_item.png', 'module' => 'core'), + 'Fields' => Array ( + 'CategoryName' => Array ('title' => 'la_col_CategoryName', 'filter_block' => 'grid_like_filter'), + 'Qty' => Array ('td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Cost' => Array ('td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Amount' => Array ('title' => 'la_col_GMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Tax' => Array ('title' => 'la_col_Tax', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Shipping' => Array ('title' => 'la_col_Shipping', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + ), + ), 'Default'); + } - $new_options['VirtualFields'] = array_merge($rep_options['VirtualFields'], Array ( + $config->addVirtualFields(Array ( 'CategoryName' => Array ('type' => 'string', 'default' => ''), - 'Metric' => Array ( - 'type' => 'int', - 'formatter' => 'kOptionsFormatter', + 'Metric' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', - 'options' => $this->GetMetricOptions($new_options, 'CategoryName'), + 'options' => $this->GetMetricOptions($config, 'CategoryName'), - 'use_phrases' => 1, - 'default' => 0, - ), + 'use_phrases' => 1, + 'default' => 0, + ), )); $lang = $this->Application->GetVar('m_lang'); // products root category $products_category_id = $this->Application->findModule('Name', 'In-Commerce', 'RootCat'); + // get root category name $sql = 'SELECT LENGTH(l' . $lang . '_CachedNavbar) FROM ' . TABLE_PREFIX . 'Categories WHERE CategoryId = '.$products_category_id; $root_length = $this->Conn->GetOne($sql) + 4; - $new_options['CalculatedFields'][''] = array( - 'CategoryName' => 'REPLACE(SUBSTR(c.l'.$lang.'_CachedNavbar, '.$root_length.'), "&|&", " > ")', - ); + $config->addCalculatedFieldsBySpecial('', 'REPLACE(SUBSTR(c.l'.$lang.'_CachedNavbar, '.$root_length.'), "&|&", " > ")', 'CategoryName'); } elseif ($field_values['ReportType'] == 2) { // by User - $new_options['ListSQLs'][''] = - 'SELECT %1$s.* %2$s FROM %1$s - LEFT JOIN '.TABLE_PREFIX.'Users AS u - ON u.PortalUserId = %1$s.PortalUserId'; + $config->setListSQLsBySpecial('', ' SELECT %1$s.* %2$s + FROM %1$s + LEFT JOIN ' . TABLE_PREFIX . 'Users AS u ON u.PortalUserId = %1$s.PortalUserId'); - $new_options['Grids']['Default'] = Array ( - 'Icons' => Array ( - 'default' => 'icon16_item.png', - 'module' => 'core', - ), + $config->addGrids(Array ( + 'Icons' => Array ('default' => 'icon16_item.png', 'module' => 'core'), 'Fields' => Array ( 'Login' => Array ('filter_block' => 'grid_like_filter'), 'FirstName' => Array ('filter_block' => 'grid_like_filter'), @@ -455,100 +451,89 @@ 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), ), - ); + ), 'Default'); - $new_options['VirtualFields'] = array_merge($rep_options['VirtualFields'], Array ( + $config->addVirtualFields(Array ( 'Login' => Array ('type' => 'string', 'default' => ''), 'FirstName' => Array ('type' => 'string', 'default' => ''), 'LastName' => Array ('type' => 'string', 'default' => ''), )); - $new_options['CalculatedFields'][''] = Array ( + $config->addCalculatedFieldsBySpecial('', Array ( 'Login' => 'u.Username', 'FirstName' => 'u.FirstName', 'LastName' => 'u.LastName', - ); + )); } elseif ($field_values['ReportType'] == 5) { // by Product + $config->setListSQLsBySpecial('', ' SELECT %1$s.* %2$s + FROM %1$s + LEFT JOIN '.TABLE_PREFIX.'Products AS p ON p.ProductId = %1$s.ProductId'); - $new_options['ListSQLs'][''] = - 'SELECT %1$s.* %2$s FROM %1$s - LEFT JOIN '.TABLE_PREFIX.'Products AS p - ON p.ProductId = %1$s.ProductId'; - - $new_options['Grids']['Default'] = Array ( - 'Icons' => Array ( - 'default' => 'icon16_item.png', - 'module' => 'core', - ), + if ( $this->Application->isModuleEnabled('in-auction') ) { + $config->addGrids(Array ( + 'Icons' => Array ('default' => 'icon16_item.png', 'module' => 'core'), - 'Fields' => Array ( - 'ProductName' => Array ('title' => 'la_col_ProductName', 'filter_block' => 'grid_like_filter'), - 'Qty' => Array ('td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'StoreQty' => Array ('title' => 'la_col_StoreQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'eBayQty' => Array ('title' => 'la_col_eBayQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'Cost' => Array ('td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Amount' => Array ('title' => 'la_col_GMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'StoreAmount' => Array ('title' => 'la_col_StoreGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'eBayAmount' => Array ('title' => 'la_col_eBayGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'Tax' => Array ('title' => 'la_col_Tax', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Shipping' => Array ('title' => 'la_col_Shipping', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), - 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'StoreProfit' => Array ('title' => 'la_col_StoreProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - 'eBayProfit' => Array ('title' => 'la_col_eBayProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), - ), + 'Fields' => Array ( + 'ProductName' => Array ('title' => 'la_col_ProductName', 'filter_block' => 'grid_like_filter'), + 'Qty' => Array ('td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'StoreQty' => Array ('title' => 'la_col_StoreQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'eBayQty' => Array ('title' => 'la_col_eBayQty', 'td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Cost' => Array ('td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Amount' => Array ('title' => 'la_col_GMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'StoreAmount' => Array ('title' => 'la_col_StoreGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'eBayAmount' => Array ('title' => 'la_col_eBayGMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Tax' => Array ('title' => 'la_col_Tax', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Shipping' => Array ('title' => 'la_col_Shipping', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'StoreProfit' => Array ('title' => 'la_col_StoreProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'eBayProfit' => Array ('title' => 'la_col_eBayProfit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + ), - - ); - - if (!$this->Application->isModuleEnabled('in-auction')) - { - $a_fields =& $new_options['Grids']['Default']['Fields']; - unset($a_fields['StoreQty']); - unset($a_fields['eBayQty']); - unset($a_fields['StoreAmount']); - unset($a_fields['eBayAmount']); - unset($a_fields['StoreProfit']); - unset($a_fields['eBayProfit']); + ), 'Default'); } + else { + $config->addGrids(Array ( + 'Icons' => Array ('default' => 'icon16_item.png', 'module' => 'core'), + 'Fields' => Array ( + 'ProductName' => Array ('title' => 'la_col_ProductName', 'filter_block' => 'grid_like_filter'), + 'Qty' => Array ('td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Cost' => Array ('td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Amount' => Array ('title' => 'la_col_GMV', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + 'Tax' => Array ('title' => 'la_col_Tax', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Shipping' => Array ('title' => 'la_col_Shipping', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'hidden' => 1, 'filter_block' => 'grid_range_filter'), + 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), + ), + ), 'Default'); + } - - $new_options['VirtualFields'] = array_merge($rep_options['VirtualFields'], Array ( + $config->addVirtualFields(Array ( 'ProductName' => Array ('type' => 'string', 'default' => ''), - 'Metric' => Array ( - 'type' => 'int', - 'formatter' => 'kOptionsFormatter', + 'Metric' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', - 'options' => $this->GetMetricOptions($new_options, 'ProductName'), + 'options' => $this->GetMetricOptions($config, 'ProductName'), - 'use_phrases' => 1, - 'default' => 0 + 'use_phrases' => 1, + 'default' => 0 - ), + ) )); $lang = $this->Application->GetVar('m_lang'); - - $new_options['CalculatedFields'][''] = Array ( - 'ProductName' => 'p.l'.$lang.'_Name', - ); + $config->addCalculatedFieldsBySpecial('', 'p.l' . $lang . '_Name', 'ProductName'); } elseif ($field_values['ReportType'] == 12) { // Overall + $config->setListSQLsBySpecial('', 'SELECT %1$s.* %2$s FROM %1$s'); - $new_options['ListSQLs'][''] = - 'SELECT %1$s.* %2$s FROM %1$s'; - - $new_options['Fields']['Marketplace'] = Array ( + $config->addFields(Array ( + 'Marketplace' => Array ( - 'formatter' => 'kOptionsFormatter', + 'formatter' => 'kOptionsFormatter', - 'options' => Array ( - 1 => 'la_OnlineStore', - 2 => 'la_eBayMarketplace', - ), - 'use_phrases' => 1, + 'options' => Array (1 => 'la_OnlineStore', 2 => 'la_eBayMarketplace'), 'use_phrases' => 1, - 'default' => 1 + 'default' => 1 - ); + ) + )); - $new_options['Grids']['Default'] = Array( - 'Icons' => Array( - 'default' => 'icon16_item.png', - 'module' => 'core', - ), + $config->addGrids(Array( + 'Icons' => Array('default' => 'icon16_item.png', 'module' => 'core'), 'Fields' => Array( 'Marketplace' => Array ('title' => 'la_col_Marketplace', 'filter_block' => 'grid_options_filter'), 'Qty' => Array ('td_style' => 'text-align: center', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), @@ -559,34 +544,21 @@ 'Processing' => Array ('title' => 'la_col_Processing', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), 'Profit' => Array ('title' => 'la_col_Profit', 'td_style' => 'text-align: right', 'total' => 'sum', 'filter_block' => 'grid_range_filter'), ), + ), 'Default'); - ); - - - $new_options['VirtualFields'] = array_merge($rep_options['VirtualFields'], array( - 'Metric' => Array ( + $config->addVirtualFields(Array ( - 'type' => 'int', - 'formatter' => 'kOptionsFormatter', + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', - 'options' => $this->GetMetricOptions($new_options, 'Marketplace'), + 'options' => $this->GetMetricOptions($config, 'Marketplace'), - 'use_phrases' => 1, - 'default' => 0 + 'use_phrases' => 1, + 'default' => 0 - ), - )); - - $lang = $this->Application->GetVar('m_lang'); - + ), 'Metric'); } - $new_options['ListSortings'] = Array( - '' => Array( + $config->setListSortingsBySpecial('', Array( - 'Sorting' => Array('Amount' => 'desc'), + 'Sorting' => Array('Amount' => 'desc'), - ) - ); - - foreach ($new_options as $key => $val) { - $this->Application->setUnitOption('rep', $key, $val); + )); - } + } - } /** * Enter description here... @@ -628,21 +600,24 @@ /** * Generate Metric Field Options * - * @param array $a_config_options + * @param kUnitConfig $config * @param string $exclude_field + * @return Array */ - function GetMetricOptions(&$a_config_options, $exclude_field) + function GetMetricOptions(kUnitConfig $config, $exclude_field) { - $a_ret = Array(); - foreach ($a_config_options['Grids']['Default']['Fields'] AS $field => $a_options) - { - if ($field == $exclude_field) - { + $grid = $config->getGridByName('Default'); + + $ret = Array (); + foreach ($grid['Fields'] as $field => $field_options) { + if ( $field == $exclude_field ) { continue; } - $a_ret[$field] = $a_options['title']; + + $ret[$field] = $field_options['title']; } - return $a_ret; + + return $ret; } function OnChangeStatistics($event) @@ -755,8 +730,8 @@ $ReportItem = $this->Application->recallObject('rep.item', 'rep', Array('skip_autoload' => true)); /* @var $ReportItem kDBItem*/ - $a_grids = $this->Application->getUnitOption('rep', 'Grids'); - $a_fields = $a_grids['Default']['Fields']; + $grid = $this->Application->getUnitConfig('rep')->getGridByName('Default'); + $a_fields = $grid['Fields']; $ret = ''; foreach ($a_fields AS $field => $a_props) \ No newline at end of file Index: modules/in-commerce/units/downloads/download_helper.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/downloads/download_helper.php (revision 15682) +++ modules/in-commerce/units/downloads/download_helper.php (revision ) @@ -28,11 +28,17 @@ $file_object = $this->Application->recallObject('file', null, Array('skip_autoload' => true)); /* @var $file_object kDBItem */ - $sql = $file_id ? - 'SELECT FileId, FilePath, RealPath, MIMEType FROM '.$this->Application->getUnitOption('file', 'TableName').' - WHERE FileId = '.$file_id : - 'SELECT FileId, FilePath, RealPath, MIMEType FROM '.$this->Application->getUnitOption('file', 'TableName').' + if ( $file_id ) { + $sql = 'SELECT FileId, FilePath, RealPath, MIMEType + FROM ' . $this->Application->getUnitConfig('file')->getTableName() . ' + WHERE FileId = ' . $file_id; + } + else { + $sql = 'SELECT FileId, FilePath, RealPath, MIMEType + FROM ' . $this->Application->getUnitConfig('file')->getTableName() . ' - WHERE ProductId = '.$product_id.' AND IsPrimary = 1'; + WHERE ProductId = ' . $product_id . ' AND IsPrimary = 1'; + } + $file_info = $this->Conn->GetRow($sql); $field_options = $file_object->GetFieldOptions('RealPath'); \ No newline at end of file Index: modules/in-bulletin/install/upgrades.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/install/upgrades.php (revision 15682) +++ modules/in-bulletin/install/upgrades.php (revision ) @@ -73,11 +73,12 @@ function Upgrade_5_0_0($mode) { if ($mode == 'after') { + $categories_config = $this->Application->getUnitConfig('c'); $root_category = $this->Application->findModule('Name', 'In-Bulletin', 'RootCat'); - $sql = 'UPDATE ' . $this->Application->getUnitOption('c', 'TableName') . ' + $sql = 'UPDATE ' . $categories_config->getTableName() . ' SET UseMenuIconUrl = 1, MenuIconUrl = "in-bulletin/img/menu_topics.gif" - WHERE ' . $this->Application->getUnitOption('c', 'IDField') . ' = ' . $root_category; + WHERE ' . $categories_config->getIDField() . ' = ' . $root_category; $this->Conn->Query($sql); $this->_updateDetailTemplate('bb', 'inbulletin/post_list', 'in-bulletin/designs/detail'); \ No newline at end of file Index: modules/in-commerce/units/coupon_items/coupon_items_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/coupon_items/coupon_items_event_handler.php (revision 15682) +++ modules/in-commerce/units/coupon_items/coupon_items_event_handler.php (revision ) @@ -82,10 +82,10 @@ function OnDeleteCouponItem($event) { $main_object = $event->MasterEvent->getObject(); - $resource_id = $main_object->GetDBField('ResourceId'); + /* @var $main_object kDBItem */ - $table = $this->Application->getUnitOption($event->Prefix,'TableName'); - $sql = 'DELETE FROM '.$table.' WHERE ItemResourceId = '.$resource_id; + $sql = 'DELETE FROM ' . $event->getUnitConfig()->getTableName() . ' + WHERE ItemResourceId = ' . $main_object->GetDBField('ResourceId'); $this->Conn->Query($sql); } @@ -100,12 +100,11 @@ { parent::OnAfterConfigRead($event); - $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); - $language_id = $this->Application->GetVar('m_lang'); $primary_language_id = $this->Application->GetDefaultLanguageId(); - $calculated_fields['']['ItemName'] = 'COALESCE(p.l' . $language_id . '_Name, p.l' . $primary_language_id . '_Name)'; - $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + $event->getUnitConfig()->addCalculatedFieldsBySpecial('', Array ( + 'ItemName' => 'COALESCE(p.l' . $language_id . '_Name, p.l' . $primary_language_id . '_Name)' + )); } } \ No newline at end of file Index: modules/in-commerce/units/reports/reports_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/reports/reports_tag_processor.php (revision 15682) +++ modules/in-commerce/units/reports/reports_tag_processor.php (revision ) @@ -93,7 +93,8 @@ if ($metric == '') { // get first option from unit config - $a_virtual_fields = $this->Application->getUnitOption('rep', 'VirtualFields'); + $a_virtual_fields = $this->Application->getUnitConfig('rep')->getVirtualFields(); + foreach ($a_virtual_fields['Metric']['options'] AS $field => $label) { $metric = $field; \ No newline at end of file Index: modules/in-commerce/units/currencies/currencies_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/currencies/currencies_event_handler.php (revision 15682) +++ modules/in-commerce/units/currencies/currencies_event_handler.php (revision ) @@ -94,7 +94,7 @@ /* @var $object kDBItem */ if ( $object->GetDBField('IsPrimary') && $object->Validate() ) { - $sql = 'UPDATE ' . $this->Application->getUnitOption($this->Prefix, 'TableName') . ' + $sql = 'UPDATE ' . $event->getUnitConfig()->getTableName() . ' SET IsPrimary = 0 WHERE CurrencyId <> ' . $object->GetDBField('CurrencyId'); $this->Conn->Query($sql); @@ -106,7 +106,7 @@ $object->SetDBField('Modified_time', adodb_mktime()); if ( $object->GetDBField('Status') == 0 ) { - $sql = 'DELETE FROM ' . $this->Application->getUnitOption('ptc', 'TableName') . ' + $sql = 'DELETE FROM ' . $this->Application->getUnitConfig('ptc')->getTableName() . ' WHERE CurrencyId = ' . $object->GetDBField('CurrencyId'); $this->Conn->Query($sql); } @@ -178,7 +178,7 @@ $unused_ids = $this->Application->GetVar('unused_ids'); if ( $unused_ids ) { - $sql = 'UPDATE ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $sql = 'UPDATE ' . $event->getUnitConfig()->getTableName() . ' SET Status = 0 WHERE CurrencyId IN(' . $unused_ids . ') AND IsPrimary <> 1'; $this->Conn->Query($sql); \ No newline at end of file Index: modules/in-bulletin/units/posts/post_tp.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/posts/post_tp.php (revision 15682) +++ modules/in-bulletin/units/posts/post_tp.php (revision ) @@ -18,7 +18,8 @@ function ListPosts($params) { - $parent_prefix = $this->Application->getUnitOption($this->Prefix, 'ParentPrefix'); + $parent_prefix = $this->getUnitConfig()->getParentPrefix(); + $main_object = $this->Application->recallObject($parent_prefix); /* @var $main_object kCatDBItem */ @@ -253,7 +254,8 @@ if (!isset($category_path)) { // get topic category - $parent_prefix = $this->Application->getUnitOption($this->Prefix, 'ParentPrefix'); + $parent_prefix = $this->getUnitConfig()->getParentPrefix(); + $parent_item = $this->Application->recallObject($parent_prefix, null, Array ('raise_warnings' => 0)); $category_path = $parent_item->isLoaded() ? $parent_item->GetDBField('ParentPath') : $this->Application->GetVar('m_cat_id'); } \ No newline at end of file Index: modules/in-commerce/units/affiliate_plans/affiliate_plans_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/affiliate_plans/affiliate_plans_event_handler.php (revision 15682) +++ modules/in-commerce/units/affiliate_plans/affiliate_plans_event_handler.php (revision ) @@ -85,18 +85,21 @@ $object = $event->getObject(); /* @var $object kDBItem */ - $live_table = $this->Application->getUnitOption($event->Prefix, 'TableName'); + $config = $event->getUnitConfig(); + + $live_table = $config->getTableName(); $plans_count = $this->Conn->GetOne('SELECT COUNT(*) FROM ' . $live_table); + if ( !$plans_count ) { $object->SetDBField('IsPrimary', 1); } if ( $object->GetDBField('IsPrimary') && $object->Validate() ) { - $sql = 'UPDATE ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $sql = 'UPDATE ' . $config->getTableName() . ' SET IsPrimary = 0'; $this->Conn->Query($sql); - $object->SetDBField($object->getStatusField(), 1); + $object->SetDBField($config->getStatusField(true), 1); } } @@ -111,10 +114,11 @@ protected function customProcessing(kEvent $event, $type) { if ( $event->Name == 'OnMassDelete' && $type == 'before' ) { + $config = $event->getUnitConfig(); $ids = $event->getEventParam('ids'); - $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $sql = 'SELECT ' . $config->getIDField() . ' + FROM ' . $config->getTableName() . ' WHERE IsPrimary = 1'; $primary_id = $this->Conn->GetOne($sql); \ No newline at end of file Index: modules/in-commerce/units/affiliate_plans_items/affiliate_plans_items_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/affiliate_plans_items/affiliate_plans_items_tag_processor.php (revision 15682) +++ modules/in-commerce/units/affiliate_plans_items/affiliate_plans_items_tag_processor.php (revision ) @@ -17,15 +17,16 @@ function IsEntireOrder($params) { - $table_name = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $table_name = $this->getUnitConfig()->getTableName(); - if ($this->Application->IsTempMode($this->Prefix)) { + if ( $this->Application->IsTempMode($this->Prefix) ) { $table_name = $this->Application->GetTempName($table_name, 'prefix:' . $this->Prefix); } $sql = 'SELECT COUNT(*) FROM ' . $table_name . ' WHERE (ItemType = 0) AND (AffiliatePlanId = ' . $this->Application->GetVar('ap_id') . ')'; + return $this->Conn->GetOne($sql); } \ No newline at end of file Index: modules/in-commerce/units/affiliate_plans_items/affiliate_plans_items_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/affiliate_plans_items/affiliate_plans_items_event_handler.php (revision 15682) +++ modules/in-commerce/units/affiliate_plans_items/affiliate_plans_items_event_handler.php (revision ) @@ -65,10 +65,10 @@ function OnDeleteDiscountedItem($event) { $main_object = $event->MasterEvent->getObject(); - $resource_id = $main_object->GetDBField('ResourceId'); + /* @var $main_object kDBItem */ - $table = $this->Application->getUnitOption($event->Prefix,'TableName'); - $sql = 'DELETE FROM '.$table.' WHERE ItemResourceId = '.$resource_id; + $sql = 'DELETE FROM ' . $event->getUnitConfig()->getTableName() . ' + WHERE ItemResourceId = ' . $main_object->GetDBField('ResourceId'); $this->Conn->Query($sql); } @@ -83,12 +83,11 @@ { parent::OnAfterConfigRead($event); - $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); - $language_id = $this->Application->GetVar('m_lang'); $primary_language_id = $this->Application->GetDefaultLanguageId(); - $calculated_fields['']['ItemName'] = 'COALESCE(p.l' . $language_id . '_Name, p.l' . $primary_language_id . '_Name)'; - $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + $event->getUnitConfig()->addCalculatedFieldsBySpecial('', Array ( + 'ItemName' => 'COALESCE(p.l' . $language_id . '_Name, p.l' . $primary_language_id . '_Name)', + )); } } \ No newline at end of file Index: modules/in-bulletin/units/polls/poll_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-bulletin/units/polls/poll_eh.php (revision 15682) +++ modules/in-bulletin/units/polls/poll_eh.php (revision ) @@ -74,11 +74,12 @@ $this->Conn->Query($sql); - $poll_answers_table = $this->Application->getUnitOption('poll-answer', 'TableName'); + $poll_answers_table = $this->Application->getUnitConfig('poll-answer')->getTableName(); $poll_answers_table = $this->Application->GetTempName($poll_answers_table); - $sql = 'UPDATE '.$poll_answers_table.' SET VotesQty = 0 + $sql = 'UPDATE '.$poll_answers_table.' + SET VotesQty = 0 - WHERE '.$object->IDField.' = '.$object->GetID(); + WHERE '.$object->IDField.' = '.$object->GetID(); $this->Conn->Query($sql); } @@ -137,15 +138,22 @@ $this->Conn->doInsert($fields_hash, TABLE_PREFIX.'PollsStatistics'); - $poll_table = $this->Application->getUnitOption('poll', 'TableName'); - $this->Conn->Query('UPDATE '.$poll_table.' SET CachedVotesQty = CachedVotesQty + 1 - WHERE PollId = '.$object->GetID()); + $poll_table = $this->Application->getUnitConfig('poll')->getTableName(); + $sql = 'UPDATE ' . $poll_table . ' + SET CachedVotesQty = CachedVotesQty + 1 + WHERE PollId = ' . $object->GetID(); + $this->Conn->Query($sql); + // update table with answers - $poll_answers_table = $this->Application->getUnitOption('poll-answer', 'TableName'); - $this->Conn->Query('UPDATE '.$poll_answers_table.' SET VotesQty = VotesQty + 1 - WHERE PollId = '.$object->GetID().' AND AnswerId = '.$poll_answer_id); + $poll_answers_table = $this->Application->getUnitConfig('poll-answer')->getTableName(); + + $sql = 'UPDATE ' . $poll_answers_table . ' + SET VotesQty = VotesQty + 1 + WHERE PollId = ' . $object->GetID() . ' AND AnswerId = ' . $poll_answer_id; + $this->Conn->Query($sql); } + $event->setEventParam('PollId', $this->Application->GetVar('poll_id')); $event->redirect = false; } \ No newline at end of file Index: modules/in-auction/units/sections/ebay_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-auction/units/sections/ebay_eh.php (revision 15682) +++ modules/in-auction/units/sections/ebay_eh.php (revision ) @@ -47,87 +47,74 @@ */ function OnAfterProductConfigRead($event) { - $a_fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Fields'); + $use_specials = Array ('', 'showall'); + $master_config = $event->MasterEvent->getUnitConfig(); - $a_fields['LastListingId'] = array( - 'type' => 'int', - 'default' => 0, - 'not_null' => 1, - ); + $master_config->addFields(Array ( + 'LastListingId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), + 'ScheduleId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), + )); - $a_fields['ScheduleId'] = array( - 'type' => 'int', - 'default' => 0, - 'not_null' => 1, - ); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Fields', $a_fields); - - $a_ListSQLs = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'ListSQLs'); - - $add_join = ' LEFT JOIN '.TABLE_PREFIX.'eBayListings ebl ON %1$s.LastListingId = ebl.ListingId '; + $add_join = ' LEFT JOIN ' . TABLE_PREFIX . 'eBayListings ebl ON %1$s.LastListingId = ebl.ListingId '; - foreach ($a_ListSQLs AS $prefix => $sql) - { - if (!in_array($prefix, Array('', 'showall'))) - { + foreach ($master_config->getListSQLSpecials() as $special) { + if ( !in_array($special, $use_specials) ) { - continue; - } + continue; + } - if (strpos($a_ListSQLs[$prefix], $add_join) === false) { - $a_ListSQLs[$prefix] .= $add_join; + + $sql = $master_config->getListSQLsBySpecial($special); + $master_config->setListSQLsBySpecial($special, $this->_addJoinOnce($sql, $add_join)); - } + } - } - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'ListSQLs', $a_ListSQLs); + $sql = $master_config->getItemSQLsBySpecial(''); + $master_config->setItemSQLsBySpecial('', $this->_addJoinOnce($sql, $add_join)); - $a_ItemSQLs = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'ItemSQLs'); - if (strpos($a_ItemSQLs[''], $add_join) === false) { - $a_ItemSQLs[''] .= $add_join; - } + $base_fields = $this->Application->getUnitConfig('l-ebay')->getFields(); + $fields_to_join = Array ('Status', 'ListingQuantity', 'QuantitySold', 'QuantityPaid'); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'ItemSQLs', $a_ItemSQLs); + foreach ($fields_to_join as $field) { + // not_null should not be set for virtual fields + $field_options = $base_fields[$field]; + unset($field_options['not_null']); - $a_base_fields = $this->Application->getUnitOption('l-ebay', 'Fields'); + $master_config->addVirtualFields($field_options, 'Last' . $field); - $a_fields_to_join = Array( - 'Status', - 'ListingQuantity', - 'QuantitySold', - 'QuantityPaid', - ); + foreach ($use_specials as $use_special) { + $master_config->addCalculatedFieldsBySpecial($use_special, 'ebl.' . $field, 'Last' . $field); + } + } - $a_virtual_fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'VirtualFields'); - $a_calculated_fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'CalculatedFields'); - $a_grids = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Grids'); + // add new tab on editing template + $master_config->addEditTabPresetTabs('Default', Array ( + 'ebay' => Array ( + 'title' => 'la_tab_eBay', 't' => 'in-auction/products/products_ebay', 'priority' => 14 + ) + )); - $a_grids['Default']['Fields']['LastStatus'] = Array( - 'title' => 'la_col_eBayListing', - 'data_block' => 'grid_listing_link', - ); - foreach ($a_fields_to_join AS $field) - { - // not_null should not be set for virtual fields - $a_virtual_fields['Last'.$field] = $a_base_fields[$field]; - unset($a_virtual_fields['Last'.$field]['not_null']); + $master_config->addGridFields('Default', Array ( + 'LastStatus' => Array ('title' => 'la_col_eBayListing', 'data_block' => 'grid_listing_link') + )); + } - $a_calculated_fields['']['Last'.$field] = 'ebl.'.$field; - $a_calculated_fields['showall']['Last'.$field] = 'ebl.'.$field; + /** + * Adds JOIN clause once to given SQL query + * + * @param string $sql + * @param string $join + * @return string + * @access protected + */ + protected function _addJoinOnce($sql, $join) + { + if ( strpos($sql, $join) === false ) { + $sql .= $join; - } + } - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'VirtualFields', $a_virtual_fields); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'CalculatedFields', $a_calculated_fields); - - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Grids', $a_grids); - - // add new tab on editing template - $edit_tab_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'EditTabPresets'); - $edit_tab_presets['Default']['ebay'] = Array ( - 'title' => 'la_tab_eBay', 't' => 'in-auction/products/products_ebay', 'priority' => 14 - ); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'EditTabPresets', $edit_tab_presets); + return $sql; } /** @@ -137,11 +124,11 @@ */ function OnAfterCategoryConfigRead($event) { - $edit_tab_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'EditTabPresets'); - $edit_tab_presets['Default']['ebay'] = Array ( + $event->MasterEvent->getUnitConfig()->addEditTabPresetTabs('Default', Array ( + 'ebay' => Array ( - 'title' => 'la_tab_eBay', 't' => 'in-auction/categories/categories_edit_ebay', 'priority' => 8 + 'title' => 'la_tab_eBay', 't' => 'in-auction/categories/categories_edit_ebay', 'priority' => 8 - ); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'EditTabPresets', $edit_tab_presets); + ) + )); } /** @@ -152,34 +139,38 @@ function OnAfterImageAdded($event) { $image = $event->MasterEvent->getObject(); + /* @var $image kDBItem */ - $product_table = $this->Application->getUnitOption('p', 'TableName'); + $product_config = $this->Application->getUnitConfig('p'); + $product_table = $product_config->getTableName(); + - if ($image->IsTempTable()) { + if ( $image->IsTempTable() ) { $product_table = $this->Application->GetTempName($product_table, 'prefix:p'); } - if (!$this->Conn->TableFound($product_table)) { + if ( !$this->Conn->TableFound($product_table) ) { // another item's images - return ; + return; } - $product_idfield = $this->Application->getUnitOption('p', 'IDField'); + $product_id_field = $product_config->getIDField(); // 1. get product id from image (for linking to ebay tab record) - $sql = 'SELECT '.$product_idfield.' + $sql = 'SELECT ' . $product_id_field . ' - FROM '.$product_table.' + FROM ' . $product_table . ' - WHERE ResourceId = '.$image->GetDBField('ResourceId'); + WHERE ResourceId = ' . $image->GetDBField('ResourceId'); $product_id = $this->Conn->GetOne($sql); - $product_listing_table = TABLE_PREFIX.'eBayProductListings'; + $product_listing_table = TABLE_PREFIX . 'eBayProductListings'; + - if ($image->IsTempTable()) { + if ( $image->IsTempTable() ) { $product_listing_table = $this->Application->GetTempName($product_listing_table, 'prefix:p'); } // check if record exists $sql = 'SELECT Images - FROM '.$product_listing_table.' + FROM ' . $product_listing_table . ' - WHERE ('.$product_idfield.' = '.$product_id.')'; + WHERE (' . $product_id_field . ' = ' . $product_id . ')'; $images = $this->Conn->GetOne($sql); $ebay_record_found = ($images !== false); @@ -188,28 +179,25 @@ // find proper priority $priority = 1; + - while (in_array($priority, $images)) { + while ( in_array($priority, $images) ) { $priority++; } $images[$image->GetID()] = $priority; - if ($ebay_record_found) { + if ( $ebay_record_found ) { - $fields_hash = Array ( - 'Images' => serialize($images), - ); - $this->Conn->doUpdate($fields_hash, $product_listing_table, $product_idfield.' = '.$product_id); + $fields_hash = Array ('Images' => serialize($images),); + $this->Conn->doUpdate($fields_hash, $product_listing_table, $product_id_field . ' = ' . $product_id); } else { - $fields_hash = Array ( - 'ProductId' => $product_id, - 'Images' => serialize($images), - ); + $fields_hash = Array ('ProductId' => $product_id, 'Images' => serialize($images)); - if ($image->IsTempTable()) { + if ( $image->IsTempTable() ) { $fields_hash['ProductListingId'] = -1; } + $this->Conn->doInsert($fields_hash, $product_listing_table); } } @@ -2534,12 +2522,12 @@ } - function OnModifyUsersConfig($event) + function OnModifyUsersConfig(kEvent $event) { - $fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Fields'); - $fields['EbayLogin'] = Array ('type' => 'string', 'max_len' => 255, 'default' => NULL); - $fields['EbayEIASToken'] = Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Fields', $fields); + $event->MasterEvent->getUnitConfig()->addFields(Array ( + 'EbayLogin' => Array ('type' => 'string', 'max_len' => 255, 'default' => NULL), + 'EbayEIASToken' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''), + )); } /** \ No newline at end of file Index: modules/custom/units/sections/categories/e_category_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/sections/categories/e_category_eh.php (revision 15682) +++ modules/custom/units/sections/categories/e_category_eh.php (revision ) @@ -58,15 +58,17 @@ { parent::OnAfterConfigRead($event); +// $config = $event->getUnitConfig(); + # 1. Regular Fields from /core/units/categories/categories_config.php - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); #get regular fields +// $fields = $config->getFields(); #get regular fields // $fields['Status']['default'] = STATUS_ACTIVE; #add/edit configuration (make default = STATUS_ACTIVE) - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); #save fields +// $config->setFields($fields); #save fields # 2. Virtual Fields from /core/units/categories/categories_config.php - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); #get virtual fields +// $virtual_fields = $config->getVirtualFields(); #get virtual fields // $virtual_fields['UserName']['default'] = ''; #add/edit configuration - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); #save virtual fields +// $config->setVirtualFields($virtual_fields); #save virtual fields } /** Index: modules/in-commerce/gw_notify.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/gw_notify.php (revision 15682) +++ modules/in-commerce/gw_notify.php (revision ) @@ -29,7 +29,7 @@ $db =& $application->GetADODBConnection(); - $application->setUnitOption('ord','AutoLoad',false); + $application->getUnitConfig('ord')->setAutoLoad(false); $order = $application->recallObject('ord'); $order_id = $application->GetVar('order_id'); @@ -60,4 +60,4 @@ $application->StoreVar('gw_error', $gateway_object->getErrorMsg()); } - \ No newline at end of file + $application->Done(); \ No newline at end of file Index: modules/in-commerce/units/products/products_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/products/products_event_handler.php (revision 15682) +++ modules/in-commerce/units/products/products_event_handler.php (revision ) @@ -263,11 +263,11 @@ if ($combination_id && ($product->GetDBField('InventoryStatus') == 2)) { // if combination id present and inventory by combinations - $poc_idfield = $this->Application->getUnitOption('poc', 'IDField'); - $poc_tablename = $this->Application->getUnitOption('poc', 'TableName'); + $poc_config = $this->Application->getUnitConfig('poc'); + $sql = 'SELECT QtyInStock - FROM '.$poc_tablename.' - WHERE '.$poc_idfield.' = '.$combination_id; + FROM '. $poc_config->getTableName() .' + WHERE '. $poc_config->getIDField() .' = '.$combination_id; $stock_qty = $this->Conn->GetOne($sql); } else { @@ -620,13 +620,13 @@ // my favorite products: begin if ( in_array('wish_list', $types) || in_array('wish_list', $except_types) ) { $sql = 'SELECT ResourceId - FROM ' . $this->Application->getUnitOption('fav', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('fav')->getTableName() . ' WHERE PortalUserId = ' . (int)$this->Application->RecallVar('user_id'); - $wishlist_ids = $this->Conn->GetCol($sql); + $wish_list_ids = $this->Conn->GetCol($sql); - if ( $wishlist_ids ) { - $type_clauses['wish_list']['include'] = '%1$s.ResourceId IN (' . implode(',', $wishlist_ids) . ') AND PrimaryCat = 1'; - $type_clauses['wish_list']['except'] = '%1$s.ResourceId NOT IN (' . implode(',', $wishlist_ids) . ') AND PrimaryCat = 1'; + if ( $wish_list_ids ) { + $type_clauses['wish_list']['include'] = '%1$s.ResourceId IN (' . implode(',', $wish_list_ids) . ') AND PrimaryCat = 1'; + $type_clauses['wish_list']['except'] = '%1$s.ResourceId NOT IN (' . implode(',', $wish_list_ids) . ') AND PrimaryCat = 1'; } else { $type_clauses['wish_list']['include'] = '0'; @@ -893,9 +893,11 @@ return false; } + $orders_config = $this->Application->getUnitConfig('ord'); + $sql = 'SELECT PortalUserId - FROM ' . $this->Application->getUnitOption('ord', 'TableName') . ' - WHERE ' . $this->Application->getUnitOption('ord', 'IDField') . ' = ' . $field_values['OrderId']; + FROM ' . $orders_config->getTableName() . ' + WHERE ' . $orders_config->getIDField() . ' = ' . $field_values['OrderId']; $user_id = $this->Conn->GetOne($sql); $group_id = $item_data['PortalGroupId']; @@ -935,19 +937,18 @@ $sub_order->SetDBField('NextCharge_time', $expire); } - function OnDownloadableApprove($event) + function OnDownloadableApprove(kEvent $event) { $field_values = $event->getEventParam('field_values'); $product_id = $field_values['ProductId']; - $sql = 'SELECT PortalUserId FROM '.$this->Application->getUnitOption('ord', 'TableName').' + $sql = 'SELECT PortalUserId FROM '.$this->Application->getUnitConfig('ord')->getTableName().' WHERE OrderId = '.$field_values['OrderId']; $user_id = $this->Conn->GetOne($sql); $sql = 'INSERT INTO '.TABLE_PREFIX.'UserFileAccess VALUES("", '.$product_id.', '.$user_id.')'; $this->Conn->Query($sql); } - protected function OnPackageApprove(kEvent $event) - { + function OnPackageApprove(kEvent $event){ $field_values = $event->getEventParam('field_values'); $item_data = unserialize($field_values['ItemData']); $package_content_ids = $item_data['PackageContent']; @@ -956,9 +957,9 @@ /* @var $object_item ProductsItem */ foreach ($package_content_ids as $package_item_id) { - $object_field_values = array (); + $object_field_values = array(); - // query processing data from product and run approve event + // query processing data from product and run approve event $sql = 'SELECT ProcessingData FROM ' . TABLE_PREFIX . 'Products WHERE ProductId = ' . $package_item_id; @@ -1456,9 +1457,11 @@ ORDER BY MinQty LIMIT 0,1'; - $calculated_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); - $calculated_fields['']['Price'] = 'IFNULL((' . $sub_select . '), ' . $calculated_fields['']['Price'] . ')'; - $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); + $config = $event->getUnitConfig(); + + $calculated_fields = $config->getCalculatedFieldsBySpecial(''); + $calculated_fields['Price'] = 'IFNULL((' . $sub_select . '), ' . $calculated_fields['Price'] . ')'; + $config->setCalculatedFieldsBySpecial('', $calculated_fields); } /** @@ -1482,9 +1485,9 @@ */ function OnModifyPaidListingConfig($event) { - $edit_tab_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'EditTabPresets'); - $edit_tab_presets['Default']['shopping_cart'] = Array ('title' => 'la_tab_ShopCartEntry', 't' => 'in-commerce/paid_listings/paid_listing_type_shopcart', 'priority' => 2); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'EditTabPresets', $edit_tab_presets); + $event->MasterEvent->getUnitConfig()->addEditTabPresetTabs('Default', Array ( + 'shopping_cart' => Array ('title' => 'la_tab_ShopCartEntry', 't' => 'in-commerce/paid_listings/paid_listing_type_shopcart', 'priority' => 2), + )); } /** @@ -1499,17 +1502,18 @@ parent::OnCloneSubItem($event); if ( $event->MasterEvent->Prefix == 'rev' ) { - $clones = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Clones'); - $subitem_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; + $sub_item_prefix = $event->Prefix . '-' . $event->MasterEvent->Prefix; - $clones[$subitem_prefix]['ConfigMapping'] = Array ( + $event->MasterEvent->getUnitConfig()->addClones(Array ( + $sub_item_prefix => Array ( + 'ConfigMapping' => Array ( 'PerPage' => 'Comm_Perpage_Reviews', 'ReviewDelayInterval' => 'product_ReviewDelay_Value', 'ReviewDelayValue' => 'product_ReviewDelay_Interval', - ); - - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Clones', $clones); + ), + ), + )); } } \ No newline at end of file Index: modules/in-commerce/units/shipping_quote_engines/shipping_quote_collector.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/shipping_quote_engines/shipping_quote_collector.php (revision 15682) +++ modules/in-commerce/units/shipping_quote_engines/shipping_quote_collector.php (revision ) @@ -135,7 +135,7 @@ function getEngineClasses() { $sql = 'SELECT Classname - FROM ' . $this->Application->getUnitOption('sqe', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('sqe')->getTableName() . ' WHERE Status = ' . STATUS_ACTIVE; $classes = $this->Conn->GetCol($sql); \ No newline at end of file Index: modules/in-commerce/units/shipping_quote_engines/shipping_quote_engine.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/shipping_quote_engines/shipping_quote_engine.php (revision 15682) +++ modules/in-commerce/units/shipping_quote_engines/shipping_quote_engine.php (revision ) @@ -191,7 +191,7 @@ function initProperties() { $sql = 'SELECT Properties, FlatSurcharge, PercentSurcharge - FROM ' . $this->Application->getUnitOption('sqe', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('sqe')->getTableName() . ' WHERE LOWER(ClassName) = ' . $this->Conn->qstr( strtolower( get_class($this) ) ); $data = $this->Conn->GetRow($sql); \ No newline at end of file Index: modules/in-commerce/units/taxes/taxes_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/taxes/taxes_tag_processor.php (revision 15682) +++ modules/in-commerce/units/taxes/taxes_tag_processor.php (revision ) @@ -25,9 +25,11 @@ $selected_country_id = (int)$this->Application->GetVar('CountrySelector'); $name_field = 'l' . $this->Application->GetVar('m_lang') . '_Name'; - $id_field = $this->Application->getUnitOption('country-state', 'IDField'); - $table_name = $this->Application->getUnitOption('country-state', 'TableName'); + $country_config = $this->Application->getUnitConfig('country-state'); + $id_field = $country_config->getIDField(); + $table_name = $country_config->getTableName(); + switch ($params['show']) { case 'current': // selected countries in current zone @@ -132,9 +134,11 @@ $destination_table = $this->getDestinationsTable($params); $name_field = 'l' . $this->Application->GetVar('m_lang') . '_Name'; - $id_field = $this->Application->getUnitOption('country-state', 'IDField'); - $table_name = $this->Application->getUnitOption('country-state', 'TableName'); + $country_config = $this->Application->getUnitConfig('country-state'); + $id_field = $country_config->getIDField(); + $table_name = $country_config->getTableName(); + $country_id = $this->Application->GetVar('CountrySelector'); switch ($params['show']) { @@ -217,7 +221,7 @@ $selected_zips = $this->Conn->qstrArray($selected_zips); $sql = 'SELECT DISTINCT DestValue - FROM ' . $this->Application->getUnitOption('taxdst', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('taxdst')->getTableName() . ' WHERE COALESCE(DestValue, "") <> "" AND TaxZoneId <> ' . $object->GetID() . ' AND @@ -261,7 +265,7 @@ $object = $this->getObject($params); /* @var $object kDBItem */ - $table_name = $this->Application->getUnitOption('taxdst', 'TableName'); + $table_name = $this->Application->getUnitConfig('taxdst')->getTableName(); if ($object->IsTempTable()) { $table_name = $this->Application->GetTempName($table_name, 'prefix:' . $this->Prefix); \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_classes/paybox.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_classes/paybox.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_classes/paybox.php (revision ) @@ -78,7 +78,7 @@ $billing_email = $item_data['BillingEmail']; if (!$billing_email) { - $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitOption('u', 'TableName').' + $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitConfig('u')->getTableName().' WHERE PortalUserId = '.$this->Application->RecallVar('user_id')); } $params['PBX_PORTEUR'] = $billing_email; \ No newline at end of file Index: modules/in-auction/units/category_listing/category_listing_tp.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-auction/units/category_listing/category_listing_tp.php (revision 15682) +++ modules/in-auction/units/category_listing/category_listing_tp.php (revision ) @@ -67,7 +67,8 @@ function IsSecondLevelProductCategory($params) { - $parent_prefix = $this->Application->getUnitOption($this->Prefix, 'ParentPrefix'); + $parent_prefix = $this->getUnitConfig()->getParentPrefix(); + $category = $this->Application->recallObject($parent_prefix); /* @var $category kDBItem */ @@ -78,7 +79,8 @@ function IsProductsCategory($params) { - $parent_prefix = $this->Application->getUnitOption($this->Prefix, 'ParentPrefix'); + $parent_prefix = $this->getUnitConfig()->getParentPrefix(); + $category = $this->Application->recallObject($parent_prefix); /* @var $category kDBItem */ @@ -110,7 +112,8 @@ '; $a_products_cat = $this->Conn->GetRow($sql); - $parent_prefix = $this->Application->getUnitOption($this->Prefix, 'ParentPrefix'); + $parent_prefix = $this->getUnitConfig()->getParentPrefix(); + $category = $this->Application->recallObject($parent_prefix); /* @var $category kDBItem */ \ No newline at end of file Index: modules/custom/units/sections/custom_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/custom/units/sections/custom_eh.php (revision 15682) +++ modules/custom/units/sections/custom_eh.php (revision ) @@ -26,11 +26,13 @@ */ function OnModifyCategoriesConfig($event) { - # get Fields configuration from /core/units/categories/categories_config.php - $fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Fields'); + /*$config = $event->MasterEvent->getUnitConfig(); - # set configuration fields - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Fields', $fields); + $new_fields = Array ( + + ); + + $config->addFields($new_fields);*/ } } \ No newline at end of file Index: modules/in-commerce/units/orders/orders_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/orders/orders_event_handler.php (revision 15682) +++ modules/in-commerce/units/orders/orders_event_handler.php (revision ) @@ -54,7 +54,7 @@ return false; } - $status_field = $order_dummy->getStatusField(); + $status_field = $event->getUnitConfig()->getStatusField(true); if ( isset($field_values[$status_field]) && $order_dummy->GetDBField($status_field) != $field_values[$status_field] ) { // user can't change status by himself @@ -318,11 +318,9 @@ $fields_hash['AffiliateId'] = $affiliate_id; } - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); + $config = $event->getUnitConfig(); + $this->Conn->doUpdate($fields_hash, $config->getTableName(), $config->getIDField() . ' = ' . $order_id); - $this->Conn->doUpdate($fields_hash, $table_name, $id_field . ' = ' . $order_id); - $object = $event->getObject(); /* @var $object kDBItem */ @@ -374,7 +372,7 @@ $billing_email = $order->GetDBField('BillingEmail'); $sql = 'SELECT Email - FROM ' . $this->Application->getUnitOption('u', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('u')->getTableName() . ' WHERE PortalUserId = ' . $order->GetDBField('PortalUserId'); $user_email = $this->Conn->GetOne($sql); @@ -514,13 +512,14 @@ // $event->CallSubEvent('OnSave'); } - $order_id = $order->GetId(); - $order_idfield = $this->Application->getUnitOption('ord','IDField'); - $order_table = $this->Application->getUnitOption('ord','TableName'); + $order_id = $order->GetID(); + $config = $event->getUnitConfig(); + $original_amount = $order->GetDBField('SubTotal') + $order->GetDBField('ShippingCost') + $order->GetDBField('VAT') + $order->GetDBField('ProcessingFee') + $order->GetDBField('InsuranceFee') - $order->GetDBField('GiftCertificateDiscount'); - $sql = 'UPDATE '.$order_table.' + + $sql = 'UPDATE '. $config->getTableName() .' SET OriginalAmount = '.$original_amount.' - WHERE '.$order_idfield.' = '.$order_id; + WHERE '. $config->getIDField() .' = '.$order_id; $this->Conn->Query($sql); $this->Application->StoreVar('front_order_id', $order_id); @@ -1038,8 +1037,10 @@ // 2. check for option combinations in stock $comb_salt = $this->OptionsSalt($options, true); if ($comb_salt) { + $poc_config = $this->Application->getUnitConfig('poc'); + // such option combination is defined explicitly - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $poc_config->getTableName(); $sql = 'SELECT Availability FROM '.$poc_table.' WHERE CombinationCRC = '.$comb_salt; @@ -1049,8 +1050,8 @@ if ($comb_availble == 1) { // 2.2. check for quantity in stock $table = Array(); - $table['poc'] = $this->Application->getUnitOption('poc', 'TableName'); - $table['p'] = $this->Application->getUnitOption('p', 'TableName'); + $table['poc'] = $poc_config->getTableName(); + $table['p'] = $this->Application->getUnitConfig('p')->getTableName(); $table['oi'] = $this->TablePrefix($event).'OrderItems'; $object = $event->getObject(); @@ -1140,23 +1141,29 @@ function BuildSubscriptionItemData($item_id, $item_data) { - $products_table = $this->Application->getUnitOption('p', 'TableName'); - $products_idfield = $this->Application->getUnitOption('p', 'IDField'); - $sql = 'SELECT AccessGroupId FROM %s WHERE %s = %s'; - $item_data['PortalGroupId'] = $this->Conn->GetOne( sprintf($sql, $products_table, $products_idfield, $item_id) ); + $products_config = $this->Application->getUnitConfig('p'); - $pricing_table = $this->Application->getUnitOption('pr', 'TableName'); - $pricing_idfield = $this->Application->getUnitOption('pr', 'IDField'); + $sql = 'SELECT AccessGroupId + FROM ' . $products_config->getTableName() . ' + WHERE ' . $products_config->getIDField() . ' = ' . $item_id; + $item_data['PortalGroupId'] = $this->Conn->GetOne($sql); /* TODO check on implementation - $sql = 'SELECT AccessDuration, AccessUnit, DurationType, AccessExpiration FROM %s WHERE %s = %s'; + $sql = 'SELECT AccessDuration, AccessUnit, DurationType, AccessExpiration + FROM %s + WHERE %s = %s'; */ - $sql = 'SELECT * FROM %s WHERE %s = %s'; + $pricing_config = $this->Application->getUnitConfig('pr'); $pricing_id = $this->GetPricingId($item_id, $item_data); + + $sql = 'SELECT * + FROM ' . $pricing_config->getTableName() . ' + WHERE ' . $pricing_config->getIDField() . ' = ' . $pricing_id; + $pricing_info = $this->Conn->GetRow($sql); + $item_data['PricingId'] = $pricing_id; - $pricing_info = $this->Conn->GetRow( sprintf($sql, $pricing_table, $pricing_idfield, $pricing_id ) ); $unit_secs = Array(1 => 1, 2 => 60, 3 => 3600, 4 => 86400, 5 => 604800, 6 => 2592000, 7 => 31536000); /* TODO check on implementation (code from customization healtheconomics.org) @@ -1226,7 +1233,7 @@ $coupon->Update(); - $this->Application->setUnitOption('ord', 'AutoLoad', true); + $this->Application->getUnitConfig('ord')->setAutoLoad(true); $order = $this->Application->recallObject('ord'); /* @var $order OrdersItem */ @@ -1296,15 +1303,15 @@ else { $link_id = $this->Application->GetVar('l_id'); - $sql = 'SELECT ResourceId FROM '.$this->Application->getUnitOption('l', 'TableName').' + $sql = 'SELECT ResourceId FROM '.$this->Application->getUnitConfig('l')->getTableName().' WHERE LinkId = '.$link_id; - $sql = 'SELECT ListingTypeId FROM '.$this->Application->getUnitOption('ls', 'TableName').' + $sql = 'SELECT ListingTypeId FROM '.$this->Application->getUnitConfig('ls')->getTableName().' WHERE ItemResourceId = '.$this->Conn->GetOne($sql); $item_data['LinkId'] = $link_id; $item_data['ListingTypeId'] = $this->Conn->GetOne($sql); } - $sql = 'SELECT VirtualProductId FROM '.$this->Application->getUnitOption('lst', 'TableName').' + $sql = 'SELECT VirtualProductId FROM '.$this->Application->getUnitConfig('lst')->getTableName().' WHERE ListingTypeId = '.$item_data['ListingTypeId']; $item_id = $this->Conn->GetOne($sql); @@ -1799,7 +1806,8 @@ */ function ReadyToProcess($ord_id) { - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); + $query = ' SELECT SUM(IF( IF('.TABLE_PREFIX.'Products.InventoryStatus = 2, '.$poc_table.'.QtyInStock, '.TABLE_PREFIX.'Products.QtyInStock) - '.TABLE_PREFIX.'Products.QtyInStockMin >= ('.TABLE_PREFIX.'OrderItems.Quantity - '.TABLE_PREFIX.'OrderItems.QuantityReserved), 0, 1)) FROM '.TABLE_PREFIX.'OrderItems LEFT JOIN '.TABLE_PREFIX.'Products ON '.TABLE_PREFIX.'Products.ProductId = '.TABLE_PREFIX.'OrderItems.ProductId @@ -1835,7 +1843,8 @@ if ($combinations) { // 2. query data about combinations - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); + $sql = 'SELECT CONCAT(poc.ProductId, "_", poc.CombinationCRC) AS CombinationKey, poc.* FROM '.$poc_table.' poc WHERE ('.implode(') OR (', $combinations).')'; @@ -2100,26 +2109,26 @@ } $product_object->Load($product_item['ProductId']); $hits = floor( $product_object->GetDBField('Hits') ) + 1; - $sql = 'SELECT MAX(Hits) FROM '.$this->Application->getUnitOption('p', 'TableName').' + $sql = 'SELECT MAX(Hits) FROM '.$this->Application->getUnitConfig('p')->getTableName().' WHERE FLOOR(Hits) = '.$hits; $hits = ( $res = $this->Conn->GetOne($sql) ) ? $res + 0.000001 : $hits; $product_object->SetDBField('Hits', $hits); $product_object->Update(); - /*$sql = 'UPDATE '.$this->Application->getUnitOption('p', 'TableName').' + /*$sql = 'UPDATE ' . $this->Application->getUnitConfig('p')->getTableName() . ' - SET Hits = Hits + '.$product_item['Quantity'].' + SET Hits = Hits + ' . $product_item['Quantity'] . ' - WHERE ProductId = '.$product_item['ProductId']; + WHERE ProductId = ' . $product_item['ProductId']; $this->Conn->Query($sql);*/ } $this->PrepareCoupons($event, $object); $this->SplitOrder($event, $object); - if ( $object->GetDBField('IsRecurringBilling') != 1 ) { + if ($object->GetDBField('IsRecurringBilling') != 1) { $this->Application->emailUser('ORDER.APPROVE', null, $email_params); // Mask credit card with XXXX - if ( $this->Application->ConfigValue('Comm_MaskProcessedCreditCards') ) { + if ($this->Application->ConfigValue('Comm_MaskProcessedCreditCards')) { $this->maskCreditCard($object, 'PaymentAccount'); $set_new_status = 1; } @@ -2138,15 +2147,15 @@ $this->raiseProductEvent('Deny', $product_item['ProductId'], $product_item); } - if ( ($original_order_status != ORDER_STATUS_INCOMPLETE) && ($event->Name == 'OnMassOrderDeny' || $event->Name == 'OnOrderDeny') ) { + if ( ($original_order_status != ORDER_STATUS_INCOMPLETE ) && ($event->Name == 'OnMassOrderDeny' || $event->Name == 'OnOrderDeny') ) { $this->Application->emailUser('ORDER.DENY', null, $email_params); // inform payment gateway that order was declined $gw_data = $object->getGatewayData(); if ( $gw_data ) { - $this->Application->registerClass($gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile']); + $this->Application->registerClass( $gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile'] ); - $gateway_object = $this->Application->recallObject($gw_data['ClassName']); + $gateway_object = $this->Application->recallObject( $gw_data['ClassName'] ); $gateway_object->OrderDeclined($object->GetFieldValues(), $gw_data['gw_params']); } @@ -2188,7 +2197,7 @@ if ( !array_key_exists('error_number', $ret) ) { $set_new_status = $this->approveOrder($order_items); -// $set_new_status = $this->shipOrder($order_items); + // $set_new_status = $this->shipOrder($order_items); $object->SetDBField('ShippingDate', adodb_mktime()); $object->UpdateFormattersSubFields(); @@ -2199,8 +2208,8 @@ // inform payment gateway that order was shipped $gw_data = $object->getGatewayData(); - $this->Application->registerClass($gw_data['ClassName'], GW_CLASS_PATH . '/' . $gw_data['ClassFile']); + $this->Application->registerClass( $gw_data['ClassName'], GW_CLASS_PATH.'/'.$gw_data['ClassFile'] ); - $gateway_object = $this->Application->recallObject($gw_data['ClassName']); + $gateway_object = $this->Application->recallObject( $gw_data['ClassName'] ); $gateway_object->OrderShipped($object->GetFieldValues(), $gw_data['gw_params']); } @@ -2215,7 +2224,7 @@ case 'OnMassOrderProcess': case 'OnOrderProcess': - if ( $this->ReadyToProcess($object->GetID()) ) { + if ($this->ReadyToProcess($object->GetID())) { $event->CallSubEvent('OnReserveItems'); if ( $event->status == kEvent::erSUCCESS ) { @@ -2230,7 +2239,7 @@ break; } - if ( $set_new_status ) { + if ($set_new_status) { $object->Update(); } } @@ -2312,13 +2321,12 @@ parent::OnAfterClone($event); $id = $event->getEventParam('id'); - $table = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); + $config = $event->getUnitConfig(); // set cloned order status to Incomplete - $sql = 'UPDATE ' . $table . ' + $sql = 'UPDATE ' . $config->getTableName() . ' SET Status = 0 - WHERE ' . $id_field . ' = ' . $id; + WHERE ' . $config->getIDField() . ' = ' . $id; $this->Conn->Query($sql); } @@ -2634,7 +2642,7 @@ $ord_id = $order->GetId(); // TABLE_PREFIX and $table_prefix are NOT the same !!! - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); $query = ' SELECT BackOrderFlag, '. $table_prefix.'OrderItems.OrderItemId, '. @@ -2695,8 +2703,8 @@ } else { // inventory = 2 -> by product option combinations - $poc_idfield = $this->Application->getUnitOption('poc', 'IDField'); - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); + $query = ' UPDATE '.$poc_table.' SET '.$update_clause.' WHERE (ProductId = '.$an_item['ProductId'].') AND (CombinationCRC = '.$an_item['CombinationCRC'].')'; @@ -2734,8 +2742,8 @@ } else { // inventory by option combinations - $poc_idfield = $this->Application->getUnitOption('poc', 'IDField'); - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); + $query = ' UPDATE '.$poc_table.' SET '.$update_clause.' WHERE (ProductId = '.$an_item['ProductId'].') AND (CombinationCRC = '.$an_item['CombinationCRC'].')'; @@ -3338,7 +3346,12 @@ if ($object->GetDBField('Status') > ORDER_STATUS_PENDING) return; //no changes for orders other than incomple or pending $pt = $object->GetDBField('PaymentType'); - $processing_fee = $this->Conn->GetOne('SELECT ProcessingFee FROM '.$this->Application->getUnitOption('pt', 'TableName').' WHERE PaymentTypeId = '.$pt); + + $sql = 'SELECT ProcessingFee + FROM ' . $this->Application->getUnitConfig('pt')->getTableName() . ' + WHERE PaymentTypeId = ' . $pt; + $processing_fee = $this->Conn->GetOne($sql); + $object->SetDBField( 'ProcessingFee', $processing_fee ); $this->UpdateTotals($event); } @@ -3361,12 +3374,12 @@ return false; } - $sql = 'SELECT Price * Quantity AS Amount, ProductId FROM '.$this->Application->getUnitOption('orditems', 'TableName').' + $sql = 'SELECT Price * Quantity AS Amount, ProductId FROM '.$this->Application->getUnitConfig('orditems')->getTableName().' WHERE OrderId = '.$object->GetDBField('OrderId'); $orditems = $this->Conn->GetCol($sql, 'ProductId'); - $sql = 'SELECT coupi.ItemType, p.ProductId FROM '.$this->Application->getUnitOption('coupi', 'TableName').' coupi - LEFT JOIN '.$this->Application->getUnitOption('p', 'TableName').' p + $sql = 'SELECT coupi.ItemType, p.ProductId FROM '.$this->Application->getUnitConfig('coupi')->getTableName().' coupi + LEFT JOIN '.$this->Application->getUnitConfig('p')->getTableName().' p ON coupi.ItemResourceId = p.ResourceId WHERE CouponId = '.$object->GetDBField('CouponId'); $discounts = $this->Conn->GetCol($sql, 'ProductId'); @@ -3404,13 +3417,14 @@ { $id = current($this->StoreSelectedIDs($event)); - $id_field = $this->Application->getUnitOption($event->Prefix,'IDField'); - $table = $this->Application->getUnitOption($event->Prefix,'TableName'); + $config = $event->getUnitConfig(); + $id_field = $config->getIDField(); - $sql = 'SELECT Status FROM %s WHERE %s = %s'; + $sql = 'SELECT Status + FROM ' . $config->getTableName() . ' + WHERE ' . $id_field . ' = ' . $id; + $order_status = $this->Conn->GetOne($sql); - $order_status = $this->Conn->GetOne( sprintf($sql, $table, $id_field, $id) ); - $prefix_special = $event->Prefix.'.'.$this->getSpecialByType($order_status); $orders_list = $this->Application->recallObject($prefix_special, $event->Prefix.'_List', Array('per_page'=>-1) ); @@ -3480,14 +3494,14 @@ */ function getRecurringOrders($pre_expiration) { - $ord_table = $this->Application->getUnitOption('ord', 'TableName'); - $ord_idfield = $this->Application->getUnitOption('ord', 'IDField'); + $config = $this->Application->getUnitConfig('ord'); + $ord_id_field = $config->getIDField(); $processing_allowed = Array(ORDER_STATUS_PROCESSED, ORDER_STATUS_ARCHIVED); - $sql = 'SELECT '.$ord_idfield.', PortalUserId, GroupId, NextCharge - FROM '.$ord_table.' + $sql = 'SELECT '.$ord_id_field.', PortalUserId, GroupId, NextCharge + FROM '. $config->getTableName() .' WHERE (IsRecurringBilling = 1) AND (NextCharge < '.$pre_expiration.') AND Status IN ('.implode(',', $processing_allowed).')'; - return $this->Conn->Query($sql, $ord_idfield); + return $this->Conn->Query($sql, $ord_id_field); } /** @@ -3498,11 +3512,9 @@ function OnCheckRecurringOrders($event) { $skip_clause = Array(); - $ord_table = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $ord_idfield = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $pre_expiration = adodb_mktime() + $this->Application->ConfigValue('Comm_RecurringChargeInverval') * 3600 * 24; $to_charge = $this->getRecurringOrders($pre_expiration); + if ($to_charge) { $order_ids = Array(); foreach ($to_charge as $order_id => $record) { @@ -3537,9 +3549,11 @@ } // remove recurring flag from all orders found, not to select them next time script runs - $sql = 'UPDATE '.$ord_table.' + $config = $event->getUnitConfig(); + + $sql = 'UPDATE '. $config->getTableName() .' SET IsRecurringBilling = 0 - WHERE '.$ord_idfield.' IN ('.implode(',', array_keys($to_charge)).')'; + WHERE '. $config->getIDField() .' IN ('.implode(',', array_keys($to_charge)).')'; $this->Conn->Query($sql); } @@ -3658,14 +3672,16 @@ $order_number = (int)$this->Application->ConfigValue('Comm_Order_Number_Format_P'); $order_sub_number = (int)$this->Application->ConfigValue('Comm_Order_Number_Format_S'); - $calc_fields = $this->Application->getUnitOption($event->Prefix, 'CalculatedFields'); + $config = $event->getUnitConfig(); + $calc_fields = $config->getSetting('CalculatedFields'); + foreach ($calc_fields as $special => $fields) { $calc_fields[$special]['OrderNumber'] = str_replace('6', $order_number, $calc_fields[$special]['OrderNumber']); $calc_fields[$special]['OrderNumber'] = str_replace('3', $order_sub_number, $calc_fields[$special]['OrderNumber']); } - $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calc_fields); + $config->setSetting('CalculatedFields', $calc_fields); - $fields = $this->Application->getUnitOption($event->Prefix, 'Fields'); + $fields = $config->getFields(); $fields['Number']['format'] = str_replace('%06d', '%0'.$order_number.'d', $fields['Number']['format']); $fields['SubNumber']['format'] = str_replace('%03d', '%0'.$order_sub_number.'d', $fields['SubNumber']['format']); @@ -3702,13 +3718,13 @@ ); } - $this->Application->setUnitOption($event->Prefix, 'Fields', $fields); + $config->setFields($fields); - $user_forms = $this->Application->getUnitOption('u', 'Forms'); + $user_default_form = $this->Application->getUnitConfig('u')->getFieldByName('default'); - $virtual_fields = $this->Application->getUnitOption($event->Prefix, 'VirtualFields'); - $virtual_fields['UserPassword']['hashing_method'] = $user_forms['default']['Fields']['PasswordHashingMethod']['default']; - $this->Application->setUnitOption($event->Prefix, 'VirtualFields', $virtual_fields); + $virtual_fields = $config->getVirtualFields(); + $virtual_fields['UserPassword']['hashing_method'] = $user_default_form['Fields']['PasswordHashingMethod']['default']; + $config->setVirtualFields($virtual_fields); } /** \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_classes/paypal_direct.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_classes/paypal_direct.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_classes/paypal_direct.php (revision ) @@ -113,8 +113,7 @@ $billing_email = $item_data['BillingEmail']; if (!$billing_email) { - $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitOption('u', 'TableName').' - WHERE PortalUserId = '.$this->Application->RecallVar('user_id')); + $billing_email = $this->_getUserEmail(); } $post_fields['x_email'] = $billing_email; $post_fields['x_phone'] = $item_data['BillingPhone']; \ No newline at end of file Index: modules/in-commerce/units/products/products_item.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/products/products_item.php (revision 15682) +++ modules/in-commerce/units/products/products_item.php (revision ) @@ -64,7 +64,7 @@ } // not logged-in user on front-end or in administrative console - $pr_table = $this->Application->getUnitOption('pr', 'TableName'); + $pr_table = $this->Application->getUnitConfig('pr')->getTableName(); if ($this->IsTempTable()) { $pr_table = $this->Application->GetTempName($pr_table, 'prefix:' . $this->Prefix); \ No newline at end of file Index: modules/in-commerce/units/orders/order_manager.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/orders/order_manager.php (revision 15682) +++ modules/in-commerce/units/orders/order_manager.php (revision ) @@ -394,7 +394,7 @@ */ public function getTable($prefix) { - $table_name = $this->Application->getUnitOption($prefix, 'TableName'); + $table_name = $this->Application->getUnitConfig($prefix)->getTableName(); if ( $this->order->IsTempTable() ) { return $this->Application->GetTempName($table_name, 'prefix:' . $this->order->Prefix); \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_tag_processor.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_tag_processor.php (revision ) @@ -63,7 +63,7 @@ function PrintList($params) { $list = $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix.'_List', $params); - $id_field = $this->Application->getUnitOption($this->Prefix,'IDField'); + $id_field = $this->getUnitConfig()->getIDField(); $list->Query(); $list->GoFirst(); \ No newline at end of file Index: modules/in-commerce/units/affiliates/affiliates_event_handler.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/affiliates/affiliates_event_handler.php (revision 15682) +++ modules/in-commerce/units/affiliates/affiliates_event_handler.php (revision ) @@ -59,10 +59,11 @@ public function getPassedID(kEvent $event) { if ( $event->Special == 'user' ) { + $config = $event->getUnitConfig(); $event->setEventParam('raise_warnings', 0); - $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + $sql = 'SELECT ' . $config->getIDField() . ' + FROM ' . $config->getTableName() . ' WHERE PortalUserId = ' . (int)$this->Application->RecallVar('user_id'); $id = $this->Conn->GetOne($sql); @@ -92,22 +93,24 @@ '31'=>'4','32'=>'5','33'=>'6','34'=>'7','35'=>'8','36'=>'9'); $ret = ''; - for($i=1; $i<=$number_length; $i++) - { + for ($i = 1; $i <= $number_length; $i++) { mt_srand((double)microtime() * 1000000); $num = mt_rand(1,36); $ret .= $num_chars[$num]; } + $ret = strtoupper($ret); - $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); - $table = $this->Application->getUnitOption($event->Prefix, 'TableName'); + $config = $event->getUnitConfig(); + $id_field = $config->getIDField(); + $table = $config->getTableName(); - $sql = 'SELECT %s FROM %s WHERE AffiliateCode = %s'; + $sql = 'SELECT %s + FROM %s + WHERE AffiliateCode = %s'; $code_found = $this->Conn->GetOne( sprintf($sql, $id_field, $table, $this->Conn->qstr($ret) ) ); - if($code_found) return $this->generateAffiliateCode($event); - return $ret; + return $code_found ? $this->generateAffiliateCode($event) : $ret; } /** @@ -244,7 +247,7 @@ if ( $affiliate_plan->isLoaded() ) { $sql = 'SELECT SUM(Quantity) FROM %s WHERE OrderId = %s'; - $orderitems_table = $this->Application->getUnitOption('orditems', 'TableName'); + $orderitems_table = $this->Application->getUnitConfig('orditems')->getTableName(); $items_sold = $this->Conn->GetOne(sprintf($sql, $orderitems_table, $order->GetID())); $object->SetDBField('AccumulatedAmount', $object->GetDBField('AccumulatedAmount') + $order->GetDBField('TotalAmount')); @@ -260,7 +263,7 @@ break; } - $apb_table = $this->Application->getUnitOption('apbrackets', 'TableName'); + $apb_table = $this->Application->getUnitConfig('apbrackets')->getTableName(); $sql = 'SELECT Percent FROM %1$s WHERE (%2$s >= FromAmount) AND ( (%2$s <= ToAmount) OR (ToAmount = -1) ) AND (AffiliatePlanId = %3$s)'; $commission_percent = $this->Conn->GetOne(sprintf($sql, $apb_table, $this->Conn->qstr($value), $affiliate_plan->GetID())); @@ -360,7 +363,7 @@ protected function _getPrimaryAffiliatePlan() { $sql = 'SELECT AffiliatePlanId - FROM ' . $this->Application->getUnitOption('ap', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('ap')->getTableName() . ' WHERE IsPrimary = 1'; return (int)$this->Conn->GetOne($sql); @@ -432,7 +435,7 @@ /* @var $payment_object kDBItem */ $id = $event->getEventParam('id'); - $ap_table = $this->Application->getUnitOption('apayments', 'TableName'); + $ap_table = $this->Application->getUnitConfig('apayments')->getTableName(); $sql = 'SELECT AffiliatePaymentId FROM ' . $ap_table . ' @@ -462,7 +465,7 @@ } $sql = 'SELECT Status - FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + FROM ' . $event->getUnitConfig()->getTableName() . ' WHERE ' . $object->IDField . ' = ' . $object->GetID(); $old_status = $this->Conn->GetOne($sql); @@ -486,8 +489,8 @@ $intervals = Array (86400 => 'la_day', 604800 => 'la_week', 2628000 => 'la_month', 7884000 => 'la_quartely', 31536000 => 'la_year'); - $affiliates_table = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $affiliate_plan_table = $this->Application->getUnitOption('ap', 'TableName'); + $affiliates_table = $event->getUnitConfig()->getTableName(); + $affiliate_plan_table = $this->Application->getUnitConfig('ap')->getTableName(); $base_time = adodb_mktime(); $where_clause = Array (); @@ -582,6 +585,7 @@ { if ( $this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1) ) { $event->status = kEvent::erFAIL; + return; } @@ -591,7 +595,7 @@ $ids = $this->StoreSelectedIDs($event); if ( $ids ) { - $status_field = $object->getStatusField(); + $status_field = $event->getUnitConfig()->getStatusField(true); foreach ($ids as $id) { $object->Load($id); \ No newline at end of file Index: modules/in-link/install/upgrades.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-link/install/upgrades.php (revision 15682) +++ modules/in-link/install/upgrades.php (revision ) @@ -72,11 +72,12 @@ function Upgrade_5_0_0($mode) { if ($mode == 'after') { + $categories_config = $this->Application->getUnitConfig('c'); $root_category = $this->Application->findModule('Name', 'In-Link', 'RootCat'); - $sql = 'UPDATE ' . $this->Application->getUnitOption('c', 'TableName') . ' + $sql = 'UPDATE ' . $categories_config->getTableName() . ' SET UseMenuIconUrl = 1, MenuIconUrl = "in-link/img/menu_links.gif" - WHERE ' . $this->Application->getUnitOption('c', 'IDField') . ' = ' . $root_category; + WHERE ' . $categories_config->getIDField() . ' = ' . $root_category; $this->Conn->Query($sql); $this->_updateDetailTemplate('l', 'inlink/detail', 'in-link/designs/detail'); \ No newline at end of file Index: modules/in-commerce/units/coupon_items/coupon_items_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/coupon_items/coupon_items_tag_processor.php (revision 15682) +++ modules/in-commerce/units/coupon_items/coupon_items_tag_processor.php (revision ) @@ -17,15 +17,16 @@ function IsEntireOrder($params) { - $table_name = $this->Application->getUnitOption($this->Prefix, 'TableName'); + $table_name = $this->getUnitConfig()->getTableName(); - if ($this->Application->IsTempMode($this->Prefix)) { + if ( $this->Application->IsTempMode($this->Prefix) ) { $table_name = $this->Application->GetTempName($table_name, 'prefix:' . $this->Prefix); } $sql = 'SELECT COUNT(*) FROM ' . $table_name . ' WHERE (ItemType = 0) AND (CouponId = ' . $this->Application->GetVar('coup_id') . ')'; + return $this->Conn->GetOne($sql); } @@ -34,12 +35,16 @@ $object = $this->getObject($params); /* @var $object kDBList */ - if ($object->GetDBField('ItemType') == 2) { + if ( $object->GetDBField('ItemType') == 2 ) { $cat_object = $this->Application->recallObject('c'); + /* @var $cat_object CategoriesItem */ + - $cat_object->Load( $object->GetDBField('CategoryId') ); + $cat_object->Load($object->GetDBField('CategoryId')); + $cat_tag_processor = $this->Application->recallObject('c_TagProcessor'); + /* @var $cat_tag_processor CategoriesTagProcessor */ - return $cat_tag_processor->ItemIcon(); + return $cat_tag_processor->ItemIcon($params); } return parent::ItemIcon($params); \ No newline at end of file Index: modules/in-commerce/units/helpers/currency_rates.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/helpers/currency_rates.php (revision 15682) +++ modules/in-commerce/units/helpers/currency_rates.php (revision ) @@ -36,10 +36,10 @@ $rates = $this->Application->getCache($cache_key); $primary = $this->Application->GetPrimaryCurrency(); - if ($rates === false) { + if ( $rates === false ) { $this->Conn->nextQueryCachable = true; $sql = 'SELECT ISO, RateToPrimary - FROM ' . $this->Application->getUnitOption('curr', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('curr')->getTableName() . ' WHERE Status = ' . STATUS_ACTIVE; $rates = $this->Conn->Query($sql); @@ -55,24 +55,23 @@ { $source_cur = ($source_cur == 'PRIMARY') ? $this->Application->GetPrimaryCurrency() : $source_cur; $target_cur = ($target_cur == 'PRIMARY') ? $this->Application->GetPrimaryCurrency() : $target_cur; - if($source_cur == $target_cur) - { + + if ( $source_cur == $target_cur ) { return 1; } - if($this->ExchangeRates[$target_cur]['TARGET'] == $source_cur) - { + if ( $this->ExchangeRates[$target_cur]['TARGET'] == $source_cur ) { - $rate = ($this->ExchangeRates[$target_cur]['RATE'] == 0) ? false : 1 / $this->ExchangeRates[$target_cur]['RATE']; + $rate = ($this->ExchangeRates[$target_cur]['RATE'] == 0) ? false : 1 / $this->ExchangeRates[$target_cur]['RATE']; } - elseif($this->ExchangeRates[$source_cur]['TARGET'] == $target_cur) - { + elseif ( $this->ExchangeRates[$source_cur]['TARGET'] == $target_cur ) { $rate = $this->ExchangeRates[$source_cur]['RATE']; } - else - { + else { $rate = ($this->ExchangeRates[$target_cur]['RATE'] == 0) ? false : $this->ExchangeRates[$source_cur]['RATE'] / $this->ExchangeRates[$target_cur]['RATE']; } + $rate *= $units; + return $rate; } @@ -93,7 +92,7 @@ $symbol_sql = 'IF(COALESCE(Symbol, "") = "", CONCAT(ISO, " "), Symbol)'; $sql = 'SELECT IF(SymbolPosition = 0, CONCAT(' . $symbol_sql . ', "%s"), CONCAT("%s", ' . $symbol_sql . ')), LOWER(ISO) AS ISO - FROM ' . $this->Application->getUnitOption('curr', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('curr')->getTableName() . ' WHERE Status = ' . STATUS_ACTIVE; $iso_masks = $this->Conn->GetCol($sql, 'ISO'); $this->Application->setCache($cache_key, $iso_masks); Index: modules/in-commerce/units/zones/zones_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/zones/zones_tag_processor.php (revision 15682) +++ modules/in-commerce/units/zones/zones_tag_processor.php (revision ) @@ -24,9 +24,11 @@ $selected_country_id = (int)$this->Application->GetVar('CountrySelector'); $name_field = 'l' . $this->Application->GetVar('m_lang') . '_Name'; - $id_field = $this->Application->getUnitOption('country-state', 'IDField'); - $table_name = $this->Application->getUnitOption('country-state', 'TableName'); + $countries_config = $this->Application->getUnitConfig('country-state'); + $id_field = $countries_config->getIDField(); + $table_name = $countries_config->getTableName(); + switch ($params['show']) { case 'current': // selected countries in current zone @@ -131,9 +133,11 @@ $destination_table = $this->getDestinationsTable($params); $name_field = 'l' . $this->Application->GetVar('m_lang') . '_Name'; - $id_field = $this->Application->getUnitOption('country-state', 'IDField'); - $table_name = $this->Application->getUnitOption('country-state', 'TableName'); + $countries_config = $this->Application->getUnitConfig('country-state'); + $id_field = $countries_config->getIDField(); + $table_name = $countries_config->getTableName(); + $country_id = $this->Application->GetVar('CountrySelector'); switch ($params['show']) { @@ -216,7 +220,7 @@ $selected_zips = $this->Conn->qstrArray($selected_zips); $sql = 'SELECT DISTINCT DestValue - FROM ' . $this->Application->getUnitOption('dst', 'TableName') . ' + FROM ' . $this->Application->getUnitConfig('dst')->getTableName() . ' WHERE COALESCE(DestValue, "") <> "" AND ShippingZoneID <> ' . $object->GetID() . ' AND @@ -260,7 +264,7 @@ $object = $this->getObject($params); /* @var $object kDBItem */ - $table_name = $this->Application->getUnitOption('dst', 'TableName'); + $table_name = $this->Application->getUnitConfig('dst')->getTableName(); if ($object->IsTempTable()) { $table_name = $this->Application->GetTempName($table_name, 'prefix:' . $this->Prefix); \ No newline at end of file Index: modules/in-commerce/units/sections/section_eh.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/sections/section_eh.php (revision 15682) +++ modules/in-commerce/units/sections/section_eh.php (revision ) @@ -22,19 +22,23 @@ */ function OnModifySiteDomainConfig($event) { - $edit_tab_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'EditTabPresets'); - $edit_tab_presets['Default']['in-commerce'] = Array ( + $master_config = $event->MasterEvent->getUnitConfig(); + + $master_config->addEditTabPresetTabs('Default', Array ( + 'in-commerce' => Array ( - 'title' => 'la_title_In-Commerce', 't' => 'in-commerce/site_domains/site_domain_edit', 'priority' => 2.1 + 'title' => 'la_title_In-Commerce', 't' => 'in-commerce/site_domains/site_domain_edit', 'priority' => 2.1 - ); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'EditTabPresets', $edit_tab_presets); + ), + )); - $title_presets = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'TitlePresets'); - $title_presets['site_domain_edit_in_commerce'] = Array ( + + $master_config->addTitlePresets(Array ( + 'site_domain_edit_in_commerce' => Array ( - 'prefixes' => Array ('site-domain'), 'format' => "#site-domain_status# '#site-domain_titlefield#' - !la_title_In-Commerce!", - 'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit', 'prev', 'next'), + 'prefixes' => Array ('site-domain'), 'format' => "#site-domain_status# '#site-domain_titlefield#' - !la_title_In-Commerce!", + 'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit', 'prev', 'next'), - ); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'TitlePresets', $title_presets); + ), + )); + $new_fields = Array ( 'BillingCountry' => Array ( 'type' => 'string', 'max_len' => 3, @@ -78,9 +82,9 @@ ), ); - $fields = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Fields'); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Fields', array_merge($fields, $new_fields)); + $master_config->addFields($new_fields); + $new_columns = Array ( 'BillingCountry' => Array ('filter_block' => 'grid_options_filter', 'width' => 250, ), 'ShippingCountry' => Array ('filter_block' => 'grid_options_filter', 'width' => 250, ), @@ -88,9 +92,8 @@ 'PrimaryPaymentTypeId' => Array ('title' => 'column:la_fld_PaymentType', 'filter_block' => 'grid_options_filter', 'width' => 250, ), ); - $grids = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Grids'); - $grids['Default']['Fields'] = array_merge($grids['Default']['Fields'], $new_columns); - $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Grids', $grids); + $master_config->addGridFields('Default', $new_columns); + if (!$this->Application->isAdmin && is_object($this->Application->siteDomain)) { // re-configure object, because it's recalled before kUnitConfigReader::AfterConfigRead is called Index: modules/in-commerce/units/order_items/order_items_tag_processor.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/order_items/order_items_tag_processor.php (revision 15682) +++ modules/in-commerce/units/order_items/order_items_tag_processor.php (revision ) @@ -148,7 +148,7 @@ } if ($object->GetDBField('InventoryStatus') == 2) { - $poc_table = $this->Application->getUnitOption('poc', 'TableName'); + $poc_table = $this->Application->getUnitConfig('poc')->getTableName(); $sql = 'SELECT QtyInStock FROM '.$poc_table.' WHERE (ProductId = '.$object->GetDBField('ProductId').') AND (Availability = 1) AND (CombinationCRC = '.$object->GetDBField('OptionsSalt').')'; @@ -209,7 +209,7 @@ function PrintList($params) { $list =& $this->GetList($params); - $id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); + $id_field = $this->getUnitConfig()->getIDField(); $list->Query(); $o = ''; \ No newline at end of file Index: modules/in-commerce/units/gateways/gw_classes/verisign_pflink.php IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- modules/in-commerce/units/gateways/gw_classes/verisign_pflink.php (revision 15682) +++ modules/in-commerce/units/gateways/gw_classes/verisign_pflink.php (revision ) @@ -62,7 +62,7 @@ $billing_email = $item_data['BillingEmail']; if (!$billing_email) { - $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitOption('u', 'TableName').' + $billing_email = $this->Conn->GetOne(' SELECT Email FROM '.$this->Application->getUnitConfig('u')->getTableName().' WHERE PortalUserId = '.$this->Application->RecallVar('user_id')); } \ No newline at end of file