First post on every page for phpBB3

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14537
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1557 раз

First post on every page for phpBB3

Сообщение rxu » 21.09.2007 11:24

В режиме создания или редактирования первого сообщения темы дает возможность закрепить первое сообщение вверху каждой страницы темы.
first_post_on_every_page_phpbb3_1.2.2.zip
(30.67 КБ) 4281 скачивание
first post on every page phpbb3 1.2.3

------------
Для установки на версию phpBB 3.0.6 :

В этой версии часть кода изменилась.
Поэтому в инструкции вместо

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

			// If the post need approval we will wait a lot longer.
использовать для поиска

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

                  // Check the permissions for post approval. Moderators are not affected.
После установки мода необходимо выполнить также следующую инструкцию (для снижения нагрузки на базу данных):

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

Open:
viewtopic.php

Find:
$post_list[$i] = $topic_data['topic_first_post_id'] ;

Replace to:
$post_list[$i] = (int) $topic_data['topic_first_post_id'] ;
Исправление ошибки с отображением информации о редактировании сообщения при закрепленном первом сообщении находится здесь.

FAQ

1. Кто имеет право закреплять сообщение?
Тот, кто имеет право закрывать тему.
First post on every page for phpBB3

2. Вопросы, собранные из темы, в одном сообщении:
First post on every page for phpBB3
Последний раз редактировалось Татьяна5 21.11.2014 8:43, всего редактировалось 8 раз.
Причина: Добавление ссылки на ответ о правах
Изображение

Аватара пользователя
Perfecthus
phpBB 2.0.6
Сообщения: 518
Зарегистрирован: 21.10.2010 8:39
Откуда: Оттуда
Благодарил (а): 44 раза
Поблагодарили: 50 раз

Re: First post on every page for phpBB3

Сообщение Perfecthus » 29.10.2014 10:40

rxu писал(а):Для установки на версию phpBB 3.0.6 :

В этой версии часть кода изменилась.
Поэтому в инструкции вместо

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

			// If the post need approval we will wait a lot longer.
использовать для поиска

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

                  // Check the permissions for post approval. Moderators are not affected.
Для версии 3.0.12 строчки для поиска выглядят так:

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

// Check the permissions for post approval.
			// Moderators must go through post approval like ordinary users.
Сам не сразу нашел.


Для русского языка нужно добавить строку в файл: ../language/ru/common.php
Найти:

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

'FIND_USERNAME'			=> 'Найти пользователя',
Добавить после:

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

'FIRST_POST_SHOW'		=> 'Отображать первое сообщение в верхней части каждой страницы темы',
А так MOD работает, без всяких проблем, по крайней мере пока не проявилось никаких багов.

voe
phpBB 1.0.0
Сообщения: 2
Зарегистрирован: 29.04.2010 9:00

Re: First post on every page for phpBB3

Сообщение voe » 07.11.2014 22:04

а будет поддержка 3.1.х?

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Зарегистрирован: 26.03.2010 9:09
Благодарил (а): 67 раз
Поблагодарили: 784 раза

Re: First post on every page for phpBB3

Сообщение Anvar » 07.11.2014 22:24


Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Зарегистрирован: 28.08.2014 1:41
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN » 18.11.2014 23:17

а как сделать что бы первый пост не содержал информацию о авторе, что бы только ник, и все, как на скрине


и еще, как сделать что бы все первые сообщения по умолчанию отображались на всех страницах?
Вложения
і.png
С уважением, Николай

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9768
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2722 раза

Re: First post on every page for phpBB3

Сообщение Татьяна5 » 19.11.2014 8:51

WinSSLioN писал(а):первый пост не содержал информацию о авторе
Закрыть всё, что не надо, условием в шаблоне. Условие в теме есть.
WinSSLioN писал(а):по умолчанию отображались на всех страницах
Это тоже есть в теме.

Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Зарегистрирован: 28.08.2014 1:41
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN » 19.11.2014 13:21

Татьяна5 подскажите что конкретно куда вписать, если не трудно)
С уважением, Николай

Аватара пользователя
владимир1983
phpBB 3.1.9
Сообщения: 5954
Зарегистрирован: 27.04.2010 2:17
Откуда: Сергиев Посад
Благодарил (а): 391 раз
Поблагодарили: 730 раз

Re: First post on every page for phpBB3

Сообщение владимир1983 » 19.11.2014 13:33

WinSSLioN писал(а):если не трудно
Если не трудно, используй поиск по теме. Ну и почитать тему будет не вредно.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)

Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Зарегистрирован: 28.08.2014 1:41
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN » 19.11.2014 20:11

владимир1983 писал(а):Если не трудно, используй поиск по теме. Ну и почитать тему будет не вредно.
Прочитал от начала и до конца

Как сделать чтобы по умолчанию закреплялся первый пост всегда?

Здесь!


Как отделить пост нашел, но только по цвету, а не так как я задумал.
Кто бы подсказал какой код обрамить условием "прятать на последующих страницах если сообщение прилепленное" или что то в этом роде.. Я нуб, простите но нужна помощь..
С уважением, Николай

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9768
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2722 раза

Re: First post on every page for phpBB3

Сообщение Татьяна5 » 19.11.2014 21:30

WinSSLioN писал(а):какой код
Тот, какой хотите скрыть
Разберем viewtopic_body.html на кусочки

Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Зарегистрирован: 28.08.2014 1:41
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN » 19.11.2014 22:00

Татьяна5,
Скрытый текст
при всем уважении к вам, если вы не можете в полной мере помочь, и просто пытаетесь соответствовать группе "поддержка", пожалуйста, не оставляйте сообщения где нет реальной помощи. Любой из пользователей может вставить ссылку на тему и сказать мол "там ответы на все вопросы".
С таким же успехом можно дать ссылку на учебник HTML.
Спасибо за понимание.

P.S. Вспомните хотя бы себя, и то как вы нуждались в помощи
С уважением, Николай

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9768
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2722 раза

Re: First post on every page for phpBB3

Сообщение Татьяна5 » 19.11.2014 22:22

WinSSLioN писал(а):и сказать мол "там ответы на все вопросы"
Не на все, а на ваш
WinSSLioN писал(а):P.S. Вспомните хотя бы себя
Помню-помню. Около месяца тогда искала ответ, перерыла не только весь этот форум - но и всё что выдал яндекс, и только после этого решила спросить
Подсказали немного, потом залезла в php (ничего в нём тогда не понимая, всё изучала с нуля), и доработала инструкцию

