PageRenderTime 45ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/phpmyfaq/admin/header.php

https://github.com/cyrke/phpMyFAQ
PHP | 300 lines | 268 code | 15 blank | 17 comment | 10 complexity | 7645db365cdadd19501322d2eeeb1fd0 MD5 | raw file
Possible License(s): LGPL-2.1, LGPL-3.0, MPL-2.0-no-copyleft-exception
  1. <?php
  2. /**
  3. * Header of the admin area
  4. *
  5. * PHP Version 5.3
  6. *
  7. * This Source Code Form is subject to the terms of the Mozilla Public License,
  8. * v. 2.0. If a copy of the MPL was not distributed with this file, You can
  9. * obtain one at http://mozilla.org/MPL/2.0/.
  10. *
  11. * @category phpMyFAQ
  12. * @package Administraion
  13. * @author Thorsten Rinne <thorsten@phpmyfaq.de>
  14. * @copyright 2003-2012 phpMyFAQ Team
  15. * @license http://www.mozilla.org/MPL/2.0/ Mozilla Public License Version 2.0
  16. * @link http://www.phpmyfaq.de
  17. * @since 2003-02-26
  18. */
  19. if (!defined('IS_VALID_PHPMYFAQ')) {
  20. header('Location: http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['SCRIPT_NAME']));
  21. exit();
  22. }
  23. header("Expires: Thu, 7 Apr 1977 14:47:00 GMT");
  24. header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
  25. header("Cache-Control: no-store, no-cache, must-revalidate");
  26. header("Cache-Control: post-check=0, pre-check=0", false);
  27. header("Pragma: no-cache");
  28. header("Content-type: text/html; charset=utf-8");
  29. header("Vary: Negotiate,Accept");
  30. $secLevelEntries = '';
  31. $dashboardPage = true;
  32. $contentPage = false;
  33. $userPage = false;
  34. $statisticsPage = false;
  35. $exportsPage = false;
  36. $backupPage = false;
  37. $configurationPage = false;
  38. $edAutosave = (('editentry' === $action) && $faqConfig->get('records.autosaveActive'));
  39. $adminHelper = new PMF_Helper_Administration();
  40. $adminHelper->setPermission($permission);
  41. switch ($action) {
  42. case 'user':
  43. case 'group':
  44. case 'passwd':
  45. case 'cookies':
  46. $secLevelHeader = $PMF_LANG['admin_mainmenu_users'];
  47. $secLevelEntries .= $adminHelper->addMenuEntry('adduser+edituser+deluser', 'user', 'ad_menu_user_administration', $action);
  48. if ($faqConfig->get('security.permLevel') != 'basic') {
  49. $secLevelEntries .= $adminHelper->addMenuEntry('addgroup+editgroup+delgroup', 'group', 'ad_menu_group_administration', $action);
  50. }
  51. $secLevelEntries .= $adminHelper->addMenuEntry('passwd', 'passwd', 'ad_menu_passwd', $action);
  52. $dashboardPage = false;
  53. $userPage = true;
  54. break;
  55. case 'content':
  56. case 'category':
  57. case 'addcategory':
  58. case 'savecategory':
  59. case 'editcategory':
  60. case 'translatecategory':
  61. case 'updatecategory':
  62. case 'deletecategory':
  63. case 'removecategory':
  64. case 'cutcategory':
  65. case 'pastecategory':
  66. case 'movecategory':
  67. case 'changecategory':
  68. case 'showcategory':
  69. case 'editentry':
  70. case 'insertentry':
  71. case 'saveentry':
  72. case 'view':
  73. case 'searchfaqs':
  74. case 'glossary':
  75. case 'saveglossary':
  76. case 'updateglossary':
  77. case 'deleteglossary':
  78. case 'addglossary':
  79. case 'editglossary':
  80. case 'news';
  81. case 'addnews':
  82. case 'editnews':
  83. case 'savenews':
  84. case 'updatenews';
  85. case 'delnews':
  86. case 'question':
  87. case 'takequestion':
  88. case 'comments':
  89. case 'attachments':
  90. $secLevelHeader = $PMF_LANG['admin_mainmenu_content'];
  91. $secLevelEntries .= $adminHelper->addMenuEntry('addcateg+editcateg+delcateg', 'category', 'ad_menu_categ_edit', $action);
  92. $secLevelEntries .= $adminHelper->addMenuEntry('addbt', 'editentry', 'ad_entry_add', $action);
  93. $secLevelEntries .= $adminHelper->addMenuEntry('editbt+delbt', 'view', 'ad_menu_entry_edit', $action);
  94. $secLevelEntries .= $adminHelper->addMenuEntry('editbt+delbt', 'searchfaqs', 'ad_menu_searchfaqs', $action);
  95. $secLevelEntries .= $adminHelper->addMenuEntry('delcomment', 'comments', 'ad_menu_comments', $action);
  96. $secLevelEntries .= $adminHelper->addMenuEntry('delquestion', 'question', 'ad_menu_open', $action);
  97. $secLevelEntries .= $adminHelper->addMenuEntry('addglossary+editglossary+delglossary', 'glossary', 'ad_menu_glossary', $action);
  98. $secLevelEntries .= $adminHelper->addMenuEntry('addnews+editnews+delnews', 'news', 'ad_menu_news_edit', $action);
  99. $secLevelEntries .= $adminHelper->addMenuEntry('addattachment+editattachment+delattachment', 'attachments', 'ad_menu_attachments', $action);
  100. $dashboardPage = false;
  101. $contentPage = true;
  102. break;
  103. case 'statistics':
  104. case 'viewsessions':
  105. case 'sessionbrowse':
  106. case 'sessionsuche':
  107. case 'adminlog':
  108. case 'searchstats':
  109. case 'reports':
  110. case 'reportview':
  111. $secLevelHeader = $PMF_LANG['admin_mainmenu_statistics'];
  112. $secLevelEntries .= $adminHelper->addMenuEntry('viewlog', 'statistics', 'ad_menu_stat', $action);
  113. $secLevelEntries .= $adminHelper->addMenuEntry('viewlog', 'viewsessions', 'ad_menu_session', $action);
  114. $secLevelEntries .= $adminHelper->addMenuEntry('adminlog', 'adminlog', 'ad_menu_adminlog', $action);
  115. $secLevelEntries .= $adminHelper->addMenuEntry('viewlog', 'searchstats', 'ad_menu_searchstats', $action);
  116. $secLevelEntries .= $adminHelper->addMenuEntry('reports', 'reports', 'ad_menu_reports', $action);
  117. $dashboardPage = false;
  118. $statisticsPage = true;
  119. break;
  120. case 'export':
  121. $secLevelHeader = $PMF_LANG['admin_mainmenu_exports'];
  122. $secLevelEntries .= $adminHelper->addMenuEntry('', 'export', 'ad_menu_export', $action);
  123. $dashboardPage = false;
  124. $exportsPage = true;
  125. break;
  126. case 'backup':
  127. $secLevelHeader = $PMF_LANG['admin_mainmenu_backup'];
  128. $secLevelEntries .= $adminHelper->addMenuEntry('', 'backup', 'ad_menu_export', $action);
  129. $dashboardPage = false;
  130. $backupPage = true;
  131. break;
  132. case 'config':
  133. case 'stopwordsconfig':
  134. case 'translist':
  135. case 'transedit':
  136. case 'transadd':
  137. case 'upgrade':
  138. case 'instances':
  139. $secLevelHeader = $PMF_LANG['admin_mainmenu_configuration'];
  140. $secLevelEntries .= $adminHelper->addMenuEntry('editconfig', 'config', 'ad_menu_editconfig', $action);
  141. $secLevelEntries .= $adminHelper->addMenuEntry('editinstances+addinstances+delinstances', 'instances', 'ad_menu_instances', $action);
  142. $secLevelEntries .= $adminHelper->addMenuEntry('editconfig', 'stopwordsconfig', 'ad_menu_stopwordsconfig', $action);
  143. $secLevelEntries .= $adminHelper->addMenuEntry('edittranslation+addtranslation+deltranslation', 'translist', 'ad_menu_translations', $action);
  144. $dashboardPage = false;
  145. $configurationPage = true;
  146. break;
  147. default:
  148. $secLevelHeader = $PMF_LANG['admin_mainmenu_home'];
  149. $secLevelEntries .= $adminHelper->addMenuEntry('addcateg+editcateg+delcateg', 'category', 'ad_menu_categ_edit');
  150. $secLevelEntries .= $adminHelper->addMenuEntry('addbt', 'editentry', 'ad_quick_record');
  151. $secLevelEntries .= $adminHelper->addMenuEntry('editbt+delbt', 'view', 'ad_menu_entry_edit');
  152. $secLevelEntries .= $adminHelper->addMenuEntry('delquestion', 'question', 'ad_menu_open');
  153. $dashboardPage = true;
  154. break;
  155. }
  156. ?>
  157. <!DOCTYPE html>
  158. <!--[if lt IE 7 ]> <html lang="<?php print $PMF_LANG['metaLanguage']; ?>" class="no-js ie6"> <![endif]-->
  159. <!--[if IE 7 ]> <html lang="<?php print $PMF_LANG['metaLanguage']; ?>" class="no-js ie7"> <![endif]-->
  160. <!--[if IE 8 ]> <html lang="<?php print $PMF_LANG['metaLanguage']; ?>" class="no-js ie8"> <![endif]-->
  161. <!--[if IE 9 ]> <html lang="<?php print $PMF_LANG['metaLanguage']; ?>" class="no-js ie9"> <![endif]-->
  162. <!--[if (gt IE 9)|!(IE)]><!--> <html lang="<?php print $PMF_LANG['metaLanguage']; ?>" class="no-js"> <!--<![endif]-->
  163. <head>
  164. <meta charset="utf-8">
  165. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  166. <title><?php print $faqConfig->get('main.titleFAQ'); ?> - powered by phpMyFAQ <?php print $faqConfig->get('main.currentVersion'); ?></title>
  167. <base href="<?php print $faqConfig->get('main.referenceURL'); ?>/admin/" />
  168. <meta name="description" content="Only Chuck Norris can divide by zero.">
  169. <meta name="author" content="phpMyFAQ Team">
  170. <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
  171. <meta name="application-name" content="phpMyFAQ <?php print $faqConfig->get('main.currentVersion'); ?>/admin/">
  172. <meta name="copyright" content="(c) 2001-2012 phpMyFAQ Team">
  173. <meta name="publisher" content="phpMyFAQ Team">
  174. <meta name="MSSmartTagsPreventParsing" content="true">
  175. <link rel="stylesheet" href="assets/css/style.css?v=1">
  176. <link rel="stylesheet" href="../assets/js/plugins/datePicker/datePicker.css" type="text/css">
  177. <script src="../assets/js/libs/modernizr.min.js"></script>
  178. <script src="../assets/js/libs/jquery.min.js"></script>
  179. <script src="../assets/js/phpmyfaq.js"></script>
  180. <script src="../assets/js/plugins/datePicker/date.js"></script>
  181. <script src="../assets/js/plugins/datePicker/jquery.datePicker.js"></script>
  182. <script src="editor/tiny_mce.js?<?php print time(); ?>"></script>
  183. <?php if ($edAutosave): ?>
  184. <script>var pmfAutosaveInterval = <?php echo $faqConfig->get('records.autosaveSecs') ?>;</script>
  185. <script src="../assets/js/autosave.js"></script>
  186. <?php endif; ?>
  187. <link rel="shortcut icon" href="../assets/template/<?php print PMF_Template::getTplSetName(); ?>/favicon.ico">
  188. <link rel="apple-touch-icon" href="../assets/template/<?php print PMF_Template::getTplSetName(); ?>/apple-touch-icon.png">
  189. </head>
  190. <body dir="<?php print $PMF_LANG["dir"]; ?>">
  191. <div class="navbar navbar-fixed-top">
  192. <div class="navbar-inner">
  193. <div class="container-fluid">
  194. <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
  195. <span class="icon-bar"></span>
  196. <span class="icon-bar"></span>
  197. <span class="icon-bar"></span>
  198. </a>
  199. <a class="brand" href="../index.php"><?php print $faqConfig->get('main.titleFAQ'); ?></a>
  200. <div class="nav-collapse">
  201. <?php if (isset($auth) && in_array(true, $permission)): ?>
  202. <ul class="nav">
  203. <li<?php print ($dashboardPage ? ' class="active"' : ''); ?>>
  204. <a href="index.php">
  205. <i class="icon-home icon-white"></i> <?php print $PMF_LANG['admin_mainmenu_home']; ?>
  206. </a>
  207. </li>
  208. <li<?php print ($userPage ? ' class="active"' : ''); ?>>
  209. <a href="index.php?action=user">
  210. <i class="icon-user icon-white"></i> <?php print $PMF_LANG['admin_mainmenu_users']; ?>
  211. </a>
  212. </li>
  213. <li<?php print ($contentPage ? ' class="active"' : ''); ?>>
  214. <a href="index.php?action=content">
  215. <i class="icon-pencil icon-white"></i> <?php print $PMF_LANG['admin_mainmenu_content']; ?>
  216. </a>
  217. </li>
  218. <li<?php print ($statisticsPage ? ' class="active"' : ''); ?>>
  219. <a href="index.php?action=statistics">
  220. <i class="icon-tasks icon-white"></i> <?php print $PMF_LANG['admin_mainmenu_statistics']; ?>
  221. </a>
  222. </li>
  223. <li<?php print ($exportsPage ? ' class="active"' : ''); ?>>
  224. <a href="index.php?action=export">
  225. <i class="icon-book icon-white"></i> <?php print $PMF_LANG['admin_mainmenu_exports']; ?>
  226. </a>
  227. </li>
  228. <li<?php print ($backupPage ? ' class="active"' : ''); ?>>
  229. <a href="index.php?action=backup">
  230. <i class="icon-download-alt icon-white"></i> <?php print $PMF_LANG['admin_mainmenu_backup']; ?>
  231. </a>
  232. </li>
  233. <li<?php print ($configurationPage ? ' class="active"' : ''); ?>>
  234. <a href="index.php?action=config">
  235. <i class="icon-wrench icon-white"></i> <?php print $PMF_LANG['admin_mainmenu_configuration']; ?>
  236. </a>
  237. </li>
  238. </ul>
  239. <ul class="nav pull-right">
  240. <li class="divider-vertical"></li>
  241. <li class="dropdown">
  242. <a class="dropdown-toggle" data-toggle="dropdown" href="#">
  243. <span title="<?php print $PMF_LANG['ad_user_loggedin'] . $user->getLogin(); ?>">
  244. <?php print $user->getUserData('display_name'); ?>
  245. </span>
  246. <b class="caret"></b>
  247. </a>
  248. <ul class="dropdown-menu">
  249. <li>
  250. <?php print $PMF_LANG['ad_session_expiration']; ?>: <span id="sessioncounter">Loading...</span>
  251. </li>
  252. <li class="divider"></li>
  253. <li>
  254. <a href="index.php?action=logout"><i class="icon-off"></i> <?php print $PMF_LANG['admin_mainmenu_logout']; ?></a>
  255. </li>
  256. </ul>
  257. </li>
  258. </ul>
  259. <?php else: ?>
  260. <ul class="nav">
  261. <li><a href="../index.php?action=password"><?php print $PMF_LANG["lostPassword"]; ?></a></li>
  262. </ul>
  263. <?php endif; ?>
  264. </div>
  265. </div>
  266. </div>
  267. </div>
  268. <div id="main">
  269. <div class="container-fluid">
  270. <div class="row-fluid">
  271. <?php if (isset($auth) && in_array(true, $permission)) { ?>
  272. <div class="span2">
  273. <div class="well categories">
  274. <ul class="nav nav-list">
  275. <li class="nav-header"><?php print $secLevelHeader; ?></li>
  276. <?php print $secLevelEntries; ?>
  277. <li class="nav-header">Admin worklog</li>
  278. <li><span id="saving_data_indicator"></span></li>
  279. <li class="nav-header">Found an issue?</li>
  280. <li><a href="https://github.com/thorsten/phpMyFAQ/issues/" target="_blank">Please report it here</a></li>
  281. </ul>
  282. </div>
  283. </div>
  284. <?php } ?>
  285. <div class="span10">