Version 4.7.6

This commit is contained in:
Neo committed 2025-12-19 16:05:19 -08:00
1 parent 8ba7d43898
commit 7b7404e741
1085 files changed
+30590 -7837

No files matched your search

+193 -190
View File
@@ -698,21 +698,22 @@
</li>
{{endif}}
</ul>
<form action='{$table->baseUrl}' method='post'>
<input type='hidden' name='csrfKey' value='{expression="\IPS\Session::i()->csrfKey"}'>
<ul class='ipsButtonRow ipsPos_right ipsClearfix'>
<li>
<button type='submit' name='thumbnailSize' value='thumb' data-ipsTooltip title='{lang="view_as_thumbnails"}' class='ipsCursor_pointer{{if !isset( \IPS\Request::i()->cookie['thumbnailSize'] ) OR \IPS\Request::i()->cookie['thumbnailSize'] == 'thumb' }} ipsButtonRow_active{{endif}}'><i class='fa fa-th-large'></i></button>
</li>
<li>
<button type='submit' name='thumbnailSize' value='large' data-ipsTooltip title='{lang="view_as_large"}' class='ipsCursor_pointer{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'large' }} ipsButtonRow_active{{endif}}'><i class='fa fa-square'></i></button>
</li>
<li>
<button type='submit' name='thumbnailSize' value='rows' data-ipsTooltip title='{lang="view_as_list"}' class='ipsCursor_pointer{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'rows' }} ipsButtonRow_active{{endif}}'><i class='fa fa-th-list'></i></button>
</li>
</ul>
</form>
{{if member.member_id}}
<form action='{$table->baseUrl}' method='post'>
<input type='hidden' name='csrfKey' value='{expression="\IPS\Session::i()->csrfKey"}'>
<ul class='ipsButtonRow ipsPos_right ipsClearfix'>
<li>
<button type='submit' name='thumbnailSize' value='thumb' data-ipsTooltip title='{lang="view_as_thumbnails"}' class='ipsCursor_pointer{{if !isset( \IPS\Request::i()->cookie['thumbnailSize'] ) OR \IPS\Request::i()->cookie['thumbnailSize'] == 'thumb' }} ipsButtonRow_active{{endif}}'><i class='fa fa-th-large'></i></button>
</li>
<li>
<button type='submit' name='thumbnailSize' value='large' data-ipsTooltip title='{lang="view_as_large"}' class='ipsCursor_pointer{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'large' }} ipsButtonRow_active{{endif}}'><i class='fa fa-square'></i></button>
</li>
<li>
<button type='submit' name='thumbnailSize' value='rows' data-ipsTooltip title='{lang="view_as_list"}' class='ipsCursor_pointer{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'rows' }} ipsButtonRow_active{{endif}}'><i class='fa fa-th-list'></i></button>
</li>
</ul>
</form>
{{endif}}
<div data-role="tablePagination" {{if $table->pages <= 1}}class='ipsHide'{{endif}}>
{template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit"}
@@ -1431,7 +1432,13 @@
</div>
</article>
</div>
]]></template>
{{if $reason = $item->approvalQueueReason()}}
<br>
<div class='ipsType_sectionTitle'>{lang="reason_for_approval"}</div>
<div class='ipsAreaBackground_light ipsBorder_bottom ipsPadding:half'>
<p class='ipsType_light'>{$reason}</p>
</div>
{{endif}}]]></template>
<template template_group="global" template_name="comment" template_data="$item, $comment, $editorName, $app, $type, $class=''" template_location="front" template_app="gallery"><![CDATA[{{$idField = $comment::$databaseColumnId;}}
<div id='comment-{$comment->$idField}_wrap' data-controller='core.front.core.comment' data-commentApp='{$app}' data-commentType='{$type}' data-commentID="{$comment->$idField}" data-quoteData='{expression="json_encode( array('userid' => $comment->author()->member_id, 'username' => $comment->author()->name, 'timestamp' => $comment->mapped('date'), 'contentapp' => $app, 'contenttype' => $type, 'contentclass' => $class, 'contentid' => $item->id, 'contentcommentid' => $comment->$idField) )"}' class='ipsComment_content ipsType_medium'>
@@ -3302,12 +3309,10 @@
</div>
{{endif}}
<span class='elGalleryImageNav'>
{{if $prev = $image->prevItem()}}
<a href='{$prev->url()->setQueryString( 'browse', 1 )}' class='elGalleryImageNav_prev' title='{$prev->caption}'><i class='fa fa-angle-left'></i></a>
{{endif}}
{{if $next = $image->nextItem()}}
<a href='{$next->url()->setQueryString( 'browse', 1 )}' class='elGalleryImageNav_next' title='{$next->caption}'><i class='fa fa-angle-right'></i></a>
{{endif}}
{{if $image->hasPreviousOrNext()}}
<a href='{$image->url()->setQueryString( [ 'browse' => 1, 'do' => 'previous' ] )}' class='elGalleryImageNav_prev'><i class='fa fa-angle-left'></i></a>
<a href='{$image->url()->setQueryString( [ 'browse' => 1, 'do' => 'next' ] )}' class='elGalleryImageNav_next'><i class='fa fa-angle-right'></i></a>
{{endif}}
</span>
</div>]]></template>
<template template_group="view" template_name="imageInfo" template_data="$image" template_location="front" template_app="gallery"><![CDATA[
@@ -3360,7 +3365,7 @@
{{endif}}
</h1>
{{if \count( $image->tags() ) OR ( $image->canEdit() AND $image::canTag( NULL, $image->container() ) )}}
{template="tags" group="global" app="core" params="$image->tags(), FALSE, FALSE, ( $image->canEdit() AND $image::canTag( NULL, $image->container() ) ) ? $image->url() : NULL"}
{template="tags" group="global" app="core" params="$image->tags(), FALSE, FALSE, ( $image->canEdit() AND ( \count( $image->tags() ) OR $image::canTag( NULL, $image->container() ) ) ) ? $image->url() : NULL"}
{{endif}}
</div>
</div>
@@ -3563,7 +3568,7 @@
<hr class='ipsHr'>
{{endif}}
{{if \count($image->metadata)}}
{{if \is_countable($image->metadata) AND \count($image->metadata)}}
<h2 class='ipsType_minorHeading ipsType_break'>{lang="gallery_metadata" sprintf="$image->caption"}</h2>
<div class='cGalleryExif'>
{{if isset( $image->metadata['EXIF.FocalLength'] ) || ( isset( $image->metadata['IFD0.Make'] ) AND isset( $image->metadata['IFD0.Model'] ) ) || isset( $image->metadata['EXIF.ShutterSpeedValue'] ) || isset( $image->metadata['COMPUTED.ApertureFNumber'] ) || isset( $image->metadata['Exif.Photo.ISOSpeed'] )}}
@@ -3823,12 +3828,10 @@
</div>
<span class='elGalleryImageNav'>
{{if $prev = $image->prevItem( \IPS\Request::i()->context )}}
<a href='{$prev->url()->setQueryString( array( 'browse' => 1, 'lightbox' => 1, 'context' => \IPS\Request::i()->context ) )}' class='elGalleryImageNav_prev' data-action='prevImage' data-imageID='{$prev->id}' title='{$prev->caption}'><i class='fa fa-angle-left'></i></a>
{{endif}}
{{if $next = $image->nextItem( \IPS\Request::i()->context )}}
<a href='{$next->url()->setQueryString( array( 'browse' => 1, 'lightbox' => 1, 'context' => \IPS\Request::i()->context ) )}' class='elGalleryImageNav_next' data-action='nextImage' data-imageID='{$next->id}' title='{$next->caption}'><i class='fa fa-angle-right'></i></a>
{{endif}}
{{if $image->hasPreviousOrNext()}}
<a href='{$image->url()->setQueryString( [ 'browse' => 1, 'do' => 'previous' ] )}' class='elGalleryImageNav_prev'><i class='fa fa-angle-left'></i></a>
<a href='{$image->url()->setQueryString( [ 'browse' => 1, 'do' => 'next' ] )}' class='elGalleryImageNav_next'><i class='fa fa-angle-right'></i></a>
{{endif}}
</span>
</div>]]></template>
<template template_group="view" template_name="imageLightboxInfo" template_data="$image, $commentsAndReviews" template_location="front" template_app="gallery"><![CDATA[<div data-role='imageDescription' {{if $image->hidden() === -1}}class='ipsModerated'{{endif}}>
@@ -3926,7 +3929,7 @@
{{if \count( $image->tags() ) OR ( $image->canEdit() AND $image::canTag( NULL, $image->container() ) )}}
<div class='ipsClear'>
{template="tags" group="global" app="core" params="$image->tags(), FALSE, FALSE, ( $image->canEdit() AND $image::canTag( NULL, $image->container() ) ) ? $image->url() : NULL"}
{template="tags" group="global" app="core" params="$image->tags(), FALSE, FALSE, ( $image->canEdit() AND ( \count( $image->tags() ) OR $image::canTag( NULL, $image->container() ) ) ) ? $image->url() : NULL"}
</div>
{{endif}}
@@ -5599,165 +5602,165 @@ html[dir] .cGalleryLightbox_info .ipsRecommendedComments .ipsComment_recommended
.elGalleryImage .ipsType_pageTitle input[type='text']{
color: rgb( var(--theme-text_color) );
}]]></css>
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="global.css"><![CDATA[.cGalleryAlbums_recent > ul {
height: 204px;
position: relative;
overflow: hidden;
}
html[dir="ltr"] .cGalleryAlbums_recent > ul {
padding-left: 208px;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul {
padding-right: 208px;
}
.cGalleryAlbums_recent > ul > li {
width: 100px;
height: 100px;
float: left;
position: relative;
margin: 0 0 4px 4px;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul > li {
float: right;
margin: 0 4px 4px 0;
}
.cGalleryAlbums_recent > ul > li a {
display: block;
width: 100px;
height: 100px;
}
.cGalleryAlbums_recent > ul > li span {
padding-right: 7px;
text-align: right;
font-size: {fontsize="x_small"};
font-weight: bold;
color: #fff;
position: absolute;
left: 0;
right: 0;
bottom: 0;
line-height: 26px;
text-shadow: 1px 1px 0px rgba(0,0,0,0.8);
background-image: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
}
html[dir="rtl"] .cGalleryAlbums_recent > ul > li span {
text-align: left;
}
.cGalleryAlbums_recent > ul > li img {
display: none;
}
.cGalleryAlbums_recent > ul > li:first-child {
width: 204px;
height: 204px;
overflow: hidden;
position: absolute;
}
html[dir="ltr"] .cGalleryAlbums_recent > ul > li:first-child {
left: 0;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul > li:first-child {
right: 0;
}
.cGalleryAlbums_recent > ul > li:first-child a {
width: 204px;
height: 204px;
}
/* Restyle the above for the sidebar */
.ipsWidget_vertical .cGalleryAlbums_recent > ul{
padding: 0 !important;
display: flex;
flex-wrap: wrap;
height: auto;
}
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li:first-child,
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li:first-child a,
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li,
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li a{
width: auto;
height: auto;
position: static;
}
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li{
flex: 0 0 calc(33.3% - 4px);
max-width: 120px; /* Used if a widget stretches to 100% of the viewport one it wraps */
}
/* Since results are unlimited, display a maximum of 12 using css */
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li:nth-child(12) ~ li{
display: none;
}
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li a::before{
content: '';
display: block;
padding-top: 100%;
}
/* General style which creates the square thumb container */
.cGalleryTrimmedImage {
background-color: #333;
background-size: cover;
background-position: 50%;
background-repeat: no-repeat;
overflow: hidden;
border: .5px solid #333;
}
.cGalleryTrimmedImage img {
display: none;
}
.cGalleryThumb {
max-width: 170px;
max-height: 170px;
}
.cGalleryAlbumThumb {
width: 280px;
height: 235px;
}
@media screen and (max-width: 767px) {
.ipsApp .cGalleryAlbums_recent {
padding: 0;
margin-bottom: 3px;
}
.cGalleryAlbums_recent > ul {
height: 134px;
}
html[dir="ltr"] .cGalleryAlbums_recent > ul {
padding-left: 138px;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul {
padding-right: 138px;
}
.cGalleryAlbums_recent > ul > li:first-child,
.cGalleryAlbums_recent > ul > li:first-child a {
width: 134px;
height: 134px;
}
.cGalleryAlbums_recent > ul > li,
.cGalleryAlbums_recent > ul > li a {
width: 65px;
height: 65px;
}
.cGalleryAlbums_recent + ul.ipsList_inline {
padding-left: 4px;
}
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="global.css"><![CDATA[.cGalleryAlbums_recent > ul {
height: 204px;
position: relative;
overflow: hidden;
}
html[dir="ltr"] .cGalleryAlbums_recent > ul {
padding-left: 208px;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul {
padding-right: 208px;
}
.cGalleryAlbums_recent > ul > li {
width: 100px;
height: 100px;
float: left;
position: relative;
margin: 0 0 4px 4px;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul > li {
float: right;
margin: 0 4px 4px 0;
}
.cGalleryAlbums_recent > ul > li a {
display: block;
width: 100px;
height: 100px;
}
.cGalleryAlbums_recent > ul > li span {
padding-right: 7px;
text-align: right;
font-size: {fontsize="x_small"};
font-weight: bold;
color: #fff;
position: absolute;
left: 0;
right: 0;
bottom: 0;
line-height: 26px;
text-shadow: 1px 1px 0px rgba(0,0,0,0.8);
background-image: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
}
html[dir="rtl"] .cGalleryAlbums_recent > ul > li span {
text-align: left;
}
.cGalleryAlbums_recent > ul > li img {
display: none;
}
.cGalleryAlbums_recent > ul > li:first-child {
width: 204px;
height: 204px;
overflow: hidden;
position: absolute;
}
html[dir="ltr"] .cGalleryAlbums_recent > ul > li:first-child {
left: 0;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul > li:first-child {
right: 0;
}
.cGalleryAlbums_recent > ul > li:first-child a {
width: 204px;
height: 204px;
}
/* Restyle the above for the sidebar */
.ipsWidget_vertical .cGalleryAlbums_recent > ul{
padding: 0 !important;
display: flex;
flex-wrap: wrap;
height: auto;
}
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li:first-child,
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li:first-child a,
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li,
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li a{
width: auto;
height: auto;
position: static;
}
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li{
flex: 0 0 calc(33.3% - 4px);
max-width: 120px; /* Used if a widget stretches to 100% of the viewport one it wraps */
}
/* Since results are unlimited, display a maximum of 12 using css */
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li:nth-child(12) ~ li{
display: none;
}
.ipsWidget_vertical .cGalleryAlbums_recent > ul > li a::before{
content: '';
display: block;
padding-top: 100%;
}
/* General style which creates the square thumb container */
.cGalleryTrimmedImage {
background-color: #333;
background-size: cover;
background-position: 50%;
background-repeat: no-repeat;
overflow: hidden;
border: .5px solid #333;
}
.cGalleryTrimmedImage img {
display: none;
}
.cGalleryThumb {
max-width: 170px;
max-height: 170px;
}
.cGalleryAlbumThumb {
width: 280px;
height: 235px;
}
@media screen and (max-width: 767px) {
.ipsApp .cGalleryAlbums_recent {
padding: 0;
margin-bottom: 3px;
}
.cGalleryAlbums_recent > ul {
height: 134px;
}
html[dir="ltr"] .cGalleryAlbums_recent > ul {
padding-left: 138px;
}
html[dir="rtl"] .cGalleryAlbums_recent > ul {
padding-right: 138px;
}
.cGalleryAlbums_recent > ul > li:first-child,
.cGalleryAlbums_recent > ul > li:first-child a {
width: 134px;
height: 134px;
}
.cGalleryAlbums_recent > ul > li,
.cGalleryAlbums_recent > ul > li a {
width: 65px;
height: 65px;
}
.cGalleryAlbums_recent + ul.ipsList_inline {
padding-left: 4px;
}
}]]></css>
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="profile.css"><![CDATA[/* Styles used to display albums in profiles */