Как сделать нормальным меню форума?

Автор plintus, 03 мая 2012, 12:18:48

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

plintus

Подскажите пожалуйста как можно сделать так чтоб меню выглядело по божески. Короче при уменьшении размера окна меню прыгает вниз и его както не очень видать. Может есть мод какой заменяющий стандартное меню?

Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

GeorG

Цитата: plintus от 03 мая 2012, 12:18:48Может есть мод какой заменяющий стандартное меню?
Так у вас кажется меню-то не стандартное (т.е., в него и так внесены правки) :)

Цитата: plintus от 03 мая 2012, 12:18:48Подскажите пожалуйста как можно сделать так чтоб меню выглядело по божески.
Например шрифт уменьшить в нём. Просто у вас там добавленный новые меню, которых нет изначально, вот потому так и выглядит на узких мониторах.
Вообще, может выглядеть и не так плохо у тех кто не админ и не модератор (у них просто нет дополнительных меню, и может выглядеть нормально).
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

plintus

Шрифт и так мелкий. А у пользователей один два пункта переносятся
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

0daliska

только в Subs вынести какие-то пункты в подменю... то есть могу предложить сделать только руками...
Например, к кнопке Форум можно сделать подменю Администрирование, Модерирование, Помощь, Статистика, Календарь... там можно хорошо сократить за счет этого длину главного меню...
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

plintus

0daliska именно так наверное и подойдёт мне. Только как как это реализовать?

Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

0daliska

