ACC SHELL
<?php
if (isset($_POST['odeslat'])) {
$nazev = Validate::validateString($_POST['nazev'], 'Název', true);
if ($nazev) {
if (isset($_POST['id']) && $_POST['id'] != false) {
$id = intval($_POST['id']);
$moduly_id = dibi::query('SELECT id FROM moduly')->fetchAll();
// Projdu vsechny dostupne moduly, pokud je id modulu zaskrtnute v chceckboxu, stav = 1, else 0
foreach ($moduly_id as $modul) {
$stav = in_array($modul->id, $_POST['modul']) == true ? '1' : '0';
$test = dibi::query('SELECT id_prirazeni FROM role_prirazeni WHERE id_role=%i', $id, ' AND id_modulu=%i', $modul->id)->fetchSingle();
if ($test) {
dibi::query('UPDATE role_prirazeni SET stav =%i', $stav, ' WHERE id_role=%i', $id, ' AND id_modulu=%i', $modul->id);
} else {
dibi::query('INSERT INTO role_prirazeni (id_role, id_modulu, stav) VALUES(' . $id . ',' . $modul->id . ',' . $stav . ')');
}
}
} else {
$test = dibi::query('SELECT id FROM role WHERE nazev = %s', $nazev, ' LIMIT 1')->fetch();
if ($test) {
$_SESSION['message_ko'][] = 'Název role <a href="role_edit.php?id_role=' . $test->id . '">' . $nazev . '</a> již existuje.';
} else {
$test = dibi::query('INSERT INTO role (nazev, modifikace) VALUES("' . $nazev . '", now())');
$id = dibi::insertId();
$moduly_id = $Role->fetchAllModules();
// Projdu vsechny dostupne moduly, pokud je id modulu zaskrtnute v chceckboxu, stav = 1, else 0
foreach ($moduly_id as $modul) {
$stav = in_array($modul->id, $_POST['modul']) == true ? '1' : '0';
dibi::query('INSERT INTO role_prirazeni (id_role, id_modulu, stav) VALUES(' . $id . ',' . $modul->id . ',' . $stav . ')');
}
}
}
if (isset($_POST['odeslat_a_zavrit']) && $id != 0) {
Tools::redirect('role.php');
} else {
Tools::redirect("role_edit.php?id_role=" . $id);
}
}
}
?>
ACC SHELL 2018