91 lines
1.3 KiB
PHP
91 lines
1.3 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace rosavox;
|
||
|
|
||
|
require_once('entities/doc.php');
|
||
|
require_once('services/doc.php');
|
||
|
require_once('nav.php');
|
||
|
require_once('renderings.php');
|
||
|
|
||
|
|
||
|
/**
|
||
|
*/
|
||
|
function main(array $get, array $post) : void
|
||
|
{
|
||
|
// init
|
||
|
\rosavox\services\doc\init();
|
||
|
|
||
|
// args
|
||
|
$mode = (
|
||
|
$get['mode']
|
||
|
??
|
||
|
'list'
|
||
|
);
|
||
|
$id = (
|
||
|
(! empty($get['id']))
|
||
|
?
|
||
|
\intval($get['id'])
|
||
|
:
|
||
|
null
|
||
|
);
|
||
|
|
||
|
// exec
|
||
|
switch ($mode)
|
||
|
{
|
||
|
case 'delete':
|
||
|
{
|
||
|
if ($id === null)
|
||
|
{
|
||
|
// do nothing
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
\rosavox\services\doc\remove($id);
|
||
|
}
|
||
|
nav('list', []);
|
||
|
break;
|
||
|
}
|
||
|
case 'save':
|
||
|
{
|
||
|
$doc = new \rosavox\entities\doc\entity(
|
||
|
$post['title'],
|
||
|
\explode(',', $post['authors']),
|
||
|
$post['content'],
|
||
|
(empty($post['reasoning']) ? null : $post['reasoning'])
|
||
|
);
|
||
|
if ($id === null)
|
||
|
{
|
||
|
$id = \rosavox\services\doc\add($doc);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
\rosavox\services\doc\change($id, $doc);
|
||
|
}
|
||
|
// \rosavox\nav('edit', ['id' => \strval($id)]);
|
||
|
\rosavox\nav('list', []);
|
||
|
break;
|
||
|
}
|
||
|
case 'list':
|
||
|
{
|
||
|
echo(\rosavox\renderings\doc_list());
|
||
|
break;
|
||
|
}
|
||
|
case 'make':
|
||
|
{
|
||
|
echo(\rosavox\renderings\doc_edit(null));
|
||
|
break;
|
||
|
}
|
||
|
case 'edit':
|
||
|
{
|
||
|
echo(\rosavox\renderings\doc_edit($id));
|
||
|
break;
|
||
|
}
|
||
|
default:
|
||
|
{
|
||
|
throw (new \Exception(\sprintf('invalid mode: %s', $mode)));
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
?>
|