YaWK  24.1
Yet another WebKit
menus.php
Go to the documentation of this file.
1 <?php
2 use YAWK\alert;
3 use YAWK\backend;
4 use YAWK\db;
5 use YAWK\language;
6 use YAWK\menu;
7 use YAWK\settings;
8 
9 /** @var $lang language */
10 /** @var $db db */
11 
12 // CHECK MENU OBJECT
13 if (!isset($menu))
14 { // create new menu object if its not set
15  $menu = new menu();
16 }
17 // TOGGLE MENU
18 if (isset($_GET['toggle']) && ($_GET['toggle'] === "1"))
19 { // prepare vars
20  $menu->id = ($db->quote($_GET['menuid']));
21  $menu->published = $menu->getMenuStatus($db, $menu->id);
22 
23  // check status and toggle it
24  if ($menu->published === '1')
25  { // set status to NOT published
26  $menu->published = 0;
27  $status = "$lang[OFFLINE]";
28  $color = "danger";
29  }
30  else
31  { // set status to PUBLISHED
32  $menu->published = 1;
33  $status = "$lang[ONLINE]";
34  $color = "success";
35  }
36 
37  if($menu->toggleOffline($db, $menu->id, $menu->published, $lang))
38  {
39  alert::draw("$color", "$lang[MENU_IS_NOW] $status", "$lang[MENU_STATUS_TOGGLE_OK] $status.", "", 800);
40  }
41  else
42  {
43  print alert::draw("danger", "$lang[ERROR]", "$lang[MENU_STATUS_TOGGLE_FAILED] $status.","page=menus","5800");
44  }
45 }
46 
47 // ADD MENU
48 /* if user clicked create menu */
49 if(isset($_GET['add']) && ($_GET['add'] === "1"))
50 {
51  if (YAWK\menu::createMenu($db, $db->quote($_POST['name']), $lang))
52  { // menu created, do syslog + draw notify
53  print alert::draw("success", "$lang[SUCCESS]", "$lang[THE_MENU] <strong>".$_POST['name']."</strong> $lang[WAS_CREATED]!", "","2000");
54  }
55  else
56  { // throw error
57  print alert::draw("danger", "$lang[ERROR]", "$lang[THE_MENU] <strong>".$_POST['name']."</strong> $lang[WAS_NOT_CREATED]!", "","5800");
58  }
59 }
60 
61 // DELETE MENU
62 if (isset($_GET['del']) && ($_GET['del'] === "1"))
63 { // check if delete is true
64  if (isset($_GET['delete']) && ($_GET['delete'] == 'true'))
65  { // delete whole menu
66  $menuName = menu::getMenuNameByID($db, $_GET['menu']);
67  if(menu::delete($db, $db->quote($_GET['menu']), $lang))
68  { // all good...
69  print alert::draw("success", "$lang[SUCCESS]", "$lang[MENU_DEL_OK]","","800");
70  }
71  else
72  { // throw error
73  print alert::draw("danger", "$lang[ERROR]", "$lang[MENU_DEL_FAILED]","","5800");
74  }
75  }
76 }
77 ?>
78 <!-- data tables JS -->
79 <script type="text/javascript">
80  $(document).ready(function() {
81  $('#table-sort').dataTable( {
82  "bPaginate": false,
83  "bLengthChange": false,
84  "bFilter": true,
85  "bSort": false,
86  "bInfo": true,
87  "bAutoWidth": false
88  } );
89  } );
90 </script>
91 <!-- Content Wrapper. Contains page content -->
92 <div class="content-wrapper" id="content-FX">
93  <!-- Content Header (Page header) -->
94  <section class="content-header">
95  <!-- draw title on top-->
96  <?php echo backend::getTitle($lang['MENUS'], $lang['MENUS_SUBTEXT']); ?>
97  <ol class="breadcrumb">
98  <li><a href="./" title="<?php echo $lang['DASHBOARD']; ?>"><i class="fa fa-dashboard"></i> <?php echo $lang['DASHBOARD']; ?></a></li>
99  <li class="active"><a href="index.php?page=menus" title="<?php echo $lang['MENUS']; ?>"> <?php echo $lang['MENUS']; ?></a></li>
100  </ol>
101  </section>
102  <!-- Main content -->
103  <section class="content">
104 <!-- START CONTENT HERE -->
105 <div class="box box-default">
106  <div class="box-body">
107 
108 <a href="index.php?page=menu-new" class="btn btn-success pull-right"><b class="glyphicon glyphicon-plus"></b> <?php print $lang['MENU+']; ?></a>
109 <table class="table table-striped table-hover table-responsive" id="table-sort">
110  <thead>
111  <tr>
112  <td style="width:5%;">&nbsp;</td>
113  <td style="width:5%;"><strong><?php echo $lang['ID']; ?></strong></td>
114  <td style="width:10%;"><strong><?php echo $lang['STATUS']; ?></strong></td>
115  <td style="width:30%;"><strong><?php echo $lang['NAME']; ?></strong></td>
116  <td style="width:30%;"><strong><?php echo $lang['ENTRIES']; ?></strong></td>
117  <td style="width:20%;" class="text-center"><strong><?php echo $lang['ACTIONS']; ?></strong></td>
118  </tr>
119  </thead>
120  <tbody>
121 
122  <?php
123  /* get all menus */
124  $globalMenuID = settings::getSetting($db, "globalmenuid");
125 
126  $rows = backend::getMenusArray($db);
127  foreach ($rows AS $row) {
128  $res[] = $row;
129  $pageName = '';
130  if ($sql = $db->query("SELECT menu, alias FROM {pages} WHERE menu = $row[id]"))
131  {
132  $result = mysqli_fetch_row($sql);
133  if (isset($result[0]) && ($result[0] == $row['id']))
134  {
135  $subMenuLabel = "<i class=\"label label-default\">$lang[SUBMENU]</i>";
136  $pageName = "<small><small>@</small> $result[1].html</small>";
137  }
138  else
139  {
140  $subMenuLabel = '';
141  $pageName = '';
142  }
143  }
144 
145  if ($row['published'] === '1')
146  { // set label to online
147  $pub = "success";
148  $pubtext = $lang['ON_'];
149  // if menu is set as globalmenu
150  if ($row['id'] === $globalMenuID)
151  { // set colors and label text
152  $globalMenuLabel = "<i class=\"label label-success\">$lang[GLOBAL_MENU]</i>";
153  }
154  else
155  { // leave empty, because its not set as globalmenu
156  $globalMenuLabel = '';
157  }
158  }
159  else // menu is offline
160  { // set colors and label
161  $pub = "danger";
162  $pubtext = $lang['OFF_'];
163  // if menu is set as globalmenu
164  if ($row['id'] === $globalMenuID)
165  { // set colors and label text
166  $globalMenuLabel = "<i class=\"label label-success\">$lang[GLOBAL_MENU]</i>";
167  }
168  else
169  { // leave empty, because its not set as globalmenu
170  $globalMenuLabel = '';
171  }
172  }
173 
174  echo "<tr>
175  <td><a title=\"$lang[TOGGLE_STATUS]\" href=\"index.php?page=menus&toggle=1&menuid=" . $row['id'] . "\">
176  <span class=\"label label-$pub\">" . $pubtext . "</span></a></td>
177  <td>" . $row['id'] . "</td>
178  <td>$globalMenuLabel $subMenuLabel</td>
179  <td><a title=\"$lang[EDIT]\" href=\"index.php?page=menu-edit&menu=" . $row['id'] . "\">
180  <div style=\"width:100%\"><b>" . $row['name'] . "</b><br>".$pageName."</div></a></td>
181 
182  <td><a title=\"$lang[EDIT]\" href=\"index.php?page=menu-edit&menu=" . $row['id'] . "\">
183  <div style=\"width:100%\">" . $row['count'] . "</div></a></td>
184  <td class=\"text-center\">
185  <a class=\"fa fa-edit\" title=\"$lang[EDIT]\" href=\"index.php?page=menu-edit&menu=" . $row['id'] . "\">
186  </a>
187  &nbsp;
188  <a class=\"fa fa-trash-o\" role=\"dialog\" data-confirm=\"$lang[MENU_DEL_CONFIRM] &laquo;$row[name]&raquo;?\"
189  title=\"$lang[DELETE]\" href=\"index.php?page=menus&del=1&menu=$row[id]&delete=true\">
190  </a>
191  </td>
192 </tr>";
193  }
194 
195  ?>
196  </tbody>
197 </table>
198 
199  </div>
200 </div>
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
The default menu class. Serves all the menu functions.
Definition: menu.php:17
Settings class: get and set YaWK system settings.
Definition: settings.php:9
$result
Definition: email-send.php:137
FuckAdBlock prototype on
Definition: fuckAdBlock.js:227
function b(a)
Definition: browser.js:14
function a
Definition: browser.js:14
if(!isset($page)) if(!isset($db)) if(!isset($lang)) if(isset($_GET['toggleItem'])) if(isset($_GET['del']) &&($_GET['del']==="1")) if(isset($_POST['changetitle'])) if(isset($_POST['changeLanguage'])) if(isset($_POST['add'])) else if(isset($_POST['save'])) else $menuName
Definition: menu-edit.php:217
type
Definition: menu-new.php:35
$globalMenuID
Definition: menus.php:124
print $lang['MENU+']
Definition: menus.php:98
$rows
Definition: menus.php:126
$sql
Definition: message-new.php:32
This class serves methods to create backup from files.
Definition: AdminLTE.php:2
print $page title
Definition: page-edit.php:377
print $_GET['id']
Definition: page-edit.php:357
function i(e, t)
Definition: plyr.js:1
<!-- 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 &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);});})