Пропустить

Раскрывающиеся блоки

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Re: Раскрывающиеся блоки

Сообщение FomenkoAndrey » 09.08.2011 23:30

Nekstati
добавил указанную вами функцию в овералхэдэр - заработал, но как-то криво.
во-первых, скрытие не запоминается и при переходе или обновлении страницы сбрасывается.
во вторых, работает только ссылка вида
<a href="#" name="hide" ...

без символа # блок все время раскрыт.

FomenkoAndrey
phpBB 2.0.19
 
Сообщения: 619
Зарегистрирован: 25.12.2009 1:27
Благодарил (а): 47 раз.
Поблагодарили: 26 раз.

Re: Раскрывающиеся блоки

Сообщение Nekstati » 11.08.2011 23:23

FomenkoAndrey, дайте ссылку.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Раскрывающиеся блоки

Сообщение FomenkoAndrey » 11.08.2011 23:41

http://motobratva.com/index.php
попробуйте.
все функции были недоступны гостям, на некоторое время раскомментировал и включил функционал сворачивания блока форумов в мобильной версии. переход должен произойти автоматически при входе с мобильного устройства.

команда ПОКАЗЫТЬ/СКРЫТЬ СПИСОК ФОРУМОВ под блоком НОВЫЕ...

FomenkoAndrey
phpBB 2.0.19
 
Сообщения: 619
Зарегистрирован: 25.12.2009 1:27
Благодарил (а): 47 раз.
Поблагодарили: 26 раз.

Re: Раскрывающиеся блоки

Сообщение Nekstati » 12.08.2011 0:20

А, ну да, readCookie is not defined. Требуются ещё две функции: readCookie() и createCookie() из файла styleswitcher.js.
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Раскрывающиеся блоки

Сообщение FomenkoAndrey » 12.08.2011 0:28

втянул и эти две функции в хэдэр, теперь обратная проблема - список форумов всегда скрыт.
при нажатии ПОКАЗАТЬ/СКРЫТЬ блок раскрывается, страница перезагружается и он опять закрыт.
наверно опять какой-то функции не хватает?

FomenkoAndrey
phpBB 2.0.19
 
Сообщения: 619
Зарегистрирован: 25.12.2009 1:27
Благодарил (а): 47 раз.
Поблагодарили: 26 раз.

Re: Раскрывающиеся блоки

Сообщение Nekstati » 12.08.2011 1:22

Перезагружается оттого, что вы убрали # из ссылки. А чтобы список был изначально раскрыт, замените -1 на 1 в этой строке:
dE('hidden', (readCookie('hidden_block') || -1));

И надо ещё добавить это в скрипт в overall_header.html:
	var style_cookie = 'phpBBstyle';
	var style_cookie_settings = '{A_COOKIE_SETTINGS}';
За это сообщение автора Nekstati поблагодарил:
FomenkoAndrey (12.08.2011 9:03)
Аватара пользователя
Nekstati
Лидер поддержки
Лидер поддержки
 
Сообщения: 2571
Зарегистрирован: 19.03.2009 18:43
Благодарил (а): 9 раз.
Поблагодарили: 772 раз.

Re: Раскрывающиеся блоки

Сообщение FomenkoAndrey » 12.08.2011 8:48

Nekstati писал(а):И надо ещё добавить это в скрипт в overall_header.html:


простите, но в какое именно место?

Добавлено спустя 12 минут 39 секунд:
попробовал добавлять поочереди в разделы var 3х добавленных в хэдэр функций.
скрытие заработало, когда сделал так:
function createCookie(name, value, days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime() + (days*24*60*60*1000));
		var expires = '; expires=' + date.toGMTString();
		var style_cookie = 'phpBBstyle';
		var style_cookie_settings = '{A_COOKIE_SETTINGS}';
	}
	else
	{
		expires = '';
	}
	document.cookie = name + '=' + value + expires + style_cookie_settings;
}

правильно? или промахнулся?

FomenkoAndrey
phpBB 2.0.19
 
Сообщения: 619
Зарегистрирован: 25.12.2009 1:27
Благодарил (а): 47 раз.
Поблагодарили: 26 раз.

Re: Раскрывающиеся блоки

Сообщение sweetah » 19.08.2011 16:33

Помогите пожалуйста прикрутить эффект слайда к блоку, запоминающему свой статус.
Сам эффект можно посмотреть здесь. В отличие от стандартного slideToggle у jquery этот как-то плавнее двигается. Да и opacity ещё меняется.

js, из которого нужно взять эффект:
var array = new Array();
var speed = 8;
var timer = 8;

