Первое сообщение темы. First Post On Every Page

CabinetAdmin 03 фев 2013, 10:49 Сообщение

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

Изменения для клонов SUBSILVER2

Открываем шаблон posting_body.html, находим:

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

         <!-- IF S_LOCK_POST_ALLOWED -->
            <tr>
               <td><input type="checkbox" class="radio" name="lock_post"{S_LOCK_POST_CHECKED} /></td>
               <td class="gen">{L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</td>
            </tr>
         <!-- ENDIF -->
После найденного вставляем:

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

         <!-- IF S_FIRST_POST_SHOW_ALLOWED -->
            <tr>
               <td><input type="checkbox" class="radio" name="topic_first_post_show"{S_FIRST_POST_SHOW_CHECKED} /></td>
               <td class="gen">{L_FIRST_POST_SHOW}</td>
            </tr>
         <!-- ENDIF -->

Изменения для клонов PROSILVER

Открываем шаблон posting_editor.html, находим:

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

         <!-- IF S_LOCK_POST_ALLOWED -->
            <div><label for="lock_post"><input type="checkbox" name="lock_post" id="lock_post"{S_LOCK_POST_CHECKED} /> {L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</label></div>
         <!-- ENDIF -->
После найденного вставляем:

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

         <!-- IF S_FIRST_POST_SHOW_ALLOWED -->
            <div><label for="topic_first_post_show"><input type="checkbox" name="topic_first_post_show" id="topic_first_post_show"{S_FIRST_POST_SHOW_CHECKED} /> {L_FIRST_POST_SHOW} </label></div>
         <!-- ENDIF -->
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 03 фев 2013, 17:08 Сообщение

CabinetAdmin писал(а):Первое сообщение темы. First Post On Every Page
Так это по моему есть и в стандартной версии phpBB 3.0.11 .Или я ошибаюсь ?
А нету мода чтобы можно было выбирать не первое сообщение темы ,а любое другое ?
  • 0

CabinetAdmin 03 фев 2013, 17:12 Сообщение

romaamor писал(а):А нету мода чтобы можно было выбирать не первое сообщение темы ,а любое другое ?
Не видел такого.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 03 фев 2013, 17:17 Сообщение

CabinetAdmin писал(а):Не видел такого.
Понятно.Будем искать. :D
  • 0

CabinetAdmin 03 фев 2013, 17:23 Сообщение

На гуру мне такой мод на глаза не попадался.
Только зачем это? Можно ведь отредактировать первое сообщение, вставить туда то, что нужно выводить на каждой странице...
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

romaamor 03 фев 2013, 17:51 Сообщение

CabinetAdmin писал(а):Только зачем это? Можно ведь отредактировать первое сообщение, вставить туда то, что нужно выводить на каждой странице...
:shock: Таки - да. :drink:
  • 0

CabinetAdmin 23 май 2013, 19:20 Сообщение

Небольшое дополнение к модификации вывода первого сообщения на каждой странице темы.

Если вы достаточно хорошо разбираетесь в html и специфике phpbb вы можете задать первому сообщению свой стиль, убрать автора сообщения или просто задать своё цветовое оформление. Пример применения такой модификации можно посмотреть на нашем форуме в теме - Медали и награды для форума.

Чтобы запретить какой либо элемент к показу в первом закреплённом сообщении достаточно добавить условие:

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

<!-- IF postrow.FIRST_POST_SHOW and postrow.S_FIRST_ROW --> ... <!-- ENDIF -->
postrow.FIRST_POST_SHOW - говорит, что включена функция показа первого сообщения на каждой странице.
postrow.S_FIRST_ROW - то что функция применяется только к первому сообщению.


Например, нам не нужно выводить в первом сообщении кнопки: правка, цитата, информация и т.д.
Открываем шаблон viewtopic_body.html, находим код отвечающий за вывод кнопок:

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

		<!-- IF not S_IS_BOT -->
			<!-- IF postrow.U_QUOTE or postrow.U_INFO or postrow.U_DELETE or postrow.U_EDIT -->
				<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 -->
И оборачиваем его в:

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

<!-- IF postrow.FIRST_POST_SHOW and postrow.S_FIRST_ROW --><!-- ELSE -->

	код

<!-- ENDIF -->
Теперь в первом закреплённом сообщении не будут выводиться кнопки. Можно перед условием <!-- ELSE --> задать свой вариант вывода кнопок, без изображений например, текстовыми ссылками.


Для замены фона первого сообщения можно сделать так, найти:

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

<div id="p{postrow.POST_ID}" class="post <!-- IF postrow.S_ROW_COUNT is odd --> <!-- ELSE --> <!-- 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 id="p{postrow.POST_ID}" class="post <!-- IF postrow.S_ROW_COUNT is odd --> <!-- ELSE --> <!-- 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 -->" <!-- IF postrow.FIRST_POST_SHOW and postrow.S_FIRST_ROW -->style="background-color: #FFF;"<!-- ENDIF -->>
Т.е. мы добавили условие:

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

<!-- IF postrow.FIRST_POST_SHOW and postrow.S_FIRST_ROW -->style="background-color: #FFF;"<!-- ENDIF -->

Для стилей клонов subsilver2:

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

				<table width="100%" cellspacing="5">
				<tr>
					<td>
					<!-- IF postrow.S_POST_UNAPPROVED or postrow.S_POST_REPORTED -->
В найденном <table width="100%" cellspacing="5"> меняем на:

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

<table width="100%" cellspacing="5" <!-- IF postrow.FIRST_POST_SHOW and postrow.S_FIRST_ROW -->style="background-color: #FFF;"<!-- ENDIF -->>


Для тех кто хорошо владеет знаниями в phpbb, html и css могут дописать свой шаблон придав сообщению совершенно другую структуру.
Как это можно сделать?
Находим в шаблоне viewtopic_body.html:

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

<!-- BEGIN postrow -->
И после найденного добавляем наше условие со своим кодом:

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

<!-- IF postrow.FIRST_POST_SHOW and postrow.S_FIRST_ROW -->

	код

<!-- ELSE -->
Находим:

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

<!-- END postrow -->
И перед найденным вставляем:

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

<!-- ENDIF -->
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Похожие темы