YaWK  24.1
Yet another WebKit
widget-edit.php
Go to the documentation of this file.
1 <script type="text/javascript">
2  function saveHotkey() {
3  // simply disables save event for chrome
4  $(window).keypress(function (event) {
5  if (!(event.which === 115 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) && !(event.which === 19)) return true;
6  event.preventDefault();
7  formmodified=0; // do not warn user, just save.
8  return false;
9  });
10  // used to process the cmd+s and ctrl+s events
11  $(document).keydown(function (event) {
12  if (event.which === 83 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) {
13  event.preventDefault();
14  $('#savebutton').click(); // SAVE FORM AFTER PRESSING STRG-S hotkey
15  formmodified=0; // do not warn user, just save.
16  // save(event);
17  return false;
18  }
19  });
20  }
21  saveHotkey();
22  $(document).ready(function() {
23  // textarea that will be transformed into editor
24  const savebutton = ('#savebutton');
25  const savebuttonIcon = ('#savebuttonIcon');
26  // ok, lets go...
27  // we need to check if user clicked on save button
28  $(savebutton).click(function() {
29  $(savebutton).removeClass('btn btn-success').addClass('btn btn-warning');
30  $(savebuttonIcon).removeClass('fa fa-check').addClass('fa fa-spinner fa-spin fa-fw');
31  });
32  });
33 
34 
35 </script>
36 <!-- color picker -->
37 <script type="text/javascript" src="../system/engines/jquery/jscolor/jscolor.js"></script>
38 <!-- Bootstrap toggle css -->
39 <link rel="stylesheet" href="../system/engines/bootstrap-toggle/css/bootstrap-toggle.css">
40 <!-- Bootstrap toggle js -->
41 <script type="text/javascript" src="../system/engines/bootstrap-toggle/js/bootstrap-toggle.min.js"></script>
42 <?php
43 
44 use YAWK\alert;
45 use YAWK\backend;
46 use YAWK\db;
47 use YAWK\language;
48 use YAWK\sys;
49 use YAWK\template;
50 use YAWK\widget;
51 
52 /** @var $db db */
53 /** @var $lang language */
54 /* page content start here */
55 // check if widget obj is set
56 if (!isset($widget))
57 { // create new widget object
58  $widget = new widget();
59 }
60 // check given widget var...
61 if (isset($_GET['widget']) && is_numeric($_GET['widget']))
62 { // load widget properties
63  $widget->loadProperties($db, $_GET['widget']);
64 }
65 else
66 { // var not set or manipulated...
67  alert::draw("danger","$lang[ERROR]", "$lang[VARS_MANIPULATED]","page=widgets","5000");
68 }
69 
70 // USER CLICKED ON SAVE
71 if(isset($_POST['save']))
72 { // escape form vars
73  $widget->published = $db->quote($_POST['publish']);
74  $widget->pageID = $db->quote($_POST['pageID']);
75  $widget->widgetType = $db->quote($_POST['widgetType']);
76  $widget->sort = $db->quote($_POST['sort']);
77  $widget->position = $db->quote($_POST['positions']);
78  $widget->marginTop = $db->quote($_POST['marginTop']);
79  $widget->marginBottom = $db->quote($_POST['marginBottom']);
80  $widget->date_publish = $db->quote($_POST['date_publish']);
81  $widget->date_unpublish = $db->quote($_POST['date_unpublish']);
82  $widget->widgetTitle = $db->quote($_POST['widgetTitle']);
83  $widget->blocked = isset($_POST['mystatus']);
84 
85  // if date publish is not set, set it to current datetime
86  if (empty($widget->date_publish)) { $widget->date_publish = sys::now(); }
87 
88  // save widget state
89  if ($widget->save($db) === true)
90  {
91  alert::draw("success", "$lang[SUCCESS]", "$lang[WIDGET] $lang[SETTINGS] $lang[SAVED]", "","1200");
92  }
93  else
94  {
95  alert::draw("danger", "$lang[ERROR]", "$lang[WIDGET] $lang[SETTINGS] $lang[NOT_SAVED]", "","2400");
96  }
97 
98  foreach($_POST as $property=>$value)
99  {
100  if($property != "save")
101  {
102  if (isset($_GET['widget']) && is_numeric($_GET['widget']))
103  { // save widget settings
104  YAWK\settings::setWidgetSetting($db, $property, $value, $_GET['widget']);
105  }
106  }
107  }
108 }
109 
110 // TEMPLATE WRAPPER - HEADER & breadcrumbs
111 echo "
112  <!-- Content Wrapper. Contains page content -->
113  <div class=\"content-wrapper\" id=\"content-FX\">
114  <!-- Content Header (Page header) -->
115  <section class=\"content-header\">";
116 /* draw Title on top */
117 echo backend::getTitle($widget->name, $lang['WIDGET']);
118 echo"<ol class=\"breadcrumb\">
119  <li><a href=\"index.php\" title=\"$lang[DASHBOARD]\"><i class=\"fa fa-dashboard\"></i> $lang[DASHBOARD]</a></li>
120  <li><a href=\"index.php?page=widgets\" title=\"$lang[WIDGETS]\"> $lang[WIDGETS]</a></li>
121  <li class=\"active\"><a href=\"index.php?page=widget-edit&widget=$widget->id\" title=\"$lang[WIDGET_EDIT_SUBTEXT]\"> $lang[EDIT]:&nbsp; <b>$widget->name $lang[WIDGET]</b></a></li>
122  </ol>
123  </section>
124  <!-- Main content -->
125  <section class=\"content\">";
126 ?>
127 
128 <!-- bootstrap date-timepicker -->
129 <link type="text/css" href="../system/engines/datetimepicker/css/datetimepicker.min.css" rel="stylesheet">
130 <script type="text/javascript" src="../system/engines/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
131 
132 <script type="text/javascript" >
133  $(document).ready(function() {
134 // load datetimepicker (start time)
135  $('#datetimepicker1').datetimepicker({
136  // format: 'yyyy-mm-dd hh:ii:ss'
137  format: 'YYYY-MM-DD HH:mm:ss'
138  });
139 // load 2nd datetimepicker (end time)
140  $('#datetimepicker2').datetimepicker({
141  format: 'YYYY-MM-DD HH:mm:ss'
142  });
143 
144  }); //]]> /* END document.ready */
145  /* ...end admin jQ controlls */
146 </script>
147 <!-- FORM -->
148 <form name="form" role="form" action="index.php?page=widget-edit&widget=<?php echo $widget->id; ?>" method="post">
149  <div class="row">
150  <!-- LEFT -->
151  <div class="col-md-4">
152  <!-- BASIC WIDGET SETTINGS -->
153  <div class="box box-default">
154  <div class="box-header with-border">
155  <h3 class="box-title"><?php echo "$lang[COMMON_WIDGET_SETTINGS]"; ?></h3>
156  </div>
157  <div class="box-body">
158  <!-- WIDGET -->
159  <label for="widgetType"><?php echo $lang['WIDGET']; ?>
160  <?php echo backend::printTooltip($lang['TT_WIDGET_NAME']); ?>
161  </label>
162  <select id="widgetType" name="widgetType" class="form-control" readonly>
163  <option value="<?php echo $widget->widgetType; ?>"><?php echo $widget->name; ?></option>
164  </select>
165  <!-- PAGE -->
166  <label for="pageID"><?php echo $lang['ON_PAGE']; ?>
167  <?php echo backend::printTooltip($lang['TT_WIDGET_PAGE']); ?>
168  </label>
169  <select id="pageID" name="pageID" class="form-control">
170  <?php
171  $pages = \YAWK\sys::getPages($db);
172  foreach ($pages as $page)
173  {
174  // check, if option needs to be selected
175  if ($widget->pageID == $page['id']){
176  $selectedHtml = " selected";
177  }
178  else { $selectedHtml = ""; }
179 
180  if ($widget->pageID == 0){
181  $allSelected = " selected";
182  }
183  else { $allSelected = ""; }
184 
185  // draw options
186  if (isset($page['id']) && (isset($page['title']))) {
187  echo "<option value=\"".$page['id']."\"$selectedHtml>".$page['title']."</option>";
188  }
189  }
190  // all pages option
191  echo"<option value=\"0\"$allSelected>$lang[ON_ALL_PAGES]</option>";
192  ?>
193  </select>
194  <!-- POSITION -->
195  <label for="positions"><?php echo $lang['AT_POSITION']; ?>
196  <?php echo backend::printTooltip($lang['TT_WIDGET_POS']); ?>
197  </label>
198  <select id="positions" name="positions" class="form-control">
199  <option value="<?php echo $widget->position; ?>"><?php echo $widget->position; ?></option>
200  <option value="">-----</option>
201 
202  <?php /* get tpl positions */
203  $i = 0;
204  $position[$i] = array();
205  foreach(template::getTemplatePositions($db) as $position[$i]){
206  echo "<option value=\"".$position[$i]."\">".$position[$i]."</option>";
207  $i++;
208  }
209  ?>
210  </select>
211 
212  <br>
213  <!-- DATE_PUBLISH -->
214  <label for ="datetimepicker1"><?php echo $lang['START_PUBLISH']; ?>
215  <?php echo backend::printTooltip($lang['TT_WIDGET_PUBLISH_DATE']); ?></label>
216  <input id="datetimepicker1" name="date_publish" autocomplete="off" class="form-control" value="<?php echo $widget->date_publish; ?>">
217 
218  <!-- DATE_UNPUBLISH -->
219  <label for ="datetimepicker2"><?php echo $lang['END_PUBLISH']; ?>
220  <?php echo backend::printTooltip($lang['TT_WIDGET_UNPUBLISH_DATE']); ?></label>
221  <input id="datetimepicker2" name="date_unpublish" autocomplete="off" class="form-control" value="<?php echo $widget->date_unpublish; ?>">
222  <br>
223  <!-- MARGIN TOP -->
224  <label for="marginTop"><?php echo "$lang[MARGIN_TOP] <i><small>$lang[LEAVE_BLANK_FOR_NO_MARGIN]</small></i>"; ?>
225  <?php echo backend::printTooltip($lang['TT_WIDGET_MARGIN_TOP']); ?></label>
226  <input type="text" id="marginTop" class="form-control" placeholder="" name="marginTop" maxlength="11" value="<?php echo $widget->marginTop; ?>">
227  <!-- MARGIN BOTTOM -->
228  <label for="marginBottom"><?php echo "$lang[MARGIN_BOTTOM] <i><small>$lang[LEAVE_BLANK_FOR_NO_MARGIN]</small></i>"; ?>
229  <?php echo backend::printTooltip($lang['TT_WIDGET_MARGIN_BOTTOM']); ?></label>
230  <input type="text" id="marginBottom" class="form-control" name="marginBottom" placeholder="" maxlength="11" value="<?php echo $widget->marginBottom; ?>">
231  <br>
232  <!-- SORTATION -->
233  <label for="sort"><?php echo $lang['SORTATION_ORDER']; ?>
234  <?php echo backend::printTooltip($lang['TT_WIDGET_SORTATION_ORDER']); ?></label>
235  <input id="sort" type="text" class="form-control" name="sort" maxlength="6" value="<?php echo $widget->sort; ?>">
236 
237  <!-- NOTE -->
238  <label for ="widgetTitle"><?php echo $lang['NOTE']; ?>
239  <?php echo backend::printTooltip($lang['TT_WIDGET_NOTE']); ?></label>
240  <input id="widgetTitle" name="widgetTitle" class="form-control" value="<?php echo $widget->widgetTitle; ?>">
241  <br>
242 
243  <!-- PUBLISHED / UNPUBLISHED CHECKBOX -->
244  <?php if ($widget->published == "1") { $checkedHtml=" checked"; $value=1; } else { $checkedHtml = ''; $value =0; } ?>
245  <input type="hidden" name="publish" value="0">
246  <input type="checkbox" data-on="<?php echo $lang['ON_'];?>" data-off="<?php echo $lang['OFF_'];?>" data-toggle="toggle" data-onstyle="success" data-offstyle="danger" id="publish" name="publish" value="1"<?php echo $checkedHtml;?>>
247  <label for="publish">&nbsp;<?php echo "$lang[PUBLISHED]"; ?>
248  <?php echo backend::printTooltip($lang['TT_WIDGET_PUBLISH']); ?></label>
249 
250 
251  </div>
252  </div>
253  </div> <!-- end left col -->
254 
255  <!-- RIGHT -->
256  <div class="col-md-8">
257  <div class="box box-default">
258  <div class="box-header with-border">
259  <h3 class="box-title"><?php echo "$widget->name $lang[WIDGET] $lang[SETTINGS]"; ?></h3>
260 
261  <button type="submit" id="savebutton" name="save" class="btn btn-success pull-right">
262  <i id="savebuttonIcon" class="fa fa-check"></i> &nbsp;<?php echo $lang['WIDGETS_SAVE_BTN']; ?>
263  </button>
264  </div>
265  <div class="box-body">
266  <!-- MORE WIDGET SETTINGS -->
267  <?php
268  // draw settings (form elements) for this widget
269  $settings = widget::getAllSettingsIntoArray($db, $widget->id);
270  $widget->getWidgetFormElements($db, $settings, $widget->id, $widget->folder, $lang);
271  ?>
272  <br><input type="hidden" name="widgetID" value="<?php echo $widget->id; ?>">
273  <br>
274 
275  </div>
276  </div>
277  </div>
278  </div>
279 </form>
print $lang['FILEMAN_UPLOAD']
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
static setWidgetSetting($db, $property, $value, $widgetID)
Set widget setting value into widgets_settings.
Definition: settings.php:661
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
Widgets are small, useful tools that you can include everywhere in your website.
Definition: widget.php:22
function window
Definition: fuckAdBlock.js:8
FuckAdBlock prototype on
Definition: fuckAdBlock.js:227
c jPlayer event
type
Definition: menu-new.php:35
print $_GET['id']
Definition: page-edit.php:357
$page
Definition: pages.php:355
function i(e, t)
Definition: plyr.js:1
<!-- backend language -->< h3 >< i class="fa fa-language"></i > & nbsp
$template name
print $tourdates date
$value
$position[$i]
$pages
$i
$settings
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);});})