1 <script src=
"../system/engines/jquery/dropzone/dropzone.js"></script>
2 <link href=
"../system/engines/jquery/dropzone/dropzone.css" rel=
"stylesheet">
17 if (isset($_POST[
'save']))
20 if (settings::setSetting(
$db,
"backendLanguage", $_POST[
'backendLanguage'],
$lang) ===
true)
21 { $backendStatus = 1; }
23 { $backendStatus = 0; }
26 if (settings::setSetting(
$db,
"frontendLanguage", $_POST[
'frontendLanguage'],
$lang) ===
true)
27 { $frontendStatus = 1; }
29 { $frontendStatus = 0; }
32 $status = $backendStatus + $frontendStatus;
39 if (isset($_POST[
'backendLanguage']) && (!empty($_POST[
'backendLanguage'])))
41 echo
"<script>document.cookie = 'lang=$_POST[backendLanguage]';</script>";
43 sys::setTimeout(
"index.php?page=settings-language&lang=$_POST[backendLanguage]&saved=1&frontendLanguage=$_POST[frontendLanguage]", 0);
48 alert::draw(
"danger",
"$lang[LANGUAGES] $lang[NOT_SAVED]",
"$lang[BACKEND] ($_GET[backendLanguage]) $lang[AND] $lang[FRONTEND] ($_GET[frontendLanguage]) $lang[LANGUAGE] $lang[NOT_SAVED].",
'', 3400);
53 if (isset(
$_GET[
'saved']) && (
$_GET[
'saved'] == 1))
55 alert::draw(
"success",
"$lang[LANGUAGES] $lang[SAVED]",
"$lang[BACKEND] ($_GET[lang]) $lang[AND] $lang[FRONTEND] ($_GET[frontendLanguage]) $lang[LANGUAGE] $lang[SAVED].",
'', 2400);
59 if (isset($_POST[
'editLanguageBtn']))
61 if (isset($_POST[
'editLanguageSelect']))
63 if ($_POST[
'editLanguageSelect'] ===
"null")
65 alert::draw(
"warning",
$lang[
'ERROR'],
$lang[
'LANGUAGE_SELECT_NEEDED'],
"", 3400);
69 $file = $_POST[
'editLanguageSelect'];
71 if (file_put_contents($file, $_POST[
'languageContent']))
73 alert::draw(
"success",
$lang[
'TRANSLATION'],
"$lang[FILE] <b>$file</b> $lang[SAVED]",
"", 2400);
77 alert::draw(
"danger",
$lang[
'TRANSLATION'],
"$lang[FILE] <b>$file</b> $lang[NOT_SAVED]",
"", 3400);
84 if (isset($_POST[
'upload']) && ($_POST[
'upload'] == 1) && ($_POST[
'action'] ==
true))
86 if ($_POST[
'uploadFolder'] ===
'frontend')
88 $targetPath =
'../system/language/';
89 $totalLines = count(file(
'../system/language/lang-en-EN.ini'));
92 else if ($_POST[
'uploadFolder'] ===
'backend')
94 $targetPath =
'language/';
95 $totalLines = count(file(
'language/lang-en-EN.ini'));
97 else { $targetPath =
'language/'; $totalLines = 0; }
100 if (isset($_FILES[
'file']) && (!empty($_FILES[
'file'])))
102 if (substr($_FILES[
'file'][
'name'], -4) ===
'.ini')
105 move_uploaded_file($_FILES[
'file'][
'tmp_name'], $targetPath.$_FILES[
'file'][
'name']);
107 if (is_file($targetPath.$_FILES[
'file'][
'name']))
109 $i = count(file($targetPath.$_FILES[
'file'][
'name']));
111 if (
$i !== $totalLines)
114 alert::draw(
"warning",
"$lang[LANGUAGE] $lang[UPLOADED]",
"$lang[LANGUAGE_UPLOAD_DIFFER]",
"", 2400);
119 alert::draw(
"success",
"$lang[LANGUAGE] $lang[UPLOADED]",
"$lang[LANGUAGE_UPLOAD_OK]",
"", 2400);
125 alert::draw(
"danger",
"$lang[LANGUAGE] $lang[ERROR]",
"$lang[LANGUAGE_UPLOAD_FAILED]",
"", 2400);
131 alert::draw(
"danger",
"$lang[LANGUAGE] $lang[ERROR]",
"$lang[LANGUAGE_UPLOAD_EXT_ERROR]",
"", 2400);
137 alert::draw(
"danger",
"$lang[LANGUAGE] $lang[ERROR]",
"$lang[LANGUAGE_UPLOAD_ERROR]",
"", 2400);
142 if (isset(
$_GET[
'restore']) && (
$_GET[
'restore'] == 1) && (
$_GET[
'action'] ==
true))
145 $frontendFileCount = 0;
146 $backendFileCount = 0;
148 $frontendCopiedTotal = 0;
149 $backendCopiedTotal = 0;
152 $backendSource =
"../system/backup/languages/backend";
154 $backendDestination =
"language";
156 $backendFiles = glob(
"../system/backup/languages/backend/*.ini");
158 $frontendFileCount = 0;
159 $frontendSource =
"../system/backup/languages/frontend";
160 $frontendDestination =
"../system/language";
161 $frontendFiles = glob(
"../system/backup/languages/frontend/*.ini");
164 foreach($backendFiles as $file){
168 $current = str_replace($backendSource,$backendDestination,$file);
170 if (copy($file, $current))
172 $backendCopiedTotal++;
177 foreach($frontendFiles as $file){
179 $frontendFileCount++;
181 $current = str_replace($frontendSource,$frontendDestination,$file);
183 if (copy($file, $current))
185 $frontendCopiedTotal++;
188 $totalToCopy = $backendFileCount + $frontendFileCount;
189 $copiedTotal = $frontendCopiedTotal + $backendCopiedTotal;
192 if ($totalToCopy === $copiedTotal)
194 alert::draw(
"success",
"$lang[LANGUAGES] $lang[RESTORED]",
"$lang[LANGUAGE] $lang[FILES] $lang[RESTORED]",
"", 2400);
198 alert::draw(
"danger",
"$lang[LANGUAGES] $lang[NOT_RESTORED]",
"$lang[LANGUAGE] $lang[FILES] $lang[NOT_RESTORED]",
"", 3400);
204 <!-- include codemirror -->
205 <link rel=
"stylesheet" type=
"text/css" href=
"../system/engines/codemirror/codemirror.min.css">
206 <link rel=
"stylesheet" type=
"text/css" href=
"../system/engines/codemirror/themes/<?php echo $editorSettings['editorTheme']; ?>.css">
207 <script
type=
"text/javascript" src=
"../system/engines/codemirror/codemirror-compressed.js"></script>
212 <!-- Content Wrapper. Contains page content -->
213 <div class=\"content-wrapper\" id=\"content-FX\">
214 <!-- Content Header (Page header) -->
215 <section class=\"content-header\">";
217 echo backend::getTitle(
$lang[
'LANGUAGES'],
$lang[
'TRANSLATION']);
218 echo backend::getSettingsBreadcrumbs(
$lang);
220 <!-- Main content -->
221 <section class=\"content\">";
224 <form
id=
"template-edit-form" action=
"index.php?page=settings-language" method=
"POST">
226 <div
class=
"box-body">
227 <div
class=
"col-md-10">
228 <?php echo
"<h4><i class=\"fa fa-language\"></i> $lang[LANGUAGES] <small>$lang[LANGUAGES_SUBTEXT]</small></h4>"; ?>
230 <div
class=
"col-md-2">
231 <button
class=
"btn btn-success pull-right" id=
"savebutton" name=
"save" style=
"margin-top:2px;"><
i id=
"savebuttonIcon" class=
"fa fa-check"></
i>&
nbsp;&
nbsp;<?php echo
$lang[
'SAVE_SETTINGS']; ?></button>
236 <div
class=
"row animated fadeIn">
237 <div
class=
"col-md-8">
239 <div
class=
"box-body">
240 <label
for=
"languageContent"><?php echo
$lang[
'LANGUAGE_FILE_CONTENT']; ?> &
nbsp;<small><
i id=
"sign" class=
"fa fa-exclamation-triangle text-danger hidden"></
i></small> &
nbsp;<
i id=
"additionalLabelInfo" class=
"small text-danger hidden"><?php echo
$lang[
'LANGUAGE_FILE_WARNING']; ?></
i></label>
241 <textarea
id=
"languageContent" name=
"languageContent" rows=
"30" class=
"form-control"></textarea>
242 <div
id=
"textbox"></div>
246 <div
class=
"col-md-4">
248 <div
class=
"box-header with-border">
249 <h3
class=
"box-title"><?php echo
$lang[
'LANGUAGE']; ?> <small><?php echo
$lang[
'DETERMINE']; ?></small></h3>
251 <div
class=
"box-body">
254 <h3><
i class=
"fa fa-language"></
i>&
nbsp;<?php echo
$lang[
'BACKENDLANGUAGE_HEADING'].
" <small>$lang[BACKENDLANGUAGE_SUBTEXT]</small>"; ?></h3>
255 <label
id=
"backendLanguge" for=
"backendLanguge"><?php echo
$lang[
'BACKENDLANGUAGE_LABEL']; ?></label>
256 <select
id=
"backendLanguge" name=
"backendLanguage" class=
"form-control">
259 echo
"<option value=\"$dbLanguage\">$lang[CURRENT] $dbLanguage</option>";
265 if ($file !=
".htaccess")
267 $languageTag = substr($file, -9, 5);
269 echo
"<option value=\"$languageTag\">$languageTag</option>";
275 <!-- frontend Language selection -->
276 <h3><
i class=
"fa fa-language"></
i>&
nbsp;<?php echo
$lang[
'FRONTENDLANGUAGE_HEADING'].
" <small>$lang[FRONTENDLANGUAGE_SUBTEXT]</small>"; ?></h3>
277 <label
id=
"frontendLanguge" for=
"frontendLanguge"><?php echo
$lang[
'FRONTENDLANGUAGE_LABEL']; ?></label>
278 <select
id=
"frontendLanguge" name=
"frontendLanguage" class=
"form-control">
281 echo
"<option value=\"$dbLanguage\">$lang[CURRENT] $dbLanguage</option>";
288 if ($file !=
".htaccess")
290 $languageTag = substr($file, -9, 5);
292 echo
"<option value=\"$languageTag\">$languageTag</option>";
301 <div
class=
"box-header with-border">
302 <h3
class=
"box-title"><?php echo
$lang[
'TRANSLATION']; ?> <small><?php echo
$lang[
'EDIT']; ?></small></h3>
304 <div
class=
"box-body">
305 <label
id=
"editLanguageSelectLabel" for=
"editLanguageSelect"><?php echo
$lang[
'LANGUAGE_WHICH_EDIT']; ?></label>
306 <select
id=
"editLanguageSelect" name=
"editLanguageSelect" class=
"form-control">
307 <option value=
"null"><?php echo
$lang[
'PLEASE_SELECT']; ?></option>
315 if ($file !=
".htaccess")
317 echo
"<option value=\"language/$file\">backend/$file</option>";
322 if ($file !=
".htaccess")
324 echo
"<option value=\"../system/language/$file\">frontend/$file</option>";
329 <div
id=
"editLanguageFooter">
330 <button
id=
"editLanguageBtn" name=
"editLanguageBtn" class=
"btn btn-success pull-right hidden" style=
"margin-top:10px;"><
i class=
"fa fa-check"></
i> &
nbsp;
331 <?php echo
$lang[
'SAVE_TRANSLATION']; ?></button>
332 <
a href=
"index.php?page=settings-language" id=
"cancelLanguageBtn" class=
"btn btn-danger pull-right hidden" style=
"margin-top:10px; margin-right:2px;"><
i class=
"fa fa-times"></
i> &
nbsp;<?php echo
$lang[
'CANCEL']; ?></
a>
337 <div
class=
"box-header with-border">
338 <h3
class=
"box-title"><?php echo
$lang[
'LANGUAGES']; ?> <small><?php echo
$lang[
'RESTORE']; ?></small></h3>
340 <div
class=
"box-body">
341 <
i class=
"fa fa-exclamation-triangle text-danger"></
i>&
nbsp;&
nbsp;<?php echo
$lang[
'LANGUAGE_RESET']; ?>
342 <
a class=
"btn btn-default pull-right" id=
"resetLanguageBtn" role=
"dialog" data-confirm=
"<?php echo $lang['ARE_YOU_SURE'];?>" title=
"<?php echo $lang['RESTORE_LANGUAGE']; ?>" href=
"index.php?page=settings-language&restore=1&action=true"><
i class=
"fa fa-language text-danger"></
i>&
nbsp;&
nbsp;Backup laden</
a>
348 <div
class=
"box-header with-border">
349 <h3
class=
"box-title"><?php echo
$lang[
'LANGUAGES']; ?> <small><?php echo
$lang[
'UPLOAD']; ?></small></h3>
351 <div
class=
"box-body">
352 <form
id=
"template-edit-form" enctype=
"multipart/form-data" action=
"index.php?page=settings-language" method=
"POST">
353 <label
for=
"folder"><?php echo
$lang[
'SELECT_FOLDER']; ?></label>
354 <select
name=
"uploadFolder" class=
"form-control" id=
"folder">
355 <option value=
""><?php echo
$lang[
'PLEASE_SELECT']; ?></option>
356 <option value=
"frontend">FrontEnd (system/
language)</option>
357 <option value=
"backend">BackEnd (admin/
language)</option>
359 <label
for=
"file"><?php echo
$lang[
'SELECT_FILE']; ?></label>
360 <input
id=
"file" name=
"file" type=
"file" class=
"form-control">
361 <small><?php echo
$lang[
'LANGUAGE_UPLOAD_INFO']; ?></small>
362 <button
type=
"submit" style=
"margin-top:10px;" class=
"btn btn-default pull-right" id=
"uploadLanguageBtn" name=
"uploadLanguageBtn" role=
"dialog" data-confirm=
"<?php echo $lang['ARE_YOU_SURE'];?>" title=
"<?php echo $lang['LANGUAGE_UPLOAD']; ?>"><
i class=
"fa fa-upload"></
i>&
nbsp;&
nbsp;<?php echo
$lang[
'LANGUAGE_UPLOAD']; ?></button>
363 <input
type=
"hidden" name=
"upload" value=
"1">
364 <input
type=
"hidden" name=
"action" value=
"true">
371 html, body {height: 100%;}
372 .CodeMirror {height:50em;}
373 .CodeMirror-scroll {height: 100%;}
376 <script
type=
"text/javascript">
379 $(document).
ready(
function() {
380 function saveHotkey() {
383 if (!(
event.which === 115 && (navigator.platform.match(
"Mac") ?
event.metaKey :
event.ctrlKey)) && !(
event.which === 19))
return true;
384 event.preventDefault();
389 $(document).keydown(
function (
event) {
390 if (
event.which === 83 && (navigator.platform.match(
"Mac") ?
event.metaKey :
event.ctrlKey)) {
391 event.preventDefault();
392 $(
'#savebutton').click();
402 const savebutton = (
'#savebutton');
403 const savebuttonIcon = (
'#savebuttonIcon');
406 $(savebutton).click(
function () {
407 $(savebutton).removeClass(
'btn btn-success').addClass(
'btn btn-warning disabled');
408 $(savebuttonIcon).removeClass(
'fa fa-check').addClass(
'fa fa-spinner fa-spin fa-fw');
412 const languageContent = $(
"#languageContent");
413 const editlanguageSelectLabel = $(
"#editLanguageSelectLabel");
414 const editLanguageSelect = $(
"#editLanguageSelect");
415 const cancelLanguageBtn = $(
"#cancelLanguageBtn");
416 const editLanguageBtn = $(
"#editLanguageBtn");
417 const additionalLabel = $(
"#additionalLabelInfo");
418 const sign = $(
"#sign");
421 $(editLanguageSelect).
on(
'change',
function()
429 theme:
'<?php echo $editorSettings['editorTheme
']; ?>',
439 $.ajaxSetup({ cache:
false });
441 $.get(fn,
function (response) {
444 editor = CodeMirror.fromTextArea(document.getElementById(
"languageContent"), config).setValue(
language);
448 $(editLanguageBtn).removeClass(
'btn btn-success pull-right hidden').addClass(
'btn btn-success pull-right');
450 $(sign).removeClass(
'fa fa-exclamation-triangle text-danger hidden').addClass(
'fa fa-exclamation-triangle text-danger');
452 $(additionalLabel).removeClass(
'small hidden').addClass(
'small');
454 $(cancelLanguageBtn).removeClass(
'btn btn-danger pull-right hidden').addClass(
'btn btn-danger pull-right');
457 $(editLanguageBtn).click(
function() {
459 $(editLanguageSelect).prop(
'disabled',
false);
461 $(cancelLanguageBtn).removeClass(
'btn btn-danger pull-right').addClass(
'btn btn-danger pull-right hidden');
463 $(additionalLabel).removeClass(
'small').addClass(
'small hidden');
465 $(sign).removeClass(
'fa fa-exclamation-triangle text-danger').addClass(
'fa fa-exclamation-triangle text-danger hidden');
469 $(editlanguageSelectLabel).empty().append(
'<?php // echo $lang['EDIT
'].":"; ?> admin/'+fn);
471 $(editLanguageSelect).prop(
'disabled',
true);
473 $(editLanguageBtn).removeClass(
'btn btn-success pull-right').addClass(
'btn btn-warning pull-right');
print $lang['FILEMAN_UPLOAD']
Throws a fancy Bootstrap Alert (success, info, warning or danger)
Backend class serves a few useful functions for the admin backend.
Mysqli database class; returns db connection object.
Basic File Manager (Backend)
The language class - support multilingual backend.
Settings class: get and set YaWK system settings.
The sys class - handles yawk's system core functions.
if(isset($_POST['save'])) if(isset($_GET['saved']) &&($_GET['saved']==1)) if(isset($_POST['editLanguageBtn'])) if(isset($_POST['upload']) &&($_POST['upload']==1) &&($_POST['action']==true)) if(isset($_GET['restore']) &&($_GET['restore']==1) &&($_GET['action']==true)) $editorSettings
<!-- backend language -->< h3 >< i class="fa fa-language"></i > & nbsp
document ready(function() { $('a[data-confirm]').click(function(ev) { modal='#dataConfirmModal';var href=$(this).attr('href');var title=$(this).attr('title');var icon=$(this).attr('data-icon');if(!icon) { icon='fa fa-trash-o';} if(!$(modal).length) { $('body').append('< div id="dataConfirmModal" class="modal fade" role="dialog" aria-labelledby="dataConfirmLabel" 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">< i class="fa fa-times"></i ></button >< br >< div class="col-md-1">< h3 class="modal-title">< i class="'+icon+'"></i ></h3 ></div >< div class="col-md-11">< h3 class="modal-title" id="dataConfirmLabel">'+title+'</h3 ></div ></h3 ></div >< div class="modal-body"></div >< div class="modal-footer">< button type="button" class="btn btn-default" data-dismiss="modal" aria-hidden="true">Abbrechen</button >< a type="button" class="btn btn-danger" id="dataConfirmOK">< i class="'+icon+'"></i > L öschen</a ></div ></div ></div ></div >');} $(modal).find('.modal-body').text($(this).attr('data-confirm'));$('#dataConfirmOK').attr('href', href);$(modal).modal({show:true});return false;});$('#terminateUser').click(function() { var terminate=window.confirm("ACHTUNG!\nDas wird Deinen Account permanent deaktivieren.\n"+"Bist Du Dir sicher, dass Du das tun willst?");if(terminate===true) { var terminateUser=window.confirm("Bist Du Dir wirklich ganz sicher?\n"+"Diese Aktion kann nicht rueckgaengig gemacht werden.");if(terminateUser===true) { $.get('system/templates/YaWK-bootstrap3/js/terminate-user.php', function(data) { if(data==="true") { setTimeout("window.location='logout.html'", 0);} else { alert("Fehler: "+data);} });} } });function dismissNotifications() { $.ajax({ url:'js/dismiss-notifications.php', type:'POST', success:function(data) { if(!data) { alert('Something went wrong!');return false;} } });$("#bell-label").fadeOut();$('#notification-header').html('You have 0 notifications');$('#notification-menu').fadeOut();} $("#dismiss").click(function() { dismissNotifications();});function disableButtons(delay) { $('#loginButton').removeClass().addClass('btn btn-success disabled').attr('id', 'LOGIN_FORBIDDEN');$('#resetPasswordButton').removeClass().addClass('btn btn-danger disabled');setTimeout(function() { $('#LOGIN_FORBIDDEN').attr('id', 'loginButton').removeClass().addClass('btn btn-success');$('#resetPasswordButton').removeClass().addClass('btn btn-danger');}, delay);} $("#loginButton").click(function(){ if($('#loginButton').length > 0) { if($('#loginButton').hasClass('btn') &&$('#loginButton').hasClass('btn-success') &&$('#loginButton').hasClass('disabled')) { } else { $("#loginForm").submit();disableButtons(10000);} } else if($('#LOGIN_FORBIDDEN').length > 0) { if($('#LOGIN_FORBIDDEN').hasClass('btn') &&$('#LOGIN_FORBIDDEN').hasClass('btn-success') &&$('#LOGIN_FORBIDDEN').hasClass('disabled')) { } else { } } });$("#blockedBtn").hover(function() { $("#blockedBtn").hide();$("#askBtn").fadeIn(820);});})