category()->club()}}
{{if settings.clubs and settings.clubs_header == 'full'}}
{template="header" app="core" group="clubs" params="$club, $album->category()"}
{{endif}}
{{endif}}
{{if $album->coverPhoto('masked')}}
{{endif}}
{{if $menu = $album->asItem()->menu()}}
{$menu|raw}
{{if $album->can( 'add' )}}
{template="categoryButtons" group="browse" params="$album->can('add'), $album->category(), $album"}
{{endif}}
{{endif}}
{{if \count( $album->_event )}}
{template="eventBlocks" group="view" app="calendar" params="$album->_event"}
{{endif}}
{template="contentItemMessages" group="global" app="core" params="$album->asItem()->getMessages(), $album->asItem()"}
{$table|raw}
{{if $commentsAndReviews}}
{{endif}}
{{if $album->asItem()->shareLinks()}}
{template="shareButton" app="core" group="sharelinks" params="$album->asItem()"}
{{endif}}
{{$followerCount = \IPS\gallery\Image::containerFollowerCount( $album );}}
{template="follow" app="core" group="global" params="'gallery', 'album', $album->_id, $followerCount"}
{{if $album->category()->club()}}
{{endif}}
]]>
isLastPage()}}data-lastPage{{endif}} data-feedID='{$album->feedId}' id='comments' data-follow-area-id="album-{$album->id}">
{{if $album->commentPageCount() > 1}}
{{endif}}
{{if \count( $album->comments( NULL, NULL, 'date', 'asc', NULL, NULL, NULL, NULL, FALSE, isset( \IPS\Request::i()->showDeleted ) ) )}}
{{else}}
{lang="no_comments"}
{{endif}}
{{if $album->commentPageCount() > 1}}
{{endif}}
{{if $album->commentForm() || $album->locked() || \IPS\Member::loggedIn()->restrict_post || \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings'] || !\IPS\Member::loggedIn()->checkPostsPerDay()}}
{{endif}}
]]>
url()}' {{if $album->isLastPage('reviews')}}data-lastPage{{endif}} data-feedID='{$album->reviewFeedId}' id='reviews' data-follow-area-id="album-{$album->id}">
{{if $album->reviewForm()}}
{$album->reviewForm()|raw}
{{else}}
{{if $album->hasReviewed()}}
{{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 \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}}
{{endif}}
{{if \count( $album->reviews( NULL, NULL, NULL, 'desc', NULL, NULL, NULL, NULL, isset( \IPS\Request::i()->showDeleted ) ) )}}
{{if $album->reviewPageCount() > 1}}
{{endif}}
{{elseif !$album->canReview()}}
{lang="no_reviews"}
{{endif}}
]]>
asNode();}}
{{endif}}
ui( 'dataAttributes' )}>
{{if \IPS\gallery\Image::containerUnread( $album )}}
{{endif}}
{{if $album->asItem()->mapped('featured')}}
{{endif}}
{{if $album->type === \IPS\gallery\Album::AUTH_TYPE_PRIVATE}}
{lang="album_private_badge"}
{{elseif $album->type === \IPS\gallery\Album::AUTH_TYPE_RESTRICTED}}
{lang="album_friend_only_badge"}
{{endif}}
{{if \IPS\gallery\Image::containerUnread( $album )}}{{endif}}
{$album->_title}
{{if \IPS\gallery\Image::containerUnread( $album )}} {{endif}}
{{if $result = $album->truncated()}}
{$result|raw}
{{endif}}
{{if !isset( \IPS\Request::i()->tab ) || \IPS\Request::i()->tab !== 'node_gallery_gallery'}}
{lang="album_created_by"} {$album->owner()->link()|raw}
{{endif}}
{{if $album->last_img_date}}
{lang="updated"} {datetime="$album->last_img_date"}
{{endif}}
{lang="num_images" pluralize="$album->count_imgs"}
{{if $album->use_comments && $album->comments > 0}}
{lang="gallery_album_num_comments_lc" pluralize="$album->comments"}
{{endif}}
{{if $album->allow_comments && $album->count_comments > 0}}
{lang="gallery_image_comments_s" pluralize="$album->count_comments"}
{{endif}}
{{if $album->use_reviews && $album->reviews > 0}}
{lang="gallery_album_num_reviews_lc" pluralize="$album->reviews"}
{{endif}}
{{if $table->canModerate()}}
multimodActions( $album ) )"}" data-state='' class='ipsInput ipsInput--toggle'>
{{endif}}
{{endforeach}}]]>
{{if settings.gallery_overview_show_categories}}
{{$clubNodes = (settings.clubs and settings.club_nodes_in_apps) ? \IPS\gallery\Category::clubNodes() : array();}}
{{if $rootCategories = \IPS\gallery\Category::roots()}}
{template="categoryRow" group="browse" params="NULL, NULL, $rootCategories"}
{{endif}}
{{if settings.clubs and settings.club_nodes_in_apps and $clubNodes = \IPS\gallery\Category::clubNodes()}}
{{if $rootCategories}}{{endif}}
{template="categoryRow" group="browse" params="NULL, NULL, $clubNodes"}
{{endif}}
{{endif}}]]>
children() : \IPS\gallery\Category::roots();}}
{{if \count($categories)}}
{{endif}}]]>
club()}}
{{if settings.clubs and settings.clubs_header == 'full'}}
{template="header" app="core" group="clubs" params="$club, $category"}
{{endif}}
{{endif}}
{{if $category->can('add') and ( $category->allow_albums != 2 or member.group['g_create_albums'] or \IPS\gallery\Album::loadForSubmit( $category ) )}}
{template="categoryButtons" group="browse" params="$category->can('add'), $category, NULL"}
{{endif}}
{{if $category->children()}}
{template="categoryGrid" group="browse" app="gallery" params="$category->children()"}
{{endif}}
{{if $albums}}
{$albums|raw}
{{endif}}
{{if $table}}
{$table|raw}
{{endif}}
{template="follow" app="core" group="global" params="'gallery', 'category', $category->_id, $followerCount"}
{{if $category->club()}}
{{endif}}]]>
{{endif}}
{{if $currentCategory AND $currentCategory->cover_img_id AND \IPS\gallery\Image::modPermission( 'edit', \IPS\Member::loggedIn(), $currentCategory )}}
{lang="gallery_unset_cover"}
{{endif}}
id}&album={$currentAlbum->id}&_new=1" seoTemplate="gallery_submit"}" {{elseif $currentCategory}} href="{url="app=gallery&module=gallery&controller=submit&category={$currentCategory->id}&_new=1" seoTemplate="gallery_submit"}" {{else}} href="{url="app=gallery&module=gallery&controller=submit&_new=1" seoTemplate="gallery_submit"}" {{endif}} rel='nofollow noindex'>{lang="add_gallery_image"}
]]>
can('view')}}
ui( 'dataAttributes' )}>
{{if settings.clubs and settings.club_nodes_in_apps and $club = $category->club()}}{lang="club_node" sprintf="$club->name, $category->_title"}{{else}}{$category->_title}{{endif}}
{{if $category->lastImage() && $category->lastImage()->media && !$category->cover_img_id}}
lastImage()->masked_file_name }} poster="{file="$category->lastImage()->masked_file_name" extension="gallery_Images"}"{{endif}}>
lastImage()->original_file_name" extension="gallery_Images"}{{if !$category->lastImage()->masked_file_name }}#t=1{{endif}}" type='{$category->lastImage()->file_type}' />
{{elseif $category->coverPhoto('small') !== NULL}}
{{else}}
{{endif}}
{{if $category->lastImage() && $category->lastImage()->media && !$category->cover_img_id}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$category->lastImage()"}
{{elseif $category->coverPhoto('small') !== NULL}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$category->coverPhotoObject()"}
{{endif}}
{{if settings.clubs and settings.club_nodes_in_apps and $club = $category->club()}}
{{endif}}
{{endif}}
{{endforeach}}
{{endif}}]]>
{{foreach $categories as $category}}
ui( 'dataAttributes' )}>
{{if $category->lastImage() && $category->lastImage()->media && !$category->cover_img_id}}
lastImage()->masked_file_name }} poster="{file="$category->lastImage()->masked_file_name" extension="gallery_Images"}"{{endif}}>
lastImage()->original_file_name" extension="gallery_Images"}{{if !$category->lastImage()->masked_file_name }}#t=1{{endif}}" type='{$category->lastImage()->file_type}' />
{{elseif $category->coverPhoto('small') !== NULL}}
{{else}}
{{endif}}
{$category->_title}
{{if $category->lastImage() && $category->lastImage()->media && !$category->cover_img_id}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$category->lastImage()"}
{{elseif $category->coverPhoto('small') !== NULL}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$category->coverPhotoObject()"}
{{endif}}
{{if settings.clubs and settings.club_nodes_in_apps and $club = $category->club()}}
{{endif}}
{{if $category->lastImage() !== NULL}} {datetime="$category->lastImage()->date"} {{endif}}
{{if $category->allow_comments && $category->_commentsForDisplay > 0}}
{$category->_commentsForDisplay}
{{endif}}
{{if $category->allow_albums && $category->public_albums > 0}}
{$category->public_albums}
{{endif}}
{{$count = \IPS\gallery\Image::contentCount( $category );}}
{{if $count > 0}}
{number="$count"}
{{endif}}
{{endforeach}}
{{endif}}]]>
can('view')}}
ui( 'dataAttributes' )}>
{{if settings.clubs and settings.club_nodes_in_apps and $club = $category->club()}}{lang="club_node" sprintf="$club->name, $category->_title"}{{else}}{$category->_title}{{endif}}
{{if $category->lastImage() && $category->lastImage()->media && !$category->cover_img_id}}
lastImage()->masked_file_name }} poster="{file="$category->lastImage()->masked_file_name" extension="gallery_Images"}"{{endif}}>
lastImage()->original_file_name" extension="gallery_Images"}{{if !$category->lastImage()->masked_file_name }}#t=1{{endif}}" type='{$category->lastImage()->file_type}' />
{{elseif $category->coverPhoto('small') !== NULL}}
{{else}}
{{endif}}
{{if $category->lastImage() && $category->lastImage()->media && !$category->cover_img_id}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$category->lastImage()"}
{{elseif $category->coverPhoto('small') !== NULL}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$category->coverPhotoObject()"}
{{endif}}
{{if settings.clubs and settings.club_nodes_in_apps and $club = $category->club()}}
{{endif}}
{{endif}}
{{endforeach}}]]>
baseUrl}' data-resort='{$table->resortKey}' data-controller='core.global.core.table{{if $table->canModerate()}},core.front.core.moderation{{endif}}{{if settings.gallery_nsfw}},gallery.front.global.nsfw{{endif}}'>
{{if \IPS\Request::i()->app == 'gallery'}}{{endif}}
{{if $table->canModerate() OR ( $table->showAdvancedSearch AND ( (isset( $table->sortOptions ) and !empty( $table->sortOptions )) OR $table->advancedSearch ) ) OR !empty( $table->filters ) OR $table->pages > 1}}
{{endif}}
{{if $table->canModerate()}}
{{endif}}
{{if $table->pages > 1}}
{{endif}}
]]>
{{if settings.gallery_overview_show_categories}}
{{$clubNodes = ( settings.clubs and settings.club_nodes_in_apps ) ? \IPS\gallery\Category::clubNodes() : array();}}
{{if $rootCategories = \IPS\gallery\Category::roots()}}
{template="categoryCarousel" group="browse" app="gallery" params="$rootCategories"}
{{endif}}
{{if settings.clubs and settings.club_nodes_in_apps and $clubNodes = \IPS\gallery\Category::clubNodes()}}
{template="categoryCarousel" group="browse" app="gallery" params="$clubNodes"}
{{endif}}
{{endif}}
{{if !empty( $featured )}}
{{endif}}
{{if !empty( $new )}}
{{endif}}
{{if \count( $recentlyUpdatedAlbums )}}
{{foreach $recentlyUpdatedAlbums as $album}}
{{if $album->asNode()->coverPhoto('masked')}}
{{else}}
{{endif}}
{$album->name}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$album->asNode()->coverPhotoObject()"}
{$album->count_imgs}
{{if $album->use_comments && $album->comments > 0}}
{$album->comments}
{{endif}}
{{if $album->allow_comments && $album->count_comments > 0}}
{$album->count_comments}
{{endif}}
{{endforeach}}
{{endif}}]]>
{{foreach $album->_latestImages as $image}}
{{if $image->small_file_name}}
{{$imageWidth=isset( $image->_dimensions['small'][0] ) ? $image->_dimensions['small'][0] : 0;}}
{{$imageHeight=isset( $image->_dimensions['small'][1] ) ? $image->_dimensions['small'][1] : 0;}}
{{else}}
{{if $image->media }}
masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{else}} preload="metadata"{{endif}}>
original_file_name" extension="gallery_Images"}{{if !$image->masked_file_name }}#t=1{{endif}}" type='{$image->file_type}' />
{{endif}}
{{endif}}
{{endforeach}}
{lang="view_entire_album" sprintf="$album->name"} ]]>
{{if $container instanceof \IPS\gallery\Album}}{lang="no_images_in_album"}{{else}}{lang="no_images_in_cat"}{{endif}}
{{if $container->can('add')}}
{lang="submit_first_image"}
{{endif}}
]]>
hidden()}}ipsModerated{{endif}} i-padding_3 i-border-bottom_1 {$image->ui( 'css' )}' data-imageId="{$image->id}" {$image->ui( 'dataAttributes' )}>
{{if $image->media }}
masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{else}} preload="metadata"{{endif}}>
original_file_name" extension="gallery_Images"}" type='{$image->file_type}' />
{{else}}
{{$sizes = $image->_dimensions;}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image"}
{{endforeach}}
]]>
tableClass()}}ipsData__item--{$image->tableClass()}{{endif}} {{if $image->hidden()}}ipsModerated{{endif}} {$image->ui( "css" )}'
data-imageId="{$image->id}"
data-rowid="{$image->id}"
{$image->ui( 'dataAttributes' )}
{{if $image->unread()}}data-ips-unread{{else}}data-ips-read{{endif}}
>
{$image->caption}
{{if $image->media }}
masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{else}} preload="metadata"{{endif}}>
original_file_name" extension="gallery_Images"}" type='{$image->file_type}' />
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{{foreach $image->badges() as $badge}}{$badge|raw}{{endforeach}}
{{if $image->prefix()}}
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
{{endif}}
{{if $image->unread()}}
{{endif}}
{lang="byline_nodate" htmlsprintf="$image->author()->link()"} · {{if $image->updated == $image->date}}{lang="uploaded"}{{else}}{lang="updated"}{{endif}} {datetime="$image->updated"}
{$image->truncated()|raw}
{{if \count( $image->tags() )}}
{template="tags" group="global" app="core" params="$image->tags()"}
{{endif}}
{{if $table->canModerate()}}
multimodActions( $image ) )"}" data-state='{{if $image->unread() === -1 or $image->unread() === 1}}unread{{else}}read{{endif}} {{if $image->hidden() === -1}}hidden{{elseif $image->hidden === 1}}unapproved{{endif}} {{if $image->mapped('pinned')}}pinned{{endif}} {{if $image->mapped('featured')}}featured{{endif}} {{if $image->mapped('locked')}}locked{{endif}}' class="ipsInput ipsInput--toggle">
{{endif}}
{{endforeach}}
{{endif}}]]>
_dimensions['small'][0] ) ? $image->_dimensions['small'][0] : 0;}}
{{$imageHeight=isset( $image->_dimensions['small'][1] ) ? $image->_dimensions['small'][1] : 0;}}
ui( 'dataAttributes' )}>
{{if $image->media }}
masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{else}} preload="metadata"{{endif}}>
original_file_name" extension="gallery_Images"}{{if !$image->masked_file_name }}#t=1{{endif}}" type='{$image->file_type}' />
{{else}}
{{endif}}
{$image->caption}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image"}
{{endforeach}}]]>
{{foreach $data as $k => $v}}
{lang="$k"}
{{if $k === 'total_disk_spaceg'}}
{filesize="$v"}
{{elseif $k === 'largest_image'}}
{$v->caption} ({filesize="$v->file_size"})
{{elseif $k === 'most_viewed_image'}}
{$v->caption} ({lang="num_views_with_number" pluralize="$v->views"})
{{else}}
{$v}
{{endif}}
{{endforeach}}
]]>
{{foreach $hiddenValues as $k => $v}}
{{endforeach}}
{{if $uploadField}}
{{endif}}
{{foreach $elements as $collection}}
{{foreach $collection as $input}}
{{if $input->name == 'guest_name' or $input->name == 'guest_email'}}
{{endif}}
{{endforeach}}
{{endforeach}}
{{foreach $elements as $collection}}
{{foreach $collection as $input}}
{{if $input instanceof \IPS\Helpers\Form\Editor}}
{{if $input->options['minimize'] !== NULL}}
{{$minimized = true;}}
{{endif}}
{$input->html( TRUE )|raw}
{{if $input->error}}
{lang="$input->error"}
{{endif}}
{{endif}}
{{endforeach}}
{{endforeach}}
{{foreach $elements as $collection}}
{{foreach $collection as $input}}
{{if !($input instanceof \IPS\Helpers\Form\Editor) && $input->name != 'guest_name' && $input->name != 'guest_email'}}
{$input->html()|raw}
{{if $input->error}}
{lang="$input->error"}
{{endif}}
{{endif}}
{{endforeach}}
{{endforeach}}
]]>
{lang="$lang"} {{if $ends !== NULL AND $ends > 0}}{lang="restriction_ends" sprintf="\IPS\DateTime::ts( $ends )->relative()"}{{endif}}
{{if \count( $warnings) }}
{{foreach $warnings as $idx => $warning}}
{{if $idx === 0}}
{lang="view_warning_details"}
{{endif}}
{{endforeach}}
{{endif}}
]]>
{{if $forceNoscript}}
{{if $allowedFileTypes !== NULL}}
{lang="form_upload_accepted"}
{expression="implode( ', ', $allowedFileTypes )"}
{{endif}}
{{if $multiple and $totalMaxSize}}
{{if $allowedFileTypes !== NULL}}
·
{{endif}}
{lang="form_upload_total_max"}
{filesize="$totalMaxSize * 1048576"}
{{endif}}
{{if !$multiple or !$totalMaxSize or $maxChunkSize < $totalMaxSize}}
{{if $allowedFileTypes !== NULL or ( $multiple and $totalMaxSize )}}
·
{{endif}}
{lang="form_upload_max"}
{$maxChunkSize}MB
{{endif}}
{{if $maxFiles}}
{lang="form_upload_max_files" pluralize="$maxFiles"}
{{endif}}
{{else}}
{{if $allowedFileTypes !== NULL}}
{lang="form_upload_accepted"}
{expression="implode( ', ', $allowedFileTypes )"}
{{endif}}
{{if $multiple and $totalMaxSize}}
{{if $allowedFileTypes !== NULL}}
·
{{endif}}
{lang="form_upload_total_max"}
{filesize="$totalMaxSize * 1048576"}
{{endif}}
{{if !$multiple or !$totalMaxSize or $maxChunkSize < $totalMaxSize}}
{{if $allowedFileTypes !== NULL or ( $multiple and $totalMaxSize )}}
·
{{endif}}
{lang="form_upload_max"}
{$maxChunkSize}MB
{{endif}}
{{if $maxFiles}}
{lang="form_upload_max_files" pluralize="$maxFiles"}
{{endif}}
{{if $value}}
{{foreach $value as $id => $file}}
{{endforeach}}
{{endif}}
{{if $minimize}}
{{if $multiple}}{lang="form_upload_dad_mini"}{{else}}{lang="form_upload_dad_mini_one"}{{endif}}
{{if $allowedFileTypes !== NULL}}
{lang="form_upload_accepted"}
{expression="implode( ', ', $allowedFileTypes )"}
{{endif}}
{{if $multiple and $totalMaxSize}}
{{if $allowedFileTypes !== NULL}}
·
{{endif}}
{lang="form_upload_total_max"}
{filesize="$totalMaxSize * 1048576"}
{{endif}}
{{if $maxFileSize and ( !$multiple or !$totalMaxSize or $maxFileSize < $totalMaxSize )}}
{{if $allowedFileTypes !== NULL or ( $multiple and $totalMaxSize )}}
·
{{endif}}
{lang="form_upload_max"}
{expression="round($maxFileSize,2)"}MB
{{endif}}
{{if $maxFiles}}
{lang="form_upload_max_files" pluralize="$maxFiles"}
{{endif}}
{{else}}
{{if $multiple}}{lang="form_upload_dad"}{{else}}{lang="form_upload_dad_one"}{{endif}}
{{if $allowedFileTypes !== NULL}}
{lang="form_upload_accepted"}
{expression="implode( ', ', $allowedFileTypes )"}
{{endif}}
{{if $multiple and $totalMaxSize}}
{{if $allowedFileTypes !== NULL}}
·
{{endif}}
{lang="form_upload_total_max"}
{filesize="$totalMaxSize * 1048576"}
{{endif}}
{{if $maxFileSize and ( !$multiple or !$totalMaxSize or $maxFileSize < $totalMaxSize )}}
{{if $allowedFileTypes !== NULL or ( $multiple and $totalMaxSize )}}
·
{{endif}}
{lang="form_upload_max"}
{expression="round($maxFileSize,2)"}MB
{{endif}}
{{if $maxFiles}}
{lang="form_upload_max_files" pluralize="$maxFiles"}
{{endif}}
{{endif}}
{{if $value}}
{{foreach $value as $id => $file}}
{template="uploadFile" group="forms" location="global" app="core" params="$id, $file, $name, $editor, ( $template === 'core.attachments.imageItem' )"}
{{endforeach}}
{{endif}}
{{endif}}]]>
member_id}}data-controller='core.front.core.reviewForm'{{endif}}>
{template="userPhoto" group="global" app="core" params="\IPS\Member::loggedIn(), 'fluid'"}
]]>
{lang="$lang"} {{if $ends !== NULL AND $ends > 0}}{lang="restriction_ends" sprintf="\IPS\DateTime::ts( $ends )->relative()"}{{endif}}
{{if \count( $warnings) }}
{{foreach $warnings as $idx => $warning}}
{{if $idx === 0}}
{lang="view_warning_details"}
{{endif}}
{{endforeach}}
{{endif}}
]]>
{template="userPhoto" group="global" params="$item->author()"}
{$item->author()->name}
{{if $container}}
{lang="posted_in_container"} {$container->_title}
{{endif}}
{lang="date_replied" htmlsprintf="\IPS\DateTime::ts( $item->mapped('date') )->html(FALSE)"}
{lang="$item::$title"}
{{if $item->masked_file_name}}
{{else}}
{{endif}}
{{if $reason = $item->approvalQueueReason()}}
{{endif}}]]>
$idField}_wrap' data-controller='core.front.core.comment' data-feedid="{$comment->feedId}" 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='ipsEntry__content js-ipsEntry__content'
{{if \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\IntersectionViewTracking' ) AND $hash=$comment->getViewTrackingHash()}}
data-view-hash="{$hash|raw}"
data-view-tracking-data="{expression="base64_encode(json_encode( $comment->getViewTrackingData() ))" raw="true"}"
{{endif}}
>
{{if $comment->author()->hasHighlightedReplies() || ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and $comment->isHighlighted() ) OR $comment->isFeatured()}}
{{if $comment->author()->hasHighlightedReplies()}}
{expression="\IPS\Member\Group::load( $comment->author()->highlightedGroup() )->name" raw="true"}
{{endif}}
{{if $comment->isFeatured()}}
{lang="this_is_a_featured_post"}
{{endif}}
{{if \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and $comment->isHighlighted()}}
{lang="this_is_a_popular_comment"}
{{endif}}
{{endif}}
{{if member.modPermission('mod_see_warn') and $comment->warning}}
{template="commentWarned" group="global" app="core" params="$comment"}
{{endif}}
{{if $comment->hidden() AND $comment->hidden() != -2}}
{$comment->hiddenBlurb()}
{{elseif $comment->hidden() == -2}}
{$comment->deletedBlurb()}
{{endif}}
{{if $comment->hidden() === 1 && $comment->author()->member_id == \IPS\Member::loggedIn()->member_id}}
{lang="comment_awaiting_approval"}
{{endif}}
{$comment->content()|raw}
{{if $comment->editLine()}}
{$comment->editLine()|raw}
{{endif}}
{{if ( $comment->hidden() !== 1 && \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and settings.reputation_enabled and $comment->hasReactionBar() ) || ( $comment->hidden() === 1 && ( $comment->canUnhide() || $comment->canDelete() ) ) || ( $comment->hidden() === 0 and $item->canComment() and $editorName ) }}
{{endif}}
{{if ! \IPS\Output::i()->reduceLinks()}}
{template="sharemenu" group="global" app="core" params="$comment"}
{{endif}}
]]>
isIgnored()}}
{{endif}}
author()->hasHighlightedReplies()}}data-memberGroup="{$comment->author()->member_group_id}"{{endif}}>
{template="comment" group="global" app="gallery" params="$item, $comment, $item::$formLangPrefix . 'comment', $item::$application, $item::$module, $itemClassSafe"}
]]>
{template="thumbImage" group="global" app="core" params="$image->small_file_name, $image->caption, 'small', '', 'view_this', $image->url(), 'gallery_Images'"}
{lang="in"} {$image->container()->_title}
{{if $image->container()->allow_rating}}
{template="rating" group="global" location="front" app="core" params="'large', $image->rating"}
{{endif}}
{{if $image->container()->allow_comments}} {{if !$image->comments}}{{endif}} {$image->comments}{{endif}}{{if !$image->comments}} {{endif}}
]]>
{template="embedHeader" group="embed" app="core" params="$comment, $item->mapped('title'), $comment->mapped('date'), $url"}
{{if $item->asNode()->coverPhoto('small')}}
{{endif}}
{{$images = \IPS\Gallery\Image::getItemsWithPermission( array( array( 'image_album_id=?', $item->asNode()->id ) ), ( $item->asNode()->sort_options == 'title' ) ? 'image_caption ASC' : \IPS\gallery\Image::$databasePrefix . \IPS\gallery\Image::$databaseColumnMap[ $item->asNode()->sort_options ] . ' DESC', 19 );}}
{{if \count( $images )}}
{{endif}}
{template="embedOriginalItem" group="embed" app="core" params="$item"}
{$comment->truncated(TRUE)|raw}
{{if settings.reputation_enabled and \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and \count( $comment->reactions() )}}
{template="reactionOverview" app="core" group="global" params="$comment, TRUE, 'small'"}
{{endif}}
]]>
{template="embedHeader" group="embed" app="core" params="$comment, $item->mapped('title'), $comment->mapped('date'), $url"}
{{if $item->asNode()->coverPhoto('small')}}
{{endif}}
{{$images = \IPS\Gallery\Image::getItemsWithPermission( array( array( 'image_album_id=?', $item->asNode()->id ) ), ( $item->asNode()->sort_options == 'title' ) ? 'image_caption ASC' : \IPS\gallery\Image::$databasePrefix . \IPS\gallery\Image::$databaseColumnMap[ $item->asNode()->sort_options ] . ' DESC', 19 );}}
{{if \count( $images )}}
{{endif}}
{template="embedOriginalItem" group="embed" app="core" params="$item"}
{template="rating" app="core" params="'veryLarge', $comment->mapped('rating')" group="global"}
{{if $comment->mapped('votes_total')}}
{$comment->helpfulLine()|raw}
{{endif}}
{$comment->truncated(TRUE)|raw}
{{if settings.reputation_enabled and \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and \count( $comment->reactions() )}}
{template="reactionOverview" app="core" group="global" params="$comment, TRUE, 'small'"}
{{endif}}
]]>
{template="embedHeader" group="embed" app="core" params="$albumItem, $albumItem->mapped('title'), $albumItem->mapped('date'), $url"}
{{if $albumNode->coverPhoto('small')}}
{{endif}}
{{$images = \IPS\Gallery\Image::getItemsWithPermission( array( array( 'image_album_id=?', $albumNode->id ) ), ( $albumNode->sort_options == 'title' ) ? 'image_caption ASC' : \IPS\gallery\Image::$databasePrefix . \IPS\gallery\Image::$databaseColumnMap[ $albumNode->sort_options ] . ' DESC', 4 );}}
{{if \count( $images )}}
{{endif}}
{{if $desc = $albumItem->truncated(TRUE)}}
{{endif}}
{template="embedItemStats" group="embed" app="core" params="$albumItem, $albumNode->use_comments"}
]]>
{template="embedHeader" group="embed" app="core" params="$item, $item->mapped('title'), $item->mapped('date'), $url"}
media }}style="--_backdrop:url('{file="$item->masked_file_name" extension="gallery_Images"}')"{{endif}}>
{{if $item->media }}
masked_file_name }} poster="{file="$item->masked_file_name" extension="gallery_Images"}"{{endif}}>
original_file_name" extension="gallery_Images"}" type='{$item->file_type}' />
original_file_name" extension="gallery_Images"}" width="480" height="360" type='{$item->file_type}' />
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$item, FALSE"}
{{if $desc = $item->truncated(TRUE)}}
{$desc|raw}
{{endif}}
{{if $item->copyright}}
© {$item->copyright}
{{endif}}
{template="embedItemStats" group="embed" app="core" params="$item"}
{{if $item->directContainer() instanceof \IPS\gallery\Album}}
{{$images = \IPS\Gallery\Image::getItemsWithPermission( array( array( 'image_album_id=?', $item->album_id ) ), ( $item->directContainer()->sort_options == 'title' ) ? 'image_caption ASC' : $item::$databasePrefix . $item::$databaseColumnMap[ $item->directContainer()->sort_options ] . ' DESC', 9 );}}
{{if \count( $images )}}
{{endif}}
{{endif}}
]]>
{template="embedHeader" group="embed" app="core" params="$comment, $item->mapped('title'), $comment->mapped('date'), $url"}
{$comment->truncated(TRUE)|raw}
{{if settings.reputation_enabled and \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and \count( $comment->reactions() )}}
{template="reactionOverview" app="core" group="global" params="$comment, TRUE, 'small'"}
{{endif}}
]]>
{template="embedHeader" group="embed" app="core" params="$comment, $item->mapped('title'), $comment->mapped('date'), $url"}
{template="rating" app="core" params="'veryLarge', $comment->mapped('rating')" group="global"}
{{if $comment->mapped('votes_total')}}
{$comment->helpfulLine()|raw}
{{endif}}
{$comment->truncated(TRUE)|raw}
{{if settings.reputation_enabled and \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and \count( $comment->reactions() )}}
{template="reactionOverview" app="core" group="global" params="$comment, TRUE, 'small'"}
{{endif}}
]]>
{{if \IPS\IPS::classUsesTrait( $comment['comment'], 'IPS\Content\Reactable' ) and settings.reputation_enabled}}
{template="reactionOverview" group="global" app="core" params="$comment['comment']"}
{{endif}}
{$comment['comment']->truncated( TRUE )|raw}
{{if $comment['note']}}
{$comment['note']}
{{if isset( $comment['featured_by'] )}}
{lang="recommended_by" htmlsprintf="$comment['featured_by']->link()"}
{{endif}}
{{elseif isset( $comment['featured_by'] )}}
{lang="recommended_by" htmlsprintf="$comment['featured_by']->link()"}
{{endif}}
{{endif}}]]>
]]>
{$image->caption} ]]>
tableClass()}}ipsData__item--{$row->tableClass()}{{endif}}" data-controller='core.front.system.manageFollowed' data-followID='{$row->_followData['follow_area']}-{$row->_followData['follow_rel_id']}' {{if $contentItemClass::containerUnread( $row )}}data-ips-unread{{else}}data-ips-read{{endif}}>
{{if $coverImage = $row->coverPhoto('small') }}
{{else}}
{{endif}}
{{if $row->_locked}}
{{endif}}
{$row->_description}
{{if $row->_items}}
{lang="node_content_items" pluralize="$row->_items"}
{{endif}}
{{if $row->_commentsForDisplay}}
{lang="node_content_comments" pluralize="$row->_commentsForDisplay"}
{{endif}}
{{if $row->_reviews}}
{lang="node_content_reviews" pluralize="$row->_reviews"}
{{endif}}
{{if \count( $row->_latestImages )}}
{{foreach \array_slice( iterator_to_array( $row->_latestImages ), 0, 10, true ) as $image }}
{{endforeach}}
{{endif}}
{datetime="$row->_followData['follow_added']"}
{{if $row->_followData['follow_notify_freq'] == 'none'}}
{{else}}
{{endif}} {lang="follow_freq_{$row->_followData['follow_notify_freq']}"}
_followData['follow_is_anon']}}hidden{{endif}}> {lang="follow_is_anon"}
{template="manageFollow" group="system" app="core" params="$row->_followData['follow_app'], $row->_followData['follow_area'], $row->_followData['follow_rel_id']"}
{{if $table->canModerate()}}
multimodActions( $row ) )"}" data-state='' class="ipsInput ipsInput--toggle">
{{endif}}
{{endforeach}}]]>
unread()}}ipsData__item--unread{{endif}} {{if method_exists( $row, 'tableClass' ) && $row->tableClass()}}ipsData__item--{$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']}' {{if $row->unread()}}data-ips-unread{{else}}data-ips-read{{endif}}>
{{$image = \IPS\File::get( 'gallery_Images', $row->small_file_name )->url;}}
{{if $row->mapped('locked')}}
{{endif}}
{{foreach $row->badges() as $badge}}{$badge|raw}{{endforeach}}
{{if $row->prefix()}}
{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}
{{endif}}
{{if method_exists( $row, 'tableDescription' )}}
{$row->tableDescription()|raw}
{{else}}
{{endif}}
{datetime="$row->_followData['follow_added']"}
{{if $row->_followData['follow_notify_freq'] == 'none'}}
{{else}}
{{endif}} {lang="follow_freq_{$row->_followData['follow_notify_freq']}"}
_followData['follow_is_anon']}}hidden{{endif}}> {lang="follow_is_anon"}
{template="manageFollow" group="system" app="core" params="$row->_followData['follow_app'], $row->_followData['follow_area'], $row->_followData['follow_rel_id']"}
{{if $table->canModerate()}}
multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}' class="ipsInput ipsInput--toggle">
{{endif}}
{{endforeach}}
{{endif}}
]]>
{{if $destination}}
{lang="node_mass_content_move_blurb" sprintf="$number, $itemLang, $destination->_title"}
{{else}}
{lang="node_mass_content_delete_blurb" sprintf="$number, $itemLang"}
{{endif}}
{{if $albumDestination}}
{lang="galnode_mass_content_move_blurb" sprintf="$albumNumber, $albumDestination->_title"}
{{else}}
{lang="galnode_mass_content_delete_blurb" sprintf="$albumNumber"}
{{endif}}
{lang="node_mass_content_blurb_2"}
]]>
nsfw}}
{{if $showButton}}
{lang="gallery_image_is_nsfw"}
{lang="gallery_nsfw_view_anyway"}
{{endif}}
{{endif}}]]>
baseUrl}' data-resort='{$table->resortKey}' data-pageParam='albumPage' data-controller='core.global.core.table{{if $table->canModerate()}},core.front.core.moderation{{endif}}'>
{template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit, TRUE, 'albumPage'"}
{template="$table->rowsTemplate[1]" params="$table, $headers, $rows" object="$table->rowsTemplate[0]"}
]]>
id}_wrap' data-controller='core.front.core.comment' data-feedid="{$review->feedId}" data-commentApp='{$app}' data-commentType='{$type}-review' data-commentID="{$review->id}" data-quoteData='{expression="json_encode( array('userid' => $review->author()->member_id, 'username' => $review->author()->name, 'timestamp' => $review->mapped('date'), 'contentapp' => $app, 'contenttype' => $type, 'contentid' => $item->id, 'contentcommentid' => $review->id) )"}' class='ipsEntry__content js-ipsEntry__content'
{{if \IPS\IPS::classUsesTrait( $review, 'IPS\Content\IntersectionViewTracking' ) AND $hash=$review->getViewTrackingHash()}}
data-view-hash="{$hash|raw}"
data-view-tracking-data="{expression="base64_encode(json_encode( $review->getViewTrackingData() ))" raw="true"}"
{{endif}}
>
{{if $review->hidden() AND $review->hidden() != -2}}
{$review->hiddenBlurb()}
{{elseif $review->hidden() == -2}}
{$review->deletedBlurb()}
{{endif}}
{{foreach range( 1, \intval( \IPS\Settings::i()->reviews_rating_out_of ) ) as $i}}
= $i}}ipsRating_on{{else}}ipsRating_off{{endif}}'>
{{endforeach}}
{{if $review->mapped('votes_total')}}
{$review->helpfulLine()|raw} {{endif}}
{$review->content()|raw}
{{if $review->editLine()}}
{$review->editLine()|raw}
{{endif}}
{{if $review->hasAuthorResponse()}}
{lang="review_response_title"}
{{if $review->canEditResponse() OR $review->canDeleteResponse()}}
{{endif}}
{$review->mapped('author_response')|raw}
{{if $review->canEditResponse() OR $review->canDeleteResponse()}}
{{endif}}
{{endif}}
{{if $review->hidden() !== 1}}
{{if member.member_id and ( !$review->mapped('votes_data') or !array_key_exists( member.member_id, json_decode( $review->mapped('votes_data'), TRUE ) ) ) and $review->author()->member_id != \IPS\Member::loggedIn()->member_id}}
{lang="did_you_find_this_helpful"}
{{endif}}
{{endif}}
{{if ( member.member_id and ( !$review->mapped('votes_data') or !array_key_exists( member.member_id, json_decode( $review->mapped('votes_data'), TRUE ) ) ) ) || $review->canEdit() || $review->canDelete() || $review->canHide() || $review->canUnhide() || ( $review->hidden() !== 1 && \IPS\IPS::classUsesTrait( $review, 'IPS\Content\Reactable' ) and settings.reputation_enabled and $review->hasReactionBar() )}}
{{endif}}
{{if ! \IPS\Output::i()->reduceLinks()}}
{template="sharemenu" group="global" app="core" params="$review"}
{{endif}}
]]>
isIgnored()}}
{lang="ignoring_content" sprintf="$review->author()->name"}
{{else}}
{template="review" group="global" app="core" params="$item, $review, $item::$formLangPrefix . 'review', $item::$application, $item::$module"}
{{endif}}]]>
{{foreach $images as $k => $image}}
{{if $image->small_file_name}}
{{elseif $image->media}}
masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{else}} preload="metadata"{{endif}}>
original_file_name" extension="gallery_Images"}{{if !$image->masked_file_name }}#t=1{{endif}}" type='{$image->file_type}' />
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{{endforeach}}
{{endif}}
{{else}}
{{if \count( $images )}}
{{$firstImage = array_shift( $images );}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$firstImage, FALSE"}
{{if $reviewRating !== NULL}}
{template="rating" app="core" params="'medium', $reviewRating" group="global"}
{{endif}}
{{foreach $images as $image }}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{{endforeach}}
{{endif}}]]>
{{foreach $images as $k => $image}}
{{if $image->small_file_name}}
{{elseif $image->media}}
masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{else}} preload="metadata"{{endif}}>
original_file_name" extension="gallery_Images"}{{if !$image->masked_file_name }}#t=1{{endif}}" type='{$image->file_type}' />
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{{endforeach}}
{{endif}}
{{else}}
{{if trim( $indexData['index_content'] ) !== ''}}
application->directory == 'core' and \IPS\Dispatcher::i()->module and \IPS\Dispatcher::i()->module->key == 'search' )}}class='ipsRichText ipsTruncate_3'{{else}}class='ipsRichText' data-searchable data-findTerm{{endif}}>
{expression="\IPS\Content\Search\Result::preDisplay( $indexData['index_content'] )" raw="true"}
{{endif}}
{{if \count($images)}}
{{endif}}
{{endif}}]]>
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$imageObj, FALSE"}
{{endif}}
{{if !$condensed}}
{{if $reviewRating !== NULL}}
{template="rating" app="core" params="'medium', $reviewRating" group="global"}
{{endif}}
{{endif}}]]>
{{if $imageObj->media}}
masked_file_name }} poster="{file="$imageObj->masked_file_name" extension="gallery_Images"}"{{else}} preload="metadata"{{endif}}>
original_file_name" extension="gallery_Images"}{{if !$imageObj->masked_file_name }}#t=1{{endif}}" type='{$imageObj->file_type}' />
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$imageObj, FALSE"}
{{endif}}
{{else}}
{{if $image or $itemData['image_media']}}
{{endif}}
{{if $albumData}}
{lang="from_the_album"} {$albumData['album_name']}
{{endif}}
{{if trim( $indexData['index_content'] ) !== ''}}
application->directory == 'core' and \IPS\Dispatcher::i()->module and \IPS\Dispatcher::i()->module->key == 'search' )}}class='ipsRichText ipsTruncate_3'{{else}}class='ipsRichText' data-searchable data-findTerm{{endif}}>
{expression="\IPS\Content\Search\Result::preDisplay( $indexData['index_content'] )" raw="true"}
{{endif}}
{{if $itemData['image_copyright']}}
© {$itemData['image_copyright']}
{{endif}}
{{endif}}]]>
{$category->_title}
]]>
member_id}"}" data-ipsDialog data-ipsDialog-title="{lang="bandwidth_use_gallery"}">({lang="bandwidth_use_gallery"})]]>
{lang="gallery_graph_disclaimer"}
]]>
{lang="gallery_stats_disclaimer"}
]]>
{{if trim( $pagination )}}
{$pagination|raw}
{{endif}}
{$pagination|raw}
]]>
isAjax()}}
{template="pageHeader" group="global" app="core" params="\IPS\Member::loggedIn()->language()->addToStack('choose_category')"}
{{else}}
{{endif}}
{$form|raw}
{{if \IPS\Request::i()->isAjax()}}
{{endif}}]]>
{{if $createAlbumForm}}
{$createAlbumForm|raw}
{{endif}}
{{if $existingAlbumForm}}
{$existingAlbumForm|raw}
{{endif}}
]]>
album"}" class='cGallerySubmit_chooseCategory'>
]]>
{{if $container['album']}}
{lang="gallery_submit_prefix_album" sprintf="$container['album']->_title"}
{{else}}
{lang="gallery_submit_prefix_cat" sprintf="$container['category']->_title"}
{{endif}}
]]>
$v}}{$k}="{$v}"{{endforeach}} data-ipsForm>
{{foreach $hiddenValues as $k => $v}}
{{if \is_array($v)}}
{{foreach $v as $_k => $_v}}
{{endforeach}}
{{else}}
{{endif}}
{{endforeach}}
{{if $uploadField}}
{{endif}}
{lang="create_album"}
]]>
$v}}{$k}="{$v}"{{endforeach}} data-ipsForm data-ipsFormSubmit data-controller='gallery.front.submit.existingAlbums'>
{{foreach $hiddenValues as $k => $v}}
{{if \is_array($v)}}
{{foreach $v as $_k => $_v}}
{{endforeach}}
{{else}}
{{endif}}
{{endforeach}}
{lang="choose_selected_album"}
]]>
]]>
{lang="saving_images_desc"}
{$redirector|raw}
]]>
action}" id='elGallerySubmit' enctype="multipart/form-data">
{{if $form->error}}
{$form->error}
{{endif}}
{{foreach $form->hiddenValues as $k => $v}}
{{endforeach}}
{$form->elements['']['credit_all']->html()|raw}
{$form->elements['']['copyright_all']->html()|raw}
{$form->elements['']['tags_all']->html()|raw}
{$form->elements['']['prefix_all']->html()|raw}
{$form->elements['']['images_order']->html()|raw}
{$form->elements['']['images_info']->html()|raw}
{{if settings.gallery_nsfw}}{$form->elements['']['nsfw_all']->html()|raw}{{endif}}
{{if \IPS\Member::loggedIn()->member_id}}{$form->elements['']['images_autofollow_all']->html()|raw}{{endif}}
{$form->elements['']['images']->html( $form )|raw}
{{if $form->elements['']['images']->error}}
{lang="$form->elements['']['images']->error"}
{{endif}}
]]>
isAjax()}}
{template="header" group="clubs" app="core" params="$club, $container['category']"}
{{endif}}
{lang="add_gallery_image"}
{{if \is_array( $container )}}
{template="container" group="submit" app="gallery" params="$container"}
{{endif}}
×
{{if !\is_array( $container )}}
{$container|raw}
{{endif}}
{lang="files_had_errors"}
{lang="cancel"}
{lang="submit_all_images"}
]]>
url()}' {{if $image->isLastPage()}}data-lastPage{{endif}} data-feedID='{$image->feedId}' id='comments' class="ipsEntries ipsEntries--comments ipsEntries--gallery-comments" data-follow-area-id="image-{$image->id}">
{template="featuredComments" group="global" app="gallery" params="$image->featuredComments(), $image->url()->setQueryString('tab', 'comments')->setQueryString('recommended', 'comments')"}
{{if $image->commentPageCount() > 1}}
{{endif}}
{{if $image->commentPageCount() > 1}}
{{endif}}
{{if $image->commentForm() || $image->locked() || \IPS\Member::loggedIn()->restrict_post || \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings'] || !\IPS\Member::loggedIn()->checkPostsPerDay()}}
{{endif}}
]]>
container()->club()}}
{{if settings.clubs and settings.clubs_header == 'full'}}
{template="header" app="core" group="clubs" params="$club, $image->container()"}
{{endif}}
{{endif}}
{{if $image->hasPreviousOrNext() }}
{template="imageCarouselLinks" app="gallery" group="view" location="front" params="$image"}
{{endif}}
{template="imageInfo" group="view" params="$image"}
{template="imageComments" app="gallery" location="front" group="view" params="$image, $commentsAndReviews"}
{{if $image->container()->club()}}
{{endif}}]]>
_dimensions['small'][0] ) ? $carouselImage->_dimensions['small'][0] : 0;}}
{{$imageHeight=isset( $carouselImage->_dimensions['small'][1] ) ? $carouselImage->_dimensions['small'][1] : 0;}}
{{if $carouselImage->media }}
masked_file_name }} poster="{file="$carouselImage->masked_file_name" extension="gallery_Images"}"{{endif}}>
original_file_name" extension="gallery_Images"}{{if !$carouselImage->masked_file_name }}#t=1{{endif}}" type='{$carouselImage->file_type}' />
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$carouselImage, FALSE"}
]]>
fetchNextOrPreviousImages( 9, 'ASC' ), 0, 4 ) );}}
{{$next = $image->fetchNextOrPreviousImages( 9, 'DESC' );}}
{{$counter = 1;}}
{{foreach $prev as $id => $carouselImage}}
{template="imageCarouselLink" app="gallery" group="view" location="front" params="$carouselImage"}
{{$counter++;}}
{{endforeach}}
{template="imageCarouselLink" app="gallery" group="view" location="front" params="$image, true"}
{{$counter++;}}
{{foreach $next as $id => $carouselImage}}
{template="imageCarouselLink" app="gallery" group="view" location="front" params="$carouselImage"}
{{$counter++;}}
{{if $counter === 10}}
{{break;}}
{{endif}}
{{endforeach}}
{template="carouselNavigation" group="global" app="core" params="'gallery-image-thumbs'"}
]]>
{{if $commentsAndReviews}}
{{if ( $image->directContainer()->allow_reviews && $image->container()->allow_reviews ) && ( $image->directContainer()->allow_comments && $image->container()->allow_comments ) }}
{lang="user_feedback"}
{{endif}}
{{endif}}
]]>
id}" {{if $image->data}}data-imageSizes='{$image->data}'{{endif}}>
{{if $image->media }}
masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{endif}}>
original_file_name" extension="gallery_Images"}" type='{$image->file_type}' />
original_file_name" extension="gallery_Images"}" width="480" height="360" type='{$image->file_type}' />
{{else}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image"}
{{if $image->canEdit() OR $image->canDownloadOriginal() OR \IPS\Member::loggedIn()->member_id}}
{lang="image_tools"}
{{endif}}
{{endif}}
{{if $image->hasPreviousOrNext()}}
1, 'do' => 'previous' ] )}' class='elGalleryImageNav_prev' data-action="changeImage" data-direction="prev">
1, 'do' => 'next' ] )}' class='elGalleryImageNav_next' data-action="changeImage" data-direction="next">
{{endif}}
]]>
{template="contentItemMessages" group="global" app="core" params="$image->getMessages(), $image"}
{{if $image->hidden() === 1 and $image->canUnhide()}}
{lang="image_pending_approval"}
{{endif}}
{{if $image->description}}
{$image->content()|raw}
{{endif}}
{{if $image->credit_info OR $image->copyright}}
{{if $image->credit_info}}
{lang="image_credit_info"}
{$image->credit_info}
{{endif}}
{{if $image->copyright}}
{lang="image_copyright"}
© {$image->copyright}
{{endif}}
{{endif}}
{{if $image->showLocation()}}
{$image->map( 308, 200 )|raw}
{$image->loc_short}
{{if $image->canEdit() }}
{lang="map_privacy"}
{{endif}}
{{elseif $image->showLocation() AND $image->canEdit() AND $image->gps_raw}}
{$image->map( 308, 200 )|raw}
{$image->loc_short}
{lang="map_not_being_shown"}
{lang="map_privacy"}
{{endif}}
{{if $image->directContainer() instanceof \IPS\gallery\Album}}{lang="from_the_album"}{{else}}{lang="from_the_category"}{{endif}}
· {lang="num_images" pluralize="$image->directContainer()->count_imgs"}
{{if \is_countable($image->metadata) AND \count($image->metadata)}}
{{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'] )}}
{lang="gallery_metadata" sprintf="$image->caption"}
{{if isset( $image->metadata['IFD0.Make'] ) AND isset( $image->metadata['IFD0.Model'] )}}
{lang="gallery_exif_camera"}
{$image->metadata['IFD0.Make']} {$image->metadata['IFD0.Model']}
{{endif}}
{{if isset( $image->metadata['EXIF.FocalLength'] )}}
{lang="EXIF.FocalLength"}
{$image->focallength}
{{endif}}
{{if isset( $image->metadata['EXIF.ExposureTime'] )}}
{lang="EXIF.ExposureTime"}
{$image->metadata['EXIF.ExposureTime']}
{{endif}}
{{if isset( $image->metadata['COMPUTED.ApertureFNumber'] )}}
{lang="COMPUTED.ApertureFNumber"}
{$image->metadata['COMPUTED.ApertureFNumber']}
{{endif}}
{{if isset( $image->metadata['Exif.Photo.ISOSpeed'] ) || isset( $image->metadata['EXIF.ISOSpeedRatings'] )}}
{lang="gallery_exif_isospeed"}
{{if isset( $image->metadata['Exit.Photo.ISOSpeed'] )}}
{$image->metadata['Exif.Photo.ISOSpeed']}
{{else}}
{{if \is_array( $image->metadata['EXIF.ISOSpeedRatings'] )}}
{expression="implode( '/', $image->metadata['EXIF.ISOSpeedRatings'] )"}
{{else}}
{$image->metadata['EXIF.ISOSpeedRatings']}
{{endif}}
{{endif}}
{{endif}}
{{else}}
{{endif}}
{{endif}}
{{if \count( $image->shareLinks() )}}
{template="shareButton" app="core" group="sharelinks" params="$image"}
{{endif}}
{template="follow" app="core" group="global" params="'gallery', 'image', $image->id, $image->followersCount()"}
]]>
{template="imageLightboxInfo" group="view" params="$image, $commentsAndReviews"}
]]>
data}}data-imageSizes='{$image->data}'{{endif}}>
{{if $image->media }}
canEdit()}}data-editable{{endif}} controls preload="auto" width="100%" height="100%"{{if $image->masked_file_name }} poster="{file="$image->masked_file_name" extension="gallery_Images"}"{{endif}}>
original_file_name" extension="gallery_Images"}" type='{$image->file_type}' />
original_file_name" extension="gallery_Images"}" width="480" height="360" type='{$image->file_type}' />
{{else}}
canEdit()}}data-editable{{endif}} data-notesData='{$image->_notes_json}' data-ips-hook="imageContainer">
{{if \count( $image->_notes )}}
{{foreach $image->_notes as $note}}
{{endforeach}}
{{endif}}
{{endif}}
{{if $image->prefix() OR ( $image->canEdit() AND $image::canTag( NULL, $image->container() ) AND $image::canPrefix( NULL, $image->container() ) )}}
prefix()}}class='ipsHide'{{endif}} {{if ( $image->canEdit() AND $image::canTag( NULL, $image->container() ) AND $image::canPrefix( NULL, $image->container() ) )}}data-editablePrefix{{endif}}>
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
{{endif}}
{{foreach $image->badges() as $badge}}{$badge|raw}{{endforeach}}
{{if $image->canEdit()}}
{{if $image->locked()}} {{endif}}
{$image->caption}
{{else}}
{{if $image->locked()}} {{endif}}{$image->caption}
{{endif}}
{{if $image->album_id}}
{{endif}}
{template="promote" app="core" group="global" params="$image"}
{template="follow" app="core" group="global" params="'gallery', 'image', $image->id, $image->followersCount()"}
{{if !$image->media }}
{{endif}}
{{if $image->copyright}}
© {$image->copyright}
{{endif}}
{{if $image->credit_info}}
{lang="image_credit_info"} {$image->credit_info}
{{endif}}
{{if \count( $image->shareLinks() ) OR $image->canEdit() OR $image->canDownloadOriginal() OR \IPS\Member::loggedIn()->member_id}}
{{if $image->canEdit() OR $image->canDownloadOriginal() OR \IPS\Member::loggedIn()->member_id}}
{lang="image_tools"}
{{endif}}
{{if \count( $image->shareLinks() )}}
{lang="image_share"}
{{endif}}
{{endif}}
{{if $image->hasPreviousOrNext()}}
1, 'do' => 'previous' ] )}' class='elGalleryImageNav_prev' data-action="changeImage">
1, 'do' => 'next' ] )}' class='elGalleryImageNav_next' data-action="changeImage">
{{endif}}
]]>
hidden() === -1}}class='ipsModerated'{{endif}}>
{template="contentItemMessages" group="global" app="core" params="$image->getMessages(), $image"}
{{if $image->hidden() === 1 and $image->canUnhide()}}
{lang="image_pending_approval"}
{{endif}}
{template="userPhoto" app="core" group="global" params="$image->author(), 'mini', $image->warningRef()"}
{$image->author()->link( $image->warningRef() )|raw}
{datetime="$image->date"}
{lang="num_views_with_number" pluralize="$image->views"}
{{if $image->canReportOrRevoke() === TRUE}}
{lang="report_image"}
{{endif}}
{{if ( $image->canEdit() or $image->canFeature() or $image->canPin() or $image->canHide() or $image->canUnhide() or $image->canMove() or $image->canLock() or $image->canUnlock() or $image->canDelete() or $image->canChangeAuthor() ) or ( $image->hidden() == -2 AND \IPS\Member::loggedIn()->modPermission('can_manage_deleted_content') )}}
{{endif}}
{{if $image->directContainer()->allow_rating}}
{$image->rating('small')|raw}
{{endif}}
{{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 ( \count( $image->tags() ) OR $image::canTag( NULL, $image->container() ) ) ) ? $image->url() : NULL"}
{{endif}}
{{if $image->description}}
{$image->content()|raw}
{{endif}}
{{if \IPS\IPS::classUsesTrait( $image, 'IPS\Content\Reactable' ) and settings.reputation_enabled}}
{template="reputation" app="core" group="global" params="$image"}
{{endif}}
{advertisement="ad_image_lightbox"}
{{if \count($image->metadata)}}
{{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'] )}}
{{if isset( $image->metadata['IFD0.Make'] ) AND isset( $image->metadata['IFD0.Model'] )}}
{lang="gallery_exif_camera"} {{if mb_strpos( $image->metadata['IFD0.Model'], $image->metadata['IFD0.Make'] ) !== 0}}{$image->metadata['IFD0.Make']}{{endif}} {$image->metadata['IFD0.Model']}
{{else}}
{lang="camera_information"}
{{endif}}
{{if isset( $image->metadata['EXIF.FocalLength'] )}}
{$image->focallength}
{{endif}}
{{if isset( $image->metadata['EXIF.ExposureTime'] )}}
{$image->metadata['EXIF.ExposureTime']}
{{endif}}
{{if isset( $image->metadata['COMPUTED.ApertureFNumber'] )}}
f
{$image->metadata['COMPUTED.ApertureFNumber']}
{{endif}}
{{if isset( $image->metadata['Exif.Photo.ISOSpeed'] ) || isset( $image->metadata['EXIF.ISOSpeedRatings'] )}}
{lang="gallery_exif_iso"}
{{if isset( $image->metadata['Exit.Photo.ISOSpeed'] )}}
{$image->metadata['Exif.Photo.ISOSpeed']}
{{else}}
{{if \is_array( $image->metadata['EXIF.ISOSpeedRatings'] )}}
{expression="implode( '/', $image->metadata['EXIF.ISOSpeedRatings'] )"}
{{else}}
{$image->metadata['EXIF.ISOSpeedRatings']}
{{endif}}
{{endif}}
{{endif}}
{lang="view_all_photo_info"}
{{else}}
{lang="view_photo_info"}
{{endif}}
{{endif}}
{{if \IPS\GeoLocation::enabled() AND $image->gps_show}}
{$image->map( 400, 100 )|raw}
{$image->loc_short}
{{if $image->canEdit() }}
{lang="map_privacy"}
{{endif}}
{{elseif $image->canEdit() AND \IPS\GeoLocation::enabled() AND $image->gps_raw}}
{$image->map( 400, 100 )|raw}
{$image->loc_short}
{lang="map_not_being_shown"}
{lang="map_privacy"}
{{endif}}
{{if $commentsAndReviews}}
{{if ( $image->directContainer()->allow_reviews && $image->container()->allow_reviews ) && ( $image->directContainer()->allow_comments && $image->container()->allow_comments ) }}
{lang="user_feedback"}
{{endif}}
{$commentsAndReviews|raw}
{{endif}}
]]>
isAjax()" group="global" app="core" params="\IPS\Member::loggedIn()->language()->addToStack('gallery_metadata', FALSE, array( 'sprintf' => array( $image->caption ) ) )"}
{{if \count( $image->metadata )}}
{{foreach $image->metadata as $key => $value}}
{{if !\is_array( $value ) AND ( $image->gps_show OR mb_strpos( $key, 'GPS.' ) === FALSE ) AND ( mb_strpos( $key, 'UndefinedTag' ) === FALSE OR \IPS\Member::loggedIn()->language()->checkKeyExists( $key ) ) AND ( !\IPS\Member::loggedIn()->language()->checkKeyExists( $key ) OR ( \IPS\Member::loggedIn()->language()->checkKeyExists( $key ) AND \IPS\Member::loggedIn()->language()->get( $key ) ) )}}
{lang="$key"}
{{if \IPS\Member::loggedIn()->language()->checkKeyExists( $key . '_map_' . $value )}}{lang="{$key}_map_{$value}"}{{else}}{$value}{{endif}}
{{endif}}
{{endforeach}}
{{else}}
{lang="gallery_no_metadata"}
{{endif}}
]]>
url()}' {{if $image->isLastPage('reviews')}}data-lastPage{{endif}} data-feedID='{$image->reviewFeedId}' id='reviews' class="ipsEntries ipsEntries--reviews ipsEntries--gallery-reviews" data-follow-area-id="image-{$image->id}">
{{if \count( $image->reviews( NULL, NULL, NULL, 'desc', NULL, NULL, NULL, NULL, isset( \IPS\Request::i()->showDeleted ) ) )}}
{{if $image->reviewPageCount() > 1}}
{{endif}}
{{elseif !$image->canReview()}}
{{endif}}
{{if $image->reviewForm()}}
{{if $image->locked()}}
{lang="item_locked_can_review"}
{{endif}}
{$image->reviewForm()|raw}
{{else}}
{{if $image->hasReviewed()}}
{{elseif $image->locked()}}
{template="commentUnavailable" group="forms" location="front" app="gallery" 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="gallery" params="'restricted_cannot_comment'"}
{{else}}
{template="reviewUnavailable" group="forms" location="front" app="gallery" params="'restricted_cannot_comment', \IPS\Member::loggedIn()->warnings(5,NULL,'rpa'), \IPS\Member::loggedIn()->restrict_post"}
{{endif}}
{{elseif \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings']}}
{template="reviewUnavailable" group="forms" location="front" app="gallery" params="'unacknowledged_warning_cannot_post', \IPS\Member::loggedIn()->warnings( 1, FALSE )"}
{{endif}}
{{endif}}
]]>
description|raw}
]]>
{$title}
{{if $isCarousel}}
{{$carouselID = 'widget-gallery-albums_' . mt_rand();}}
{template="carouselNavigation" group="global" app="core" params="$carouselID"}
{{endif}}
{{endif}}]]>
{lang="block_galleryStats"}
{lang="total_images_front_v" pluralize="$stats['totalImages']"}
{number="$stats['totalImages']" format="short"}
{{if $stats['totalComments']}}
{lang="stats_total_comments_v" pluralize="$stats['totalComments']"}
{number="$stats['totalComments']" format="short"}
{{endif}}
{{if $stats['totalAlbums']}}
{lang="total_albums_v" pluralize="$stats['totalAlbums']"}
{number="$stats['totalAlbums']" format="short"}
{{endif}}
{{if isset($orientation) and $orientation == 'vertical' && $latestImage}}
{template="latestImage" group="widgets" app="gallery" params="$latestImage"}
{{endif}}
]]>
{$title}
{{if $isCarousel}}
{{$carouselID = 'widget-gallery-image-feed_' . mt_rand();}}
{template="carouselNavigation" group="global" app="core" params="$carouselID"}
{{endif}}
{{endif}}]]>
ui('css')}" {$image->ui('dataAttributes')}>
{$image->caption}
{{if $image->small_file_name}}
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{lang="byline" htmlsprintf="$image->author()->link()"} · {datetime="$image->mapped('date')"}
{{if $image->description}}
{$image->content()|raw}
{{endif}}
]]>
{lang="latest_image"}
{{if $latestImage->small_file_name}}
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$latestImage"}
]]>
{$title}
{{if $isCarousel}}
{{$carouselID = 'widget-gallery-recent-comments_' . mt_rand();}}
{template="carouselNavigation" group="global" app="core" params="$carouselID"}
{{endif}}
{{endif}}]]>
{$title}
{{if $isCarousel}}
{{$carouselID = 'widget-gallery-recent-reviews_' . mt_rand();}}
{template="carouselNavigation" group="global" app="core" params="$carouselID"}
{{endif}}
{{endif}}]]>
/* Embedded gallery content */
.ipsFigure--embed-hero .ipsFigure__main{
max-height: 220px;
}
:is(.ipsRichEmbed--gallery-image, .ipsRichEmbed--gallery-image-comment, .ipsRichEmbed--gallery-image-review) .ipsFigure__main{
max-height: 400px;
}
.cGalleryEmbed_albumStrip {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(50px, 1fr));
gap: 5px;
margin-top: .6em;
}
.cGalleryEmbed_albumStrip .ipsFigure{
margin: 0;
}
.cGalleryEmbed_albumStrip:not(.cGalleryEmbed_albumStrip_mini) {
margin: 0;
background: var(--i-background_1);
padding: 5px;
border-radius: var(--i-box--bo-ra);
position: relative;
}
.ipsFigure ~ .cGalleryEmbed_albumStrip:not(.cGalleryEmbed_albumStrip_mini){
margin: -30px 15px 0;
}
li:not( :last-child ) {
margin-bottom: 7px;
}
/* IMAGE VIEW PAGE */
.cGalleryViewImage {
/* display: grid;
place-items: center; */
position: relative;
}
.cGalleryViewImage img[data-role="theImage"],
#elGalleryVideo {
margin: auto;
position: relative;
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
}
.cGalleryViewImage [data-ipslightbox]{
display: grid;
/* place-items: center; */
cursor: zoom-in;
height: clamp(300px, 60vh, 800px);
}
.cGalleryViewImage_controls {
margin-inline-start: auto;
}
/* NOTES */
.cGalleryViewImage:hover .cGalleryNote {
opacity: 1;
}
.cGalleryNote {
position: absolute;
opacity: 0;
}
.cGalleryNote_border {
border: 1px solid #000;
height: 100%;
background: rgba(255,255,255,0.0001);
}
.cGalleryNote_border::after {
content: '';
position: absolute;
inset: 1px;
display: block;
border: 1px solid #ccc;
}
.cGalleryNote_editing .cGalleryNote_border,
.cGalleryNote_editing .cGalleryNote_border::after {
border-style: dashed;
opacity: 1;
}
.cGalleryNote_editing {
opacity: 1 !important;
}
.cGalleryNote_editing .cGalleryNote_note {
opacity: 1 !important;
display: block !important;
width: 280px;
padding: 12px;
pointer-events: auto;
z-index: 1000;
}
.cGalleryNote_editing .cGalleryNote_note a {
color: #fff;
}
.cGalleryNote_editing .cGalleryNote_note textarea {
outline: 1px solid currentColor;
outline-offset: 0px;
padding: 1em;
}
.cGalleryNote_note {
width: max-content;
max-width: 250px;
position: absolute;
top: calc(100% + 5px);
left: 50%;
transform: translateX(-50%);
background: hsl(0 0% 0% / .6);
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
color: #fff;
font-weight: 600;
font-size: .9em;
border-radius: 5px;
pointer-events: none;
padding: 10px;
}
.cGalleryNote_delete {
position: absolute;
top: -10px;
inset-inline-end: -10px;
width: 1.5em;
height: 1.5em;
display: grid;
place-content: center;
border-radius: 50%;
background: #000;
border: 1px solid currentColor;
color: #fff;
font-size: 17px;
}
/* jQuery resizable styles */
.ui-resizable-handle { position: absolute; font-size: 0.1px; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px; }
.ui-icon-gripsmall-diagonal-se {
background: url( "{resource="resizable.png" inCss="true" app="core" location="global" inCss="true"}" );
}
.ui-draggable { cursor: move;}
.cGallerySearchAlbumThumbs,
.cGalleryManagedAlbumThumbs {
display: grid;
gap: 4px;
grid-template-columns: repeat(auto-fill, minmax(40px, 1fr));
}
/* Restrict thumbs in Activity Stream to 20 */
.cGallerySearchAlbumThumbs li:nth-child(20) ~ *{
display: none;
}
.cGalleryManagedAlbumThumbs{
margin-top: 10px;
}
.cGalleryAlbums_recent {
--_thumb: 100px;
--_gap: 4px;
padding-inline-start: calc(var(--_thumb) * 2 + var(--_gap));
display: grid;
grid-template-columns: repeat(auto-fill, minmax(var(--_thumb), 1fr));
gap: var(--_gap);
height: calc(var(--_thumb) * 2 + var(--_gap));
position: relative;
overflow: hidden;
}
.cGalleryAlbums_recent > li {
height: var(--_thumb);
position: relative;
}
.cGalleryAlbums_recent .ipsFigure{
height: 100%;
}
.cGalleryAlbums_recent .ipsFigure__footer{
justify-self: end;
padding: .5em;
}
.cGalleryAlbums_recent .ipsFigure__footer::before{
display: none;
}
.cGalleryAlbums_recent > li:first-child {
width: calc(var(--_thumb) * 2);
height: calc(var(--_thumb) * 2);
overflow: hidden;
position: absolute;
inset-inline-start: 0;
}
.cGalleryAlbums_recent--small {
--_thumb: 40px;
}
/* Restyle the above for the sidebar */
.ipsWidget--vertical .cGalleryAlbums_recent{
padding: 0;
height: auto;
grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
}
.ipsWidget--vertical .cGalleryAlbums_recent > li:first-child{
width: auto;
height: auto;
position: static;
}
.ipsWidget--vertical .cGalleryAlbums_recent > li{ height: auto; }
/* Since results are unlimited, display a maximum of 12 using css */
.ipsWidget--vertical .cGalleryAlbums_recent > li:nth-child(12) ~ li{
display: none;
}
.ipsWidget--vertical .cGalleryAlbums_recent .ipsFigure__main {
aspect-ratio: 1;
}
/* General style which creates the square thumb container */
.cGalleryThumb {
max-width: 170px;
max-height: 170px;
}
.cGalleryAlbumThumb {
width: 280px;
height: 235px;
}
@media screen and (max-width: 767px) {
.ipsApp .cGalleryAlbums_recent {
margin-bottom: 3px;
}
.cGalleryAlbums_recent {
--_thumb: 40px;
}
.cGalleryAlbums_recent + .ipsList {
padding-inline-start: 4px;
}
}
/* v5 code */
/* Feature image on index */
.ipsCarousel--gallery-featured{
height: clamp(480px, 80vh, 610px);
}
/* Larger icons for album list view */
.ipsData--gallery-row-list{
--i-data--icon-width: 80px;
}
/* Faded masonry for Album listing */
.ipsMasonry--album-summary{
max-height: 300px;
overflow: hidden;
mask-image: linear-gradient(to bottom, hsl(0 0% 0%) 200px, hsl(0 0% 0% / 0));
}
/* Image view */
.elGalleryHeader {
position: relative;
z-index: 1; /* Ensure notes overlap the navigation strip */
background-color: oklch(25% calc(clamp(0, 100 - var(--i-base-c), 1) * 5%) var(--i-base-h));
border-radius: var(--i-box--bo-ra) var(--i-box--bo-ra) 0 0;
color: hsl(0 0% 100%);
}
.ipsCarousel--gallery-image-thumbs{
--i-carousel--pa: 2em 1.5em;
--_height: 100px;
gap: 1.5em;
}
.ipsCarousel--gallery-image-thumbs > :first-child{
margin-inline-start: auto;
}
.ipsCarousel--gallery-image-thumbs > :last-child{
margin-inline-end: auto;
}
.ipsCarousel--gallery-image-thumbs [data-active] .ipsFigure{
outline: 1px solid currentColor;
outline-offset: 3px;
}]]>
div {
width: 100%;
height: 100%;
margin: 0 auto;
border: 1px solid var(--i-background_3);
}
.cProfileAlbum_image {
display: block;
position: relative;
max-width: 100%;
height: 100%;
background-color: var(--i-background_dark);
background-size: cover;
background-position: 50%;
background-repeat: no-repeat;
overflow: hidden;
}
.cProfileAlbum_image img {
display: none;
}
.cProfileAlbum .ipsTitle {
font-size: var(--i-font-size_1);
text-align: start;
display: block;
padding: 7px;
overflow: hidden;
text-overflow: ellipsis;
top: 0px;
background: rgba(0,0,0,0.5);
color: #fff;
}
]]>
ul {
width: min(100% - 30px, 450px);
}
.cGalleryChooseAlbum_listItem {
display: block;
background: var(--i-background_2);
padding: 1.4em;
padding-inline-end: 40px;
margin-bottom: 1em;
border-radius: 6px;
position: relative;
}
.cGalleryChooseAlbum_listItem[data-disabled] {
opacity: .7;
cursor: not-allowed;
}
.cGalleryChooseAlbum_listItem[data-disabled] .ipsTitle {
color: var(--i-color_soft);
}
.cGalleryChooseAlbum_listItem:not([data-disabled])::after {
font-family: var(--i-font-awesome);
-webkit-font-smoothing: antialiased;
text-rendering: auto;
font-weight: 900;
content: '\f061';
position: absolute;
inset-inline-end: 1.2em;
top: 50%;
font-size: 1.4em;
transform: translateY(-50%);
color: var(--i-color_soft);
}
.cGalleryChooseAlbum_listItem:not([data-disabled]):hover {
background: var(--i-background_3);
}
.cGalleryChooseAlbum_listItem .ipsTitle {
font-size: var(--i-font-size_2);
}
/* Dialog: Choose Category */
.cGallerySubmit_albumChoice {
padding: 5em 1em;
}
.cGallerySubmit_albumChoice .ipsSelectTree {
margin: auto;
}
/* Dialog: Choose Existing Album */
#elGallerySubmit_albumChooser{
max-height: 60vh;
display: flex;
flex-direction: column;
gap: 1em;
padding: 0 2em 2em 2em;
}
#elGallerySubmit_albumChooser > li{
position: relative;
flex: 0 0 auto;
}
#elGallerySubmit_albumChooser [type="radio"]{
position: absolute;
opacity: 0;
}
#elGallerySubmit_albumChooser > li > div {
background: var(--i-background_2);
padding: 1.4em;
border-radius: min(var(--i-design-radius), 6px);
}
#elGallerySubmit_albumChooser > li > div:hover {
background: var(--i-background_3);
}
#elGallerySubmit_albumChooser label{
position: absolute;
inset: 0;
cursor: pointer;
}
#elGallerySubmit_albumChooser > li > [type="radio"]:checked + div {
background: var(--i-primary);
color: var(--i-primary-contrast);
}
#elGallerySubmit_albumChooser > li > [type="radio"]:checked + div .i-color_soft {
color: inherit;
opacity: 0.7;
}
/* Choose Existing Album */
[data-role="existingAlbumForm"]{
display: contents;
}
.cGalleryChooseAlbum{
flex: 1 1 100%;
display: flex;
flex-direction: column;
}
.cGalleryDialog_container {
display: contents;
}
.cGalleryDialog_imageForm {
flex: 1 1 auto;
overflow: auto;
}
.cGallerySubmit_uploadImages .ipsAttachment_dropZone:not(.ipsDragging) {
background: var(--i-background_2);
border-color: var(--i-background_3);
}
/* Style the uploader */
.cGallerySubmit_uploadImages .ipsAttachment_dropZone{
display: grid;
place-content: center;
text-align: center;
gap: 0;
}
.cGallerySubmit_uploadImages .ipsUploader__icon {
font-size: 3em;
margin-bottom: 15px;
}
.cGallerySubmit_uploadImages .fa-cloud-upload::before {
content: "\f055";
}
#elGallerySubmit_imageUploader .ipsAttachment_dropZone {
cursor: pointer;
}
.cGalleryDialog_uploadStep .ipsUploader[style*="block"]{
display: flex !important;
gap: var(--i-sp_3);
}
.cGalleryDialog_uploadStep #elGallerySubmit_imageUploader .ipsAttachment_dropZone {
flex: 1 1 200px;
align-self: start;
height: 200px;
margin-bottom: 2em;
}
#elGallerySubmit_imageUploader a[data-action="uploadFile"] {
display: none;
}
#elGallerySubmit_imageUploader .moxie-shim.moxie-shim-html5,
#elGallerySubmit_imageUploader .moxie-shim.moxie-shim-html5 > input[type="file"] {
top: 0 !important;
left: 0 !important;
width: 0.1px !important;
height: 0.1px !important;
}
.cGallerySubmit_uploadImages .ipsAttachment_fileList{
flex: 999 1 50%;
}
/* Media thumbnail upload area */
.cGalleryThumbField .ipsAttachment_dropZoneSmall_info {
margin-inline-start: auto !important;
}
.cGalleryThumbField [data-role="title"] {
width: 150px;
max-width: 150px;
}
.cGallerySubmit_fileList:empty{
display: none !important;
}
.cGallerySubmit_fileList {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 1em;
padding-bottom: 2em;
}
.cGallerySubmit_fileList .ipsImageAttach {
border: 1px solid var(--i-background_4);
background: var(--i-background_2);
cursor: move;
}
.cGallerySubmit_fileList .ipsImageAttach:hover {
border-color: var(--i-background_6);
}
.cGallerySubmit_fileList .ipsImageAttach_thumb{
aspect-ratio: 1;
}
/* Add move cursor to thumbnail */
.cGallerySubmit_fileList .ipsImageAttach_thumb :is(img, video){
cursor: inherit;
}
.cGallerySubmit_fileList .ipsImageAttach.cGallerySubmit_activeFile {
border-color: var(--i-primary);
background: var(--i-primary);
}
.cGallerySubmit_fileList .ipsImageAttach.cGallerySubmit_activeFile :is(.ipsAttach_title, .cGalleryImageAttach_info){
color: var(--i-primary-contrast);
}
.cGalleryImageAttach_info {
padding-inline-end: 30px;
}
.cGallerySubmit_fileList .ipsImageAttach.cGallerySubmit_imageSaved::before,
.cGallerySubmit_fileList .ipsImageAttach.cGallerySubmit_imageError::before {
width: 28px;
height: 28px;
border-radius: 28px;
line-height: 28px;
color: #fff;
font-family: var(--i-font-awesome);
-webkit-font-smoothing: antialiased;
text-rendering: auto;
font-weight: 900;
font-size: 14px;
position: absolute;
bottom: 1em;
inset-inline-end: 1em;
text-align: center;
}
.cGallerySubmit_fileList .ipsImageAttach.cGallerySubmit_imageSaved::before {
content: '\f00c';
background: #558B2F;
}
.cGallerySubmit_fileList .ipsImageAttach.cGallerySubmit_imageError:not(.cGallerySubmit_activeFile) {
border-color: #a72f35;
}
.cGallerySubmit_fileList .ipsImageAttach.cGallerySubmit_imageError::before {
content: '\f071';
background: #a72f35;
}
@media screen and (max-width: 767px) {
/* Image details area on mobile is fixed */
.cGallerySubmit_imageDetails {
position: fixed;
inset: 0;
z-index: 10;
}
}]]>
.ipsCarousel--gallery-widget-image-feed .ipsFigure__main{
aspect-ratio: 4/3;
}