mirror of
https://github.com/slawkens/myaac.git
synced 2025-04-26 17:29:21 +02:00
122 lines
4.4 KiB
PHP
122 lines
4.4 KiB
PHP
<?php
|
|
/**
|
|
* Menus
|
|
*
|
|
* @package MyAAC
|
|
* @author Slawkens <slawkens@gmail.com>
|
|
* @copyright 2017 MyAAC
|
|
* @link http://my-aac.org
|
|
*/
|
|
defined('MYAAC') or die('Direct access not allowed!');
|
|
$title = 'Menus';
|
|
|
|
if(!hasFlag(FLAG_CONTENT_MENUS) && !superAdmin())
|
|
{
|
|
echo 'Access denied.';
|
|
return;
|
|
}
|
|
|
|
if(isset($_REQUEST['template'])) {
|
|
$template = $_REQUEST['template'];
|
|
|
|
if(isset($_REQUEST['menu'])) {
|
|
$post_menu = $_REQUEST['menu'];
|
|
$post_menu_link = $_REQUEST['menu_link'];
|
|
$post_menu_blank = $_REQUEST['menu_blank'];
|
|
$post_menu_color = $_REQUEST['menu_color'];
|
|
if(count($post_menu) != count($post_menu_link)) {
|
|
echo 'Menu count is not equal menu links. Something went wrong when sending form.';
|
|
return;
|
|
}
|
|
|
|
$db->query('DELETE FROM `' . TABLE_PREFIX . 'menu` WHERE `template` = ' . $db->quote($template));
|
|
foreach($post_menu as $category => $menus) {
|
|
foreach($menus as $i => $menu) {
|
|
if(empty($menu)) // don't save empty menu item
|
|
continue;
|
|
|
|
try {
|
|
$db->insert(TABLE_PREFIX . 'menu', array('template' => $template, 'name' => $menu, 'link' => $post_menu_link[$category][$i], 'blank' => $post_menu_blank[$category][$i] == 'on', 'color' => str_replace('#', '', $post_menu_color[$category][$i]), 'category' => $category, 'ordering' => $i));
|
|
}
|
|
catch(PDOException $error) {
|
|
warning('Error while adding menu item (' . $menu . '): ' . $error->getMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
success('Saved at ' . date('H:i'));
|
|
}
|
|
|
|
$file = TEMPLATES . $template . '/config.php';
|
|
if(file_exists($file)) {
|
|
require_once($file);
|
|
}
|
|
else {
|
|
echo 'Cannot find template config.php file.';
|
|
return;
|
|
}
|
|
|
|
if(!isset($config['menu_categories'])) {
|
|
echo "No menu categories set in template config.php.<br/>This template doesn't support dynamic menus.";
|
|
return;
|
|
}
|
|
|
|
echo 'Hint: You can drag menu items.<br/>
|
|
Hint: Add links to external sites using: <b>http://</b> prefix.<br/>
|
|
Not all templates support blank and colorful links.<br/>
|
|
Editing: ' . $template . ' template.';
|
|
$menus = array();
|
|
$menus_db = $db->query('SELECT `name`, `link`, `blank`, `color`, `category`, `ordering` FROM `' . TABLE_PREFIX . 'menu` WHERE `enabled` = 1 AND `template` = ' . $db->quote($template) . ' ORDER BY `ordering` ASC;')->fetchAll();
|
|
foreach($menus_db as $menu) {
|
|
$menus[$menu['category']][] = array('name' => $menu['name'], 'link' => $menu['link'], 'blank' => $menu['blank'], 'color' => $menu['color'], 'ordering' => $menu['ordering']);
|
|
}
|
|
|
|
$last_id = array();
|
|
echo '<form method="post" id="menus-form" action="?p=menus">';
|
|
echo '<input type="hidden" name="template" value="' . $template . '"/>';
|
|
foreach($config['menu_categories'] as $id => $cat) {
|
|
echo '<h2>' . $cat['name'] . '<img class="add-button" id="add-button-' . $id . '" src="' . BASE_URL . 'images/plus.png" width="16" height="16"/></h2>';
|
|
echo '<ul class="sortable" id="sortable-' . $id . '">';
|
|
if(isset($menus[$id])) {
|
|
$i = 0;
|
|
foreach($menus[$id] as $menu) {
|
|
echo '<li class="ui-state-default" id="list-' . $id . '-' . $i . '"><input type="text" name="menu[' . $id . '][]" value="' . $menu['name'] . '"/>
|
|
<input type="text" name="menu_link[' . $id . '][]" value="' . $menu['link'] . '"/>
|
|
<input type="hidden" name="menu_blank[' . $id . '][]" value="0" />
|
|
<label><input class="blank-checkbox" type="checkbox" ' . ($menu['blank'] == 1 ? 'checked' : '') . '/><span title="Open in New Window">Blank</span></label>
|
|
|
|
<input class="color-picker" type="text" name="menu_color[' . $id . '][]" value="#' . $menu['color'] . '" />
|
|
|
|
<a class="remove-button" id="remove-button-' . $id . '-' . $i . '"><img src="' . BASE_URL . 'images/del.png"/></a></li>';
|
|
|
|
$i++;
|
|
$last_id[$id] = $i;
|
|
}
|
|
}
|
|
|
|
echo '</ul>';
|
|
}
|
|
|
|
echo '<input type="submit" class="button" value="Update">';
|
|
echo '<input type="button" class="button" value="Cancel" onclick="window.location = \'' . ADMIN_URL . '?p=menus&template=' . $template . '\';">';
|
|
echo '</form>';
|
|
|
|
echo $twig->render('admin.menus.js.html.twig', array(
|
|
'menus' => $menus,
|
|
'last_id' => $last_id
|
|
));
|
|
}
|
|
else {
|
|
$templates = $db->query('SELECT `template` FROM `' . TABLE_PREFIX . 'menu` GROUP BY `template`;')->fetchAll();
|
|
foreach($templates as $key => $value) {
|
|
$file = TEMPLATES . $value['template'] . '/config.php';
|
|
if(!file_exists($file)) {
|
|
unset($templates[$key]);
|
|
}
|
|
}
|
|
|
|
echo $twig->render('admin.menus.form.html.twig', array(
|
|
'templates' => $templates
|
|
));
|
|
}
|
|
?>
|