Вот код кнопок (взят из чистого SMF2.0.2)
// All the buttons we can possible want and then some, try pulling the final list of buttons from cache first.
if (($menu_buttons = cache_get_data('menu_buttons-' . implode('_', $user_info['groups']) . '-' . $user_info['language'], $cacheTime)) === null || time() - $cacheTime <= $modSettings['settings_updated'])
{
$buttons = array(
// Кнопка начало
'home' => array(
'title' => $txt['home'],
'href' => $scripturl,
'show' => true,
'sub_buttons' => array(
),
'is_last' => $context['right_to_left'],
),
//Кнопка Помощь
'help' => array(
'title' => $txt['help'],
'href' => $scripturl . '?action=help',
'show' => true,
'sub_buttons' => array(
),
),
//Кнопка поиск
'search' => array(
'title' => $txt['search'],
'href' => $scripturl . '?action=search',
'show' => $context['allow_search'],
'sub_buttons' => array(
),
),
//Кнопка Админ
'admin' => array(
'title' => $txt['admin'],
'href' => $scripturl . '?action=admin',
'show' => $context['allow_admin'],
                              //А это меню данного подменю! Обратите внимание, как они пишутся!
'sub_buttons' => array(
                                       //Настройки
'featuresettings' => array(
'title' => $txt['modSettings_title'],
'href' => $scripturl . '?action=admin;area=featuresettings',
'show' => allowedTo('admin_forum'),
),
                                       // Пакеты модификаций
'packages' => array(
'title' => $txt['package'],
'href' => $scripturl . '?action=admin;area=packages',
'show' => allowedTo('admin_forum'),
),
                                       //Лог ошибок
'errorlog' => array(
'title' => $txt['errlog'],
'href' => $scripturl . '?action=admin;area=logs;sa=errorlog;desc',
'show' => allowedTo('admin_forum') && !empty($modSettings['enableErrorLogging']),
),
                                       //Права доступа
'permissions' => array(
'title' => $txt['edit_permissions'],
'href' => $scripturl . '?action=admin;area=permissions',
'show' => allowedTo('manage_permissions'),
'is_last' => true,
),
),
),
// Модерирование
'moderate' => array(
'title' => $txt['moderate'],
'href' => $scripturl . '?action=moderate',
'show' => $context['allow_moderation_center'],
                                //И здесь подпункты
'sub_buttons' => array(
                               //А именно лог модерации вот:
'modlog' => array(
'title' => $txt['modlog_view'],
'href' => $scripturl . '?action=moderate;area=modlog',
'show' => !empty($modSettings['modlog_enabled']) && !empty($user_info['mod_cache']) && $user_info['mod_cache']['bq'] != '0=1',
),
                                        //Неодобренные сообщения и темы
'poststopics' => array(
'title' => $txt['mc_unapproved_poststopics'],
'href' => $scripturl . '?action=moderate;area=postmod;sa=posts',
'show' => $modSettings['postmod_active'] && !empty($user_info['mod_cache']['ap']),
),
                                       //Неодобренные вложения
'attachments' => array(
'title' => $txt['mc_unapproved_attachments'],
'href' => $scripturl . '?action=moderate;area=attachmod;sa=attachments',
'show' => $modSettings['postmod_active'] && !empty($user_info['mod_cache']['ap']),
),
                                        //Уведомления
'reports' => array(
'title' => $txt['mc_reported_posts'],
'href' => $scripturl . '?action=moderate;area=reports',
'show' => !empty($user_info['mod_cache']) && $user_info['mod_cache']['bq'] != '0=1',
'is_last' => true,
),
),
),
// Кнопка профиля
'profile' => array(
'title' => $txt['profile'],
'href' => $scripturl . '?action=profile',
'show' => $context['allow_edit_profile'],
                               //А это подпункты
'sub_buttons' => array(
                                        //Основная информация
'summary' => array(
'title' => $txt['summary'],
'href' => $scripturl . '?action=profile',
'show' => true,
),
                                       //Настройки аккаунта
'account' => array(
'title' => $txt['account'],
'href' => $scripturl . '?action=profile;area=account',
'show' => allowedTo(array('profile_identity_any', 'profile_identity_own', 'manage_membergroups')),
),
                                      //Настройки профиля
'profile' => array(
'title' => $txt['forumprofile'],
'href' => $scripturl . '?action=profile;area=forumprofile',
'show' => allowedTo(array('profile_extra_any', 'profile_extra_own')),
'is_last' => true,
),
),
),
//Кнопка Личные сообщения
'pm' => array(
'title' => $txt['pm_short'],
'href' => $scripturl . '?action=pm',
'show' => $context['allow_pm'],
                               //А это подпункты кнопки личные сообщения
'sub_buttons' => array(
                                         //Входящие сообщения
'pm_read' => array(
'title' => $txt['pm_menu_read'],
'href' => $scripturl . '?action=pm',
'show' => allowedTo('pm_read'),
),
                                       //Отправленные сообщения
'pm_send' => array(
'title' => $txt['pm_menu_send'],
'href' => $scripturl . '?action=pm;sa=send',
'show' => allowedTo('pm_send'),
'is_last' => true,
),
),
),
// Кнопка календарь
'calendar' => array(
'title' => $txt['calendar'],
'href' => $scripturl . '?action=calendar',
'show' => $context['allow_calendar'],
'sub_buttons' => array(
'view' => array(
'title' => $txt['calendar_menu'],
'href' => $scripturl . '?action=calendar',
'show' => allowedTo('calendar_post'),
),
'post' => array(
'title' => $txt['calendar_post_event'],
'href' => $scripturl . '?action=calendar;sa=post',
'show' => allowedTo('calendar_post'),
'is_last' => true,
),
),
),
//Кнопка Пользователи
'mlist' => array(
'title' => $txt['members_title'],
'href' => $scripturl . '?action=mlist',
'show' => $context['allow_memberlist'],
                           //А это подменю для кнопки пользователи! обратите внимание, как они пишутся
'sub_buttons' => array(
                                    //   это подпункт список
'mlist_view' => array(
'title' => $txt['mlist_menu_view'],
'href' => $scripturl . '?action=mlist',
'show' => true,
),
                                        //   это подпункт поиск пользователей
'mlist_search' => array(
'title' => $txt['mlist_search'],
'href' => $scripturl . '?action=mlist;sa=search',
'show' => true,
'is_last' => true,
),
),
),
//Кнопка вход
'login' => array(
'title' => $txt['login'],
'href' => $scripturl . '?action=login',
'show' => $user_info['is_guest'],
'sub_buttons' => array(
),
),
//Кнопка регистрации
'register' => array(
'title' => $txt['register'],
'href' => $scripturl . '?action=register',
'show' => $user_info['is_guest'],
'sub_buttons' => array(
),
'is_last' => !$context['right_to_left'],
),
//Это кнопка выход
'logout' => array(
'title' => $txt['logout'],
'href' => $scripturl . '?action=logout;%1$s=%2$s',
'show' => !$user_info['is_guest'],
'sub_buttons' => array(
),
'is_last' => !$context['right_to_left'],
),
//Конец всех кнопок
);

Смотрите и вникайте в свой Subs (он у вас будет немного отличаться - ведь кнопок у вас больше и то, какие кнопки и куда перенести правильнее и лучше, Вам виднее)...
Самое главное - уловите и поймите как прописаны кнопки и как подменю прописываются... Все - дальше идете и делаете... Главное осторожно и с умом... Без знаний php и понимания, что тут написано, ювелирно не сработать :)
Например, если бы мне надо было засунуть в кнопку начало в виде подменю кнопки Помощь и Поиск, то я бы взяла бы и эту часть кода :
// Кнопка начало
'home' => array(
'title' => $txt['home'],
'href' => $scripturl,
'show' => true,
'sub_buttons' => array(
),
'is_last' => $context['right_to_left'],
),
//Кнопка Помощь
'help' => array(
'title' => $txt['help'],
'href' => $scripturl . '?action=help',
'show' => true,
'sub_buttons' => array(
),
),
//Кнопка поиск
'search' => array(
'title' => $txt['search'],
'href' => $scripturl . '?action=search',
'show' => $context['allow_search'],
'sub_buttons' => array(
),
),