// Loop through all the divs in the slider parent div //
// Calculate seach content divs height and set it to a variable //
function slider(target,showfirst) {
  var slider = document.getElementById(target);
  var divs = slider.getElementsByTagName('div');
  var divslength = divs.length;
  for(i = 0; i < divslength; i++) {
    var div = divs[i];
    var divid = div.id;
    if(divid.indexOf("header") != -1) {
      div.onclick = new Function("processClick(this)");
    } else if(divid.indexOf("content") != -1) {
      var section = divid.replace('-content','');
      array.push(section);
      div.maxh = div.offsetHeight;
      if(showfirst == 1 && i == 1) {
        div.style.display = 'block';
      } else {
        div.style.display = 'none';
      }
    } 
  }
}

// Process the click - expand the selected content and collapse the others //
function processClick(div) {
  var catlength = array.length;
  for(i = 0; i < catlength; i++) {
    var section = array[i];
    var head = document.getElementById(section + '-header');
    var cont = section + '-content';
    var contdiv = document.getElementById(cont);
    clearInterval(contdiv.timer);
    if(head == div && contdiv.style.display == 'none') {
      contdiv.style.height = '0px';
      contdiv.style.display = 'block';
      initSlide(cont,1);
    } else if(contdiv.style.display == 'block') {
      initSlide(cont,-1);
    }
  }
}

// Setup the variables and call the slide function //
function initSlide(id,dir) {
  var cont = document.getElementById(id);
  var maxh = cont.maxh;
  cont.direction = dir;
  cont.timer = setInterval("slide('" + id + "')", timer);
}

// Collapse or expand the div by incrementally changing the divs height and opacity //
function slide(id) {
  var cont = document.getElementById(id);
  var maxh = cont.maxh;	
  var currheight = cont.offsetHeight;
  var dist;
  if(cont.direction == 1) {
    dist = (Math.round((maxh - currheight) / speed));
  } else {
    dist = (Math.round(currheight / speed));
  }
  if(dist <= 1) {
    dist = 1;
  }
  cont.style.height = currheight + (dist * cont.direction) + 'px';
  cont.style.opacity = currheight / cont.maxh;
  cont.style.filter = 'alpha(opacity=' + (currheight * 100 / cont.maxh) + ')';
  if(currheight < 2 && cont.direction != 1) {
    cont.style.display = 'none';
    clearInterval(cont.timer);
  } else if(currheight > (maxh - 2) && cont.direction == 1) {
    clearInterval(cont.timer);
  }
}

Нужен именно эффект слайда и изменение opacity, использоваться будет для одного блока, так что гармошка не нужна.


Для удобства код раскрывающегося блока отсюда:
	function hide_block(show)
	{
		dE('hidden');
		if (show && document.getElementById('hidden').style.display != 'none')
		{
			document.getElementsByName('hide')[0].focus();
			createCookie('hidden_block', 'on', '365');
		}
		if (show && document.getElementById('hidden').style.display == 'none')
		{
			document.getElementsByName('hide')[0].focus();
			createCookie('hidden_block', 'off', '365');
		}
		return true;
	}
	
	var cookie = readCookie("hidden_block");
	var on_off = cookie ? cookie : 'on';
	
	function init_hidden_block()
	{
		if (on_off == 'on')
		{
			dE('hidden', 1);
			return true;
		}
		if (on_off == 'off')
		{
			dE('hidden', -1);
			return true;
		}
	}
	onload_functions.push('init_hidden_block();');
Аватара пользователя
sweetah
phpBB 2.0.6
 
Сообщения: 271
Зарегистрирован: 26.01.2010 15:43
Благодарил (а): 51 раз.
Поблагодарили: 10 раз.

Re: Раскрывающиеся блоки

Сообщение Пчелкин » 21.09.2011 17:03

Добрый день...помогите пожалуйста..а то я сейчас тресну..перепробовал все что нашел - не получается малость...
В этом блоке надо {L_STATISTICS_BIG} установить по центру...фраза длинная и почему-то держится за левый край и происходит перенос нескольких слов...
<div class="forumbg">
	<div class="inner">
	<span class="corners-top"><span></span></span>
	<ul class="topiclist">
		<li class="header">
			<dl class="icon">
	    		<thead>
	    			<tr>
		    			<th align="center">
		        		<dt><a href="" name="hide" onclick="hide_block(true);return false;">{L_STATISTICS_BIG}</a></dt>
		        		</th>
			    	</tr>
		    	</thead>				
			</dl>
		</li>
	</ul>
	<div class="bg2" id="hidden" style="display: none; padding: 0.8em; font-size: 1.3em">
        тут информация
	</div>
	<span class="corners-bottom"><span></span></span>
</div>
</div>

