FAQ: Сворачиваемые категории - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы только по IP.Content. Не путайте с IP.Board (!).
Если не знаете, что это такое, пожалуйста, не оффтопьте и обратите внимание на соседние разделы.
Установка и настройка форума IP.Board.
Оформление форума.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

FAQ: Сворачиваемые категории

#1 Пользователь не на сайте   RuB@N ответил: »

 
 
  • Member
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 57
  • Регистрация: 19-Январь 11
  • Репутация: 10
  • Откуда:Воронеж
  • IPB version:3.1.x
 

Отправлено 10 Февраль 2011 - 21:10

И так,активно использую этот форум,решил поделиться полезной модификацией.
Автор: Я
После данных изменений, наши подкатегории станут сворачиваться.

В блоках, вставляем в блок категорий этот код
<div id='category_list' class='general_box clearfix'>        <h3>Категории <a href='{$this->_database_url}?view=categories' class='right'>Все →</a></h3><ul class="menu">  <if test="is_array( $this->_categories ) && count( $this->_categories )"><foreach loop="$this->_categories[0] as $r">            <li>                  <a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $r['category_database_id'], $r['category_id'] )}'>{$r['category_name']}</a>  <if test="count( $this->_categories[ $r['category_id'] ] )">                <ul class="subnav"> <foreach loop="$this->_categories[ $r['category_id'] ] as $sub">                    <li><a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $sub['category_database_id'], $sub['category_id'] )}'><img src='http://ipbskins.ru/forum/public/style_images/ipbskins/bullet.png' alt='>' /> {$sub['category_name']}</a></li>                     </foreach></ul> </if>            </li> </foreach></if>                </ul>   </div>


В <head></head> (если работает IPBWRAPPER):
Перед :
<script type='text/javascript'>			Loader.boot();		</script>


Вставляем:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><script>!window.jQuery && document.write('<script src="http://ipbskins.ru/forum/public/style_images/ipbskins/_http://ipbskins.ru/forum/public/js/jquery-1.4.2.min.js"><\/script>')</script><script type="text/javascript">jQuery.noConflict(); jQuery(document).ready(function($){	$(document).ready(function(){     $("ul.menu li a").mouseover(function() {                   $(this).parent().find("ul.subnav").slideDown('fast').show();         $(this).parent().hover(function() {        }, function(){                $(this).parent().find("ul.subnav").slideUp('slow');         });        });   }); });</script> 


Ну и в CSS вставляем:
ul.menu li {    position: relative; }ul.menu li ul.subnav {    display: none;    }


Загрузить: jquery-1.4.2.min_.rar

На здоровье!

Нажмите здесь для просмотра статьи
2

#2 Пользователь не на сайте   Fisana ответил: »

 
 
  • На PM не отвечаю
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 13 190
  • Регистрация: 21-Ноябрь 05
  • Репутация: 695
  • Откуда:Из интернетов
  • IPB version:3.1.x
 

Отправлено 10 Февраль 2011 - 21:18

http://ipbskins.ru/ipcontent/
Сделала тут вроде для субкатегорий.
Спасибо

Первую тему пришлось удалить. Она продублировалась. Кроме того, комментарии возможны только из тем :)
3

#3 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 19 Март 2013 - 10:30

Для новых версий IP.Content 2.3.x

В блоке ищем: Articles Menu

<div id='category_list' class='general_box clearfix'>
	<h3>{$this->lang->words['ab__categories']} <a href='{$this->_database_url}?view=categories'>{$this->lang->words['ab__seealllink']}</a></h3>
	<ul>
		<if test="is_array( $this->_categories ) && count( $this->_categories )">
			<foreach loop="$this->_categories[0] as $r">
				<li>
					<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $r['category_database_id'], $r['category_id'] )}'>{$r['category_name']}</a>
					<if test="count( $this->_categories[ $r['category_id'] ] )">
						<ul>
							<foreach loop="$this->_categories[ $r['category_id'] ] as $sub">
								<li>
									<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $sub['category_database_id'], $sub['category_id'] )}'>{$sub['category_name']}</a>
								</li>
							</foreach>
						</ul>
					</if>
				</li>
			</foreach>
		</if>
	</ul>
