Archived
1
0

Initial commit as of 2018-10-16

This commit is contained in:
Marcel
2018-10-16 18:28:42 +02:00
commit 29d7c2ffdc
3601 changed files with 358427 additions and 0 deletions

View File

@@ -0,0 +1,247 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-8 col-sm-12 col-xs-12">
<div class="alert-container">
</div>
<div class="x_panel">
<div class="x_title">
<h2>Blog-Post bearbeiten</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<style>
.entry-meta span {
width: 100%;
border-radius: 2px;
padding: 0 10px;
transition: box-shadow .2s;
}
.entry-meta span[contenteditable=true]:focus {
-webkit-box-shadow: 0 0 14px 0 rgba(34, 114, 255, 0.75);
-moz-box-shadow: 0 0 14px 0 rgba(34, 114, 255, 0.75);
box-shadow: 0 0 14px 0 rgba(34, 114, 255, 0.75);
}
.entry-meta span:empty::before {
color: rgba(0, 0, 0, .6);
}
.blog .blog-item .entry-meta > span, .blog .blog-item .entry-meta > div {
width: auto;
max-width: 50% !important;
}
#postPublishDate {
display: inline;
width: auto;
height: 28px;
}
#postTitle:empty::before {
content: "Bitte gib einen Titel ein...";
}
#postDescription:empty::before {
content: "Bitte gib eine Beschreibung ein...";
}
.img-container {
height: 250px;
width: 100%;
background: #2272ff center;
background-size: cover;
display: flex;
align-items: center;
justify-content: center;
border-top-right-radius: 5px;
border-top-left-radius: 5px;
}
.img-container .upload-btn {
background-color: rgba(255, 255, 255, .8);
padding: 13px 16px;
width: 50px;
height: 50px;
transition: all .2s;
font-size: 18px;
}
.img-container .upload-btn:hover, .img-container .upload-btn:focus {
color: #222;
background-color: #fff;
}
.blog-content {
padding: 10px !important;
}
.upload-btn .upload-image {
position: fixed;
top: -1000px;
}
.tags .bootstrap-tagsinput {
width: 100%;
max-width: 100%;
}
.tags .tag {
display: inline-block;
width: unset;
}
.tags .tag::after {
display: none;
}
.ql-snow .ql-color-picker, .ql-snow .ql-icon-picker {
width: 28px;
}
.ql-snow .ql-color-picker .ql-picker-label svg, .ql-snow .ql-icon-picker .ql-picker-label svg {
width: 18px;
}
.ql-editor {
max-height: 80vh;
min-height: 10vh;
font-size: 18px;
font-family: Roboto, Helvetica, Arial, sans-serif;
}
</style>
<input type="hidden" value="<?= $postID ?>" id="postID">
<input type="hidden" value="<?= isset($contents[$postLanguage]) ? $contents[$postLanguage] : $contents['de'] ?>" id="contentID">
<input type="hidden" value="<?= $translations[$postLanguage] ?>" id="translationID">
<input type="hidden" value="<?= $postLanguage ?>" id="postLanguage">
<input type="hidden" value="" id="uploadedImage">
<div class="col-sm-12">
<div class="blog">
<div class="blog-item">
<div class="img-container">
<form id="image-upload" action="" method="post" enctype="multipart/form-data">
<label class="btn upload-btn">
<input type="file" name="image" class="upload-image"
accept="image/png,image/x-png,image/jpeg" required>
<i class="fa fa-upload"></i>
</label>
</form>
</div>
<div class="blog-content">
<div class="entry-meta">
<span>
<a href="<?= base_url('user/' . $_SESSION['user']['username']) ?>"
style="cursor:pointer">
<i class="fa fa-user"></i> <?= $_SESSION['user']['displayname'] ?>
</a>
</span>
<span style="cursor: pointer;">
<i class="fa fa-calendar"></i>
<input type="text" id="postPublishDate" class="form-control"
value="<?= date("d.m.Y H:i") ?>">
</span>
<div>
<i class="fa fa-folder-open"></i>
<div class="category-select" style="display: inline-block;">
<select class="form-control" id="postCategory">
<option value="new-category">-- Neue Kategorie --</option>
<?php foreach ($categories as $category) { ?>
<option value="<?= $category['ID'] ?>">
<?= $category['display_name'] ?>
</option>
<?php } ?>
</select>
</div>
</div>
</div>
<h1 class="post-title"><span id="postTitle" class="noEnter"></span></h1>
<h2 class="post-subtitle"><span id="postDescription"></span></h2>
<div id="postContent"></div>
</div>
<!--/.blog-item-->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Zusatzinformationen</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="row">
<label for="postTags"><i class="fa fa-tags"></i> Tags</label>
<div class="tags">
<input type="text" data-role="tagsinput" id="postTags">
</div>
</div>
<div class="row">
<label for="url-input">URL</label>
<div class="input-group">
<input class="form-control" name="url-input" aria-describedby="url-prefix" id="postUrl">
</div>
</div>
<div class="row form-group" id="new-category">
<label for="category-dname">
Neue Kategorie Displayname
<input type="text" id="cat-dname" class="form-control"
name="category-dname"
placeholder="Anzeigename">
</label>
<label for="category-name">
Neue Kategorie interner Name
<input type="text" id="cat-name" class="form-control"
name="category-name"
placeholder="Interner Name">
</label>
</div>
<div class="row">
<button class="btn btn-default btn-sm" id="blogPostSave">
Speichern
</button>
<button class="btn btn-primary btn-sm" id="blogSubmit" data-loading-text="Lädt...">
Veröffentlichen
</button>
</div>
</div>
</div>
<div class="x_panel">
<div class="x_title">
<h2>Übersetzungen</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<ul class="nav nav-pills nav-stacked" id="switchLanguages">
<li role="presentation" class="<?= $postLanguage == 'de' ? 'active' : '' ?>" data-lang="de" data-translationID="<?= $translations['de'] ?>" data-contentID="<?= $contents['de'] ?>">
<span class="flag-icon flag-icon-de"></span> Deutsch
</li>
<li role="presentation" class="<?= $postLanguage == 'en' ? 'active' : '' ?>" data-lang="en" data-translationID="<?= isset($translations['en']) ? $translations['en'] : -1 ?>" data-contentID="<?= isset($contents['en']) ? $contents['en'] : -1 ?>">
<span class="flag-icon flag-icon-us"></span> Englisch
</li>
<li role="presentation" class="<?= $postLanguage == 'fr' ? 'active' : '' ?>" data-lang="fr" data-translationID="<?= isset($translations['fr']) ? $translations['fr'] : -1 ?>" data-contentID="<?= isset($contents['fr']) ? $contents['fr'] : -1 ?>">
<span class="flag-icon flag-icon-fr"></span> Französisch
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Theme included stylesheets -->
<link href="//cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<link href="//cdn.quilljs.com/1.3.6/quill.bubble.css" rel="stylesheet">

View File