и переписала следующим образом...
// Кнопка начало
'home' => array(
'title' => $txt['home'],
'href' => $scripturl,
'show' => true,
'sub_buttons' => array(
                                     //Кнопка Помощь
            'help' => array(
             'title' => $txt['help'],
             'href' => $scripturl . '?action=help',
             'show' => true,
                                             'is_last' => !$context['allow_search'],
                                     ),
                                     //Кнопка поиск
          'search' => array(
             'title' => $txt['search'],
             'href' => $scripturl . '?action=search',
             'show' => $context['allow_search'],
                                             'is_last' => true,
             ),
),
'is_last' => $context['right_to_left'],
),

Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

plintus

#6
0daliska теперь справлюсь спасибо вам большое. Поставил плюс. :)

Изменил короче меню теперь всё красиво. При пользовании поиском возникает пустой квадратик.
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

plintus

Простите за даббл постинг, а то так никто не ответил
Посмотрите пожалуйста правильно ли я сделал?

'forum' => array(
            'title' => empty($txt['sp-forum']) ? 'Forum' : $txt['sp-forum'],
            'href' => $scripturl . ($modSettings['sp_portal_mode'] == 1 && empty($context['disable_sp']) ? '?action=forum' : ''),
            'show' => in_array($modSettings['sp_portal_mode'], array(1, 3)) && empty($context['disable_sp']),
            'sub_buttons' => array(
                 'help' => array(
                 'title' => $txt['help'],
                 'href' => $scripturl . '?action=help',
                 'show' => true,
                ),
               'mlist' => array(
            'title' => $txt['members_title'],
            'href' => $scripturl . '?action=mlist',
            'show' => $context['allow_memberlist'],
            'sub_buttons' => array(
               'mlist_view' => array(
                  'title' => $txt['mlist_menu_view'],
                  'href' => $scripturl . '?action=mlist',
                  'show' => true,
               ),
               'mlist_search' => array(
                  'title' => $txt['mlist_search'],
                  'href' => $scripturl . '?action=mlist;sa=search',
                  'show' => true,
                  'is_last' => true,
               ),
            ),
         ),
                  'search' => array(
                 'title' => $txt['search'],
                 'href' => $scripturl . '?action=search',
                 'show' => $context['allow_search'],
                ),
             ),
         ),
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

0daliska

#8
Если меню должно быть таким:
Форум
   - Помощь
   - Пользователи
            - список пользователей
            -поиск пользователей
   - Поиск