</div>


Заменяем:
<div id='category_list' class='general_box clearfix'>
	<h3>{$this->lang->words['ab__categories']} <a href='{$this->_database_url}?view=categories'>{$this->lang->words['ab__seealllink']}</a></h3>
	<ul class="menu"> 
		<if test="is_array( $this->_categories ) && count( $this->_categories )">
			<foreach loop="$this->_categories[0] as $r">
				<li>
					<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $r['category_database_id'], $r['category_id'] )}'>{$r['category_name']}</a>
					<if test="count( $this->_categories[ $r['category_id'] ] )">
						<ul class="subnav"> <foreach loop="$this->_categories[ $r['category_id'] ] as $sub">
                    <li>
									<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $sub['category_database_id'], $sub['category_id'] )}'><img src='{style_images_url}/bullet.png' alt='&gt;' />{$sub['category_name']}</a>
								</li>
							</foreach>
						</ul>
					</if>
				</li>
			</foreach>
		</if>
	</ul>
</div>


Внейшний вид: globalTemplate

Ищем:
<script type='text/javascript'>


Вставляем перед: Но не забудьте изменить ссылку на путь к JS "Ваш сайт"
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>!window.jQuery && document.write('<script src="http://Ваш сайт/js/jquery-1.4.2.min.js"><\/script>')</script>
<script type="text/javascript">
jQuery.noConflict(); 
jQuery(document).ready(function($){	
$(document).ready(function(){
     $("ul.menu li a").mouseover(function() {           
        $(this).parent().find("ul.subnav").slideDown('fast').show(); 
        $(this).parent().hover(function() {
        }, function(){    
            $(this).parent().find("ul.subnav").slideUp('slow'); 
        });
        });
   }); 

});
</script>


В ipb_styles.css добавляем

ul.menu li {
    position: relative; 
}

ul.menu li ul.subnav {
    display: none;
    
}


Скачать: Вложение  jquery-1.4.2.min_.rar (23,41К)
Количество загрузок: 3
2

#4 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 30 Август 2013 - 21:22

Столкнулся с такой проблемой.

Форум лицензия, шаблон родной, все чисто гладко. JAVA скрипты вкл и откл. Создал в портале категорий 10-15 и в некоторых категориях подкатегорий по шт 20. И решил, чтоб не было длинное меню сделать сворачивание. Все сделал, настроил не 1вый раз. Открываю портал, а подкатегории не скрыты, а только мышку наведешь на категорию где подкатегории, сразу менюшка начинает работать.

По стандарту при открытие портала все должно быть скрыто, а тут наоборот).
0

#5 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 149
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 31 Август 2013 - 11:05

В новом контенте библиотека JQuery версии 1.7.1 используется в модуле управления главным меню. Если вы грузите еще и 1.4.2, то возможен конфликт версий.
1

#6 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 31 Август 2013 - 11:17

Я изменил на 1.7.1 меню, плавнее стало, но как было все так и осталась(
0

#7 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 31 Август 2013 - 11:43

:D проблема была простая, в css в конце кода не добавил }
1

#8 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 18 Октябрь 2013 - 22:29

Кто знает, каким свойством можно сделать так, чтоб справа от категории была кнопка раскрыть-скрыть категорию? То плавное разворачивание надоело. Спасибо
0

#9 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 149
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 19 Октябрь 2013 - 00:24

Просмотреть сообщениеАтаман 18 Октябрь 2013 - 22:29 сказал(а):

Кто знает, каким свойством можно сделать так, чтоб справа от категории была кнопка раскрыть-скрыть категорию? То плавное разворачивание надоело. Спасибо