@@ -0,0 +1,59 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Blog-Post History</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="row">
<?php foreach ($content as $language => $items): ?>
<div class="col-sm-3">
<h3><?= $language ?></h3>
<ul class="list-unstyled timeline">
<?php foreach ($items as $item): ?>
<li>
<div class="block">
<div class="tags">
<?php if ($item['isActive'] == 1): ?>
<a class="tag">
<span>Aktiv</span>
</a>
<?php endif; ?>
<?php if ($item['isNativePost'] == 1): ?>
<a class="tag">
<span>Original-Version</span>
</a>
<?php endif; ?>
</div>
<div class="block_content">
<h2 class="title">
<?= $item['versionMessage'] ?>
</h2>
<div class="byline">
<span><?= date("d.m.Y \u\m H:i", strtotime($item['contentDate'])) ?> Uhr</span>
von
<?php $author = $this->BlogModel->getAuthorData($item['contentAuthorID']) ?>
<a href="/user/<?= $author['username'] ?>"><?= $author['displayname'] ?></a>
</div>
<p class="excerpt"><?= $item['content'] ?>
</p>
</div>
</div>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,144 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2><?= isset($trashbin) && $trashbin ? 'Gelöschte ' : '' ?>Blog-Posts</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
<?=
isset($trashbin) && $trashbin ? 'Hier sind alle bisher in den Papierkorb verschobenen Blog-Posts zu finden, zu verwalten, zu wiederherstellen und zum endgültigen Löschen!' : 'Hier sind alle bisher verfassten Blog-Posts zu finden und zu verwalten.'
?>
</p>
<div style="overflow-x: auto">
<table id="datatable-fixed-header" class="table table-striped table-bordered" data-order='[[ 0, "desc" ]]' data-page-length="25">
<thead>
<tr>
<th>ID</th>
<th>Titel</th>
<th>Beschreibung</th>
<th>Status</th>
<th>Veröffentlichung</th>
<th>Letzte Änderung</th>
<th>Author</th>
<th>Kategorie</th>
<th>Aufrufe</th>
<th>Likes</th>
<th>Kommentare</th>
<th>Aktionen</th>
</tr>
</thead>
<tbody>
<?php foreach ($posts as $post) { ?>
<tr id="post-<?= $post['postID'] ?>">
<td>
<?= $post['postID'] ?>
</td>
<td>
<a href="<?= base_url('blog/post/' . $post['postUrl']) ?>" target="_blank"><?= $post['postTitle'] ?></a>
</td>
<td>
<?= $post['postDesc'] ?>
</td>
<td>
<?= $post['postStateDisplay'] ?>
</td>
<td>
<?= date('d.m.Y H:i', strtotime($post['postPublishDate'])) ?>
</td>
<td>
<?= date('d.m.Y H:i', strtotime($post['postLastEdit'])) ?>
</td>
<td>
<a href="<?= base_url('user/' . $post['postAuthorUsername']) ?>" target="_blank"><?= $post['postAuthorDisplayname'] ?></a>
</td>
<td>
<a href="<?= base_url('blog/category/' . $post['categoryName']) ?>" target="_blank"><?= $post['categoryDisplayName'] ?></a>
</td>
<td>
<?= $post['postViews'] ?>
<i class="fa fa-eye"></i>
</td>
<td>
<?= $post['likeCount'] ?>
<i class="fa fa-heart"
</td>
<td>
<?= $post['commentCount'] ?>
<i class="fa fa-comment"></i>
</td>
<?php if (isset($trashbin) && $trashbin): ?>
<td>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Bearbeiten" href="<?= base_url('admin/blog/edit/' . $post['postID']) ?>" target="_blank" class="btn btn-xs btn-default">
<i class="fa fa-edit"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="History" href="<?= base_url('admin/blog/history/' . $post['postID']) ?>" target="_blank" class="btn btn-xs btn-default">
<i class="fa fa-history"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Wiederherstellen" onclick="restorePost(<?= $post['postID'] ?>)" class="btn btn-xs btn-green">
<i class="fa fa-undo"></i>
</a>
<a href="" data-toggle="tooltip" data-placement="top" title="Endgültig löschen">
<button type="button" class="btn btn-xs btn-red" data-toggle="modal" data-target="#deleteModal" data-type="Blog-Post" data-title="<?= $post['postTitle'] ?>" data-id="<?= $post['postID'] ?>">
<i class="fa fa-trash"></i>
</button>
</a>
</td>
<?php else: ?>
<td>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Bearbeiten" href="<?= base_url('admin/blog/edit/' . $post['postID'] . '/') ?>" target="_blank" class="btn btn-xs btn-default">
<i class="fa fa-edit"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="History" href="<?= base_url('admin/blog/history/' . $post['postID']) ?>" target="_blank" class="btn btn-xs btn-default">
<i class="fa fa-history"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Löschen" onclick="deletePost(<?= $post['postID'] ?>)" class="btn btn-xs btn-red">
<i class="fa fa-trash"></i>
</a>
</td>
<?php endif; ?>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<?php if (isset($trashbin) && $trashbin): ?>
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog"
aria-labelledby="deleteModalTitle">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-label="Schließen">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="deleteModalTitle">Bist du dir WIRKLICH sicher?</h4>
</div>
<div class="modal-body">
<h3>
<i class="fa fa-spinner fa-spin"></i>
</h3>
</div>
<div class="modal-footer">
<button type="reset" class="btn btn-default" data-dismiss="modal">Nicht
löschen!
</button>
<button type="button" class="btn btn-red">Ja, löschen!</button>
</div>
</div>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,59 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Blog-Tags</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Hier sind alle existierenden Blog-Tags aufgelistet.
</p>
<div style="overflow-x: auto">
<table id="datatable-fixed-header" class="table table-striped table-bordered" data-order='[[ 0, "desc" ]]' data-page-length="25">
<thead>
<tr>
<th>ID</th>
<th>Tag</th>
<th>Häufigkeit</th>
<th>Gesamte Aufrufe</th>
<th>Aktionen</th>
</tr>
</thead>
<tbody>
<?php foreach ($tags as $tag): ?>
<tr>
<td>
<?= $tag['ID'] ?>
</td>
<td>
<a href="<?= base_url('blog/tag/' . $tag['name']) ?>" target="_blank">
<?= $tag['display_name'] ?>
</a>
</td>
<td>
<?= $tag['countUsed'] ?>
</td>
<td>
<i class="far fa-eye"></i>
<?= $tag['totalViews'] ?>
</td>
<td>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,100 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!-- page content -->
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12">
<div class="x_panel">
<div class="x_title">
<h2>Kalender</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div id='calendar'></div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- /page content -->
<!-- calendar modal -->
<div id="CalenderModalNew" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">New Calendar Entry</h4>
</div>
<div class="modal-body">
<div id="testmodal" style="padding: 5px 20px;">
<form id="antoform" class="form-horizontal calender" role="form">
<div class="form-group">
<label class="col-sm-3 control-label">Title</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="title" name="title">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Description</label>
<div class="col-sm-9">
<textarea class="form-control" style="height:55px;" id="descr" name="descr"></textarea>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default antoclose" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary antosubmit">Save changes</button>
</div>
</div>
</div>
</div>
<div id="CalenderModalEdit" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel2">Edit Calendar Entry</h4>
</div>
<div class="modal-body">
<div id="testmodal2" style="padding: 5px 20px;">
<form id="antoform2" class="form-horizontal calender" role="form">
<div class="form-group">
<label class="col-sm-3 control-label">Title</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="title2" name="title2">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Description</label>
<div class="col-sm-9">
<textarea class="form-control" style="height:55px;" id="descr2" name="descr"></textarea>
</div>
</div>
</form>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default antoclose2" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary antosubmit2">Save changes</button>
</div>
</div>
</div>
</div>
<div id="fc_create" data-toggle="modal" data-target="#CalenderModalNew"></div>
<div id="fc_edit" data-toggle="modal" data-target="#CalenderModalEdit"></div>
<!-- /calendar modal -->

View File

@@ -0,0 +1,20 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Dashboard</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<iframe src="/piwik/index.php?module=CoreHome&action=index&idSite=1&period=day&date=today"
style="height:100vh;width:100%" frameborder="0" async></iframe>
</div>
</div>
</div>
</div>
</div>
<!-- /page content -->

View File

@@ -0,0 +1,61 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Download-Eintrag bearbeiten</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<form class="form-horizontal form-label-left input_mask" method="post"
enctype="multipart/form-data">
<div class="row">
<!-- Title input -->
<div class="form-group col-xs-12 col-sm-12 col-md-3 col-lg-3">
<label for="title">Titel</label>
<input type="text" class="form-control" name="title" placeholder="Titel" required>
</div>
<!-- Date input -->
<div class="form-group col-xs-12 col-sm-12 col-md-3 col-lg-3">
<label for="datetime">Datum</label>
<input type='text' class="form-control" name="datetime" id="datetimepicker"
required/>
</div>
<!-- Image input -->
<div class="form-group col-xs-12 col-sm-12 col-md-3 col-lg-3">
<label for="image">Bild</label>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="downloadImage" id="downloadImage" required/>
</div>
<!-- URL input -->
<div class="form-group col-xs-12 col-sm-12 col-md-3 col-lg-3">
<label for="title">URL</label>
<input type="url" class="form-control" name="url" placeholder="URL" required>
</div>
</div>
<div class="row">
<!-- Description input -->
<div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6">
<label for="description">Beschreibung (Deutsch)</label>
<textarea class="tinymce-textarea form-control" name="description"></textarea>
</div>
<!-- Description English input -->
<div class="form-group col-xs-12 col-sm-12 col-md-6 col-lg-6">
<label for="descriptionEnglish">Beschreibung (Englisch)</label>
<textarea class="tinymce-textarea form-control"
name="descriptionEnglish"></textarea>
</div>
</div>
<input type="submit" class="btn btn-green col-md-12 col-sm-12 col-xs-12"
value="Absenden">
</form>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,49 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Downloads</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Hier sind alle derzeitigen Downloads zu finden!
</p>
<table id="datatable-fixed-header" class="table table-striped table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Titel</th>
<th>Beschreibung</th>
<th>Bild</th>
<th>Datum</th>
<th>URL</th>
<th>Tools</th>
</tr>
</thead>
<tbody>
<?php foreach ($downloads as $dl) { ?>
<tr>
<td><?= $dl['ID'] ?></td>
<td><?= $dl['title'] ?></td>
<td><?= $dl['description'] ?></td>
<td><img src="<?= $dl['image'] ?>" class="img-fluid"></td>
<td><?= date('d.m.Y', strtotime($dl['date'])) ?></td>
<td><a href="<?= $dl['url'] ?>" target="_blank"><?= $dl['url'] ?></a></td>
<td></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,126 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
?>
<!-- page content -->
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Feedbacks</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Hier sind alle bisher erhaltenden Feedback-Meldungen der Nutzer aufgelistet.
</p>
<div style="overflow-x: auto">
<table id="datatable-fixed-header" class="table table-striped table-bordered"
data-page-length="25" data-order='[[ 7, "asc" ], [1, "desc"]]'>
<thead>
<tr>
<th>ID</th>
<th>Datum</th>
<th>Seite</th>
<th>Nachricht</th>
<th>Anonym?</th>
<th>Nutzer</th>
<th>Email-Adresse</th>
<th>Status</th>
<th>Status-Nachricht</th>
<th>Supporter</th>
<th>Tools</th>
</tr>
</thead>
<tbody>
<?php foreach ($feedback as $entry) { ?>
<tr id="entry-<?= $entry['ID'] ?>">
<td><?= $entry['ID'] ?></td>
<?php $datetime = strtotime($entry['datetime']) ?>
<td><?= date("d.m.Y", $datetime) . " - " . DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$datetime"), $_SESSION['site_lang']) ?></td>
<td>
<a href="<?= base_url($entry['page']) ?>"
target="_blank"><?= $entry['page'] ?></a>
</td>
<td><?= $entry['message'] ?></td>
<td><?= $entry['anonymous'] ? '<i class="fa fa-check-circle"></i> Ja' : '<i class="fa fa-times-circle"></i> Nein' ?></td>
<td>
<a href="<?= base_url('user/' . $entry['username']) ?>">
<?= $entry['userDisplayname'] ?>
</a>
</td>
<td><?= $entry['email'] ?></td>
<td data-order="<?= $entry['feedbackState'] ?>"><?= $entry['feedbackStateDisplayname'] ?></td>
<td><?= $entry['feedbackStatusMessage'] ?></td>
<td>
<a href="<?= base_url('user/' . $entry['supporterUsername']) ?>"><?= $entry['supporterDisplayname'] ?></a>
</td>
<td>
<?php if ($entry['supporterID'] != $_SESSION['user']['ID']): ?>
<a href="<?= base_url('admin/feedback/takeover/' . $entry['ID'] . '/' . $entry['feedbackState']) ?>" data-toggle="tooltip" data-placement="top" title="Support übernehmen">
<button type="button" class="btn btn-xs btn-default">
<i class="fa fa-bullhorn"></i>
</button>
</a>
<?php else: ?>
<a href="#" data-toggle="tooltip" data-placement="top" title="Status ändern">
<button type="button" class="btn btn-xs btn-primary" data-toggle="modal" data-target="#statusModal" data-id="<?= $entry['ID'] ?>" data-state="<?= $entry['feedbackStateName'] ?>">
<i class="fa fa-gavel"></i>
</button>
</a>
<?php if ($entry['feedbackState'] >= 10): ?>
<a href="#" onclick="archiveFeedback(<?= $entry['ID'] ?>)" class="btn btn-xs btn-red" data-toggle="tooltip" data-placement="top" title="Archivieren">
<i class="fa fa-trash"></i>
</a>
<?php endif; ?>
<?php endif; ?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="statusModal" role="dialog" tabindex="-1" aria-labelledby="statusModalTitle">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="statusModalTitle">Status ändern</h4>
</div>
<form method="post">
<div class="modal-body">
<div class="form-group">
<label for="feedbackState">Neuer Status
<select name="feedbackState" class="form-control" id="feedbackState">
<option value="new" disabled>ungelesen</option>
<option value="read">gelesen</option>
<option value="question">Rückfrage</option>
<option value="fixing">in Bearbeitung</option>
<option value="paused">pausiert</option>
<option value="closed">geschlossen</option>
<option value="fixed">geschlossen & gelöst</option>
</select>
</label>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" type="button" data-dismiss="modal">Schließen</button>
<button class="btn btn-primary" type="submit">Status ändern</button>
</div>
</form>
</div>
</div>
</div>

View File

@@ -0,0 +1,229 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Dateien</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Hier sind alle bisher hochgeladenen Dateien zu finden!
</p>
<div style="overflow-x: auto">
<table id="datatable-fixed-header" class="table table-striped table-bordered" data-order='[[ 0, "desc" ]]'>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Originaler Name</th>
<th>Typ</th>
<th>Größe</th>
<th>Pfad</th>
<th>Tools</th>
</tr>
</thead>
<tbody>
<?php foreach ($files as $file) { ?>
<tr id="file-<?= $file['ID'] ?>">
<td><?= $file['ID'] ?></td>
<td>
<a href="<?= base_url('/f/' . $file['name']) ?>"
target="_blank"><?= $file['name'] ?></a>
</td>
<td><?= $file['original_name'] ?></td>
<td><?= $file['type'] ?></td>
<td><?= $file['size'] ?></td>
<td><?= $file['path'] ?></td>
<td>
<a href="<?= base_url('/f/' . $file['name']) ?>" target="_blank" class="btn btn-xs btn-default">
<i class="fa fa-eye"></i>
</a>
<button type="button" class="btn btn-xs btn-red" data-toggle="modal" data-target="#deleteModal" data-type="Datei" data-title="<?= !empty($file['original_name']) ? $file['original_name'] : $file['name'] ?>" data-id="<?= $file['ID'] ?>">
<i class="fa fa-trash"></i>
</button>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog"
aria-labelledby="deleteModalTitle">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="deleteModalTitle">Bist du dir WIRKLICH sicher?</h4>
</div>
<div class="modal-body">
<h3>
<i class="fa fa-spinner fa-spin"></i>
</h3>
</div>
<div class="modal-footer">
<button type="reset" class="btn btn-default" data-dismiss="modal">Nicht löschen!</button>
<button type="button" class="btn btn-red">Ja, löschen!</button>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Datei-Upload</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Das ist zum Hochladen von allen wichtigen Dateien für den Server!
</p>
<form id="fileupload" method="POST" action="<?= base_url('admin/files/upload') ?>" enctype="multipart/form-data">
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
<div class="row fileupload-buttonbar">
<div class="col-lg-7">
<!-- The fileinput-button span is used to style the file input field as button -->
<span class="btn btn-green fileinput-button">
<i class="glyphicon glyphicon-plus"></i>
<span>Add files...</span>
<input type="file" name="files[]" multiple>
</span>
<button type="submit" class="btn btn-primary start">
<i class="glyphicon glyphicon-upload"></i>
<span>Start upload</span>
</button>
<button type="reset" class="btn btn-orange cancel">
<i class="glyphicon glyphicon-ban-circle"></i>
<span>Cancel upload</span>
</button>
<button type="button" class="btn btn-red delete">
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
<input type="checkbox" class="toggle">
<!-- The global file processing state -->
<span class="fileupload-process"></span>
</div>
<!-- The global progress state -->
<div class="col-lg-5 fileupload-progress fade">
<!-- The global progress bar -->
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0"
aria-valuemax="100">
<div class="progress-bar progress-bar-success" style="width:0%;"></div>
</div>
<!-- The extended global progress state -->
<div class="progress-extended">&nbsp;</div>
</div>
</div>
<!-- The table listing the files available for upload/download -->
<table role="presentation" class="table table-striped">
<tbody class="files"></tbody>
</table>
</form>
<form class="form-horizontal form-label-left input_mask" method="post"
enctype="multipart/form-data">
File input
<div class="form-group col-xs-12 col-sm-12 col-md-3 col-lg-3">
<label for="image">Bild</label>
<input type="file" name="fileUpload" id="fileUpload" required />
</div>
<input type="submit" class="btn btn-green col-md-12 col-sm-12 col-xs-12"
value="Hochladen">
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload fade">
<td>
<span class="preview"></span>
</td>
<td>
<p class="name">{%=file.name%}</p>
<strong class="error text-danger"></strong>
</td>
<td>
<p class="size">Processing...</p>
<div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
</td>
<td>
{% if (!i && !o.options.autoUpload) { %}
<button class="btn btn-primary start" disabled>
<i class="glyphicon glyphicon-upload"></i>
<span>Start</span>
</button>
{% } %}
{% if (!i) { %}
<button class="btn btn-warning cancel">
<i class="glyphicon glyphicon-ban-circle"></i>
<span>Cancel</span>
</button>
{% } %}
</td>
</tr>
{% } %}
</script>
<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
<td>
<span class="preview">
{% if (file.thumbnailUrl) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
{% } %}
</span>
</td>
<td>
<p class="name">
{% if (file.url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
{% } else { %}
<span>{%=file.name%}</span>
{% } %}
</p>
{% if (file.error) { %}
<div><span class="label label-danger">Error</span> {%=file.error%}</div>
{% } %}
</td>
<td>
<span class="size">{%=o.formatFileSize(file.size)%}</span>
</td>
<td>
{% if (file.deleteUrl) { %}
<button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
<input type="checkbox" name="delete" value="1" class="toggle">
{% } else { %}
<button class="btn btn-warning cancel">
<i class="glyphicon glyphicon-ban-circle"></i>
<span>Cancel</span>
</button>
{% } %}
</td>
</tr>
{% } %}
</script>

View File

@@ -0,0 +1,22 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!-- footer content -->
<footer>
<div class="pull-right">
KingOfDog Admin Panel | &copy; 2016 KingOfDog
</div>
<div class="clearfix"></div>
</footer>
<!-- /footer content -->
</div>
</div>
<?php
$scriptName = base_url("combine.php?type=javascript&files=lib/jquery.min.js,lib/bootstrap.min.js,lib/typeahead.bundle.min.js,lib/jquery.dataTables.min.js,lib/dataTables.bootstrap.min.js,lib/dataTables.fixedHeader.min.js,lib/jquery.tagsinput.min.js,lib/moment.min.js,lib/bootstrap-datetimepicker.min.js,lib/tinymce%2Ftinymce.min.js,lib/bootstrap-tagsinput.min.js,lib/fullcalendar%2Ffullcalendar.min.js,lib/fullcalendar%2Flang%2Fde.js,lib/jquery.mCustomScrollbar.min.js,custom.js" . isset($additionalScripts) ? $additionalScripts : '');
?>
<script src="<?= $scriptName ?>"></script>
</body>
</html>

View File

@@ -0,0 +1,45 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!-- footer content -->
<footer>
<div class="pull-right">
KingOfDog Admin Panel | &copy; <?= date('Y') ?> KingOfDog
</div>
<div class="clearfix"></div>
</footer>
<!-- /footer content -->
</div>
</div>
<?php
$scripts = [
'lib/jquery.min.js',
'lib/bootstrap.min.js',
'lib/typeahead.bundle.min.js',
'lib/datatables.js',
'lib/jquery.tagsinput.min.js',
'lib/moment.min.js',
'lib/bootstrap-datetimepicker.min.js',
'lib/bootstrap-tagsinput.min.js',
'fullcalendar/fullcalendar.min.js',
'fullcalendar/lang/de.js',
'lib/jquery.mCustomScrollbar.min.js',
'custom.js'
];
if(isset($additionalScripts)) {
// $scripts[] = $additionalScripts;
foreach ($additionalScripts as $additionalScript) {
$scripts[] = $additionalScript;
}
}
$scriptName = join(',', $scripts);
$scriptName = base_url("combine.php?type=javascript&files=" . $scriptName);
?>
<script src="<?= $scriptName ?>"></script>
</body>
</html>

View File

@@ -0,0 +1,230 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Projekt bearbeiten</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<form class="form-horizontal form-label-left input_mask" id="projectForm" method="post"
enctype="multipart/form-data">
<input type="hidden" name="editingID" id="editingID" value="<?= $edit ?>">
<input type="hidden" name="projectImage" id="projectImage" value="<?= isset($content) ? $content['source'] : -1 ?>">
<div class="row">
<!-- Image input -->
<div class="form-group col-xs-12 col-sm-12 col-md-4 col-lg-4">
<div id="uploadedImage" style="width: 100%; height: 200px; background-size: cover; background-position: center" class="uploaded-image-container">
<label for="image" class="btn upload-btn">
<input type="file" name="image" id="image" class="upload-image">
<i class="fa fa-upload"></i>
</label>
</div>
</div>
<div class="col-xs-12 col-md-4">
<div class="form-group">
<label for="url">URL-Name</label>
<input type="text" class="form-control" name="url" id="url" placeholder="Name in der URL"
required value="<?= isset($content) ? $content['name'] : '' ?>">
</div>
<div class="form-group">
<label for="datepicker">Datum</label>
<input type='text' class="form-control" name="datetime" id="datepicker"
required
value="<?= isset($content) ? date("Y/m/d", strtotime($content['datetime'])) : '' ?>" />
</div>
</div>
<div class="col-xs-12 col-md-4">
<div class="form-group">
<label for="categories">Kategorie(n)</label>
<select multiple name="categories[]" id="categories" class="form-control" required>
<?php foreach ($categories as $category) {
$selected = false;
if (isset($content)):
foreach ($pCategories as $pCategory):
if ($pCategory['ID'] == $category['ID']) {
$selected = true;
break;
}
endforeach;
endif;
?>
<option
value="<?= $category['ID'] ?>" <?= $selected ? "selected" : "" ?>><?= $category['displayname'] ?></option>
<?php } ?>
</select>
</div>
</div>
</div>
<div class="row">
<div class="form-group checkbox col-xs-12 col-sm-12 col-md-4 col-lg-4">
<label for="download" style="font-size:20px">
<input type="checkbox" name="download" id="download"
<?= isset($content) && $content['isDownloadable'] ? "checked" : "" ?>>
Download verfügbar
</label>
</div>
<div class="form-group checkbox col-xs-12 col-sm-12 col-md-4 col-lg-4">
<label for="opensource" style="font-size:20px">
<input type="checkbox" name="opensource" id="opensource"
<?= isset($content) && $content['isOpenSource'] ? "checked" : "" ?>>
OpenSource verfügbar
</label>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-lg-4">
<div class="form-group">
<label for="downloadLink">Download-Link</label>
<input type="url" name="downloadLink" id="downloadLink" class="form-control" disabled>
</div>
</div>
<div class="col-xs-12 col-lg-4">
<div class="form-group">
<label for="openSourceLink">Open Source-Link</label>
<input type="url" name="openSourceLink" id="openSourceLink" class="form-control" disabled>
</div>
</div>
<div class="col-xs-12 col-lg-4">
<div class="form-group">
<label for="customLink">Andersweitiger Link</label>
<input type="url" name="customLink" id="customLink" class="form-control">
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#german" aria-controls="german" role="tab" data-toggle="tab">
Deutsch
</a>
</li>
<li role="presentation">
<a href="#english" aria-controls="english" role="tab" data-toggle="tab">
Englisch
</a>
</li>
<li role="presentation">
<a href="#french" aria-controls="french" role="tab" data-toggle="tab">
Französisch
</a>
</li>
</ul>
<br>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="german">
<!-- Links input -->
<div class="row">
<div class="col-sm-12 col-lg-4">
<div class="form-group">
<label for="downloadLinkName">Download-Link Bezeichnung</label>
<button type="button" class="btn btn-orange raised round btn-sm project-download-button" id="downloadLinkName" disabled>
</button>
</div>
</div>
<div class="col-sm-12 col-lg-4">
<div class="form-group">
<label for="openSourceLinkName">Open Source-Link Bezeichnung</label>
<button type="button" class="btn btn-orange raised round btn-sm project-opensource-button" id="openSourceLinkName" disabled>
</button>
</div>
</div>
<div class="col-sm-12 col-lg-4">
<div class="form-group">
<label for="customLinkName">Andersweitiger Link Bezeichnung</label>
<button type="button" class="btn btn-orange raised round btn-sm project-custom-button" id="customLinkName" contenteditable></button>
</div>
</div>
</div>
<!-- Title input -->
<div class="form-group">
<label for="title">Titel (Deutsch)</label>
<input type="text" class="form-control" name="title" id="title" placeholder="Titel auf Deutsch"
required value="<?= isset($content) ? $content['title'] : '' ?>">
</div>
<!-- Headline input -->
<div class="form-group">
<label for="headline">Headline (Deutsch)</label>
<textarea name="headline" id="headline" rows="2"
placeholder="Headline auf Deutsch"
class="form-control"
required><?= isset($content) ? $content['headline'] : '' ?></textarea>
</div>
<!-- Description input -->
<div class="form-group">
<label for="description">Beschreibung (Deutsch)</label>
<div data-editable data-name="content-german" id="content">
<?= isset($content) ? $content['description'] : '' ?>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="english">
<!-- Title English input -->
<div class="form-group">
<label for="titleEnglish">Titel (Englisch)</label>
<input type="text" class="form-control" name="titleEnglish" id="titleEnglish" placeholder="Titel auf Englisch"
value="<?= isset($content) ? $content['titleEnglish'] : '' ?>">
</div>
<!-- Headline English input -->
<div class="form-group">
<label for="headlineEnglish">Headline (Englisch)</label>
<textarea name="headlineEnglish" id="headlineEnglish" rows="2"
placeholder="Headline auf Englisch"
class="form-control"><?= isset($content) ? $content['headlineEnglish'] : '' ?></textarea>
</div>
<!-- Description English input -->
<div class="form-group">
<label for="descriptionEnglish">Beschreibung (Englisch)</label>
<div data-editable data-name="content-english" id="contentEnglish">
<?= isset($content) ? $content['descriptionEnglish'] : '' ?>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="french">
<!-- Title French input -->
<div class="form-group">
<label for="titleFrench">Titel (Französisch)</label>
<input type="text" class="form-control" name="titleFrench" id="titleFrench" placeholder="Titel auf Französisch"
value="<?= isset($content) ? $content['titleFrench'] : '' ?>">
</div>
<!-- Headline French input -->
<div class="form-group">
<label for="headlineFrench">Headline (Französisch)</label>
<textarea name="headlineFrench" id="headlineFrench" rows="2"
placeholder="Headline auf Französisch"
class="form-control"><?= isset($content) ? $content['headlineFrench'] : '' ?></textarea>
</div>
<!-- Description French input -->
<div class="form-group">
<label for="descriptionFrench">Beschreibung (Französisch)</label>
<div data-editable data-name="content-french" id="contentFrench">
<?= isset($content) ? $content['descriptionFrench'] : '' ?>
</div>
</div>
</div>
</div>
</div>
</div>
<input type="submit" class="btn btn-primary col-md-12 col-sm-12 col-xs-12"
value="Absenden">
</form>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,149 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
?>
<!-- page content -->
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Projekte</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Alle derzeit vorhandenen Einträge im Portfolio sind hier aufgelistet
</p>
<div style="overflow-x: auto">
<table id="datatable-fixed-header" class="table table-striped table-bordered" data-order='[[ 0, "desc" ]]'>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Titel</th>
<th>Kategorie</th>
<th>Headline</th>
<th>Datum</th>
<th>Bild</th>
<th>Tools</th>
</tr>
</thead>
<tbody>
<?php
foreach ($entries as $entry) {
$pCategories = $this->projectsModel->getEntryCategories($entry['ID']);
$pCategoriesList = "";
foreach ($pCategories as $pCategory) {
$pCategoriesList .= $pCategory['displayname'] . "<br>";
}
?>
<tr id="entry-<?= $entry['ID'] ?>">
<td><?= $entry['ID'] ?></td>
<td><?= $entry['name'] ?></td>
<td>
<a href="<?= base_url('projects/entry/' . $entry['name']) ?>" target="_blank"><?= $entry['title'] ?></a>
</td>
<td><?= $pCategoriesList ?></td>
<td><?= $entry['description'] ?></td>
<?php $datetime = strtotime($entry['datetime']) ?>
<td><?= date("d.m.Y", $datetime) . " - " . DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$datetime"), $_SESSION['site_lang']) ?></td>
<td>
<img src="<?= $entry['source'] ?>?h=110" class="img-fluid" style="max-height:110px;max-width:200px;">
</td>
<td>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Bearbeiten" href="<?= base_url('admin/projects/edit/' . $entry['ID']) ?>">
<button type="button" class="btn btn-xs btn-default">
<i class="fa fa-edit"></i>
</button>
</a>
<button type="button" class="btn btn-xs btn-red" data-toggle="modal" data-target="#deleteModal" data-type="Projekt" data-title="<?= $entry['title'] ?>" data-id="<?= $entry['ID'] ?>">
<i class="fa fa-trash"></i>
</button>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Projekt-Kategorien</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Alle derzeit vorhandenen Kategorien sind hier aufgelistet
</p>
<table id="datatable-fixed-header" class="table table-striped table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Titel - Deutsch</th>
<th>Titel - English</th>
<th>Titel - Französisch</th>
<th>Anzahl Einträge</th>
<th>Tools</th>
</tr>
</thead>
<tbody>
<?php foreach ($categories as $c) { ?>
<tr id="category-<?= $c['ID'] ?>">
<td><?= $c['ID'] ?></td>
<td><?= $c['collection'] ?></td>
<td><?= $c['displayname'] ?></td>
<td><?= $c['displaynameEnglish'] ?></td>
<td><?= $c['displaynameFrench'] ?></td>
<td><?= $c['count'] ?></td>
<td>
<button type="button" class="btn btn-xs btn-red" data-toggle="modal" data-target="#deleteModal" data-type="Projekt-Kategorie" data-title="<?= $c['displayname'] ?>" data-id="<?= $c['ID'] ?>">
<i class="fa fa-trash"></i>
</button>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog"
aria-labelledby="deleteModalTitle">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Schließen">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="deleteModalTitle">Bist du dir WIRKLICH sicher?</h4>
</div>
<div class="modal-body">
<h3>
<i class="fa fa-spinner fa-spin"></i>
</h3>
</div>
<div class="modal-footer">
<button type="reset" class="btn btn-default" data-dismiss="modal">
Nicht löschen!
</button>
<button type="button" class="btn btn-red">Ja, löschen!</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,89 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Blog-Post bearbeiten</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<form class="form-horizontal form-label-left input_mask" method="post">
<!-- Title input -->
<div class="col-md-6 col-sm-12 col-xs-12">
<div class="form-group">
<label for="title">Titel</label>
<input type="text" name="title" id="title-input" required placeholder="Titel"
class="form-control" <?php if($edit): ?>value="<?= $content['postTitle'] ?>"<?php endif; ?>/>
</div>
</div>
<!-- URL input -->
<div class="col-md-6 col-sm-12 col-xs-12">
<div class="form-group">
<label for="url">URL</label>
<div class="input-group">
<span class="input-group-addon" id="url-prefix">https://www.kingofdog.de/blog/post/</span>
<input type="text" name="url" id="url-input" required placeholder="URL"
class="form-control" aria-describedby="url-prefix" <?php if($edit): ?>value="<?= $content['postUrl'] ?>"<?php endif; ?> <?= $edit ? 'disabled' : '' ?>>
</div>
</div>
</div>
<!-- Description input -->
<div class="form-group col-md-12 col-sm-12 col-xs-12">
<label for="description">Kurzbeschreibung</label>
<textarea name="description" rows="3" cols="40" class="form-control resizable_textarea"
placeholder="Kurzbeschreibung"><?php if($edit) echo $content['postDesc'] ?></textarea>
</div>
<!-- Text editor -->
<div class="form-group col-md-12 col-sm-12 col-xs-12">
<label for="content">Inhalt</label>
<textarea class="tinymce-textarea form-control" name="content"><?= $edit ? $content['postCont'] : '' ?></textarea>
</div>
<!-- Publish date/time picker -->
<div class="form-group col-md-2 col-sm-12 col-xs-12">
<label for="publishDate">Veröffentlichungs-Datum</label>
<input type='text' class="form-control" name="publishDate" id="datetimepicker" <?= $edit ? 'disabled' : '' ?> <?php if($edit): ?>value="<?= $content['postPublishDate'] ?>"<?php endif; ?>/>
</div>
<div class="form-group col-md-10 col-sm-12 col-xs-12">
<div class="col-md-4 col-sm-12 col-xs-12">
<label for="category">Kategorie</label>
<select class="form-control" name="category" required>
<option value="new-category">-- Neue Kategorie --</option>
<?php foreach($categories as $category) { ?>
<option value="<?= $category['ID'] ?>" <?= $edit && $category['ID'] == $content['postCategoryID'] ? 'selected' : '' ?>><?= $category['display_name'] ?></option>
<?php } ?>
</select>
</div>
<div class="col-md-8 col-sm-12 col-xs-12" id="new-category" <?php if($edit): ?>style="display:none"<?php endif; ?>>
<div class="form-group col-md-4 col-sm-12 col-xs-12">
<label for="new-category-display-name">Neue Kategorie (Display-Name)</label>
<input class="form-control" type="text" name="new-category-display-name" placeholder="Display-Name der neuen Kategorie">
</div>
<div class="form-group col-md-4 col-sm-12 col-xs-12">
<label for="new-category-name">Neue Kategorie (Interner Name)</label>
<input class="form-control" type="text" name="new-category-name" placeholder="Interner Name der neuen Kategorie">
</div>
<button class="btn btn-green col-md-4 col-sm-12 col-xs-12" id="new-category-submit">Erstellen</button>
</div>
</div>
<div class="form-group col-md-12">
<label for="tags">Tags</label>
<input type="text" class="form-control" name="tags" data-role="tagsinput" <?php if($edit): ?>value="<?php foreach($tags as $tag) echo $tag['display_name'] . ',' ?>"<?php endif; ?>>
</div>
<?php if($edit): ?>
<div class="col-md-12 form-group">
<label for="version-message">Was wurde geändert?</label>
<input type="text" class="form-control" name="version-message" placeholder="Was wurde an Änderungen getätigt?" required>
</div>
<?php endif; ?>
<input type="submit" class="btn btn-green col-md-12 col-sm-12 col-xs-12" value="Absenden">
</form>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,97 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Weiterleitungen</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Hier sind alle derzeitigen Weiterleitungen (Short-Links) auf andere Seiten zu finden!
</p>
<div style="overflow-x: auto">
<table id="datatable-fixed-header" class="table table-striped table-bordered" data-page-length="25">
<thead>
<tr>
<th>ID</th>
<th>Redirect</th>
<th>URL</th>
<th>Datum</th>
<th>Temporär</th>
<th>Ablauf-Datum</th>
<th>Tools</th>
</tr>
</thead>
<tbody>
<?php foreach ($redirects as $redirect) { ?>
<tr>
<td><?= $redirect['ID'] ?></td>
<td>
<a href="<?= base_url('r/' . $redirect['redirect']) ?>" target="_blank"><?= $redirect['redirect'] ?></a>
</td>
<td>
<a href="<?= $redirect['url'] ?>" target="_blank"><?= substr($redirect['url'], 0, 30) . '...' ?></a>
</td>
<td><?= date('d.m.Y H:i:s', strtotime($redirect['date'])) ?></td>
<td><?= $redirect['temporary'] ? '<i class="fa fa-check-circle"></i> Ja' : '<i class="fa fa-times-circle"></i> Nein' ?></td>
<td><?= $redirect['temporary'] ? date('d.m.Y H:i:s', strtotime($redirect['expireDate'])) : '' ?></td>
<td>
<a href="#" class="btn btn-xs btn-default" onclick="editRedirect(<?= $redirect['ID'] ?>, '<?= $redirect['redirect'] ?>', '<?= $redirect['url'] ?>')">
<i class="fa fa-edit"></i>
</a>
<a href="<?= base_url('admin/redirects/removeRedirect/' . $redirect['ID']) ?>" class="btn btn-xs btn-red" data-toggle="tooltip" data-placement="top" title="Weiterleitung entfernen">
<i class="fa fa-trash"></i>
</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="x_panel">
<div class="x_title">
<h2>Weiterleitung hinzufügen</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Füge eine neue Weiterleitung hinzu.
</p>
<form action="<?= base_url('admin/redirects/addRedirect') ?>" method="post">
<input type="hidden" name="redirectID" id="redirectID">
<div class="form-group col-xs-12 col-md-3">
<label for="redirectName">Weiterleitungs-Name</label>
<input type="text" name="redirectName" id="redirectName" class="form-control">
</div>
<div class="form-group col-xs-12 col-md-3">
<label for="redirectUrl">Weiterleitungs-Ziel</label>
<input type="url" name="redirectUrl" id="redirectUrl" class="form-control">
</div>
<div class="form-group col-xs-12 col-md-3">
</div>
<div class="form-group col-xs-12 col-md-3">
<input type="submit" value="Hinzufügen" class="btn btn-primary">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,269 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?= $title; ?> | KingOfDog Admin Panel</title>
<?php
$styles = [
'lib/bootstrap-3.0.0.min.css',
'lib/bootstrap-datetimepicker.min.css',
'lib/jquery.mCustomScrollbar.min.css',
'lib/prism.min.css',
'lib/datatables.min.css',
'lib/bootstrap-tagsinput.min.css',
'lib/fullcalendar.min.css',
'lib/flag-icon.min.css'
];
if (isset($additionalStyles))
$styles = array_merge($styles, $additionalStyles);
$styles[] = 'custom.css';
$styles[] = 'main.css';
$styles[] = 'custom-buttons.css';
$styles[] = 'override-main.css';
$styleName = base_url('combine.php?type=css&files=' . implode(',', $styles));
?>
<link href="<?= $styleName ?>" rel="stylesheet">
<link rel="stylesheet" href="<?= base_url('assets/css/lib/fontawesome-all.min.css') ?>">
<link href="/assets/images/ico/favicon.ico" rel="icon">
</head>
<body class="nav-md">
<div class="container body">
<div class="main_container">
<div class="col-md-3 left_col menu_fixed mCustomScrollbar _mCS_1 mCS-autoHide" style="overflow: visible;">
<div id="mCSB_1" class="mCustomScrollBox mCS-minimal mCSB_vertical mCSB_outside" style="max-height: none;"
tabindex="0">
<div id="mCSB_1_container" class="mCSB_container" style="position:relative; top:0; left:0;">
<div class="left_col scroll-view">
<div class="navbar nav_title" style="border: 0;">
<a href="<?= base_url() ?>" class="site_title">
<i class="fa fa-paw"></i>
<span>KingOfDog</span>
</a>
</div>
<div class="clearfix"></div>
<!-- menu profile quick info -->
<div class="profile">
<div class="profile_pic">
<img src="<?= $_SESSION['user']['profilePic'] ?>" alt="..."
class="img-circle profile_img mCS_img_loaded">
</div>
<div class="profile_info">
<span>Willkommen,</span>
<h2><?= $_SESSION['user']['displayname'] ?></h2>
</div>
</div>
<!-- /menu profile quick info -->
<br>
<!-- sidebar menu -->
<div id="sidebar-menu" class="main_menu_side hidden-print main_menu">
<div class="menu_section active">
<h3>Allgemein</h3>
<ul class="nav side-menu" style="">
<li>
<a href="/admin">
<i class="fa fa-home"></i>
Home
</a>
</li>
<?php if ($_SESSION['user']['rank'] >= 9): ?>
<li>
<a href="/admin/calendar">
<i class="fa fa-calendar"></i>
Kalender
</a>
</li>
<?php endif; ?>
</ul>
</div>
<div class="menu_section">
<h3>Blog</h3>
<ul class="nav side-menu">
<li>
<a href="/admin/blog">
<i class="fa fa-comments"></i>
Blog-Posts
</a>
</li>
<li>
<a href="/admin/blog/trashbin">
<i class="fa fa-trash"></i>
Gelöschte Blog-Posts
</a>
</li>
<li>
<a href="/admin/blog/edit">
<i class="fa fa-edit"></i>
Blog-Post erstellen
</a>
</li>
</ul>
</div>
<?php if ($_SESSION['user']['rank'] >= 9): ?>
<div class="menu_section">
<h3>Verwaltung</h3>
<ul class="nav side-menu">
<li>
<a href="/admin/projects">
<i class="fa fa-camera"></i>
Projekte
</a>
</li>
<li>
<a href="/admin/projects/edit">
<i class="fa fa-plus"></i>
Projekt erstellen
</a>
</li>
<li>
<a href="/admin/files">
<i class="fa fa-folder-open"></i>
Dateien
</a>
</li>
<li>
<a href="/admin/redirects">
<i class="fa fa-arrow-right"></i>
Weiterleitungen
</a>
</li>
</ul>
</div>
<?php endif; ?>
<div class="menu_section">
<h3>Nutzer</h3>
<ul class="nav side-menu">
<?php if ($_SESSION['user']['rank'] >= 9): ?>
<li>
<a href="/admin/users">
<i class="fa fa-users"></i>
Nutzerverwaltung
</a>
</li>
<?php endif; ?>
<?php if ($_SESSION['user']['rank'] >= 9): ?>
<li>
<a href="/admin/feedback">
<i class="fa fa-comments"></i>
Feedbacks
</a>
</li>
<?php endif; ?>
<?php if ($_SESSION['user']['rank'] >= 8): ?>
<li>
<a href="/admin/contact">
<i class="fa fa-envelope"></i>
Kontakt-Nachrichten
</a>
</li>
<?php endif; ?>
</ul>
</div>
</div>
<!-- /sidebar menu -->
<!-- /menu footer buttons -->
<div class="sidebar-footer hidden-small">
<a data-toggle="tooltip" data-placement="top" title=""
data-original-title="Zurück zur Seite" href="<?= base_url() ?>">
<i class="fa fa-reply"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Dashboard"
href="<?= base_url('admin') ?>">
<i class="fa fa-tachometer-alt"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="User-Profil"
href="<?= base_url('user/' . $_SESSION['user']['username']) ?>">
<i class="fa fa-user"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Logout"
href="<?= base_url('logout') ?>">
<i class="fa fa-power-off"></i>
</a>
</div>
<!-- /menu footer buttons -->
</div>
</div>
</div>
</div>
<!-- top navigation -->
<div class="top_nav">
<div class="nav_menu">
<nav>
<div class="nav toggle">
<a id="menu_toggle">
<i class="fa fa-bars"></i>
</a>
</div>
<ul class="nav navbar-nav navbar-right">
<li class="">
<a href="javascript:;" class="user-profile dropdown-toggle" data-toggle="dropdown"
aria-expanded="false">
<img src="<?= $_SESSION['user']['profilePic'] ?>"
alt=""><?= $_SESSION['user']['displayname'] ?>
<span class=" fa fa-angle-down"></span>
</a>
<ul class="dropdown-menu dropdown-usermenu pull-right">
<li>
<a href="<?= base_url('user/' . $_SESSION['user']['displayname']) ?>">
<i class="fa fa-user pull-right"></i>
Profil
</a>
</li>
<li>
<a href="<?= base_url('user/' . $_SESSION['user']['displayname'] . '/edit') ?>">
<i class="fa fa-cog pull-right"></i>
Einstellungen
</a>
</li>
<li>
<a href="<?= base_url('login/logout') ?>">
<i class="fa fa-sign-out-alt pull-right"></i>
Ausloggen
</a>
</li>
</ul>
</li>
<li role="presentation" class="dropdown">
<a href="javascript:;" class="dropdown-toggle info-number" data-toggle="dropdown"
aria-expanded="false">
<i class="far fa-envelope"></i>
<span class="badge bg-blue" id="notificationCount"></span>
</a>
<ul id="notificationMenu" class="dropdown-menu list-unstyled msg_list" role="menu">
<li>
<div class="text-center">
<a>
<strong>See All Alerts</strong>
<i class="fa fa-angle-right"></i>
</a>
</div>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
<!-- /top navigation -->
<div class="snackbar-container">
</div>

View File

@@ -0,0 +1,90 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
?>
<div class="right_col" role="main">
<div class="">
<div class="row">
<div class="col-md-6 col-sm-6 col-xs-6">
<div class="x_panel">
<div class="x_title">
<h2>Details zum Nutzer <?= $user['displayname'] ?></h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="row">
<div class="col-sm-2">
<img src="<?= $user['profile_picture'] ?>" class="img-fluid">
</div>
<div class="col-sm-10">
<h3><a href="<?= base_url('user/' . $user['username']) ?>"
target="_blank"><?= $user['displayname'] ?></a></h3>
<?php $created_at = strtotime($user['date_created']); ?>
<p>
<b>Account erstellt: </b>
<?= DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$created_at"), "de_DE") ?>
<i>(<?= date("d.m.Y H:i", $created_at) ?>)</i>
</p>
<p><b>Originaler Name:</b> <?= $user['original_name'] ?></p>
</div>
</div>
<div class="row col-sm-12">
<p>
<b>Letzer Login:</b>
<?php $lastLogin = strtotime($user['lastLogin']) ?>
<?= DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$lastLogin"), "de_DE"); ?>
<i>(<?= date("d.m.Y H:i", $lastLogin) ?>)</i>
</p>
<p>
<b>E-Mail-Adresse:</b>
<a href="mailto:<?= $user['email'] ?>">
<?= $user['email'] ?>
</a>
</p>
<p>
<b>Rang:</b>
<?php $ranks = [0 => "Nutzer", 1 => "Registrierter Nutzer", 2 => "Premium-Nutzer", 3 => "Plus-Nutzer", 6 => "Autor", 7 => "Editor", 8 => "Moderator", 9 => "Semi-Admin", 10 => "Admin"]; ?>
<?= $ranks[$user['rank']] ?>
</p>
<p>
<b>Geschlecht:</b>
<?php $genders = ['male' => 'Männlich', 'female' => 'Weiblich', 'other' => 'Anderes', '' => 'Nicht Angegeben'] ?>
<?= $genders[$user['gender']] ?>
</p>
<p>
<b>Aktiviert?</b>
<?= $user['is_activated'] ? '<i class="fa fa-check-circle-o"></i> Ja' : '<i class="fa fa-times-circle-o"></i>Nein' ?>
</p>
<p>
<b>Zeige Werbung?</b>
<?= $user['showAds'] ? '<i class="fa fa-check-circle-o"></i> Ja' : '<i class="fa fa-times-circle-o"></i>Nein' ?>
</p>
<p>
<b>Biographie</b>
<?= $user['about'] ?>
</p>
<p>
<b>Sprache:</b>
<?= Locale::getDisplayName($user['language'], 'de') ?>
</p>
<p>
<b>Land:</b>
<?= Locale::getDisplayRegion('-' . $user['country'], 'de') ?>
</p>
<p>
<b>Erhalte E-Mails?</b>
<?= $user['receiveEmails'] ? '<i class="fa fa-check-circle-o"></i> Ja' : '<i class="fa fa-times-circle-o"></i>Nein' ?>
</p>
<p>
<b>Erhalte Newsletter?</b>
<?= $user['receiveNewsletter'] ? '<i class="fa fa-check-circle-o"></i> Ja' : '<i class="fa fa-times-circle-o"></i>Nein' ?>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,81 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div class="right_col" role="main">
<div class="row">
<div class="col-md-6 col-sm-8 col-xs-8">
<div class="x_panel">
<div class="x_title">
<h2>Einstellungen von dem Nutzer <?= $user['displayname'] ?></h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<form class="form" method="POST">
<div class="form-group" aria-describedby="#rank-help">
<b>Rang</b>
<br>
<label class="radio-inline">
<input type="radio" name="rank" value="1" <?= $user['rank'] == 1 ? 'checked' : '' ?>>
Nutzer
</label>
<label class="radio-inline">
<input type="radio" name="rank" value="2" <?= $user['rank'] == 2 ? 'checked' : '' ?>>
Premium
</label>
<label class="radio-inline">
<input type="radio" name="rank" value="3" <?= $user['rank'] == 3 ? 'checked' : '' ?>>
Plus
</label>
<label class="radio-inline">
<input type="radio" name="rank" value="6" <?= $user['rank'] == 6 ? 'checked' : '' ?>>
Autor
</label>
<label class="radio-inline">
<input type="radio" name="rank" value="7" <?= $user['rank'] == 7 ? 'checked' : '' ?>>
Editor
</label>
<label class="radio-inline">
<input type="radio" name="rank" value="8" <?= $user['rank'] == 8 ? 'checked' : '' ?>>
Moderator
</label>
<label class="radio-inline">
<input type="radio" name="rank" value="9" <?= $user['rank'] == 9 ? 'checked' : '' ?>>
Semi-Admin
</label>
<label class="radio-inline">
<input type="radio" name="rank" value="10" <?= $user['rank'] == 10 ? 'checked' : '' ?>>
Admin
</label>
</div>
<span class="help-block" id="rank-help">
<b>Nutzer:</b>
Der Standard-Rang für alle registrierten Nutzer. Kann Kommentare schreiben, Posts veröffentlichen und Nutzern folgen.
<br>
<b>Premium:</b>
Erhält man nach einer Spende in jeglicher Höhe. Kann Werbung deaktivieren und alle Funktionen des normalen Nutzers.
<br>
<b>Plus:</b>
Kann nur manuell vergeben werden. Vorgesehen für YouTuber, sehr aktive Nutzer, großzügige Spender, Freunde und ähnliches. Hat alle Funktionen der vorherigen Ränge.
<br>
<b>Autor:</b>
Vor allem für den Blog-Bereich. Kann dort Artikel veröffentlichen und seine eigenen bearbeiten. Zusätzlich hat er alle Funktionen der vorherigen Ränge. Kann nur manuell vergeben werden, z.B. an aktive Post-Schreiber.
<br>
<b>Editor:</b>
Vor allem für den Blog-Bereich. Kann wie der Autor Artikel schreiben, allerdings kann er auch Artikel von anderen verändern. Zusätzlich hat er alle Funktionen der vorherigen Ränge. Kann nur manuell vergeben werden, z.B. an sehr aktive Autoren.
<br>
<b>Moderator:</b>
Hauptaufgabe: Soll Nutzern bei Fragen und Problemen helfen. Kann neben den Funktionen der vorhergenden Ränge auch Nutzerposts löschen oder Nutzer verwarnen. Wird manuell ernannt.
<br>
<b>Semi-Admin:</b>
Hat beinahe unbegrenzten Zugriff mit nur leichten Einschränken. Kann Nutzern alle Ränge (außer Semi-Admin & höher) vergeben. Ist nicht dazu in der Lage, persönliche Informationen von Nutzern zu sehen oder Website-Statistiken einzusehen.
<br>
<b>Admin:</b>
Unbeschränkter Zugriff auf alle Funktionen.
</span>
<input type="submit" class="btn btn-primary" value="Speichern">
</form>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,136 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Coduo\PHPHumanizer\DateTimeHumanizer;
?>
<div class="right_col" role="main">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2>Alle Nutzer</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<p class="text-muted font-13 m-b-30">
Alle registrierten Nutzer dieser Plattform sind hier aufgelistet!
</p>
<div style="overflow-x: auto">
<table id="datatable-fixed-header" class="table table-striped table-bordered" data-page-length="25">
<thead>
<tr>
<th>ID</th>
<th>Nickname</th>
<th data-toggle="tooltip" data-placement="top" title="Geschlecht">Sex</th>
<th>Rang</th>
<th data-toggle="tooltip" data-placement="top" title="Erstellungsdatum">Erstellt</th>
<th>Logo</th>
<th data-toggle="tooltip" data-placement="top" title="Aktiviert?">Akt.?</th>
<th data-toggle="tooltip" data-placement="top" title="Zeige Werbung?">Ads?</th>
<th data-toggle="tooltip" data-placement="top" title="Erhalte E-Mails?">Mails?</th>
<th data-toggle="tooltip" data-placement="top" title="Erhalte Newsletter?">Newsletter?</th>
<th data-toggle="tooltip" data-placement="top" title="Derzeit online?">Online?</th>
<th>Login-Methode</th>
<th>Letzter Login</th>
<th>Sprache, Land</th>
<th>Tools</th>
</tr>
</thead>
<tbody>
<?php foreach ($users as $user):
$gender = "";
if ($user['gender'] == "male")
$gender = "<i class='fa fa-mars'></i> M";
else if ($user['gender'] == "female")
$gender = "<i class='fa fa-venus'></i> W";
else if ($user['gender'] == 'other')
$gender = '<i class="fa fa-transgender"></i> A';
$loginMethods = [
0 => "Standard",
1 => "Google",
2 => "Twitter",
3 => "GitHub"
];
$loginMethod = $loginMethods[$user['login_method']];
$date_created = strtotime($user['date_created']);
$last_login = strtotime($user['lastLogin']);
$date_created_str = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$date_created"), "de_DE");
$last_login_str = DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$last_login"), "de_DE");
?>
<tr>
<td>
<?= $user['ID'] ?>
</td>
<td>
<a href="<?= base_url('user/' . $user['username']) ?>" target="_blank">
<?= $user['displayname'] ?>
</a>
</td>
<td>
<?= $gender ?>
</td>
<td>
<?= $user['rankName'] ?>
</td>
<td>
<?= $date_created_str ?>
<br>
(<?= date("d.m.Y H:i", $date_created) ?>)
</td>
<td>
<img src="<?= $user['profile_picture'] ?>?w=50" class="img-fluid rounded"
alt="Profilbild"
style="max-height: 50px;">
</td>
<td>
<?= $user['is_activated'] ? "<i class='fa fa-check-circle'></i> Ja" : "<i class='fa fa-times-circle'></i> Nein" ?>
</td>
<td>
<?= $user['showAds'] ? '<i class="fa fa-check-circle"></i> Ja' : '<i class="fa fa-times-circle"></i> Nein' ?>
</td>
<td>
<?= $user['receiveEmails'] ? '<i class="fa fa-check-circle"></i> Ja' : '<i class="fa fa-times-circle"></i> Nein' ?>
</td>
<td>
<?= $user['receiveNewsletter'] ? '<i class="fa fa-check-circle"></i> Ja' : '<i class="fa fa-times-circle"></i> Nein' ?>
</td>
<td>
<?= $user['isCurrentlyOnline'] ? "<i class='fa fa-check-circle'></i> Ja" : "<i class='fa fa-times-circle'></i> Nein" ?>
</td>
<td>
<?= $loginMethod ?>
</td>
<td>
<?= $last_login_str ?>
<br>
(<?= date("d.m.Y H:i", $last_login) ?>)
</td>
<td>
<?= Locale::getDisplayLanguage($user['language'], "de") ?>
<br>
<?= Locale::getDisplayRegion("-" . $user['country'], 'de') ?>
</td>
<td>
<?php if (isset($_SESSION['user']) && $_SESSION['user']['rank'] >= 8 && ($_SESSION['user']['rank'] > $user['rank'] || $_SESSION['user']['rank'] == 10)): ?>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Details" href="<?= base_url('admin/users/details/' . $user['ID']) ?>" target="_blank" class="btn btn-xs btn-default">
<i class="fa fa-info-circle"></i>
</a>
<a data-toggle="tooltip" data-placement="top" title="" data-original-title="Einstellungen" href="<?= base_url('admin/users/settings/' . $user['ID']) ?>" target="_blank" class="btn btn-xs btn-default">
<i class="fa fa-cog"></i>
</a>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>