Доброго дня! Необхідно створити горизонтальне меню, але так, щоб воно заповнювало всю область, а елементи були однакової ширини.
Мені рекомендували модуль Extended menu, чи можливо це зробити, і якщо можливо - то як?
РІШЕННЯ ЗАДАЧІ!!! ДЯКУЮ gruz!
Для створення гумового меню (яке розтягуватиметься по всій ширині, а елементи будуть рівнооднакові) необхідно:
1) [u]В "Адмінці" створити меню (якщо його немає)[/u] (Все меню - Менеджер меню - Создать) .
2) Зайдіть в параметри модулю Главное меню (Расширения - Менеджер модулей - обрати потрібне головне меню). З правої сторони, в панелі параметрів обирати:
3) В CSS вашого шаблону необхідно прописати
#menu1 li{
display: block;
float: left;
}
4)Cтворіть текстовий документ і назвіть його default.php, впишіть нижчевказаний код і збережіть в кодуванні UTF-8.
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
if ( ! defined('modMainMenuXMLCallbackDefined') )
{
function modMainMenuXMLCallback(&$node, $args)
{
$user = &JFactory::getUser();
$menu = &JSite::getMenu();
$active = $menu->getActive();
$path = isset($active) ? array_reverse($active->tree) : null;
if (($args['end']) && ($node->attributes('level') >= $args['end']))
{
$children = $node->children();
foreach ($node->children() as $child)
{
if ($child->name() == 'ul') {
$node->removeChild($child);
}
}
}
if ($node->name() == 'ul') {
foreach ($node->children() as $child)
{
if ($child->attributes('access') > $user->get('aid', 0)) {
$node->removeChild($child);
}
}
}
if (($node->name() == 'li') && isset($node->ul)) {
$node->addAttribute('class', 'parent');
}
if (isset($path) && (in_array($node->attributes('id'), $path) || in_array($node->attributes('rel'), $path)))
{
if ($node->attributes('class')) {
$node->addAttribute('class', $node->attributes('class').' active');
} else {
$node->addAttribute('class', 'active');
}
}
else
{
if (isset($args['children']) && !$args['children'])
{
$children = $node->children();
foreach ($node->children() as $child)
{
if ($child->name() == 'ul') {
$node->removeChild($child);
}
}
}
}
if (($node->name() == 'li') && ($id = $node->attributes('id'))) {
if ($node->attributes('class')) {
$node->addAttribute('class', $node->attributes('class').' item'.$id);
} else {
$node->addAttribute('class', 'item'.$id);
}
}
if (isset($path) && $node->attributes('id') == $path[0]) {
$node->addAttribute('id', 'current');
} else {
$node->removeAttribute('id');
}
$node->removeAttribute('rel');
$node->removeAttribute('level');
$node->removeAttribute('access');
}
define('modMainMenuXMLCallbackDefined', true);
}
modMainMenuHelper::render($params, 'modMainMenuXMLCallback');
$menuid = "menu1";
$total_menu_width = ***; /* ширина меню */
$padding_sum = **; /* сума бокових падінгів в тезі <li> */
$border_sum = **; /* сума бокових бордерів в тезі <li> */
if ($params->get('tag_id') == $menuid) {
$items = &JSite::getMenu();
$rows = $items->getItems('menutype', $params->get('menutype'));
$k=0;
for ($i=0; $i<count($rows ); $i++) {
if ($rows[$i]->sublevel == 0 ) {
$k++;
}
}
$_css ="n#".$menuid." a {
display: block;
width:".(intval($total_menu_width/$k )-$padding_sum-$border_sum)."px;
}";
$document = & JFactory::getDocument();
$document->addStyleDeclaration($_css);
}
Не забудьте змінити три прокоментовані параметри, вставивши свії числа!!!
5) Створити на сайті теку ...сайт/templates/назва шаблону/html/mod_mainmenu/, і завантажити туди наш створений файл default.php.