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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
dimitri
phpBB 1.4.2
Сообщения: 63
Стаж: 15 лет 6 месяцев
Благодарил (а): 20 раз

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

Сообщение dimitri »

Как сделать вот такое:
Изображение
ссылка на пример
все запоминается после рефреша...
есть где-то готовое решение?
Аватара пользователя
FEAR93
Former team member
Сообщения: 666
Стаж: 17 лет 11 месяцев
Откуда: Кривой Рог, Украина
Благодарил (а): 22 раза
Поблагодарили: 76 раз

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

Сообщение FEAR93 »

Зачем дублируете вопрос?

Вот что-то похожее http://startrekguide.com/community/view ... 27&t=12429
fanatic
phpBB 2.0.0
Сообщения: 244
Стаж: 17 лет 6 месяцев
Благодарил (а): 2 раза

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

Сообщение fanatic »

Интересно.... как подписаться на тему?
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

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

Сообщение Alecto »

Nekstati
скажите пожалуйста, поставил вариант "Раскрывающийся блок, запоминающий свой статус" для списка форумов на главной странице.
блок скрывается после загрузки всей страницы, до тех пор он виден.
можно ли сделать, что он скрывался сразу? не ждать пока все загрузится?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

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

Сообщение Nekstati »

FomenkoAndrey
1. Заменить в скрипте строку onload_functions.push('init_hidden_block();'); на init_hidden_block();.
2. Поместить скрипт вниз страницы, перед закрывающим тэгом </body>. Или, чтобы работало ещё быстрее, можно поместить скрипт непосредственно после раскрываемого блока.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

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

Сообщение Alecto »

Nekstati
не получается.

все (вроде) выполнено согласно вашим инструкциям.

То, что было:

smart_hidden_block.html

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[ ...
	onload_functions.push('init_hidden_block();');
	// ]]>
</script>

	<a href="" name="hide" onclick="hide_block(true);return false;">Показать/скрыть список форумов</a>
index_body.html - здесь скрыл возможность использования этой функции от гостей

Код: Выделить всё

<!-- IF S_USER_LOGGED_IN and not S_IS_BOT -->
	<div id="hidden" >
	<!-- INCLUDE forumlist_body.html -->
	</div>
<!-- ELSE -->
	<!-- INCLUDE forumlist_body.html -->
<!-- ENDIF -->
1. Заменить в скрипте строку onload_functions.push('init_hidden_block();'); на init_hidden_block();.
блок скрывается/показывается, но не запоминает состояние.
при перезагрузке страницы он всегда развернут.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

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

Сообщение Nekstati »

Вот попробуйте сделать по этому образцу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

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

Сообщение Alecto »

да, спасибо!
получилось.
правда, не очень компактно, получилось.

smart_hidden_block.html

Код: Выделить всё

<a href="" name="hide" onclick="hide_block(); return false;">Показать/скрыть список форумов</a>
index_body.html

Код: Выделить всё

	<!-- IF S_DISPLAY_SEARCH -->
		<li><!-- IF S_USER_LOGGED_IN and not S_IS_BOT --><!-- INCLUDE smart_hidden_block_fl.html --> &bull; <!-- ENDIF -->...</ul>
	<!-- ENDIF -->


<!-- IF S_USER_LOGGED_IN and not S_IS_BOT -->
	<div id="hidden" >
	<!-- INCLUDE forumlist_body.html -->
	</div>
<script type="text/javascript">
// <![CDATA[
	function hide_block() {
		dE('hidden');
		if (document.getElementById('hidden').style.display != 'none')
			createCookie('hidden_block', 1, '365');
		else
			createCookie('hidden_block', -1, '365');
	}
	
	dE('hidden', (readCookie('hidden_block') || -1));
	// ]]>
</script>
<!-- ELSE --><!-- INCLUDE forumlist_body.html --><!-- ENDIF -->
пытался вынести скрипт в файл smart_hidden_block.html после ссылки - перестает запоминать.
только в этой последовательности работает

Добавлено спустя 4 минуты 31 секунду:
Nekstati
если оно работает только в такой последовательности, наверно имеет смысл определить текст через переменную в языковом файле, отказаться от шаблона smart_hidden_block.html и внести ссылку прямо в код?
и, может выкинуть скрипт в отдельный файл? или пусть здесь остается?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

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

Сообщение Nekstati »

Функцию hide_block() можно вынести куда угодно (например, в forum_fn.js), а строка dE('hidden', (readCookie('hidden_block') || -1)); должна быть в тексте страницы строго после раскрываемого блока. (Где угодно, начиная от тэга, закрывающего этот блок, и до тэга </body>.)
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

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

Сообщение Alecto »

Nekstati
понял, спасибо.
тогда оставлю как есть - скрипт коротенький и особого смысла его кудато выносить нет, а текст я уже засунул в common.php
Альтаир Бергадлер
phpBB 2.0.5
Сообщения: 495
Стаж: 16 лет 5 месяцев
Благодарил (а): 80 раз
Поблагодарили: 16 раз

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

Сообщение Альтаир Бергадлер »

Nekstati, снова нуждаюсь в помощи :(
Раскрывающиеся блоки
как переделать этот скрипт, что бы после перезагрузки, он обнулялся, т.е. окошко автоматом закрывается
Спасибо.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

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

Сообщение Nekstati »

Альтаир Бергадлер

Код: Выделить всё

<style type="text/css">
.forabg {
	clear: left;
}
#open_sidebar, #close_sidebar {
	height: 14px;
	padding: 3px 3px 1px;
	position: absolute;
	right: 20px;
	background-color: #CADCEB;
}
#open_sidebar {
	right: 0;
}
#close_sidebar {
	display: none;
}
#sidebar {
	display: none;
	margin-top: 25px;
	width: 22%;
	float: right;
	height: 300px;
	background-color: #CADCEB;
}
</style>

