getParent()->Field->position ) { $i = 0; foreach ( $_POST['sort'] as $id => $v ) { $service->update(array( 'id' => $id, 'position' => ++$i, )); } } if ( !empty($_POST['delete']) ) foreach ( $_REQUEST['delete'] as $id => $obj ) $service->delete($obj); elseif ( !empty($_POST['objects']) ) { foreach ( $_POST['objects'] as $id => $obj ) if ( $id ) { $obj[$service->getKey()->getName()] = $id; $last_l = $service->update($obj); } else $last = $service->create(array_merge($obj, array( 'position' => 100000 ))); } } if ( $last ) die(header(sprintf( 'Location: %1$s&object[id]=%2$s', $_SERVER['HTTP_REFERER'], $last['id'] ))); if ( $last_l ) die(header(sprintf( 'Location: %1$s', $_SERVER['HTTP_REFERER'] ))); header($redir = sprintf( 'Location: %1$s', !empty($_POST['next']) ? sprinto($_POST['next'], $last) : ( !empty($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '/admin' ) )); die($redir); });