Version 4.1.19
This commit is contained in:
1 parent
28bd025b35
commit
2bd5025018
2674 files changed
+233518
-77766
No files matched your search
@@ -23,17 +23,17 @@
|
||||
{{foreach $categories as $category}}
|
||||
{{if $category->open OR \IPS\Member::loggedIn()->isAdmin()}}
|
||||
<li>
|
||||
<a href="{$category->url()}" class='ipsSideMenu_item {{if $currentCategory && $currentCategory->id == $category->id}}{{endif}} ipsTruncate ipsTruncate_line'><span class='ipsBadge ipsBadge_style1 ipsPos_right cDownloadsCategoryCount'>{expression="\IPS\downloads\File::contentCount( $category )"}</span><strong class='ipsType_normal'>{$category->_title}</strong></a>
|
||||
<a href="{$category->url()}" class='ipsSideMenu_item ipsTruncate ipsTruncate_line'><span class='ipsBadge ipsBadge_style1 ipsPos_right cDownloadsCategoryCount'>{number="\IPS\downloads\File::contentCount( $category )"}</span><strong class='ipsType_normal'>{$category->_title}</strong></a>
|
||||
{{if $category->hasChildren()}}
|
||||
<ul class="ipsSideMenu_list">
|
||||
{{foreach $category->children() as $idx => $subcategory}}
|
||||
{{if $subcategory->open OR \IPS\Member::loggedIn()->isAdmin()}}
|
||||
<li>
|
||||
{{if $idx >= 5}}
|
||||
<a href='{$category->url()}' class='ipsSideMenu_item'><span class='ipsType_light ipsType_small'>{lang="and_x_more" sprintf="count( $category->children() ) - 5"}</span></a>
|
||||
<a href='{$category->url()}' class='ipsSideMenu_item'><span class='ipsType_light ipsType_small'>{lang="and_x_more" pluralize="count( $category->children() ) - 5"}</span></a>
|
||||
{{break;}}
|
||||
{{else}}
|
||||
<a href="{$subcategory->url()}" class='ipsSideMenu_item ipsTruncate ipsTruncate_line'><strong class='ipsPos_right ipsType_small cDownloadsCategoryCount'>{expression="\IPS\downloads\File::contentCount( $subcategory )"}</strong>{$subcategory->_title}</a>
|
||||
<a href="{$subcategory->url()}" class='ipsSideMenu_item ipsTruncate ipsTruncate_line'><strong class='ipsPos_right ipsType_small cDownloadsCategoryCount'>{number="\IPS\downloads\File::contentCount( $subcategory )"}</strong>{$subcategory->_title}</a>
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endif}}
|
||||
@@ -76,7 +76,7 @@
|
||||
</ul>
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsBox'>
|
||||
<div class='ipsBox cDownloadsCategoryTable'>
|
||||
{$table|raw}
|
||||
</div>
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
{{foreach $categories as $cat}}
|
||||
{{if $cat->can('view')}}
|
||||
<li class='ipsMenu_item'>
|
||||
<a href='{$cat->url()}'><span class="ipsMenu_itemCount">{expression="\IPS\downloads\File::contentCount( $cat )"}</span>{$cat->_title}</a>
|
||||
<a href='{$cat->url()}'><span class="ipsMenu_itemCount">{number="\IPS\downloads\File::contentCount( $cat )"}</span>{$cat->_title}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
@@ -164,12 +164,22 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsColumn ipsColumn_fluid'>
|
||||
<h2 class='ipsType_pageTitle'>
|
||||
<h2 class='ipsType_pageTitle ipsContained_container'>
|
||||
{{if $file->prefix()}}
|
||||
<a href="{url="app=core&module=search&controller=search&tags={$file->prefix( TRUE )}" seoTemplate="tags"}" title="{lang="find_tagged_content" sprintf="$file->prefix()"}" class='ipsTag_prefix'>{$file->prefix()}</a>
|
||||
<span><a href="{url="app=core&module=search&controller=search&tags={$file->prefix( TRUE )}" seoTemplate="tags"}" title="{lang="find_tagged_content" sprintf="$file->prefix()"}" class='ipsTag_prefix'>{$file->prefix()}</a></span>
|
||||
{{endif}}
|
||||
<a href='{$file->url()}'>{$file->name}</a>
|
||||
<span class='ipsType_large ipsType_light ipsType_unbold ipsType_noBreak'>{lang="byline_nodate" htmlsprintf="$file->author()->link()"}</span>
|
||||
{{if $file->mapped('pinned') || $file->hidden() === -1 || $file->hidden() === 1}}
|
||||
{{if $file->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $file->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
<span class='ipsType_large ipsType_light ipsType_unbold ipsType_noBreak'>{lang="byline_nodate" htmlsprintf="$file->author()->link()"}</span>
|
||||
</h2>
|
||||
<ul class='ipsList_inline ipsSpacer_top ipsSpacer_half'>
|
||||
{{if $price = $file->price()}}
|
||||
@@ -191,7 +201,7 @@
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endif}}
|
||||
{{if $file->price() and in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
{{if $file->isPaid() and in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<li class='ipsType_normal'>
|
||||
{{if $purchases = $file->purchaseCount()}}
|
||||
<i class='fa fa-shopping-cart'></i> {$purchases}
|
||||
@@ -201,7 +211,7 @@
|
||||
</li>
|
||||
{{endif}}
|
||||
|
||||
{{if !$file->price() or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
{{if !$file->isPaid() or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<li class='ipsType_normal'>
|
||||
{{if $file->downloads}}
|
||||
<i class='fa fa-arrow-circle-down'></i> {$file->downloads}
|
||||
@@ -223,7 +233,7 @@
|
||||
</ul>
|
||||
|
||||
<div class='ipsType_richText ipsType_normal ipsSpacer_both' data-ipsTruncate data-ipsTruncate-type="remove" data-ipsTruncate-size="2 lines">
|
||||
{$file->truncated()|raw}
|
||||
{$file->truncated(TRUE)|raw}
|
||||
</div>
|
||||
|
||||
<ul class='ipsToolList ipsToolList_horizontal'>
|
||||
@@ -233,7 +243,7 @@
|
||||
</li>
|
||||
{{elseif $file->canBuy()}}
|
||||
<li class='ipsToolList_primaryAction ipsPos_left'>
|
||||
<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_small ipsButton_fullWidth ipsButton_important'><i class='fa fa-shopping-cart'></i> {lang="buy_now"} - {expression="strip_tags($price)"}</a>
|
||||
<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_small ipsButton_fullWidth ipsButton_important'><i class='fa fa-shopping-cart'></i> {lang="buy_now"}{{if $price}} - {expression="strip_tags($price)"}{{endif}}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
<li class='ipsPos_left'>
|
||||
@@ -343,7 +353,7 @@
|
||||
</ul>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="browse" template_name="indexBlock" template_data="$file" template_location="front" template_app="downloads"><![CDATA[<li class='ipsAreaBackground_reset ipsType_blendLinks ipsClearfix cDownloadsCarouselItem ipsPad_half ipsCarousel_item'>
|
||||
<a href='{$file->url()}' title='{lang="view_this" sprintf="$file->name"}'>
|
||||
<a href='{$file->url()}' title='{lang="view_this_file" sprintf="$file->name"}'>
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot_thumb, $file->name"}
|
||||
</a>
|
||||
<div class='cDownloadsCarouselItem_info ipsSpacer_top ipsSpacer_half'>
|
||||
@@ -351,7 +361,17 @@
|
||||
{{if $file->unread()}}
|
||||
<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>
|
||||
{{endif}}
|
||||
<a href='{$file->url()}' title='{lang="view_this" sprintf="$file->name"}'>{$file->name}</a>
|
||||
<a href='{$file->url()}' title='{lang="view_this_file" sprintf="$file->name"}'>{$file->name}</a>
|
||||
{{if $file->mapped('pinned') || $file->hidden() === -1 || $file->hidden() === 1}}
|
||||
{{if $file->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $file->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
{{endif}}
|
||||
{{if $file->mapped('pinned')}}
|
||||
<span class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</h3>
|
||||
|
||||
<p class='ipsType_medium ipsType_reset ipsType_blendLinks ipsTruncate ipsTruncate_line'>{lang="byline_nodate" htmlsprintf="$file->author()->link()"}</p>
|
||||
@@ -359,20 +379,24 @@
|
||||
{template="rating" group="global" location="front" app="core" params="'medium', $file->rating, \IPS\Settings::i()->reviews_rating_out_of"}
|
||||
{{endif}}
|
||||
<p class='ipsType_medium ipsType_reset'>
|
||||
{{if $price = $file->price() 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>
|
||||
{{if $file->isPaid() and in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->purchaseCount()}}class='ipsType_light'{{endif}} title='{lang="x_purchases" pluralize="$file->purchaseCount()"}' data-ipsTooltip><i class='fa fa-shopping-cart'></i> {$file->purchaseCount()}</span>
|
||||
{{endif}}
|
||||
{{if !$file->price() 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-arrow-circle-down'></i> {$file->downloads}</span>
|
||||
{{if !$file->isPaid() or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<span {{if !$file->downloads}}class='ipsType_light'{{endif}} title='{lang="x_downloads" pluralize="$file->downloads"}' data-ipsTooltip><i class='fa fa-arrow-circle-down'></i> {$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-comment'></i> {$file->comments}{{endif}}
|
||||
{{if $file->container()->bitoptions['comments']}}<span {{if !$file->comments}}class='ipsType_light'{{endif}} title='{lang="num_comments" pluralize="$file->comments"}' data-ipsTooltip><i class='fa fa-comment'></i> {$file->comments}</span>{{endif}}
|
||||
</p>
|
||||
|
||||
{{if \IPS\Application::appIsEnabled( 'nexus' ) and settings.idm_nexus_on}}
|
||||
<span class="cFilePrice ipsType_medium">
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{if $file->isPaid()}}
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{else}}
|
||||
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{lang="file_free"}
|
||||
{{endif}}
|
||||
@@ -397,8 +421,10 @@
|
||||
{{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 $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{if $file->isPaid()}}
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{lang="file_free"}
|
||||
{{endif}}
|
||||
@@ -407,30 +433,30 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<h4 class='ipsDataItem_title ipsType_sectionHead'>
|
||||
<h4 class='ipsDataItem_title ipsType_sectionHead ipsContained_container'>
|
||||
{{if $file->unread()}}
|
||||
<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><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 class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
<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 class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
<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 class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
||||
<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 class="ipsBadge ipsBadge_small ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
<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()}}
|
||||
{template="prefix" group="global" app="core" params="$file->prefix( TRUE ), $file->prefix()"}
|
||||
<span>{template="prefix" group="global" app="core" params="$file->prefix( TRUE ), $file->prefix()"}</span>
|
||||
{{endif}}
|
||||
|
||||
<a href='{$file->url()}' title='{lang="view_this_file" sprintf="$file->name"}' {{if $file->canEdit()}}data-role="editableTitle"{{endif}}>{wordbreak="$file->name"}</a>
|
||||
<div class='ipsType_break ipsContained'><a href='{$file->url()}' title='{lang="view_this_file" sprintf="$file->name"} {{if $file->canEdit()}}{lang="click_hold_edit"}{{endif}}' class='ipsTruncate ipsTruncate_line' {{if $file->canEdit()}}data-role="editableTitle"{{endif}}>{$file->name}</a></div>
|
||||
</h4>
|
||||
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>
|
||||
{lang="byline_nodate" htmlsprintf="$file->author()->link()"}
|
||||
@@ -443,10 +469,10 @@
|
||||
</div>
|
||||
|
||||
<p class='ipsType_normal'>
|
||||
{{if $file->price() and in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
{{if $file->isPaid() 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->price() or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
{{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>
|
||||
@@ -457,23 +483,7 @@
|
||||
</div>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size8'>
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
<ul class='ipsList_inline ipsClearfix ipsRating ipsRating_large'>
|
||||
{{foreach range( 1, 5 ) as $i}}
|
||||
<li class='{{if $file->rating >= $i}}ipsRating_on{{else}}ipsRating_off{{endif}}'>
|
||||
<i class='fa fa-star'></i>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
|
||||
<span class='ipsType_normal'>
|
||||
{{if $file->reviews}}
|
||||
<a href='{$file->url()->setQueryString( 'tab', 'reviews' )->setFragment('replies')}'>
|
||||
{{endif}}
|
||||
{lang="num_reviews" pluralize="$file->reviews"}
|
||||
{{if $file->reviews}}
|
||||
</a>
|
||||
{{endif}}
|
||||
</span>
|
||||
{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'>
|
||||
@@ -528,7 +538,7 @@
|
||||
<div class='ipsDataList ipsAreaBackground_light ipsClearfix'>
|
||||
<div class='ipsDataItem'>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size2'>
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot, $file->name, 'small', 'view_this', $file->url()"}
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot, $file->name, 'small', '', 'view_this', $file->url()"}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<h3 class='ipsType_sectionHead'><a href='{$file->url()}' title='{lang="view_this_file" sprintf="$file->name"}'>{$file->mapped('title')}</a></h3>
|
||||
@@ -541,16 +551,20 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>]]></template>
|
||||
<template template_group="global" template_name="link" template_data="$file" template_location="global" template_app="downloads"><![CDATA[<a href="{$file->url()}" class="ipsType_blendLinks" target="_blank">{wordbreak="$file->name"}</a>]]></template>
|
||||
<template template_group="global" template_name="link" template_data="$file" template_location="global" template_app="downloads"><![CDATA[<div class='ipsType_break ipsContained'><a href="{$file->url()}" class="ipsType_blendLinks" target="_blank" rel='noopener noreferrer'>{$file->name}</a></div>]]></template>
|
||||
<template template_group="global" template_name="manageFollowRow" template_data="$table, $headers, $rows, $includeFirstCommentInCommentCount=TRUE" template_location="front" template_app="downloads"><![CDATA[{{if count( $rows )}}
|
||||
{{foreach $rows as $row}}
|
||||
{{$idField = $row::$databaseColumnId;}}
|
||||
<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-controller='core.front.system.manageFollowed' data-followID='{$row->_followData['follow_area']}-{$row->_followData['follow_rel_id']}'>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size2'>
|
||||
<div class='ipsThumb ipsThumb_bg ipsThumb_small' style='background-image: url( {file="$row->primary_screenshot" extension="downloads_Screenshots"} )'></div>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size2 ipsDataItem_imageColumn'>
|
||||
{{if $row->_primary_screenshot }}
|
||||
<div class='ipsThumb ipsThumb_bg ipsThumb_small' style='background-image: url( {expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $row->primary_screenshot->url )"} )'></div>
|
||||
{{else}}
|
||||
<span class='ipsThumb ipsNoThumb ipsThumb_small' />
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_main ipsPos_middle'>
|
||||
<h4 class='ipsDataItem_title ipsType_break ipsType_normal'>
|
||||
<h4 class='ipsDataItem_title ipsContained_container'>
|
||||
{{if $row->mapped('locked')}}
|
||||
<i class="fa fa-lock"></i>
|
||||
{{endif}}
|
||||
@@ -572,12 +586,14 @@
|
||||
{{endif}}
|
||||
|
||||
{{if $row->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}
|
||||
<span>{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}</span>
|
||||
{{endif}}
|
||||
|
||||
<a href='{$row->url()}'>
|
||||
{{if $row->mapped('title')}}{wordbreak="$row->mapped('title')"}{{else}}<em class="ipsType_light">{lang="content_deleted"}</em>{{endif}}
|
||||
</a>
|
||||
<div class='ipsType_break ipsContained'>
|
||||
<a href='{$row->url()}'>
|
||||
{{if $row->mapped('title')}}{$row->mapped('title')}{{else}}<em class="ipsType_light">{lang="content_deleted"}</em>{{endif}}
|
||||
</a>
|
||||
</div>
|
||||
</h4>
|
||||
<div class='ipsDataItem_meta ipsType_light ipsType_blendLinks' data-ipsTruncate data-ipsTruncate-size='2 lines' data-ipsTruncate-type='remove'>
|
||||
{{if method_exists( $row, 'tableDescription' )}}
|
||||
@@ -589,11 +605,11 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='ipsDataItem_generic ipsDataItem_size1 ipsType_center ipsType_large'>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size1 ipsType_center ipsType_large cFollowedContent_anon'>
|
||||
<span class='ipsBadge ipsBadge_icon ipsBadge_new {{if !$row->_followData['follow_is_anon']}}ipsHide{{endif}}' data-role='followAnonymous' data-ipsTooltip title='{lang="follow_is_anon"}'><i class='fa fa-eye-slash'></i></span>
|
||||
</div>
|
||||
|
||||
<div class='ipsDataItem_generic ipsDataItem_size6'>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size6 cFollowedContent_info'>
|
||||
<ul class='ipsList_reset'>
|
||||
<li title='{lang="follow_when"}' data-role='followDate'><i class='fa fa-clock-o'></i> {datetime="$row->_followData['follow_added']"}</li>
|
||||
<li title='{lang="follow_how"}' data-role='followFrequency'>
|
||||
@@ -606,7 +622,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class='ipsDataItem_generic ipsDataItem_size6 ipsType_center'>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size6 ipsType_center cFollowedContent_manage'>
|
||||
{template="manageFollow" group="system" app="core" params="$row->_followData['follow_app'], $row->_followData['follow_area'], $row->_followData['follow_rel_id']"}
|
||||
</div>
|
||||
|
||||
@@ -626,8 +642,8 @@
|
||||
<template template_group="global" template_name="searchResultCommentSnippet" template_data="$indexData, $screenshot, $url, $reviewRating, $condensed" template_location="front" template_app="downloads"><![CDATA[
|
||||
{{if $condensed}}
|
||||
{{if $screenshot}}
|
||||
<span class='ipsThumb_bg ipsThumb_small ipsPos_left' style='background-image: url("{file="$screenshot_thumb" extension="downloads_Screenshots"}")'>
|
||||
<img src='{file="$screenshot_thumb" extension="downloads_Screenshots"}' alt='' class="">
|
||||
<span class='ipsThumb_bg ipsThumb_small ipsPos_left' style='background-image: url("{file="$screenshot" extension="downloads_Screenshots"}")'>
|
||||
<img src='{file="$screenshot" extension="downloads_Screenshots"}' alt='' class="">
|
||||
</span>
|
||||
{{else}}
|
||||
<span class='ipsNoThumb ipsThumb_small ipsPos_left'></span>
|
||||
@@ -646,10 +662,10 @@
|
||||
<div class='ipsColumn ipsColumn_fluid'>
|
||||
<div class='ipsStream_comment ipsPad'>
|
||||
{{if $reviewRating !== NULL}}
|
||||
{template="rating" app="core" params="'medium', $reviewRating" group="global"}
|
||||
{template="rating" app="core" params="'medium', $reviewRating, \IPS\Settings::i()->reviews_rating_out_of" group="global"}
|
||||
{{endif}}
|
||||
{{if trim( $indexData['index_content'] ) !== ''}}
|
||||
<div class='ipsType_richText ipsType_break ipsType_medium' {{if !( \IPS\Dispatcher::i()->application->directory == 'core' and \IPS\Dispatcher::i()->module and \IPS\Dispatcher::i()->module->key == 'search' )}}data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='3 lines'{{else}}data-searchable data-findTerm{{endif}}>
|
||||
<div class='ipsType_richText ipsType_break ipsType_medium' {{if !( \IPS\Dispatcher::i()->application->directory == 'core' and \IPS\Dispatcher::i()->module and \IPS\Dispatcher::i()->module->key == 'search' )}}data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='3 lines' data-ipsTruncate-watch='false'{{else}}data-searchable data-findTerm{{endif}}>
|
||||
{$indexData['index_content']|raw}
|
||||
</div>
|
||||
{{endif}}
|
||||
@@ -678,10 +694,13 @@
|
||||
</div>
|
||||
<div class='ipsColumn ipsColumn_fluid ipsStream_snippetInfo'>
|
||||
<p class='ipsType_reset ipsType_light ipsType_normal'>{lang="version"} {$itemData['file_version']}</p>
|
||||
<p class='ipsType_reset ipsType_normal'><i class='fa fa-download'></i> {lang="num_downloads" pluralize="$itemData['file_downloads']"}</p>
|
||||
{{if !$price or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) ) }}
|
||||
<p class='ipsType_reset ipsType_normal'><i class='fa fa-download'></i> {lang="num_downloads" pluralize="$itemData['file_downloads']"}</p>
|
||||
{{endif}}
|
||||
|
||||
|
||||
{{if trim( $indexData['index_content'] ) !== ''}}
|
||||
<div class='ipsSpacer_top ipsSpacer_half ipsType_richText ipsType_break ipsType_medium' {{if !( \IPS\Dispatcher::i()->application->directory == 'core' and \IPS\Dispatcher::i()->module and \IPS\Dispatcher::i()->module->key == 'search' )}}data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='2 lines'{{else}}data-searchable data-findTerm{{endif}}>
|
||||
<div class='ipsSpacer_top ipsSpacer_half ipsType_richText ipsType_break ipsType_medium' {{if !( \IPS\Dispatcher::i()->application->directory == 'core' and \IPS\Dispatcher::i()->module and \IPS\Dispatcher::i()->module->key == 'search' )}}data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='2 lines' data-ipsTruncate-watch='false'{{else}}data-searchable data-findTerm{{endif}}>
|
||||
{$indexData['index_content']|raw}
|
||||
</div>
|
||||
{{endif}}
|
||||
@@ -746,7 +765,7 @@
|
||||
{{if $file->prefix()}}
|
||||
{template="prefix" group="global" app="core" location="front" params="$file->prefix( TRUE ), $file->prefix()"}
|
||||
{{endif}}
|
||||
<a href='{$file->url()}' title='{lang="view_this_file" sprintf="$file->name"}'>{wordbreak="$file->name"}</a>
|
||||
<div class='ipsType_break ipsContained'><a href='{$file->url()}' title='{lang="view_this_file" sprintf="$file->name"}'>{$file->name}</a></div>
|
||||
</h4>
|
||||
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>
|
||||
{lang="byline_nodate" htmlsprintf="$file->author()->link()"}
|
||||
@@ -760,23 +779,7 @@
|
||||
</div>
|
||||
<div class='ipsDataItem_generic ipsDataItem_size8'>
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
<ul class='ipsList_inline ipsClearfix ipsRating ipsRating_large'>
|
||||
{{foreach range( 1, 5 ) as $i}}
|
||||
<li class='{{if $file->rating >= $i}}ipsRating_on{{else}}ipsRating_off{{endif}}'>
|
||||
<i class='fa fa-star'></i>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
|
||||
<span class='ipsType_normal'>
|
||||
{{if $file->reviews}}
|
||||
<a href='{$file->url()->setQueryString( 'tab', 'reviews' )->setFragment('replies')}'>
|
||||
{{endif}}
|
||||
{lang="num_reviews" pluralize="$file->reviews"}
|
||||
{{if $file->reviews}}
|
||||
</a>
|
||||
{{endif}}
|
||||
</span>
|
||||
{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'>
|
||||
@@ -794,8 +797,13 @@
|
||||
</div>
|
||||
</div>]]></template>
|
||||
<template template_group="nexus" template_name="fileInfo" template_data="$file" template_location="front" template_app="downloads"></template>
|
||||
<template template_group="nexus" template_name="filePurchaseInfo" template_data="$file" template_location="front" template_app="downloads"><![CDATA[<a href='{{if settings.idm_antileech}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_medium ipsButton_primary' {{if $file->container()->message('disclaimer') or count( $file->files() ) > 1 or member.group['idm_wait_period']}}data-ipsDialog{{endif}}>{lang="download_now"}</a>]]></template>
|
||||
<template template_group="stats" template_name="downloadsTable" template_data="$select, $pagination" template_location="admin" template_app="downloads"><![CDATA[
|
||||
<template template_group="nexus" template_name="filePurchaseInfo" template_data="$file" template_location="front" template_app="downloads"><![CDATA[{{if $file->container()->can( 'download' )}}
|
||||
<a href='{{if settings.idm_antileech}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_medium ipsButton_primary' {{if $file->container()->message('disclaimer') or count( $file->files() ) > 1 or member.group['idm_wait_period']}}data-ipsDialog{{endif}}>{lang="download_now"}</a>
|
||||
{{endif}}
|
||||
{{if $file->container()->can( 'view' )}}
|
||||
<a href='{$file->url()}' class='ipsButton ipsButton_medium ipsButton_alternate'>{lang="file_view_details"}</a>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="stats" template_name="downloadsTable" template_data="$select, $pagination, $members" template_location="admin" template_app="downloads"><![CDATA[
|
||||
{{if trim( $pagination )}}
|
||||
{$pagination|raw}
|
||||
<br><br>
|
||||
@@ -810,7 +818,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{{foreach $select as $row}}
|
||||
{{$member = \IPS\Member::constructFromData( $row );}}
|
||||
{{$member = \IPS\Member::constructFromData( $members[ $row['dmid'] ] );}}
|
||||
<tr>
|
||||
<td>{template="userPhoto" app="core" group="global" params="$member"} {$member->name}</td>
|
||||
<td><a href='{url="app=downloads&module=stats&controller=member&do=downloads&id={$member->member_id}&tab=downloads&&type%5Bd74394%5D=Table"}'>{$row['downloads']}</a></td>
|
||||
@@ -833,7 +841,7 @@
|
||||
<div class="ipsPad_half ipsType_light">
|
||||
{lang="download_stats_disclaimer"}
|
||||
</div>]]></template>
|
||||
<template template_group="stats" template_name="submittersTable" template_data="$select, $pagination" template_location="admin" template_app="downloads"><![CDATA[
|
||||
<template template_group="stats" template_name="submittersTable" template_data="$select, $pagination, $members" template_location="admin" template_app="downloads"><![CDATA[
|
||||
{{if trim( $pagination )}}
|
||||
{$pagination|raw}
|
||||
<br><br>
|
||||
@@ -848,10 +856,20 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{{foreach $select as $row}}
|
||||
{{$member = \IPS\Member::constructFromData( $row );}}
|
||||
{{if isset( $members[ $row['file_submitter'] ] )}}
|
||||
{{$member = \IPS\Member::constructFromData( $members[ $row['file_submitter'] ] );}}
|
||||
{{else}}
|
||||
{{$member = new \IPS\Member;}}
|
||||
{{endif}}
|
||||
<tr>
|
||||
<td>{template="userPhoto" app="core" group="global" params="$member"} {$member->link()|raw}</td>
|
||||
<td><a href='{$member->url()->setQueryString( array( 'do' => 'content', 'type' => 'downloads_file' ) )}' target='_blank'>{$row['files']}</a></td>
|
||||
<td>
|
||||
{{if $member->member_id}}
|
||||
<a href='{$member->url()->setQueryString( array( 'do' => 'content', 'type' => 'downloads_file' ) )}' target='_blank'>{$row['files']}</a>
|
||||
{{else}}
|
||||
{$row['files']}
|
||||
{{endif}}
|
||||
</td>
|
||||
</tr>
|
||||
{{endforeach}}
|
||||
</tbody>
|
||||
@@ -911,6 +929,10 @@
|
||||
</div>
|
||||
{{endif}}]]></template>
|
||||
<template template_group="submit" template_name="editDetailsInfo" template_data="$file" template_location="front" template_app="downloads"><![CDATA[<div class='ipsMessage ipsMessage_info'><a href='{$file->url()->setQueryString( array( 'do' => 'newVersion' ) )}' title='{lang="upload_new_version_title"}'>{lang="file_versioning_info_text"}</a></div>]]></template>
|
||||
<template template_group="submit" template_name="linkedScreenshotField" template_data="$name, $value" template_location="front" template_app="downloads"><![CDATA[<div data-controller="downloads.front.submit.linkedScreenshots" data-name='{$name}' data-initialValue='{expression="json_encode( $value )"}'>
|
||||
<ul data-role="fieldsArea" class="ipsList_reset"></ul>
|
||||
<a class="ipsButton ipsButton_light ipsButton_small" data-action="addField"><i class="fa fa-plus-circle"></i> {lang="stack_add"}</a>
|
||||
</div>]]></template>
|
||||
<template template_group="submit" template_name="newVersion" template_data="$form, $versioning" template_location="front" template_app="downloads"><![CDATA[<div class='ipsPageHeader ipsSpacer_bottom'>
|
||||
<h1 class='ipsType_pageTitle'>{lang="upload_new_version"}</h1>
|
||||
</div>
|
||||
@@ -940,7 +962,7 @@
|
||||
{{endif}}
|
||||
|
||||
|
||||
<form accept-charset='utf-8' method="post" action="{$form->action}" id='elDownloadsSubmit' enctype="multipart/form-data" {{if $category->bitoptions['reqss']}}data-screenshotsReq='1'{{endif}} {{if $bulk}}data-bulkUpload='1'{{endif}} data-ipsForm data-controller='downloads.front.submit.main'>
|
||||
<form accept-charset='utf-8' method="post" action="{$form->action}" id='elDownloadsSubmit' enctype="multipart/form-data" {{if $category->bitoptions['allowss'] AND $category->bitoptions['reqss']}}data-screenshotsReq='1'{{endif}} {{if $bulk}}data-bulkUpload='1'{{endif}} data-ipsForm data-controller='downloads.front.submit.main'>
|
||||
<input type="hidden" name="{$form->id}_submitted" value="1">
|
||||
{{foreach $form->hiddenValues as $k => $v}}
|
||||
<input type="hidden" name="{$k}" value="{$v}">
|
||||
@@ -1021,7 +1043,7 @@
|
||||
<i class='fa fa-globe'></i> {lang="add_screenshots_by_url"} <i class='fa fa-caret-down'></i>
|
||||
<span class='ipsNotificationCount {{if !count( $form->elements['']['url_screenshots']->value )}}ipsHide{{endif}}' data-role='fileCount'>{expression="count( $form->elements['']['url_screenshots']->value )"}</span>
|
||||
</a>
|
||||
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_normal ipsHide ipsPad'>
|
||||
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_wide ipsHide ipsPad'>
|
||||
<ul class='ipsFieldRow_fullWidth'>
|
||||
{$form->elements['']['url_screenshots']|raw}
|
||||
</ul>
|
||||
@@ -1113,7 +1135,8 @@
|
||||
<div class='ipsColumns ipsColumns_collapsePhone'>
|
||||
<div class='ipsColumn ipsColumn_medium ipsType_center'>
|
||||
<a href="{$file->url()}">
|
||||
<img src="<fileStore.downloads_Screenshots>/{$file->primary_screenshot}" alt="{$file->name}"
|
||||
{{$image = ( $file->primary_screenshot instanceof \IPS\File ) ? (string) $file->primary_screenshot->url : $file->primary_screenshot;}}
|
||||
<img src='{file="$image" extension="downloads_Screenshots"}' alt='{$file->name}'>
|
||||
</a>
|
||||
<br><br>
|
||||
<a href="{$file->url()}" class='ipsButton ipsButton_primary ipsButton_fullWidth ipsButton_small'>
|
||||
@@ -1173,7 +1196,8 @@
|
||||
</div>
|
||||
</div>
|
||||
{{endif}}
|
||||
</div>]]></template>
|
||||
</div>
|
||||
<p> </p>]]></template>
|
||||
<template template_group="submit" template_name="wizardForm" template_data="$stepNames, $activeStep, $output, $baseUrl, $showSteps" template_location="front" template_app="downloads"><![CDATA[
|
||||
{{foreach $stepNames as $step => $name}}
|
||||
{{if $activeStep == $name}}
|
||||
@@ -1235,7 +1259,7 @@
|
||||
</div>
|
||||
</form>]]></template>
|
||||
<template template_group="view" template_name="comments" template_data="$file" template_location="front" template_app="downloads"><![CDATA[
|
||||
<div data-controller='core.front.core.commentFeed' {{if settings.auto_polling_enabled}}data-autoPoll{{endif}} data-commentsType='comments' data-baseURL='{$file->url()}' {{if $file->isLastPage()}}data-lastPage{{endif}} data-feedID='file-{$file->id}' id='comments'>
|
||||
<div data-controller='core.front.core.commentFeed, core.front.core.ignoredComments' {{if settings.auto_polling_enabled}}data-autoPoll{{endif}} data-commentsType='comments' data-baseURL='{$file->url()}' {{if $file->isLastPage()}}data-lastPage{{endif}} data-feedID='file-{$file->id}' id='comments'>
|
||||
{{if $file->commentPageCount() > 1}}
|
||||
{$file->commentPagination( array( 'tab' ) )|raw}
|
||||
<br><br>
|
||||
@@ -1295,6 +1319,9 @@
|
||||
</li>
|
||||
]]></template>
|
||||
<template template_group="view" template_name="downloadSidebar" template_data="$file" template_location="front" template_app="downloads"></template>
|
||||
<template template_group="view" template_name="downloadTeaser" template_data="" template_location="front" template_app="downloads"><![CDATA[
|
||||
<span class="ipsType_light ipsType_blendLinks ipsResponsive_hidePhone ipsResponsive_inline"><i class="fa fa-info-circle"></i> {lang="download_teaser"}</span>
|
||||
]]></template>
|
||||
<template template_group="view" template_name="downloadTerms" template_data="$file, $downloadTerms, $confirmUrl, $multipleFiles" template_location="front" template_app="downloads"><![CDATA[<div class='ipsPad'>
|
||||
<h1 class='ipsType_pageTitle'>{lang="download_terms"}</h1>
|
||||
<strong>{lang="download_terms_desc"}</strong>
|
||||
@@ -1379,14 +1406,14 @@
|
||||
{{endif}}
|
||||
<div class='ipsDataItem_generic ipsDataItem_size4 ipsType_right'>
|
||||
<span class="ipsHide" data-role="downloadCounterContainer">{lang="download_begins_in"} <span data-role="downloadCounter"></span> {lang="seconds"}</span>
|
||||
<a href='{$fileObject->url()->setQueryString( array( 'do' => 'download', 'r' => $k, 'confirm' => 1, 't' => 1 ) )->csrf()}' class='ipsButton ipsButton_primary ipsButton_small' data-action="download" {{if member.group['idm_wait_period']}}data-wait='true'{{endif}}>{lang="download"}</a>
|
||||
<a href='{$fileObject->url()->setQueryString( array( 'do' => 'download', 'r' => $k, 'confirm' => 1, 't' => 1, 'version' => isset( \IPS\Request::i()->version ) ? \IPS\Request::i()->version : NULL ) )->csrf()}' class='ipsButton ipsButton_primary ipsButton_small' data-action="download" {{if member.group['idm_wait_period']}}data-wait='true'{{endif}}>{lang="download"}</a>
|
||||
</div>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
</ul>
|
||||
</div>]]></template>
|
||||
<template template_group="view" template_name="reviews" template_data="$file" template_location="front" template_app="downloads"><![CDATA[<div data-controller='core.front.core.commentFeed' {{if settings.auto_polling_enabled}}data-autoPoll{{endif}} data-commentsType='reviews' data-baseURL='{$file->url()}' {{if $file->isLastPage('reviews')}}data-lastPage{{endif}} data-feedID='file-{$file->id}-reviews' id='reviews'>
|
||||
{{if $file->canReview()}}
|
||||
{{if $file->reviewForm()}}
|
||||
{{if $file->locked()}}
|
||||
<strong class='ipsType_warning'><i class='fa fa-info-circle'></i> {lang="item_locked_can_review"}</strong>
|
||||
{{endif}}
|
||||
@@ -1394,16 +1421,18 @@
|
||||
{$file->reviewForm()|raw}
|
||||
</div>
|
||||
{{else}}
|
||||
{{if $file->locked()}}
|
||||
{template="commentUnavailable" group="forms" location="front" app="core" params="'item_locked_cannot_comment'"}
|
||||
{{elseif \IPS\Member::loggedin()->restrict_post}}
|
||||
{template="commentUnavailable" group="forms" location="front" app="core" params="'restricted_cannot_comment', \IPS\Member::loggedIn()->warnings(5,NULL,'rpa'), \IPS\Member::loggedIn()->restrict_post"}
|
||||
{{elseif $file->hasReviewed()}}
|
||||
{{if $file->hasReviewed()}}
|
||||
<!-- Already reviewed -->
|
||||
{{elseif $file->locked()}}
|
||||
{template="commentUnavailable" group="forms" location="front" app="core" params="'item_locked_cannot_review'"}
|
||||
{{elseif \IPS\Member::loggedin()->restrict_post}}
|
||||
{{if \IPS\Member::loggedIn()->restrict_post == -1}}
|
||||
{template="reviewUnavailable" group="forms" location="front" app="core" params="'restricted_cannot_comment'"}
|
||||
{{else}}
|
||||
{template="reviewUnavailable" group="forms" location="front" app="core" params="'restricted_cannot_comment', \IPS\Member::loggedIn()->warnings(5,NULL,'rpa'), \IPS\Member::loggedIn()->restrict_post"}
|
||||
{{endif}}
|
||||
{{elseif $file->mustDownloadBeforeReview()}}
|
||||
<p class='ipsType_reset ipsType_light ipsType_normal'>{lang="no_download_review"}</p>
|
||||
{{elseif \IPS\Member::loggedIn()->restrict_post}}
|
||||
{template="reviewUnavailable" group="forms" location="front" app="core" params="'restricted_cannot_comment'"}
|
||||
{{elseif \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings']}}
|
||||
{template="reviewUnavailable" group="forms" location="front" app="core" params="'unacknowledged_warning_cannot_post', \IPS\Member::loggedIn()->warnings( 1, FALSE )"}
|
||||
{{endif}}
|
||||
@@ -1429,7 +1458,7 @@
|
||||
</div>
|
||||
|
||||
<div data-role='commentFeed' data-controller='core.front.core.moderation'>
|
||||
<form action="{$file->url()->setQueryString( 'do', 'multimodReview' )}" method="post" data-ipsPageAction data-role='moderationTools'>
|
||||
<form action="{$file->url()->csrf()->setQueryString( 'do', 'multimodReview' )}" method="post" data-ipsPageAction data-role='moderationTools'>
|
||||
{{$reviewCount=0; $timeLastRead = $file->timeLastRead(); $lined = FALSE;}}
|
||||
{{foreach $file->reviews() as $review}}
|
||||
{{if !$lined and $timeLastRead and $timeLastRead->getTimestamp() < $review->mapped('date')}}
|
||||
@@ -1455,41 +1484,48 @@
|
||||
<template template_group="view" template_name="view" template_data="$file, $commentsAndReviews, $versionData, $previousVersions, $next=NULL, $prev=NULL, $cfields=array()" template_location="front" template_app="downloads"><![CDATA[<div itemscope itemtype="http://schema.org/CreativeWork">
|
||||
<div class='{{if $file->primary_screenshot}}ipsColumns ipsColumns_collapsePhone{{endif}} ipsClearfix'>
|
||||
<div {{if $file->primary_screenshot_thumb}}class='ipsColumn ipsColumn_fluid'{{endif}}>
|
||||
<h1 class='ipsType_pageTitle ipsType_break'>
|
||||
{{if $file->prefix()}}
|
||||
{template="prefix" group="global" app="core" params="$file->prefix( TRUE ), $file->prefix()"}
|
||||
<h1 class='ipsType_pageTitle ipsContained_container'>
|
||||
|
||||
{{if $file->prefix() OR ( $file->canEdit() AND $file::canTag( NULL, $file->container() ) AND $file::canPrefix( NULL, $file->container() ) )}}
|
||||
<span {{if !$file->prefix()}}class='ipsHide'{{endif}} {{if ( $file->canEdit() AND $file::canTag( NULL, $file->container() ) AND $file::canPrefix( NULL, $file->container() ) )}}data-editablePrefix{{endif}}>
|
||||
{template="prefix" group="global" app="core" params="$file->prefix( TRUE ), $file->prefix()"}
|
||||
</span>
|
||||
{{endif}}
|
||||
|
||||
{{if $file->locked()}}<i class='fa fa-lock'></i> {{endif}}{wordbreak="$file->name"} {$file->version}
|
||||
{{if $file->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
{{elseif $file->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$file->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->canUnfeature()}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $file->canEdit()}}
|
||||
<div class='ipsType_break ipsContained' data-controller="core.front.core.moderation">
|
||||
{{if $file->locked()}}<i class='fa fa-lock'></i> {{endif}}<span data-role="editableTitle" title="{lang="click_hold_edit"}">{$file->name}</span> {$file->version}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class='ipsType_break ipsContained'>{{if $file->locked()}}<i class='fa fa-lock'></i> {{endif}}{$file->name} {$file->version}</div>
|
||||
{{endif}}
|
||||
</h1>
|
||||
|
||||
{{if \IPS\Application::appIsEnabled( 'nexus' ) and settings.idm_nexus_on}}
|
||||
{{if $file->isPaid()}}
|
||||
<p class="ipsType_pageTitle ipsType_reset ipsSpacer_top ipsSpacer_half">
|
||||
{{if $price = $file->price()}}
|
||||
<span class='cFilePrice'>{$price|raw}</span>
|
||||
{{if $renewalTerm = $file->renewalTerm()}}
|
||||
<span class='ipsType_light'>· {lang="file_renewal_term_val" sprintf="$renewalTerm"}</span>
|
||||
{{endif}}
|
||||
{{else}}
|
||||
<span class='cFilePrice'>{lang="file_free"}</span>
|
||||
{{endif}}
|
||||
</p>
|
||||
{{endif}}
|
||||
|
||||
{{if $file->container()->bitoptions['reviews']}}
|
||||
<span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
|
||||
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
|
||||
<meta itemprop='ratingValue' content='{$file->averageReviewRating()}'>
|
||||
<meta itemprop='reviewCount' content='{$file->reviews}'>
|
||||
{template="rating" group="global" location="front" app="core" params="'large', $file->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of"} <span class='ipsType_normal ipsType_light'>({lang="num_reviews" pluralize="$file->reviews"})</span>
|
||||
</span>
|
||||
{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>
|
||||
</div>
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsPos_right ipsResponsive_noFloat ipsResponsive_hidePhone'>
|
||||
@@ -1507,7 +1543,7 @@
|
||||
{{if $file->author()->member_id OR $file->canChangeAuthor()}}
|
||||
<ul class='ipsList_inline'>
|
||||
{{if $file->author()->member_id}}
|
||||
<li><a href='{url="app=core&module=members&controller=members&id={$file->author()->member_id}&do=content&type=downloads_file" base="front" seoTitles="$file->author()->members_seo_name" seoTemplate="profile_content"}'>{lang="find_users_files"}</a></li>
|
||||
<li><a href='{url="app=core&module=members&controller=profile&id={$file->author()->member_id}&do=content&type=downloads_file" base="front" seoTitles="$file->author()->members_seo_name" seoTemplate="profile_content"}'>{lang="find_users_files"}</a></li>
|
||||
{{endif}}
|
||||
{{if $file->canChangeAuthor()}}
|
||||
<li><a href='{$file->url()->setQueryString( array( 'do' => 'changeAuthor' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="change_author_d"}" title='{lang="change_author_title"}'>{lang="change_author_d"}</a></li>
|
||||
@@ -1517,9 +1553,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{if count( $file->tags() )}}
|
||||
{template="tags" group="global" app="core" params="$file->tags()"}
|
||||
{{endif}}
|
||||
{{if count( $file->tags() ) OR ( $file->canEdit() AND $file::canTag( NULL, $file->container() ) )}}
|
||||
{template="tags" group="global" app="core" params="$file->tags(), FALSE, FALSE, ( $file->canEdit() AND $file::canTag( NULL, $file->container() ) ) ? $file->url() : NULL"}
|
||||
{{endif}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1567,7 +1603,7 @@
|
||||
<h2 class='ipsType_sectionHead'>{lang="file_desc"}</h2>
|
||||
<section class='ipsType_normal ipsSpacer_top'>
|
||||
<div class='ipsType_richText ipsContained ipsType_break' itemprop='text' data-controller='core.front.core.lightboxedImages'>
|
||||
{$file->desc|raw}
|
||||
{$file->content()|raw}
|
||||
</div>
|
||||
|
||||
{{if $versionData['b_changelog'] or !empty( $previousVersions )}}
|
||||
@@ -1581,10 +1617,10 @@
|
||||
<ul class='ipsMenu ipsMenu_selectable ipsMenu_auto ipsHide' id='elChangelog_menu'>
|
||||
<li class='ipsMenu_item {{if !request.changelog}}ipsMenu_itemChecked{{endif}}' data-ipsMenuValue='{$file->version}'><a href='{$file->url()->setQuerystring( 'changelog', 0 )}' title='{lang="see_changelog_for" sprintf="$file->version"}'>{$file->version}</a></li>
|
||||
{{foreach $previousVersions as $version}}
|
||||
<li class='ipsMenu_item {{if request.changelog == $version['b_id']}}ipsMenu_itemChecked{{endif}} {{if $version['b_hidden']}}ipsModerated{{endif}}' data-ipsMenuValue='{$version['b_version']}'>
|
||||
<li class='ipsMenu_item {{if request.changelog == $version['b_id']}}ipsMenu_itemChecked{{endif}} {{if $version['b_hidden']}}ipsModerated{{endif}}' data-ipsMenuValue='{expression="md5( $version['b_version'] . $version['b_backup'] . mt_rand() )"}' data-changelogTitle="{$version['b_version']}">
|
||||
<a href='{$file->url()->setQueryString( 'changelog', $version['b_id'] )}' title='{lang="see_changelog_for" sprintf="$version['b_version']"}'>
|
||||
{$version['b_version']}<br>
|
||||
<span class='ipsType_light'>{expression="\IPS\DateTime::ts( $version['b_updated'] )->html()" raw="true"}</span>
|
||||
<span class='ipsType_light'>{expression="\IPS\DateTime::ts( $version['b_backup'] )->html()" raw="true"}</span>
|
||||
</a>
|
||||
</li>
|
||||
{{endforeach}}
|
||||
@@ -1658,10 +1694,14 @@
|
||||
{template="downloadButton" group="view" app="downloads" params="$file"}
|
||||
{{endif}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important'><i class='fa fa-shopping-cart'></i> {lang="buy_now"} - {$file->price()|raw}</a>
|
||||
<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important'><i class='fa fa-shopping-cart'></i> {lang="buy_now"}{{if $price = $file->price()}} - {$price|raw}{{endif}}</a>
|
||||
</li>
|
||||
{{else}}
|
||||
{template="downloadButton" group="view" app="downloads" params="$file"}
|
||||
{{if $file->canDownload() or !$file->downloadTeaser()}}
|
||||
{template="downloadButton" group="view" app="downloads" params="$file"}
|
||||
{{else}}
|
||||
{$file->downloadTeaser()|raw}
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
{{if ( isset( $purchasesToRenew ) or $purchasesToRenew = $file->purchasesToRenew() ) and count( $purchasesToRenew )}}
|
||||
<li class='ipsToolList_primaryAction'>
|
||||
@@ -1693,16 +1733,16 @@
|
||||
<span class="ipsDataItem_generic cFileInfoData">{number="$file->views"}</span>
|
||||
<meta itemprop='interactionCount' content='UserPageVisits:{$file->views}'>
|
||||
</li>
|
||||
{{if $file->price() and in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
{{if $file->isPaid() and !$file->nexus and in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
<li class="ipsDataItem" title='{lang="x_downloads" pluralize="$file->downloads"}' data-ipsTooltip>
|
||||
<span class="ipsDataItem_generic ipsDataItem_size3"><strong>{lang="idm_purchases"}</strong></span>
|
||||
<span class="ipsDataItem_generic cFileInfoData">{$file->purchaseCount()}</span>
|
||||
<meta itemprop='interactionCount' content='UserDownloads:{$file->downloads}'>
|
||||
</li>
|
||||
{{endif}}
|
||||
{{if $file->container()->log !==0 AND ( !$file->price() or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) ) ) }}
|
||||
{{if !$file->isPaid() or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) ) }}
|
||||
<li class="ipsDataItem">
|
||||
<span class="ipsDataItem_generic ipsDataItem_size3"><strong>{lang="downloads"}</strong></span>
|
||||
<span class="ipsDataItem_generic ipsDataItem_size3"><strong>{lang="downloads_file_info"}</strong></span>
|
||||
<span class="ipsDataItem_generic cFileInfoData">{number="$file->downloads"}</span>
|
||||
<meta itemprop='interactionCount' content='UserDownloads:{$file->downloads}'>
|
||||
</li>
|
||||
@@ -1752,9 +1792,9 @@
|
||||
<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_file"}" rel="prev">
|
||||
<a href="{$prev->url()}" title="{lang="prev_file"}">
|
||||
<span class="ipsPager_type">{lang="prev_file"}</span>
|
||||
<span class="ipsPager_title ipsType_light ipsType_break">{wordbreak="$prev->mapped('title')"}</span>
|
||||
<span class="ipsPager_title ipsType_light ipsTruncate ipsTruncate_line">{$prev->mapped('title')}</span>
|
||||
</a>
|
||||
</div>
|
||||
{{else}}
|
||||
@@ -1762,9 +1802,9 @@
|
||||
{{endif}}
|
||||
{{if $next !== NULL}}
|
||||
<div class="ipsGrid_span6 ipsType_right ipsPager_next">
|
||||
<a href="{$next->url()}" title="{lang="next_file"}" rel="next">
|
||||
<a href="{$next->url()}" title="{lang="next_file"}">
|
||||
<span class="ipsPager_type">{lang="next_file"}</span>
|
||||
<span class="ipsPager_title ipsType_light ipsType_break">{wordbreak="$next->mapped('title')"}</span>
|
||||
<span class="ipsPager_title ipsType_light ipsTruncate ipsTruncate_line">{$next->mapped('title')}</span>
|
||||
</a>
|
||||
</div>
|
||||
{{else}}
|
||||
@@ -1796,9 +1836,9 @@
|
||||
{template="userPhoto" group="global" app="core" params="$comment->author(), 'tiny'"}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<a href="{$comment->url()}" class='ipsType_medium ipsType_break'>{wordbreak="$comment->item()->name"}</a><br>
|
||||
<p class='ipsType_reset ipsType_light ipsType_medium ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$comment->author()->link()"} · <a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$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}}'>
|
||||
<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()"} · <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>
|
||||
</div>
|
||||
@@ -1822,7 +1862,7 @@
|
||||
{template="reputationBadge" group="global" app="core" params="$comment->author()"}
|
||||
</h3>
|
||||
<p class='ipsComment_meta ipsType_light ipsType_medium'>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$comment->dateLine()|raw}</a>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a>
|
||||
{{if $comment->editLine()}}
|
||||
({lang="edited_lc"})
|
||||
{{endif}}
|
||||
@@ -1841,10 +1881,10 @@
|
||||
</div>
|
||||
|
||||
<div class='ipsPad ipsClearfix'>
|
||||
{{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}
|
||||
{{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight and settings.reputation_enabled}}
|
||||
<strong class='ipsComment_popularFlag' data-ipsTooltip title='{lang="this_is_a_popular_comment"}'><i class='fa fa-star'></i></strong>
|
||||
{{endif}}
|
||||
<a href="{$comment->url()}" class='ipsDataItem_title ipsType_break'>{wordbreak="$comment->item()->name"}</a><br>
|
||||
<div class='ipsType_break ipsContained'><a href="{$comment->url()}" class='ipsDataItem_title ipsTruncate ipsTruncate_line'>{$comment->item()->name}</a></div>
|
||||
<div data-role='commentContent' class='ipsType_normal ipsType_richText ipsType_break ipsContained' data-controller='core.front.core.lightboxedImages'>
|
||||
{{if $comment->hidden() === 1 && $comment->author()->member_id == \IPS\Member::loggedIn()->member_id}}
|
||||
<strong class='ipsType_medium ipsType_warning'><i class='fa fa-info-circle'></i> {lang="comment_awaiting_approval"}</strong>
|
||||
@@ -1878,10 +1918,10 @@
|
||||
{template="userPhoto" group="global" app="core" params="$comment->author(), 'tiny'"}
|
||||
</div>
|
||||
<div class='ipsDataItem_main'>
|
||||
<a href="{$comment->url()}" class='ipsDataItem_title ipsType_break'>{wordbreak="$comment->item()->name"}</a><br>
|
||||
<span class='ipsType_light ipsType_small'>{lang="byline_nodate" htmlsprintf="$comment->author()->link()"} · <a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$comment->dateLine()|raw}</a></span>
|
||||
<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' => 'findComment', 'comment' => $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}}'>
|
||||
<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}
|
||||
</div>
|
||||
</div>
|
||||
@@ -1904,7 +1944,7 @@
|
||||
{template="reputationBadge" group="global" app="core" params="$comment->author()"}
|
||||
</h3>
|
||||
<p class='ipsComment_meta ipsType_light ipsType_medium'>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks' title='{lang="share_this_comment"}'>{$comment->dateLine()|raw}</a>
|
||||
<a href='{$comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->id ) )}' class='ipsType_blendLinks'>{$comment->dateLine()|raw}</a>
|
||||
{{if $comment->editLine()}}
|
||||
({lang="edited_lc"})
|
||||
{{endif}}
|
||||
@@ -1923,10 +1963,10 @@
|
||||
</div>
|
||||
|
||||
<div class='ipsPad'>
|
||||
{{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight}}
|
||||
{{if in_array( 'IPS\Content\Reputation', class_implements( $comment ) ) and settings.reputation_highlight and $comment->reputation() >= settings.reputation_highlight and settings.reputation_enabled}}
|
||||
<strong class='ipsComment_popularFlag' data-ipsTooltip title='{lang="this_is_a_popular_comment"}'><i class='fa fa-star'></i></strong>
|
||||
{{endif}}
|
||||
<a href="{$comment->url()}" class='ipsDataItem_title ipsType_break'>{wordbreak="$comment->item()->name"}</a><br>
|
||||
<div class='ipsType_break ipsContained'><a href="{$comment->url()}" class='ipsDataItem_title ipsTruncate ipsTruncate_line'>{$comment->item()->name}</a></div>
|
||||
<div data-role='commentContent' class='ipsType_normal ipsType_richText ipsType_break ipsContained' data-controller='core.front.core.lightboxedImages'>
|
||||
{{if $comment->hidden() === 1 && $comment->author()->member_id == \IPS\Member::loggedIn()->member_id}}
|
||||
<strong class='ipsType_medium ipsType_warning'><i class='fa fa-info-circle'></i> {lang="comment_awaiting_approval"}</strong>
|
||||
@@ -1988,7 +2028,7 @@
|
||||
{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>
|
||||
<a href="{$latestFile->url()}" title='{lang="view_this_file" sprintf="$latestFile->name"}' class='ipsTruncate ipsTruncate_line'>{wordbreak="$latestFile->name"}</a>
|
||||
<div class='ipsType_break ipsContained'><a href="{$latestFile->url()}" 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> {$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>
|
||||
@@ -2021,7 +2061,7 @@
|
||||
<div class='ipsGrid_span{$span} ipsType_left cNewestMember'>
|
||||
<div id='elDownloadStatsLatest' class='ipsClearfix'>
|
||||
<span class='ipsType_minorHeading'>{lang="latest_file"}</span><br>
|
||||
<a href="{$latestFile->url()}" title='{lang="view_this_file" sprintf="$latestFile->name"}' class='ipsTruncate ipsTruncate_line'>{wordbreak="$latestFile->name"}</a>
|
||||
<div class='ipsType_break ipsContained'><a href="{$latestFile->url()}" 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> {$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>
|
||||
@@ -2060,31 +2100,32 @@
|
||||
</div>]]></template>
|
||||
<template template_group="widgets" template_name="fileRow" template_data="$file, $orientation='vertical'" template_location="front" template_app="downloads"><![CDATA[<li class='ipsDataItem {{if $orientation == 'horizontal'}}ipsGrid_span3{{endif}}'>
|
||||
<div class='ipsDataItem_icon ipsPos_top'>
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot, $file->name, 'tiny'"}
|
||||
{template="thumbImage" group="global" app="core" params="$file->primary_screenshot_thumb, $file->name, 'tiny'"}
|
||||
{{$price = NULL;}}
|
||||
{{if \IPS\Application::appIsEnabled( 'nexus' ) and settings.idm_nexus_on}}
|
||||
<p class="cFilePrice ipsType_reset ipsType_medium ipsType_center">
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
<p class="cWidgetPrice ipsType_reset ipsType_medium ipsType_center">
|
||||
{{if $file->isPaid()}}
|
||||
{{if $price = $file->price()}}
|
||||
{$price|raw}
|
||||
{{endif}}
|
||||
{{else}}
|
||||
{lang="file_free"}
|
||||
{lang="file_free_feed"}
|
||||
{{endif}}
|
||||
</p>
|
||||
{{endif}}
|
||||
</div>
|
||||
<div class='ipsDataItem_main ipsType_break'>
|
||||
<a href="{$file->url()}" title='{lang="view_this_file" sprintf="$file->name"}'>{wordbreak="$file->name"}</a>
|
||||
<br>
|
||||
<div class='ipsDataItem_main'>
|
||||
<div class='ipsType_break ipsContained'><a href="{$file->url()}" 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()"}</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}}
|
||||
|
||||
<span class='ipsType_medium ipsType_reset ipsType_noBreak'>
|
||||
{{if $file->price() and in_array( 'purchases', explode( ',', settings.idm_nexus_display ) )}}
|
||||
{{if $file->isPaid() 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->price() or in_array( 'downloads', explode( ',', settings.idm_nexus_display ) )}}
|
||||
{{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-arrow-circle-down'></i> {$file->downloads}</span>
|
||||
{{endif}}
|
||||
|
||||
@@ -2230,7 +2271,7 @@
|
||||
<div class='ipsDataItem_main ipsPhotoPanel ipsPhotoPanel_tiny'>
|
||||
{template="userPhoto" app="core" group="global" params="$data['member'], 'tiny'"}
|
||||
<div>
|
||||
<a href='{url="app=core&module=members&controller=members&id={$data['member']->member_id}&do=content&type=downloads_file" base="front" seoTitles="$data['member']->members_seo_name" seoTemplate="profile_content"}' class='ipsType_truncate ipsType_truncateLine'>{$data['member']->name}</a><br>
|
||||
<a href='{url="app=core&module=members&controller=profile&id={$data['member']->member_id}&do=content&type=downloads_file" base="front" seoTitles="$data['member']->members_seo_name" seoTemplate="profile_content"}' class='ipsType_truncate ipsType_truncateLine'>{$data['member']->name}</a><br>
|
||||
<span class='ipsType_small'><strong>{lang="download_file_count" pluralize="$data['files']"}</strong> · <span data-ipsTooltip title='{lang="top_avg_rating"}'>{template="rating" group="global" location="front" app="core" params="'small', $data['rating'], \IPS\Settings::i()->reviews_rating_out_of"}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2409,6 +2450,26 @@
|
||||
.cFileInfoData {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* CATEGORY TABLE */
|
||||
.cDownloadsCategoryTable .ipsDataItem_generic .ipsThumb.ipsThumb_medium {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.cDownloadsCategoryTable .ipsDataItem_modCheck {
|
||||
top: auto;
|
||||
bottom: 30px;
|
||||
}
|
||||
|
||||
html[dir="ltr"] .cDownloadsCategoryTable .ipsDataItem_modCheck {
|
||||
right: 10px;
|
||||
left: auto;
|
||||
}
|
||||
html[dir="rtl"] .cDownloadsCategoryTable .ipsDataItem_modCheck {
|
||||
left: 10px;
|
||||
right: auto;
|
||||
}
|
||||
}</css>
|
||||
<css css_location="front" css_app="downloads" css_attributes="" css_path="." css_name="downloads.css"><![CDATA[#elDownloadsFeatured .ipsCarousel_item {
|
||||
height: 205px;
|
||||
@@ -2507,12 +2568,32 @@ html[dir="rtl"] #elDownloadStatsLatest > div:not( .ipsNoThumb ) {
|
||||
|
||||
#elURLFiles, #elImportFiles, #elURLScreenshots {
|
||||
position: relative;
|
||||
}]]></css>
|
||||
}
|
||||
|
||||
.cDownloadsLinkedScreenshotItem {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.cDownloadsLinkedScreenshotItem_block {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
html[dir="ltr"] .cDownloadsLinkedScreenshotItem_block {
|
||||
margin-left: 5px;
|
||||
}
|
||||
html[dir="rtl"] .cDownloadsLinkedScreenshotItem_block {
|
||||
margin-right: 5px;
|
||||
}
|
||||
.cDownloadsLinkedScreenshotItem_block i {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
]]></css>
|
||||
<css css_location="front" css_app="downloads" css_attributes="" css_path="." css_name="widgets.css">.cDownloadsWidget_statsNumber {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.cFilePrice {
|
||||
.cWidgetPrice {
|
||||
color: {theme="price"};
|
||||
text-transform: uppercase;
|
||||
font-weight: 500;
|
||||
@@ -2521,7 +2602,7 @@ html[dir="rtl"] #elDownloadStatsLatest > div:not( .ipsNoThumb ) {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.cFilePrice .cNexusPrice_from {
|
||||
.cWidgetPrice .cNexusPrice_from {
|
||||
font-size: 9px;
|
||||
}</css>
|
||||
</theme>
|
||||
Reference in new issue
Block a user