Фильтр по:
  

  • Страница 1 из 1
  • 1
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать? Информация для вновь прибывших » Как сделать... » Как скрыть некоторые разделы форума по названию? JavaScript. (Помогите скрыть разделы форума.)
Как скрыть некоторые разделы форума по названию? JavaScript.
Дата: Четверг, 16.06.2011, 22:38 |
Laktrizimo
Рядовой
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline


Мне нужна помощь с форумом. Я создал несколько разделов на форуме, мне эти разделы нужно скрыть, но чтобы они и дальше работали, ссылку этих разделов я перед тем каких скрыть сохраню и потом по нем нужно чтобы все могли переходить... как мне это сделать? Если можно по подробнее.

 
Дата: Четверг, 16.06.2011, 22:50 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Laktrizimo,
Quote (Laktrizimo)
Мне нужна помощь с форумом. Я создал несколько разделов на форуме, мне эти разделы нужно скрыть, но чтобы они и дальше работали, ссылку этих разделов я перед тем каких скрыть сохраню и потом по нем нужно чтобы все могли переходить...

На что-то оч.похожее недавно отвечал ....
- Найти блок с форумом - по заголовку, например, и скрыть. С помощью JavaScript.
....
Примерно так (на скорую руку):
В шаблоне страницы вид форума, упаковываем $BODY$ в блок с ID, например «forumContent» и, через условные операторы, сразу после закрывающего тега блока, в который упаковали $боди$, добавляем скрипт:

Типа так, в сумме:
Quote (Code)
<div id="forumContent">$BODY$</div>
<?if($PAGE_ID$='main')?>
<script type="text/javascript">
function forumsHide(){
var frCats=['Архив','Курилка (неформальные разговоры обо всём)','Административный раздел','Дополнительная информация'];
var frTd=document.getElementById('forumContent').getElementsByTagName('td');
for(k=0;k<frTd.length;k++){if(frTd[k].className=='gTableTop'){var tmp=frTd[k].innerHTML.replace(/\<[^>]*\>/g,'');
for(i=0;i<frCats.length;i++){if(tmp.indexOf(frCats[i])!=-1){frTd[k].parentNode.parentNode.parentNode.parentNode.parentNode.style.display='none';};
}}};};forumsHide();
</script>
<?endif?>



...

Где:
1. Упаковываем:
Code
<div id="forumContent">$BODY$</div>
-

2. Добавляем скрипт. Через условные операторы:
Code
<?if($PAGE_ID$='main')?>
<script type="text/javascript">
function forumsHide(){
var frCats=['Архив','Курилка (неформальные разговоры обо всём)','Административный раздел','Дополнительная информация'];
var frTd=document.getElementById('forumContent').getElementsByTagName('td');
for(k=0;k<frTd.length;k++){if(frTd[k].className=='gTableTop'){var tmp=frTd[k].innerHTML.replace(/\<[^>]*\>/g,'');
for(i=0;i<frCats.length;i++){if(tmp.indexOf(frCats[i])!=-1){frTd[k].parentNode.parentNode.parentNode.parentNode.parentNode.style.display='none';};
}}};};forumsHide();
</script>
<?endif?>

Работать будет только на главной странице форума - там, где выводятся все разделы и форумы.
Что бы не попал скрытый форум в список «Новые сообщения», ко всем форумам, в скрытом разделе, в ПУ устанавливаем галочку «Темы форума не должны выводиться в ленточном варианте форума»:



- Прочие “Галочки” - на усмотрение ...
...
Code
var frCats=['Архив','Курилка (неформальные разговоры обо всём)','Административный раздел','Дополнительная информация'];
- массив разделов, что нужно скрыть. Регистр имеет значение!!!. Длина массива не ограничена, в разумных пределах.
...



P.S. Скрипт писался на скорую руку - не самый оптимальный, по скорости, вариант. Рабочий. Проверено.
...

Вопросы - только по теме.
Заявления типа: “У меня не работает!” без ссылки на источник проблемы, будут удалятся без вопросов.
...

Прикрепления: 8246432.png (17.7 Kb) · 7458138.png (7.4 Kb)

 
Дата: Суббота, 18.06.2011, 22:05 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Небольшая проблема, при сокрытии большого (более двух) количества разделов, выражающаяся в большом отступе перед блоком «funcBlock» - там, где написано «[ Отметить все сообщения прочитанными ]» решается добавлением display='none' к следующему за скрываемым блоком <br> ... Не самый элегантный способ, но работает )
....
Типа так:
Quote (Js)
<?if($PAGE_ID$='main')?>
<script type="text/javascript">
function forumsHide(){
var frCats=['Информация для вновь прибывших (прочее)','Вопросы по вёрске, дизайну, управлению и настройки модулей СMS от uCoz','Моё на uCoz.ru... и не только (без конкретной темы)','Кому требуется помощь в вёрстке сайта... и не только...'];
var frTd=document.getElementById('forumContent').getElementsByTagName('td');
for(k=0;k<frTd.length;k++){if(frTd[k].className=='gTableTop'){var tmp=frTd[k].innerHTML.replace(/\<[^>]*\>/g,'');
for(i=0;i<frCats.length;i++){if(tmp.indexOf(frCats[i])!=-1){var obj=frTd[k].parentNode.parentNode.parentNode.parentNode.parentNode;
obj.style.display='none';obj.nextSibling.nextSibling.nextSibling.nextSibling.style.display='none';};
}}};};forumsHide();
</script>
<?endif?>

....


...

Как-то так )
...

Прикрепления: 2923549.png (5.9 Kb)

 
Дата: Воскресенье, 19.06.2011, 07:56 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Ещё один косяк:
- если скрыт самый последний раздел - скрывается и блок, где написано «[ Отметить все сообщения прочитанными ]», то бишь «funcBlock»

Дабы не усложнять скрипт, решается проблема следующим стилем:
Quote (CSS)
div.funcBlock{display:block!important;}


Отступы сверху и снизу у данного блока, так, для информации, изменяются вот так:
Quote (CSS)
div.funcBlock{display:block!important;margin-bottom:-32px;margin-top:-10px;}

- Где цифра 32 == 16 (line-height для контент блока фрума == <br>) * (умноженное) на 2.
Подгонять под себя.
...


...

Прикрепления: 8014414.png (7.8 Kb) · fb.rar (12.2 Kb)

 
Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать? Информация для вновь прибывших » Как сделать... » Как скрыть некоторые разделы форума по названию? JavaScript. (Помогите скрыть разделы форума.)
  • Страница 1 из 1
  • 1
Поиск:


Мобильная версия