Сворачивание/разворачивание правил форумов как на гуру

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Strigops
phpBB 2.0.0
Сообщения: 203
Стаж: 14 лет 5 месяцев
Благодарил (а): 27 раз
Поблагодарили: 3 раза

Сворачивание/разворачивание правил форумов как на гуру

Сообщение Strigops »

Собственно интересует вопрос, как сделать, вот как тут, на phpbbguru, чтоб добавить к правилам форумов/подфорумов кнопку Свернуть/Развернуть:

Изображение

Этот вопрос здесь, если не ошибаюсь, уже задавал Djeday, но ответа, который бы мог решить вопрос, по-моему, так и не было. На форуме я так-же не нашел как это сделать, Вообщем, буду благодарен, если расскажите как это сделать на примере стиля subsilver2. Спасибо.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение Алг »

Strigops писал(а):как сделать, вот как тут, на phpbbguru
Открываем файрбаг на этой странице и смотрим, что из себя представляет кнопка "свернуть"

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

<a href="#" class="btn-block-close" onclick="hideBlock('forum_rules', 21); return false;">Свернуть</a>
, т.е. по клику на кнопке срабатывает функция hideBlock, ищем её там же в фб(ctrl+f)

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

	function hideBlock(id, y) {
		var e = $(id);
		var open = e.offsetHeight - 5 < y ? true : false;
		e.effect('height').start(open ? e.getElement('div').offsetHeight : y).addEvent('onComplete', function() {e.toggleClass('closed');});
		Cookie.set(id, open, {duration: 31, path: '/'});
	}
где id - id сворачиваемого блока, у -наверное, высота в пикселях свёрнутого( а может и нет)
ну и строчка

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

var e = $(id);
говорит о том, что у вас должна быть подключена библиотека jquery
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
Аватара пользователя
clubforum
phpBB 2.0.0
Сообщения: 216
Стаж: 14 лет 11 месяцев
Благодарил (а): 57 раз
Поблагодарили: 3 раза

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение clubforum »

Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение владимир1983 »

Основано на запоминании cookie. Применять можно для сворачивания любого блока на форуме изменяя название cookie.
Для subsilver2 применительно к блоку правил будет выглядеть так:
Скопировать scripts.js из архива scripts.zip в phpbb/styles/subsilver2/template
Скопировать изображения из архива icon.zip в phpbb/styles/subsilver2/theme/images
Открыть
phpbb/styles/subsilver2/template/overall_header.html
Найти

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

<link rel="stylesheet" href="{T_STYLESHEET_LINK}" type="text/css" />
Добавить после

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

<script type="text/javascript" src="{T_TEMPLATE_PATH}/scripts.js"></script>
Для блока правил на странице просмотра тем форума
Открыть
phpbb/styles/subsilver2/template/viewforum_body.html
Найти

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

<!-- IF S_FORUM_RULES -->
	<div class="forumrules">
		<!-- IF U_FORUM_RULES -->
			<h3>{L_FORUM_RULES}</h3><br />
			<a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
		<!-- ELSE -->
			<h3>{L_FORUM_RULES}</h3><br />
			{FORUM_RULES}
		<!-- ENDIF -->
	</div>

	<br clear="all" />
<!-- ENDIF -->
Заменить на

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

<!-- IF S_FORUM_RULES -->
	<div id="for_rul_h" style="display: none;">
	<div class="forumrules" style="height: 100%;"><img style="padding-top: 0px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_maximize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"><h3>{L_FORUM_RULES}</h3></div>

	</div>
	</div>
	
    <div id="for_rul_nh">
	<script type="text/javascript">
	<!--
	tmp = 'for_rul';
	if(GetCookie(tmp) == '2')
	{
		ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');
	}
	//-->
	</script>
		<div class="forumrules" style="height: 100%;"><img style="padding-top: 0px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_minimize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"></div>
	<!-- IF S_FORUM_RULES -->
			<!-- IF U_FORUM_RULES -->
				<h3>{L_FORUM_RULES}</h3><br />
				<a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
			<!-- ELSE -->
				<h3>{L_FORUM_RULES}</h3><br />
				{FORUM_RULES}
			<!-- ENDIF -->
	<!-- ENDIF -->
		</div>
	</div>
	<br clear="all" />
<!-- ENDIF -->
Для блока правил на странице просмотра темы
phpbb/styles/subsilver2/template/viewtopic_body.html
Найти

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

