Форум Joomla! Україна
  • Головна
  • Пошук
  • Користувачі
  • Команда форуму
  • Реєстрація
  • Увійти
    Увійти
    Ім’я користувача
    Пароль:
    Забули пароль?
     
  • Реєстрація
  • Увійти
Форум Joomla! Україна Шаблони та дизайн, сайти на Joomla Шаблони для Joomla — дизайн, верстка, модифікації v
« Попереднє 1 … 4 5 6 7 8 … 10 Наступне »
Як створити гумове меню?


 
  • 0 голос(ів) - 0 у середньому
Як створити гумове меню?
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#31
16.03.2010, 10:47 PM
Для створення гумового меню (яке розтягуватиметься по всій ширині) необхідно:
1) В Адмінці створити меню з звичайним списковим типом (не Legacy).
2) В параметрах цього модулю (Расширения - Менеджер модулей - обрати головне меню - Расширеные параметры - ID меню) вказати свій Ідентифікатор, наприклад menu1.
3) В CSS вашого шаблону необхідно прописати
Код:
#menu1 li{
    display: block;
    float: left;
}
4) Завантажте та відкрийте файл ...сайт/modules/mod_mainmenu/tmpl/default.php на компьютері, та змініть його зміст на
Код:
<?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);            
       }
або ж просто створіть текстовий файл з кодуванням UTF-8, впишіть вищевказаний код і назвіть default.php.
Не забудьте змінити три прокоментовані параметри, вставивши свії числа!!!
5) Створити на сайті ...сайт/templates/назва шаблону/html/mod_mainmenu/, і завантажити туди наш створений файл default.php.
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#32
16.03.2010, 10:48 PM
Код:
#menu1 li{
   display: inline-block;
}

Я вже казав, це для IE не спрацює!!!


Цитата:4) Завантажте та відкрийте файл ...сайт/modules/mod_mainmenu/tmpl/default.php на компьютері, та змініть його зміст на

Не треба і не можна його міняти!!! Саме в шаблон собі треба копіювати! Бо коли буде оновлення джумли, це затреться! А в шаблоні - не затреться! Бо це шаблон по замовчанню! Вся система зроблена, щоби ти в ті файли не ліз. Для твоїх ігор є той файл у тебе в шаблоні.
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#33
16.03.2010, 10:57 PM
Завантажте та відкрийте файл ... на компьютері, ключове слово НА КОМП*ЮТЕРІ

