Jump to content

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

Featured Replies

Posted
comment_115927

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

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

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

comment_115936

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}}

 

comment_115946

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


{{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}}

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

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

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


 

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

Итог:

ing.png

comment_115952

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

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

{$record->_title}

поставить

{$record->title}

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

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

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

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


{$record->_title}

поставить


{$record->title}

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

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

  • Author
comment_115954

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

 

comment_115955
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}}

 

comment_115956
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
comment_115957
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}}

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

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

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

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

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

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

comment_115959

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

Снимок.PNG

 

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

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

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

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

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

Снимок.PNG

 

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


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

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

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

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

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

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

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

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

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

comment_115965
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.