Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка 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.

Как изменить шаблона блока приложения Pages?

Featured Replies

Posted

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

Безымянный1.jpg

Безымянный2.jpg

dd.png

Шаблон для горизонтальной ориентации

{{if !empty( $records ) }}

<h1 class='ipsType_pageTitle'>{$title}</h1>

<hr class='ipsHr'>
<section class='ipsType_normal ipsSpacer_both'>

{{foreach $records as $record}}

<article class='cCmsCategoryFeaturedEntry ipsClear ipsClearfix {{if $record->hidden()}}ipsModerated{{endif}}'>
	<header class='ipsPhotoPanel ipsPhotoPanel_notPhone ipsPhotoPanel_small ipsSpacer_bottom'>
		{template="userPhoto" app="core" params="$record->author()" group="global"}
		<div> 
			<h2 class='ipsType_pageTitle'>
				{{if $record->prefix()}}
					{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
				{{endif}}
				{{if $record->isFutureDate() || $record->mapped('pinned') || $record->mapped('featured') || $record->hidden() === -1 || $record->hidden() === 1}}
					{{if $record->isFutureDate()}}
					<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$record->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span>
					{{elseif $record->hidden() === -1}}
					<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$record->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
					{{elseif $record->hidden() === 1}}
					<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
					{{endif}}
					{{if $record->mapped('pinned')}}
					<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
					{{endif}}
					{{if $record->mapped('featured')}}
					<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
					{{endif}}
				{{endif}}
				
				<div class='ipsType_break ipsContained'>
					<a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}" class='ipsTruncate ipsTruncate_line'>
						{{if $record->unread()}}
						<span class='ipsItemStatus' data-ipsTooltip title="{lang="cms_unread_record"}"><i class="fa fa-circle"></i></span>
						{{endif}}
						{$record->_title}
					</a>
				</div>
			</h2>
			<p class='ipsType_light ipsType_reset'>
				{lang="cms_byline" htmlsprintf="$record->author()->link(), $record->container()->url(), $record->container()->_title"}{datetime="$record->record_publish_date"}
			</p>
		</div>
	</header>
	{{if count( $record->customFieldsForDisplay('listing') )}}
		<div class='ipsDataItem_meta'>
		{{foreach $record->customFieldsForDisplay('listing') as $fieldId => $fieldValue}}
			{{if $fieldValue}}
				{$fieldValue|raw}
			{{endif}}
		{{endforeach}}
		</div>
	{{endif}}
	<div {{if $record->record_image}}class='ipsColumns ipsColumns_collapsePhone'{{endif}}>
		{{if $record->record_image}}
			<div class='ipsColumn ipsColumn_medium'>
				<div class="cCmsRecord_image">
					<img class="ipsImage" src="{file="$record->_record_image_thumb" extension="cms_Records"}">
				</div>
			</div>
			<div class='ipsColumn ipsColumn_fluid'>
		{{endif}}

				<section class='ipsType_normal ipsType_richText ipsType_break ipsSpacer_bottom' data-ipsTruncate data-ipsTruncate-size='7 lines' data-ipsTruncate-type='remove'>
					{$record->truncated()|raw}
				</section>

				{{if count( $record->tags() )}}
					{template="tags" group="global" app="core" params="$record->tags()"}
				{{endif}}
				<ul class='ipsList_inline ipsClear'>
					<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>
					{{if $record::database()->options['reviews']}}
					<li>{template="rating" app="core" params="'small', $record->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of, $record->memberReviewRating()" group="global"}</li>
					{{endif}}
					{{if $record::database()->options['comments']}}<li><a href='{$record->url()}#comments' title='{lang="view_comments"}'><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$record->record_comments"}</a></li>{{endif}}
					<li class='ipsType_light'>{lang="num_views_with_number" pluralize="$record->record_views"}</li>
				</ul>

		{{if $record->record_image}}
			</div>
		{{endif}}
	</div>
	
</article>

{{endforeach}}

</section>

{{endif}}

 

Выше - шаблон для вывода самих баз данных, а если нужно подобное, но для последний тем форума, то такой вариант подойдет:


{{if !empty( $topics ) }}

<h1 class='ipsType_pageTitle'>{$title}</h1>

<hr class='ipsHr'>
<section class='ipsType_normal ipsSpacer_both'>

{{foreach $topics as $record}}

<article class='cCmsCategoryFeaturedEntry ipsClear ipsClearfix {{if $record->hidden()}}ipsModerated{{endif}}'>
	<header class='ipsPhotoPanel ipsPhotoPanel_notPhone ipsPhotoPanel_small ipsSpacer_bottom'>
		{template="userPhoto" app="core" params="$record->author()" group="global"}
		<div> 
			<h2 class='ipsType_pageTitle'>
				{{if $record->prefix()}}
					{template="prefix" group="global" app="core" params="$record->prefix( TRUE ), $record->prefix()"}
				{{endif}}
				
				<div class='ipsType_break ipsContained'>
					<a href="{$record->url()}" title="{lang="read_more_about" sprintf="$record->_title"}" class='ipsTruncate ipsTruncate_line'>
						{{if $record->unread()}}
						<span class='ipsItemStatus' data-ipsTooltip title="{lang="cms_unread_record"}"><i class="fa fa-circle"></i></span>
						{{endif}}
						{$record->_title}
					</a>
				</div>
			</h2>
			<p class='ipsType_light ipsType_reset'>
				{lang="cms_byline" htmlsprintf="$record->author()->link(), $record->container()->url(), $record->container()->_title"}{datetime="$record->mapped('date')"}
			</p>
		</div>
	</header>

	<div>
				<section class='ipsType_normal ipsType_richText ipsType_break ipsSpacer_bottom' data-ipsTruncate data-ipsTruncate-size='7 lines' data-ipsTruncate-type='remove'>
					{$record->truncated()|raw}
				</section>

				{{if count( $record->tags() )}}
					{template="tags" group="global" app="core" params="$record->tags()"}
				{{endif}}
				<ul class='ipsList_inline ipsClear'>
					<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>
				</ul>
	</div>
	
