70 lines
1.3 KiB
PHP
Executable File
70 lines
1.3 KiB
PHP
Executable File
<?php
|
|
|
|
$func = include('includes/auth.php');
|
|
|
|
$func(function () {
|
|
|
|
$obj = array();
|
|
$last = array();
|
|
$last_l = array();
|
|
$service = Service::get($_GET['request']['service']);
|
|
|
|
if ( !array_key_exists('cancel', $_POST) ) {
|
|
|
|
if ( !empty($_POST['sort']) && $service->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);
|
|
|
|
});
|
|
|