Аватара пользователя
WinSSLioN
phpBB 1.4.4
Сообщения: 106
Зарегистрирован: 28.08.2014 1:41
Благодарил (а): 11 раз
Поблагодарили: 18 раз

Re: First post on every page for phpBB3

Сообщение WinSSLioN » 19.11.2014 22:24

Татьяна5 писал(а):Не на все, а на ваш
тогда почему бы вам не скопировать ответ на мой вопрос, зачем эти лишние "телодвижения"..
С уважением, Николай

Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1799
Зарегистрирован: 19.05.2012 19:00
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: First post on every page for phpBB3

Сообщение xisp » 20.11.2014 1:29

Татьяна5 писал(а):потом

p377777
Татьяна5 писал(а):доработала инструкцию

p377888
2 гета подряд!

WinSSLioN писал(а):скопировать ответ
WinSSLioN писал(а):зачем эти лишние "телодвижения"..
Да, зачем? Помощь нужна вам, так почему она должна делать что- то сверх минимально необходимого? На блюдечке никто ответ вам приносить не будет, если вам нужно- потрудитесь немного сами.
phpBBex

Аватара пользователя
Пчелкин
phpBB 3.1.9
Сообщения: 10103
Зарегистрирован: 15.01.2010 13:57
Откуда: От Москвы 9 часов на Боинге
Благодарил (а): 1338 раз
Поблагодарили: 1297 раз

Re: First post on every page for phpBB3

Сообщение Пчелкин » 20.11.2014 2:00

WinSSLioN писал(а):тогда почему бы вам не скопировать ответ на мой вопрос
Мож тебе еще и форум заполнить и на обслугу его взять?
Татьяна5 писал(а): и доработала инструкцию
Все б так спрашивали и отвечали самому себе...

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9768
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2722 раза

Re: First post on every page for phpBB3

Сообщение Татьяна5 » 20.11.2014 8:58

WinSSLioN писал(а):почему бы вам не скопировать ответ
Копирую. (Вот это как раз лишнее)
Скрытый текст
Пчелкин писал(а):Работаем со стилем prosilver

Ни для кого не секрет, что все, что мы мудрим и правим на форуме в виде правок, модов, хаков и различных переделок, в большей степени касается именно того, что называется "Темы" (topic) и "Сообщения" (post).
А так как, за вывод на форуме этих двух штук отвечает один файл - viewtopic_body.html, давайте попробуем разобраться в том, как он устроен и какие в нем штучки, в виде наборов буквочек и закорючек, за что отвечают....
Откроем стандартный файл viewtopic_body.html из дистрибутива форума и порезав его на кусочки, попробуем расписать назначение всех этих кусочков.
Открываем его, конечно, самым простым и понятным Блокнотом++ и с удивлением видим, что в нем все слишком сложно и не понятно.
Во-первых, в файле много цветных буквочек и они, странным образом, переплетаются в какую-то стройную структуру, которая на первый взгляд, кажется непонятной.
Но это только на первый взгляд. На самом деле все просто...
Во-вторых - все строчки в файле имеют какой-то непонятный порядок расположения. Хотя на самом деле (а вы об этом уже должны знать) - все тоже просто.
Давайте все же посмотрим на файл глазами Блокнота++, что бы увидеть его во всей красе...

Вот его полный код...Версия двига 3.0.11 prosilver

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

<!-- INCLUDE overall_header.html -->
<!-- IF U_MCP --><p>[&nbsp;<a href="{U_MCP}">{L_MCP}</a>&nbsp;]</p><!-- ENDIF -->
<h2><a href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a></h2>
<!-- NOTE: remove the style="display: none" when you want to have the forum description on the topic body -->
<!-- IF FORUM_DESC --><div style="display: none !important;">{FORUM_DESC}<br /></div><!-- ENDIF -->

<!-- IF MODERATORS -->
<p>
	<strong><!-- IF S_SINGLE_MODERATOR -->{L_MODERATOR}<!-- ELSE -->{L_MODERATORS}<!-- ENDIF -->:</strong> {MODERATORS}
</p>
<!-- ENDIF -->

<!-- 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 class="topic-actions">

	<div class="buttons">
	<!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->
		<div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->reply-icon<!-- ENDIF -->"><a href="{U_POST_REPLY_TOPIC}" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->"><span></span><!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED_SHORT}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF --></a></div>
	<!-- ENDIF -->
	</div>

	<!-- IF S_DISPLAY_SEARCHBOX -->
		<div class="search-box">
			<form method="get" id="topic-search" action="{S_SEARCHBOX_ACTION}">
			<fieldset>
				<input class="inputbox search tiny"  type="text" name="keywords" id="search_keywords" size="20" value="{L_SEARCH_TOPIC}" onclick="if(this.value=='{LA_SEARCH_TOPIC}')this.value='';" onblur="if(this.value=='')this.value='{LA_SEARCH_TOPIC}';" />
				<input class="button2" type="submit" value="{L_SEARCH}" />
				{S_SEARCH_LOCAL_HIDDEN_FIELDS}
			</fieldset>
			</form>
		</div>
	<!-- ENDIF -->

	<!-- IF PAGINATION or TOTAL_POSTS -->
		<div class="pagination">
			<!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --><a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> &bull; <!-- ENDIF -->{TOTAL_POSTS}
			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
		</div>
	<!-- ENDIF -->

</div>
<div class="clear"></div>

