cyrilleinvalides/choupas/www/admin/services.php

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);
});