Board Rules (Правила конференции)

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 2787
Зарегистрирован: 19.03.2009 17:43
Благодарил (а): 23 раза
Поблагодарили: 999 раз

Board Rules (Правила конференции)

Сообщение Nekstati » 13.01.2010 22:32

Мод добавляет страницу «Правила конференции». Каждый пункт правил снабжён прямой ссылкой и подсвечивается при переходе по такой ссылке. Правила можно редактировать при помощи мода «FAQ Manager».

Опционально можно добавить ссылку на правила в «шапку» конференции (по умолчанию используется форум-ссылка на главной странице). В Prosilver можно также выбрать один из двух вариантов шаблона: с оглавлением сверху или сбоку.

Ссылки на правила имеют такой вид:
http://site.ru/rules/#cat1 — категория
http://site.ru/rules/#rule1.1 — пункт
http://site.ru/rules/#rule1.1.1 — подпункт
http://site.ru/rules/#rule1.1.1.1 — подподпункт
rules.png
ДЕМО:
[удалено]

Редактирование правил осуществляется из администраторского раздела посредством мода «FAQ Manager» либо ручной правкой файла language/ru/help_rules.php. В текстах правил можно использовать html-тэги.

Заголовки пунктов (но не категорий) могут быть любыми, даже пустыми: на странице правил они не отображаются и нужны только для удобства ориентирования в «FAQ Manager». Удобнее всего для заголовка брать первые два-три слова из текста пункта.

Пункт, заголовок которого начинается с тильды ~, становится подпунктом к предыдущему пункту.
Пункт, заголовок которого начинается с двух тильд ~~, становится подподпунктом к предыдущему подпункту.
В «FAQ Manager» это выглядит так:
acp.png
Если понадобятся подпункты без нумерации — их можно оформить в виде простого списка <ul> или <ol>. Но прямых ссылок на них и подсветки, естественно, не будет.

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

	На конференции запрещается:
	<ul style="padding-left: 20px">
	<li>Пить.
	<li>Курить.
	<li>Материться.
	</ul>

	На конференции рекомендуется:
	<ol type="a" style="padding-left: 25px">
	<li>Писать грамотно.
	<li>Писать кратко.
	<li>Писать по делу.
	</ol>
Если вдруг потребуются подпункты большей степени вложенности, снабжённые прямыми ссылками и подсветкой, их можно сделать вручную по такому принципу:

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

	На конференции разрешается:
	<ul style="list-style-type: none; padding-left: 10px">
	<li id="rule1.1.1.1.1"><a href="#rule1.1.1.1.1">1.1.1.1.1</a>. То, что не запрещено.
	<li id="rule1.1.1.1.2"><a href="#rule1.1.1.1.2">1.1.1.1.2</a>. То, что разрешено.
	<li id="rule1.1.1.1.3"><a href="#rule1.1.1.1.3">1.1.1.1.3</a>. То, что запрещено, но очень хочется.
	</ul>
Можно придать ссылкам вид http://forum.ru/rules/#1.1, выкинув из них префиксы «rule» и «cat» — если не заботят вопросы валидности кода. Для этого нужно в файле styles\stylename\template\rules_body.html произвести массовую замену rule{ и cat{ на {. Мне такой вид ссылок нравится больше.

В случае замены мода «Rules Page» этим модом файл language/ru/mods/help_rules_page.php, содержащий тексты правил, можно оставить неизменным. Надо его только переименовать в help_rules.php и переместить в language/ru/.


Использованы идеи из DasRules MOD и http://www.phpbb.com/rules. Основные отличия от известного мода «Rules Page» — подсветка, наличие подпунктов и (смею надеяться) лучшая читабельность.
Board_Rules_1.0.2.zip
(72.94 КБ) 773 скачивания
========================
fix Если у вас не работают якоря ссылок на пункты правил
Открыть
styles/subsilver2/template/rules_body.html
Найти

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

<script type="text/javascript">
// <![CDATA[
	var hilited_id = false;

	function hilite(id) {
		if (hilited_id && hilited_id != id) {
			document.getElementById(hilited_id).className = '';
		}
		if (id.length > 0) {
			document.getElementById(id).className = 'fragment';
			hilited_id = id;
		}
	}

	function add_hl_events() {
		var links = document.getElementById('rules').getElementsByTagName('a');
		for (i = 0; i < links.length; i++) {
			if ((hashpos = links[i].href.indexOf('#')) >= 0) {
				var evn = 'hilite(\'' + links[i].href.substr(hashpos + 1) + '\');'
					+ (links[i].href.indexOf('#cat') >= 0 ? '' : ' return false;');
				links[i].onclick = new Function('e', evn);
			}
		}
	}

	window.onload = function() {
		hilite(location.hash.substr(1));
		add_hl_events();
	};