</article>

{{endforeach}}

</section>

{{endif}}

По вкусу можно подправить :)

2 минуты назад, rsergio сказал:

Выше - шаблон для вывода самих баз данных, а если нужно подобное, но для последний тем форума, то такой вариант подойдет:


 

По вкусу можно подправить :)

Итог:

ing.png

  • Author
4 минуты назад, rsergio сказал:

Ошибку не заметил - название темы то не выводится.

В шаблоне выше вместо


{$record->_title}

поставить


{$record->title}

(убрать подчеркивание)

rsergio, премного благодарен! Все работает как и требовалось! )

51 минуту назад, alexbavar сказал:

Не хватает только полей "кол-во комментариев", "кол-во просмотров" и превью картинки из темы. Как сделать?

 

{lang="num_views_with_number" pluralize="$record->record_views"} - количество просмотров

{lang="byline_nodate" htmlsprintf="$record->author()->link()"} - автор новости

{datetime="$record->record_publish_date"} - дата создания новости

{lang="num_comments" pluralize="$record->record_comments"} - количество комментариев, или так: 

{{if $record::database()->options['comments']}}<li><i class="fa fa-comment"></i><a href='{$record->url()}#comments' title='{lang="view_comments"}'>{lang="num_comments" pluralize="$record->record_comments"}</a></li>{{endif}}

 

54 минуты назад, alexbavar сказал:

Не хватает только полей "кол-во комментариев", "кол-во просмотров" и превью картинки из темы. Как сделать?

 

Чтобы вывести количество ответов и просмотров нужно в шаблоне после строки

<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>

(и перед </ul>) 
вставить

{{foreach $record->stats(FALSE) as $k => $v}}
	<li>
		<span class='ipsDataItem_stats_number'>{number="$v"}</span>
		<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v"}</span>
	</li>
{{endforeach}}

С картинкой не знаю как быть - оно в базах данных выделена отдельно.

  • Author
17 минут назад, rsergio сказал:

Чтобы вывести количество ответов и просмотров нужно в шаблоне после строки


<li><strong><a href='{$record->url()}' title="{lang="read_more_about" sprintf="$record->name"}">{lang="read_more"}</a></strong></li>

(и перед </ul>) 
вставить


{{foreach $record->stats(FALSE) as $k => $v}}
	<li>
		<span class='ipsDataItem_stats_number'>{number="$v"}</span>
		<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v"}</span>
	</li>
{{endforeach}}

С картинкой не знаю как быть - оно в базах данных выделена отдельно.

Спасибо, получилось!  А с картинкой надо думать, тоже важный момент.

41 минуту назад, alexbavar сказал:

А с картинкой надо думать, тоже важный момент.

Если найти пример как работать с картинками темы, то можно было бы вытащить первую картинку.

Что-то типа $record->images()

alexbavar, так создай поле в базе, выбери загрузчик файлов, поставь права доступа какие надо, задай ему айди, и ниже как на скрине сделай по инструкции.

Снимок.PNG

 

То есть тебе надо будет сделать ссылку типа

<img src=" {$record->customFieldDisplayByKey('ТУТ ТВОЙ АЙДИ', 'listing')|raw} ">

И таким образом можешь выводить ЛЮБОЕ поле созданное в этой базе. Посмотри зайди на мой сайт что в подписи, там все реализовано в страницах и доп полях) Команды, игры , кланы и тд.

  • Author
7 минут назад, andros0789 сказал:

alexbavar, так создай поле в базе, выбери загрузчик файлов, поставь права доступа какие надо, задай ему айди, и ниже как на скрине сделай по инструкции.

Снимок.PNG

 

То есть тебе надо будет сделать ссылку типа


<img src=" {$record->customFieldDisplayByKey('ТУТ ТВОЙ АЙДИ', 'listing')|raw} ">

И таким образом можешь выводить ЛЮБОЕ поле созданное в этой базе. Посмотри зайди на мой сайт что в подписи, там все реализовано в страницах и доп полях) Команды, игры , кланы и тд.

Так картинка то в теме на форуме, а не в базе данных Pages. :|

1 минуту назад, alexbavar сказал:

Так картинка то в теме на форуме, а не в базе данных Pages. :|

а не проще новости тут создавать, и сделать вывод их в определенный форум???куда проще вариант))

  • Author
Только что, andros0789 сказал:

а не проще новости тут создавать, и сделать вывод их в определенный форум???куда проще вариант))

Это само собой. Новости создаются, публикуются в форум, а как потом показать их сортировку в популярности, количеству комментариев и т.д.? Стандартные блоки страниц публикуют темы только в виде записей, а не статей.

22 минуты назад, alexbavar сказал:

Это само собой. Новости создаются, публикуются в форум, а как потом показать их сортировку в популярности, количеству комментариев и т.д.? Стандартные блоки страниц публикуют темы только в виде записей, а не статей.

В страницах, создать блок, выбираете плагин, и ниже в выпадающем меню то что вас интересует) и все)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

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.