• Разберем файл viewtopic_body.html на кусочки • 
Работаем только со стилем prosilver
При создании темы о вопросах для двигателя форумов phpBB ветки 3.0.Х название темы должно начинаться с короткого названия вопроса на русском языке с Большой буквы. Создание тем в данном подфоруме только не о модах. Темы о модах для ветки 3.0.Х в соседнем подфоруме. И помните - Вам тут никто ничего не должен. При малейшем "приказном" тоне в сообщениях - бан на вечно.

    Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 16:34

Работаем со стилем prosilver

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

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:13

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>

На этом часть кода стандартного минипрофиля заканчивается...
Смотрятся минипрофили у всех по разному...есть правосторонние...есть левосторонние...

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:15

Несколько примеров минипрофилей -


Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:18

Поехали дальше гулять по файлу 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 -->

А выглядит весь блок так...

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:20

Код вывода кнопки "Ответить" и соответственно кнопки "Тема закрыта"...
Код: выделить все
   <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 -->

Вместе последние два куста кода выглядят так...

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:22

Очень интересная часть файла...пример как один файл вмурован в другой...

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

Выглядит это так -

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:23

Код блока быстрых действий с сообщениями или темой, так называемые "Быстрые операции".
В основном виден только модераторам и пользователям с особыми правами на форуме.
Код: выделить все
<!-- 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 -->

Вот она -

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:24

Код блока вывода информации о том, кто на форуме, а конкретно в этой, просматриваемой теме..
Код: выделить все
<!-- 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 -->

Так все это выглядит -

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  Разберем файл viewtopic_body.html на кусочки

Сообщение Разместил Pthelovod 06 янв 2018, 17:25

И в самом конце файла viewtopic_body.html вывод подвала форума, о чем уже писалось выше...
Код: выделить все
<!-- INCLUDE overall_footer.html -->

На этом все. Спасибо за внимание...

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 
Предыдущая страница
Следующая страница

Вернуться в Вопросы и проблемы по движку phpBB версий до 3.0.Х