// ]]>
</script>
Заменить на

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

<script type="text/javascript">
// <![CDATA[
var fragHLed = '';

function fragHLload() {
	fragHL(location.hash.substring(1));
}

function fragHL(frag) {
	if (fragHLed.length > 0 && document.getElementById(fragHLed)) {
	document.getElementById(fragHLed).className = '';
	}
	if (frag.length > 0 && document.getElementById(frag)) {
	fragHLed = frag;
	document.getElementById(frag).className = 'fragment';
	}
}

function fragHLlink() {
	if (document.getElementsByTagName) {
	var an = document.getElementById('rules').getElementsByTagName('a');
	for (i=0; i<an.length; i++) {
		if (an.item(i).getAttribute('href').indexOf('#') >= 0) {
		var fragment = an.item(i).getAttribute('href').substring(an.item(i).getAttribute('href').indexOf('#') + 1);
			var evn = "fragHL('" + fragment + "')";
			var fun = new Function('e', evn);
			an.item(i).onclick = fun;
		}
	}
	}
}

window.onload = function() {
	fragHLload();
	fragHLlink();
};
// ]]>
</script>
Последний раз редактировалось владимир1983 25.01.2014 3:20, всего редактировалось 6 раз.

Gisher
phpBB 2.0.12
Сообщения: 857
Зарегистрирован: 04.10.2006 7:50
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Re: Board Rules

Сообщение Gisher » 15.01.2010 22:16

спасибо за мод, гораздо убоднее и симпотичнее чем старый вариант Rules Page

Vadyai
phpBB 1.2.0
Сообщения: 11
Зарегистрирован: 28.09.2009 0:05
Поблагодарили: 1 раз

Re: Board Rules

Сообщение Vadyai » 16.01.2010 19:40

Супер! Огромное спасибо!! ;)

Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 453 раза

Re: Board Rules

Сообщение Палыч » 16.01.2010 22:17

Nekstati
Хорошая работа.
Предложение: для prosilver добавляемый css выделить в отдельный файл, например rules.css, а в stylesheet.css добавлять

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

@import url("rules.css");
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.

Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 2787
Зарегистрирован: 19.03.2009 17:43
Благодарил (а): 23 раза
Поблагодарили: 999 раз

Re: Board Rules

Сообщение Nekstati » 18.01.2010 10:20

Спасибо за отзывы. :oops:
Палыч, точно, учту.

Morfiy
phpBB 1.4.3
Сообщения: 92
Зарегистрирован: 11.01.2010 13:17
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Board Rules

Сообщение Morfiy » 20.01.2010 1:31

Мод клевый, спасибо. Только не совсем понял как добавить в шапку ссылку на правила? Английский хромает, не пойму как правильно это перевести:
"Go to ACP and refresh themes.
Go to "Forums" tab in ACP and create new forum. Name it "Board rules", set "Forum type" as "Link",
and type in the "Forum link" field: http://your_board_URL/rules/.

smart2008
phpBB 1.4.2
Сообщения: 59
Зарегистрирован: 06.08.2008 3:50
Поблагодарили: 6 раз

Re: Board Rules

Сообщение smart2008 » 20.01.2010 1:41

Заходите в Админку -> Стиль -> Темы (обновить). Дальше Форумы, создаете новый форум (назвать можно "Правила форума") и там выбираете Тип форума как Ссылка.
Советую поставить http://www.phpbb.com/community/viewtopi ... 9&t=712805.

Morfiy
phpBB 1.4.3
Сообщения: 92
Зарегистрирован: 11.01.2010 13:17
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Board Rules

Сообщение Morfiy » 20.01.2010 2:14

Спасибо за ссылку, но уже стоит. Вроде разобрался сам, но не работает. В шапке отображается Board rules, а созданная ссылка находится в списке форумов, при нажатии ведет на страницу Board rules. В админке создал "Правила", тип форума - ссылка и поставил ссылку. Что не так?

Добавлено спустя 7 минут 44 секунды:
smart2008 писал(а):Заходите в Админку -> Стиль -> Темы (обновить)
У меня стоит subsilver и при нажатии обновить - "Эта тема хранится на сервере и не требует обновления". prosilver обновил - без изменений.

Аватара пользователя
Fray98rus
Former team member
Сообщения: 442
Зарегистрирован: 14.10.2007 19:21
Откуда: Санкт-Петербург
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Board Rules

Сообщение Fray98rus » 20.01.2010 3:03

Morfiy писал(а):Вроде разобрался сам, но не работает.
Работает. приведенное выше действие добавляет ссылку среди форумов.

Morfiy
phpBB 1.4.3
Сообщения: 92
Зарегистрирован: 11.01.2010 13:17
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Board Rules

Сообщение Morfiy » 20.01.2010 3:21

Это я понял, но вот это как раз таки и не надо. Не работает, в смысле название ссылки в шапке не изменить - Board rules и все тут.

Добавлено спустя 9 минут 32 секунды:
Нашел:
<a href="{U_RULES}"><img src="{T_THEME_PATH}/images/icon_mini_rules.gif" width="12" height="13" alt="*" /> {L_BOARD_RULES}</a>&nbsp; &nbsp;
Заменить:
<a href="{U_RULES}"><img src="{T_THEME_PATH}/images/icon_mini_rules.gif" width="12" height="13" alt="*" /> Правила</a>&nbsp; &nbsp;

Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 2787
Зарегистрирован: 19.03.2009 17:43
Благодарил (а): 23 раза
Поблагодарили: 999 раз

Re: Board Rules

Сообщение Nekstati » 20.01.2010 7:25

Morfiy, подразумевается, что можно сделать либо форум-ссылку, либо ссылку в шапке, по вкусу. Вряд ли нужно то и другое вместе.
Morfiy писал(а):название ссылки в шапке не изменить - Board rules и все тут.
Очевидно, вы неверно выполнили инструкцию по русификации. См. contrib/lang_ru.xml.

Morfiy
phpBB 1.4.3
Сообщения: 92
Зарегистрирован: 11.01.2010 13:17
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Board Rules

Сообщение Morfiy » 20.01.2010 13:34

Ну точно блин))) Утро вечера мудренее! Файлы скопировал, а в common.php изменения не внес. Спасибо большое!

Morfiy
phpBB 1.4.3
Сообщения: 92
Зарегистрирован: 11.01.2010 13:17
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Board Rules

Сообщение Morfiy » 20.01.2010 19:54

Есть предложение по улучшению мода. Сделать, например, первый пункт - "Запрещено на конференции" (или никак не называть) и при нажатии, чтобы подсвечивался красным (будет заметнее), остальным пунктам сделать подсветку зеленым.

Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 2787
Зарегистрирован: 19.03.2009 17:43
Благодарил (а): 23 раза
Поблагодарили: 999 раз

Re: Board Rules

Сообщение Nekstati » 21.01.2010 11:30

Morfiy, вот вам разноцветная подсветка.

Откройте styles\prosilver\template\rules_body.html
Найдите

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

<div class="panel <!-- IF cat_row.S_ROW_COUNT is odd -->bg2<!-- ELSE -->bg1<!-- ENDIF -->" style="margin-right: 26%">
Замените на

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

<div class="panel <!-- IF cat_row.S_ROW_COUNT is odd -->bg2<!-- ELSE -->bg1<!-- ENDIF --><!-- IF cat_row.S_ROW_COUNT == 2 --> alt<!-- ENDIF -->" style="margin-right: 26%">
Обратите внимание: здесь S_ROW_COUNT == 2 указывает, что подсветка другого цвета будет в третьей категории правил. Для первой категории укажите S_ROW_COUNT == 0, для второй S_ROW_COUNT == 1 и так далее. Если нужно выделить две категории:

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

<!-- IF cat_row.S_ROW_COUNT == 2 or cat_row.S_ROW_COUNT == 3 -->

Далее откройте styles\prosilver\theme\common.css
Найдите

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

#rules .fragment {
	background-color: #ECD5D8;
	color: #9C2A4D;
	margin: -2px;
	padding: 5px;
}

#rules .fragment a {
	color: #9C2A4D;
}
Это стиль обычного подсвеченного пункта правил (красного). Добавьте после:

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

#rules .alt .fragment {
	background-color: #B6ECB4;
	color: #116F29;
	margin: 1em -2px -2px;
	padding: 5px;
}

#rules .alt .fragment a {
	color: #116F29;
}
Цвета изменяйте по вкусу. В данном случае выбран зелёный.


Для Subsilver2:

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

----- Найти в styles\subsilver2\template\rules_body.html

<div class="postbody">

----- Заменить на

<div class="postbody<!-- IF cat_row.S_ROW_COUNT == 2 --> alt<!-- ENDIF -->">

----- где 2 = номер нужной категории минус 1.


----- Открыть styles\subsilver2\theme\stylesheet.css
----- Добавить в конце

#rules .alt .fragment {
	background-color: #B6ECB4;
	padding: 5px;
}

Morfiy
phpBB 1.4.3
Сообщения: 92
Зарегистрирован: 11.01.2010 13:17
Благодарил (а): 9 раз
Поблагодарили: 1 раз

Re: Board Rules

Сообщение Morfiy » 21.01.2010 16:26

ООО, кулл. Будем пробовать. Спасибо)))

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