AHristich Опубликовано 4 марта, 2023 Поделиться Опубликовано 4 марта, 2023 (изменено) Пытаюсь использовать данный код (шаблон блока Лента тем) {{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')}} <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 топиков, но не могу понять как именно.Кто-нибудь подскажет решение? Изменено 4 марта, 2023 пользователем AHristich Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 4 марта, 2023 Поделиться Опубликовано 4 марта, 2023 $topic->$idField AHristich 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 5 марта, 2023 Автор Поделиться Опубликовано 5 марта, 2023 (изменено) Exception спасибо,конечно,за подсказку.Только не могу понять/разобраться что и где заменить,где именно использовать. Изменено 5 марта, 2023 пользователем AHristich Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 5 марта, 2023 Автор Поделиться Опубликовано 5 марта, 2023 Exception понял что куда,но это не совсем то что надо. Я так понимаю что в первом коде $id означает не id топика в таблице бд,а ,скажем так,порядковый номер .То есть,сначала выводится по порядку два топика (ipsGrid_span6) а потом остальные в колонку по четыре (ipsGrid_span3). Типа такого Спойлер Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 5 марта, 2023 Поделиться Опубликовано 5 марта, 2023 В первом примере $id - индекс массива, всё правильно, а для получения id можно использовать $topic->tid Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 5 марта, 2023 Автор Поделиться Опубликовано 5 марта, 2023 Desti во втором коде $id и подцепляется из массива первого кода.Проблема всего лишь одна- я ноль в рнр и т.п,как говорится лаю на такое Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 5 марта, 2023 Поделиться Опубликовано 5 марта, 2023 58 минут назад, AHristich сказал: Desti во втором коде $id и подцепляется из массива первого кода.Проблема всего лишь одна- я ноль в рнр и т.п,как говорится лаю на такое я не понимаю что ты хочешь Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AHristich Опубликовано 5 марта, 2023 Автор Поделиться Опубликовано 5 марта, 2023 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> и на сайте выглядет так Вот я и пытаюсь использовать подобный массив для шаблона forums/front/global/row Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 5 марта, 2023 Поделиться Опубликовано 5 марта, 2023 9 минут назад, AHristich сказал: Вот я и пытаюсь использовать подобный массив для шаблона forums/front/global/row так создай свой шаблон и передавай туда нужные переменные, в том числе $id Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 5 марта, 2023 Поделиться Опубликовано 5 марта, 2023 6 часов назад, AHristich сказал: во втором коде $id и подцепляется из массива первого кода. В "row" (во второй код) передается $topic, а не $id. $topic - это объект, у него есть поле tid. Ты его можешь получить напрямую, обращаясь к $topic->tid или накривую, обращаясь к статическому полю класса, в котором назначено поле базы для индекса ($topic::$databaseColumnId), как это сделано в "row". Но пока ты не научишься задавать правильные вопросы, ты будешь получать правильные ответы, которые, однако, не отвечают на твои вопросы. Donjuan 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.