Index: branches/5.3.x/units/articles/articles_event_handler.php =================================================================== diff -u -N -r15488 -r15697 --- branches/5.3.x/units/articles/articles_event_handler.php (.../articles_event_handler.php) (revision 15488) +++ branches/5.3.x/units/articles/articles_event_handler.php (.../articles_event_handler.php) (revision 15697) @@ -1,6 +1,6 @@ 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.' - FROM '.$table.' main_table - LEFT JOIN '.$custom_table.' cd ON cd.ResourceId = main_table.ResourceId - WHERE LENGTH(cd.'.$crc_field.') > 0'; + $sql = 'SELECT main_table.' . $id_field . ', cd.' . $crc_field . ' + FROM ' . $table . ' main_table + LEFT JOIN ' . $custom_table . ' cd ON cd.ResourceId = main_table.ResourceId + 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( - 'cust_RssSource' => Array('type' => 'string', '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_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_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_RssLastUpdated' => 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); + $this->Application->getUnitConfig('c')->addVirtualFields(Array ( + 'cust_RssSource' => Array ('type' => 'string', 'default' => ''), + 'cust_RssDefaultExpiration' => Array ('type' => 'int', 'default' => ''), + '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_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_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_RssLastExpired' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => ''), + )); } /** @@ -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: branches/5.3.x/install/upgrades.php =================================================================== diff -u -N -r15673 -r15697 --- branches/5.3.x/install/upgrades.php (.../upgrades.php) (revision 15673) +++ branches/5.3.x/install/upgrades.php (.../upgrades.php) (revision 15697) @@ -1,6 +1,6 @@ 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');