<!-- IF S_FORUM_RULES -->
	<div class="forumrules">
		<!-- IF U_FORUM_RULES -->
			<h3>{L_FORUM_RULES}</h3><br />
			<a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
		<!-- ELSE -->
			<h3>{L_FORUM_RULES}</h3><br />
			{FORUM_RULES}
		<!-- ENDIF -->
	</div>

	<br clear="all" />
<!-- ENDIF -->
Заменить на

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

<!-- IF S_FORUM_RULES -->
	<div id="for_rul_h" style="display: none;">
	<div class="forumrules" style="height: 100%;"><img style="padding-top: 0px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_maximize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"><h3>{L_FORUM_RULES}</h3></div>

	</div>
	</div>
	
    <div id="for_rul_nh">
	<script type="text/javascript">
	<!--
	tmp = 'for_rul';
	if(GetCookie(tmp) == '2')
	{
		ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');
	}
	//-->
	</script>
		<div class="forumrules" style="height: 100%;"><img style="padding-top: 0px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_minimize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"></div>
	<!-- IF S_FORUM_RULES -->
			<!-- IF U_FORUM_RULES -->
				<h3>{L_FORUM_RULES}</h3><br />
				<a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
			<!-- ELSE -->
				<h3>{L_FORUM_RULES}</h3><br />
				{FORUM_RULES}
			<!-- ENDIF -->
	<!-- ENDIF -->
		</div>
	</div>
	<br clear="all" />
<!-- ENDIF -->
Для блока правил на странице полного ответа
Открыть
phpbb/styles/subsilver2/template/posting_body.html
Найти

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

<!-- IF S_FORUM_RULES -->
	<div class="forumrules">
		<!-- IF U_FORUM_RULES -->
			<h3>{L_FORUM_RULES}</h3><br />
			<a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
		<!-- ELSE -->
			<h3>{L_FORUM_RULES}</h3><br />
			{FORUM_RULES}
		<!-- ENDIF -->
	</div>

	<br clear="all" />
<!-- ENDIF -->
Заменить на

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

<!-- IF S_FORUM_RULES -->
	<div id="for_rul_h" style="display: none;">
	<div class="forumrules" style="height: 100%;"><img style="padding-top: 0px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_maximize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"><h3>{L_FORUM_RULES}</h3></div>

	</div>
	</div>
	
    <div id="for_rul_nh">
	<script type="text/javascript">
	<!--
	tmp = 'for_rul';
	if(GetCookie(tmp) == '2')
	{
		ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');
	}
	//-->
	</script>
		<div class="forumrules" style="height: 100%;"><img style="padding-top: 0px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_minimize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"></div>
	<!-- IF S_FORUM_RULES -->
			<!-- IF U_FORUM_RULES -->
				<h3>{L_FORUM_RULES}</h3><br />
				<a href="{U_FORUM_RULES}"><b>{L_FORUM_RULES_LINK}</b></a>
			<!-- ELSE -->
				<h3>{L_FORUM_RULES}</h3><br />
				{FORUM_RULES}
			<!-- ENDIF -->
	<!-- ENDIF -->
		</div>
	</div>
	<br clear="all" />
<!-- ENDIF -->
У вас нет необходимых прав для просмотра вложений в этом сообщении.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Strigops
phpBB 2.0.0
Сообщения: 203
Стаж: 14 лет 5 месяцев
Благодарил (а): 27 раз
Поблагодарили: 3 раза

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение Strigops »

Владимир, спасибо, работает и запоминает. Вот только не выезжает плавно, а закрывается/открывается мгновенно. Я так понимаю что должно все плавно выезжать? Можете глянуть что еще надо сделать?
ПС. Или может это у меня какие-то конфликты на форуме? - http://siniy-popugay.ru/viewforum.php?f=105
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение владимир1983 »

Strigops писал(а):должно все плавно выезжать?
Нет.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Sherlock
phpBB 2.0.2
Сообщения: 301
Стаж: 14 лет
Откуда: Украина, Ивано-Франковск
Благодарил (а): 40 раз
Поблагодарили: 44 раза

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение Sherlock »

Сворачивание/разворачивание правил форумов как на гуру
Вариант для prosilver

Открыть:
root/styles/prosilver/template/overall_header.html
Найти:

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

<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/forum_fn.js"></script>
Добавить после:

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

