this is what I have
<div class="ipsPageHeader ipsClearfix ipsSpacer_bottom">
{{if !$link->container()->open}}
<div class='ipsPad_half'>
<div class='ipsMessage ipsMessage_error'>
{lang="cat_disabled"}
</div>
</div>
{{endif}}
<div class='ipsClearfix'>
<div class='ipsPos_right ipsResponsive_noFloat ipsResponsive_hidePhone'>
{template="follow" app="core" group="global" params="'links', 'link', $link->id, $link->followersCount()"}
</div>
<div class="ipsPos_left links_thumb">
{template="thumbImage" group="global" app="links" params="$link->image, $link->title, 'medium', '', '', '', 'links_Thumbnail'"}
</div>
<h1 class='ipsType_pageTitle ipsContained_container'>
{{if $link->prefix() OR ( $link->canEdit() AND $link::canTag( NULL, $link->container() ) AND $link::canPrefix( NULL, $link->container() ) )}}
<span {{if !$link->prefix()}}class='ipsHide'{{endif}} {{if ( $link->canEdit() AND $link::canTag( NULL, $link->container() ) AND $link::canPrefix( NULL, $link->container() ) )}}data-editablePrefix{{endif}}>
{template="prefix" group="global" app="core" params="$link->prefix( TRUE ), $link->prefix()"}
</span>
{{endif}}
{{if $link->mapped('pinned') || $link->affiliate || $link->mapped('featured') || $link->hidden() === -1 || $link->hidden() === 1 || $link->mapped('locked')}}
{{if $link->mapped('locked')}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_negative" data-ipsTooltip title='{lang="locked"}'><i class='fa fa-lock'></i></span></span>
{{endif}}
{{if $link->hidden() === -1 and $link->paid == 0}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$link->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
{{elseif $link->hidden() === 1 and $link->paid == 0}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
{{elseif $link->hidden() === 1 and $link->paid == 1 and $link->payment_done == 0}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="links_payment_pending"}'><i class='fa fa-usd'></i></span></span>
{{endif}}
{{if $link->mapped('pinned')}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span></span>
{{endif}}
{{if $link->mapped('featured')}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span></span>
{{endif}}
{{if $link->affiliate}}
<span><span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="link_affiliate"}'><i class='fa fa-trophy'></i></span></span>
{{endif}}
{{endif}}
{{if $link->hits >= \IPS\Settings::i()->links_hotlink_threshold}}<span style="line-height: 24px;" class="ipsDataItem_stats_hot" data-text='{lang="hot_link"}' data-ipsTooltip title='{lang="hot_link_desc"}'></span> {{endif}}
{{if $link->canEdit()}}
<div class='ipsType_break ipsContained' data-controller="core.front.core.moderation">
<span data-role="editableTitle" title='{lang="click_hold_edit"}'>{$link->title}</span>
</div>
{{else}}
<div class='ipsType_break ipsContained'>
<span>{$link->title}</span>
</div>
{{endif}}
</h1>
<span class="ipsType_light ipsType_normal links_titleurl">{$link->url}</span>
<div class="ipsSpacer_top">
{{if count( $link->tags() ) OR ( $link->canEdit() AND $link::canTag( NULL, $link->container() ) )}}
{template="tags" group="global" app="core" params="$link->tags(), FALSE, FALSE, ( $link->canEdit() AND $link::canTag( NULL, $link->container() ) ) ? $link->url() : NULL"}
{{endif}}
</div>
{{if $link->container()->rating}}
<div class='links_rating ipsPos_left ipsType_light ipsResponsive_hidePhone'>
{$link->rating()|raw}
</div>
{{endif}}
</div>
</div>
<hr class='ipsHr'>
{{if $linkisement = \IPS\core\Advertisement::loadByLocation( 'ad_link_view' )}}
<div class='ipsBox'>
{$linkisement|raw}
</div>
{{endif}}
{{if !$link->paid}}
{{if $link->hidden() === 1 and $link->canUnhide()}}
<div class="ipsMessage ipsMessage_warning ipsSpacer_both">
<p class="ipsType_reset">{lang="link_pending_approval"}</p>
<br>
<ul class='ipsList_inline'>
<li><a href="{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}" class="ipsButton ipsButton_positive ipsButton_verySmall" title='{lang="approve_title_link"}'><i class="fa fa-check"></i> {lang="approve"}</a></li>
{{if $link->canDelete()}}
<li><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete' ) )}' data-confirm title='{lang="links_delete_title"}' class='ipsButton ipsButton_negative ipsButton_verySmall'><i class='fa fa-times'></i> {lang="delete"}</a></li>
{{endif}}
</ul>
</div>
{{endif}}
{{endif}}
{{if $link->paid == 1 and $link->payment_done == 0}}
{{if $link->hidden() === 1 and $link->canUnhide()}}
<div class="ipsMessage ipsMessage_warning ipsSpacer_both">
<p class="ipsType_reset">{lang="link_pending_payment_approval"}</p>
</div>
{{endif}}
{{endif}}
<div class='ipsColumns ipsColumns_collapsePhone ipsBox ipsPad'>
<article class='ipsColumn ipsColumn_fluid'>
<div class='ipsPhotoPanel ipsPhotoPanel_tiny ipsClearfix ipsSpacer_bottom'>
{template="userPhoto" app="core" group="global" params="$link->author(), 'tiny', $link->warningRef()"}
<div>
<p class='ipsType_reset ipsType_large ipsType_blendLinks'>
{$link->author()->link( $link->warningRef(), \IPS\Settings::i()->links_formatnames )|raw}
</p>
{{if $link->author()->member_id OR $link->canChangeAuthor()}}
<ul class='ipsList_inline'>
{{if $link->author()->member_id}}
<li><a href='{url="app=core&module=members&id={$link->author()->member_id}&do=content&type=links_link" base="front" seoTitles="$link->author()->members_seo_name" seoTemplate="profile_content"}'>{lang="find_users_links"}</a></li>
{{endif}}
{{if $link->canChangeAuthor()}}
<li><a href='{$link->url()->setQueryString( array( 'do' => 'changeAuthor' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="change_link_author"}" title='{lang="change_link_author_title"}'>{lang="change_link_author"}</a></li>
{{endif}}
{{if \IPS\Settings::i()->links_view_hitters AND ( $link->author()->member_id == \IPS\Member::loggedIn()->member_id OR $link->canEdit() or $link->canPin() or $link->canUnpin() or $link->canFeature() or $link->canUnfeature() or $link->canHide() or $link->canUnhide() or $link->canMove() or $link->canLock() or $link->canUnlock() or $link->canDelete() )}}
<li><a href='{$link->url()->setQueryString( array( 'do' => 'viewHitters' ) )}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="links_link_hitters"}" title='{lang="links_view_hitters_title"}'>{lang="links_view_hitters"}</a></li>
{{endif}}
</ul>
{{endif}}
</div>
</div>
<div class='ipsPad'>
<section class='ipsType_normal ipsClearfix'>
<div class="ipsClearfix">
<div class='ipsType_richText ipsType_break' itemprop='text' data-controller='core.front.core.lightboxedImages'>
{$link->description|raw}
</div>
</div>
<div class="ipsClearfix">
<div class='ipsType_richText ipsType_break' itemprop='text' data-controller='core.front.core.lightboxedImages'>
{{foreach $longCFields as $k => $v}}
<hr class='ipsHr ipsSpacer_top'>
<strong>{lang="links_{$k}"}</strong><br>
{$v|raw}</span>
{{endforeach}}
</div>
</div>
{{if \IPS\Settings::i()->links_showlinkto}}
<hr class='ipsHr ipsSpacer_top ipsSpacer_double'>
<h2 class="ipsFieldRow_section">{lang="links_linkto"}</h2>
<div class="ccLinksViewLinks form-control">
<div class="input-group">
<input id="bbcode" type="text" size="50" value='[url="{$link->url}"]{$link->title}[/url]'>
<span class="input-group-button"><button title="{lang="links_copy_to_clipboard"}" data-ipsTooltip class="clip btn" data-clipboard-action="copy" data-clipboard-target="#bbcode"><i class='fa fa-clipboard'></i></button></span>
</div>
<div class="input-group">
<input id="html" type="text" size="50" value='<a href="{$link->url}">{$link->title}</a>'>
<span class="input-group-button"><button title="{lang="links_copy_to_clipboard"}" data-ipsTooltip class="clip btn" data-clipboard-action="copy" data-clipboard-target="#html"><i class='fa fa-clipboard'></i></button></span>
</div>
</div>
{{endif}}
<hr class='ipsHr ipsSpacer_top'>
{{if $link->map( 620, 250 )}}
<div class='ipsPad_half ipsType_center ipsAreaBackground'>
{$link->map( 620, 250 )|raw}
</div>
<br>
{{$geo = json_decode( $link->location, TRUE );}}
<div class='ipsType_center'><i class="fa fa-map-marker" aria-hidden="true"></i> {$geo['city']} - {$geo['region']}, {lang="country-{$geo['country']}"}</div>
<hr class='ipsHr ipsSpacer_top'>
{{endif}}
{{if $link instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
<div class='ipsPos_right'>
{template="reputation" app="core" group="global" params="$link"}
</div>
{{endif}}
{{if $link->canEdit() or $link->canPin() or $link->canUnpin() or $link->canFeature() or $link->canUnfeature() or $link->canHide() or $link->canUnhide() or $link->canMove() or $link->canLock() or $link->canUnlock() or $link->canDelete()}}
<a href='#elFileActions_menu' id='elFileActions' class='ipsButton ipsButton_light ipsButton_verySmall' data-ipsMenu>{lang="link_actions"} <i class='fa fa-caret-down'></i></a>
<ul id='elFileActions_menu' class='ipsMenu ipsMenu_auto ipsHide'>
{{if $link->canEdit()}}
<li class='ipsMenu_item'><a href='{$link->url()->setQueryString( array( 'do' => 'edit' ) )}'>{lang="links_edit_details"}</a></li>
{{if settings.links_thumbnails_api !== 'upload'}}
<li class='ipsMenu_item'><a href='{$link->url()->setQueryString( array( 'do' => 'thumb' ) )}' data-confirm>{lang="links_refresh_thumbnail"}</a></li>
<li class='ipsMenu_item'><a href='{$link->url()->setQueryString( array( 'do' => 'manual' ) )}' data-ipsDialog data-ipsDialog-size="medium" data-ipsDialog-title="{lang="links_manaul_upload"}">{lang="links_manaul_upload"}</a></li>
{{endif}}
{{endif}}
{{if $link->canAffiliate()}}
{{if $link->affiliate}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'unaffiliate' ) )}' data-confirm>{lang="links_affiliate_remove"}</a></li>
{{else}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'affiliate' ) )}' data-confirm>{lang="links_affiliate_yes"}</a></li>
{{endif}}
{{endif}}
{{if $link->canFeature()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'feature' ) )}'>{lang="feature"}</a></li>
{{endif}}
{{if $link->canUnfeature()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unfeature' ) )}'>{lang="unfeature"}</a></li>
{{endif}}
{{if $link->canPin()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'pin' ) )}'>{lang="pin"}</a></li>
{{endif}}
{{if $link->canUnpin()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unpin' ) )}'>{lang="unpin"}</a></li>
{{endif}}
{{if $link->canHide()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'hide' ) )}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li>
{{endif}}
{{if $link->canUnhide() AND !$link->paid}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}'>{{if $link->hidden() === 1}}{lang="approve"}{{else}}{lang="unhide"}{{endif}}</a></li>
{{endif}}
{{if $link->canLock()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}'>{lang="lock"}</a></li>
{{endif}}
{{if $link->canUnlock()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unlock' ) )}'>{lang="unlock"}</a></li>
{{endif}}
{{if $link->canMove()}}
<li class='ipsMenu_item'><a href='{$link->url()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="move"}">{lang="move"}</a></li>
{{endif}}
{{if $link->canDelete()}}
<li class='ipsMenu_item'><a href='{$link->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete' ) )}' data-confirm>{lang="delete"}</a></li>
{{endif}}
</ul>
{{endif}}
{{if !\IPS\Member::loggedIn()->group['gbw_no_report'] }}
<a href='{$link->url('report')}' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="report_link"}" data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="report_submit_success"}" title="{lang="report_link"}" class='ipsType_medium'>{lang="report_link"}</a>
{{endif}}
</section>
</div>
</article>
<aside class='ipsColumn ipsColumn_wide'>
<div data-controller="links.front.links.view" data-linkId="{$link->id}">
<a {{if settings.links_linkview == 3}}target="_blank" {{endif}}{{if settings.links_nofollow}}rel="external nofollow" {{endif}}data-action="clickCounter" href='{$link->externalUrl}' title='{lang="links_visit_site"}' class='ipsButton ipsButton_normal ipsButton_fullWidth'>
<i class='fa fa-mouse-pointer'></i> {lang="links_visit_site"}
</a>
<br>
<h2 class='ipsType_sectionHead'>{lang="link_information"}</h2>
<ul class="ipsDataList ipsDataList_reducedSpacing ipsSpacer_top">
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="views"}</strong></span>
<span class="ipsDataItem_generic">{number="$link->views"}</span>
<meta itemprop='interactionCount' content='UserPageVisits:{$link->views}'>
</li>
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="links_hits"}</strong></span>
<span class="ipsDataItem_generic">{number="$link->hits"}</span>
</li>
{{if $link->container()->allow_comments}}
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="total_comments"}</strong></span>
<span class="ipsDataItem_generic">{number="$link->comments"}</span>
</li>
{{endif}}
{{if $link->container()->allow_reviews}}
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="total_reviews"}</strong></span>
<span class="ipsDataItem_generic">{number="$link->reviews"}</span>
</li>
{{endif}}
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="submitted"}</strong></span>
<span class="ipsDataItem_generic">{datetime="$link->added"}</span>
<meta itemprop='dateCreated' content='{expression="\IPS\DateTime::ts( $link->submitted )->format( 'Y-m-d' )"}'>
</li>
{{if $link->updated != $link->added}}
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="updated"}</strong></span>
<span class="ipsDataItem_generic">{datetime="$link->updated"}</span>
<meta itemprop='dateModified' content='{expression="\IPS\DateTime::ts( $link->updated )->format( 'Y-m-d' )"}'>
</li>
{{endif}}
{{if \IPS\Member::loggedIn()->hasAcpRestriction( 'core', 'members', 'membertools_ip' )}}
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="ip_address"}</strong></span>
<span class="ipsDataItem_generic">
{{if mb_strlen( $link->ipaddress ) <= 16 }}
<a href="{url="app=core&module=modcp&controller=modcp&tab=ip_tools&ip=$link->ipaddress" seoTemplate="modcp_ip_tools"}">{$link->ipaddress}</a>
{{else}}
<a href="{url="app=core&module=modcp&controller=modcp&tab=ip_tools&ip=$link->ipaddress" seoTemplate="modcp_ip_tools"}"><span data-ipsTooltip title='{$link->ipaddress}'>{truncate="$link->ipaddress" length="22"}</span></a>
{{endif}}
</span>
<meta itemprop='dateCreated' content='{expression="\IPS\DateTime::ts( $link->submitted )->format( 'Y-m-d' )"}'>
</li>
{{endif}}
{{foreach $cfields as $k => $v}}
<li class="ipsDataItem">
<span class="ipsDataItem_generic ipsDataItem_size4"><strong>{lang="links_{$k}"}</strong></span>
<span class="ipsDataItem_generic">{$v|raw}</span>
</li>
{{endforeach}}
</ul>
<div class='ipsResponsive_showPhone ipsResponsive_block ipsSpacer_top'>
{template="follow" app="core" group="global" params="'links', 'link', $link->id, $link->followers()->count( TRUE )"}
</div>
</div>
</aside>
</div>
{{if $prev || $next}}
<div class='ipsGrid ipsGrid_collapsePhone ipsPager ipsSpacer_top'>
{{if $prev !== NULL}}
<div class="ipsGrid_span6 ipsType_left ipsPager_prev">
<a href="{$prev->url()}" title="{lang="prev_link"}" rel="prev">
<span class="ipsPager_type">{lang="prev_link"}</span>
<span class="ipsPager_title ipsType_light ipsType_break">{wordbreak="$prev->mapped('title')"}</span>
</a>
</div>
{{else}}
<div class="ipsGrid_span6 ipsType_left ipsPager_prev">
<a href="{$link->container()->url()}" title="{lang="link_go_to_category" sprintf="$link->container()->_title"}" rel="up">
<span class="ipsPager_type">{lang="link_back_to_category"}</span>
<span class="ipsPager_title ipsType_light ipsType_break">{lang="$link->container()->_title" wordbreak="true"}</span>
</a>
</div>
{{endif}}
{{if $next !== NULL}}
<div class="ipsGrid_span6 ipsType_right ipsPager_next">
<a href="{$next->url()}" title="{lang="next_link"}" rel="next">
<span class="ipsPager_type">{lang="next_link"}</span>
<span class="ipsPager_title ipsType_light ipsType_break">{wordbreak="$next->mapped('title')"}</span>
</a>
</div>
{{else}}
<div class="ipsGrid_span6 ipsType_right ipsPager_next">
<a href="{$link->container()->url()}" title="{lang="link_go_to_category" sprintf="$link->container()->_title"}" rel="up">
<span class="ipsPager_type">{lang="link_back_to_category"}</span>
<span class="ipsPager_title ipsType_light ipsType_break">{lang="$link->container()->_title" wordbreak="true"}</span>
</a>
</div>
{{endif}}
</div>
<hr class='ipsHr'>
{{endif}}
{{if $link->displayShareLinks()}}
{{$count = \IPS\links\link::contentCount( $link->container() );}}
{{if $count == 1}}<br>{{endif}}
{template="sharelinks" app="core" group="global" params="$link"}
<br>
{{endif}}
{{if $commentsAndReviews}}
<a id="replies"></a>
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="user_feedback"}</h2>
{$commentsAndReviews|raw}
{{endif}}
{{if count( $otherLinks )}}
<div class='ipsBox ipsSpacer_top'>
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="links_display_others" sprintf="$link->container()->_title"}</h2>
<div class='ipsAreaBackground ipsPad_half'>
<div class='ipsCarousel ipsClearfix' data-ipsCarousel data-ipsCarousel-showDots>
<ul class='cDownloadsCarousel' data-role="carouselItems">
{{foreach $otherLinks as $idx => $myLink}}
{template="indexBlock" group="browse" params="$myLink"}
{{endforeach}}
</ul>
<span class='ipsCarousel_shadow ipsCarousel_shadowLeft'></span>
<span class='ipsCarousel_shadow ipsCarousel_shadowRight'></span>
<a href='#' class='ipsCarousel_nav ipsHide' data-action='prev'><i class='fa fa-chevron-left'></i></a>
<a href='#' class='ipsCarousel_nav ipsHide' data-action='next'><i class='fa fa-chevron-right'></i></a>
</div>
</div>
</div>
{{endif}}