Current oav website
This commit is contained in:
625
dotclear._no/plugins/simpleMenu/index.php
Normal file
625
dotclear._no/plugins/simpleMenu/index.php
Normal file
@ -0,0 +1,625 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief simpleMenu, a plugin for Dotclear 2
|
||||
*
|
||||
* @package Dotclear
|
||||
* @subpackage Plugins
|
||||
*
|
||||
* @copyright Olivier Meunier & Association Dotclear
|
||||
* @copyright GPL-2.0-only
|
||||
*/
|
||||
|
||||
if (!defined('DC_CONTEXT_ADMIN')) {return;}
|
||||
|
||||
dcPage::check('admin');
|
||||
|
||||
$page_title = __('Simple menu');
|
||||
|
||||
# Url de base
|
||||
$p_url = $core->adminurl->get('admin.plugin.simpleMenu');
|
||||
|
||||
# Url du blog
|
||||
$blog_url = html::stripHostURL($core->blog->url);
|
||||
|
||||
# Liste des catégories
|
||||
$categories_label = [];
|
||||
$rs = $core->blog->getCategories(['post_type' => 'post']);
|
||||
$categories_combo = dcAdminCombos::getCategoriesCombo($rs, false, true);
|
||||
$rs->moveStart();
|
||||
while ($rs->fetch()) {
|
||||
$categories_label[$rs->cat_url] = html::escapeHTML($rs->cat_title);
|
||||
}
|
||||
|
||||
# Liste des langues utilisées
|
||||
$langs_combo = dcAdminCombos::getLangscombo(
|
||||
$core->blog->getLangs(['order' => 'asc'])
|
||||
);
|
||||
|
||||
# Liste des mois d'archive
|
||||
$rs = $core->blog->getDates(['type' => 'month']);
|
||||
$months_combo = array_merge(
|
||||
[__('All months') => '-'],
|
||||
dcAdmincombos::getDatesCombo($rs)
|
||||
);
|
||||
|
||||
$first_year = $last_year = 0;
|
||||
while ($rs->fetch()) {
|
||||
if (($first_year == 0) || ($rs->year() < $first_year)) {
|
||||
$first_year = $rs->year();
|
||||
}
|
||||
|
||||
if (($last_year == 0) || ($rs->year() > $last_year)) {
|
||||
$last_year = $rs->year();
|
||||
}
|
||||
|
||||
}
|
||||
unset($rs);
|
||||
|
||||
# Liste des pages -- Doit être pris en charge plus tard par le plugin ?
|
||||
$pages_combo = [];
|
||||
try {
|
||||
$rs = $core->blog->getPosts(['post_type' => 'page']);
|
||||
while ($rs->fetch()) {
|
||||
$pages_combo[$rs->post_title] = $rs->getURL();
|
||||
}
|
||||
unset($rs);
|
||||
} catch (Exception $e) {}
|
||||
|
||||
# Liste des tags -- Doit être pris en charge plus tard par le plugin ?
|
||||
$tags_combo = [];
|
||||
try {
|
||||
$rs = $core->meta->getMetadata(['meta_type' => 'tag']);
|
||||
$tags_combo[__('All tags')] = '-';
|
||||
while ($rs->fetch()) {
|
||||
$tags_combo[$rs->meta_id] = $rs->meta_id;
|
||||
}
|
||||
unset($rs);
|
||||
} catch (Exception $e) {}
|
||||
|
||||
# Liste des types d'item de menu
|
||||
$items = new ArrayObject();
|
||||
$items['home'] = new ArrayObject([__('Home'), false]);
|
||||
|
||||
if ($core->blog->settings->system->static_home) {
|
||||
$items['posts'] = new ArrayObject([__('Posts'), false]);
|
||||
}
|
||||
|
||||
if (count($langs_combo) > 1) {
|
||||
$items['lang'] = new ArrayObject([__('Language'), true]);
|
||||
}
|
||||
if (count($categories_combo)) {
|
||||
$items['category'] = new ArrayObject([__('Category'), true]);
|
||||
}
|
||||
if (count($months_combo) > 1) {
|
||||
$items['archive'] = new ArrayObject([__('Archive'), true]);
|
||||
}
|
||||
if ($core->plugins->moduleExists('pages')) {
|
||||
if (count($pages_combo)) {
|
||||
$items['pages'] = new ArrayObject([__('Page'), true]);
|
||||
}
|
||||
|
||||
}
|
||||
if ($core->plugins->moduleExists('tags')) {
|
||||
if (count($tags_combo) > 1) {
|
||||
$items['tags'] = new ArrayObject([__('Tags'), true]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# --BEHAVIOR-- adminSimpleMenuAddType
|
||||
# Should add an item to $items[<id>] as an [<label>,<optional step (true or false)>]
|
||||
$core->callBehavior('adminSimpleMenuAddType', $items);
|
||||
|
||||
$items['special'] = new ArrayObject([__('User defined'), false]);
|
||||
|
||||
$items_combo = [];
|
||||
foreach ($items as $k => $v) {
|
||||
$items_combo[$v[0]] = $k;
|
||||
}
|
||||
|
||||
# Lecture menu existant
|
||||
$menu = $core->blog->settings->system->get('simpleMenu');
|
||||
if (!is_array($menu)) {
|
||||
$menu = [];
|
||||
}
|
||||
|
||||
# Récupération état d'activation du menu
|
||||
$menu_active = (boolean) $core->blog->settings->system->simpleMenu_active;
|
||||
|
||||
// Saving new configuration
|
||||
if (!empty($_POST['saveconfig'])) {
|
||||
try
|
||||
{
|
||||
$menu_active = (empty($_POST['active'])) ? false : true;
|
||||
$core->blog->settings->system->put('simpleMenu_active', $menu_active, 'boolean');
|
||||
$core->blog->triggerBlog();
|
||||
|
||||
// All done successfully, return to menu items list
|
||||
dcPage::addSuccessNotice(__('Configuration successfully updated.'));
|
||||
http::redirect($p_url);
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
} else {
|
||||
# Récupération paramètres postés
|
||||
$item_type = isset($_POST['item_type']) ? $_POST['item_type'] : '';
|
||||
$item_select = isset($_POST['item_select']) ? $_POST['item_select'] : '';
|
||||
$item_label = isset($_POST['item_label']) ? $_POST['item_label'] : '';
|
||||
$item_descr = isset($_POST['item_descr']) ? $_POST['item_descr'] : '';
|
||||
$item_url = isset($_POST['item_url']) ? $_POST['item_url'] : '';
|
||||
$item_targetBlank = isset($_POST['item_targetBlank']) ? (empty($_POST['item_targetBlank'])) ? false : true : false;
|
||||
# Traitement
|
||||
$step = (!empty($_GET['add']) ? (integer) $_GET['add'] : 0);
|
||||
if (($step > 4) || ($step < 0)) {
|
||||
$step = 0;
|
||||
}
|
||||
|
||||
if ($step) {
|
||||
|
||||
# Récupération libellés des choix
|
||||
$item_type_label = isset($items[$item_type]) ? $items[$item_type][0] : '';
|
||||
|
||||
switch ($step) {
|
||||
case 1:
|
||||
// First step, menu item type to be selected
|
||||
$item_type = $item_select = '';
|
||||
break;
|
||||
case 2:
|
||||
if ($items[$item_type][1]) {
|
||||
// Second step (optional), menu item sub-type to be selected
|
||||
$item_select = '';
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
// Third step, menu item attributes to be changed or completed if necessary
|
||||
$item_select_label = '';
|
||||
$item_label = __('Label');
|
||||
$item_descr = __('Description');
|
||||
$item_url = $blog_url;
|
||||
switch ($item_type) {
|
||||
case 'home':
|
||||
$item_label = __('Home');
|
||||
$item_descr = $core->blog->settings->system->static_home ? __('Home page') : __('Recent posts');
|
||||
break;
|
||||
case 'posts':
|
||||
$item_label = __('Posts');
|
||||
$item_descr = __('Recent posts');
|
||||
$item_url .= $core->url->getURLFor('posts');
|
||||
break;
|
||||
case 'lang':
|
||||
$item_select_label = array_search($item_select, $langs_combo);
|
||||
$item_label = $item_select_label;
|
||||
$item_descr = sprintf(__('Switch to %s language'), $item_select_label);
|
||||
$item_url .= $core->url->getURLFor('lang', $item_select);
|
||||
break;
|
||||
case 'category':
|
||||
$item_select_label = $categories_label[$item_select];
|
||||
$item_label = $item_select_label;
|
||||
$item_descr = __('Recent Posts from this category');
|
||||
$item_url .= $core->url->getURLFor('category', $item_select);
|
||||
break;
|
||||
case 'archive':
|
||||
$item_select_label = array_search($item_select, $months_combo);
|
||||
if ($item_select == '-') {
|
||||
$item_label = __('Archives');
|
||||
$item_descr = $first_year . ($first_year != $last_year ? ' - ' . $last_year : '');
|
||||
$item_url .= $core->url->getURLFor('archive');
|
||||
} else {
|
||||
$item_label = $item_select_label;
|
||||
$item_descr = sprintf(__('Posts from %s'), $item_select_label);
|
||||
$item_url .= $core->url->getURLFor('archive', substr($item_select, 0, 4) . '/' . substr($item_select, -2));
|
||||
}
|
||||
break;
|
||||
case 'pages':
|
||||
$item_select_label = array_search($item_select, $pages_combo);
|
||||
$item_label = $item_select_label;
|
||||
$item_descr = '';
|
||||
$item_url = html::stripHostURL($item_select);
|
||||
break;
|
||||
case 'tags':
|
||||
$item_select_label = array_search($item_select, $tags_combo);
|
||||
if ($item_select == '-') {
|
||||
$item_label = __('All tags');
|
||||
$item_descr = '';
|
||||
$item_url .= $core->url->getURLFor('tags');
|
||||
} else {
|
||||
$item_label = $item_select_label;
|
||||
$item_descr = sprintf(__('Recent posts for %s tag'), $item_select_label);
|
||||
$item_url .= $core->url->getURLFor('tag', $item_select);
|
||||
}
|
||||
break;
|
||||
case 'special':
|
||||
break;
|
||||
default:
|
||||
# --BEHAVIOR-- adminSimpleMenuBeforeEdit
|
||||
# Should modify if necessary $item_label, $item_descr and $item_url
|
||||
# Should set if necessary $item_select_label (displayed on further admin step only)
|
||||
$core->callBehavior('adminSimpleMenuBeforeEdit', $item_type, $item_select,
|
||||
[ & $item_label, &$item_descr, &$item_url, &$item_select_label]);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
// Fourth step, menu item to be added
|
||||
try {
|
||||
if (($item_label != '') && ($item_url != '')) {
|
||||
// Add new item menu in menu array
|
||||
$menu[] = [
|
||||
'label' => $item_label,
|
||||
'descr' => $item_descr,
|
||||
'url' => $item_url,
|
||||
'targetBlank' => $item_targetBlank
|
||||
];
|
||||
|
||||
// Save menu in blog settings
|
||||
$core->blog->settings->system->put('simpleMenu', $menu);
|
||||
$core->blog->triggerBlog();
|
||||
|
||||
// All done successfully, return to menu items list
|
||||
dcPage::addSuccessNotice(__('Menu item has been successfully added.'));
|
||||
http::redirect($p_url);
|
||||
} else {
|
||||
$step = 3;
|
||||
$item_select_label = $item_label;
|
||||
dcPage::addErrorNotice(__('Label and URL of menu item are mandatory.'));
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
||||
# Remove selected menu items
|
||||
if (!empty($_POST['removeaction'])) {
|
||||
try {
|
||||
if (!empty($_POST['items_selected'])) {
|
||||
foreach ($_POST['items_selected'] as $k => $v) {
|
||||
$menu[$v]['label'] = '';
|
||||
}
|
||||
$newmenu = [];
|
||||
foreach ($menu as $k => $v) {
|
||||
if ($v['label']) {
|
||||
$newmenu[] = [
|
||||
'label' => $v['label'],
|
||||
'descr' => $v['descr'],
|
||||
'url' => $v['url'],
|
||||
'targetBlank' => $v['targetBlank']
|
||||
];
|
||||
}
|
||||
}
|
||||
$menu = $newmenu;
|
||||
// Save menu in blog settings
|
||||
$core->blog->settings->system->put('simpleMenu', $menu);
|
||||
$core->blog->triggerBlog();
|
||||
|
||||
// All done successfully, return to menu items list
|
||||
dcPage::addSuccessNotice(__('Menu items have been successfully removed.'));
|
||||
http::redirect($p_url);
|
||||
} else {
|
||||
throw new Exception(__('No menu items selected.'));
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
# Update menu items
|
||||
if (!empty($_POST['updateaction'])) {
|
||||
try {
|
||||
foreach ($_POST['items_label'] as $k => $v) {
|
||||
if (!$v) {
|
||||
throw new Exception(__('Label is mandatory.'));
|
||||
}
|
||||
|
||||
}
|
||||
foreach ($_POST['items_url'] as $k => $v) {
|
||||
if (!$v) {
|
||||
throw new Exception(__('URL is mandatory.'));
|
||||
}
|
||||
|
||||
}
|
||||
$newmenu = [];
|
||||
for ($i = 0; $i < count($_POST['items_label']); $i++) {
|
||||
$newmenu[] = [
|
||||
'label' => $_POST['items_label'][$i],
|
||||
'descr' => $_POST['items_descr'][$i],
|
||||
'url' => $_POST['items_url'][$i],
|
||||
'targetBlank' => (empty($_POST['items_targetBlank' . $i])) ? false : true
|
||||
];
|
||||
}
|
||||
$menu = $newmenu;
|
||||
|
||||
$core->auth->user_prefs->addWorkspace('accessibility');
|
||||
if ($core->auth->user_prefs->accessibility->nodragdrop) {
|
||||
# Order menu items
|
||||
$order = [];
|
||||
if (empty($_POST['im_order']) && !empty($_POST['order'])) {
|
||||
$order = $_POST['order'];
|
||||
asort($order);
|
||||
$order = array_keys($order);
|
||||
} elseif (!empty($_POST['im_order'])) {
|
||||
$order = $_POST['im_order'];
|
||||
if (substr($order, -1) == ',') {
|
||||
$order = substr($order, 0, strlen($order) - 1);
|
||||
}
|
||||
$order = explode(',', $order);
|
||||
}
|
||||
if (!empty($order)) {
|
||||
$newmenu = [];
|
||||
foreach ($order as $i => $k) {
|
||||
$newmenu[] = [
|
||||
'label' => $menu[$k]['label'],
|
||||
'descr' => $menu[$k]['descr'],
|
||||
'url' => $menu[$k]['url']];
|
||||
}
|
||||
$menu = $newmenu;
|
||||
}
|
||||
}
|
||||
|
||||
// Save menu in blog settings
|
||||
$core->blog->settings->system->put('simpleMenu', $menu);
|
||||
$core->blog->triggerBlog();
|
||||
|
||||
// All done successfully, return to menu items list
|
||||
dcPage::addSuccessNotice(__('Menu items have been successfully updated.'));
|
||||
http::redirect($p_url);
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Display
|
||||
?>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title><?php echo $page_title; ?></title>
|
||||
<?php
|
||||
$core->auth->user_prefs->addWorkspace('accessibility');
|
||||
if (!$core->auth->user_prefs->accessibility->nodragdrop) {
|
||||
echo
|
||||
dcPage::jsLoad('js/jquery/jquery-ui.custom.js') .
|
||||
dcPage::jsLoad('js/jquery/jquery.ui.touch-punch.js') .
|
||||
dcPage::jsLoad(dcPage::getPF('simpleMenu/js/simplemenu.js'));
|
||||
}
|
||||
echo dcPage::jsConfirmClose('settings', 'menuitemsappend', 'additem', 'menuitems');
|
||||
?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php
|
||||
|
||||
if ($step) {
|
||||
switch ($step) {
|
||||
case 1:
|
||||
$step_label = __('Step #1');
|
||||
break;
|
||||
case 2:
|
||||
if ($items[$item_type][1]) {
|
||||
$step_label = __('Step #2');
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
if ($items[$item_type][1]) {
|
||||
$step_label = __('Step #3');
|
||||
} else {
|
||||
$step_label = __('Step #2');
|
||||
}
|
||||
break;
|
||||
}
|
||||
echo dcPage::breadcrumb(
|
||||
[
|
||||
html::escapeHTML($core->blog->name) => '',
|
||||
$page_title => $p_url,
|
||||
__('Add item') => '',
|
||||
$step_label => ''
|
||||
],
|
||||
[
|
||||
'hl_pos' => -2]
|
||||
) .
|
||||
dcPage::notices();
|
||||
} else {
|
||||
echo dcPage::breadcrumb(
|
||||
[
|
||||
html::escapeHTML($core->blog->name) => '',
|
||||
$page_title => ''
|
||||
]) .
|
||||
dcPage::notices();
|
||||
}
|
||||
|
||||
if ($step) {
|
||||
// Formulaire d'ajout d'un item
|
||||
switch ($step) {
|
||||
case 1:
|
||||
// Selection du type d'item
|
||||
echo '<form id="additem" action="' . $p_url . '&add=2" method="post">';
|
||||
echo '<fieldset><legend>' . __('Select type') . '</legend>';
|
||||
echo '<p class="field"><label for="item_type" class="classic">' . __('Type of item menu:') . '</label>' . form::combo('item_type', $items_combo) . '</p>';
|
||||
echo '<p>' . $core->formNonce() . '<input type="submit" name="appendaction" value="' . __('Continue...') . '" />' . '</p>';
|
||||
echo '</fieldset>';
|
||||
echo '</form>';
|
||||
break;
|
||||
case 2:
|
||||
if ($items[$item_type][1]) {
|
||||
// Choix à faire
|
||||
echo '<form id="additem" action="' . $p_url . '&add=3" method="post">';
|
||||
echo '<fieldset><legend>' . $item_type_label . '</legend>';
|
||||
switch ($item_type) {
|
||||
case 'lang':
|
||||
echo '<p class="field"><label for="item_select" class="classic">' . __('Select language:') . '</label>' .
|
||||
form::combo('item_select', $langs_combo);
|
||||
break;
|
||||
case 'category':
|
||||
echo '<p class="field"><label for="item_select" class="classic">' . __('Select category:') . '</label>' .
|
||||
form::combo('item_select', $categories_combo);
|
||||
break;
|
||||
case 'archive':
|
||||
echo '<p class="field"><label for="item_select" class="classic">' . __('Select month (if necessary):') . '</label>' .
|
||||
form::combo('item_select', $months_combo);
|
||||
break;
|
||||
case 'pages':
|
||||
echo '<p class="field"><label for="item_select" class="classic">' . __('Select page:') . '</label>' .
|
||||
form::combo('item_select', $pages_combo);
|
||||
break;
|
||||
case 'tags':
|
||||
echo '<p class="field"><label for="item_select" class="classic">' . __('Select tag (if necessary):') . '</label>' .
|
||||
form::combo('item_select', $tags_combo);
|
||||
break;
|
||||
default:
|
||||
echo
|
||||
# --BEHAVIOR-- adminSimpleMenuSelect
|
||||
# Optional step once $item_type known : should provide a field using 'item_select' as id
|
||||
$core->callBehavior('adminSimpleMenuSelect', $item_type, 'item_select');
|
||||
}
|
||||
echo form::hidden('item_type', $item_type);
|
||||
echo '<p>' . $core->formNonce() . '<input type="submit" name="appendaction" value="' . __('Continue...') . '" /></p>';
|
||||
echo '</fieldset>';
|
||||
echo '</form>';
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
// Libellé et description
|
||||
echo '<form id="additem" action="' . $p_url . '&add=4" method="post">';
|
||||
echo '<fieldset><legend>' . $item_type_label . ($item_select_label != '' ? ' (' . $item_select_label . ')' : '') . '</legend>';
|
||||
echo '<p class="field"><label for="item_label" class="classic required"><abbr title="' . __('Required field') . '">*</abbr> ' .
|
||||
__('Label of item menu:') . '</label>' .
|
||||
form::field('item_label', 20, 255, [
|
||||
'default' => $item_label,
|
||||
'extra_html' => 'required placeholder="' . __('Label') . '" lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"'
|
||||
]) .
|
||||
'</p>';
|
||||
echo '<p class="field"><label for="item_descr" class="classic">' .
|
||||
__('Description of item menu:') . '</label>' . form::field('item_descr', 30, 255,
|
||||
[
|
||||
'default' => $item_descr,
|
||||
'extra_html' => 'lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"'
|
||||
]) . '</p>';
|
||||
echo '<p class="field"><label for="item_url" class="classic required"><abbr title="' . __('Required field') . '">*</abbr> ' .
|
||||
__('URL of item menu:') . '</label>' .
|
||||
form::field('item_url', 40, 255, [
|
||||
'default' => $item_url,
|
||||
'extra_html' => 'required placeholder="' . __('URL') . '"'
|
||||
]) .
|
||||
'</p>';
|
||||
echo form::hidden('item_type', $item_type) . form::hidden('item_select', $item_select);
|
||||
echo '<p class="field"><label for="item_descr" class="classic">' .
|
||||
__('Open URL on a new tab') . ':</label>' . form::checkbox('item_targetBlank', 'blank') . '</p>';
|
||||
echo '<p>' . $core->formNonce() . '<input type="submit" name="appendaction" value="' . __('Add this item') . '" /></p>';
|
||||
echo '</fieldset>';
|
||||
echo '</form>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Formulaire d'activation
|
||||
if (!$step) {
|
||||
echo '<form id="settings" action="' . $p_url . '" method="post">' .
|
||||
'<p>' . form::checkbox('active', 1, $menu_active) .
|
||||
'<label class="classic" for="active">' . __('Enable simple menu for this blog') . '</label>' . '</p>' .
|
||||
'<p>' . $core->formNonce() . '<input type="submit" name="saveconfig" value="' . __('Save configuration') . '" />' . '</p>' .
|
||||
'</form>';
|
||||
}
|
||||
|
||||
// Liste des items
|
||||
if (!$step) {
|
||||
echo '<form id="menuitemsappend" action="' . $p_url . '&add=1" method="post">';
|
||||
echo '<p class="top-add">' . $core->formNonce() . '<input class="button add" type="submit" name="appendaction" value="' . __('Add an item') . '" /></p>';
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
if (count($menu)) {
|
||||
if (!$step) {
|
||||
echo '<form id="menuitems" action="' . $p_url . '" method="post">';
|
||||
}
|
||||
// Entête table
|
||||
echo
|
||||
'<div class="table-outer">' .
|
||||
'<table class="dragable">' .
|
||||
'<caption>' . __('Menu items list') . '</caption>' .
|
||||
'<thead>' .
|
||||
'<tr>';
|
||||
if (!$step) {
|
||||
echo '<th scope="col"></th>';
|
||||
echo '<th scope="col"></th>';
|
||||
}
|
||||
echo
|
||||
'<th scope="col">' . __('Label') . '</th>' .
|
||||
'<th scope="col">' . __('Description') . '</th>' .
|
||||
'<th scope="col">' . __('URL') . '</th>' .
|
||||
'<th scope="col">' . __('Open URL on a new tab') . '</th>' .
|
||||
'</tr>' .
|
||||
'</thead>' .
|
||||
'<tbody' . (!$step ? ' id="menuitemslist"' : '') . '>';
|
||||
$count = 0;
|
||||
foreach ($menu as $i => $m) {
|
||||
echo '<tr class="line" id="l_' . $i . '">';
|
||||
|
||||
//because targetBlank can not exists. This value has been added after this plugin creation.
|
||||
if ((isset($m['targetBlank'])) && ($m['targetBlank'])) {
|
||||
$targetBlank = true;
|
||||
$targetBlankStr = 'X';
|
||||
} else {
|
||||
$targetBlank = false;
|
||||
$targetBlankStr = '';
|
||||
}
|
||||
|
||||
if (!$step) {
|
||||
$count++;
|
||||
echo '<td class="handle minimal">' .
|
||||
form::number(['order[' . $i . ']'], [
|
||||
'min' => 1,
|
||||
'max' => count($menu),
|
||||
'default' => $count,
|
||||
'class' => 'position',
|
||||
'extra_html' => 'title="' . sprintf(__('position of %s'), html::escapeHTML(__($m['label']))) . '"'
|
||||
]) .
|
||||
form::hidden(['dynorder[]', 'dynorder-' . $i], $i) . '</td>';
|
||||
echo '<td class="minimal">' . form::checkbox(['items_selected[]', 'ims-' . $i], $i) . '</td>';
|
||||
echo '<td class="nowrap" scope="row">' . form::field(['items_label[]', 'iml-' . $i], '', 255,
|
||||
[
|
||||
'default' => html::escapeHTML(__($m['label'])),
|
||||
'extra_html' => 'lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"'
|
||||
]) . '</td>';
|
||||
echo '<td class="nowrap">' . form::field(['items_descr[]', 'imd-' . $i], '30', 255,
|
||||
[
|
||||
'default' => html::escapeHTML(__($m['descr'])),
|
||||
'extra_html' => 'lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"'
|
||||
]) . '</td>';
|
||||
echo '<td class="nowrap">' . form::field(['items_url[]', 'imu-' . $i], '30', 255, html::escapeHTML($m['url'])) . '</td>';
|
||||
echo '<td class="nowrap">' . form::checkbox('items_targetBlank' . $i, 'blank', $targetBlank) . '</td>';
|
||||
} else {
|
||||
echo '<td class="nowrap" scope="row">' . html::escapeHTML(__($m['label'])) . '</td>';
|
||||
echo '<td class="nowrap">' . html::escapeHTML(__($m['descr'])) . '</td>';
|
||||
echo '<td class="nowrap">' . html::escapeHTML($m['url']) . '</td>';
|
||||
echo '<td class="nowrap">' . $targetBlankStr . '</td>';
|
||||
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody>' .
|
||||
'</table></div>';
|
||||
if (!$step) {
|
||||
echo '<div class="two-cols">';
|
||||
echo '<p class="col">' . form::hidden('im_order', '') . $core->formNonce();
|
||||
echo '<input type="submit" name="updateaction" value="' . __('Update menu') . '" />' . '</p>';
|
||||
echo '<p class="col right">' . '<input id="remove-action" type="submit" class="delete" name="removeaction" ' .
|
||||
'value="' . __('Delete selected menu items') . '" ' .
|
||||
'onclick="return window.confirm(\'' . html::escapeJS(__('Are you sure you want to remove selected menu items?')) . '\');" />' .
|
||||
'</p>';
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
}
|
||||
} else {
|
||||
echo
|
||||
'<p>' . __('No menu items so far.') . '</p>';
|
||||
}
|
||||
|
||||
dcPage::helpBlock('simpleMenu');
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user