Jump to content

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


alexbavar

Recommended Posts

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

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

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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


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

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

Link to comment
Share on other sites

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

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


 

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

Итог:

ing.png

Link to comment
Share on other sites

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

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

{$record->_title}

поставить

{$record->title}

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

Link to comment
Share on other sites

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

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

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


{$record->_title}

поставить


{$record->title}

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

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

Снимок.PNG

 

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

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

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

Link to comment
Share on other sites

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

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

Снимок.PNG

 

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


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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Ваша ссылка была автоматически строена.   Отображать как обычную ссылку

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...