Index: branches/unlabeled/unlabeled-1.3.2/core/units/permissions/permissions_config.php =================================================================== diff -u -r5440 -r7517 --- branches/unlabeled/unlabeled-1.3.2/core/units/permissions/permissions_config.php (.../permissions_config.php) (revision 5440) +++ branches/unlabeled/unlabeled-1.3.2/core/units/permissions/permissions_config.php (.../permissions_config.php) (revision 7517) @@ -14,7 +14,7 @@ 'ParentPrefix' => 'c', 'ForeignKey' => 'CatId', 'ParentTableKey' => 'CategoryId', - + 'Hooks' => Array( Array( 'Mode' => hAFTER, @@ -34,7 +34,7 @@ 'ParentPrefix' => 'g', 'ForeignKey' => 'GroupId', 'ParentTableKey' => 'GroupId', - + 'Hooks' => Array( Array( 'Mode' => hAFTER, @@ -64,8 +64,8 @@ 'TableName' => TABLE_PREFIX.'Permissions', - 'AutoDelete' => true, - 'AutoClone' => true, + 'AutoDelete' => false, + 'AutoClone' => false, 'ListSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'), 'ItemSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'), Index: branches/unlabeled/unlabeled-1.3.2/core/units/general/helpers/recursive_helper.php =================================================================== diff -u -r7061 -r7517 --- branches/unlabeled/unlabeled-1.3.2/core/units/general/helpers/recursive_helper.php (.../recursive_helper.php) (revision 7061) +++ branches/unlabeled/unlabeled-1.3.2/core/units/general/helpers/recursive_helper.php (.../recursive_helper.php) (revision 7517) @@ -79,10 +79,10 @@ FROM '.$table_name.' WHERE '.$id_field.' = '.$dest_category_id; $dest_parent_path = explode('|', substr($this->Conn->GetOne($sql), 1, -1)); - + $child_categories = array_intersect($dest_parent_path, $category_ids); // get categories, then can't be moved $category_ids = array_diff($category_ids, $child_categories); // remove them from movable categories list - + if ($category_ids) { $sql = 'UPDATE '.$table_name.' SET ParentId = '.$dest_category_id.' @@ -102,6 +102,7 @@ // 1. clone category $temp_handler =& $this->Application->recallObject($prefix.'_TempHandler', 'kTempTablesHandler'); + /* @var $temp_handler kTempTablesHandler*/ $temp_handler->BuildTables($prefix, Array($category_id)); $new_category_id = array_pop( $temp_handler->CloneItems($prefix, '', Array($category_id)) ); $this->Application->SetVar('m_cat_id', $new_category_id); Index: branches/unlabeled/unlabeled-1.7.2/core/units/general/helpers/mod_rewrite_helper.php =================================================================== diff -u -r7508 -r7517 --- branches/unlabeled/unlabeled-1.7.2/core/units/general/helpers/mod_rewrite_helper.php (.../mod_rewrite_helper.php) (revision 7508) +++ branches/unlabeled/unlabeled-1.7.2/core/units/general/helpers/mod_rewrite_helper.php (.../mod_rewrite_helper.php) (revision 7517) @@ -385,7 +385,7 @@ } $vars = array(); - $url_parts = $url ? explode('/', $url) : Array(); + $url_parts = $url ? explode('/', trim($url, '/')) : Array(); $process_module = true; if($this->HTTPQuery->Get('rewrite') == 'on' || !$url_parts) Index: branches/unlabeled/unlabeled-1.10.2/core/units/categories/categories_item.php =================================================================== diff -u -r7370 -r7517 --- branches/unlabeled/unlabeled-1.10.2/core/units/categories/categories_item.php (.../categories_item.php) (revision 7370) +++ branches/unlabeled/unlabeled-1.10.2/core/units/categories/categories_item.php (.../categories_item.php) (revision 7517) @@ -176,6 +176,58 @@ } return parent::IsNewItem(); } + + /** + * Sets new name for item in case if it is beeing copied + * in same table + * + * @param array $master Table data from TempHandler + * @param int $foreign_key ForeignKey value to filter name check query by + * @access private + */ + function NameCopy($master=null, $foreign_key=null) + { + $title_field = $this->Application->getUnitOption($this->Prefix, 'TitleField'); + if (!$title_field || isset($this->CalculatedFields[$title_field]) ) return; + + $new_name = $this->GetDBField($title_field); + $cat_id = $this->Application->GetVar('m_cat_id'); + $this->SetDBField('ParentId', $cat_id); + $original_checked = false; + do { + if ( preg_match('/Copy ([0-9]*) *of (.*)/', $new_name, $regs) ) { + $new_name = 'Copy '.($regs[1]+1).' of '.$regs[2]; + } + elseif ($original_checked) { + $new_name = 'Copy of '.$new_name; + } + + // if we are cloning in temp table this will look for names in temp table, + // since object' TableName contains correct TableName (for temp also!) + // if we are cloning live - look in live + $query = 'SELECT '.$title_field.' FROM '.$this->TableName.' + WHERE ParentId = '.$cat_id.' AND '.$title_field.' = '.$this->Conn->qstr($new_name); + + $foreign_key_field = getArrayValue($master, 'ForeignKey'); + $foreign_key_field = is_array($foreign_key_field) ? $foreign_key_field[ $master['ParentPrefix'] ] : $foreign_key_field; + + if ($foreign_key_field && isset($foreign_key)) { + $query .= ' AND '.$foreign_key_field.' = '.$foreign_key; + } + + $res = $this->Conn->GetOne($query); + + /*// if not found in live table, check in temp table if applicable + if ($res === false && $object->Special == 'temp') { + $query = 'SELECT '.$name_field.' FROM '.$this->GetTempName($master['TableName']).' + WHERE '.$name_field.' = '.$this->Conn->qstr($new_name); + $res = $this->Conn->GetOne($query); + }*/ + + $original_checked = true; + } while ($res !== false); + $this->SetDBField($title_field, $new_name); + } } ?> \ No newline at end of file Index: branches/unlabeled/unlabeled-1.34.2/core/units/general/cat_dbitem.php =================================================================== diff -u -r6873 -r7517 --- branches/unlabeled/unlabeled-1.34.2/core/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 6873) +++ branches/unlabeled/unlabeled-1.34.2/core/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 7517) @@ -22,13 +22,13 @@ * @var bool */ var $usePendingEditing = false; - + function Clear() { parent::Clear(); $this->CategoryPath = Array(); } - + /** * Set's prefix and special * @@ -41,13 +41,14 @@ parent::Init($prefix, $special, $event_params); $this->usePendingEditing = $this->Application->getUnitOption($this->Prefix, 'UsePendingEditing'); } - + function Create($force_id=false, $system_create=false) { if (!$this->Validate()) return false; $this->SetDBField('ResourceId', $this->Application->NextResourceId()); $this->SetDBField('Modified', adodb_mktime() ); + $this->UpdateFormattersSubFields(); if ($this->mode != 't' && !$this->Application->IsAdmin()) { $this->SetDBField('CreatedById', $this->Application->RecallVar('user_id')); @@ -68,7 +69,7 @@ 'ItemPrefix' => $this->Prefix, 'Filename' => $this->GetDBField('Filename'), ); - $this->Conn->doInsert($fields_hash, $this->CategoryItemsTable()); + $this->Conn->doInsert($fields_hash, $this->CategoryItemsTable()); } return $ret; } @@ -77,6 +78,7 @@ { $this->VirtualFields['ResourceId'] = Array(); $this->SetDBField('Modified', adodb_mktime() ); + $this->UpdateFormattersSubFields(); $this->SetDBField('ModifiedById', $this->Application->RecallVar('user_id')); if ($this->useFilenames) { @@ -109,11 +111,11 @@ if ($this->Application->IsTempTable($this->TableName)) { $table = $this->Application->GetTempName($table, 'prefix:'.$this->Prefix); } - + return $table; } - - + + function checkFilename() { if( !$this->GetDBField('AutomaticFilename') ) @@ -401,14 +403,14 @@ } return $image_data; } - + function ChangeStatus($new_status) { $status_field = array_shift( $this->Application->getUnitOption($this->Prefix,'StatusField') ); $this->SetDBField($status_field, $new_status); return $this->Update(); } - + /** * Approves changes made to category item * @@ -422,19 +424,19 @@ // non-pending copy of original link return $this->ChangeStatus(STATUS_ACTIVE); } - + if ($this->raiseEvent('OnBeforeDeleteOriginal', null, Array('original_id' => $original_id))) { // delete original item, because changes made in pending copy (this item) got to be approved in this method $temp_handler =& $this->Application->recallObject($this->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); $temp_handler->DeleteItems($this->Prefix, $this->Special, Array($original_id)); - + $this->SetDBField('OrgId', 0); return $this->ChangeStatus(STATUS_ACTIVE); } - + return false; } - + /** * Decline changes made to category item * @@ -443,12 +445,12 @@ function DeclineChanges() { $original_id = $this->GetDBField('OrgId'); - + if (!($this->usePendingEditing && $original_id)) { // non-pending copy of original link return $this->ChangeStatus(STATUS_DISABLED); } - + // delete this item, because changes made in pending copy (this item) will be declined in this method $temp_handler =& $this->Application->recallObject($this->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); $temp_handler->DeleteItems($this->Prefix, $this->Special, Array($this->GetID())); Index: branches/unlabeled/unlabeled-1.25.2/core/units/categories/categories_event_handler.php =================================================================== diff -u -r7492 -r7517 --- branches/unlabeled/unlabeled-1.25.2/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 7492) +++ branches/unlabeled/unlabeled-1.25.2/core/units/categories/categories_event_handler.php (.../categories_event_handler.php) (revision 7517) @@ -507,7 +507,7 @@ } if ($clipboard_data['cut'] || $clipboard_data['copy']) { - $event->redirect = 'categories/cache_updater'; + $event->redirect = 'in-portal/categories/cache_updater'; } } Index: branches/unlabeled/unlabeled-1.1.2/admin/install/upgrades/changelog_1_4_0.txt =================================================================== diff -u -r7482 -r7517 --- branches/unlabeled/unlabeled-1.1.2/admin/install/upgrades/changelog_1_4_0.txt (.../changelog_1_4_0.txt) (revision 7482) +++ branches/unlabeled/unlabeled-1.1.2/admin/install/upgrades/changelog_1_4_0.txt (.../changelog_1_4_0.txt) (revision 7517) @@ -25,7 +25,7 @@ File in-portal/admin/install/prerequisit_errors.php changed File in-portal/admin/install/upgrade_errors.php changed File in-portal/admin/install/upgrades/changelog_1_3_0.txt changed -File in-portal/admin/install/upgrades/changelog_1_4_0.txt is new; release_1_4_0 revision 1.1.2.9 +File in-portal/admin/install/upgrades/changelog_1_4_0.txt is new; release_1_4_0 revision 1.1.2.10 File in-portal/admin/install/upgrades/inportal_upgrade_v1.3.2.sql is new; release_1_4_0 revision 1.1.2.2 File in-portal/admin/install/upgrades/inportal_upgrade_v1.4.0.sql is new; release_1_4_0 revision 1.1.2.1 File in-portal/admin/users/adduser.php changed @@ -317,13 +317,13 @@ File kernel.X/core/admin_templates/logout.tpl is new; release_1_4_0 revision 1.1 File kernel.X/core/admin_templates/no_permission.tpl is new; release_1_4_0 revision 1.1.2.2 File kernel.X/core/admin_templates/sections_list.tpl is new; release_1_4_0 revision 1.2.2.4 -File kernel.X/core/admin_templates/tree.tpl is new; release_1_4_0 revision 1.2.2.5 +File kernel.X/core/admin_templates/tree.tpl is new; release_1_4_0 revision 1.2.2.6 File kernel.X/core/admin_templates/ajax/popup_manager.tpl is new; release_1_4_0 revision 1.1.2.1 File kernel.X/core/admin_templates/config/config_email.tpl is new; release_1_4_0 revision 1.1.2.4 File kernel.X/core/admin_templates/config/config_general.tpl is new; release_1_4_0 revision 1.1.2.1 File kernel.X/core/admin_templates/config/config_search.tpl is new; release_1_4_0 revision 1.1.2.1 File kernel.X/core/admin_templates/config/config_search_edit.tpl is new; release_1_4_0 revision 1.1.2.1 -File kernel.X/core/admin_templates/config/config_universal.tpl is new; release_1_4_0 revision 1.1.2.3 +File kernel.X/core/admin_templates/config/config_universal.tpl is new; release_1_4_0 revision 1.1.2.4 File kernel.X/core/admin_templates/custom_fields/custom_fields_edit.tpl is new; release_1_4_0 revision 1.1.2.2 File kernel.X/core/admin_templates/custom_fields/custom_fields_list.tpl is new; release_1_4_0 revision 1.1.2.1 File kernel.X/core/admin_templates/img/ajax_progress.gif is new; release_1_4_0 revision 1.1 @@ -662,8 +662,8 @@ File kernel.X/core/admin_templates/incs/blocks.tpl is new; release_1_4_0 revision 1.1.2.4 File kernel.X/core/admin_templates/incs/close_popup.tpl is new; release_1_4_0 revision 1.1.2.7 File kernel.X/core/admin_templates/incs/config_blocks.tpl is new; release_1_4_0 revision 1.1 -File kernel.X/core/admin_templates/incs/footer.tpl is new; release_1_4_0 revision 1.1.2.7 -File kernel.X/core/admin_templates/incs/form_blocks.tpl is new; release_1_4_0 revision 1.4.2.10 +File kernel.X/core/admin_templates/incs/footer.tpl is new; release_1_4_0 revision 1.1.2.8 +File kernel.X/core/admin_templates/incs/form_blocks.tpl is new; release_1_4_0 revision 1.4.2.11 File kernel.X/core/admin_templates/incs/fw_menu.js is new; release_1_4_0 revision 1.1 File kernel.X/core/admin_templates/incs/grid_blocks.tpl is new; release_1_4_0 revision 1.1.2.15 File kernel.X/core/admin_templates/incs/header.tpl is new; release_1_4_0 revision 1.1.2.9 @@ -673,19 +673,19 @@ File kernel.X/core/admin_templates/incs/sections_list.css is new; release_1_4_0 revision 1.1.2.1 File kernel.X/core/admin_templates/incs/style.css is new; release_1_4_0 revision 1.2.2.10 File kernel.X/core/admin_templates/incs/tab_blocks.tpl is new; release_1_4_0 revision 1.2.2.2 -File kernel.X/core/admin_templates/js/ajax.js is new; release_1_4_0 revision 1.1.2.6 +File kernel.X/core/admin_templates/js/ajax.js is new; release_1_4_0 revision 1.1.2.7 File kernel.X/core/admin_templates/js/calendar.js is new; release_1_4_0 revision 1.1.2.3 -File kernel.X/core/admin_templates/js/grid.js is new; release_1_4_0 revision 1.1.2.3 -File kernel.X/core/admin_templates/js/grid_scroller.js is new; release_1_4_0 revision 1.1.2.15 +File kernel.X/core/admin_templates/js/grid.js is new; release_1_4_0 revision 1.1.2.4 +File kernel.X/core/admin_templates/js/grid_scroller.js is new; release_1_4_0 revision 1.1.2.17 File kernel.X/core/admin_templates/js/in-portal.js is new; release_1_4_0 revision 1.1 File kernel.X/core/admin_templates/js/inp_fckconfig.js is new; release_1_4_0 revision 1.1.2.2 File kernel.X/core/admin_templates/js/inp_styles.xml is new; release_1_4_0 revision 1.1.2.1 File kernel.X/core/admin_templates/js/is.js is new; release_1_4_0 revision 1.1 File kernel.X/core/admin_templates/js/nlsmenu.js is new; release_1_4_0 revision 1.1.2.4 File kernel.X/core/admin_templates/js/nlsmenueffect_1_2_1.js is new; release_1_4_0 revision 1.1.2.1 -File kernel.X/core/admin_templates/js/script.js is new; release_1_4_0 revision 1.2.2.23 -File kernel.X/core/admin_templates/js/toolbar.js is new; release_1_4_0 revision 1.3.2.7 -File kernel.X/core/admin_templates/js/tree.js is new; release_1_4_0 revision 1.1.2.6 +File kernel.X/core/admin_templates/js/script.js is new; release_1_4_0 revision 1.2.2.26 +File kernel.X/core/admin_templates/js/toolbar.js is new; release_1_4_0 revision 1.3.2.8 +File kernel.X/core/admin_templates/js/tree.js is new; release_1_4_0 revision 1.1.2.7 File kernel.X/core/admin_templates/js/calendar/calendar-blue.css is new; release_1_4_0 revision 1.1.2.1 File kernel.X/core/admin_templates/js/calendar/calendar-en.js is new; release_1_4_0 revision 1.1.2.2 File kernel.X/core/admin_templates/js/calendar/calendar-setup.js is new; release_1_4_0 revision 1.1.2.2 @@ -703,17 +703,17 @@ File kernel.X/core/admin_templates/regional/languages_export_step2.tpl is new; release_1_4_0 revision 1.1.2.2 File kernel.X/core/admin_templates/regional/languages_import.tpl is new; release_1_4_0 revision 1.1.2.2 File kernel.X/core/admin_templates/regional/languages_import_step2.tpl is new; release_1_4_0 revision 1.1.2.2 -File kernel.X/core/admin_templates/regional/languages_list.tpl is new; release_1_4_0 revision 1.1.2.3 +File kernel.X/core/admin_templates/regional/languages_list.tpl is new; release_1_4_0 revision 1.1.2.4 File kernel.X/core/admin_templates/regional/phrases_edit.tpl is new; release_1_4_0 revision 1.1.2.6 File kernel.X/core/admin_templates/tools/system_tools.tpl is new; release_1_4_0 revision 1.1.2.2 File kernel.X/core/units/dummy is new; release_1_4_0 revision 1.1 File kernel.X/core/units/admin/admin_config.php is new; release_1_4_0 revision 1.20.2.6 File kernel.X/core/units/admin/admin_events_handler.php is new; release_1_4_0 revision 1.4.2.6 -File kernel.X/core/units/admin/admin_tag_processor.php is new; release_1_4_0 revision 1.27.2.17 +File kernel.X/core/units/admin/admin_tag_processor.php is new; release_1_4_0 revision 1.27.2.19 File kernel.X/core/units/categories/cache_updater.php is new; release_1_4_0 revision 1.8.2.5 -File kernel.X/core/units/categories/categories_config.php is new; release_1_4_0 revision 1.54 -File kernel.X/core/units/categories/categories_event_handler.php is new; release_1_4_0 revision 1.25.2.14 -File kernel.X/core/units/categories/categories_item.php is new; release_1_4_0 revision 1.10.2.5 +File kernel.X/core/units/categories/categories_config.php is new; release_1_4_0 revision 1.54.2.1 +File kernel.X/core/units/categories/categories_event_handler.php is new; release_1_4_0 revision 1.25.2.16 +File kernel.X/core/units/categories/categories_item.php is new; release_1_4_0 revision 1.10.2.6 File kernel.X/core/units/categories/categories_tag_processor.php is new; release_1_4_0 revision 1.31.2.5 File kernel.X/core/units/category_items/category_items_config.php is new; release_1_4_0 revision 1.12 File kernel.X/core/units/category_items/category_items_dbitem.php is new; release_1_4_0 revision 1.4 @@ -730,7 +730,7 @@ File kernel.X/core/units/email_messages/email_messages_config.php is new; release_1_4_0 revision 1.2.52.1 File kernel.X/core/units/email_messages/email_messages_event_handler.php is new; release_1_4_0 revision 1.5.2.1 File kernel.X/core/units/general/brackets.php is new; release_1_4_0 revision 1.4 -File kernel.X/core/units/general/cat_dbitem.php is new; release_1_4_0 revision 1.34.2.2 +File kernel.X/core/units/general/cat_dbitem.php is new; release_1_4_0 revision 1.34.2.3 File kernel.X/core/units/general/cat_dbitem_export.php is new; release_1_4_0 revision 1.22.2.1 File kernel.X/core/units/general/cat_dblist.php is new; release_1_4_0 revision 1.4 File kernel.X/core/units/general/cat_event_handler.php is new; release_1_4_0 revision 1.68.2.3 @@ -747,11 +747,11 @@ File kernel.X/core/units/general/helpers/col_picker_helper.php is new; release_1_4_0 revision 1.1.2.3 File kernel.X/core/units/general/helpers/filenames_helper.php is new; release_1_4_0 revision 1.3 File kernel.X/core/units/general/helpers/helpers_config.php is new; release_1_4_0 revision 1.3.2.3 -File kernel.X/core/units/general/helpers/mod_rewrite_helper.php is new; release_1_4_0 revision 1.7.2.2 +File kernel.X/core/units/general/helpers/mod_rewrite_helper.php is new; release_1_4_0 revision 1.7.2.4 File kernel.X/core/units/general/helpers/modules.php is new; release_1_4_0 revision 1.6.2.2 File kernel.X/core/units/general/helpers/multilanguage.php is new; release_1_4_0 revision 1.8.2.3 File kernel.X/core/units/general/helpers/permissions_helper.php is new; release_1_4_0 revision 1.20.2.3 -File kernel.X/core/units/general/helpers/recursive_helper.php is new; release_1_4_0 revision 1.3.2.3 +File kernel.X/core/units/general/helpers/recursive_helper.php is new; release_1_4_0 revision 1.3.2.4 File kernel.X/core/units/general/helpers/search_helper.php is new; release_1_4_0 revision 1.4.2.6 File kernel.X/core/units/general/helpers/sections_helper.php is new; release_1_4_0 revision 1.11.2.4 File kernel.X/core/units/general/helpers/themes_helper.php is new; release_1_4_0 revision 1.1.2.1 @@ -765,6 +765,7 @@ File kernel.X/core/units/languages/languages_tag_processor.php is new; release_1_4_0 revision 1.7.2.7 File kernel.X/core/units/modules/modules_config.php changed File kernel.X/core/units/modules/modules_event_handler.php changed +File kernel.X/core/units/permissions/permissions_config.php changed File kernel.X/core/units/permissions/permissions_event_handler.php changed File kernel.X/core/units/permissions/permissions_tag_processor.php changed File kernel.X/core/units/phrases/phrases_config.php is new; release_1_4_0 revision 1.9.2.3 @@ -776,12 +777,12 @@ File kernel.X/core/units/user_groups/user_groups_config.php is new; release_1_4_0 revision 1.3.2.1 File kernel.X/core/units/user_groups/user_groups_dbitem.php is new; release_1_4_0 revision 1.1.4.1 File kernel.X/core/units/users/users_config.php is new; release_1_4_0 revision 1.32.2.3 -File kernel.X/core/units/users/users_event_handler.php is new; release_1_4_0 revision 1.68.2.13 +File kernel.X/core/units/users/users_event_handler.php is new; release_1_4_0 revision 1.68.2.14 File kernel.X/core/units/users/users_item.php is new; release_1_4_0 revision 1.13 File kernel.X/core/units/users/users_syncronize.php is new; release_1_4_0 revision 1.4 File kernel.X/core/units/users/users_tag_processor.php is new; release_1_4_0 revision 1.14.2.2 File kernel.X/core/install/english.lang is new; release_1_4_0 revision 1.1 -File kernel.X/core/install/install_data.sql is new; release_1_4_0 revision 1.3.2.5 +File kernel.X/core/install/install_data.sql is new; release_1_4_0 revision 1.3.2.6 File kernel.X/core/install/install_schema.sql is new; release_1_4_0 revision 1.3.2.8 File kernel.X/core/install/steps_db.xml is new; release_1_4_0 revision 1.2 File kernel.X/core/install/incs/install.tpl is new; release_1_4_0 revision 1.2