Files
awo-hamburg-intranet/module/community_board/show_community_board_cardform.inc.php

174 lines
7.8 KiB
PHP
Raw Normal View History

2026-02-17 14:56:23 +01:00
<div style='display: none' class='new_post'>
<div class="entry-wrapper">
<div class="data-wrapper">
<form method='post' autocomplete='off' enctype="multipart/form-data">
<div class="post_c_header">
<h1>Beitrag erstellen</h1>
<div class="close_entry_button"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-square" viewBox="0 0 16 16">
<path d="M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z" />
<path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z" />
</svg>schließen ohne zu speichern
</div>
</div>
<?php select_category();?>
<textarea id='title' type='text' name='title' required
placeholder='Titel & Teaser' maxlength='255'></textarea>
<div class="form-floating" id='image_1_wrapper1'>
<input id='image_1' type='file' name='image_1' accept=".png,.jpg,.jpeg,.gif,.mp4">
<label for="image_1">0 von 5 max. Bilder</label>
</div>
<div class="form-floating" id='image_2_wrapper2' style="display: none">
<input id='image_2' type='file' name='image_2' accept=".png,.jpg,.jpeg,.gif,.mp4"
>
<label for="image_2">2 von 5 max. Bilder</label>
</div>
<div class="form-floating" id='image_3_wrapper3' style="display: none">
<input id='image_3' type='file' name='image_3' accept=".png,.jpg,.jpeg,.gif,.mp4"
>
<label for="image_3">3 von 5 max. Bilder</label>
</div>
<div class="form-floating" id='image_4_wrapper4' style="display: none">
<input id='image_4' type='file' name='image_4' accept=".png,.jpg,.jpeg,.gif,.mp4"
>
<label for="image_4">4 von 5 max. Bilder</label>
</div>
<div class="form-floating" id='image_5_wrapper5' style="display: none">
<input id='image_5' type='file' name='image_5' accept=".png,.jpg,.jpeg,.gif,.mp4"
>
<label for="image_5">5 von 5 max. Bilder</label>
</div>
<textarea id='description' name="description" rows="4" cols="50"
placeholder='Beschreibungstext (maximal 750 Zeichen)' maxlength='750'></textarea>
<input id='absenden' type='submit' name='submit_post' value='Beitrag veröffentlichen'>
</form>
</div>
</div>
</div>
<script>
// Funktion, die aufgerufen wird, wenn ein Bild hochgeladen wird
function handleImageUpload(inputElement, nextWrapperId) {
const fileInput = inputElement;
const nextWrapper = document.getElementById(nextWrapperId);
fileInput.addEventListener('change', function() {
if (fileInput.files.length > 0) {
nextWrapper.style.display = 'flex';
} else {
nextWrapper.style.display = 'none';
}
});
}
// Event-Listener für die Bild-Eingabefelder
document.addEventListener('DOMContentLoaded', function() {
const image1Input = document.getElementById('image_1');
handleImageUpload(image1Input, 'image_2_wrapper2');
const image2Input = document.getElementById('image_2');
handleImageUpload(image2Input, 'image_3_wrapper3');
const image3Input = document.getElementById('image_3');
handleImageUpload(image3Input, 'image_4_wrapper4');
const image4Input = document.getElementById('image_4');
handleImageUpload(image4Input, 'image_5_wrapper5');
});
</script>
<?php
if(isset($_POST['submit_post'])){
if($_POST['title'] != ""){
$slideshow_header_id = createSlideshowHeader();
$i = 1;
while ($i <= 5) {
if(!$_FILES['image_'.$i]['name'] == "") {
uploadImage('image_'.$i, $slideshow_header_id);
}
$i++;
}
$current_date = new DateTime();
$content = str_replace(array('\r\n', '\n\r', '\n', '\r'), '<br>', $_POST['description']);
$insertquery = "INSERT INTO community_board_post
(creation_date, creation_contact, title, content, gallery_id)
VALUES (
'" . $current_date->format('Y-m-d H:i:s') . "',
'" . $GLOBALS['main_contact']['id'] . "',
'" . $_POST['title'] . "',
'" . $content . "',
'" . $slideshow_header_id ."'
)";
$result = @mysqli_query($GLOBALS['mysql_con'], $insertquery);
$post_id = mysqli_insert_id($GLOBALS['mysql_con']);
$insert2 = "INSERT INTO community_board_post_category_link
(community_board_post_id, community_board_category_id)
VALUES (
'" . $post_id . "',
'" . $_POST['category'] ."'
)";
$result2 = @mysqli_query($GLOBALS['mysql_con'], $insert2);
$host = $_SERVER['HTTP_HOST'];
$uri = $_SERVER["REDIRECT_URL"];
echo "<script type='text/javascript'>window.location.href = 'https://".$host.$uri."';</script>";
}
}
function select_category(){
$query = "SELECT * FROM community_board_category ORDER BY sorting";
$result = @mysqli_query($GLOBALS['mysql_con'], $query);
echo "<select id='category' name='category'>";
echo "<option value='0'>Kategorie auswählen</option>";
while($row = @mysqli_fetch_array($result)){
echo "<option value='".$row['id']."'>".$row['description']."</option>";
}
echo "</select>";
}
function uploadImage($name, $header_id){
$upload_folder = '/userdata/intranet/community_board/';
$filename = pathinfo($_FILES[$name]['name'], PATHINFO_FILENAME);
$extension = strtolower(pathinfo($_FILES[$name]['name'], PATHINFO_EXTENSION));
$allowed_extensions = array('png', 'jpg', 'jpeg', 'gif', 'mp4');
if(!in_array($extension, $allowed_extensions)) {
die();
}
$saveFilename = $header_id . "_" . cleanFilename($_FILES[$name]['name']);
define("PATH_RESIZE", "../../userdata/intranet/community_board/");
define("PATH_ORIGINAL_FRONTEND", "/userdata/intranet/community_board/");
move_uploaded_file($_FILES[$name]['tmp_name'], PATH_RESIZE . $saveFilename);
$description = 'image';
$preview = "<img src='".PATH_ORIGINAL_FRONTEND.$saveFilename."'>";
if($extension == 'mp4'){
$description = 'video';
$preview = "<video src='".PATH_ORIGINAL_FRONTEND.$saveFilename."'>";
}
createSlideshowLine($header_id, $preview, $saveFilename, $description);
}
function createSlideshowHeader(){
$insert_slideshow_header = $GLOBALS['pdo_conn']->prepare("INSERT INTO slideshow_header VALUES (NULL, ".$GLOBALS['language']['id'].", '', 1000, 500, 'fade', 'yes', 4, 1, 'fixed', 'bottom', '', '', 1, 0)");
$insert_slideshow_header->execute();
$id = $GLOBALS['pdo_conn']->lastInsertId();
return $id;
}
function createSlideshowLine($header_id, $preview, $filename, $description){
$insert_slideshow_line = $GLOBALS['pdo_conn']->prepare("INSERT INTO slideshow_line VALUES(NULL, :header_id, :preview, :filename, :description, '', '', '', '', '', 0, 0, 0)");
$insert_slideshow_line->execute(array(':header_id' => $header_id, ':preview' => $preview, ':filename' => $filename, ':description' => $description));
}