В блоке "Articles Menu":
<div id='category_list' class='general_box clearfix'>
	<h3>{$this->lang->words['ab__categories']} <a href='{$this->_database_url}?view=categories'>{$this->lang->words['ab__seealllink']}</a></h3>
	<ul class='menu'>
		<if test="is_array( $this->_categories ) && count( $this->_categories )">
			<foreach loop="$this->_categories[0] as $r">
				<li>
					<span class='plus'><img src='{style_images_url}/btn-expand.png' /></span>
					<span class='minus' style='display: none;'><img src='{style_images_url}/btn-collapse.png' /></span>
					<span class='categories'>{$r['category_name']}</span>
					<if test="count( $this->_categories[ $r['category_id'] ] )">
						<ul class='subnav'>
							<foreach loop="$this->_categories[ $r['category_id'] ] as $sub">
								<li>
									<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $sub['category_database_id'], $sub['category_id'] )}'>{$sub['category_name']}</a>
								</li>
							</foreach>
						</ul>
					</if>
				</li>
			</foreach>
		</if>
	</ul>
</div>

Скрипт:
<script type="text/javascript">
jQuery.noConflict(); 
jQuery(document).ready(function($){	
$(document).ready(function(){
     $("ul.menu li span").click(function() {
         $(this).parent().find("span.plus").toggle();
         $(this).parent().find("span.minus").toggle();
         $(this).parent().find("ul.subnav").slideToggle("normal");
       });
    });
 });
</script>

CSS меню и иконки кнопок на ваше усмотрение (btn-expand.png, btn-collapse.png заливаются в папку с графикой актуального стиля). Пример.

Ссылка на родительскую категорию тут вырезана, клик на ней разворачивает-сворачивает категорию. Если хотите оставить активной только кнопку и вернуть ссылку, то нужно заменить:
<span class='categories'>{$r['category_name']}</span>
на:
<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $r['category_database_id'], $r['category_id'] )}'>{$r['category_name']}</a>

Выравнивание кнопок по правому краю меню:
<span class='plus right'><img src='{style_images_url}/btn-expand.png' /></span>
<span class='minus right' style='display: none;'><img src='{style_images_url}/btn-collapse.png' /></span>

2

#10 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 19 Октябрь 2013 - 09:36

Спасибо сделал, а можно сделать + и - возле тех категорий ы которых подкатегории.
0

#11 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 149
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 19 Октябрь 2013 - 10:39

Просмотреть сообщениеАтаман 19 Октябрь 2013 - 09:36 сказал(а):

Спасибо сделал, а можно сделать + и - возле тех категорий ы которых подкатегории.

<style>
span.minus, span.sub_minus, ul.subnav, ul.sub_subnav {
	 display: none;
}
ul.sub_subnav li a { 
	padding-left: 35px !important;
}
#category_list ul li a { 
	display: inline-block !important;
	padding-right: 0 !important;
	width: 155px;
}
</style>
<div id='category_list' class='general_box clearfix'>
    <h3>{$this->lang->words['ab__categories']} <a href='{$this->_database_url}?view=categories'>{$this->lang->words['ab__seealllink']}</a></h3>
    <ul class='menu'>
        <if test="is_array( $this->_categories ) && count( $this->_categories )">
            <foreach loop="$this->_categories[0] as $r">
                <li>
                    <a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $r['category_database_id'], $r['category_id'] )}'>{$r['category_name']}</a>
                    <if test="count( $this->_categories[ $r['category_id'] ] )">
                        <span class='plus right'><img src='{style_images_url}/btn-expand.png' /></span>
                        <span class='minus right'><img src='{style_images_url}/btn-collapse.png' /></span>
                        <ul class='subnav'>
                            <foreach loop="$this->_categories[ $r['category_id'] ] as $sub">
                                <li>
                                    <a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $sub['category_database_id'], $sub['category_id'] )}'>{$sub['category_name']}</a>
                                    <if test="count( $this->_categories[ $sub['category_id'] ] )">
                                        <span class='sub_plus right'><img src='{style_images_url}/btn-expand.png' /></span>
                                        <span class='sub_minus right'><img src='{style_images_url}/btn-collapse.png' /></span>
                                        <ul class='sub_subnav'>
                                            <foreach loop="$this->_categories[ $sub['category_id'] ] as $sub_sub">
                                                <li>
                                                    <a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $sub_sub['category_database_id'], $sub_sub['category_id'] )}'>{$sub_sub['category_name']}</a>
                                                </li>
                                            </foreach>
                                         </ul>
                                    </if>
                                </li>
                            </foreach>
                        </ul>
                    </if>
                </li>
            </foreach>
        </if>
    </ul>
