backup: live-stand vor erstem git-deployment

This commit is contained in:
2026-06-29 11:04:33 +02:00
commit 90368b8a29
699 changed files with 162032 additions and 0 deletions

View File

@@ -0,0 +1,286 @@
<?
switch ($_GET["action"]) {
case 'edit':
edit_certificate();
break;
case 'delete':
delete_certificate($certificate['id']);
break;
case 'new':
require_once("certificate_cardform.inc.php");
break;
case 'save':
save_certificate();
break;
case 'save_line_certificate':
save_line_certificate();
break;
case 'new_line_certificate':
require_once("certificate_line_cardform.inc.php");
// new_line_certificate();
break;
case 'edit_line_certificate':
edit_line_certificate();
break;
case 'delete_line_certificate':
delete_line_certificate();
break;
case 'moveup_line_certificate':
moveup_line_certificate();
edit_certificate();
break;
case 'movedown_line_certificate':
movedown_line_certificate();
edit_certificate();
break;
case 'open_card':
open_card();
case 'load_collection_pages' : load_collection_pages(); break;
case 'load_collections' : load_collections(); break;
default:
require_once("certificate_listform.inc.php");
break;
}
function open_card() {?>
<script type="text/javascript">
openCardOnStart = true;
openCardAction = 'new';
</script>
<?php }
function edit_certificate( $_id = "", $messages = array() ) {
if ((int)$_id > 0) {
$input_id = $_id;
} else {
$input_id = $_POST["input_id"];
}
if ($input_id <> '') {
$pdoHost = getenv('MAIN_MYSQL_DB_HOST');
$pdoPort = getenv('MAIN_MYSQL_DB_PORT');
$pdoUser = getenv('MAIN_MYSQL_DB_USER');
$pdoPass = getenv('MAIN_MYSQL_DB_PASS');
$pdoSchema = getenv('MAIN_MYSQL_DB_SCHEMA');
$pdo = new \DynCom\mysyde\common\classes\PDOQueryWrapper($pdoHost, $pdoPort, $pdoSchema, $pdoUser, $pdoPass);
$prepStatement = " SELECT * FROM main_certificate WHERE id = :id LIMIT 1 ";
$params = [
[':id', $input_id, PDO::PARAM_STR],
];
$pdo->setQuery($prepStatement);
$pdo->prepareQuery();
$pdo->bindParameters($params);
$pdo->executePreparedStatement();
$result = $pdo->getResultArray();
if (count($result) == 1) {
$input_certificate = $result[0];
require_once("certificate_cardform.inc.php");
}
} else {
$input_certificate = array();
require_once("certificate_cardform.inc.php");
}
}
function delete_certificate() {
if ($_POST["input_id"] <> '') {
$query = "DELETE FROM main_certificate WHERE id = '" . $_POST["input_id"] . "' LIMIT 1";
@mysqli_query($GLOBALS['mysql_con'], $query);
}
}
function save_certificate() {
$messages = array();
$error = FALSE;
$input_id = "";
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
$input_recurring = ($_POST["input_recurring"] == "on") ? 1 : 0;
if ($_POST["input_id"] <> '') {
$inserted = FALSE;
$input_id = $_POST["input_id"];
$query = "UPDATE main_certificate
SET title = '" . $_POST['input_title'] . "',
description = '" . $_POST['input_description'] . "',
recurring = '" . $input_recurring . "',
validity_period = '" . $_POST['input_validity_period'] . "',
access_type = '" . $_POST['input_access_type'] . "',
main_collection_page_list_id = '" . $_POST['main_collection_page_list_id'] . "',
main_collection_setup_id = '" . $_POST['main_collection_setup_id'] . "',
main_collection_id = '" . $_POST['main_collection_id'] . "'
WHERE id = '" . $_POST["input_id"] . "' LIMIT 1";
} else {
$query = "INSERT INTO main_certificate (id, title, description, recurring, validity_period, access_type, main_collection_page_list_id, main_collection_setup_id, main_collection_id) VALUES (
NULL,
'" . $_POST['input_title'] . "',
'" . $_POST['input_description'] . "',
'" . $input_recurring . "',
'" . $_POST['input_validity_period'] . "',
'" . $_POST['input_access_type'] . "',
'" . $_POST['main_collection_page_list_id'] . "',
'" . $_POST['main_collection_setup_id'] . "',
'" . $_POST['main_collection_id'] . "'
)";
$inserted = TRUE;
}
if (!$error) {
@mysqli_query($GLOBALS['mysql_con'], $query);
if ($inserted == TRUE) {
$input_id = mysqli_insert_id($GLOBALS['mysql_con']);
$messages[] = '<div class="successbox">' . $translation->get("certificate_msg_success1") . '</div>';
} else {
$messages[] = '<div class="successbox">' . $translation->get("certificate_msg_success2") . '</div>';
}
$mandant_ids = $_POST['select_mandant'];
$mandant = explode(',', $mandant_ids);
if(!empty($mandant) && gettype($mandant) == 'array') {
$deleteLink = @mysqli_query($GLOBALS["mysql_con"], "DELETE FROM certificate_mandant_link WHERE main_certificate_id = ".$input_id);
foreach($mandant as $key => $mandant_value){
$query = "INSERT INTO certificate_mandant_link
(main_certificate_id, main_mandant_id)
VALUES (
" . $input_id . ",
" . $mandant_value . "
)";
@mysqli_query($GLOBALS['mysql_con'], $query);
}
}
save_certificate_contact_list($input_id);
edit_certificate($input_id, $messages);
} else {
require_once("edit_certificate_cardform.inc.php");
}
}
function save_certificate_contact_list($certificate_id){
$datetime = new DateTime();
$query = "SELECT * FROM main_contact WHERE active = 1 ORDER BY name ASC";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while($row = @mysqli_fetch_array($result)) {
$done = ($_POST["done_".$row['id']] == "on") ? 1 : 0;
$active = ($_POST["active_".$row['id']] == "on") ? 1 : 0;
$deleteActive = @mysqli_query($GLOBALS["mysql_con"], "DELETE FROM certificate_contact WHERE certificate_id=".$certificate_id." AND main_contact_id = ".$row['id']);
if($active == 1){
$query_active = "INSERT INTO certificate_contact (certificate_id, main_contact_id, active)
VALUES (
'".$certificate_id."',
'".$row['id']."',
'".$active."'
)";
$result_active = @mysqli_query($GLOBALS['mysql_con'], $query_active);
}
$query2 = "SELECT * FROM certificate_contact_submit WHERE certificate_id = ".$certificate_id." AND main_contact_id = ".$row['id']. " ORDER BY id DESC LIMIT 1";
$result2 = @mysqli_query($GLOBALS['mysql_con'], $query2);
$row2 = @mysqli_fetch_array($result2);
$query3 = "";
if($row2 != NULL){
if($row2['correct'] != $done){
$query3 = "UPDATE certificate_contact_submit SET correct = ".$done.", issue_date = '".$datetime->format('Y-m-d H:i:s')."' WHERE id = ".$row2['id'];
}
}else{
if($done == 1){
$query3 = "INSERT INTO certificate_contact_submit (certificate_id, main_contact_id, issue_date, correct)
VALUES (
'".$certificate_id."',
'".$row['id']."',
'".$datetime->format('Y-m-d H:i:s')."',
'".$done."'
)";
}
}
$result3 = @mysqli_query($GLOBALS['mysql_con'], $query3);
}
}
function load_collection_pages() {
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
ob_start();
create_page_with_collection_select($_POST['collection_setup_id'], $translation->get("page_with_collections"), "main_collection_page_list_id", array(), false);
$output1 = ob_get_clean();
$active_groups = array();
$query = "SELECT main_collection_setup_group_id from main_page_collection_group_link where main_page_link_id = '" . $_POST['page_link_id']."'";
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
while ($row = @mysqli_fetch_array($result)) {
$active_groups[] = $row['main_collection_setup_group_id'];
}
ob_start();
create_collection_preview_group_select($_POST['collection_setup_id'], $_POST['page_link_id'], $active_groups);
$output2 = ob_get_clean();
echo json_encode(array('page_with_collection_select' => $output1, 'collection_preview_group_select' => $output2));
}
function load_collections() {
// ajax call
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
$setup_id = $_POST['main_collection_setup_id'];
$collections = array();
$collection_ids = array();
if($setup_id != "") {
$query = "SELECT * FROM main_collection WHERE main_collection_setup_id = '" . $setup_id . "'";
$result = @mysqli_query($GLOBALS['mysql_con'],$query);
while ($row = @mysqli_fetch_array($result,1)) {
$collections[] = $row['description'];
$collection_ids[] = $row['id'];
}
}
input_select($translation->get("choose_collection"),"main_collection_id",$values = $collection_ids,$value_names = $collections,"", false, false);
}
function create_mandant_select($category_id){
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
$query = "SELECT * FROM main_mandant";
$mandant_result = @mysqli_query($GLOBALS['mysql_con'], $query);
$preselect = array();
$query = "SELECT * FROM certificate_mandant_link WHERE main_certificate_id = ".$category_id;
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while($row = @mysqli_fetch_array($result)){
array_push($preselect,$row['main_mandant_id']);
}
$allselect = array();
?>
<div class="label"><?php echo $translation->get("mandant")?></div>
<div class="mandant bc-select-ui ui fluid multiple search selection dropdown" style="clear:both;display:inline-block;">
<input type="hidden" name="select_mandant">
<i class="dropdown icon"></i>
<div class="default text"><?php echo $translation->get("mandant")?></div>
<div class="menu">
<?
while($mandant = @mysqli_fetch_array($mandant_result)) {
array_push($allselect,$mandant['id']);
echo "<div class=\"item\" data-value=\"{$mandant['id']}\">".$mandant["description"]."</div>";
}
?>
</div>
</div>
<div class='all_mandants' ><?php echo $translation->get("all_mandants")?></div>
<script type="text/javascript" src="/plugins/jquery/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="/plugins/Semantic-UI-master/semantic.min.js"></script>
<link rel="stylesheet" type="text/css" href="/plugins/Semantic-UI-master/bc-semantic.css?time=<?= filemtime($_SERVER['DOCUMENT_ROOT'] . '/plugins/Semantic-UI-master/bc-semantic.css')?>">
<script>
var $y = jQuery.noConflict();
$y( document ).ready(function() {
$y('.mandant.ui.fluid.multiple.dropdown').dropdown('set selected', <?= json_encode($preselect) ?>);
});
$(".all_mandants").click(function() {
$y('.mandant.ui.fluid.multiple.dropdown').dropdown('set selected', <?= json_encode($allselect) ?>);
});
</script>
<?
}