<script type="text/javascript" src="{T_TEMPLATE_PATH}/scripts.js"></script>
Открыть
root/styles/prosilver/template/viewforum_body.html
Найти:

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

<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>

		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			{FORUM_RULES}
		<!-- ENDIF -->

		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->
Заменить на:

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

<!-- IF S_FORUM_RULES -->
	<div id="for_rul_h" style="display: none;">
	<div class="rules" style="height: 100%;"><img style="padding-top: 10px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_maximize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="inner"><span class="corners-top"><span></span></span><strong>{L_FORUM_RULES}</strong><span class="corners-bottom"><span></span></span></div></div>

	</div>
	
    <div id="for_rul_nh">
	<script type="text/javascript">
	<!--
	tmp = 'for_rul';
	if(GetCookie(tmp) == '2')
	{
		ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');
	}
	//-->
	</script>
		<div class="forumrules" style="height: 100%;"><img style="padding-top: 10px; padding-right: 10px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_minimize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"></div>
<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>

		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			{FORUM_RULES}
		<!-- ENDIF -->

		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->
		</div>
	</div>
	<br clear="all" />
<!-- ENDIF -->
Открыть:
root/styles/prosilver/template/viewtopic_body.html
Найти:

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

<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>

		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			{FORUM_RULES}
		<!-- ENDIF -->

		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->
Заменить на:

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

<!-- IF S_FORUM_RULES -->
	<div id="for_rul_h" style="display: none;">
	<div class="rules" style="height: 100%;"><img style="padding-top: 10px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_maximize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="inner"><span class="corners-top"><span></span></span><strong>{L_FORUM_RULES}</strong><span class="corners-bottom"><span></span></span></div></div>

	</div>
	
    <div id="for_rul_nh">
	<script type="text/javascript">
	<!--
	tmp = 'for_rul';
	if(GetCookie(tmp) == '2')
	{
		ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');
	}
	//-->
	</script>
		<div class="forumrules" style="height: 100%;"><img style="padding-top: 10px; padding-right: 10px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_minimize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"></div>
<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>

		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			{FORUM_RULES}
		<!-- ENDIF -->

		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->
		</div>
	</div>
	<br clear="all" />
<!-- ENDIF -->
Открыть:
root/styles/prosilver/template/posting_layout.html
Найти:

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

<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>

		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			{FORUM_RULES}
		<!-- ENDIF -->

		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->
Заменить на:

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

<!-- IF S_FORUM_RULES -->
	<div id="for_rul_h" style="display: none;">
	<div class="rules" style="height: 100%;"><img style="padding-top: 10px; padding-right: 0px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_maximize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="inner"><span class="corners-top"><span></span></span><strong>{L_FORUM_RULES}</strong><span class="corners-bottom"><span></span></span></div></div>

	</div>
	
    <div id="for_rul_nh">
	<script type="text/javascript">
	<!--
	tmp = 'for_rul';
	if(GetCookie(tmp) == '2')
	{
		ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');
	}
	//-->
	</script>
		<div class="forumrules" style="height: 100%;"><img style="padding-top: 10px; padding-right: 10px; float: right; cursor: pointer;" src="{T_THEME_PATH}/images/icon_minimize.gif" onclick="ShowHide('for_rul_nh', 'for_rul_h', 'for_rul');" alt="" /><div class="tbl-title"></div>
<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>

		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			{FORUM_RULES}
		<!-- ENDIF -->

		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->
		</div>
	</div>
	<br clear="all" />
<!-- ENDIF -->
SH
Cmepka
phpBB 1.4.0
Сообщения: 31
Стаж: 14 лет 5 месяцев
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение Cmepka »

Сделал изменения - работает.
У меня сабсилвер.
Вопрос:
Как сделать так, чтобы было оформление самого этого блока как тут на гуру?

Я понимаю, что скорей всего в файлах напрямую записан HTML, а не переменная для текста из админки... Но не мог бы кто помочь, дать html код, такой, как тут оформления (сама рамка, текст "правила форума").

Вообще больше всего интересует сама ссы ... развернуть, т.к. картинки +/- не всем будет понятно, что можно свернуть окно правил.

Заранее благодарен за помощь.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Сворачивание/разворачивание правил форумов как на гуру

Сообщение Sheer »

Cmepka писал(а):Как сделать так, чтобы было оформление самого этого блока как тут на гуру?
Во так
Алг писал(а):Открываем файрбаг на этой странице и смотрим
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Вернуться в «Стили для phpBB 3.0.x»