SenCos 0 Posted October 26, 2019 Share Posted October 26, 2019 I found this tutorial: I saw that this tutorial registers IDS in the forums in order to set different icons in each section, it is possible to do the same and create the "highlight" tool? Can I duplicate the "Make this topic special" tool and make it add a color highlight to the topic? as shown in this image: I try to duplicate it but seems that it requires a php change, and I know nothing about php... can I also edit the css it to follow this pattern? It is also complicated because if I edit the style of the "special" tool, topics from other sections will be affected. Link to comment Share on other sites More sharing options...
S!r.ReaDy 120 Posted October 26, 2019 Share Posted October 26, 2019 If you want highlight with yellow, you have to share the code or say what kind of problem is this. Link to comment Share on other sites More sharing options...
SenCos 0 Posted October 26, 2019 Author Share Posted October 26, 2019 (edited) is not a problem, I want to change or recreate the original IPB "special or featured" tool to look like that image, it's the original code. I'm doing the IPB download to pick up the code Edited October 26, 2019 by SenCos Link to comment Share on other sites More sharing options...
S!r.ReaDy 120 Posted October 26, 2019 Share Posted October 26, 2019 (edited) If i understadn correctly. The code below will show your featured or pinned post as yellow bg in the forumRow ( main forum page/category) PS: The code is not optimized but works. If you want to use it for a live forum,rewrite the if part to change the featured/pinned ipsDataItem only. Replace all in topicRow. {{$rowIds = array();}} {{foreach $rows as $row}} {{$idField = $row::$databaseColumnId;}} {{$rowIds[] = $row->$idField;}} {{endforeach}} {{if \count( $rows )}} {{$rowCount=0;}} {{foreach $rows as $row}} {{if $rowCount == 1 AND $advertisement = \IPS\core\Advertisement::loadByLocation( 'ad_forum_listing' )}} <li class="ipsDataItem"> {$advertisement|raw} </li> {{endif}} {{$rowCount++;}} {{$idField = $row::$databaseColumnId;}} {{if $row->mapped('moved_to')}} {{if $movedTo = $row->movedTo() AND $movedTo->container()->can('view')}} <li class="ipsDataItem"> <div class='ipsDataItem_icon ipsType_center ipsType_noBreak'> <i class="fa fa-arrow-left ipsType_large"></i> </div> <div class='ipsDataItem_main'> <h4 class='ipsDataItem_title ipsContained_container'> <span class='ipsType_break ipsContained'> <em><a href='{$movedTo->url()}' title='{lang="go_to_new_location"}'>{$row->mapped('title')}</a></em> </span> </h4> <div class='ipsDataItem_meta'> {{if isset( $row::$databaseColumnMap['status'] )}} {{$statusField = $row::$databaseColumnMap['status'];}} {{if $row->$statusField == 'merged'}} <p class='ipsType_reset ipsType_light ipsType_blendLinks'>{lang="topic_merged_to" sprintf="$movedTo->url(), $movedTo->mapped('title')"}</p> {{else}} <p class='ipsType_reset ipsType_light ipsType_blendLinks'>{lang="topic_moved_to" sprintf="$movedTo->container()->url(), $movedTo->container()->_title"}</p> {{endif}} {{else}} <p class='ipsType_reset ipsType_light ipsType_blendLinks'>{lang="topic_moved_to" sprintf="$movedTo->container()->url(), $movedTo->container()->_title"}</p> {{endif}} </div> </div> {{if $table->canModerate()}} <div class='ipsDataItem_modCheck'> <span class='ipsCustomInput'> <input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{{if $row->mapped('featured')}}unfeature{{endif}} {{if $row->mapped('pinned')}}unpin{{endif}} delete" data-state='{{if $row->mapped('pinned')}}pinned{{endif}} {{if $row->mapped('featured')}}featured{{endif}}'> <span></span> </span> </div> {{endif}} </li> {{endif}} {{else}} {{if $row->mapped('featured') || $row->mapped('pinned') }} <li class="ipsDataItemhover ipsDataItem_responsivePhoto hover {{if $row->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden()}}ipsModerated{{endif}}" data-rowID='{$row->$idField}'> {{if member.member_id}} <div class='ipsDataItem_icon ipsPos_top'> {{if $row->unread()}} <a href='{$row->url( 'getNewComment' )}' title='{lang="first_unread_post"}' data-ipsTooltip> <span class='ipsItemStatus'><i class="fa {{if \in_array( $row->$idField, $table->contentPostedIn )}}fa-star{{else}}fa-circle{{endif}}"></i></span> </a> {{else}} {{if \in_array( $row->$idField, $table->contentPostedIn )}} <span class='ipsItemStatus ipsItemStatus_read ipsItemStatus_posted'><i class="fa fa-star"></i></span> {{else}} {{endif}} {{endif}} </div> {{endif}} <div class='ipsDataItem_main'> <h4 class='ipsDataItem_title ipsContained_container'> {{if $row->locked()}} <span> <i class='ipsType_medium fa fa-lock' data-ipsTooltip title='{lang="topic_locked"}'></i> </span> {{if $row->topic_open_time && $row->topic_open_time > time()}} <span><strong class='ipsType_small ipsType_noBreak' data-ipsTooltip title='{lang="topic_unlocks_at" sprintf="\IPS\DateTime::ts( $row->topic_open_time )->relative(), \IPS\DateTime::ts( $row->topic_open_time )->localeTime( FALSE )"}'>{lang="topic_unlocks_at_short" sprintf="\IPS\DateTime::ts($row->topic_open_time)->relative(1)"}</strong> </span> {{endif}} {{elseif !$row->locked() && $row->topic_close_time && $row->topic_close_time > time()}} <span><strong class='ipsType_small ipsType_noBreak' data-ipsTooltip title='{lang="topic_locks_at" sprintf="\IPS\DateTime::ts( $row->topic_close_time )->relative(), \IPS\DateTime::ts( $row->topic_close_time )->localeTime( FALSE )"}'><i class='fa fa-clock-o'></i> {lang="topic_locks_at_short" sprintf="\IPS\DateTime::ts($row->topic_close_time)->relative(1)"}</strong> </span> {{endif}} {{if $row->mapped('poll')}} <span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_neutral" data-ipsTooltip title='{lang="topic_has_poll"}'><i class='fa fa-question'></i></span></span> {{endif}} {{if $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}} {{if $row->hidden() === -1}} <span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span> {{elseif $row->hidden() === 1}} <span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span> {{endif}} {{if $row->mapped('pinned')}} <span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span></span> {{endif}} {{if $row->mapped('featured')}} <span><span class=" ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span></span> {{endif}} {{endif}} {{if $row->prefix()}} <span>{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}</span> {{endif}} <span class='ipsType_break ipsContained'> <a href='{$row->url()}' class='' title='{{if $row->mapped('title')}}{$row->mapped('title')}{{else}}{lang="content_deleted"}{{endif}} {{if $row->canEdit()}}{lang="click_hold_edit"}{{endif}}' {{if $row->tableHoverUrl and $row->canView()}} data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5'{{endif}}{{if $row->canEdit()}} data-role="editableTitle"{{endif}}> <span> {{if $row->mapped('title') or $row->mapped('title') == 0}}{$row->mapped('title')}{{else}}<em class="ipsType_light">{lang="content_deleted"}</em>{{endif}} </span> </a> {{if $row->commentPageCount() > 1}} {$row->commentPagination( array(), 'miniPagination' )|raw} {{endif}} </span> </h4> <div class='ipsDataItem_meta ipsType_reset ipsType_light ipsType_blendLinks'> <span> {lang="byline_itemprop" htmlsprintf="$row->author()->link()"} </span>{datetime="$row->mapped('date')" lowercase="true"} {{if !\in_array( \IPS\Dispatcher::i()->controller, array( 'forums', 'index' ) )}} {lang="in"} <a href="{$row->container()->url()}">{$row->container()->_title}</a> {{endif}} {{if \count( $row->tags() )}} {template="tags" group="global" app="core" params="$row->tags(), true"} {{endif}} </div> </div> <ul class='ipsDataItem_stats'> {{foreach $row->stats(FALSE) as $k => $v}} <li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}}> <span class='ipsDataItem_stats_number'>{number="$v"}</span> <span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v"}</span> {{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}} <a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small ipsPos_right ipsResponsive_noFloat' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a> {{endif}} </li> {{endforeach}} </ul> <ul class='ipsDataItem_lastPoster ipsDataItem_withPhoto ipsType_blendLinks'> <li> {{if $row->mapped('num_comments')}} {template="userPhoto" app="core" group="global" params="$row->lastCommenter(), 'tiny'"} {{else}} {template="userPhoto" app="core" group="global" params="$row->author(), 'tiny'"} {{endif}} </li> <li> {{if $row->mapped('num_comments')}} {$row->lastCommenter()->link()|raw} {{else}} {$row->author()->link()|raw} {{endif}} </li> <li class="ipsType_light"> <a href='{$row->url( 'getLastComment' )}' title='{lang="get_last_post"}' class='ipsType_blendLinks'> {{if $row->mapped('last_comment')}}{datetime="$row->mapped('last_comment')"}{{else}}{datetime="$row->mapped('date')"}{{endif}} </a> </li> </ul> {{if $table->canModerate()}} <div class='ipsDataItem_modCheck'> <span class='ipsCustomInput'> <input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'> <span></span> </span> </div> {{endif}} </li> {{else}} <li class="ipsDataItem ipsDataItem_responsivePhoto {{if $row->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}} {{if $row->hidden()}}ipsModerated{{endif}}" data-rowID='{$row->$idField}'> {{if member.member_id}} <div class='ipsDataItem_icon ipsPos_top'> {{if $row->unread()}} <a href='{$row->url( 'getNewComment' )}' title='{lang="first_unread_post"}' data-ipsTooltip> <span class='ipsItemStatus'><i class="fa {{if \in_array( $row->$idField, $table->contentPostedIn )}}fa-star{{else}}fa-circle{{endif}}"></i></span> </a> {{else}} {{if \in_array( $row->$idField, $table->contentPostedIn )}} <span class='ipsItemStatus ipsItemStatus_read ipsItemStatus_posted'><i class="fa fa-star"></i></span> {{else}} {{endif}} {{endif}} </div> {{endif}} <div class='ipsDataItem_main'> <h4 class='ipsDataItem_title ipsContained_container'> {{if $row->locked()}} <span> <i class='ipsType_medium fa fa-lock' data-ipsTooltip title='{lang="topic_locked"}'></i> </span> {{if $row->topic_open_time && $row->topic_open_time > time()}} <span><strong class='ipsType_small ipsType_noBreak' data-ipsTooltip title='{lang="topic_unlocks_at" sprintf="\IPS\DateTime::ts( $row->topic_open_time )->relative(), \IPS\DateTime::ts( $row->topic_open_time )->localeTime( FALSE )"}'>{lang="topic_unlocks_at_short" sprintf="\IPS\DateTime::ts($row->topic_open_time)->relative(1)"}</strong> </span> {{endif}} {{elseif !$row->locked() && $row->topic_close_time && $row->topic_close_time > time()}} <span><strong class='ipsType_small ipsType_noBreak' data-ipsTooltip title='{lang="topic_locks_at" sprintf="\IPS\DateTime::ts( $row->topic_close_time )->relative(), \IPS\DateTime::ts( $row->topic_close_time )->localeTime( FALSE )"}'><i class='fa fa-clock-o'></i> {lang="topic_locks_at_short" sprintf="\IPS\DateTime::ts($row->topic_close_time)->relative(1)"}</strong> </span> {{endif}} {{if $row->mapped('poll')}} <span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_neutral" data-ipsTooltip title='{lang="topic_has_poll"}'><i class='fa fa-question'></i></span></span> {{endif}} {{if $row->hidden() === -1 || $row->hidden() === 1}} {{if $row->hidden() === -1}} <span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span> {{elseif $row->hidden() === 1}} <span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span> {{endif}} {{endif}} {{if $row->prefix()}} <span>{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}</span> {{endif}} <span class='ipsType_break ipsContained'> <a href='{$row->url()}' class='' title='{{if $row->mapped('title')}}{$row->mapped('title')}{{else}}{lang="content_deleted"}{{endif}} {{if $row->canEdit()}}{lang="click_hold_edit"}{{endif}}' {{if $row->tableHoverUrl and $row->canView()}} data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5'{{endif}}{{if $row->canEdit()}} data-role="editableTitle"{{endif}}> <span> {{if $row->mapped('title') or $row->mapped('title') == 0}}{$row->mapped('title')}{{else}}<em class="ipsType_light">{lang="content_deleted"}</em>{{endif}} </span> </a> {{if $row->commentPageCount() > 1}} {$row->commentPagination( array(), 'miniPagination' )|raw} {{endif}} </span> </h4> <div class='ipsDataItem_meta ipsType_reset ipsType_light ipsType_blendLinks'> <span> {lang="byline_itemprop" htmlsprintf="$row->author()->link()"} </span>{datetime="$row->mapped('date')" lowercase="true"} {{if !\in_array( \IPS\Dispatcher::i()->controller, array( 'forums', 'index' ) )}} {lang="in"} <a href="{$row->container()->url()}">{$row->container()->_title}</a> {{endif}} {{if \count( $row->tags() )}} {template="tags" group="global" app="core" params="$row->tags(), true"} {{endif}} </div> </div> <ul class='ipsDataItem_stats'> {{foreach $row->stats(FALSE) as $k => $v}} <li {{if $k == 'num_views'}}class='ipsType_light'{{elseif \in_array( $k, $row->hotStats )}}class="ipsDataItem_stats_hot" data-text='{lang="hot_item"}' data-ipsTooltip title='{lang="hot_item_desc"}'{{endif}}> <span class='ipsDataItem_stats_number'>{number="$v"}</span> <span class='ipsDataItem_stats_type'>{lang="{$k}" pluralize="$v"}</span> {{if ( $k == 'forums_comments' OR $k == 'answers_no_number' ) && \IPS\forums\Topic::modPermission( 'unhide', NULL, $row->container() ) AND $unapprovedComments = $row->mapped('unapproved_comments')}} <a href='{$row->url()->setQueryString( 'queued_posts', 1 )}' class='ipsType_warning ipsType_small ipsPos_right ipsResponsive_noFloat' data-ipsTooltip title='{lang="queued_posts_badge" pluralize="$row->topic_queuedposts"}'><i class='fa fa-warning'></i> <strong>{$unapprovedComments}</strong></a> {{endif}} </li> {{endforeach}} </ul> <ul class='ipsDataItem_lastPoster ipsDataItem_withPhoto ipsType_blendLinks'> <li> {{if $row->mapped('num_comments')}} {template="userPhoto" app="core" group="global" params="$row->lastCommenter(), 'tiny'"} {{else}} {template="userPhoto" app="core" group="global" params="$row->author(), 'tiny'"} {{endif}} </li> <li> {{if $row->mapped('num_comments')}} {$row->lastCommenter()->link()|raw} {{else}} {$row->author()->link()|raw} {{endif}} </li> <li class="ipsType_light"> <a href='{$row->url( 'getLastComment' )}' title='{lang="get_last_post"}' class='ipsType_blendLinks'> {{if $row->mapped('last_comment')}}{datetime="$row->mapped('last_comment')"}{{else}}{datetime="$row->mapped('date')"}{{endif}} </a> </li> </ul> {{if $table->canModerate()}} <div class='ipsDataItem_modCheck'> <span class='ipsCustomInput'> <input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'> <span></span> </span> </div> {{endif}} </li> {{endif}} {{endif}} {{endforeach}} {{endif}} Add in custom css: .ipsDataItemhover{ padding: 5px 10px; background: linear-gradient(to right, #f89140, #f89140)!important; margin-bottom: 8px; } Edited October 26, 2019 by S!r.ReaDy 1 Link to comment Share on other sites More sharing options...
Recommended Posts