</div>

<script type="text/javascript">
jQuery.noConflict(); 
jQuery(document).ready(function($){ 
	$(document).ready(function(){
		$("ul.menu li span").click(function() {
			$(this).parent().find("span.plus").toggle();
			$(this).parent().find("span.minus").toggle();
			$(this).parent().find("ul.subnav").slideToggle("normal");
		});
		$("ul.subnav li span").click(function() {
			$(this).parent().find("span.sub_plus").toggle();
			$(this).parent().find("span.sub_minus").toggle();
			$(this).parent().find("ul.sub_subnav").slideToggle("normal");
		});
	});
 });
</script>

Примерно так, но скрипт надо проверять, возможна накладка. Кнопки нужно под условие опустить, что бы не парсились, если нет подкатегорий. Плюс добавлен 3-й уровень вложенности меню.
1

#12 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 19 Октябрь 2013 - 16:56

<div id='category_list' class='general_box clearfix'>
	<h3>{$this->lang->words['ab__categories']} <a href='{$this->_database_url}?view=categories'>{$this->lang->words['ab__seealllink']}</a></h3> 
               <if test="$this->_database_url">
	<br />
                <ul class="menu">
		<if test="is_array( $this->_categories ) && count( $this->_categories )">
			<foreach loop="$this->_categories[0] as $r">
				<li>
                                        <span class='plus right'><img src='{style_images_url}/btn-expand.png' /></span>
<span class='minus right' style='display: none;'><img src='{style_images_url}/btn-collapse.png' /></span>
					<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $r['category_database_id'], $r['category_id'] )}'>{$r['category_name']} ({$r['category_records']})</a>
					<if test="count( $this->_categories[ $r['category_id'] ] )">
						<ul class="subnav"> <foreach loop="$this->_categories[ $r['category_id'] ] as $sub">
                    <li>
									<a href='{$this->registry->ccsFunctions->returnDatabaseUrl( $sub['category_database_id'], $sub['category_id'] )}'><img src='{style_images_url}/bullet.png' alt='&gt;' />{$sub['category_name']}({$r['category_records']})</a>
								</li>
							</foreach>
						</ul>
					</if>
				</li>
			</foreach>
		</if>
	</ul>
</div>


У меня не получилось с последним методом, вот мой код. У меня после вставки последнего варианта все съехало.
0

#13 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 149
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 19 Октябрь 2013 - 18:15

Просмотреть сообщениеАтаман 19 Октябрь 2013 - 16:56 сказал(а):

У меня не получилось с последним методом, вот мой код. У меня после вставки последнего варианта все съехало.

Это вам нужно стили меню править. В сообщении выше воткнул css в блок, для примера.
Все работает:
Вложение  ScreenShot 51.jpg (22,51К)
Количество загрузок: 15
1

#14 Пользователь на сайте   Атаман ответил: »

 
 
  • Advanced
  • Смотреть блог
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 050
  • Регистрация: 13-Апрель 12
  • Репутация: 310
  • Откуда:no
  • IPB version:1.x
 

Отправлено 19 Октябрь 2013 - 18:27

Спасибо все супер.

В ксс добавил, код полностью заменил)). Спасибо.
0

#15 Пользователь не на сайте   Desme ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 07-Июнь 14
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 14 Июнь 2014 - 18:21

Всем привет!

Есть категории:


Цитата

Статьи
База знаний



В категории "База знаний" есть под категория - "Рыбки" и еще одна под категория "Барбусы" в этим самых "Рыбках".

Проблема в том, что при наведении курсора на "Рыбки" не выпадает список под категорий этой под категории и при нажатии на странице не отображается список под категорий.

Как быть? Где править?

Спасибо!


К слову пункт

Цитата

Показать список статей в этой категории? ДаНет
Если 'нет', в этой категории будут отображены только подкатегории. Если 'да', в этой категории будут отображены подкатегории и статьи.

Отключен

Стоит IP.Content v2.3.6 и хук (CSN-IPB34) jQuery v1.1.0
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна