Index: branches/5.1.x/core/kernel/db/db_event_handler.php =================================================================== diff -u -r13405 -r13545 --- branches/5.1.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 13405) +++ branches/5.1.x/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 13545) @@ -1,6 +1,6 @@ Application->getUnitOption($event->Prefix, 'ListSortings'); - $sorting_prefix = getArrayValue($list_sortings, $event->Special) ? $event->Special : ''; + $sorting_prefix = array_key_exists($event->Special, $list_sortings) ? $event->Special : ''; $sorting_configs = $this->Application->getUnitOption($event->Prefix, 'ConfigMapping'); if ($sorting_configs && array_key_exists('DefaultSorting1Field', $sorting_configs)) { @@ -1350,6 +1350,11 @@ */ function OnUpdate(&$event) { + if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { + $event->status = erFAIL; + return; + } + $object =& $event->getObject( Array('skip_autoload' => true) ); $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); @@ -2348,13 +2353,15 @@ } $event->redirect = $this->Application->GetVar('translator_t'); - $event->redirect_params = Array('pass'=>'all,trans,'.$this->Application->GetVar('translator_prefixes'), - $event->getPrefixSpecial(true).'_id' => $object->GetID(), - 'trans_event' => 'OnLoad', - 'trans_prefix' => $this->Application->GetVar('translator_prefixes'), - 'trans_field' => $this->Application->GetVar('translator_field'), - 'trans_multi_line' => $this->Application->GetVar('translator_multi_line'), - ); + $event->redirect_params = Array ( + 'pass' => 'all,trans,' . $this->Application->GetVar('translator_prefixes'), + 'opener' => 's', + $event->getPrefixSpecial(true) . '_id' => $object->GetID(), + 'trans_event' => 'OnLoad', + 'trans_prefix' => $this->Application->GetVar('translator_prefixes'), + 'trans_field' => $this->Application->GetVar('translator_field'), + 'trans_multi_line' => $this->Application->GetVar('translator_multi_line'), + ); // 1. SAVE LAST TEMPLATE TO SESSION (really needed here, because of tweaky redirect) $last_template = $this->Application->RecallVar('last_template'); @@ -2816,4 +2823,17 @@ // abstract, for hooking } + /** + * [HOOK] Allows to add cloned subitem to given prefix + * + * @param kEvent $event + */ + function OnCloneSubItem(&$event) + { + $clones = $this->Application->getUnitOption($event->MasterEvent->Prefix, 'Clones'); + + $subitem_prefix = $event->Prefix . '-' . preg_replace('/^#/', '', $event->MasterEvent->Prefix); + $clones[$subitem_prefix] = Array ('ParentPrefix' => $event->Prefix); + $this->Application->setUnitOption($event->MasterEvent->Prefix, 'Clones', $clones); + } } \ No newline at end of file