А в этом блоке по центру..но не раскрывается...
<div class="forumbg">
	<div class="inner"><span class="corners-top"><span></span></span>
		<table class="table1" cellspacing="1">
			<thead>
				<tr>
					<th align="center">
						<a href="" name="hide" onclick="hide_block(true);return false;">{L_STATISTICS_BIG}</a>
					</th>
				</tr>
			</thead>
		<tbody>
			<tr class="bg2">
				<td>
                                тут информация
				</td>
			</tr>
		</tbody>
	</table>
</div><span class="corners-bottom"><span></span></span>
</div>

Не могу срастить что б и раскрывалось и по центру...

Добавлено спустя 12 минут 47 секунд:
Спасибо- разобрался..
	<ul class="topiclist">
              пыр пыр пыр
                </ul>            

заменил на
    <table class="table1" cellspacing="1">
              пыр пыр пыр
              </table>

Название блока встало по центру..уфф
Фанат phpBB. В HTML - без проблем, в CSS - так себе, учусь, в php - баран, помогает только дедукция
Аватара пользователя
Пчелкин
phpBB 3.0.7-PL1
 
Сообщения: 4901
Зарегистрирован: 15.01.2010 14:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 289 раз.
Поблагодарили: 557 раз.

Re: Раскрывающиеся блоки

Сообщение sasha_job » 18.01.2012 22:37

ТАк как реализовать функцию раскрывания под стилем suvsilver2 ?

sasha_job
phpBB 1.0.0
 
Сообщения: 2
Зарегистрирован: 18.01.2012 22:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Раскрывающиеся блоки

Сообщение МайскийЖук » 19.01.2012 0:31

как реализовать функцию раскрывания под стилем suvsilver2

Зайти вот сюда
Любовь и боль, покой и бой я как любой несу с собой...
Аватара пользователя
МайскийЖук
phpBB 3.0.0 RC2
 
Сообщения: 1006
Зарегистрирован: 28.09.2009 16:07
Благодарил (а): 12 раз.
Поблагодарили: 125 раз.
Предупреждения: 1

Re: Раскрывающиеся блоки

Сообщение sasha_job » 19.01.2012 0:40

Там subsilver2 тоже нету :(

__________________________________
Дополнительные файлы
root/ajax_update_collapse.php,
root/styles/prosilver/theme/images/cc_open.gif ,
root/styles/prosilver/theme/images/cc_close.gif ,
root/styles/prosilver/template/ccat.js

sasha_job
phpBB 1.0.0
 
Сообщения: 2
Зарегистрирован: 18.01.2012 22:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Раскрывающиеся блоки

Сообщение МайскийЖук » 19.01.2012 7:48

Как это нету? А это что тогда?

Изображение
Любовь и боль, покой и бой я как любой несу с собой...
Аватара пользователя
МайскийЖук
phpBB 3.0.0 RC2
 
Сообщения: 1006
Зарегистрирован: 28.09.2009 16:07
Благодарил (а): 12 раз.
Поблагодарили: 125 раз.
Предупреждения: 1

Re: Раскрывающиеся блоки

Сообщение Microgenius » 19.02.2012 21:39

У меня тоже не сохраняет статус, пишет:
Uncaught ReferenceError: readCookie is not defined
Uncaught ReferenceError: createCookie is not defined


Стиль дефолтный, просильвер, родной скрипт из хедера не удалял, не правил. Версия форума 3.0.9

Так же по-умолчанию все скрыто, а этой строки я вообще в вашем smart_hidden_block.html не нашел:
Nekstati писал(а):А чтобы список был изначально раскрыт, замените -1 на 1 в этой строке:
dE('hidden', (readCookie('hidden_block') || -1));



Куда копать то?

Тестовая учетка test/test, форум bankomatchik.ru/forum/

П.С.
И что бы два раза не вставать, а подскажите какой мод используется вот здесь — http://rmcgirr83.org/index.php ?

Microgenius
phpBB 1.4.3
 
Сообщения: 66
Зарегистрирован: 23.05.2010 12:21
Благодарил (а): 10 раз.
Поблагодарили: 3 раз.
Предупреждения: 1

Re: Раскрывающиеся блоки

Сообщение Microgenius » 20.02.2012 10:43

Блин, походу в 9-й версии скрипты в хедере поменяли, теперь там все не так и то, что выше, не работает. Подскажите достойный аналог этих правок в виде мода.

Microgenius
phpBB 1.4.3
 
Сообщения: 66
Зарегистрирован: 23.05.2010 12:21
Благодарил (а): 10 раз.
Поблагодарили: 3 раз.
Предупреждения: 1

Пред.След.

Вернуться в Бета-версии модов для phpBB 3.0.x

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы