fix lndropdown-default.php: target=...

master
Harald Wolff 2021-11-23 00:37:13 +01:00
parent 9f4da853c0
commit 165c82a8b0
5 changed files with 107 additions and 141 deletions

View File

@ -1,42 +0,0 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
*
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Helper\ModuleHelper;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
$id = '';
if ($tagId = $params->get('tag_id', ''))
{
$id = ' id="' . $tagId . '"';
}
?>
<nav class="navbar navbar-expand-lg">
<div class="container-fluid float-end float-sm-none">
<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbar<?php echo $module->id; ?>" aria-controls="navbar<?php echo $module->id; ?>" aria-expanded="false" aria-label="<?php echo Text::_('MOD_MENU_TOGGLE'); ?>">
<span class="bi-list fs-2" aria-hidden="true"></span>
</button>
<div class="collapse navbar-collapse" id="navbar<?php echo $module->id; ?>">
<ul<?php echo $id; ?> class="navbar-nav me-auto <?php echo $class_sfx; ?>">
<?php foreach ($list as $i => &$item)
{
if ($item->level == $params['startLevel']) {
require ModuleHelper::getLayoutPath('mod_menu', 'item');
}
}
?>
</ul>
</div>
</div>
</nav>

View File

@ -1 +0,0 @@
<a id="mi-<?=$item->id;?>" class="<?=$mi_class;?>" <?=$aattributes;?><?php if ($hasChildren): ?> data-bs-toggle="dropdown" aria-expanded="false"<?php endif; ?>><?=$item->title;?></a>

View File

@ -1,8 +0,0 @@
<?php if ($hasChildren): ?><span id="mi-<?=$item->id;?>" class="<?=$mi_class;?>" data-bs-toggle="dropdown" aria-expanded="false"><?php endif;?>
<a class="nav-link" href="<?=$item->flink;?>"<?php
foreach ($attributes as $name => &$value){
echo ' ' . $name . '="' . $value. '"';
}
unset($value);
?>><?=$item->title;?></a>
<?php if ($hasChildren): ?></span><?php endif; ?>

View File

@ -1,90 +0,0 @@
<?php
use Joomla\CMS\Helper\ModuleHelper;
use Joomla\CMS\HTML\HTMLHelper;
$hasChildren = $item->hasChildren() && ($item->level < $params['endLevel']);
$hasParent = $item->hasParent();
$itemParams = $item->getParams();
$class = 'item-' . $item->id;
$mi_class = 'nav-link';
$attributes = array();
if ($hasParent)
{
$mi_class .= " dropdown-item";
} else {
// $class .= " nav-item";
}
$class .= " nav-item";
if ($hasChildren)
{
$class .= " dropdown";
$mi_class .= " dropdown-toggle";
$attributes["role"] = 'button';
}
if ($item->type === 'separator')
{
$class .= ' divider';
}
if ($item->id == $default_id)
{
$class .= ' default';
}
if ($item->id == $active_id || ($item->type === 'alias' && $itemParams->get('aliasoptions') == $active_id))
{
$class .= ' current';
}
if ($item->browserNav == 1)
{
$attributes['target'] = '_blank';
$attributes['rel'] = 'noopener noreferrer';
if ($item->anchor_rel == 'nofollow')
{
$attributes['rel'] .= ' nofollow';
}
}
elseif ($item->browserNav == 2)
{
$options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,' . $params->get('window_open');
$attributes['onclick'] = "window.open(this.href, 'targetWindow', '" . $options . "'); return false;";
}
echo '<li class="' . $class . '">';
switch ($item->type) :
case 'heading':
require ModuleHelper::getLayoutPath('mod_menu', 'item-heading');
break;
case 'component':
case 'url':
require ModuleHelper::getLayoutPath('mod_menu', 'item-url');
break;
case 'separator':
break;
default:
require ModuleHelper::getLayoutPath('mod_menu', 'item-url');
break;
endswitch;
if ($hasChildren)
{
echo '<ul class="dropdown-menu" aria-labelledby="mi-'.$item->id.'">';
foreach ($item->getChildren() as $i => &$item)
{
require ModuleHelper::getLayoutPath('mod_menu', 'item');
}
echo "</ul>";
}
echo "</li>";
?>

View File

@ -0,0 +1,107 @@
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
*
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Helper\ModuleHelper;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
if (!defined('__LNDROPDOWN')){
define('__LNDROPDOWN','');
function menu_item($item, $endlevel)
{
$attributes = array();
$hasChildren = $item->hasChildren() && ($item->level < $endlevel);
$hasParent = $item->hasParent();
$isHeading = $item->type == 'heading';
$li_classes = "ln-nav-item pe-pointer px-1 mx-2";
if ($item->browserNav == 1)
{
$attributes['target'] = '_blank';
$attributes['rel'] = 'noopener noreferrer';
if ($item->anchor_rel == 'nofollow')
{
$attributes['rel'] .= ' nofollow';
}
}
elseif ($item->browserNav == 2)
{
$options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,' . $params->get('window_open');
$attributes['onclick'] = "window.open(this.href, 'targetWindow', '" . $options . "'); return false;";
}
?><li class="<?=$li_classes;?>">
<?php
if (!$isHeading)
{
?><a href="<?=$item->flink;?>"<?php
foreach ($attributes as $n => $v)
{
echo ' ' . $n . '="' . $v . '"';
}
?>><?=$item->title;?></a><?php
}
if ($hasChildren)
{
?><input type="checkbox" id="lnm-cb-<?=$item->id;?>" class="ln-toggle"><label for="lnm-cb-<?=$item->id;?>" class="ln-toggler">
<?php if ($isHeading): ?><span class="ln-nav-item pe-pointer"><?=$item->title;?></span><?php endif; ?><span class="bi-caret-down pe-pointer" aria-hidden="true"></span>
</label>
<div class="ln-toggled ln-dropdown" id="">
<ul class="ln-nav"><?php
foreach ($item->getChildren() as $i => &$item)
{
menu_item($item, $endlevel);
}
unset($item);
?></ul>
</div>
<?php
}
?></li><?php
}
function menu($id, $items, $endlevel)
{
?>
<div class="ln-navbar ln-collapse">
<input type="checkbox" id="lnm-cb-<?=$id;?>" class="ln-toggle">
<label for="lnm-cb-<?=$id;?>" class="ln-toggler">
<span class="bi-list pe-pointer fs-2r5" aria-hidden="true"></span>
</label>
<div class="ln-toggled" id="">
<ul class="ln-nav"><?php
foreach ($items as $i => &$item)
{
menu_item($item, $endlevel);
}
unset($item);
?></ul>
</div>
</div>
<?php
}
}
$items = array();
foreach ($list as $i => &$item) {
if ($item->level == $params['startLevel']) {
array_push($items, $item);
}
}
unset($item);
menu('m'.$module->id, $items, $params['endLevel']);
?>