Перейти к содержанию

ID топиков


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

Пытаюсь использовать данный код (шаблон блока Лента тем)

{{if !empty( $topics ) }}
	{{if \count($topics)}}
		{{foreach $topics as $id => $topic}}
			{{if $id == 0}}
				<ul class='ipsGrid ipsGrid_collapsePhone'>
					{template="row" group="global" app="forums" location="front" params="NULL, NULL, $topic, FALSE"}
				</ul>
			{{else}}
				{{if $id % 2}}
					<ul class='ipsGrid ipsGrid_collapsePhone'>
				{{endif}}
					{template="row" group="global" app="forums" location="front" params="NULL, NULL, $topic, FALSE"}
				{{if  $id % 2 == 0 or ( \count( $topics ) == ( $id + 1) )}}
					</ul>
				{{endif}}
			{{endif}}
		{{endforeach}}
	{{endif}}
{{endif}}

в котором подключается шаблон row

{{$idField = $topic::$databaseColumnId;}}
{{$iPosted = isset( $table->contentPostedIn ) ? $table->contentPostedIn : ( ( $table AND method_exists( $table, 'container' ) AND $topic->container() !== NULL ) ? $topic->container()->contentPostedIn() : array() );}}
<div class='{{if $id}}ipsGrid_span3{{else}}ipsGrid_span6{{endif}} ipsBox'>
{{$post = $topic->topic_firstpost ? \IPS\forums\Topic\Post::load($topic->topic_firstpost)->post : NULL;}}
{{if $post AND \preg_match( '#<fileStore.core_Attachment>\S+(?:jpg|jpeg|png|webp)#', $post, $image_url )}}
  <div>
  {{$image_url = \str_replace('<fileStore.core_Attachment>', \IPS\File::getClass('core_Attachment')->baseUrl(), $image_url[0]);}}
  {{if settings.lazy_load_enabled}}                 
  <a href="{$topic->url( "getPrefComment" )}" title="{lang="read_more_about" sprintf="$topic->_title"}" >
    <img class='ipsImage' src='{expression="\IPS\Text\Parser::blankImage()"}' alt='{wordbreak="$topic->_title"}' data-src='{file="$image_url" extension="core_Attachment"}'></a>
  {{else}}
  <a href="{$topic->url( "getPrefComment" )}" title="{lang="read_more_about" sprintf="$topic->_title"}" >
    <img class='ipsImage' alt='{wordbreak="$topic->_title"}' src='{file="$image_url" extension="core_Attachment"}'></a>                     
  {{endif}}
  </div>
{{endif}}
<div>
	<h4 class='ipsDataItem_title ipsContained_container'>			
	<span class='ipsType_break ipsContained'><a href='{$topic->url( "getPrefComment" )}' {{if $topic->canView()}}data-ipsHover data-ipsHover-target='{$topic->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5' {{endif}}>{$topic->mapped('title')}</a></span>
	</h4>
	
	<p class='ipsType_reset ipsType_medium ipsType_light'>
	<span><i class='fa fa-clock-o'></i> {datetime="$topic->mapped('date')" lowercase="true"}</span>
	</p>
	
	{{foreach $topic->stats(FALSE) as $k => $v}}
	<span {{if $k == 'num_views'}}class=''{{elseif \in_array( $k, $topic->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}}>
	<span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v" format="short"}</span>
	<span class='ipsDataItem_stats_number'>{number="$v" format="short"}</span>	
	{{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $topic->container() ) AND $unapprovedComments = $topic->mapped('unapproved_comments')}}
	&nbsp;<a href='{$topic->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small ipsPos_right ipsResponsive_noFloat' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$topic->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a>
	{{endif}}
	</span>
	{{endforeach}}
</div>
</div>

который должен выводить сначала два топика потом четыре (по аналогу Category 2 Column First Featured в Страницах).

Понимаю что нужно каким-то образом "подцепить" id топиков, но не могу понять как именно.Кто-нибудь подскажет решение?

Изменено пользователем AHristich
Ссылка на комментарий
Поделиться на другие сайты

Exception спасибо,конечно,за подсказку.Только не могу понять/разобраться что и где заменить,где именно использовать.

Изменено пользователем AHristich
Ссылка на комментарий
Поделиться на другие сайты

Exception понял что куда,но это не совсем то что надо. Я так понимаю что в первом коде $id означает не  id топика в таблице бд,а ,скажем так,порядковый номер .То есть,сначала выводится по порядку два топика (ipsGrid_span6) а потом остальные в колонку по  четыре (ipsGrid_span3).

Типа такого

Спойлер

100744826_2023-03-0511-38-27.png.510f4d55a6bb3f6f5d874c5ec04e0e55.png

 

Ссылка на комментарий
Поделиться на другие сайты

В первом примере $id - индекс массива, всё правильно, а для получения id можно использовать $topic->tid

Ссылка на комментарий
Поделиться на другие сайты

Desti во втором коде  $id и подцепляется из массива первого кода.Проблема всего лишь одна- я ноль в рнр и т.п,как говорится лаю на такое :) 

Ссылка на комментарий
Поделиться на другие сайты

58 минут назад, AHristich сказал:

Desti во втором коде  $id и подцепляется из массива первого кода.Проблема всего лишь одна- я ноль в рнр и т.п,как говорится лаю на такое :) 

я не понимаю что ты хочешь

Ссылка на комментарий
Поделиться на другие сайты

Exception в Страницах есть шаблон Category 2 Column First Featured ,в котором есть массив

Спойлер
	{{if \count($articles)}}
		{{foreach $articles as $id => $record}}
			{{if $id == 0}}
				<ul class='ipsGrid ipsGrid_collapsePhone'>
				{template="entry" app="cms" location="database" group="category_2_column_first_featured" params="$record, $database, 0"}
				</ul>
			{{else}}
				{{if $id % 2}}
					<ul class='ipsGrid ipsGrid_collapsePhone cmsCategory2col'>
				{{endif}}
				{template="entry" app="cms" location="database" group="category_2_column_first_featured" params="$record, $database, $id"}
				{{if  $id % 2 == 0 or ( \count( $articles ) == ( $id + 1) )}}
					</ul>
				{{endif}}
			{{endif}}
		{{endforeach}}
	{{endif}}

 

entry обернут в

<li class='{{if $id}}ipsGrid_span6{{else}}ipsGrid_span12{{endif}}'>
  ...
</li>

и на сайте выглядет так

976650778_2023-03-0511-38-27.png.42da32d04d3c56e07b8fe1c0bd6959bc.png

Вот я и пытаюсь использовать подобный массив для шаблона forums/front/global/row

Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, AHristich сказал:

Вот я и пытаюсь использовать подобный массив для шаблона forums/front/global/row

так создай свой шаблон и передавай туда нужные переменные, в том числе $id

Ссылка на комментарий
Поделиться на другие сайты

6 часов назад, AHristich сказал:

во втором коде  $id и подцепляется из массива первого кода.

В "row" (во второй код) передается $topic, а не $id. $topic - это объект, у него есть поле tid. Ты его можешь получить напрямую, обращаясь к $topic->tid или накривую, обращаясь к статическому полю класса, в котором назначено поле базы для индекса ($topic::$databaseColumnId), как это сделано в "row".

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

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

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...