Portions created by the Initial Developer are Copyright (C) 2018 - 2020
the Initial Developer. All Rights Reserved.
*/
//includes
require_once "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('number_translation_add') || permission_exists('number_translation_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//action add or update
if (is_uuid($_REQUEST["id"])) {
$action = "update";
$number_translation_uuid = $_REQUEST["id"];
$id = $_REQUEST["id"];
}
else {
$action = "add";
}
//get http post variables and set them to php variables
if (is_array($_POST) && is_uuid($number_translation_uuid)) {
$number_translation_name = $_POST["number_translation_name"];
$number_translation_details = $_POST["number_translation_details"];
$number_translation_enabled = $_POST["number_translation_enabled"];
$number_translation_description = $_POST["number_translation_description"];
}
//process the user data and save it to the database
if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//validate the token
$token = new token;
if (!$token->validate($_SERVER['PHP_SELF'])) {
message::add($text['message-invalid_token'],'negative');
header('Location: number_translations.php');
exit;
}
//process the http post data by submitted action
if ($_POST['action'] != '' && strlen($_POST['action']) > 0) {
//prepare the array(s)
$x = 0;
foreach ($_POST['number_translation_details'] as $row) {
if (is_uuid($row['number_translation_uuid']) && $row['checked'] === 'true') {
$array['number_translations'][$x]['checked'] = $row['checked'];
$array['number_translations'][$x]['number_translation_details'][]['number_translation_detail_uuid'] = $row['number_translation_detail_uuid'];
$x++;
}
}
//send the array to the database class
switch ($_POST['action']) {
case 'copy':
if (permission_exists('number_translation_add')) {
$obj = new database;
$obj->copy($array);
}
break;
case 'delete':
if (permission_exists('number_translation_delete')) {
$obj = new database;
$obj->delete($array);
}
break;
case 'toggle':
if (permission_exists('number_translation_update')) {
$obj = new database;
$obj->toggle($array);
}
break;
}
//redirect the user
if (in_array($_POST['action'], array('copy', 'delete', 'toggle'))) {
header('Location: number_translation_edit.php?id='.$id);
exit;
}
}
//check for all required data
$msg = '';
if (strlen($number_translation_name) == 0) { $msg .= $text['message-required']." ".$text['label-number_translation_name']."
\n"; }
//if (strlen($number_translation_details) == 0) { $msg .= $text['message-required']." ".$text['label-number_translation_details']."
\n"; }
if (strlen($number_translation_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-number_translation_enabled']."
\n"; }
//if (strlen($number_translation_description) == 0) { $msg .= $text['message-required']." ".$text['label-number_translation_description']."
\n"; }
if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) {
require_once "resources/header.php";
require_once "resources/persist_form_var.php";
echo "
\n";
echo "
\n";
echo $msg." ";
echo " |
\n";
persistformvar($_POST);
echo "
\n";
require_once "resources/footer.php";
return;
}
//add the number_translation_uuid
if (!is_uuid($_POST["number_translation_uuid"])) {
$number_translation_uuid = uuid();
}
//prepare the array
$array['number_translations'][0]['number_translation_uuid'] = $number_translation_uuid;
$array['number_translations'][0]['number_translation_name'] = $number_translation_name;
$array['number_translations'][0]['number_translation_enabled'] = $number_translation_enabled;
$array['number_translations'][0]['number_translation_description'] = $number_translation_description;
$y = 0;
if (is_array($number_translation_details)) {
foreach ($number_translation_details as $row) {
if (strlen($row['number_translation_detail_regex']) > 0) {
$array['number_translations'][0]['number_translation_details'][$y]['number_translation_detail_uuid'] = $row["number_translation_detail_uuid"];
$array['number_translations'][0]['number_translation_details'][$y]['number_translation_detail_regex'] = $row["number_translation_detail_regex"];
$array['number_translations'][0]['number_translation_details'][$y]['number_translation_detail_replace'] = $row["number_translation_detail_replace"];
$array['number_translations'][0]['number_translation_details'][$y]['number_translation_detail_order'] = $row["number_translation_detail_order"];
if (isset($row["checked"])) {
$array['number_translations'][0]['number_translation_details'][$y]['checked'] = $row["checked"];
}
$y++;
}
}
}
//save the data
$database = new database;
$database->app_name = 'number translations';
$database->app_uuid = '6ad54de6-4909-11e7-a919-92ebcb67fe33';
$database->save($array);
//redirect the user
if (isset($action)) {
if ($action == "add") {
$_SESSION["message"] = $text['message-add'];
}
if ($action == "update") {
$_SESSION["message"] = $text['message-update'];
}
//header('Location: number_translations.php');
header('Location: number_translation_edit.php?id='.urlencode($number_translation_uuid));
return;
}
}
//pre-populate the form
if (is_array($_GET) && $_POST["persistformvar"] != "true") {
$sql = "select * from v_number_translations ";
$sql .= "where number_translation_uuid = :number_translation_uuid ";
$parameters['number_translation_uuid'] = $number_translation_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$number_translation_name = $row["number_translation_name"];
$number_translation_details = $row["number_translation_details"];
$number_translation_enabled = $row["number_translation_enabled"];
$number_translation_description = $row["number_translation_description"];
}
unset($sql, $parameters, $row);
}
//get the child data
if (is_uuid($number_translation_uuid)) {
$sql = "select * from v_number_translation_details ";
$sql .= "where number_translation_uuid = :number_translation_uuid ";
$sql .= "order by number_translation_detail_order asc";
$parameters['number_translation_uuid'] = $number_translation_uuid;
$database = new database;
$number_translation_details = $database->select($sql, $parameters, 'all');
unset ($sql, $parameters);
}
//add the $number_translation_detail_uuid
if (!is_uuid($number_translation_detail_uuid)) {
$number_translation_detail_uuid = uuid();
}
//add an empty row
$x = is_array($number_translation_details) ? count($number_translation_details) : 0;
$number_translation_details[$x]['number_translation_uuid'] = $number_translation_uuid;
$number_translation_details[$x]['number_translation_detail_uuid'] = uuid();
$number_translation_details[$x]['number_translation_detail_regex'] = '';
$number_translation_details[$x]['number_translation_detail_replace'] = '';
$number_translation_details[$x]['number_translation_detail_order'] = '';
//create token
$object = new token;
$token = $object->create($_SERVER['PHP_SELF']);
//show the header
$document['title'] = $text['title-number_translation'];
require_once "resources/header.php";
//show the content
echo "";
//include the footer
require_once "resources/footer.php";
?>