View File

@@ -0,0 +1,209 @@
<?php
$formname = "form_certificate_card";
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
$inputname = "input_id";
$collection_setups = array();
$query = "SELECT * FROM main_collection_setup WHERE (main_language_id = " . (int)$GLOBALS["language"]['id'] . " OR all_languages = 1)";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while ($row = @mysqli_fetch_array($result, 1)) {
$collection_setups[$row['id']] = $row;
}
$collections = array();
$collection_ids = array();
if ($input_certificate['main_collection_setup_id'] != "") {
$query = "SELECT * FROM main_collection WHERE main_collection_setup_id = " . $input_certificate['main_collection_setup_id'];
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while ($row = @mysqli_fetch_array($result, 1)) {
$collections[] = $row['description'];
$collection_ids[] = $row['id'];
}
}
?>
<div id="overlaycrumb">
<?php if ($input_certificate["id"] == "") {
echo $translation->get("new_certificate");
} else {
echo $translation->get("edit_certificate");
}
?>
<div id="closeoverlay" onclick="disableOverlay();"></div>
</div>
<ul class="toolbar_menu">
<?= button("save", $translation->get("save"), $formname, "loadCard('save', true)"); ?>
<?= button("save", $translation->get("save_and_close"), $formname, "loadCard('save', true, '', true)"); ?>
<li>
<ul>
<?= button("delete", $translation->get("delete"), $formname, "loadCard('delete', true, '{$translation->get('delete_user_confirm')}', true)", "", FALSE); ?>
</ul>
</li>
</ul>
<?php
if ($messages !== null) {
if (count($messages)) {
echo '<div id="overlayMessages">' . join("\r\n", $messages) . '</div>';
}
}
?>
<form id="<?= $formname ?>" name="<?= $formname ?>" method="post">
<input name="input_id" type="hidden" value="<?= $input_certificate["id"] ?>">
<table class="cardform" border="0" cellspacing="0" cellpadding="0">
<tr class="certificate_table_row">
<td class="w-100">
<? input($translation->get("title"), "input_title", "text", $input_certificate["title"], 255) ?>
<? input($translation->get("description"), "input_description", "textarea", $input_certificate["description"]) ?>
</td>
<td class="w-100">
<div class="basic_settings">
<div class="toggle_headline opened">
<h3><?= $translation->get("basic_settings") ?></h3>
<div class="chevron"></div>
</div>
<div class="toggle_area">
<div class="recurring_group">
<div class="recurring_input">
<? input($translation->get("recurring"), "input_recurring", "checkbox", $input_certificate["recurring"]) ?>
</div>
<?php
$types = [
'3' => "3 Monate",
'6' => "6 Monate",
'12' => "12 Monate",
'24' => "24 Monate",
'36' => "36 Monate (Mindestlaufzeit)",
];
$preselect = 4;
if(isset($input_certificate['validity_period']) ){
$preselect = $input_certificate['validity_period'];
}
?>
<div class="recurring_select">
<? input_select($translation->get("validity_period"), "input_validity_period", $values = array_keys($types), $value_names = array_values($types), $preselect, FALSE, FALSE); ?>
</div>
</div>
<div class='basic_setting_inputs'>
<div class='collection_setup'>
<? create_collection_select($collection_setups, $translation->get("choose_collection_type"), "main_collection_setup_id", $input_certificate['main_collection_setup_id'], FALSE, TRUE, "loadPagesWithCollection(this.value);"); ?>
</div></div>
<div class="collection_pages">
<? create_page_with_collection_select($input_certificate['main_collection_setup_id'], $translation->get("page_with_collections"), "main_collection_page_list_id", $input_certificate['main_collection_page_list_id'], FALSE); ?>
</div></div>
<div class="collection_list_choose">
<? input_select($translation->get("choose_collection"), "main_collection_id", $values = $collection_ids, $value_names = $collections, $input_certificate["main_collection_id"], FALSE, FALSE); ?>
</div>
</div>
</div>
<?= create_mandant_select($input_certificate['id']); ?>
</td>
</tr>
</table>
<?php
if ($input_certificate['id'] != "") {
require_once 'certificate_contact_listform.inc.php';
}?>
</form>
<script>
$(document).ready(function(){
$('#input_recurring').change(function(){
if(this.checked){
$('.recurring_select').show();
}
else{
$('.recurring_select').hide();
}
});
$(".toggle_headline").click(function() {
$(this).next().slideToggle();
$(this).toggleClass("opened");
})
});
</script>
<script type="text/javascript">
function loadPagesWithCollection( collection_setup_id ) {
load_collections(collection_setup_id);
$('.collection_pages').html("");
if (collection_setup_id == "" || collection_setup_id == 0) {
return;
}
// ajax
var formData = new FormData(jQuery('#<?php echo $formname; ?>')[0]);
formData.append("collection_setup_id", collection_setup_id);
formData.append("page_link_id", '<?php echo $input_line["id"]; ?>');
$.ajax({
url : "?action=load_collection_pages",
type : 'POST',
data : formData,
cache : false,
processData: false, // Don't process the files
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
dataType : 'json',
success : function ( output, status, xhr ) {
if (xhr.getResponseHeader('REQUIRES_AUTH') == 1) {
window.location.replace("/mysyde/");
} else {
$('.collection_pages').html(output.page_with_collection_select);
}
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
console.log(msg);
}
});
}
function load_collections( collection_setup_id ) {
$('.collection_list_choose').html("");
var formData = new FormData(jQuery('#<?php echo $formname; ?>')[0]);
formData.append("main_collection_setup_id", collection_setup_id);
$.ajax({
url : "?action=load_collections",
type : 'POST',
data : formData,
cache : false,
processData: false, // Don't process the files
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
success : function ( output, status, xhr ) {
if (xhr.getResponseHeader('REQUIRES_AUTH') == 1) {
window.location.replace("/mysyde/");
} else {
$('.collection_list_choose').html(output);
}
},
error : function ( jqXHR, textStatus, errorThrown ) {
//console.log('ERRORS: ' + textStatus);
}
});
}
</script>