<a href="#" id="close_sidebar" onclick="dE('sidebar', -1); dE('open_sidebar', 1); dE('close_sidebar', -1); document.getElementById('mainbody').style.width = '100%';"><img src="http://forum.freekino.org/public/style_images/master/sidebar_close.png" alt="Close" /></a>

<a href="#" id="open_sidebar" onclick="dE('sidebar', 1); dE('open_sidebar', -1); dE('close_sidebar', 1); document.getElementById('mainbody').style.width = '76%';"><img src="http://forum.freekino.org/public/style_images/master/sidebar_open.png" alt="Open" /></a>

<div id="sidebar">

</div>

<div id="mainbody" style="width: 100%; display: inline-block">
	<!-- INCLUDE forumlist_body.html -->
</div>
Альтаир Бергадлер
phpBB 2.0.5
Сообщения: 495
Стаж: 16 лет 5 месяцев
Благодарил (а): 80 раз
Поблагодарили: 16 раз

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

Сообщение Альтаир Бергадлер »

что-то упустил

Код: Выделить всё

<style type="text/css">
.forabg {
	clear: left;
}
#close_sidebar {
   
   height: 14px;
	padding: 15px 0px 7px 0px;
	right: 0px;
	position: fixed;
	top: 300px;
	z-index: 2;
	margin-right: -2px;
}
 #open_sidebar{
	height: 14px;
	padding: 15px 0px 7px 0px;
	right: 0px;
	position: fixed;
	top: 300px;
	z-index: 2;
	margin-right: -2px;
}

#sidebar {
	padding: 3px 3px 1px;
	right: 0px;
	position:fixed;
	top:300px;
	margin-top: 76px;
	width: 18%;
	float: right;
	z-index: 2;
	background-color: #F6F4D0;
	border-color: #9B5922;
	border-style: solid ;
	border-radius: 5px;
	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	-khtml-border-radius: 5px;
}
</style>

<a href="javascript:void(0)" id="close_sidebar" onclick="dE('sidebar', -1); dE('open_sidebar', 1); dE('close_sidebar', -1); document.getElementById('mainbody').style.width = '100%';"><img src="{T_THEME_PATH}/images/112.png" alt="Close" /></a>

<a href="javascript:void(0)" id="open_sidebar" onclick="dE('sidebar', 1); dE('open_sidebar', -1); dE('close_sidebar', 1); document.getElementById('mainbody').style.width = '76%';"><img src="{T_THEME_PATH}/images/111.png" alt="Open" /></a>


<div id="sidebar">
вот что у меня получилось
Все равно блок остается открытым...
где я ошибся?
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 9 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

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

Сообщение Alecto »

добавил скрытие списка форумов в мобильный стиль STG Mobile
перенес всё один в один из просилвера, где код работает (сам код приведен 5-ю постами выше, поэтому здесь не дублирую)
в мобильной версии не работает. проверял на компе.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

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

Сообщение Nekstati »

FomenkoAndrey, очевидно, в мобильном стиле нет функции dE(). Позаимствуйте её из просильверовского forum_fn.js.

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