З*явилася проблема(((( при зміні на

Код:
#menu1 li{
   display: inline;
}

всі елементі стали вертикальні((((((
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#34
16.03.2010, 11:00 PM
А, не догледів. Сорі.

#menu li {display:block;float:left;}

Треба пробувати. Дай лінк, спробую.
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#35
16.03.2010, 11:05 PM
Дякую - допомогло))) ...щоб не було путаниці, трохи перепишу пост.
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#36
16.03.2010, 11:08 PM
То зміни пост на початоку теми. Щоби народ не читав дві сторінки. Скоро три.
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#37
16.03.2010, 11:10 PM
зроблено!
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#38
16.03.2010, 11:25 PM
Цитата:1) В "Адмінці" створити меню з звичайним списковим типом (не Legacy).
2) В параметрах цього модулю (Расширения - Менеджер модулей - обрати головне меню - Расширеные параметры - ID меню) вказати свій Ідентифікатор, наприклад menu1.

Оце більш зрозуміло опиши, б.л.

Та тут:
Цитата:Не забудьте змінити три прокоментовані параметри, вставивши свії числа!!!

Розкажи що за числа. Це тобі зрозуміло. про що ти пишеш. А більшість прост оне дожене, про що йдеться.

Ясно, що такі докладні розписи вимагаються трошки часу і сил. Але інакше спільнота не буде спільнотою.

Можеш оздобити скрін-шотами, що ти робиш, буде ще краще.
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#39
17.03.2010, 07:43 AM
Навряд чи скріни потрібні, думаю, якщо людина на рівні, щоб було необхідно робити таке меню, то інструкції вистачить. До речі, думаю все добре описав, зацініть!
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#40
17.03.2010, 08:42 AM
Код:
4) Завантажте та відкрийте файл ...сайт/modules/mod_mainmenu/tmpl/default.php на компьютері, та змініть його зміст на

Формулювання розпливчасте. Я сайт і так у себе на комп'ютері роблю. А викладаю вже все готове на сервер.

Код:
$total_menu_width = ***;
$padding_sum = **;
$border_sum = **;

Ну так все очевидно з першого разу, що аж капець. Себе на місце іншої людини постав. Ти би сам пару днів тому з даного опису зрозумів, що і до чого?
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#41
17.03.2010, 02:14 PM
а так?
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#42
17.03.2010, 02:18 PM
Ладно, давай заліковку.
ceedee
Не в мережі

Junior Member

Дописів: 5
Тем: 0
Приєднався: 23.03.2010, 09:42 AM
Репутація: 0
#43
01.04.2010, 08:47 AM
Доброго дня! Дуже вдячний за цю тему, дуже допомогла. Може підкажете як зробити ще одну лінійку меню таким чином? Тобто зверху йде головне меню, розтягується чудово. А під ним якщо залогінитись йде user menu, намагаюсь зробити так щоб воно теж розтягувалось. Все прописав аналогічним чином тільки не знаю що робити з default.php? Дякую!
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#44
01.04.2010, 09:51 AM
Робиш у usermenu інший ID, наприклад menu2
І код виправляєш приблизно так:

Код:
// В масиві $menuids зберігаються ID меню, для яких застосовується ця правка
       $menuids[] = "menu1";
       $menuids[] = "menu2";
       // і можна так додавати, скільки влізе
       $total_menu_width = ***;                         /* ширина меню !!!!!! така ж сама як і у верхнього, тому проблеми нема */
       $padding_sum = **;                                 /* сума бокових падінгів в тезі <li> !!!!!! така ж сама як і у верхнього, тому проблеми нема */
       $border_sum = **;                                   /* сума бокових бордерів в тезі <li> !!!!!! така ж сама як і у верхнього, тому проблеми нема */
foreach ($menuids as $menuid ) {
       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;
             } n";//!!!!!!!!! Тут додав перенесення рядку після стилю, щоби не зливалось, щоча, імовірно, це не обов'язоков

            if (!isset ($document) ) { // !!!!!!!!! Перевірю, щоби даремно не ганяти. Не критично, але певно так ліпше.
                      $document = & JFactory::getDocument();
            }
            $document->addStyleDeclaration($_css);            
       }
}

Написано тут, не текстувалаось, але ідея має бути зрозуміла.
Вам ліньки розгорнуто і з малюнками формулювати запитання? Нам ліньки відповідати.
Правильне запитання:
- Версія J! і проблемного розширення
- Що мав на меті?
- Що пробував?
- Що вийшло і що не вийшло?
- Які були помилки?
ceedee
Не в мережі

Junior Member

Дописів: 5
Тем: 0
Приєднався: 23.03.2010, 09:42 AM
Репутація: 0
#45
01.04.2010, 11:41 AM
gruz, щиро дякую! Незважаючи на перше квітня, все працює ) з паддінгами і бордерами я шось затупив але методом тику все получилось. РЕСПЕКТ!
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#46
10.04.2010, 02:24 PM
Проблема! Переносив сайт з субдомену на основний, встановив Joomla! 1.5.15 Stable, скопіював папку шаблону туди... Тепер меню через раз працює, а саме не виводится потрібний стиль через скрипт. Чи може більш свіжа Джумла блокувати скипти в папці шаблону, і чому цей скрипт то спрацьовує, то ні....????????
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#47
10.04.2010, 05:44 PM
Інша причина якась, ніж ти назвав.
Вам ліньки розгорнуто і з малюнками формулювати запитання? Нам ліньки відповідати.
Правильне запитання:
- Версія J! і проблемного розширення
- Що мав на меті?
- Що пробував?
- Що вийшло і що не вийшло?
- Які були помилки?
Hijacker
Не в мережі

Junior Member

Дописів: 34
Тем: 5
Приєднався: 05.03.2010, 11:25 PM
Репутація: 0
#48
10.04.2010, 07:37 PM
От і цікаво, в чому ж причина в неспрацьовуванні скрипта?
gruz
Не в мережі

Senior Member

Дописів: 675
Тем: 9
Приєднався: 19.06.2008, 04:09 PM
Репутація: 0
#49
10.04.2010, 08:39 PM
Чесно кажучи, чутки про мої екстрасенсорі здібності дещо перебільшені. По аурі сайти не лікую.
Вам ліньки розгорнуто і з малюнками формулювати запитання? Нам ліньки відповідати.
Правильне запитання:
- Версія J! і проблемного розширення
- Що мав на меті?
- Що пробував?
- Що вийшло і що не вийшло?
- Які були помилки?
« Попередня | Наступна »

Переглядають цю тему: Гості: 1

Сторінок (2): « Попереднє 1 2


Можливо схожі теми...
Тема Автор Відповіді Перегляди Останній допис
  Як створити другий рядок меню для шаблону YooTheme NikonoFil 1 3,661 10.01.2009, 03:58 PM
Останній допис: NikonoFil

  • Версію для друку
  • Підписатися на цю тему
Швидкий перехід:

  • Команда форуму
  • Зв’яжіться з нами
  • Joomla! Україна
  • Повернутись на початок
  • Легкий режим
  • Позначити всі форуми прочитаними
  • RSS канал
Лінійний режим
Каскадний режим