Index: branches/unlabeled/unlabeled-1.64.2/kernel/units/general/cat_event_handler.php =================================================================== diff -u -r5970 -r6031 --- branches/unlabeled/unlabeled-1.64.2/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 5970) +++ branches/unlabeled/unlabeled-1.64.2/kernel/units/general/cat_event_handler.php (.../cat_event_handler.php) (revision 6031) @@ -348,6 +348,16 @@ $object->addFilter('original_filter', '%1$s.OrgId = 0 OR %1$s.OrgId IS NULL'); } } + else { + if ($this->Application->getUnitOption($event->Prefix, 'UsePendingEditing')) { + $pending_ids = $this->Conn->GetCol( + 'SELECT OrgId FROM '.$object->TableName.' + WHERE Status = -2 AND OrgId IS NOT NULL'); + if ($pending_ids) { + $object->addFilter('no_original_filter', '%1$s.'.$object->IDField.' NOT IN ('.implode(',', $pending_ids).')'); + } + } + } $types = $event->getEventParam('types'); $except_types = $event->getEventParam('except'); @@ -554,8 +564,8 @@ function OnAfterItemLoad(&$event) { $special = substr($event->Special, -6); + $object =& $event->getObject(); if ($special == 'import' || $special == 'export') { - $object =& $event->getObject(); $image_data = $object->getPrimaryImageData(); if ($image_data) { @@ -572,6 +582,16 @@ } } + //substituiting pending status value for pending editing + if ($object->HasField('OrgId') && $object->GetDBField('OrgId') > 0 && $object->GetDBField('Status') == -2) { + $options = $object->Fields['Status']['options']; + foreach ($options as $key => $val) { + if ($key == 2) $key = -2; + $new_options[$key] = $val; + } + $object->Fields['Status']['options'] = $new_options; + } + } function OnAfterItemUpdate(&$event)