Version 4.7.8
This commit is contained in:
1 parent
7b7404e741
commit
fd22d99e69
688 files changed
+19814
-10890
No files matched your search
@@ -131,7 +131,9 @@
|
||||
{{if $category->club()}}
|
||||
</div>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="browse" template_name="categoryButtons" template_data="$canSubmitFiles, $currentCategory=NULL, $showReadButtonOnMobile=FALSE" template_location="front" template_app="downloads"><![CDATA[
|
||||
<template template_group="browse" template_name="categoryButtons" template_data="$canSubmitFiles, $currentCategory=NULL, $showReadButtonOnMobile=FALSE" template_location="front" template_app="downloads"><![CDATA[{{if $currentCategory}}
|
||||
{template="viewChange" group="browse" params="$currentCategory" }
|
||||
{{endif}}
|
||||
{{if $canSubmitFiles}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
{{if $currentCategory OR $currentCategory = \IPS\downloads\Category::theOnlyNode()}}
|
||||
@@ -321,6 +323,98 @@
|
||||
</div>
|
||||
</div>
|
||||
</li>]]></template>
|
||||
<template template_group="browse" template_name="fileGrid" template_data="$file, $table" template_location="front" template_app="downloads"><![CDATA[<div class="ipsBox ipsBox--child ">
|
||||
{{if $table AND method_exists( $table, 'canModerate' ) AND $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$file->id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $file ) )"}" data-state='{{if $file->tableStates()}}{$file->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot_thumb, $file->name, 'medium', '', 'view_this', $file->url( 'getPrefComment' ), 'core_Attachment', '', true"}
|
||||
<h4 class='ipsDataItem_title ipsType_sectionHead ipsContained_container'>
|
||||
{{if $file->unread()}}
|
||||
<span><span class='ipsItemStatus ipsItemStatus_small' data-ipsTooltip title='{{if $file->unread() === -1}}{lang="new"}{{else}}{lang="updated"}{{endif}}'><i class="fa fa-circle"></i></span> </span>
|
||||
{{endif}}
|
||||
|
||||
{{if $file->mapped('pinned') || $file->mapped('featured') || $file->hidden() === -1 || $file->hidden() === 1}}
|
||||
{{if $file->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $file->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('pinned')}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('featured')}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
|
||||
{{if $file->prefix()}}
|
||||
<span>{template="prefix" group="global" app="core" params="$file->prefix( TRUE ), $file->prefix()"}</span>
|
||||
{{endif}}
|
||||
|
||||
<span class='ipsType_break ipsContained'><a href='{$file->url( "getPrefComment" )}' title='{lang="view_this_file" sprintf="$file->name"} {{if $file->canEdit()}}{lang="click_hold_edit"}{{endif}}' {{if $file->canEdit()}}data-role="editableTitle"{{endif}}>{$file->name}</a></span>
|
||||
</h4>
|
||||
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>
|
||||
{lang="byline_nodate" htmlsprintf="$file->author()->link( NULL, NULL, $file->isAnonymous() )"}
|
||||
{{if \IPS\Request::i()->app != 'downloads'}}
|
||||
{lang="in"} <a href="{$file->container()->url()}">{$file->container()->_title}</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size8'>
|
||||
|
||||
|
||||
<p class='ipsType_medium'><strong>{{if $file->updated == $file->submitted}}{lang="submitted"} {datetime="$file->submitted" lowercase="true"}{{else}}{lang="updated"} {datetime="$file->updated" lowercase="true"}{{endif}}</strong></p>
|
||||
</div>
|
||||
|
||||
<!-- Rating -->
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
{template="rating" group="global" location="front" app="core" params="'large', $file->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of, $file->memberReviewRating()"} <span class='ipsType_normal ipsType_light'>({lang="num_reviews" pluralize="$file->reviews"})</span>
|
||||
{{endif}}
|
||||
|
||||
<!-- Comments -->
|
||||
{{if $file->container()->bitoptions['comments']}}
|
||||
<p class='ipsType_normal'>
|
||||
{{if $file->comments}}
|
||||
<a href='{$file->url()->setQueryString( 'tab', 'comments' )->setFragment('replies')}'>
|
||||
{{endif}}
|
||||
<i class='fa fa-comment'></i> {lang="num_comments" pluralize="$file->comments"}
|
||||
{{if $file->comments}}
|
||||
</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
{{endif}}
|
||||
<!-- Price -->
|
||||
{{if \IPS\Application::appIsEnabled( 'nexus' ) and settings.idm_nexus_on}}
|
||||
<p class='ipsType_large ipsType_center ipsType_reset ipsSpacer_top ipsSpacer_half'>
|
||||
<span class='cFilePrice'>
|
||||
{{if $file->isPaid()}}
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{lang="file_free"}
|
||||
{{endif}}
|
||||
</span>
|
||||
</p>
|
||||
<!-- Purchase Count -->
|
||||
<p class='ipsType_normal'>
|
||||
{{if $file->isPaid() and !$file->nexus and \in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->purchaseCount()}}class='ipsType_light'{{endif}}><i class='fa fa-shopping-cart'></i> {lang="x_purchases" pluralize="$file->purchaseCount()"}</span>
|
||||
{{endif}}
|
||||
{{if !$file->isPaid() or \in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->downloads}}class='ipsType_light'{{endif}}><i class='fa fa-arrow-circle-down'></i> {lang="num_downloads" pluralize="$file->downloads"}</span>
|
||||
{{endif}}
|
||||
</p>
|
||||
<!-- Tags -->
|
||||
{{if \count( $file->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$file->tags(), TRUE"}
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</div>]]></template>
|
||||
<template template_group="browse" template_name="index" template_data="$featured, $new, $rated, $downloaded" template_location="front" template_app="downloads"><![CDATA[<div class="ipsPageHeader ipsClearfix ipsFlex ipsFlex-ai:center ipsFlex-jc:between sm:ipsFlex-fd:column sm:ipsFlex-ai:stretch ipsMargin_bottom sm:ipsMargin:none">
|
||||
<h1 class="ipsType_pageTitle">{lang="downloads"}</h1>
|
||||
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsFlex-flex:11 ipsMargin_bottom:none sm:ipsMargin_bottom sm:ipsMargin_top:half">
|
||||
@@ -509,101 +603,170 @@
|
||||
{lang="submit_first_file"}</a>
|
||||
{{endif}}
|
||||
</div>]]></template>
|
||||
<template template_group="browse" template_name="rows" template_data="$table, $headers, $files" template_location="front" template_app="downloads"><![CDATA[{{if \count( $files )}}
|
||||
{{foreach $files as $file}}
|
||||
<li class='ipsDataItem {{if $file->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $file, 'tableClass' ) && $file->tableClass()}}ipsDataItem_{$file->tableClass()}{{endif}} {{if $file->hidden()}}ipsModerated{{endif}}' data-ipsLazyLoad>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size3 ipsPos_top'>
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot_thumb, $file->name, 'medium', '', 'view_this', $file->url( 'getPrefComment' ), 'core_Attachment', '', true"}
|
||||
<template template_group="browse" template_name="rows" template_data="$table, $headers, $files" template_location="front" template_app="downloads"><![CDATA[
|
||||
{{if \count( $files )}}
|
||||
{{if \IPS\downloads\Category::getMemberView() == 'grid'}}
|
||||
<div class="ipsFluidGrid ipsFluidGrid--downloads">
|
||||
{{foreach $files as $file}}
|
||||
<li>
|
||||
<div class='ipsMargin_bottom:half'>
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot_thumb, $file->name, 'large', '', '', $file->url( 'getPrefComment' )"}
|
||||
</div>
|
||||
{{$price = NULL;}}
|
||||
{{if \IPS\Application::appIsEnabled( 'nexus' ) and settings.idm_nexus_on}}
|
||||
<p class='ipsType_large ipsType_center ipsType_reset ipsSpacer_top ipsSpacer_half'>
|
||||
<span class='cFilePrice'>
|
||||
{{if $file->isPaid()}}
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{lang="file_free"}
|
||||
<div class="cWidgetPrice ipsType_light ipsType_semiBold">
|
||||
{{if $file->isPaid()}}
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{endif}}
|
||||
</span>
|
||||
</p>
|
||||
{{else}}
|
||||
{lang="file_free_feed"}
|
||||
{{endif}}
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<h4 class='ipsDataItem_title ipsType_sectionHead ipsContained_container'>
|
||||
{{if $file->unread()}}
|
||||
<span><span class='ipsItemStatus ipsItemStatus_small' data-ipsTooltip title='{{if $file->unread() === -1}}{lang="new"}{{else}}{lang="updated"}{{endif}}'><i class="fa fa-circle"></i></span> </span>
|
||||
<div class='ipsFlex ipsFlex-jc:between ipsGap:1'>
|
||||
<div class='ipsType_semiBold ipsType_normal ipsType_break ipsContained'><a href="{$file->url( "getPrefComment" )}" title='{lang="view_this_file" sprintf="$file->name"}'>{$file->name}</a></div>
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
<div class='ipsFlex-flex:00'>
|
||||
{template="rating" group="global" location="front" app="core" params="'small', $file->rating, \IPS\Settings::i()->reviews_rating_out_of"}
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
{{if $file->mapped('pinned') || $file->mapped('featured') || $file->hidden() === -1 || $file->hidden() === 1}}
|
||||
{{if $file->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $file->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('pinned')}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('featured')}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
|
||||
{{if $file->prefix()}}
|
||||
<span>{template="prefix" group="global" app="core" params="$file->prefix( TRUE ), $file->prefix()"}</span>
|
||||
{{endif}}
|
||||
|
||||
<span class='ipsType_break ipsContained'><a href='{$file->url( "getPrefComment" )}' title='{lang="view_this_file" sprintf="$file->name"} {{if $file->canEdit()}}{lang="click_hold_edit"}{{endif}}' {{if $file->canEdit()}}data-role="editableTitle"{{endif}}>{$file->name}</a></span>
|
||||
</h4>
|
||||
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>
|
||||
{lang="byline_nodate" htmlsprintf="$file->author()->link( NULL, NULL, $file->isAnonymous() )"}
|
||||
{{if \IPS\Request::i()->app != 'downloads'}}
|
||||
{lang="in"} <a href="{$file->container()->url()}">{$file->container()->_title}</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
<div class='ipsType_medium ipsType_richText ipsType_break ipsSpacer_top' data-ipsTruncate data-ipsTruncate-type="remove" data-ipsTruncate-size="2 lines">
|
||||
</div>
|
||||
<div class='ipsType_richText ipsType_break ipsMargin_bottom:half' data-ipsTruncate data-ipsTruncate-type="remove" data-ipsTruncate-size="2 lines">
|
||||
{$file->truncated()|raw}
|
||||
</div>
|
||||
|
||||
<p class='ipsType_normal'>
|
||||
{{if $file->isPaid() and !$file->nexus and \in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->purchaseCount()}}class='ipsType_light'{{endif}}><i class='fa fa-shopping-cart'></i> {lang="x_purchases" pluralize="$file->purchaseCount()"}</span>
|
||||
{{endif}}
|
||||
{{if !$file->isPaid() or \in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->downloads}}class='ipsType_light'{{endif}}><i class='fa fa-arrow-circle-down'></i> {lang="num_downloads" pluralize="$file->downloads"}</span>
|
||||
{{endif}}
|
||||
</p>
|
||||
|
||||
{{if \count( $file->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$file->tags(), TRUE"}
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size8'>
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
{template="rating" group="global" location="front" app="core" params="'large', $file->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of, $file->memberReviewRating()"} <span class='ipsType_normal ipsType_light'>({lang="num_reviews" pluralize="$file->reviews"})</span>
|
||||
{{endif}}
|
||||
{{if $file->container()->bitoptions['comments']}}
|
||||
<p class='ipsType_normal'>
|
||||
{{if $file->comments}}
|
||||
<a href='{$file->url()->setQueryString( 'tab', 'comments' )->setFragment('replies')}'>
|
||||
{{endif}}
|
||||
<i class='fa fa-comment'></i> {lang="num_comments" pluralize="$file->comments"}
|
||||
{{if $file->comments}}
|
||||
</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
{{endif}}
|
||||
<p class='ipsType_medium'><strong>{{if $file->updated == $file->submitted}}{lang="submitted"} {datetime="$file->submitted" lowercase="true"}{{else}}{lang="updated"} {datetime="$file->updated" lowercase="true"}{{endif}}</strong></p>
|
||||
</div>
|
||||
{{if $table AND method_exists( $table, 'canModerate' ) AND $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$file->id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $file ) )"}" data-state='{{if $file->tableStates()}}{$file->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
<div class='ipsFlex ipsFlex-ai:center ipsFlex-fw:wrap ipsFlex-jc:between ipsGap:1'>
|
||||
<div class='ipsFlex-flex:11 ipsType_light ipsType_medium ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$file->author()->link( NULL, NULL, $file->isAnonymous() )"}</div>
|
||||
<div>
|
||||
<div class='ipsFlex ipsFlex-ai:center ipsGap:4 ipsGap_row:2 ipsType_light'>
|
||||
{{if $file->isPaid() and !$file->nexus and \in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->purchaseCount()}}class='ipsType_light'{{endif}} title='{lang="idm_purchases"}' data-ipsTooltip><i class='fa fa-shopping-cart'></i> {$file->purchaseCount()}</span>
|
||||
{{endif}}
|
||||
{{if !$file->isPaid() or \in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->downloads}}class='ipsType_light'{{endif}} title='{lang="downloads"}' data-ipsTooltip><i class='fa fa-download'></i> {number="$file->downloads"}</span>
|
||||
{{endif}}
|
||||
{{if $file->container()->bitoptions['comments']}}<span {{if !$file->comments}}class='ipsType_light'{{endif}} title='{lang="total_comments"}' data-ipsTooltip><i class='fa fa-comments-o'></i> {$file->comments}</span>{{endif}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</div>
|
||||
{{else}}
|
||||
{{foreach $files as $file}}
|
||||
{template="tableRow" group="browse" app="downloads" params="$file, $table"}
|
||||
{{endforeach}}
|
||||
{{endif}}
|
||||
{{endif}}]]></template>
|
||||
<template template_group="browse" template_name="tableRow" template_data="$file, $table" template_location="front" template_app="downloads"><![CDATA[<li class='ipsDataItem {{if $file->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $file, 'tableClass' ) && $file->tableClass()}}ipsDataItem_{$file->tableClass()}{{endif}} {{if $file->hidden()}}ipsModerated{{endif}}' data-ipsLazyLoad>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size3 ipsPos_top'>
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot_thumb, $file->name, 'medium', '', 'view_this', $file->url( 'getPrefComment' ), 'core_Attachment', '', true"}
|
||||
{{if \IPS\Application::appIsEnabled( 'nexus' ) and settings.idm_nexus_on}}
|
||||
<p class='ipsType_large ipsType_center ipsType_reset ipsSpacer_top ipsSpacer_half'>
|
||||
<span class='cFilePrice'>
|
||||
{{if $file->isPaid()}}
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{lang="file_free"}
|
||||
{{endif}}
|
||||
</span>
|
||||
</p>
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<h4 class='ipsDataItem_title ipsType_sectionHead ipsContained_container'>
|
||||
{{if $file->unread()}}
|
||||
<span><span class='ipsItemStatus ipsItemStatus_small' data-ipsTooltip title='{{if $file->unread() === -1}}{lang="new"}{{else}}{lang="updated"}{{endif}}'><i class="fa fa-circle"></i></span> </span>
|
||||
{{endif}}
|
||||
|
||||
{{if $file->mapped('pinned') || $file->mapped('featured') || $file->hidden() === -1 || $file->hidden() === 1}}
|
||||
{{if $file->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $file->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('pinned')}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('featured')}}
|
||||
<span><span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
|
||||
{{if $file->prefix()}}
|
||||
<span>{template="prefix" group="global" app="core" params="$file->prefix( TRUE ), $file->prefix()"}</span>
|
||||
{{endif}}
|
||||
|
||||
<span class='ipsType_break ipsContained'><a href='{$file->url( "getPrefComment" )}' title='{lang="view_this_file" sprintf="$file->name"} {{if $file->canEdit()}}{lang="click_hold_edit"}{{endif}}' {{if $file->canEdit()}}data-role="editableTitle"{{endif}}>{$file->name}</a></span>
|
||||
</h4>
|
||||
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>
|
||||
{lang="byline_nodate" htmlsprintf="$file->author()->link( NULL, NULL, $file->isAnonymous() )"}
|
||||
{{if \IPS\Request::i()->app != 'downloads'}}
|
||||
{lang="in"} <a href="{$file->container()->url()}">{$file->container()->_title}</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
<div class='ipsType_medium ipsType_richText ipsType_break ipsSpacer_top' data-ipsTruncate data-ipsTruncate-type="remove" data-ipsTruncate-size="2 lines">
|
||||
{$file->truncated()|raw}
|
||||
</div>
|
||||
|
||||
<p class='ipsType_normal'>
|
||||
{{if $file->isPaid() and !$file->nexus and \in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->purchaseCount()}}class='ipsType_light'{{endif}}><i class='fa fa-shopping-cart'></i> {lang="x_purchases" pluralize="$file->purchaseCount()"}</span>
|
||||
{{endif}}
|
||||
{{if !$file->isPaid() or \in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->downloads}}class='ipsType_light'{{endif}}><i class='fa fa-arrow-circle-down'></i> {lang="num_downloads" pluralize="$file->downloads"}</span>
|
||||
{{endif}}
|
||||
</p>
|
||||
|
||||
{{if \count( $file->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$file->tags(), TRUE"}
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size8'>
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
{template="rating" group="global" location="front" app="core" params="'large', $file->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of, $file->memberReviewRating()"} <span class='ipsType_normal ipsType_light'>({lang="num_reviews" pluralize="$file->reviews"})</span>
|
||||
{{endif}}
|
||||
{{if $file->container()->bitoptions['comments']}}
|
||||
<p class='ipsType_normal'>
|
||||
{{if $file->comments}}
|
||||
<a href='{$file->url()->setQueryString( 'tab', 'comments' )->setFragment('replies')}'>
|
||||
{{endif}}
|
||||
<i class='fa fa-comment'></i> {lang="num_comments" pluralize="$file->comments"}
|
||||
{{if $file->comments}}
|
||||
</a>
|
||||
{{endif}}
|
||||
</p>
|
||||
{{endif}}
|
||||
<p class='ipsType_medium'><strong>{{if $file->updated == $file->submitted}}{lang="submitted"} {datetime="$file->submitted" lowercase="true"}{{else}}{lang="updated"} {datetime="$file->updated" lowercase="true"}{{endif}}</strong></p>
|
||||
</div>
|
||||
{{if $table AND method_exists( $table, 'canModerate' ) AND $table->canModerate()}}
|
||||
<div class='ipsDataItem_modCheck'>
|
||||
<span class='ipsCustomInput'>
|
||||
<input type='checkbox' data-role='moderation' name="moderate[{$file->id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $file ) )"}" data-state='{{if $file->tableStates()}}{$file->tableStates()}{{endif}}'>
|
||||
<span></span>
|
||||
</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
</li>]]></template>
|
||||
<template template_group="browse" template_name="viewChange" template_data="$currentCategory, $hideMobile=FALSE" template_location="front" template_app="downloads"><![CDATA[{{if settings.idm_default_view_choose and member.member_id}}
|
||||
{{$chosen = \IPS\downloads\Category::getMemberView();}}
|
||||
<li>
|
||||
<ul class='ipsButton_split'>
|
||||
<li>
|
||||
<a href='{$currentCategory->url()->setQueryString("do", "setMethod")->setQueryString("method","table")->csrf()}' class='ipsButton {{if $chosen == 'table'}}ipsButton_primary{{else}}ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium' data-ipsTooltip data-ipsTooltip-safe title='{lang='downloads_default_view_table' escape='true'}' rel='nofollow'>
|
||||
<i class='fa fa-align-justify'></i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='{$currentCategory->url()->setQueryString('do', 'setMethod')->setQueryString('method','grid')->csrf()}' class='ipsButton {{if $chosen == 'grid'}}ipsButton_primary{{else}}ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium' data-ipsTooltip data-ipsTooltip-safe title='{lang='downloads_default_view_grid' escape='true'}' rel='nofollow'>
|
||||
<i class='fa fa-th-large'></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="dashboard" template_name="overview" template_data="$data" template_location="admin" template_app="downloads"><![CDATA[<ul class="ipsDataList">
|
||||
{{foreach $data as $k => $v}}
|
||||
@@ -693,7 +856,7 @@
|
||||
{{else}}
|
||||
<a href='{$item->url('buy')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_small ipsButton_primary'><i class='fa fa-shopping-cart'></i> {lang="buy_now"}{{if $price = $item->price()}} - {$price|raw}{{endif}}</a>
|
||||
{{endif}}
|
||||
{{elseif !$item->isPurchasable( FALSE )}}
|
||||
{{elseif $item->isPaid() AND !$item->isPurchasable( FALSE )}}
|
||||
{lang="purchasing_disabled"}
|
||||
{{else}}
|
||||
{{if $item->canDownload() or !$item->downloadTeaser()}}
|
||||
@@ -2112,7 +2275,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class='ipsFlex-flex:01 ipsResponsive_hidePhone'>
|
||||
<div class='ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap:3 ipsGap_row:0'>
|
||||
<div class='ipsShareLinks'>
|
||||
{{if \count( $file->shareLinks() )}}
|
||||
{template="shareButton" app="core" group="sharelinks" params="$file"}
|
||||
{{endif}}
|
||||
@@ -2132,9 +2295,19 @@
|
||||
<div class="ipsMessage ipsMessage_warning ipsSpacer_both ipsClearfix">
|
||||
<p class="ipsType_reset">
|
||||
{lang="file_pending_approval_version"}
|
||||
{{if $file->canUnhide() OR $file->canHide()}}
|
||||
<a href="{expression="\IPS\downloads\File\PendingVersion::load($file->id, 'pending_file_id')->url()"}" class="ipsPos_right ipsButton ipsButton_positive ipsButton_verySmall sm:ipsMargin_top:half sm:ipsPos_left" title='{lang="file_pending_version_button"}'>{lang="file_pending_version_button"}</a>
|
||||
{{endif}}
|
||||
|
||||
<ul class='ipsList_inline ipsPos_right' data-controller="downloads.front.pending.buttons">
|
||||
{{if $file->canUnhide() OR $file->canHide()}}
|
||||
<li>
|
||||
<a href="{expression="\IPS\downloads\File\PendingVersion::load($file->id, 'pending_file_id')->url()"}" class="ipsPos_right ipsButton ipsButton_positive ipsButton_verySmall sm:ipsMargin_top:half sm:ipsPos_left" title='{lang="file_pending_version_button"}'>{lang="file_pending_version_button"}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
{{if $file->canDeletePendingVersion() }}
|
||||
<li>
|
||||
<a href="{expression="\IPS\downloads\File\PendingVersion::load($file->id, 'pending_file_id')->url()->setQueryString('do','delete')->csrf()"}" class="ipsPos_right ipsButton ipsButton_negative ipsButton_verySmall sm:ipsMargin_top:half sm:ipsPos_left" title='{lang="delete"}' data-confirm>{lang="delete"}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
{{endif}}
|
||||
@@ -2457,21 +2630,13 @@
|
||||
</div>
|
||||
|
||||
<div class='ipsBox ipsPadding ipsResponsive_pull ipsResponsive_showPhone ipsMargin_top'>
|
||||
<div class='ipsGap_row:3'>
|
||||
<div>
|
||||
{template="notify" app="downloads" group="view" params="$file"}
|
||||
</div>
|
||||
<div class='ipsShareLinks'>
|
||||
{template="notify" app="downloads" group="view" params="$file"}
|
||||
{{if \count( $file->shareLinks() )}}
|
||||
<div>
|
||||
{template="shareButton" app="core" group="sharelinks" params="$file, 'verySmall', 'light'"}
|
||||
</div>
|
||||
{template="shareButton" app="core" group="sharelinks" params="$file, 'verySmall', 'light'"}
|
||||
{{endif}}
|
||||
<div>
|
||||
{template="follow" app="core" group="global" params="'downloads', 'file', $file->id, $file->followersCount()"}
|
||||
</div>
|
||||
<div>
|
||||
{template="promote" app="core" group="global" params="$file"}
|
||||
</div>
|
||||
{template="follow" app="core" group="global" params="'downloads', 'file', $file->id, $file->followersCount()"}
|
||||
{template="promote" app="core" group="global" params="$file"}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2510,7 +2675,7 @@
|
||||
<template template_group="widgets" template_name="downloadsCommentFeed" template_data="$comments, $title, $orientation='vertical'" template_location="front" template_app="downloads"><![CDATA[{{if !empty( $comments ) }}
|
||||
<h3 class='ipsType_reset ipsWidget_title'>{$title}</h3>
|
||||
{{if $orientation == 'vertical'}}
|
||||
<div class='ipsWidget_inner ipsPad_half'>
|
||||
<div class='ipsWidget_inner'>
|
||||
<ul class='ipsDataList ipsDataList_reducedSpacing'>
|
||||
{{foreach $comments as $comment}}
|
||||
<li class='ipsDataItem'>
|
||||
@@ -2518,8 +2683,8 @@
|
||||
{template="userPhoto" group="global" app="core" params="$comment->author(), 'tiny'"}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<div class='ipsType_break ipsContained'><a href="{$comment->url()}" class='ipsType_medium ipsTruncate ipsTruncate_line'>{$comment->item()->name}</a></div>
|
||||
<p class='ipsType_reset ipsType_light ipsType_medium ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$comment->author()->link( NULL, NULL, $comment->isAnonymous() )"} · <a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a></p>
|
||||
<div class='ipsType_break ipsContained'><a href="{$comment->url()}" class='ipsDataItem_title'>{$comment->item()->name}</a></div>
|
||||
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$comment->author()->link( NULL, NULL, $comment->isAnonymous() )"} · <a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a></p>
|
||||
<div class='ipsType_medium ipsType_textBlock ipsType_richText ipsType_break ipsContained ipsSpacer_top ipsSpacer_half' data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='{{if $orientation == 'vertical'}}6 lines{{else}}2 lines{{endif}}' data-ipsTruncate-watch='false'>
|
||||
{$comment->truncated( true )|raw}
|
||||
</div>
|
||||
@@ -2603,7 +2768,7 @@
|
||||
<template template_group="widgets" template_name="downloadsReviewFeed" template_data="$comments, $title, $orientation='vertical'" template_location="front" template_app="downloads"><![CDATA[{{if !empty( $comments ) }}
|
||||
<h3 class='ipsType_reset ipsWidget_title'>{$title}</h3>
|
||||
{{if $orientation == 'vertical'}}
|
||||
<div class='ipsWidget_inner ipsPad_half'>
|
||||
<div class='ipsWidget_inner'>
|
||||
<ul class='ipsDataList ipsDataList_reducedSpacing'>
|
||||
{{foreach $comments as $comment}}
|
||||
<li class='ipsDataItem'>
|
||||
@@ -2611,8 +2776,8 @@
|
||||
{template="userPhoto" group="global" app="core" params="$comment->author(), 'tiny'"}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<div class='ipsType_break ipsContained'><a href="{$comment->url()}" class='ipsTruncate ipsTruncate_line'>{$comment->item()->name}</a></div>
|
||||
<span class='ipsType_light ipsType_small'>{lang="byline_nodate" htmlsprintf="$comment->author()->link()"} · <a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findReview', 'review' => $comment->id ) )}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a></span>
|
||||
<div class='ipsType_break ipsContained'><a href="{$comment->url()}" class='ipsDataItem_title'>{$comment->item()->name}</a></div>
|
||||
<span class='ipsType_light ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$comment->author()->link()"} · <a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findReview', 'review' => $comment->id ) )}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a></span>
|
||||
{template="rating" group="global" location="front" app="core" params="'small', $comment->rating, \IPS\Settings::i()->reviews_rating_out_of"}
|
||||
<div class='ipsType_medium ipsType_textBlock ipsType_richText ipsType_break ipsContained' data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='{{if $orientation == 'vertical'}}6 lines{{else}}2 lines{{endif}}' data-ipsTruncate-watch='false'>
|
||||
{$comment->truncated( true )|raw}
|
||||
@@ -2688,116 +2853,112 @@
|
||||
<template template_group="widgets" template_name="downloadStats" template_data="$stats, $latestFile, $orientation='vertical'" template_location="front" template_app="downloads"><![CDATA[<h3 class='ipsType_reset ipsWidget_title'>{lang="block_downloadStats"}</h3>
|
||||
<div class='ipsWidget_inner'>
|
||||
{{if $orientation == 'vertical'}}
|
||||
<div class='ipsPad_half'>
|
||||
<ul class='ipsDataList' id='elDownloadsStats'>
|
||||
<ul class='ipsDataList' id='elDownloadsStats'>
|
||||
<li class='ipsDataItem'>
|
||||
<div class='ipsDataItem_main ipsPos_middle'>
|
||||
<strong>{lang="total_files_front"}</strong>
|
||||
</div>
|
||||
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
||||
<span class='ipsDataItem_stats_number'>{number="$stats['totalFiles']"}</span>
|
||||
</div>
|
||||
</li>
|
||||
{{if $stats['totalComments']}}
|
||||
<li class='ipsDataItem'>
|
||||
<div class='ipsDataItem_main ipsPos_middle'>
|
||||
<strong>{lang="total_files_front"}</strong>
|
||||
<strong>{lang="total_comments"}</strong>
|
||||
</div>
|
||||
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
||||
<span class='ipsDataItem_stats_number'>{number="$stats['totalFiles']"}</span>
|
||||
<span class='ipsDataItem_stats_number'>{number="$stats['totalComments']"}</span>
|
||||
</div>
|
||||
</li>
|
||||
{{if $stats['totalComments']}}
|
||||
<li class='ipsDataItem'>
|
||||
<div class='ipsDataItem_main ipsPos_middle'>
|
||||
<strong>{lang="total_comments"}</strong>
|
||||
</div>
|
||||
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
||||
<span class='ipsDataItem_stats_number'>{number="$stats['totalComments']"}</span>
|
||||
</div>
|
||||
</li>
|
||||
{{endif}}
|
||||
{{if $stats['totalReviews']}}
|
||||
<li class='ipsDataItem'>
|
||||
<div class='ipsDataItem_main ipsPos_middle'>
|
||||
<strong>{lang="total_reviews"}</strong>
|
||||
</div>
|
||||
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
||||
<span class='ipsDataItem_stats_number'>{number="$stats['totalReviews']"}</span>
|
||||
</div>
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
<hr class='ipsHr'>
|
||||
{{if $latestFile}}
|
||||
<div id='elDownloadStatsLatest' class='ipsClearfix'>
|
||||
{template="thumbImage" group="global" app="core" params="$latestFile->primary_screenshot, $latestFile->name, 'small', 'ipsPos_left'"}
|
||||
<div class='ipsWidget_latestItem'>
|
||||
<strong class='ipsType_small ipsType_uppercase'>{lang="latest_file"}</strong><br>
|
||||
<div class='ipsType_break ipsContained'><a href="{$latestFile->url( "getPrefComment" )}" title='{lang="view_this_file" sprintf="$latestFile->name"}' class='ipsTruncate ipsTruncate_line'>{$latestFile->name}</a></div>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="byline_nodate" htmlsprintf="$latestFile->author()->link( NULL, NULL, $latestFile->isAnonymous() )"}</span>
|
||||
<p class='ipsType_medium ipsType_reset'>{{if !$latestFile->downloads}}<span class='ipsType_light'>{{endif}}<i class='fa fa-arrow-circle-down'></i> {number="$latestFile->downloads"}{{if !$latestFile->downloads}}</span>{{endif}} {{if $latestFile->container()->bitoptions['comments']}} {{if !$latestFile->comments}}<span class='ipsType_light'>{{endif}}<i class='fa fa-comment'></i> {$latestFile->comments}{{endif}}{{if !$latestFile->comments}}</span>{{endif}}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
{{else}}
|
||||
{{$columns = 2;}}
|
||||
{{$columns += ( $stats['totalComments'] ) ? 1 : 0;}}
|
||||
{{$columns += ( $stats['totalReviews'] ) ? 1 : 0;}}
|
||||
{{$span = 12 / $columns;}}
|
||||
<div class='ipsGrid ipsGrid_collapsePhone ipsWidget_stats'>
|
||||
<div class='ipsGrid_span{$span} ipsType_center cDownloadsWidget_statsNumber'>
|
||||
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalFiles']"}</span><br>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="total_files_front"}</span>
|
||||
</div>
|
||||
{{if $stats['totalComments']}}
|
||||
<div class='ipsGrid_span{$span} ipsType_center cDownloadsWidget_statsNumber'>
|
||||
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalComments']"}</span><br>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="total_comments"}</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if $stats['totalReviews']}}
|
||||
<div class='ipsGrid_span{$span} ipsType_center cDownloadsWidget_statsNumber'>
|
||||
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalReviews']"}</span><br>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="total_reviews"}</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if $latestFile}}
|
||||
<div class='ipsGrid_span{$span} ipsType_left cNewestMember'>
|
||||
<div id='elDownloadStatsLatest' class='ipsClearfix'>
|
||||
<span class='ipsType_minorHeading'>{lang="latest_file"}</span><br>
|
||||
<div class='ipsType_break ipsContained'><a href="{$latestFile->url( "getPrefComment" )}" title='{lang="view_this_file" sprintf="$latestFile->name"}' class='ipsTruncate ipsTruncate_line'>{$latestFile->name}</a></div>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="byline_nodate" htmlsprintf="$latestFile->author()->link()"}</span>
|
||||
<p class='ipsType_medium ipsType_reset'>{{if !$latestFile->downloads}}<span class='ipsType_light'>{{endif}}<i class='fa fa-arrow-circle-down'></i> {number="$latestFile->downloads"}{{if !$latestFile->downloads}}</span>{{endif}} {{if $latestFile->container()->bitoptions['comments']}} {{if !$latestFile->comments}}<span class='ipsType_light'>{{endif}}<i class='fa fa-comment'></i> {$latestFile->comments}{{endif}}{{if !$latestFile->comments}}</span>{{endif}}</p>
|
||||
<li class='ipsDataItem'>
|
||||
<div class='ipsDataItem_main ipsPos_middle'>
|
||||
<strong>{lang="total_reviews"}</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
||||
<span class='ipsDataItem_stats_number'>{number="$stats['totalReviews']"}</span>
|
||||
</div>
|
||||
</li>
|
||||
{{endif}}
|
||||
</ul>
|
||||
<hr class='ipsHr'>
|
||||
{{if $latestFile}}
|
||||
<div id='elDownloadStatsLatest' class='ipsClearfix ipsPadding:half ipsPadding_top:none'>
|
||||
{template="thumbImage" group="global" app="core" params="$latestFile->primary_screenshot, $latestFile->name, 'small', 'ipsPos_left'"}
|
||||
<div class='ipsWidget_latestItem'>
|
||||
<strong class='ipsType_small ipsType_uppercase ipsType_light'>{lang="latest_file"}</strong><br>
|
||||
<div class='ipsType_break ipsContained'><a href="{$latestFile->url( "getPrefComment" )}" title='{lang="view_this_file" sprintf="$latestFile->name"}' class='ipsDataItem_title'>{$latestFile->name}</a></div>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="byline_nodate" htmlsprintf="$latestFile->author()->link( NULL, NULL, $latestFile->isAnonymous() )"}</span>
|
||||
<p class='ipsType_medium ipsType_reset'>{{if !$latestFile->downloads}}<span class='ipsType_light'>{{endif}}<i class='fa fa-arrow-circle-down'></i> {number="$latestFile->downloads"}{{if !$latestFile->downloads}}</span>{{endif}} {{if $latestFile->container()->bitoptions['comments']}} {{if !$latestFile->comments}}<span class='ipsType_light'>{{endif}}<i class='fa fa-comment'></i> {$latestFile->comments}{{endif}}{{if !$latestFile->comments}}</span>{{endif}}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
<div class='ipsPadding'>
|
||||
<div class='ipsFlex ipsFlex-ai:center ipsFlex-fw:wrap ipsGap:5 ipsWidget_stats'>
|
||||
<div class='ipsFlex-flex:11 ipsType_center cDownloadsWidget_statsNumber'>
|
||||
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalFiles']"}</span><br>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="total_files_front"}</span>
|
||||
</div>
|
||||
{{if $stats['totalComments']}}
|
||||
<div class='ipsFlex-flex:11 ipsType_center cDownloadsWidget_statsNumber'>
|
||||
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalComments']"}</span><br>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="total_comments"}</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if $stats['totalReviews']}}
|
||||
<div class='ipsFlex-flex:11 ipsType_center cDownloadsWidget_statsNumber'>
|
||||
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalReviews']"}</span><br>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="total_reviews"}</span>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{if $latestFile}}
|
||||
<div class='cNewestMember'>
|
||||
<div id='elDownloadStatsLatest' class='ipsClearfix'>
|
||||
<span class='ipsType_small ipsType_uppercase ipsType_light'>{lang="latest_file"}</span><br>
|
||||
<div class='ipsType_break ipsContained'><a href="{$latestFile->url( "getPrefComment" )}" title='{lang="view_this_file" sprintf="$latestFile->name"}' class='ipsDataItem_title'>{$latestFile->name}</a></div>
|
||||
<span class='ipsType_light ipsType_medium'>{lang="byline_nodate" htmlsprintf="$latestFile->author()->link()"}</span>
|
||||
<p class='ipsType_medium ipsType_reset'>{{if !$latestFile->downloads}}<span class='ipsType_light'>{{endif}}<i class='fa fa-arrow-circle-down'></i> {number="$latestFile->downloads"}{{if !$latestFile->downloads}}</span>{{endif}} {{if $latestFile->container()->bitoptions['comments']}} {{if !$latestFile->comments}}<span class='ipsType_light'>{{endif}}<i class='fa fa-comment'></i> {$latestFile->comments}{{endif}}{{if !$latestFile->comments}}</span>{{endif}}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>]]></template>
|
||||
<template template_group="widgets" template_name="fileFeed" template_data="$files, $title, $orientation='vertical'" template_location="front" template_app="downloads"><![CDATA[<h3 class='ipsType_reset ipsWidget_title'>{$title}</h3>
|
||||
<div class='ipsWidget_inner'>
|
||||
{{if $orientation == 'vertical'}}
|
||||
<div class='ipsPad_half'>
|
||||
{{if \count( $files )}}
|
||||
<ul class='ipsDataList ipsDataList_reducedSpacing'>
|
||||
{{foreach $files as $file}}
|
||||
{template="fileRow" group="widgets" app="downloads" params="$file, $orientation"}
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
{{else}}
|
||||
{{if \count( $files )}}
|
||||
<ul class='ipsDataList ipsDataList_reducedSpacing'>
|
||||
{{foreach $files as $file}}
|
||||
{template="fileRow" group="widgets" app="downloads" params="$file, $orientation"}
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
{{else}}
|
||||
<div class='ipsPad_half'>
|
||||
<p class='ipsType_reset'>{lang="no_new_files"}</p>
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{{if \count( $files )}}
|
||||
<div class='ipsPad'>
|
||||
<div class='ipsCarousel ipsClearfix' data-ipsCarousel data-ipsCarousel-showDots>
|
||||
<div class='ipsCarousel_inner'>
|
||||
<ul class='cDownloadsCarousel' data-role="carouselItems">
|
||||
{{foreach $files as $idx => $file}}
|
||||
{template="indexBlock" group="browse" app="downloads" params="$file"}
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
</div>
|
||||
<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 class='ipsPad'>
|
||||
<div class='ipsCarousel ipsClearfix' data-ipsCarousel data-ipsCarousel-showDots>
|
||||
<div class='ipsCarousel_inner'>
|
||||
<ul class='cDownloadsCarousel' data-role="carouselItems">
|
||||
{{foreach $files as $idx => $file}}
|
||||
{template="indexBlock" group="browse" app="downloads" params="$file"}
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
</div>
|
||||
<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>
|
||||
{{else}}
|
||||
<p class='ipsType_reset'>{lang="no_new_files"}</p>
|
||||
{{endif}}
|
||||
@@ -2820,8 +2981,8 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<div class='ipsType_break ipsContained'><a href="{$file->url( "getPrefComment" )}" title='{lang="view_this_file" sprintf="$file->name"}' class='ipsTruncate ipsTruncate_line'>{$file->name}</a></div>
|
||||
<span class='ipsType_light ipsType_medium ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$file->author()->link( NULL, NULL, $file->isAnonymous() )"}</span><br>
|
||||
<div class='ipsType_break ipsContained'><a href="{$file->url( "getPrefComment" )}" title='{lang="view_this_file" sprintf="$file->name"}' class='ipsDataItem_title'>{$file->name}</a></div>
|
||||
<span class='ipsType_light ipsType_blendLinks ipsType_break'>{lang="byline_nodate" htmlsprintf="$file->author()->link( NULL, NULL, $file->isAnonymous() )"}</span><br>
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
{template="rating" group="global" location="front" app="core" params="'small', $file->rating, \IPS\Settings::i()->reviews_rating_out_of"}
|
||||
{{endif}}
|
||||
@@ -3327,7 +3488,17 @@ html[dir="rtl"] #elDownloadStatsLatest > .ipsWidget_latestItem {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
]]></css>
|
||||
|
||||
.ipsFluidGrid--downloads{
|
||||
padding: var(--sp-6);
|
||||
--FluidGrid--width: 280px;
|
||||
--FluidGrid--gap: var(--sp-9) var(--sp-7);
|
||||
}
|
||||
|
||||
.ipsFluidGrid--downloads .ipsThumb{
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
}]]></css>
|
||||
<css css_location="front" css_app="downloads" css_attributes="" css_path="." css_name="embed.css">.cFilePrice {
|
||||
color: rgb( var(--theme-price) );
|
||||
text-transform: uppercase;
|
||||
|
||||
Reference in new issue
Block a user