То код должен выглядеть так:
'forum' => array(
'title' => empty($txt['sp-forum']) ? 'Forum' : $txt['sp-forum'],
'href' => $scripturl . ($modSettings['sp_portal_mode'] == 1 && empty($context['disable_sp']) ? '?action=forum' : ''),
'show' => in_array($modSettings['sp_portal_mode'], array(1, 3)) && empty($context['disable_sp']),
'sub_buttons' => array(
'help' => array(
'title' => $txt['help'],
'href' => $scripturl . '?action=help',
'show' => true,
'is_last' => !$context['allow_memberlist'],
),
'mlist' => array(
'title' => $txt['members_title'],
'href' => $scripturl . '?action=mlist',
'show' => $context['allow_memberlist'],
'sub_buttons' => array(
'mlist_view' => array(
'title' => $txt['mlist_menu_view'],
'href' => $scripturl . '?action=mlist',
'show' => true,
),
'mlist_search' => array(
'title' => $txt['mlist_search'],
'href' => $scripturl . '?action=mlist;sa=search',
'show' => true,
'is_last' => true,
),
),
),
'search' => array(
'title' => $txt['search'],
'href' => $scripturl . '?action=search',
'show' => $context['allow_search'],
),
),
),

То есть сделали правильно...
Единственное, что добавила, это
'is_last' => !$context['allow_memberlist'],
для пункта Помощь
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

plintus

#9
0daliska разницы никакой нет. Попробовал и так и так
А за что собственно отвечает строчка:
'is_last' => $context['allow_memberlist'],

Ну это ладно. А вот как избавиться от этого квадратика, который находится по адресу
сайт/search2/
Пробовал из бэкапа файл subs.php кидать всё нормально. Может из-за того что кнопка поиска скрыта?
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

0daliska

Закрывание списка... 'is_last' => !$context['allow_memberlist'],
последняя в списке, если НЕ разрешено просматривать список пользователей
без ! это означает, что будет последней, если разрешено просматривать список
обратите внимание на восклицательный знак!
---
А у вас выводится трехуровневое меню на форуме в главном меню?
Это я про вот этот участок имею в виду:
'sub_buttons' => array(
'mlist_view' => array(
'title' => $txt['mlist_menu_view'],
'href' => $scripturl . '?action=mlist',
'show' => true,
),
'mlist_search' => array(
'title' => $txt['mlist_search'],
'href' => $scripturl . '?action=mlist;sa=search',
'show' => true,
'is_last' => true,
),
),
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

plintus

Всё работает и без строчки 'is_last' => !$context['allow_memberlist'],

Да трёхуровневое.
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

0daliska

#12
Найдите код в том же Subs.php
if (isset($context['menu_buttons'][$context['current_action']]))
$current_action = $context['current_action'];
elseif ($context['current_action'] == 'search2')
$current_action = 'search';

и закомментируйте в нем две последние строчки:
if (isset($context['menu_buttons'][$context['current_action']]))
$current_action = $context['current_action'];
// elseif ($context['current_action'] == 'search2')
// $current_action = 'search';
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

Анатолий

Подскажите, уважаемые специалисты, какой скрипт и где он лежит для вывода выпадающего меню в Internet Explorer?  При попытке отладить своё меню в SMF в этом бораузере всё искажается - строки превращаются в пункты ul/li.

ksamochkin

Цитата: Анатолий от 24 апреля 2013, 09:47:36
Подскажите, уважаемые специалисты, какой скрипт и где он лежит для вывода выпадающего меню в Internet Explorer?  При попытке отладить своё меню в SMF в этом бораузере всё искажается - строки превращаются в пункты ul/li.
сам то понял что спросил?

Анатолий

Цитата: overyata от 25 апреля 2013, 20:19:34
сам то понял что спросил?

Так я ж не тебя, а специалистов спросил. )) Поясню для особо сообразительных. Поломал выпадающее меню форума. В опере оно нормально вывводится, а  експлорере в виде простого списка. В нормальной жизни для кроссбраузерности отвечает отдельный скрипт.

plintus

Анатолий код меню находится в файле /Sources/Subs.php  А в других броузерах нормально работает? Попробуйте использовать этот мод http://dragomano.ru/page/menu-editor-lite
Надёжный хостинг - быстрее быстрого на SSD-дисках от 120 руб/мес  с доменом в подарок Промо-код на скидку в 10%: Skid10

Анатолий

Спасибо большое за мод! С ошибкой только IE работает, все остальные нормально.