Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Верстка forumIndexTemplate.html

Опубликовано:

Моя версия IPB: 3.2.3

 

При верстке списка категорий и списка форумов особых трудностей не возникло, а вот при подходе к верстке списка тем форума, как то озадачился...

 

До селе не виданная мной структура верстки... Алгоритм выведения информации...

 

В списке форумов все понятно. Есть переменные, отвечающие за вывод той или иной информации ({$forum_data['topics']} и т.д.), а в списке тем, я так понимаю функция {parse striping="forumTable" classes="row1,row2"} отвечает за вытягивание информации с форума...но по какому принципу...как... и как править - понятия не имею...

 

Задачи:

 

post-49214-0-94631900-1329948023_thumb.jpg

 

1. Под № 1 - переместить в столбец - "Автор"

2. Под № 2 - добавить в конце названия в столбце "Название"

3. Под № 3 - переместить в столбец - "Ответов"

4. Под № 4 - переместить в столбец - "Обновление"

 

Таблица заголовка списка в нормальном виде, добавляются/удаляются столбцы, но это не часть таблицы с данными... т.е. еще надо добавить 1 столбец с данными (под столбцом "Обновление" нет данных)

Рекомендованные сообщения

Опубликовано:

{parse striping="forumTable" classes="row1,row2"}

Это не извлечение данных, это всего лишь чередовалка.

 

{parse striping="example" classes="дурак,не дурак"}
Вася {parse striping="example"}
Петя {parse striping="example"}
Саша {parse striping="example"}
Ваня {parse striping="example"}

====

Вася дурак
Петя не дурак
Саша дурак
Ваня не дурак

 

Вообще IPB построен по принципу MVC, и шаблоны никогда никаких данных нигде не запрашивают. Все необходимые данные передаются в шаблон при вызове. Например, список тем названного шаблона приходит в составе переменной $topic_data. С помощью конструкции:

<foreach loop="topics:$topic_data as $tid => $data">

выполняется проход по всем записям этого массива, при этом на каждый проход в $data оказывается определенный набор информации о теме.

 

Чтобы узнать, какой именно, можно на тестовом форуме вписать после этой строки строку:

<php>print_r($data); die;</php>

 

И при запросе страницы списка тем вместо него вы получите дамп содержимого перменной $data в формате списка "[имя поля] => 'значение_поля'". Выбирайте нужные поля и используйте в шаблонах как {$data['имя_поля']}.

Опубликовано:
  • Автор

Чтобы узнать, какой именно, можно на тестовом форуме вписать после этой строки строку:

<php>print_r($data); die;</php>

 

И при запросе страницы списка тем вместо него вы получите дамп содержимого переменной $data в формате списка "[имя поля] => 'значение_поля'". Выбирайте нужные поля и используйте в шаблонах как {$data['имя_поля']}.

 

Дамп получил... Но все равно не понятно, как переменную использовать в шаблоне списка тем...

                                        <!-- BEGIN TOPICS -->
<if test="hastopics:|:is_array( $topic_data ) AND count( $topic_data )">{parse striping="forumTable" classes="row1,row2"}
<foreach loop="topics:$topic_data as $tid => $data">
<if test="$data['pinned']">
<if test="$this->hasPinned=1">
</if><else />
<if test="$this->hasPinned">
<if test="$this->hasPinned=0">
</if>
<tr class='subhead altbar'>
<th scope='col' colspan='<if test="endannouncements:|:$this->memberData['is_mod'] == 1">6<else />5</if>'>
Темы форума
</th>
</tr>
</if>
</if>

{parse template="topic" group="forum" params="$data, $forum_data, $other_data, $inforum"}
				</foreach>
			<else />
				<tr> 
					<if test="notopicsspan:|:$this->memberData['is_mod'] == 1">
						<td colspan='6' class='no_messages'>
					<else />
						<td colspan='5' class='no_messages'>
					</if>
						{$this->lang->words['no_topics']}
					</td>
				</tr>
			</if>
		</table>

 

Для примера, каким образом вычленить "ответы" в отдельный столбик (в примере верстки стандартного шаблона).

Опубликовано:

Вот же строчка в коде.

{parse template="topic" group="forum" params="$data, $forum_data, $other_data, $inforum"}

Открываете шаблон topic (находится в той же группе, что и forumIndexTemplate), там и ответы, и просмотры, и ....

Опубликовано:
  • Автор

Вот же строчка в коде.

{parse template="topic" group="forum" params="$data, $forum_data, $other_data, $inforum"}

Открываете шаблон topic (находится в той же группе, что и forumIndexTemplate), там и ответы, и просмотры, и ....

 

Ахааа!!! шаблон topic!!! Я то по наивности искал в forumIndexTemplate...

Благодарю! Теперь все понятно.

 

Хотя там и написано {parse template="topic"... За три недели сложно успеть изучить все)

Изменено пользователем Cheshir

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.