View File

@@ -0,0 +1,115 @@
<?php
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
$formname = "form_contact_list";
$inputname = "input_id";
$input_page_id = (isset($_REQUEST["input_page_id"]) ? $_REQUEST["input_page_id"] : "");
$input_component_id = (isset($_REQUEST["input_component_id"]) ? $_REQUEST["input_component_id"] : "");
function load_contact_list_old($input_id){
$query = "SELECT certificate_contact_link.id,
main_contact.name,
main_mandant.description,
certificate_contact_link.issue_date,
main_certificate.validity_period,
certificate_contact_link.active
FROM certificate_contact_link
LEFT JOIN
main_contact
ON main_contact.id = certificate_contact_link.main_contact_id
LEFT JOIN
main_mandant
ON main_mandant.id = main_contact.master_mandant_id
LEFT JOIN
main_certificate
ON main_certificate.id = certificate_contact_link.certificate_id
WHERE certificate_id = '".$input_id."'";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while($row = @mysqli_fetch_array($result)) {
$issue_date = new DateTime($row['issue_date']);
$validity_date = new DateTime($row['issue_date']);
$current_date = new DateTime();
$validity_date->modify('+'.$row['validity_period'].' months');
$class = "";
$expired = 0;
if($current_date >= $validity_date){
$class = "expired";
$expired = 1;
}
if($row['active'] == 0){
$class = "not_active";
}
?>
<tr class='<?= $class ?>'>
<td><?= $expired ?></td>
<td><?= $row['name'] ?></td>
<td><?= $row['description'] ?></td>
<td><?= $issue_date->format('d.m.Y') ?></td>
<td><?= $validity_date->format('d.m.Y') ?></td>
<td><?= $row['active'] ?></td>
</tr>
<?php
}
}
function load_contact_list($input_id){
$query = "SELECT * FROM main_contact WHERE active = 1 ORDER BY name ASC";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
while($row = @mysqli_fetch_array($result)) {
$query2 = "SELECT * FROM certificate_contact_submit LEFT JOIN main_certificate ON main_certificate.id = certificate_contact_submit.certificate_id WHERE certificate_id = '".$input_id."' AND main_contact_id = ".$row['id']." ORDER BY certificate_contact_submit.id DESC LIMIT 1";
$result2 = @mysqli_query($GLOBALS['mysql_con'], $query2);
$row2 = @mysqli_fetch_array($result2);
$query_mandant = "SELECT * FROM main_mandant WHERE id = ".$row['master_mandant_id'];
$result_mandant = @mysqli_query($GLOBALS['mysql_con'], $query_mandant);
$row_mandant = @mysqli_fetch_array($result_mandant);
$query_active = "SELECT * FROM certificate_contact WHERE certificate_id= '".$input_id."' AND main_contact_id = ".$row['id'];
$result_active = @mysqli_query($GLOBALS['mysql_con'], $query_active);
$row_active = @mysqli_fetch_array($result_active);
$datetime = "";
if($row2['issue_date']){
$datetime = new DateTime($row2['issue_date']);
$datetime = $datetime->format('d.m.Y');
}
$issue_date = new DateTime($row2['issue_date']);
$validity_date = new DateTime($row2['issue_date']);
$validity_date->modify('+'.$row2['validity_period'].' months');
$done = "";
$active = "";
$class = "";
if(isset($row_active) && $row_active['active'] == 1){
$active = "checked='checked'";
}
if($row2['correct'] == 1){
$done = "checked='checked'";
$class = "checked";
}
?>
<tr class='<?= $class ?>'>
<input type='hidden' name='contact_<?= $row['id']?>'>
<td><input type='checkbox' class='checkbox' name='done_<?= $row['id']?>' <?= $done?>></td>
<td><?= $row['name'] ?></td>
<td><?= $row_mandant['description'] ?></td>
<td><?= $issue_date->format('d.m.Y')?></td>
<td><?= $validity_date->format('d.m.Y')?></td>
<td><input type='checkbox' class='checkbox' name='active_<?= $row['id']?>' <?= $active?>></td>
</tr>
<?php
}
}
?>
<h2>Benutzerliste</h2>
<table class='learning_unit_user_list'>
<tr>
<th>Erledigt</th>
<th>Benutzer</th>
<th>Mandant</th>
<th>Ausstellungsdatum</th>
<th>Ablaufdatum</th>
<th>Aktiv</th>
</tr>
<?= load_contact_list($input_id);?>
</table>

View File

@@ -0,0 +1,28 @@
<?php
$translation = \DynCom\mysyde\common\classes\Registry::get("translation");
$formname = "form_certificate_list";
$inputname = "input_id";
?>
<ul class="toolbar_menu">
<?= button("new", $translation->get("new"), $formname, "loadCard('new', true)"); ?>
</ul>
<div id="mainContent">
<?php echo current_website_language($site, $language); ?>
<h1><?php echo get_translation('top_certificate'); ?></h1>
<form id="<?= $formname ?>" name="<?= $formname ?>" method="post">
<input type="hidden" class="selected_linklist_row" name="input_id" value="" />
<div class="requestLoader"></div>
<?
$query = "SELECT id, title AS '" . $translation->get("name") . "', description AS '" . $translation->get("description") . "' FROM main_certificate";
$format = array("option", "text", "text");
if ($result = mysqli_query($GLOBALS['mysql_con'], $query)) {
linklist($result, "form_certificate_list", $format);
}
?>
</form>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long