YaWK  24.1
Yet another WebKit
settings.php
Go to the documentation of this file.
1 <!-- color picker -->
2 <script type="text/javascript" src="../system/engines/jquery/jscolor/jscolor.js"></script>
3 <!-- --><script type="text/javascript" src="../system/engines/jquery/bootstrap-tabcollapse.js"></script>
4 <!-- JS GO -->
5 
6 <script type="text/javascript">
7  function saveHotkey() {
8  // simply disables save event for chrome
9  $(window).keypress(function (event) {
10  if (!(event.which === 115 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) && !(event.which === 19)) return true;
11  event.preventDefault();
12  formmodified=0; // do not warn user, just save.
13  return false;
14  });
15  // used to process the cmd+s and ctrl+s events
16  $(document).keydown(function (event) {
17  if (event.which === 83 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) {
18  event.preventDefault();
19  $('#savebutton').click(); // SAVE FORM AFTER PRESSING STRG-S hotkey
20  formmodified=0; // do not warn user, just save.
21  // save(event);
22  return false;
23  }
24  });
25  }
26  saveHotkey();
27  $(document).ready(function()
28  {
29  // textarea that will be transformed into editor
30  const savebutton = ('#savebutton');
31  const savebuttonIcon = ('#savebuttonIcon');
32  // textarea that will be transformed into editor
33  const editor = ('textarea#summernote');
34  // ok, lets go...
35  // we need to check if user clicked on save button
36  $(savebutton).click(function() {
37  $(savebutton).removeClass('btn btn-success').addClass('btn btn-warning disabled');
38  $(savebuttonIcon).removeClass('fa fa-check').addClass('fa fa-spinner fa-spin fa-fw');
39 
40  if ($(editor).summernote('codeview.isActivated')) {
41  // if so, turn it off.
42  $(editor).summernote('codeview.deactivate');
43  }
44  });
45  const backendFooter = $('#backendFooter');
46  const backendFooterValueLeft = $('#backendFooterValueLeft');
47  const backendFooterValueRight = $('#backendFooterValueRight');
48  const backendFooterCopyright = $('#backendFooterCopyright');
49  const backendLogoUrl = $('#backendLogoUrl');
50  const backendLogoText = $('#backendLogoText');
51  const backendLogoSubText = $('#backendLogoSubText');
52  const backendFX = $('#backendFX');
53  const backendFXtype = $('#backendFXtype');
54  const backendFXtime = $('#backendFXtime');
55  const timediff = $('#timediff');
56  const timedifftext = $('#timedifftext');
57  const offline = $('#offline');
58  const offlinemsg = $('#offlinemsg');
59  const offlineimage = $('#offlineimage');
60 
61  /* START CHECKBOX backend footer */
62  // check backend footer checkbox STATUS ONLOAD
63  if( $(backendFooter).prop('checked')){
64  // box is checked, set input field to NOT disabled
65  $(backendFooterValueLeft).prop('disabled', false);
66  $(backendFooterValueRight).prop('disabled', false);
67  $(backendFooterCopyright).prop('disabled', false);
68  }
69  else {
70  // box is not checked, set field to disabled
71  $(backendFooterValueLeft).prop('disabled', true);
72  $(backendFooterValueRight).prop('disabled', true);
73  $(backendFooterCopyright).prop('disabled', true);
74  }
75  // check wheter the footer checkbox IS CLICKED
76  $(backendFooter).click(function(){ // if user clicked save
77  if( $('#backendFooter').prop('checked')){
78  // box is checked, set input field to NOT disabled
79  $(backendFooterValueLeft).prop('disabled', false);
80  $(backendFooterValueRight).prop('disabled', false);
81  $(backendFooterCopyright).prop('disabled', false);
82  }
83  else {
84  // set footer value input field to disabled
85  $(backendFooterValueLeft).prop('disabled', true);
86  $(backendFooterValueRight).prop('disabled', true);
87  $(backendFooterCopyright).prop('disabled', true);
88  }
89  });
90  // check whether the footer copyright checkbox is clicked
91  $(backendFooterCopyright).click(function(){ // if user clicked save
92  if( $(backendFooterCopyright).prop('checked')){
93  // box is checked, set input field to NOT disabled
94  $(backendFooterValueLeft).prop('disabled', true);
95  $(backendFooterValueRight).prop('disabled', true);
96  }
97  else {
98  // set footer value input field to disabled
99  $(backendFooterValueLeft).prop('disabled', false);
100  $(backendFooterValueRight).prop('disabled', false);
101  }
102  });
103  /* END CHECKBOX backend footer */
104 
105  /* START CHECKBOX backend logo */
106  // check backend footer checkbox onload
107  if( $(backendLogoUrl).prop('checked')){
108  // box is checked, set input field to NOT disabled
109  $(backendLogoText).prop('disabled', true);
110  $(backendLogoSubText).prop('disabled', true);
111  }
112  else {
113  // box is not checked, set field to disabled
114  $(backendLogoText).prop('disabled', false);
115  $(backendLogoSubText).prop('disabled', false);
116  }
117  // check whether the checkbox is clicked
118  $(backendLogoUrl).click(function(){ // if user clicked save
119  if( $(backendLogoUrl).prop('checked')){
120  // box is checked, set input field to NOT disabled
121  $(backendLogoText).prop('disabled', true);
122  $(backendLogoSubText).prop('disabled', true);
123  }
124  else {
125  // set footer value input field to disabled
126  $(backendLogoText.prop('disabled', false);
127  $(backendLogoSubText).prop('disabled', false);
128  }
129  });
130  /* END CHECKBOX backend logo */
131 
132  /* START CHECKBOX backend fx */
133  // check backend footer checkbox onload
134  if( $(backendFX).prop('checked')){
135  // box is checked, set input field to NOT disabled
136  $(backendFXtype).prop('disabled', false);
137  $(backendFXtime).prop('disabled', false);
138  }
139  else {
140  // box is not checked, set field to disabled
141  $(backendFXtype).prop('disabled', true);
142  $(backendFXtime).prop('disabled', true);
143  }
144  // check wheter the checkbox is clicked
145  $(backendFX).click(function(){ // if user clicked save
146  if( $(backendFX).prop('checked')){
147  // box is checked, set input field to NOT disabled
148  $(backendFXtype).prop('disabled', false);
149  $(backendFXtime).prop('disabled', false);
150  }
151  else {
152  // set footer value input field to disabled
153  $(backendFXtype).prop('disabled', true);
154  $(backendFXtime).prop('disabled', true);
155  }
156  });
157  /* END CHECKBOX backend fx */
158 
159  /* START CHECKBOX timediff */
160  // check backend footer checkbox onload
161  if( $(timediff).prop('checked')){
162  // box is checked, set input field to NOT disabled
163  $(timedifftext).prop('disabled', false);
164  }
165  else {
166  // box is not checked, set field to disabled
167  $(timedifftext).prop('disabled', true);
168  }
169  // check wheter the checkbox is clicked
170  $(timediff).click(function(){ // if user clicked save
171  if( $(timediff).prop('checked')){
172  // box is checked, set input field to NOT disabled
173  $(timedifftext).prop('disabled', false);
174  }
175  else {
176  // set footer value input field to disabled
177  $(timedifftext).prop('disabled', true);
178  }
179  });
180  /* END CHECKBOX backend footer */
181 
182  /* START CHECKBOX offline mode */
183  // check backend footer checkbox onload
184  if( $(offline).prop('checked')){
185  // box is checked, set input field to NOT disabled
186  $(offlinemsg).prop('disabled', false);
187  $(offlineimage).prop('disabled', false);
188  }
189  else {
190  // box is not checked, set field to disabled
191  $(offlinemsg).prop('disabled', true);
192  $(offlineimage).prop('disabled', true);
193  }
194  // check wheter the checkbox is clicked
195  $(offline).click(function(){ // if user clicked save
196  if( $(offline).prop('checked')){
197  // box is checked, set input field to NOT disabled
198  $(offlinemsg).prop('disabled', false);
199  $(offlineimage).prop('disabled', false);
200  }
201  else {
202  // set footer value input field to disabled
203  $(offlinemsg).prop('disabled', true);
204  $(offlineimage).prop('disabled', true);
205  }
206  });
207  /* END CHECKBOX backend fx */
208 
209  formmodified=0; // status
210  $('form *').change(function(){ // if form has changed
211  formmodified=1; // set status
212  $('#savebutton').click(function(){ // if user clicked save
213  formmodified=0; // do not warn user, just save.
214  });
215  });
216  // now the function:
217  window.onbeforeunload = confirmExit; // before close
218  function confirmExit() { // dialog
219  if (formmodified === 1) { // if form has changed
220  return "Your changes may not be saved. Do you wish to leave the page?";
221  }
222  }
223  // call tabCollapse: make the default bootstrap tabs responsive for handheld devices
224  $('#tabs').tabCollapse({
225  tabsClass: 'hidden-sm hidden-xs',
226  accordionClass: 'visible-sm visible-xs'
227  });
228  });
229 </script>
230 <?php
231 
232 use YAWK\alert;
233 use YAWK\backend;
234 use YAWK\db;
235 use YAWK\language;
236 use YAWK\settings;
237 use YAWK\sys;
238 use YAWK\template;
239 
240 /** @var $db db */
241 /** @var $lang language */
242 
243 // SAVE tpl settings
244 if(isset($_POST['save']))
245 { // loop through $_POST items
246  foreach ($_POST as $property => $value) {
247  if ($property != "save") {
248  // check setting and call corresponding function
249  if (substr($property, -5, 5) == '-long')
250  { // LONG VALUE SETTINGS
251  if (!settings::setLongSetting($db, $property, $value))
252  { // throw error
253  alert::draw("warning", "Error", "Long Settings: Could not set long value <b>$value</b> of property <b>$property</b>","plugin=signup","4800");
254  }
255  }
256  else
257  {
258  if ($property === "selectedTemplate")
259  {
260  template::setTemplateActive($db, $value);
261  }
262 
263  // ensure, that new backend language gets stored as cookie
264  if ($property === "backendLanguage")
265  { // we use a small line of JS to achieve this
266  echo "<script>document.cookie = 'lang=$value';</script>";
267  }
268 
269  // save value of property to database
270  settings::setSetting($db, $property, $value, $lang);
271  }
272 
273  if ($property === "robotsText-long")
274  {
275  sys::setRobotsText("../", $value);
276  }
277  }
278 
279  }
280  // to ensure that language switching works correctly, reload page with given POST language
281  sys::setTimeout("index.php?page=settings-system&lang=$_POST[backendLanguage]", 0);
282 }
283 ?>
284 
285 <?php
286 // get settings for editor
287 $editorSettings = settings::getEditorSettings($db, 14);
288 ?>
289 <!-- include summernote css/js-->
290 <!-- include codemirror (codemirror.css, codemirror.js, xml.js) -->
291 <link rel="stylesheet" type="text/css" href="../system/engines/codemirror/codemirror.min.css">
292 <link rel="stylesheet" type="text/css" href="../system/engines/codemirror/themes/<?php echo $editorSettings['editorTheme']; ?>.css">
293 <link rel="stylesheet" type="text/css" href="../system/engines/codemirror/show-hint.min.css">
294 <script type="text/javascript" src="../system/engines/codemirror/codemirror-compressed.js"></script>
295 <script type="text/javascript" src="../system/engines/codemirror/auto-refresh.js"></script>
296 
297 <!-- SUMMERNOTE -->
298 <link href="../system/engines/summernote/dist/summernote.css" rel="stylesheet">
299 <script src="../system/engines/summernote/dist/summernote.min.js"></script>
300 <script src="../system/engines/summernote/dist/summernote-cleaner.js"></script>
301 <script src="../system/engines/summernote/dist/summernote-image-attributes.js"></script>
302 <script src="../system/engines/summernote/dist/summernote-floats-bs.js"></script>
303 <script type="text/javascript">
304  $(document).ready(function() {
305  // textarea that will be transformed into editor
306  var editor = ('textarea#summernote');
307  // summernote.init -
308  // LOAD SUMMERNOTE IN CODEVIEW ON STARTUP
309  $(editor).on('summernote.init', function() {
310  // toggle editor to codeview
311  $(editor).summernote('codeview.toggle');
312  });
313 
314  // INIT SUMMERNOTE EDITOR
315  $(editor).summernote({ // set editor itself
316  height: <?php echo $editorSettings['editorHeight']; ?>, // set editor height
317  minHeight: null, // set minimum height of editor
318  maxHeight: null, // set maximum height of editor
319  focus: true, // set focus to editable area after initializing summernote
320 
321  toolbar:
322  {
323  // no toolbar
324  },
325  // language for plugin image-attributes.js
326  lang: '<?php echo $lang['CURRENT_LANGUAGE']; ?>',
327 
328  // powerup the codeview with codemirror theme
329  codemirror: { // codemirror options
330  theme: '<?php echo $editorSettings['editorTheme']; ?>', // codeview theme
331  lineNumbers: true, // display lineNumbers true|false
332  undoDepth: <?php echo $editorSettings['editorUndoDepth']; ?>, // how many undo steps should be saved? (default: 200)
333  smartIndent: <?php echo $editorSettings['editorSmartIndent']; ?>, // better indent
334  indentUnit: <?php echo $editorSettings['editorIndentUnit']; ?>, // how many spaces auto indent? (default: 2)
335  scrollbarStyle: null, // styling of the scrollbars
336  matchBrackets: <?php echo $editorSettings['editorMatchBrackets']; ?>, // highlight corresponding brackets
337  autoCloseBrackets: <?php echo $editorSettings['editorCloseBrackets'];?>, // auto insert close brackets
338  autoCloseTags: <?php echo $editorSettings['editorCloseTags']; ?>, // auto insert close tags after opening
339  value: "<html>\n " + document.documentElement.innerHTML + "\n</html>", // all html
340  mode: "css", // editor mode
341  matchTags: {bothTags: <?php echo $editorSettings['editorMatchTags']; ?>}, // hightlight matching tags: both
342  extraKeys: {
343  "Ctrl-J": "toMatchingTag", // CTRL-J to jump to next matching tab
344  "Ctrl-Space": "autocomplete" // CTRL-SPACE to open autocomplete window
345  },
346  styleActiveLine: <?php echo $editorSettings['editorActiveLine']; ?>, // highlight the active line (where the cursor is)
347  autoRefresh: true
348  },
349 
350  // plugin: summernote-cleaner.js
351  // this allows to copy/paste from word, browsers etc.
352  cleaner: { // does the job well: no messy code anymore!
353  action: 'button', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
354  newline: '<br>' // Summernote's default is to use '<p><br></p>'
355  }
356  }); // end summernote
357  }); // end document ready
358 </script>
359 
360 <?php
361 
362 // TEMPLATE WRAPPER - HEADER & breadcrumbs
363 echo "
364  <!-- Content Wrapper. Contains page content -->
365  <div class=\"content-wrapper\" id=\"content-FX\">
366  <!-- Content Header (Page header) -->
367  <section class=\"content-header\">";
368 // draw Title on top
369 echo backend::getTitle($lang['SETTINGS'], $lang['SETTINGS_SYSTEM_SUBTEXT']);
370 echo"<ol class=\"breadcrumb\">
371  <li><a href=\"index.php\" title=\"$lang[DASHBOARD]\"><i class=\"fa fa-dashboard\"></i> $lang[DASHBOARD]</a></li>
372  <li><a href=\"index.php?page=settings-system\" class=\"active\" title=\"$lang[SETTINGS_EDIT]\"> $lang[SETTINGS_EDIT]</a></li>
373  </ol></section>
374  <!-- Main content -->
375  <section class=\"content\">";
376 /* page content start here */
377 // \YAWK\template::checkWrapper($lang, "SETTINGS", "SETTINGS_SYSTEM_SUBTEXT");
378 ?>
379 <div class="box box-default">
380  <div class="box-body">
381 
382 <form id="template-edit-form" action="index.php?page=settings-system" method="POST">
383  <!-- <div class="nav-tabs-custom"> --> <!-- admin LTE tab style -->
384  <div id="btn-wrapper" class="text-right">
385  <button type="submit" id="savebutton" name="save" class="btn btn-success">
386  <i id="savebuttonIcon" class="fa fa-check"></i> &nbsp;<?php print $lang['SAVE_SETTINGS']; ?>
387  </button>
388  </div>
389  <!-- FORM -->
390  <!-- Nav tabs -->
391  <ul class="nav nav-tabs" id="tabs" role="tablist">
392  <li class="active"><a href="#overview" aria-controls="overview" role="tab" data-toggle="tab"><i class="fa fa-home"></i>&nbsp; <?php echo $lang['OVERVIEW'] ?></a></li>
393  <li><a href="#frontend" aria-controls="frontend" role="tab" data-toggle="tab"><i class="fa fa-globe"></i>&nbsp; <?php echo $lang['FRONTEND'] ?></a></li>
394  <li><a href="#backend" aria-controls="backend" role="tab" data-toggle="tab"><i class="fa fa-wrench"></i>&nbsp; <?php echo $lang['BACKEND'] ?></a></li>
395  <li><a href="#system" aria-controls="system" role="tab" data-toggle="tab"><i class="fa fa-gears"></i>&nbsp; <?php echo $lang['SYSTEM'] ?></a></li>
396  <li><a href="#database" aria-controls="database" role="tab" data-toggle="tab"><i class="fa fa-database"></i>&nbsp; <?php echo $lang['DATABASE'] ?></a></li>
397  <li><a href="#robots" aria-controls="robots" role="tab" data-toggle="tab"><i class="fa fa-android"></i>&nbsp; <?php echo $lang['ROBOTS_TXT'] ?></a></li>
398  <li><a href="#language" aria-controls="language" role="tab" data-toggle="tab"><i class="fa fa-language"></i>&nbsp; <?php echo $lang['LANGUAGES'] ?></a></li>
399  <li><a href="#info" aria-controls="info" role="tab" data-toggle="tab"><i class="fa fa-info-circle"></i>&nbsp; <?php echo $lang['INFO'] ?></a></li>
400  </ul>
401 
402  <!-- Tab panes -->
403  <div class="tab-content">
404  <!-- OVERVIEW -->
405  <div role="tabpanel" class="tab-pane active" id="overview">
406  <h3><?php echo $lang['OVERVIEW']; ?> <small><?php echo $lang['SETTINGS_SYSTEM_SUBTEXT']; ?></small></h3>
407  <div class="row animated fadeIn">
408  <div class="col-md-8">
409  <div class="box">
410  <div class="box-header with-border">
411  <h3 class="box-title"><?php echo $lang['SETTINGS']; ?> <small><?php echo $lang['SETTINGS_SUBTEXT']; ?> </small></h3>
412  </div>
413  <div class="box-body">
414  <?php // print_r($settings);
416  $settings = settings::getAllSettingsIntoArray($db);
417  // echo "<pre>"; echo print_r($lang); echo "</pre>";
418 
419  ?>
420  </div>
421  </div>
422  </div>
423  <div class="col-md-4">
424  <?php settings::getFormElements($db, $settings, 1, $lang); ?>
425  </div>
426  </div>
427  </div>
428 
429  <!-- FRONTEND -->
430  <div role="tabpanel" class="tab-pane" id="frontend">
431  <h3><?php echo $lang['FRONTEND']; ?> <small><?php echo $lang['FRONTEND_SUBTEXT']; ?></small></h3>
432  <!-- frontend settings -->
433  <div class="row animated fadeIn">
434  <div class="col-md-4">
435  <!-- theme selector -->
436  <?php settings::getFormElements($db, $settings, 3, $lang); ?>
437  </div>
438  <div class="col-md-4">
439  <!-- publish settings -->
440  <?php settings::getFormElements($db, $settings, 7, $lang); ?>
441  <!-- user login settings -->
442  <?php settings::getFormElements($db, $settings, 17, $lang); ?>
443  </div>
444  <div class="col-md-4">
445  <!-- maintenance mode -->
446  <?php settings::getFormElements($db, $settings, 8, $lang); ?>
447  </div>
448  </div>
449  </div>
450 
451  <!-- BACKEND SETTINGS -->
452  <div role="tabpanel" class="tab-pane" id="backend">
453  <h3><?php echo $lang['BACKEND']; ?> <small><?php echo $lang['BACKEND_SUBTEXT']; ?></small></h3>
454  <!-- backend settings -->
455  <div class="row animated fadeIn">
456  <div class="col-md-4">
457  <!-- backend settings -->
458  <?php settings::getFormElements($db, $settings, 2, $lang); ?>
459  <?php // \YAWK\settings::getFormElements($db, $settings, 19, $lang); ?>
460  <?php settings::getFormElements($db, $settings, 20, $lang); ?>
461  </div>
462  <div class="col-md-4">
463  <!-- footer settings -->
464  <?php settings::getFormElements($db, $settings, 11, $lang); ?>
465  </div>
466  <div class="col-md-4">
467  <?php settings::getFormElements($db, $settings, 12, $lang); ?>
468  </div>
469  </div>
470  </div>
471 
472  <!-- SYSTEM TAB -->
473  <div role="tabpanel" class="tab-pane" id="system">
474  <!-- system settings -->
475  <div class="row animated fadeIn">
476  <div class="col-md-4">
477  <!-- server seettings -->
478  <h3><?php echo $lang['SERVER']; ?> <small> <?php echo $lang['SERVER_SUBTEXT']; ?></small></h3>
479  <?php settings::getFormElements($db, $settings, 9, $lang); ?>
480  <?php settings::getFormElements($db, $settings, 16, $lang); ?>
481  </div>
482  <div class="col-md-4">
483  <!-- database settings -->
484  <?php settings::getFormElements($db, $settings, 13, $lang); ?>
485  </div>
486  <div class="col-md-4">
487  <!-- syslog settings -->
488  <h3><i class="fa fa-code"></i> <?php echo $lang['EDITOR']; ?> <small> <?php echo $lang['EDITOR_SUBTEXT']; ?></small></h3>
489  <?php settings::getFormElements($db, $settings, 14, $lang); ?>
490  </div>
491  </div>
492  </div>
493 
494  <!-- DATABASE -->
495  <div role="tabpanel" class="tab-pane" id="database">
496  <h3><?php echo $lang['DATABASE']; ?> <small><?php echo $lang['DATABASE_SUBTEXT']; ?></small></h3>
497  <div class="row animated fadeIn">
498  <div class="col-md-8">
499  <div class="box">
500  <div class="box-header with-border">
501  <h3 class="box-title"><?php echo $lang['SETTINGS']; ?> <small><?php echo $lang['SETTINGS_SUBTEXT']; ?> </small></h3>
502  </div>
503  <div class="box-body">
504  <?php
505  // echo "<h2>Language Array</h2><pre>"; echo print_r($lang); echo "</pre>";
506 
507  $dbTables = $db->get_tables();
508  echo "<table id=\"table-sort\" class=\"table table-striped table-hover table-condensed table-responsive table-bordered\">
509  <tr class=\"text-bold\"><td>ID</td>
510  <td>TABLE</td>
511  </tr>";
512  foreach ($dbTables AS $id=>$table)
513  {
514  echo "<tr><td>$id</td><td>$table</td></tr>";
515  }
516  echo "</table>";
517  ?>
518  </div>
519  </div>
520  </div>
521  <div class="col-md-4">
522  <!-- syslog settings -->
523  <h3><?php // echo $lang['SYSLOG']; ?> <small> <?php // echo $lang['SETTINGS']; ?></small></h3>
524  <?php // \YAWK\settings::getFormElements($db, $settings, 0, $lang); ?>
525  </div>
526  </div>
527  </div>
528 
529  <!-- ROBOTS.TXT -->
530  <div role="tabpanel" class="tab-pane" id="robots">
531  <h3><i class="fa fa-android"></i> <?php echo $lang['ROBOTS_TXT']; ?> <small><?php echo $lang['CONFIGURE']; ?></small></h3>
532  <div class="row animated fadeIn">
533  <div class="col-md-8">
534  <div class="box">
535  <div class="box-header with-border">
536  <h3 class="box-title"><?php echo $lang['DATA_PRIVACY']."&nbsp;&amp;&nbsp;".$lang['PRIVACY']; ?> <small><?php echo $lang['ROBOTS_SUBTEXT']; ?> </small></h3>
537  </div>
538  <div class="box-body">
539  <label for="summernote"></label>
540  <?php $content = sys::getRobotsText($db, "../"); ?>
541  <textarea name="robotsText-long" cols="64" rows="28" id="summernote"><?php echo $content; ?></textarea>
542  </div>
543  </div>
544  </div>
545  <div class="col-md-4">
546 
547  <div class="box">
548  <div class="box-header with-border">
549  <h3 class="box-title"><?php echo $lang['ROBOTS_TXT']; ?> <small> <?php echo $lang['HELP']; ?></small></h3>
550  </div>
551  <div class="box-body">
552  <?php // \YAWK\settings::getFormElements($db, $settings, 0, $lang); ?>
553  </div>
554  </div>
555  </div>
556  </div>
557  </div>
558 
559  <!-- LANGUAGE -->
560  <div role="tabpanel" class="tab-pane" id="language">
561  <h3><?php echo $lang['LANGUAGES']; ?> <small>&amp; <?php echo $lang['TRANSLATION']; ?></small></h3>
562  <div class="row animated fadeIn">
563  <div class="col-md-8">
564  <div class="box">
565  <div class="box-body">
566  <?php
567  // echo "<pre>"; echo print_r($lang); echo "</pre>";
568  ?>
569  <label for="languageContent">Language File Content</label>
570  <textarea id="languageContent" name="languageContent" rows="30" class="form-control"></textarea>
571  <div id="textbox"></div>
572  </div>
573  </div>
574  </div>
575  <div class="col-md-4">
576  <?php // \YAWK\settings::getFormElements($db, $settings, 0, $lang); ?>
577  <div class="box">
578  <div class="box-header with-border">
579  <h3 class="box-title">Sprache <small>festlegen</small></h3>
580  </div>
581  <div class="box-body">
582  <?php settings::getFormElements($db, $settings, 19, $lang) ?>
583  </div>
584  </div>
585  <div class="box">
586  <div class="box-header with-border">
587  <h3 class="box-title">&Uuml;bersetzung <small>bearbeiten</small></h3>
588  </div>
589  <div class="box-body">
590  <label id="editLanguageSelectLabel" for="editLanguageSelect">welche Sprache möchtest Du bearbeiten?</label>
591  <select id="editLanguageSelect" name="editLanguageSelect" class="form-control">
592  <option>bitte auswählen</option>
593  <option value="language/lang-de-DE.ini">de-DE</option>
594  <option value="language/lang-en-EN.ini">en-EN</option>
595  </select>
596  <div id="editLanguageFooter">
597  <button id="editLanguageBtn" class="btn btn-success pull-right" style="margin-top:5px;"><i class="fa fa-save"></i> &nbsp;speichern</button>
598  <a href="#" id="cancelLanguageBtn" class="btn btn-danger pull-right hidden" style="margin-top:5px; margin-right:2px;"><i class="fa fa-times"></i> &nbsp;abbrechen</a>
599  </div>
600  </div>
601  </div>
602  <div class="box">
603  <div class="box-header with-border">
604  <h3 class="box-title"><?php echo $lang['LANGUAGES']; ?> <small>zurücksetzen</small></h3>
605  </div>
606  <div class="box-body">
607  <i class="fa fa-exclamation-triangle text-danger"></i>&nbsp;&nbsp;Setzt alle Sprachen auf Werkseinstellung zur&uuml;ck.
608  <button class="btn btn-default pull-right"><i class="fa fa-language text-danger"></i>&nbsp;&nbsp;Backup laden</button>
609  </div>
610  </div>
611  </div>
612  </div>
613  </div>
614 
615  <!-- INFO -->
616  <div role="tabpanel" class="tab-pane" id="info">
617  <h3><?php echo $lang['INFO']; ?> <small><?php echo $lang['INFO_SUBTEXT']; ?></small></h3>
618  <div class="row animated fadeIn">
619  <div class="col-md-8">
620  <div class="box">
621  <div class="box-header with-border">
622  <h3 class="box-title"><?php echo $lang['SETTINGS']; ?> <small><?php echo $lang['SETTINGS_SUBTEXT']; ?> </small></h3>
623  </div>
624  <div class="box-body">
625  ...
626  </div>
627  </div>
628  </div>
629  <div class="col-md-4">
630  <!-- syslog settings -->
631  <h3><?php echo $lang['SYSLOG']; ?> <small> <?php echo $lang['SETTINGS']; ?></small></h3>
632  <?php settings::getFormElements($db, $settings, 0, $lang); ?>
633  </div>
634  </div>
635  </div>
636 
637 
638  </div>
639  <!-- </div> <!-- ./ nav-tabs-custom -->
640 </form>
641 
642  </div>
643 </div>
644 
645 
646 <script type="text/javascript">
647  // to ensure, that user can edit the language, we need this piece of jquery code
648 
649  // edit language selected
650  $('#editLanguageSelect').on('change', function()
651  {
652  // prepare vars
653  fn = this.value; // language file
654  languageContent = $("#languageContent");
655  editlanguageSelectLabel = $("#editLanguageSelectLabel");
656  editLanguageSelect = $("#editLanguageSelect");
657  cancelLanguageBtn = $("#cancelLanguageBtn");
658  editLanguageBtn = $("#languageEditBtn");
659 
660  // load language file content into textarea
661  $(languageContent).load( this.value, function() {
662  // alert( "Load was performed." );
663 
664  // change label to tell user which file he is editing
665  $(editlanguageSelectLabel).empty().append('<?php // echo $lang['EDIT'].":"; ?> admin/'+fn);
666  // turn off editLangue Select field
667  $(editLanguageSelect).prop('disabled', true);
668  // make cancel button visible
669  $(cancelLanguageBtn).removeClass('btn btn-danger pull-right hidden').addClass('btn btn-danger pull-right');
670  // change class (color) of savebutton
671  $(editLanguageBtn).removeClass('btn btn-success').addClass('btn btn-warning');
672 
673  // if cancel language btn is clicked
674  $(cancelLanguageBtn).click(function() {
675  // reset select options, enable it and set back to default: first option
676  $(editLanguageSelect).prop('disabled', false).val($("#editLanguageSelect option:first").val());
677  // reset label to default text
678  $(editLanguageSelectLabel).text('welche Sprache möchtest Du bearbeiten?');
679  // hide cancel button
680  $(cancelLanguageBtn).removeClass('btn btn-danger pull-right').addClass('btn btn-danger pull-right hidden');
681  // reset save language button
682  $(editLanguageBtn).removeClass('btn btn-warning pull-right').addClass('btn btn-success pull-right');
683  // reset textarea (clear it)
684  $(languageContent).text('');
685  });
686 
687  // if save language btn is clicked
688  $(editLanguageBtn).click(function() {
689  // release (enable) select options field
690  $(editLanguageSelect).prop('disabled', false);
691  // hide cancel button
692  $(cancelLanguageBtn).removeClass('btn btn-danger pull-right').addClass('btn btn-danger pull-right hidden');
693  });
694 
695  });
696  });
697 </script>
print $lang['SAVE_SETTINGS']
Definition: settings.php:292
if(isset($_POST['save'])) $editorSettings
Definition: settings.php:287
$i_settings
Definition: settings.php:415
</div ></div ></div ><!-- ROBOTS.TXT -->< div role="tabpanel" class="tab-pane" id="robots">< h3 >< i class="fa fa-android"></i > $content
Definition: settings.php:540
$dbTables
Definition: settings.php:507
$settings
Definition: settings.php:416
bersetzung< small > bearbeiten</small ></h3 ></div >< div class="box-body">< label id="editLanguageSelectLabel" for="editLanguageSelect"> welche Sprache möchtest Du bearbeiten</label >< select id="editLanguageSelect" name="editLanguageSelect" class="form-control">< option > bitte auswählen</option >< option value="language/lang-de-DE.ini"> de DE</option >< option value="language/lang-en-EN.ini"> en EN</option ></select >< div id="editLanguageFooter">< button id="editLanguageBtn" class="btn btn-success pull-right" style="margin-top:5px;">< i class="fa fa-save"></i > & nbsp
Definition: settings.php:597
Throws a fancy Bootstrap Alert (success, info, warning or danger)
Definition: alert.php:19
Backend class serves a few useful functions for the admin backend.
Definition: backend.php:27
Mysqli database class; returns db connection object.
Definition: db.php:16
The language class - support multilingual backend.
Definition: language.php:17
Settings class: get and set YaWK system settings.
Definition: settings.php:9
The sys class - handles yawk's system core functions.
Definition: sys.php:17
The template controller - get and set template settings.
Definition: template.php:16
if(!isset($db)) $id
function window
Definition: fuckAdBlock.js:8
FuckAdBlock prototype on
Definition: fuckAdBlock.js:227
function a
Definition: browser.js:14
c jPlayer event
type
Definition: menu-new.php:35
function i(e, t)
Definition: plyr.js:1
$template name
$value
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 &ouml;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);});})