<!-- IF S_HAS_POLL -->
	<form method="post" action="{S_POLL_ACTION}">

	<div class="panel">
		<div class="inner"><span class="corners-top"><span></span></span>

		<div class="content">
			<h2>{POLL_QUESTION}</h2>
			<p class="author">{L_POLL_LENGTH}<!-- IF S_CAN_VOTE and L_POLL_LENGTH --><br /><!-- ENDIF --><!-- IF S_CAN_VOTE -->{L_MAX_VOTES}<!-- ENDIF --></p>

			<fieldset class="polls">
			<!-- BEGIN poll_option -->
				<dl class="<!-- IF poll_option.POLL_OPTION_VOTED -->voted<!-- ENDIF -->"<!-- IF poll_option.POLL_OPTION_VOTED --> title="{L_POLL_VOTED_OPTION}"<!-- ENDIF -->>
					<dt><!-- IF S_CAN_VOTE --><label for="vote_{poll_option.POLL_OPTION_ID}">{poll_option.POLL_OPTION_CAPTION}</label><!-- ELSE -->{poll_option.POLL_OPTION_CAPTION}<!-- ENDIF --></dt>
					<!-- IF S_CAN_VOTE --><dd style="width: auto;"><!-- IF S_IS_MULTI_CHOICE --><input type="checkbox" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ELSE --><input type="radio" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ENDIF --></dd><!-- ENDIF -->
					<!-- IF S_DISPLAY_RESULTS --><dd class="resultbar"><div class="<!-- IF poll_option.POLL_OPTION_PCT < 20 -->pollbar1<!-- ELSEIF poll_option.POLL_OPTION_PCT < 40 -->pollbar2<!-- ELSEIF poll_option.POLL_OPTION_PCT < 60 -->pollbar3<!-- ELSEIF poll_option.POLL_OPTION_PCT < 80 -->pollbar4<!-- ELSE -->pollbar5<!-- ENDIF -->" style="width:{poll_option.POLL_OPTION_PERCENT};">{poll_option.POLL_OPTION_RESULT}</div></dd>
					<dd><!-- IF poll_option.POLL_OPTION_RESULT == 0 -->{L_NO_VOTES}<!-- ELSE -->{poll_option.POLL_OPTION_PERCENT}<!-- ENDIF --></dd><!-- ENDIF -->
				</dl>
			<!-- END poll_option -->

			<!-- IF S_DISPLAY_RESULTS -->
				<dl>
					<dt>&nbsp;</dt>
					<dd class="resultbar">{L_TOTAL_VOTES} : {TOTAL_VOTES}</dd>
				</dl>
			<!-- ENDIF -->

			<!-- IF S_CAN_VOTE -->
				<dl style="border-top: none;">
					<dt>&nbsp;</dt>
					<dd class="resultbar"><input type="submit" name="update" value="{L_SUBMIT_VOTE}" class="button1" /></dd>
				</dl>
			<!-- ENDIF -->

			<!-- IF not S_DISPLAY_RESULTS -->
				<dl style="border-top: none;">
					<dt>&nbsp;</dt>
					<dd class="resultbar"><a href="{U_VIEW_RESULTS}">{L_VIEW_RESULTS}</a></dd>
				</dl>
			<!-- ENDIF -->
			</fieldset>
		</div>

		<span class="corners-bottom"><span></span></span></div>
		{S_FORM_TOKEN}
		{S_HIDDEN_FIELDS}
	</div>


	</form>
	<hr />
<!-- ENDIF -->

<!-- BEGIN postrow -->
	<!-- IF postrow.S_FIRST_UNREAD --><a id="unread"></a><!-- ENDIF -->
	<div id="p{postrow.POST_ID}" class="post <!-- IF postrow.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF --><!-- IF postrow.S_UNREAD_POST --> unreadpost<!-- ENDIF --><!-- IF postrow.S_POST_REPORTED --> reported<!-- ENDIF --><!-- IF postrow.S_ONLINE and not postrow.S_IGNORE_POST --> online<!-- ENDIF -->">
		<div class="inner"><span class="corners-top"><span></span></span>

		<div class="postbody">
			<!-- IF postrow.S_IGNORE_POST -->
				<div class="ignore">{postrow.L_IGNORE_POST}</div>
			<!-- ELSE -->

		<!-- IF not S_IS_BOT -->
			<!-- IF postrow.U_EDIT or postrow.U_DELETE or postrow.U_REPORT or postrow.U_WARN or postrow.U_INFO or postrow.U_QUOTE -->
				<ul class="profile-icons">
					<!-- IF postrow.U_EDIT --><li class="edit-icon"><a href="{postrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_DELETE --><li class="delete-icon"><a href="{postrow.U_DELETE}" title="{L_DELETE_POST}"><span>{L_DELETE_POST}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_REPORT --><li class="report-icon"><a href="{postrow.U_REPORT}" title="{L_REPORT_POST}"><span>{L_REPORT_POST}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_WARN --><li class="warn-icon"><a href="{postrow.U_WARN}" title="{L_WARN_USER}"><span>{L_WARN_USER}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_INFO --><li class="info-icon"><a href="{postrow.U_INFO}" title="{L_INFORMATION}"><span>{L_INFORMATION}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_QUOTE --><li class="quote-icon"><a href="{postrow.U_QUOTE}" title="{L_REPLY_WITH_QUOTE}"><span>{L_REPLY_WITH_QUOTE}</span></a></li><!-- ENDIF -->
				</ul>
			<!-- ENDIF -->
		<!-- ENDIF -->

			<h3 <!-- IF postrow.S_FIRST_ROW -->class="first"<!-- ENDIF -->><!-- IF postrow.POST_ICON_IMG --><img src="{T_ICONS_PATH}{postrow.POST_ICON_IMG}" width="{postrow.POST_ICON_IMG_WIDTH}" height="{postrow.POST_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="#p{postrow.POST_ID}">{postrow.POST_SUBJECT}</a></h3>
			<p class="author"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF -->{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; {postrow.POST_DATE} </p>

			<!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_REPORTED -->
				<p class="rules">
					<!-- IF postrow.S_POST_UNAPPROVED -->{UNAPPROVED_IMG} <a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_UNAPPROVED}</strong></a><br /><!-- ENDIF -->
					<!-- IF postrow.S_POST_REPORTED -->{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a><!-- ENDIF -->
				</p>
			<!-- ENDIF -->

			<div class="content">{postrow.MESSAGE}</div>

			<!-- IF postrow.S_HAS_ATTACHMENTS -->
				<dl class="attachbox">
					<dt>{L_ATTACHMENTS}</dt>
					<!-- BEGIN attachment -->
						<dd>{postrow.attachment.DISPLAY_ATTACHMENT}</dd>
					<!-- END attachment -->
				</dl>
			<!-- ENDIF -->

			<!-- IF postrow.S_DISPLAY_NOTICE --><div class="rules">{L_DOWNLOAD_NOTICE}</div><!-- ENDIF -->
			<!-- IF postrow.EDITED_MESSAGE or postrow.EDIT_REASON -->
				<div class="notice">{postrow.EDITED_MESSAGE}
					<!-- IF postrow.EDIT_REASON --><br /><strong>{L_REASON}:</strong> <em>{postrow.EDIT_REASON}</em><!-- ENDIF -->
				</div>
			<!-- ENDIF -->

			<!-- IF postrow.BUMPED_MESSAGE --><div class="notice"><br /><br />{postrow.BUMPED_MESSAGE}</div><!-- ENDIF -->
			<!-- IF postrow.SIGNATURE --><div id="sig{postrow.POST_ID}" class="signature">{postrow.SIGNATURE}</div><!-- ENDIF -->
		<!-- ENDIF -->

		</div>

		<!-- IF not postrow.S_IGNORE_POST -->
			<dl class="postprofile" id="profile{postrow.POST_ID}">
			<dt>
				<!-- IF postrow.POSTER_AVATAR -->
					<!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF --><br />
				<!-- ENDIF -->
				<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
			</dt>

			<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->

		<dd>&nbsp;</dd>

		<!-- IF postrow.POSTER_POSTS != '' --><dd><strong>{L_POSTS}:</strong> {postrow.POSTER_POSTS}</dd><!-- ENDIF -->
		<!-- IF postrow.POSTER_JOINED --><dd><strong>{L_JOINED}:</strong> {postrow.POSTER_JOINED}</dd><!-- ENDIF -->
		<!-- IF postrow.POSTER_FROM --><dd><strong>{L_LOCATION}:</strong> {postrow.POSTER_FROM}</dd><!-- ENDIF -->

		<!-- IF postrow.S_PROFILE_FIELD1 -->
			<!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
			<dd><strong>{postrow.PROFILE_FIELD1_NAME}:</strong> {postrow.PROFILE_FIELD1_VALUE}</dd>
		<!-- ENDIF -->

		<!-- BEGIN custom_fields -->
			<dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
		<!-- END custom_fields -->

		<!-- IF not S_IS_BOT -->
		<!-- IF postrow.U_PM or postrow.U_EMAIL or postrow.U_WWW or postrow.U_MSN or postrow.U_ICQ or postrow.U_YIM or postrow.U_AIM or postrow.U_JABBER -->
			<dd>
				<ul class="profile-icons">
					<!-- IF postrow.U_PM --><li class="pm-icon"><a href="{postrow.U_PM}" title="{L_PRIVATE_MESSAGE}"><span>{L_PRIVATE_MESSAGE}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_EMAIL --><li class="email-icon"><a href="{postrow.U_EMAIL}" title="{L_SEND_EMAIL_USER} {postrow.POST_AUTHOR}"><span>{L_SEND_EMAIL_USER} {postrow.POST_AUTHOR}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_WWW --><li class="web-icon"><a href="{postrow.U_WWW}" title="{L_VISIT_WEBSITE}: {postrow.U_WWW}"><span>{L_WEBSITE}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_MSN --><li class="msnm-icon"><a href="{postrow.U_MSN}" onclick="popup(this.href, 550, 320); return false;" title="{L_MSNM}"><span>{L_MSNM}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_ICQ --><li class="icq-icon"><a href="{postrow.U_ICQ}" onclick="popup(this.href, 550, 320); return false;" title="{L_ICQ}"><span>{L_ICQ}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_YIM --><li class="yahoo-icon"><a href="{postrow.U_YIM}" onclick="popup(this.href, 780, 550); return false;" title="{L_YIM}"><span>{L_YIM}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_AIM --><li class="aim-icon"><a href="{postrow.U_AIM}" onclick="popup(this.href, 550, 320); return false;" title="{L_AIM}"><span>{L_AIM}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_JABBER --><li class="jabber-icon"><a href="{postrow.U_JABBER}" onclick="popup(this.href, 550, 320); return false;" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->
				</ul>
			</dd>
		<!-- ENDIF -->
		<!-- ENDIF -->

		</dl>
	<!-- ENDIF -->

		<div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div>

		<span class="corners-bottom"><span></span></span></div>
	</div>

	<hr class="divider" />
<!-- END postrow -->
<!-- IF S_QUICK_REPLY -->
	<!-- INCLUDE quickreply_editor.html -->
<!-- ENDIF -->
<!-- IF S_NUM_POSTS > 1 or PREVIOUS_PAGE -->
	<form id="viewtopic" method="post" action="{S_TOPIC_ACTION}">

	<fieldset class="display-options" style="margin-top: 0; ">
		<!-- IF PREVIOUS_PAGE --><a href="{PREVIOUS_PAGE}" class="left-box {S_CONTENT_FLOW_BEGIN}">{L_PREVIOUS}</a><!-- ENDIF -->
		<!-- IF NEXT_PAGE --><a href="{NEXT_PAGE}" class="right-box {S_CONTENT_FLOW_END}">{L_NEXT}</a><!-- ENDIF -->
		<!-- IF not S_IS_BOT -->
		<label>{L_DISPLAY_POSTS}: {S_SELECT_SORT_DAYS}</label>
		<label>{L_SORT_BY} {S_SELECT_SORT_KEY}</label> <label>{S_SELECT_SORT_DIR} <input type="submit" name="sort" value="{L_GO}" class="button2" /></label>
		<!-- ENDIF -->
	</fieldset>

	</form>
	<hr />
<!-- ENDIF -->

<div class="topic-actions">
	<div class="buttons">
	<!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->
		<div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->reply-icon<!-- ENDIF -->"><a href="{U_POST_REPLY_TOPIC}" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->"><span></span><!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED_SHORT}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF --></a></div>
	<!-- ENDIF -->
	</div>

	<!-- IF PAGINATION or TOTAL_POSTS -->
		<div class="pagination">
			{TOTAL_POSTS}
			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
		</div>
	<!-- ENDIF -->
</div>

<!-- INCLUDE jumpbox.html -->

<!-- IF S_TOPIC_MOD -->
	<form method="post" action="{S_MOD_ACTION}">
	<fieldset class="quickmod">
		<label for="quick-mod-select">{L_QUICK_MOD}:</label> {S_TOPIC_MOD} <input type="submit" value="{L_GO}" class="button2" />
		{S_FORM_TOKEN}
	</fieldset>
	</form>
<!-- ENDIF -->

<!-- IF S_DISPLAY_ONLINE_LIST -->
	<h3><!-- IF U_VIEWONLINE --><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a><!-- ELSE -->{L_WHO_IS_ONLINE}<!-- ENDIF --></h3>
	<p>{LOGGED_IN_USER_LIST}</p>
<!-- ENDIF -->

<!-- INCLUDE overall_footer.html -->
Что мы видим, в первую очередь, интересного? Что-то все цветное и загадочное...
Мда...тогда давайте во всем разбираться по порядку.
Что такого интересного мы замечаем в этом файле сразу ?
Ну, конечно, сразу - это зелененькие слова заключенные в такие вот маленькие стрелочки с двух сторон -
<!-- IF MODERATORS --> , <!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->, <!-- IF S_DISPLAY_SEARCHBOX --> и прочее...
Эти "умные" кусочки кода - условия...Это те самые условия, которые лучше нас знают о том, где и что брать и для кого эту информацию выводить...(ту, которая заключена в зону их влияния)...при этом условия эти всегда имеют начало и конец.
Спорить с этими "умными" закорючками бесполезно. Не переспоришь. Лучше ими умно управлять!!!
Этих условий много и писать подробно о назначении каждого - задача совсем другого материала и не сейчас...
Надо только помнить ГЛАВНОЕ ПРАВИЛО этих условий : любое условие вида (например) <!-- IF MODERATORS --> должно обязательно иметь свою вторую половинку - окончание своего действия (условия) - <!-- ENDIF -->
И любое количество условий в файлах HTML должны быть парными - начало и конец...
Правда есть небольшое отступление. Это еще один код, который обильно попадается в таких файлах. Это - <!-- ELSE -->. Дословно его значение можно перевести так - ИНАЧЕ, ЛИБО, В ЗАВИСИМОСТИ, ВОЗМОЖНО...
Помните - наличие такого кусочка кода говорит о том, что в этом месте возможен выбор условий или методов вывода информации в зависимости от... да от много.. от прав...от членства...от других условий, под которые попали эти (и такое бывает).
О самом важном в файлах HTML поговорили, а теперь начнем разбираться с каждым кусочком нашего
viewtopic_body.html

В самом верху открытого файла нас встречает файл-команда вывода шапки нашего форума, за которую отвечает файл overall_header.html.
А команда на показ шапки в нашем файле viewtopic_body.html выглядит так - <!-- INCLUDE overall_header.html -->.
Делаем вывод, что такой вид системных тегов - <!-- INCLUDE тут что-то написано.html --> и есть код на вывод в данном месте информации из другого стороннего файла.
Это можно назвать "вмуровыванием" одного файла в другой, в данном случае, в нами рассматриваемый файл viewtopic_body.html, происходит "вмуровывание" файла шапки overall_header.html.
И в самом низу нашего файла viewtopic_body.html есть еще один код <!-- INCLUDE overall_footer.html -->, который выводит нам через системный файл overall_footer.html "подвал" форума (самый его низ, который всегда сопровождает нас, как и шапка, по всему форуму).

Вот шапка нормального стандартного форума -
snap1068.jpg
А это "подвал" стандартного форума -
snap1067.jpg
Для сравнения:
"Шапка" сильно модифицированного форума -
Нестандартный вариант №01
snap1069.jpg
А это "подвал" сильно модифицированного форума
Нестандартный вариант №02
snap1070.jpg
Опускаемся ниже по файлу viewtopic_body.html и показав его очередную часть кода, будем описывать его предназначение.

- Вход в Модераторский раздел.

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

<!-- IF U_MCP --><p>[&nbsp;<a href="{U_MCP}">{L_MCP}</a>&nbsp;]</p><!-- ENDIF -->
snap1071.jpg
Нестандартный вариант №03
snap1074.jpg
Есть одно наблюдение...в том месте, где по стандарту должен находиться это блок, я практически его ни у кого не видел...все админы двигают этот кусочек туда, где он им удобней...это не смертельно...У меня он вообще удален, а вход в Модераторский раздел прилеплен к списку модераторов ниже названия темы...

- Название темы

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

<h2><a href="{U_VIEW_TOPIC}">{TOPIC_TITLE}</a></h2>
snap1072.jpg
Нестандартный вариант №04
snap1075.jpg
- Код блока вывода модераторов данного форума и естественно модераторов этой темы

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

<!-- IF MODERATORS -->
<p>
	<strong><!-- IF S_SINGLE_MODERATOR -->{L_MODERATOR}<!-- ELSE -->{L_MODERATORS}<!-- ENDIF -->:</strong> {MODERATORS}
</p>
<!-- ENDIF -->
snap1073.jpg
Нестандартный вариант №05
snap1077.jpg
- Код блока вывода, так называемых, ПРАВИЛ ФОРУМА (подфорума) , в котором открыта эта тема.

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

<!-- 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 -->
Через этот блок выводится именно та информация, которую вы забиваете в админке в самом низу в настройках каждой категории, форума или подфорума...
Несколько примеров:
snap1078.jpg
snap1079.jpg
snap1080.jpg
- Код блока кнопки "Ответить" и естественно, кнопки "Тема закрыта"

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

	<!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->
		<div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->reply-icon<!-- ENDIF -->"><a href="{U_POST_REPLY_TOPIC}" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->"><span></span><!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED_SHORT}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF --></a></div>
	<!-- ENDIF -->
	</div>
- Код блока функции "поиск по теме"

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

	<!-- IF S_DISPLAY_SEARCHBOX -->
		<div class="search-box">
			<form method="get" id="topic-search" action="{S_SEARCHBOX_ACTION}">
			<fieldset>
				<input class="inputbox search tiny"  type="text" name="keywords" id="search_keywords" size="20" value="{L_SEARCH_TOPIC}" onclick="if(this.value=='{LA_SEARCH_TOPIC}')this.value='';" onblur="if(this.value=='')this.value='{LA_SEARCH_TOPIC}';" />
				<input class="button2" type="submit" value="{L_SEARCH}" />
				{S_SEARCH_LOCAL_HIDDEN_FIELDS}
			</fieldset>
			</form>
		</div>
	<!-- ENDIF -->
- Код блока вывода количества сообщений в теме, количества страниц в теме и кнопочек перехода на другие страницы темы, если они есть (пагинация).

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

	<!-- IF PAGINATION or TOTAL_POSTS -->
		<div class="pagination">
			<!-- IF U_VIEW_UNREAD_POST and not S_IS_BOT --><a href="{U_VIEW_UNREAD_POST}">{L_VIEW_UNREAD_POST}</a> &bull; <!-- ENDIF -->{TOTAL_POSTS}
			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
		</div>
	<!-- ENDIF -->
И все три эти кусочка составляют вот такую графическую картинку...
snap1081.jpg
Код блока вывода созданного в теме опроса...отмечу особо - только вывода....

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

<!-- IF S_HAS_POLL -->
	<form method="post" action="{S_POLL_ACTION}">

	<div class="panel">
		<div class="inner"><span class="corners-top"><span></span></span>

		<div class="content">
			<h2>{POLL_QUESTION}</h2>
			<p class="author">{L_POLL_LENGTH}<!-- IF S_CAN_VOTE and L_POLL_LENGTH --><br /><!-- ENDIF --><!-- IF S_CAN_VOTE -->{L_MAX_VOTES}<!-- ENDIF --></p>

			<fieldset class="polls">
			<!-- BEGIN poll_option -->
				<dl class="<!-- IF poll_option.POLL_OPTION_VOTED -->voted<!-- ENDIF -->"<!-- IF poll_option.POLL_OPTION_VOTED --> title="{L_POLL_VOTED_OPTION}"<!-- ENDIF -->>
					<dt><!-- IF S_CAN_VOTE --><label for="vote_{poll_option.POLL_OPTION_ID}">{poll_option.POLL_OPTION_CAPTION}</label><!-- ELSE -->{poll_option.POLL_OPTION_CAPTION}<!-- ENDIF --></dt>
					<!-- IF S_CAN_VOTE --><dd style="width: auto;"><!-- IF S_IS_MULTI_CHOICE --><input type="checkbox" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ELSE --><input type="radio" name="vote_id[]" id="vote_{poll_option.POLL_OPTION_ID}" value="{poll_option.POLL_OPTION_ID}"<!-- IF poll_option.POLL_OPTION_VOTED --> checked="checked"<!-- ENDIF --> /><!-- ENDIF --></dd><!-- ENDIF -->
					<!-- IF S_DISPLAY_RESULTS --><dd class="resultbar"><div class="<!-- IF poll_option.POLL_OPTION_PCT < 20 -->pollbar1<!-- ELSEIF poll_option.POLL_OPTION_PCT < 40 -->pollbar2<!-- ELSEIF poll_option.POLL_OPTION_PCT < 60 -->pollbar3<!-- ELSEIF poll_option.POLL_OPTION_PCT < 80 -->pollbar4<!-- ELSE -->pollbar5<!-- ENDIF -->" style="width:{poll_option.POLL_OPTION_PERCENT};">{poll_option.POLL_OPTION_RESULT}</div></dd>
					<dd><!-- IF poll_option.POLL_OPTION_RESULT == 0 -->{L_NO_VOTES}<!-- ELSE -->{poll_option.POLL_OPTION_PERCENT}<!-- ENDIF --></dd><!-- ENDIF -->
				</dl>
			<!-- END poll_option -->

			<!-- IF S_DISPLAY_RESULTS -->
				<dl>
					<dt>&nbsp;</dt>
					<dd class="resultbar">{L_TOTAL_VOTES} : {TOTAL_VOTES}</dd>
				</dl>
			<!-- ENDIF -->

			<!-- IF S_CAN_VOTE -->
				<dl style="border-top: none;">
					<dt>&nbsp;</dt>
					<dd class="resultbar"><input type="submit" name="update" value="{L_SUBMIT_VOTE}" class="button1" /></dd>
				</dl>
			<!-- ENDIF -->

			<!-- IF not S_DISPLAY_RESULTS -->
				<dl style="border-top: none;">
					<dt>&nbsp;</dt>
					<dd class="resultbar"><a href="{U_VIEW_RESULTS}">{L_VIEW_RESULTS}</a></dd>
				</dl>
			<!-- ENDIF -->
			</fieldset>
		</div>
		<span class="corners-bottom"><span></span></span></div>
		{S_FORM_TOKEN}
		{S_HIDDEN_FIELDS}
	</div>
	</form>
	<hr />
<!-- ENDIF -->
Вот так он выглядит на ГУРУ...
b0e758f6fc37[1].jpg
С этого места в файле идут коды вывода самих сообщений в теме...

Код начала блока вывода сообщений...

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

<!-- BEGIN postrow -->
	<!-- IF postrow.S_FIRST_UNREAD --><a id="unread"></a><!-- ENDIF -->
Код, на котором заканчивается блок вывода сообщений -

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

		<span class="corners-bottom"><span></span></span></div>
	</div>

	<hr class="divider" />
<!-- END postrow -->


Теперь разберем на кусочки блок сообщений...Он состоит из трех частей -
1. Блок информации с названием темы (сообщения), автором и временем размещения данного сообщения.
2. Блок самого сообщения с содержимым сообщения, различной специнформации, с подписью автора данного сообщения, информацией о правке, информацией о вложениях.
3. Блок минипрофиля автора данного сообщения.


1. Блок информации с названием темы (сообщения), автором, временем размещения данного сообщения, информации о жалобе и премодерации.

Смотрим на все коды по порядку расположения их в файле viewtopic_body.html

Код отвечает за порядок вывода информации в блоке сообщения...

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

	<div id="p{postrow.POST_ID}" class="post <!-- IF postrow.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF --><!-- IF postrow.S_UNREAD_POST --> unreadpost<!-- ENDIF --><!-- IF postrow.S_POST_REPORTED --> reported<!-- ENDIF --><!-- IF postrow.S_ONLINE and not postrow.S_IGNORE_POST --> online<!-- ENDIF -->">
Код, который закрывает сообщение в том случае, если вами автор сообщения добавлен в функцию "Игнор"....

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

		<div class="postbody">
			<!-- IF postrow.S_IGNORE_POST -->
				<div class="ignore">{postrow.L_IGNORE_POST}</div>
			<!-- ELSE -->
Код вывода кнопок управления сообщением...каждая кнопка под своими "особыми" правами...

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

		<!-- IF not S_IS_BOT -->
			<!-- IF postrow.U_EDIT or postrow.U_DELETE or postrow.U_REPORT or postrow.U_WARN or postrow.U_INFO or postrow.U_QUOTE -->
				<ul class="profile-icons">
					<!-- IF postrow.U_EDIT --><li class="edit-icon"><a href="{postrow.U_EDIT}" title="{L_EDIT_POST}"><span>{L_EDIT_POST}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_DELETE --><li class="delete-icon"><a href="{postrow.U_DELETE}" title="{L_DELETE_POST}"><span>{L_DELETE_POST}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_REPORT --><li class="report-icon"><a href="{postrow.U_REPORT}" title="{L_REPORT_POST}"><span>{L_REPORT_POST}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_WARN --><li class="warn-icon"><a href="{postrow.U_WARN}" title="{L_WARN_USER}"><span>{L_WARN_USER}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_INFO --><li class="info-icon"><a href="{postrow.U_INFO}" title="{L_INFORMATION}"><span>{L_INFORMATION}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_QUOTE --><li class="quote-icon"><a href="{postrow.U_QUOTE}" title="{L_REPLY_WITH_QUOTE}"><span>{L_REPLY_WITH_QUOTE}</span></a></li><!-- ENDIF -->
				</ul>
			<!-- ENDIF -->
		<!-- ENDIF -->
Код вывода иконок сообщения, если они назначены....
Вот этих -

Изображение

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

			<h3 <!-- IF postrow.S_FIRST_ROW -->class="first"<!-- ENDIF -->><!-- IF postrow.POST_ICON_IMG --><img src="{T_ICONS_PATH}{postrow.POST_ICON_IMG}" width="{postrow.POST_ICON_IMG_WIDTH}" height="{postrow.POST_ICON_IMG_HEIGHT}" alt="" /> <!-- ENDIF --><a href="#p{postrow.POST_ID}">{postrow.POST_SUBJECT}</a></h3>
Код вывода значка "смотрено -не смотрено", информации об авторе сообщения и времени его создания...

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

			<p class="author"><!-- IF S_IS_BOT -->{postrow.MINI_POST_IMG}<!-- ELSE --><a href="{postrow.U_MINI_POST}">{postrow.MINI_POST_IMG}</a><!-- ENDIF -->{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; {postrow.POST_DATE} </p>
Код вывода информации о том, что на сообщение отправлена жалоба, о том, что сообщение нуждается в премодерации модераторами форума...

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

			<!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_REPORTED -->
				<p class="rules">
					<!-- IF postrow.S_POST_UNAPPROVED -->{UNAPPROVED_IMG} <a href="{postrow.U_MCP_APPROVE}"><strong>{L_POST_UNAPPROVED}</strong></a><br /><!-- ENDIF -->
					<!-- IF postrow.S_POST_REPORTED -->{REPORTED_IMG} <a href="{postrow.U_MCP_REPORT}"><strong>{L_POST_REPORTED}</strong></a><!-- ENDIF -->
				</p>
			<!-- ENDIF -->
2. Блок самого сообщения с содержимым сообщения, различной специнформации, с подписью автора данного сообщения, информацией о правке, информацией о вложениях.

Это самое главное и самое интересное - код выборки из базы данных самих текстов сообщений...

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

			<div class="content">{postrow.MESSAGE}</div>
Код вывода информации о вложениях в сообщение...
Здесь выводится все - и название файла, и его просмотр, если это ИЗО, и добавочное описание к вложению автором...
Ну и это сообщение тоже здесь - У вас нет необходимых прав для просмотра вложений в этом сообщении

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

			<!-- IF postrow.S_HAS_ATTACHMENTS -->
				<dl class="attachbox">
					<dt>{L_ATTACHMENTS}</dt>
					<!-- BEGIN attachment -->
						<dd>{postrow.attachment.DISPLAY_ATTACHMENT}</dd>
					<!-- END attachment -->
				</dl>
			<!-- ENDIF -->

			<!-- IF postrow.S_DISPLAY_NOTICE --><div class="rules">{L_DOWNLOAD_NOTICE}</div><!-- ENDIF -->
Код вывода информации о причине правки сообщения: кем, когда и сколько раз...

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

			<!-- IF postrow.S_DISPLAY_NOTICE --><div class="rules">{L_DOWNLOAD_NOTICE}</div><!-- ENDIF -->
			<!-- IF postrow.EDITED_MESSAGE or postrow.EDIT_REASON -->
				<div class="notice">{postrow.EDITED_MESSAGE}
					<!-- IF postrow.EDIT_REASON --><br /><strong>{L_REASON}:</strong> <em>{postrow.EDIT_REASON}</em><!-- ENDIF -->
				</div>
			<!-- ENDIF -->

			<!-- IF postrow.BUMPED_MESSAGE --><div class="notice"><br /><br />{postrow.BUMPED_MESSAGE}</div><!-- ENDIF -->
Код вывода подписей авторов сообщений, если подпись заполнена автором сообщения в его Личном центре....

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

			<!-- IF postrow.SIGNATURE --><div id="sig{postrow.POST_ID}" class="signature">{postrow.SIGNATURE}</div><!-- ENDIF -->
Часть первая и вторая может выглядеть у всех по разному.
Возможности управлять ее видом - не ограничены. Все зависит от желания и навыка.


Несколько примеров вывода самих сообщений
snap1082.jpg
snap1083.jpg
snap1084.jpg
snap1085.jpg
3. Блок минипрофиля автора данного сообщения.

Код вывода аватарок, никнейма и звания автора сообщения...

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

				<!-- IF postrow.POSTER_AVATAR -->
					<!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF --><br />
				<!-- ENDIF -->
				<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
			</dt>

			<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->
Код вывода различной статистической информации об авторе сообщения...тут каждый изгаляется как может...
Возможности не ограничены...

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

		<!-- IF postrow.POSTER_POSTS != '' --><dd><strong>{L_POSTS}:</strong> {postrow.POSTER_POSTS}</dd><!-- ENDIF -->
		<!-- IF postrow.POSTER_JOINED --><dd><strong>{L_JOINED}:</strong> {postrow.POSTER_JOINED}</dd><!-- ENDIF -->
		<!-- IF postrow.POSTER_FROM --><dd><strong>{L_LOCATION}:</strong> {postrow.POSTER_FROM}</dd><!-- ENDIF -->
Код вывода кнопок на личные сообщения, веб странички, джаббер, емейл, скайп и прочее...
Значки выводятся только в том случае, если соответствующие поля включены администрацией в админке и заполнены пользователем...
Каждая кнопка тоже находится под своим индивидуальным условием...

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

		<!-- IF not S_IS_BOT -->
		<!-- IF postrow.U_PM or postrow.U_EMAIL or postrow.U_WWW or postrow.U_MSN or postrow.U_ICQ or postrow.U_YIM or postrow.U_AIM or postrow.U_JABBER -->
			<dd>
				<ul class="profile-icons">
					<!-- IF postrow.U_PM --><li class="pm-icon"><a href="{postrow.U_PM}" title="{L_PRIVATE_MESSAGE}"><span>{L_PRIVATE_MESSAGE}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_EMAIL --><li class="email-icon"><a href="{postrow.U_EMAIL}" title="{L_SEND_EMAIL_USER} {postrow.POST_AUTHOR}"><span>{L_SEND_EMAIL_USER} {postrow.POST_AUTHOR}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_WWW --><li class="web-icon"><a href="{postrow.U_WWW}" title="{L_VISIT_WEBSITE}: {postrow.U_WWW}"><span>{L_WEBSITE}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_MSN --><li class="msnm-icon"><a href="{postrow.U_MSN}" onclick="popup(this.href, 550, 320); return false;" title="{L_MSNM}"><span>{L_MSNM}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_ICQ --><li class="icq-icon"><a href="{postrow.U_ICQ}" onclick="popup(this.href, 550, 320); return false;" title="{L_ICQ}"><span>{L_ICQ}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_YIM --><li class="yahoo-icon"><a href="{postrow.U_YIM}" onclick="popup(this.href, 780, 550); return false;" title="{L_YIM}"><span>{L_YIM}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_AIM --><li class="aim-icon"><a href="{postrow.U_AIM}" onclick="popup(this.href, 550, 320); return false;" title="{L_AIM}"><span>{L_AIM}</span></a></li><!-- ENDIF -->
					<!-- IF postrow.U_JABBER --><li class="jabber-icon"><a href="{postrow.U_JABBER}" onclick="popup(this.href, 550, 320); return false;" title="{L_JABBER}"><span>{L_JABBER}</span></a></li><!-- ENDIF -->
				</ul>
			</dd>
		<!-- ENDIF -->
		<!-- ENDIF -->
Код кнопки возврата на самый верх темы....

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

		<div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div>
На этом часть кода стандартного минипрофиля заканчивается...
Смотрятся минипрофили у всех по разному...есть правосторонние...есть левосторонние...

Несколько примеров минипрофилей -
snap1086.jpg
snap1087.jpg
snap1088.jpg
snap1089.jpg
Поехали дальше гулять по файлу viewtopic_body.html Осталось немного....

Код вывода формы быстрого ответа...

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

<!-- IF S_QUICK_REPLY -->
	<!-- INCLUDE quickreply_editor.html -->
<!-- ENDIF -->
Код блока вывода ссылок на "следующая" и "предыдущая" страницы темы и кнопочек выбора сортировки сообщений в теме...

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

<!-- IF S_NUM_POSTS > 1 or PREVIOUS_PAGE -->
	<form id="viewtopic" method="post" action="{S_TOPIC_ACTION}">

	<fieldset class="display-options" style="margin-top: 0; ">
		<!-- IF PREVIOUS_PAGE --><a href="{PREVIOUS_PAGE}" class="left-box {S_CONTENT_FLOW_BEGIN}">{L_PREVIOUS}</a><!-- ENDIF -->
		<!-- IF NEXT_PAGE --><a href="{NEXT_PAGE}" class="right-box {S_CONTENT_FLOW_END}">{L_NEXT}</a><!-- ENDIF -->
		<!-- IF not S_IS_BOT -->
		<label>{L_DISPLAY_POSTS}: {S_SELECT_SORT_DAYS}</label>
		<label>{L_SORT_BY} {S_SELECT_SORT_KEY}</label> <label>{S_SELECT_SORT_DIR} <input type="submit" name="sort" value="{L_GO}" class="button2" /></label>
		<!-- ENDIF -->
	</fieldset>
	</form>
	<hr />
<!-- ENDIF -->


А выглядит весь блок так...
95d7b713e93e[1].jpg
Код вывода кнопки "Ответить" и соответственно кнопки "Тема закрыта"...

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

	<div class="buttons">
	<!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->
		<div class="<!-- IF S_IS_LOCKED -->locked-icon<!-- ELSE -->reply-icon<!-- ENDIF -->"><a href="{U_POST_REPLY_TOPIC}" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->"><span></span><!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED_SHORT}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF --></a></div>
	<!-- ENDIF -->
	</div>
Код вывода кнопок пагинации...

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

	<!-- IF PAGINATION or TOTAL_POSTS -->
		<div class="pagination">
			{TOTAL_POSTS}
			<!-- IF PAGE_NUMBER --><!-- IF PAGINATION --> &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF --><!-- ENDIF -->
		</div>
	<!-- ENDIF -->
Вместе последние два куста кода выглядят так...
snap1092.jpg
Очень интересная часть файла...пример как один файл вмурован в другой...

В файл viewtopic_body.html вставлен другой исполняемый файл jumpbox.html со своими особыми правами и настройкой из админки. Файл jumpbox.html отвечает за быстрый переход в другие форумы или подфорумы с вплывающими менюшками выбора для перехода...

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

<!-- INCLUDE jumpbox.html -->


Выглядит это так -
snap1093.jpg
Код блока быстрых действий с сообщениями или темой, так называемые "Быстрые операции".
В основном виден только модераторам и пользователям с особыми правами на форуме.

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

<!-- IF S_TOPIC_MOD -->
	<form method="post" action="{S_MOD_ACTION}">
	<fieldset class="quickmod">
		<label for="quick-mod-select">{L_QUICK_MOD}:</label> {S_TOPIC_MOD} <input type="submit" value="{L_GO}" class="button2" />
		{S_FORM_TOKEN}
	</fieldset>
	</form>
<!-- ENDIF -->
Вот она -
snap1090.jpg
Код блока вывода информации о том, кто на форуме, а конкретно в этой, просматриваемой теме..

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

<!-- IF S_DISPLAY_ONLINE_LIST -->
	<h3><!-- IF U_VIEWONLINE --><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a><!-- ELSE -->{L_WHO_IS_ONLINE}<!-- ENDIF --></h3>
	<p>{LOGGED_IN_USER_LIST}</p>
<!-- ENDIF -->
Так все это выглядит -
snap1091.jpg
И в самом конце файла viewtopic_body.html вывод подвала форума, о чем уже писалось выше...

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

<!-- INCLUDE overall_footer.html -->
На этом все. Спасибо за внимание...

С уважением Пчелкин....

Вернуться в «Анонсы и поддержка модов для phpBB 3.0.x»