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 $album->description}}
{{$truncateAttributes = array('data-ipsTruncate', 'data-ipsTruncate-size="10 lines"');}}
{template="richText" group="global" app="core" location="global" params="$album->description, array('ipsType_medium'), array(), $truncateAttributes"}
{{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 !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 $album->views > -1}}
{{if \IPS\Application::appIsEnabled('cloud') and \IPS\Member::loggedIn()->modPermission('can_view_moderation_log')}}
{{$url = "app=cloud&module=analytics&controller=analytics&contentClass=\IPS\gallery\Album\Item&contentId=" . $album->id;}}
{lang="num_views_with_number" pluralize="$album->views"}
{{else}}
{lang="num_views_with_number" pluralize="$album->views"}
{{endif}}
{{endif}}
{{if \IPS\IPS::classUsesTrait( $album->asItem(), 'IPS\Content\Reactable' ) and settings.reputation_enabled}}
{template="reputation" app="core" group="global" params="$album->asItem()"}
{{endif}}
{{if $album->canDelete() || $album->asItem()->canEdit() || $album->asItem()->canOnMessage( 'add' ) || $album->asItem()->canFeature() || $album->asItem()->canUnfeature() || $album->asItem()->canHide() || $album->asItem()->canUnhide() || $album->asItem()->canMove() || $album->asItem()->canLock() || $album->asItem()->canUnlock() || $album->asItem()->canReportOrRevoke() === TRUE}}
{{endif}}
{{if \count( $album->_event )}}
{lang="events_in_album" pluralize="\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()"}
{{if $album->can('add')}}
{{endif}}
{$table|raw}
{{if $commentsAndReviews}}
{{if ( $album->asItem()->use_reviews && $album->asItem()->container()->allow_reviews ) && ( $album->asItem()->use_comments && $album->asItem()->container()->allow_comments ) }}
{lang="user_feedback"}
{{endif}}
{{if (!( $album->asItem()->use_reviews && $album->asItem()->container()->allow_reviews ) && ( $album->asItem()->use_comments && $album->asItem()->container()->allow_comments )) OR (( $album->asItem()->use_reviews && $album->asItem()->container()->allow_reviews ) && !( $album->asItem()->use_comments && $album->asItem()->container()->allow_comments )) }}
{$commentsAndReviews|raw}
{{else}}
{$commentsAndReviews|raw}
{{endif}}
{{endif}}
{template="follow" app="core" group="global" params="'gallery', 'album', $album->_id, $followerCount"}
{template="promote" app="core" group="global" params="$album->asItem()"}
{{if $album->category()->club()}}
{{endif}}
]]>
isLastPage()}}data-lastPage{{endif}} data-feedID='image-{$album->id}' id='comments'>
{lang="gallery_album_num_comments_uc" pluralize="$album->comments"}
{{if $album->commentPageCount() > 1}}
{$album->commentPagination( array('tab') )|raw}
{{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}}
{$album->commentPagination( array('tab') )|raw}
{{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='image-{$album->id}-reviews' id='reviews'>
{{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->hasReviewed()}} {{endif}}
{template="commentMultimodHeader" app="core" group="global" params="$album, '#reviews', 'review'"}
{{if $album->reviewPageCount() > 1}}
{$album->reviewPagination( array( 'tab', 'sort' ) )|raw}
{{endif}}
{{if $album->reviewPageCount() > 1}}
{$album->reviewPagination( array( 'tab', 'sort' ) )|raw}
{{endif}}
{{elseif !$album->canReview()}}
{lang="no_reviews"}
{{endif}}
]]>
asNode();}}
{{endif}}
{{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 $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 !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}}
{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=''>
{{endif}}
{{foreach $album->_latestImages as $image }}
{{endforeach}}
{{endforeach}}]]>
{lang="gallery_title"}
{{if \IPS\gallery\Category::canOnAny('add')}}
{{endif}}
{template="categoryRow" group="browse" params="NULL, NULL, \IPS\gallery\Category::roots()"}
]]>
children() : \IPS\gallery\Category::roots();}}
{{if \count($categories)}}
{{if $currentCategory}}{lang="subcategories"}{{else}}{lang="categories"}{{endif}}
{{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 ) )}}
{{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}}]]>
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"}
{{if $currentCategory AND $currentCategory->cover_img_id AND \IPS\gallery\Image::modPermission( 'edit', \IPS\Member::loggedIn(), $currentCategory )}}
{lang="gallery_unset_cover"}
{{endif}}
{{if !$currentCategory}}
{{endif}}]]>
{{foreach $categories as $category}}
{{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')}}
{{if $category->lastImage() !== NULL}} {datetime="$category->lastImage()->date"} {{endif}}
{{if $category->allow_comments}}
{$category->_commentsForDisplay}
{{endif}}
{{if $category->allow_albums}}
{$category->public_albums}
{{endif}}
{{$count = \IPS\gallery\Image::contentCount( $category );}}
{number="$count"}
{{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'}}{lang="num_images" pluralize="$table->count"} {{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}}
{template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit"}
]]>
{lang="gallery_title"}
{{if \IPS\gallery\Category::canOnAny('add')}}
{{endif}}
{{if !empty( $featured ) or !empty($recentComments)}}
{{if !empty( $featured )}}
{lang="featured_images"}
{{foreach $featured as $image}}
{{endforeach}}
{{if \count( $featured ) > 1}}
{{endif}}
{{endif}}
{{if \count( $recentComments )}}
{{endif}}
{{endif}}
{{if settings.gallery_overview_show_categories}}
{{$clubNodes = settings.club_nodes_in_apps ? \IPS\gallery\Category::clubNodes() : array();}}
{{if $rootCategories = \IPS\gallery\Category::roots()}}
{{if $clubNodes}}{lang="community_image_categories"}{{else}}{lang="gallery_categories"}{{endif}}
{lang="gallery_view_all_categories"}
{template="categoryGrid" group="browse" app="gallery" params="$rootCategories"}
{{endif}}
{{if settings.club_nodes_in_apps and $clubNodes = \IPS\gallery\Category::clubNodes()}}
{{if $rootCategories}}
{lang="club_node_gallery"} {{endif}}
{template="categoryGrid" group="browse" app="gallery" params="$clubNodes"}
{{endif}}
{{endif}}
{{if \count( $recentlyUpdatedAlbums )}}
{lang="gallery_recently_updated_albums"}
{{foreach $recentlyUpdatedAlbums as $album}}
{$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}}
{{if !empty( $new )}}
{lang="new_images"}
{{foreach $new as $image}}
{{$imageWidth=isset( $image->_dimensions['small'][0] ) ? $image->_dimensions['small'][0] : 0;}}
{{$imageHeight=isset( $image->_dimensions['small'][1] ) ? $image->_dimensions['small'][1] : 0;}}
{{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}}
{{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}} ipsPadding ipsPadding_bottom:double cGalleryImageItem' data-imageId="{$image->id}">
{{if $image->mapped('pinned') || $image->mapped('featured') || $image->hidden() === -1 || $image->hidden() === 1}}
{{if $image->hidden() === -1}}
{{elseif $image->hidden() === 1}}
{{endif}}
{{if $image->mapped('pinned')}}
{{endif}}
{{if $image->mapped('featured')}}
{{endif}}
{{endif}}
{{if $image->unread()}} {{endif}}
{{if $image->prefix()}}
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
{{endif}}
{{if $image->unread()}}{$image->caption} {{else}}{$image->caption}{{endif}}
{{endforeach}}
]]>
unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $image, 'tableClass' ) && $image->tableClass()}}ipsDataItem_{$image->tableClass()}{{endif}} {{if $image->hidden()}}ipsModerated{{endif}}' data-imageId="{$image->id}">
{{if $image->unread()}}
{{endif}}
{{if $image->hidden() === -1}}
{{elseif $image->hidden() === 1}}
{{endif}}
{{if $image->mapped('pinned')}}
{{endif}}
{{if $image->mapped('featured')}}
{{endif}}
{{if $image->prefix()}}
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
{{endif}}
canEdit()}}data-role="editableTitle"{{endif}}>
{$image->caption}
{lang="byline_nodate" htmlsprintf="$image->author()->link()"}
{$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}}'>
{{endif}}
{{endforeach}}
{{endif}}]]>
_dimensions['small'][0] ) ? $image->_dimensions['small'][0] : 0;}}
{{$imageHeight=isset( $image->_dimensions['small'][1] ) ? $image->_dimensions['small'][1] : 0;}}
{{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}}
]]>
{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_choose"}{{else}}{lang="form_upload_choose_one"}{{endif}}
{{if $allowStockPhotos}}
{lang="form_upload_stockart_choose"}
{{endif}}
{{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 $multiple}}{lang="form_upload_choose"}{{else}}{lang="form_upload_choose_one"}{{endif}}
{{if $allowStockPhotos}}
{lang="form_upload_stockart_choose"}
{{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}}
{{endif}}]]>
]]>
{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 $item->masked_file_name}}
{{else}}
{{endif}}
{{if $reason = $item->approvalQueueReason()}}
{lang="reason_for_approval"}
{{endif}}]]>
$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'>
{{if $comment->author()->hasHighlightedReplies() || ( settings.reputation_enabled and \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and settings.reputation_highlight and $comment->reactionCount() >= settings.reputation_highlight ) OR $comment->isFeatured()}}
{{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 ) }}
{{if $comment->hidden() !== 1 && \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and settings.reputation_enabled and $comment->hasReactionBar()}}
{template="reputation" group="global" app="core" params="$comment"}
{{endif}}
{{endif}}
{{if $comment->ip_address and \IPS\Member::loggedIn()->modPermission('can_use_ip_tools') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'modcp' ) )}}
{{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}} id='elComment_{$comment->$idField}' class='ipsBox ipsBox--child ipsComment {{if ( settings.reputation_enabled and \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and settings.reputation_highlight and $comment->reactionCount() >= settings.reputation_highlight ) OR $comment->isFeatured()}}ipsComment_popular{{endif}} ipsComment_parent ipsClearfix ipsClear {{if $comment->isIgnored()}}ipsHide{{endif}} {{if $comment->author()->hasHighlightedReplies()}}ipsComment_highlighted{{endif}} {{if $comment->hidden() OR $item->hidden() == -2}}ipsModerated{{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 )}}
{{foreach $images as $albumImage}}
{{endforeach}}
{{if $item->asNode()->count_imgs > 19}}
{{endif}}
{{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 )}}
{{foreach $images as $albumImage}}
{{endforeach}}
{{if $item->asNode()->count_imgs > 19}}
{{endif}}
{{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 )}}
{{foreach $images as $albumImage}}
{{endforeach}}
{{if $albumNode->count_imgs > 4}}
{{endif}}
{{endif}}
{{if $desc = $albumItem->truncated(TRUE)}}
{$desc|raw}
{{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"}
{{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 )}}
{{foreach $images as $albumImage}}
{{endforeach}}
{{if $item->directContainer()->count_imgs > 9}}
{{endif}}
{{endif}}
{{endif}}
]]>
{template="embedHeader" group="embed" app="core" params="$comment, $item->mapped('title'), $comment->mapped('date'), $url"}
{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"}
{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}}
]]>
{{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']}}
{{elseif isset( $comment['featured_by'] )}}
{lang="recommended_by" htmlsprintf="$comment['featured_by']->link()"}
{{endif}}
{{endif}}]]>
{lang="$titleLang"}
{{if \count( $comments )}}
{{foreach $comments AS $id => $comment}}
{template="featuredComment" group="global" app="gallery" params="$comment, $id, $commentLang"}
{{endforeach}}
{{endif}}
]]>
{$image->caption} ]]>
tableClass()}}ipsDataItem_{$row->tableClass()}{{endif}}" data-controller='core.front.system.manageFollowed' data-followID='{$row->_followData['follow_area']}-{$row->_followData['follow_rel_id']}'>
{{if $coverImage = $row->coverPhoto('small') }}
{{else}}
{{endif}}
{{if $row->_locked}}
{{endif}}
{$row->_title}
{$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']}"}
{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=''>
{{endif}}
{{endforeach}}]]>
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']}'>
small_file_name )->url"} )'>
{{if $row->mapped('locked')}}
{{endif}}
{{if $row->mapped('pinned') || $row->mapped('featured') || $row->hidden() === -1 || $row->hidden() === 1}}
{{if $row->hidden() === -1}}
{{elseif $row->hidden() === 1}}
{{endif}}
{{if $row->mapped('pinned')}}
{{endif}}
{{if $row->mapped('featured')}}
{{endif}}
{{endif}}
{{if $row->prefix()}}
{template="prefix" group="global" app="core" params="$row->prefix( TRUE ), $row->prefix()"}
{{endif}}
{{if $row->mapped('title')}}{$row->mapped('title')}{{else}}{lang="content_deleted"} {{endif}}
{datetime="$row->_followData['follow_added']"}
{{if $row->_followData['follow_notify_freq'] == 'none'}}
{{else}}
{{endif}} {lang="follow_freq_{$row->_followData['follow_notify_freq']}"}
{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}}'>
{{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-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='ipsComment_content ipsType_medium'>
{$review->content()|raw}
{{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}}
{{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() )}}
{{if $review->hidden() !== 1 && \IPS\IPS::classUsesTrait( $review, 'IPS\Content\Reactable' ) and settings.reputation_enabled}}
{template="reputation" group="global" app="core" params="$review"}
{{endif}}
{{if $review->hidden() === 1 && ( $review->canUnhide() || $review->canDelete() )}}
{{endif}}
{{endif}}
{{if ! \IPS\Output::i()->reduceLinks()}}
{template="sharemenu" group="global" app="core" params="$review"}
{{endif}}
]]>
isIgnored()}}
{{else}}
{{endif}}]]>
{{foreach $images as $image }}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{{endforeach}}
{{else}}
{{endif}}
{{else}}
{{foreach $images as $image }}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{{endforeach}}
{{endif}}]]>
{{foreach $images as $image }}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{{endforeach}}
{{else}}
{{endif}}
{{else}}
{{if trim( $indexData['index_content'] ) !== ''}}
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}}>
{expression="\IPS\Content\Search\Result::preDisplay( $indexData['index_content'] )" raw="true"}
{{endif}}
{{if \count($images)}}
{{foreach $images as $k => $image}}
{{endforeach}}
{{endif}}
{{endif}}]]>
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$imageObj, FALSE"}
{{else}}
{{endif}}
{{else}}
{{if $image}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$imageObj, FALSE"}
{{endif}}
{{endif}}]]>
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$imageObj, FALSE"}
{{else}}
{{endif}}
{{else}}
{{if $image}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$imageObj, FALSE"}
{{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' )}}data-ipsTruncate data-ipsTruncate-type='remove' data-ipsTruncate-size='3 lines' data-ipsTruncate-watch='false'{{else}}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"}
]]>
{lang="gallery_stats_uploader_count" pluralize="$total"}
{{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}}
]]>
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}}
{{if \is_array( $container )}}
{$images|raw}
{{endif}}
{lang="files_had_errors"}
{lang="submit_all_images"}
{{if settings.gallery_nsfw}}
{{endif}}
{{if \IPS\Member::loggedIn()->member_id}}
{{endif}}
]]>
url()}' {{if $image->isLastPage()}}data-lastPage{{endif}} data-feedID='image-{$image->id}' id='comments'>
{{if $image->commentPageCount() > 1}}
{$image->commentPagination( array('tab') )|raw}
{{endif}}
{template="featuredComments" group="global" app="gallery" params="$image->featuredComments(), $image->url()->setQueryString('tab', 'comments')->setQueryString('recommended', 'comments')"}
{template="commentMultimodHeader" app="core" group="global" params="$image, '#comments'"}
{{if \count( $image->comments( NULL, NULL, 'date', 'asc', NULL, NULL, NULL, NULL, FALSE, isset( \IPS\Request::i()->showDeleted ) ) )}}
{{else}}
{lang="no_comments"}
{{endif}}
{{if $image->commentPageCount() > 1}}
{$image->commentPagination( array('tab') )|raw}
{{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() }}
{{$prev = array_reverse( array_slice( $image->fetchNextOrPreviousImages( 9, 'ASC' ), 0, 4 ) );}}
{{$next = $image->fetchNextOrPreviousImages( 9, 'DESC' );}}
{{$counter = 1;}}
{{foreach $prev as $id => $carouselImage}}
{{$counter++;}}
{{endforeach}}
{{$counter++;}}
{{foreach $next as $id => $carouselImage}}
{{$counter++;}}
{{if $counter == 10}}
{{break;}}
{{endif}}
{{endforeach}}
{{endif}}
{template="imageInfo" group="view" params="$image"}
{{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}}
{{if $image->container()->club()}}
{{endif}}]]>
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}}
canEdit()}}data-editable{{endif}} data-notesData='{$image->_notes_json}'>
{{if \is_countable( $image->_notes ) AND \count( $image->_notes )}}
{{foreach $image->_notes as $note}}
{{endforeach}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image"}
{{if $image->copyright}}
© {$image->copyright}
{{endif}}
{{if $image->credit_info}}
{lang="image_credit_info"} {$image->credit_info}
{{endif}}
{{if $image->canEdit() OR $image->canDownloadOriginal() OR \IPS\Member::loggedIn()->member_id}}
{{endif}}
{{endif}}
{{if $image->hasPreviousOrNext()}}
1, 'do' => 'previous' ] )}' class='elGalleryImageNav_prev' data-action="prevMedia">
1, 'do' => 'next' ] )}' class='elGalleryImageNav_next' data-action="nextMedia">
{{endif}}
]]>
getMessages(), $image"}
{{if $image->hidden() === 1 and $image->canUnhide()}}
{lang="image_pending_approval"}
{{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}}
{{if $image->hidden() === 1}}
{{elseif $image->hidden() === -1}}
{{elseif $image->hidden() === -2}}
{{endif}}
{{if $image->mapped('pinned')}}
{{endif}}
{{if $image->mapped('featured')}}
{{endif}}
{{if $image->canEdit()}}
{{if $image->locked()}} {{endif}}
{$image->caption}
{{else}}
{{if $image->locked()}} {{endif}}{$image->caption}
{{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 $image->credit_info && $image->copyright}}
{{endif}}
{{if $image->credit_info}}
{lang="image_credit_info"}
{$image->credit_info}
{{endif}}
{{if $image->credit_info && $image->copyright}}
{{endif}}
{{if $image->copyright}}
{lang="image_copyright"}
© {$image->copyright}
{{endif}}
{{if $image->credit_info && $image->copyright}}
{{endif}}
{{if \IPS\IPS::classUsesTrait( $image, 'IPS\Content\Reactable' ) and settings.reputation_enabled}}
{template="reputation" app="core" group="global" params="$image"}
{{endif}}
{{if $image->directContainer()->allow_rating}}
{$image->rating()|raw}
{{endif}}
{{if \IPS\GeoLocation::enabled() AND $image->gps_show}}
{$image->map( 308, 200 )|raw}
{$image->loc_short}
{{if $image->canEdit() }}
{{endif}}
{{elseif \IPS\GeoLocation::enabled() AND $image->canEdit() AND $image->gps_raw}}
{$image->map( 308, 200 )|raw}
{$image->loc_short}
{lang="map_not_being_shown"}
{{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"}
{lang="num_images" pluralize="$image->directContainer()->count_imgs"}
{{if $image->container()->allow_comments and $image->directContainer()->use_comments}}
{lang="num_comments" pluralize="$image->directContainer()->comments"}
{{endif}}
{{if $image->container()->allow_comments and $image->directContainer()->allow_comments}}
{lang="gallery_image_comments_s" pluralize="$image->directContainer()->count_comments"}
{{endif}}
{{if \is_countable($image->metadata) AND \count($image->metadata)}}
{lang="gallery_metadata" sprintf="$image->caption"}
{{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"}
{$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'] )}}
f
{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, 'verySmall', 'light'"}
{{endif}}
{template="analyticsItemLink" app="core" group="system" params="$image"}
{template="promote" app="core" group="global" params="$image"}
{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}} class="ipsPos_center" 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}'>
{{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}}
{{if $image->hidden() === 1}}
{{elseif $image->hidden() === -1}}
{{elseif $image->hidden() === -2}}
{{endif}}
{{if $image->mapped('pinned')}}
{{endif}}
{{if $image->mapped('featured')}}
{{endif}}
{{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}}
{{endif}}
{{if $image->hasPreviousOrNext()}}
1, 'do' => 'previous' ] )}' class='elGalleryImageNav_prev'>
1, 'do' => 'next' ] )}' class='elGalleryImageNav_next'>
{{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()"}
{{if ( $image->canEdit() or $image->canFeature() or $image->canPin() or $image->canUnfeature() 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}}
{$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->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}
{{elseif $image->canEdit() AND \IPS\GeoLocation::enabled() AND $image->gps_raw}}
{$image->map( 400, 100 )|raw}
{$image->loc_short}
{{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-{$image->id}-reviews' id='reviews'>
{{if \count( $image->reviews( NULL, NULL, NULL, 'desc', NULL, NULL, NULL, NULL, isset( \IPS\Request::i()->showDeleted ) ) )}}
{template="commentMultimodHeader" app="core" group="global" params="$image, '#reviews', 'review'"}
{{if $image->reviewPageCount() > 1}}
{$image->reviewPagination( array( 'tab', 'sort' ) )|raw}
{{endif}}
{{if $image->reviewPageCount() > 1}}
{$image->reviewPagination( array( 'tab', 'sort' ) )|raw}
{{endif}}
{{elseif !$image->canReview()}}
{lang="no_reviews"}
{{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 $orientation == 'horizontal'}}
]]>
{$title}
{{endif}}]]>
{$title}
{{endif}}]]>
/* Embedded gallery content */
.ipsImageBlock--embed-hero .ipsImageBlock__main{
max-height: 220px;
}
.ipsRichEmbed--gallery-image-comment .ipsImageBlock__main,
.ipsRichEmbed--gallery-image-review .ipsImageBlock__main{
max-height: 300px;
}
.cGalleryEmbed_albumStrip {
display: flex;
justify-content: center;
gap: 5px;
}
.cGalleryEmbed_albumStrip li {
flex: 0 1 25%;
}
.cGalleryEmbed_albumStrip:not( .cGalleryEmbed_albumStrip_mini ) {
margin: 0;
background: rgb(var(--theme-area_background_reset));
padding: 5px;
border-radius: var(--box--radius);
position: relative;
}
.ipsImageBlock ~ .cGalleryEmbed_albumStrip:not( .cGalleryEmbed_albumStrip_mini ){
margin: -30px 15px 0;
}
.ipsList_inline {
margin-top: 10px;
}
.elGalleryImage .ipsButton.ipsButton_link,
.elGalleryImage .ipsButton.ipsButton_primary {
margin-inline-start: 0;
}
/* Follow and promote buttons */
.cGalleryControls .ipsFollow .ipsCommentCount{
position: relative;
transform: none;
top: auto;
}
.cGalleryControls .ipsFollow .ipsCommentCount{
margin-inline-end: 0 !important;
}
.cGalleryControls .ipsPromote.ipsButton_verySmall,
.cGalleryControls .ipsFollow.ipsButton_verySmall > :first-child{
padding-left: 15px;
padding-right: 15px;
}
/* Lightbox */
#cLightbox {
overflow: auto;
}
.cGalleryLightbox .elGalleryImage {
position: relative;
top: auto;
left: auto;
right: auto;
bottom: auto;
width: 100%;
}
.cGalleryLightbox {
top: 0;
left: 0;
right: 0;
bottom: 0;
display: block;
}
.cGalleryLightbox_inner {
position: relative;
display: block;
}
.cGalleryLightbox_info {
width: 100%;
min-width: 0;
overflow: visible;
}
.cGalleryLightbox_info a.ipsReact_reaction:after {
width: 60px;
height: 60px;
}
/* Clear floated Follow button in Managed Content */
.ipsDataItem_size6 [data-followapp="gallery"]{
overflow: hidden;
}
}]]>
.ipsRating {
float: none;
}
.elGalleryImageNav {
position: absolute;
top: 50%;
left: 0;
right: 0;
transform: translateY(-50%);
display: flex;
justify-content: space-between;
pointer-events: none;
}
.elGalleryImageNav a {
color: #fff;
font-size: 60px;
font-size: clamp(30px, 5vw, 60px);
padding: 0 15px;
opacity: 0.2;
transition: all 0.2s ease-in-out;
z-index: 100;
pointer-events: auto;
}
.elGalleryImage:hover .elGalleryImageNav a {
opacity: 1;
background: rgba(0,0,0,0.2);
}
/*
----------------
- Carousel
----------------
*/
.cGalleryCarousel{
margin: 0;
padding: 0;
list-style: none;
--carousel--show: 1;
--carousel--scroll: var(--carousel--show);
--gap: 10px;
--carousel--pull: 0px;
display: flex;
gap: var(--gap);
overflow-x: scroll;
overscroll-behavior-x: contain;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
scrollbar-width: none;
}
.cGalleryCarousel::-webkit-scrollbar {
-webkit-appearance: none;
height: 0px;
}
/* Carousel items */
.cGalleryCarousel > *{
flex: 0 0 0;
flex-basis: calc( (100% - (var(--gap) * (var(--carousel--show) - 1) )) / var(--carousel--show) );
scroll-snap-align: start;
}
.cGalleryCarousel:focus-within > *:not(:focus-within){
scroll-snap-align: none;
}
/* Navigation buttons */
.cGalleryCarouselNav{
display: flex;
justify-content: center;
gap: 6px;
}
.cGalleryCarouselNav[hidden]{
display: none !important;
}
.cGalleryCarousel + .cGalleryCarouselNav,
.cGalleryCarouselNav + .cGalleryCarousel{
margin-top: var(--sp-2);
}
.cGalleryCarouselNav__button{
-webkit-appearance: none;
appearance: none;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
min-height: 44px;
min-width: 44px;
border-radius: 6px;
background: none;
color: inherit;
border: 2px solid currentColor;
touch-action: manipulation;
opacity: .5;
}
.cGalleryCarouselNav__button svg{
fill: currentColor;
}
@media (hover: hover){
.cGalleryCarouselNav__button:hover{
opacity: 1;
}
}
@media (min-width: 768px){
.cGalleryCarouselNav--overlay{
color: #fff;
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 1rem;
right: 1rem;
justify-content: space-between;
pointer-events: none;
margin-top: 0 !important;
}
.cGalleryCarouselNav--overlay button{
pointer-events: auto;
}
}
/*
----------------
- Wallpaper carousel
----------------
*/
.ipsColumns--gallery-featured-carousel{
--carousel-height: clamp(480px, 80vh, 610px);
}
.cGalleryCarousel--wallpaper{
--carousel--show: 1;
--gap: 3px;
padding-bottom: 0;
max-height: 90vh;
height: var(--carousel-height, auto);
}
.cGalleryCarousel--wallpaper .ipsImageBlock{
height: 100%;
}
.cGalleryCarousel--wallpaper .ipsImageBlock__footer{
padding: 1.5em;
}
/*
----------------
- Image view: thumbnail carousel
----------------
*/
.cGalleryImageThumbs{
position: relative;
background: rgb(var(--theme-area_background_dark)) linear-gradient(rgba(0,0,0,.3) 0% 100%);
box-shadow: inset rgba(255,255,255,.1) 0px 1px 0px;
border-radius: 0 0 var(--box--radius) var(--box--radius);
padding: 20px 44px;
}
.cGalleryImageThumbs .cGalleryCarousel{
--gap: 15px;
padding: 4px;
scroll-snap-type: none;
}
.cGalleryImageThumbs .cGalleryCarousel__item{
flex-basis: auto;
border-radius: 4px;
outline: 1px solid rgb(var(--theme-area_background), .001); /* Color is needed to prevent thumbnails from jumping on hover in Safari */
outline-offset: 2px;
}
.cGalleryImageThumbs .cGalleryCarousel > *:first-child{
margin-inline-start: auto;
}
.cGalleryImageThumbs .cGalleryCarousel > *:last-child{
margin-inline-end: auto;
}
.cGalleryImageThumbs .ipsImageBlock__main > *{
height: 80px;
}
.cGalleryImageThumbs .cGalleryCarousel__item--active{
outline-color: rgb(var(--theme-area_background), 1);
outline-width: 2px;
}
.cGalleryImageThumbs .cGalleryCarousel__item:not(.cGalleryCarousel__item--active):hover{
outline-color: rgb(var(--theme-area_background), .5);
}
.cGalleryImageThumbs .cGalleryCarouselNav{
color: #fff;
left: 0;
right: 0;
}
.cGalleryImageThumbs .cGalleryCarouselNav__button{
border-color: transparent;
}
@media (max-width: 767px){
.cGalleryImageThumbs{
padding-left: 0;
padding-right: 0;
}
.cGalleryImageThumbs .cGalleryCarousel{
padding-left: 20px;
padding-right: 20px;
}
/* Remove arrow buttons on touch devices */
@media (hover: none){
.cGalleryImageThumbs .cGalleryCarousel + .cGalleryCarouselNav{
display: none;
}
}
}
/*
----------------
- Masonry
----------------
*/
.iGalleryMasonry{
margin: 0;
padding: 0;
list-style: none;
--ratio: 16/9;
--gap: 12px;
--basis: clamp(180px, 30vw, 240px);
--basis: clamp(120px, 25%, 240px);
display: flex;
flex-wrap: wrap;
gap: var(--gap);
}
.iGalleryMasonry--mini{
--basis: 70px;
}
.iGalleryMasonry__item,
.iGalleryMasonry::after{
flex-grow: calc(10 * (var(--ratio)));
flex-shrink: 1;
flex-basis: calc(var(--ratio) * var(--basis));
display: grid;
border-radius: 7px;
position: relative;
}
.iGalleryMasonry__item:has(:checked){
outline: 2px solid rgb(var(--theme-brand_primary));
outline-offset: 2px;
}
.iGalleryMasonry::after{
content: '';
flex-basis: 50%;
align-self: flex-end;
}
.iGalleryMasonry__item > *{
grid-area: 1/-1;
position: relative;
}
.iGalleryMasonry__item::before{
content: '';
padding-top: calc(100% / (var(--ratio)));
grid-area: 1/-1;
}
/* Ensure media in masonry grids follow their ratio */
.iGalleryMasonry .ipsImageBlock__main img,
.iGalleryMasonry .ipsImageBlock__main video,
.iGalleryMasonry .ipsImageBlock__main iframe{
position: absolute;
width: 100%;
height: 100%;
border-radius: inherit;
}
/*
----------------
- Latest comments sidebar
----------------
*/
@media (min-width: 980px){
.ipsWidget--gallery-comments{
height: var(--carousel-height, 610px);
}
.cGalleryLatestComments{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow-y: auto;
}
}
.cGalleryLatestComments > ul{
margin: 0;
padding: 0;
list-style: none;
}
.cGalleryLatestComments__item{
display: flex;
padding: 1em;
border-bottom: 1px solid rgba( var(--theme-text_light), 0.15 );
}
.cGalleryLatestComments__thumb{
flex: 0 0 72px;
margin-inline-end: 1em;
}
.cGalleryLatestComments__thumb .ipsImageBlock__main{
height: 72px;
}
.cGalleryLatestComments__text{
flex: 1 1 100%;
align-self: center;
}
.cGalleryLatestComments .ipsType_richText{
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
margin-bottom: 0.5em;
font-weight: 450;
}
/*
----------------
- Categories
----------------
*/
.cGalleryCats{
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: 35px;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
grid-template-columns: repeat(auto-fill, minmax(clamp(200px, 20%, 280px), 1fr));
text-align: center;
padding-bottom: 30px;
}
.cGalleryCat .ipsImageBlock {
margin-bottom: 15px;
}
.cGalleryCat .ipsImageBlock__main{
aspect-ratio: 4/3;
}
@supports not (aspect-ratio: 1){
.cGalleryCat .ipsImageBlock__main{
height: 250px;
}
}
.cGalleryCats__name {
margin: 0;
color: rgb( var(--theme-text_dark) );
font-size: {fontsize="large"};
font-weight: 500;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.cGalleryCats__name .ipsItemStatus:not( .ipsItemStatus_large ){
font-size: 10px;
}
.cGalleryCats__stats {
margin: 0;
margin-top: 5px;
padding: 0;
list-style: none;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 5px 20px;
font-size: {fontsize="x_small"};
color: rgb(var(--theme-text_light));
}
.cGalleryCats .ipsType_richText{
margin-top: .5em;
}
/*
Align text/stats to the start instead of centered.
This makes categories with descriptions more visually pleasing.
*/
.cGalleryCats--start{
text-align: start;
}
.cGalleryCats--start .cGalleryCats__stats{
justify-content: flex-start;
}
/* ALBUM LIST IN A CATEGORY */
.cGalleryAlbums > li:not( :last-child ) {
margin-bottom: 7px;
}
html[dir="ltr"] .cGalleryEvents .ipsDataList .ipsDataItem,
html[dir="ltr"] .cGalleryEvents .ipsDataList .ipsDataItem_icon {
padding-left: 0 !important;
}
html[dir="rtl"] .cGalleryEvents .ipsDataList .ipsDataItem,
html[dir="rtl"] .cGalleryEvents .ipsDataList .ipsDataItem_icon {
padding-right: 0 !important;
}
.cGalleryImageItem.cGalleryImageItem_selected {
background-color: rgb( var(--theme-selected) );
}
.ipsDataItem.cGalleryImageItem > *{
vertical-align: middle;
}
/* IMAGE VIEW PAGE */
.cGalleryViewImage {
display: grid;
place-items: center;
position: relative;
}
.cGalleryViewImage img[data-role="theImage"],
#elGalleryVideo {
position: relative;
max-width: 100%;
max-height: clamp(300px, 60vh, 800px);
display: block;
}
.cGalleryViewImage [data-ipslightbox]{
cursor: zoom-in;
}
.cGalleryImageTitle {
color: #fff;
text-align: left;
z-index: 100;
pointer-events: auto;
}
.cGalleryImageTitle .ipsType_pageTitle, .cGalleryImageTitle .ipsType_pageTitle a,
.cGalleryImageTitle .ipsType_minorHeading, .cGalleryImageTitle a {
color: inherit;
font-weight: inherit;
}
.cGalleryImageTitle .ipsType_pageTitle {
font-size: {fontsize="x_large"};
}
.cGalleryCreditInfo {
text-align: left;
color: #fff;
text-shadow: 2px 2px 5px #000;
pointer-events: auto;
}
.cGalleryViewImage_controls {
z-index: 100;
pointer-events: auto;
}
.cGalleryLightbox [data-role="imageComments"] .ipsTabs_panels.ipsTabs_contained .ipsTabs_panel {
padding: 0px;
}
[data-role="imageComments"] .ipsTabs_panel .ipsRecommendedComments {
margin: -15px 0px 5px 0px;
}
.elGalleryImage .ipsButton.ipsButton_link {
background: rgba(0,0,0,0.4) !important;
color: #fff;
border-color: transparent !important;
margin-inline-start: 3px;
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px);
}
.elGalleryImage .ipsButton.ipsButton_primary {
background: #fff !important;
color: #000;
border: 1px solid #fff !important;
margin-inline-start: 3px;
}
.elGalleryImage .ipsPromote .ipsPromote_icon {
background: transparent;
}
.cGalleryExif_data {
margin: 0;
padding: 0;
list-style: none;
}
.cGalleryExif_data li {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: .5em;
padding: 1em 0;
border-bottom: 1px solid rgba(var(--theme-area_background_dark), .1);
}
.cGalleryExif_data li:last-child{
border-bottom-width: 0;
}
.cGalleryExif_data__icon{
flex: 0 0 1.6em;
color: rgb(var(--theme-text_light));
text-align: center;
}
.cGalleryExif_data__label{
font-weight: 500;
color: rgb(var(--theme-text_dark));
}
.cGalleryExif_data__value{
margin-inline-start: auto;
color: rgb(var(--theme-text_light));
text-align: end;
}
.cGalleryExif .cGalleryExif_f {
font-family: 'Palatino', 'Times New Roman';
font-style: italic;
font-weight: bold;
}
/* NOTES */
.cGalleryViewImage_addNote {
cursor: crosshair;
}
.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 {
position: absolute;
left: 1px;
right: 1px;
top: 1px;
bottom: 1px;
content: '';
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;
max-width: 220px;
width: 220px;
padding: 4px;
pointer-events: auto;
z-index: 1000;
}
.cGalleryNote_editing .cGalleryNote_note ul {
text-align: start;
margin-top: 5px;
}
.cGalleryNote_editing .cGalleryNote_note a {
color: #fff;
}
.cGalleryNote_editing .cGalleryNote_note textarea {
font-size: {fontsize="x_small"};
color: #000;
}
.cGalleryNote_note {
width: -webkit-max-content;
width: -moz-max-content;
width: max-content;
position: absolute;
top: 0;
inset-inline-start: 105%;
margin-top: 5px;
background: #2a2a2a;
color: #fff;
font-size: {fontsize="x_small"};
border-radius: 2px;
pointer-events: none;
}
.cGalleryNote_note > div {
width: 100%;
max-width: 200px;
padding: 4px 8px;
}
.cGalleryNote_delete {
position: absolute;
top: -10px;
inset-inline-end: -10px;
width: 24px;
height: 24px;
line-height: 19px;
border-radius: 12px;
background: #000;
border: 1px solid #fff;
color: #fff;
font-size: 17px;
text-align: center;
}
/* 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" app="core" location="global"}" );
}
.ui-draggable { cursor: move;}
.cGallerySearchAlbumThumbs,
.cGalleryManagedAlbumThumbs {
margin: 0;
padding: 0;
list-style: none;
display: flex;
gap: 4px;
overflow: hidden;
width: 100%;
}
.cGalleryManagedAlbumThumbs{
margin-top: 10px;
}
.cGallerySearchAlbumThumbs.cGallerySearchExpanded {
padding-inline-start: 30px;
}
.cGallerySearchAlbumThumbs li,
.cGalleryManagedAlbumThumbs li {
max-width: 35px;
max-height: 35px;
display: block;
}
/* Lightbox */
#cLightbox {}
#cLightbox .cLightboxBack {
background-color: #000;
opacity: 1.0;
}
.cLightboxClose {
background-color: #000;
color: #fff;
font-family: Arial, sans-serif;
font-size: 28px;
width: 40px;
height: 40px;
border-radius: 40px;
line-height: 40px;
text-align: center;
position: absolute;
top: 10px;
inset-inline-end: 10px;
z-index: 10;
cursor: pointer;
}
.cGalleryLightbox {
position: absolute;
top: 20px;
left: 20px;
right: 20px;
bottom: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.cGalleryLightbox_inner {
display: flex;
align-items: stretch;
background: rgb(var(--theme-area_background_dark)) linear-gradient(rgba(0,0,0,.6) 0% 100%);
border-radius: var(--box--radius) var(--box--radius) 0 0;
}
@media (max-width: 767px){
.cGalleryLightbox_inner,
.cGalleryImageThumbs{
margin-left: -10px;
margin-right: -10px;
border-radius: 0;
}
}
.cGalleryLightbox .cGalleryLightbox_inner {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
box-shadow: 0px 5px 55px rgba(0,0,0,0.4);
margin: 0;
}
.cGalleryLightbox_image {
flex-grow: 1;
}
.cGalleryLightbox_info {
width: 445px;
min-width: 445px;
overflow-y: auto;
}
/* Adds smaller margins to staff notes in the lightbox for a neater layout. Important is necessary to overwride utility classes */
.cGalleryLightbox_info .cContentMessage {
margin: 5px !important;
}
.cGalleryImageTopBar,
.cGalleryImageBottomBar {
position: absolute;
left: 0;
right: 0;
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
pointer-events: auto;
}
.cGalleryImageBottomBar .ipsList_inline{
margin-inline-start: auto;
}
.cGalleryImageTopBar {
top: 0;
align-items: flex-start;
padding: 20px 20px 0 20px;
}
.cGalleryImageBottomBar {
bottom: 0;
align-items: flex-end;
padding: 0 20px 20px 20px;
pointer-events: none;
}
.cGalleryImageBottomBar > *{
pointer-events: auto;
}
.cGalleryControls {
white-space: nowrap;
margin-inline-start: auto;
}
/* Customized styles for comments area inside lightbox */
/*
.cGalleryLightbox [data-role="imageComments"] #comments,
.cGalleryLightbox [data-role="imageComments"] #reviews {
padding: var(--sp-4);
}
.cGalleryLightbox_info [data-role="noComments"] {
display: none;
}
.cGalleryLightbox_info .ipsComposeArea_dummy {
padding: 7px 15px;
font-size: {fontsize="medium"};
}
.cGalleryLightbox_info .ipsTabs {
background: rgb( var(--theme-area_background) );
border-top: 1px solid rgba(0,0,0,0.1);
}
.cGalleryLightbox_info .ipsTabs_item,
.cGalleryLightbox_info .ipsTabs_item:hover {
color: rgb( var(--theme-text_color) );
}
.cGalleryLightbox_info .cGuestTeaser .ipsGrid_span6 {
float: none;
width: 100%;
}
.cGalleryLightbox_info .cGuestTeaser_right {
margin-top: 15px;
}
.cGalleryLightbox_info .cGuestTeaser .ipsType_pageTitle {
font-size: {fontsize="x_large"};
}
*/
/* Increase padding on the comments multi-mod to cater for a lack of .ipsPad */
/*[data-role="imageComments"] #comments > .ipsButtonRow{
margin: 12px;
}*/
/* And lightbox comment editor stuff */
/* Todo: remove this when a 'slim' editor variant is available */
/*.cGalleryLightbox_info .ipsToolList.ipsToolList_horizontal .ipsToggle {
transform: scale(0.8);
}
.cGalleryLightbox_info .ipsToolList.ipsToolList_horizontal label {
font-size: {fontsize="small"};
}
.cGalleryLightbox_info .ipsToolList_horizontal{
justify-content: center;
}
.cGalleryLightbox_info .ipsToolList_horizontal::after{
display: none;
}
.cGalleryLightbox_info .ipsToolList_horizontal > li{
margin: 6px;
}
.cGalleryLightbox_info .ipsToolList_horizontal > li:not(.ipsPos_left){
flex: 1 1 100%;
order: 3;
}
.cGalleryLightbox_info button[type="submit"][accesskey="s"] {
width: 100%;
margin-top: 10px;
}
.cGalleryLightbox_info .ipsComposeArea_dropZoneSmall .ipsList_inline > li.ipsPos_right {
float: none;
}
.cGalleryLightbox_info .ipsComposeArea_dropZoneSmall .ipsList_inline > li.ipsPos_right .ipsButton_verySmall {
line-height: 22px;
margin-top: 7px;
padding: 0 10px;
}
.cGalleryLightbox_info .ipsComposeArea_dropZone .fa-paperclip {
font-size: 20px;
}
.cGalleryLightbox_info .ipsComposeArea_dropZone > div {
margin-top: -3px;
margin-inline-start: 25px;
}*/
.cGalleryNoThumb_full {
width: 100%;
height: 400px;
}
.cGalleryNoThumb_full:after {
font-size: 50px;
}
/*.cGalleryLightbox_info .ipsRecommendedComments .ipsComment_recommendedFlag {
z-index: 100;
}
.cGalleryLightbox_info .ipsRecommendedComments .ipsComment_recommendedFlag .ipsResponsive_hidePhone,
.cGalleryLightbox_info .ipsRecommendedComments .ipsComment_recommended > .ipsPos_right {
display: none;
}
.cGalleryLightbox_info .ipsRecommendedComments .ipsColumn {
display: block !important;
}
.cGalleryLightbox_info .ipsRecommendedComments .ipsColumn.ipsColumn_narrow {
float: left;
width: 70px;
}
.cGalleryLightbox_info .ipsRecommendedComments .ipsComment_header {
padding: 0;
margin: 0 0 15px 0;
}
html[dir] .cGalleryLightbox_info .ipsRecommendedComments .ipsComment_recommendedNote {
margin-left: 0;
margin-right: 0;
}*/
/* Full size image lightbox */
#cLightbox[data-fullScreen] .cLightboxClose,
#cLightbox[data-fullScreen] .cGalleryLightbox_info {
display: none !important; /* Navigating in the lightbox will call elem.show() which sets an inline display: block style we want to ignore */
}
#cLightbox[data-fullScreen] .cGalleryLightbox {
top: 0;
bottom: 0;
right: 0;
left: 0;
}
#cLightbox[data-fullScreen] .cGalleryImageFade {
transition: none;
opacity: 1;
}
[data-role="toggleFullscreen"]:after {
font-family: FontAwesome;
content: "\f065";
}
#cLightbox[data-fullScreen] [data-role="toggleFullscreen"]:after {
content: "\f066";
}
/* Comments and reviews on albums */
/* This hides the "x Comments" header since it's already mentioned in the tab */
.ipsTabs_panel .ipsType_sectionHead--galleryFeedbackCount{
display: none;
}
/* Change the colours of the inline title editing input, when placed inside the lightbox */
.elGalleryImage .ipsType_pageTitle [data-role="editableTitle"]:hover{
background-color: {hextorgb="#fff" opacity="0.4"};
}
.elGalleryImage .ipsType_pageTitle input[type='text']{
color: rgb( var(--theme-text_color) );
}
/* Space out items in vertical Image Feed widget */
[data-blockid^="app_gallery_imageFeed_"] .cGalleryWidgetList > li + li{
margin-top: 40px;
}
/* Chrome issue: Fix 0px height image in vertical Image Feed widget */
[data-blockid^="app_gallery_imageFeed_"] .cGalleryWidgetList .ipsImageBlock__main{
display: block;
text-align: center;
}]]>
li {
height: 100px;
position: relative;
}
.cGalleryAlbums_recent .ipsImageBlock{
height: 100%;
}
.cGalleryAlbums_recent .ipsImageBlock__footer{
justify-self: end;
padding: .5em;
}
.cGalleryAlbums_recent .ipsImageBlock__footer::before{
display: none;
}
.cGalleryAlbums_recent > li:first-child {
width: 204px;
height: 204px;
overflow: hidden;
position: absolute;
inset-inline-start: 0;
}
/* Restyle the above for the sidebar */
.ipsWidget_vertical .cGalleryAlbums_recent{
padding: 0 !important;
display: flex;
flex-wrap: wrap;
height: auto;
}
.ipsWidget_vertical .cGalleryAlbums_recent > li:first-child,
.ipsWidget_vertical .cGalleryAlbums_recent > li:first-child a,
.ipsWidget_vertical .cGalleryAlbums_recent > li,
.ipsWidget_vertical .cGalleryAlbums_recent > li a{
width: auto;
height: auto;
position: static;
}
.ipsWidget_vertical .cGalleryAlbums_recent > 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 > li:nth-child(12) ~ li{
display: none;
}
.ipsWidget_vertical .cGalleryAlbums_recent > 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 {
margin-bottom: 3px;
}
.cGalleryAlbums_recent {
height: 134px;
padding-inline-start: 138px;
grid-template-columns: repeat(auto-fill, minmax(65px, 1fr));
}
.cGalleryAlbums_recent > li:first-child {
width: 134px;
height: 134px;
}
.cGalleryAlbums_recent > li {
height: 65px;
}
.cGalleryAlbums_recent + ul.ipsList_inline {
padding-inline-start: 4px;
}
}]]>
div {
width: 100%;
height: 100%;
margin: 0 auto;
border: 1px solid rgba( var(--theme-text_color), 0.08 );
}
.cProfileAlbum_image {
display: block;
position: relative;
max-width: 100%;
height: 100%;
background-color: rgb( var(--theme-area_background_dark) );
background-size: cover;
background-position: 50%;
background-repeat: no-repeat;
overflow: hidden;
}
.cProfileAlbum_image img {
display: none;
}
.cProfileAlbum .ipsType_sectionHead {
font-size: {fontsize="medium"};
text-align: left;
display: block;
padding: 7px;
overflow: hidden;
text-overflow: ellipsis;
top: 0px;
background: rgba(0,0,0,0.5);
color: #fff;
}
]]>
i:first-child {
font-size: 70px;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList {
padding-bottom: 80px;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach {
margin-right: 0;
margin-bottom: 10px !important;
height: 260px;
width: 100%;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach:first-child {
margin-left: 0;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach:first-child {
margin-top: 160px;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach .ipsImageAttach_thumb {
height: 200px;
}
.cGallerySubmit_preview {
height: 120px
}
.cGalleryDialog_close {
width: 30px;
height: 30px;
line-height: 30px;
border-radius: 30px;
font-size: 22px;
top: 5px;
right: 5px;
}
.cGalleryDialog_content {
top: 65px;
}
/* Image details area on mobile is fixed */
.cGallerySubmit_imageDetails {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 10000;
padding: 15px;
box-shadow: rgba(0,0,0,.8) 0 0 90px;
}
/* Step 1: Choose album */
.cGallerySubmit_albumChoice {
margin-top: 0;
}
.cGallerySubmit_albumChoice > .ipsGrid_span6:first-child {
margin-bottom: 30px;
}
#elGallerySubmit_albumChooser {
min-height: none;
}
/* Step 2: Upload images */
.cGallerySubmit_bottomBar {
height: auto;
}
.cGallerySubmit_bottomBar button[type="submit"] {
width: 100%;
}
/* Info panel */
.cGallerySubmit_strip, .cGallerySubmit_infoForm, .cGallerySubmit_bottomBar, .cGallerySubmit_infoPanel {
position: absolute;
}
html[dir] .cGallerySubmit_strip {
top: 0;
left: 0;
right: 0;
width: auto;
height: 100px;
white-space: nowrap;
overflow-y: hidden;
}
.cGallerySubmit_strip ul {
white-space: nowrap;
overflow: visible;
}
.cGallerySubmit_strip li {
white-space: nowrap;
margin-bottom: 0;
margin-right: 15px;
display: inline-block;
}
.cGallerySubmit_strip .cGalleryTrimmedImage {
width: 70px;
height: 70px;
border-width: 3px;
}
.cGallerySubmit_strip .cGalleryTrimmedImage a {
width: 70px;
height: 70px;
}
.cGallerySubmit_strip .cGallerySubmit_current:after {
display: none;
}
html[dir] .cGallerySubmit_infoForm {
position: absolute;
top: 100px;
bottom: 0;
left: 0;
right: 0;
padding-left: 20px;
padding-right: 20px;
}
/* Make buttons a bit smaller */
#elGallerySubmit_toolBar > ul > li .ipsButton {
width: 100%;
line-height: 32px;
font-size: 12px;
}
}]]>
ul {
max-width: 450px;
width: 100%;
padding: 0 15px;
}
.cGalleryChooseAlbum_listItem {
display: block;
background: rgb( var(--theme-area_background_reset) );
border: 1px solid rgb( var(--theme-area_background) );
padding: 15px;
border-radius: 6px;
margin-bottom: 20px;
padding-right: 40px;
position: relative;
transition: 0.075s all ease-in-out;
}
.cGalleryChooseAlbum_listItem[data-disabled] {
opacity: 0.7;
cursor: not-allowed;
}
.cGalleryChooseAlbum_listItem[data-disabled] .ipsType_sectionHead {
color: rgb( var(--theme-text_light) );
}
.cGalleryChooseAlbum_listItem:not([data-disabled]):after {
font-family: 'FontAwesome';
content: '\f105';
position: absolute;
right: 10px;
top: 50%;
font-size: 36px;
transform: translateY(-50%);
color: rgb( var(--theme-text_dark) );
}
.cGalleryChooseAlbum_listItem:not([data-disabled]):hover {
border-color: rgba( var(--theme-text_color), 0.3 );
transform: scale(1.05);
}
.cGalleryChooseAlbum_listItem .ipsType_sectionHead {
font-size: {fontsize="base"};
}
.ipsDialog .cGalleryDialog_submitBar {
position: absolute;
bottom: 0;
left: 0;
right: 0;
border-bottom-left-radius: var(--radius-2);
border-bottom-right-radius: var(--radius-2);
}
.cGallerySubmit_albumChoice {
max-width: 1100px;
margin: 20px auto 0;
}
.cGallerySubmit_albumChoice .ipsSelectTree {
margin: 0 auto;
}
#elGallerySubmit_albumChooser > li > div {
position: relative;
border: 1px solid rgba( var(--theme-text_color), 0.1 );;
border-radius: 3px;
margin-bottom: 7px;
}
#elGallerySubmit_albumChooser > li > div ul.ipsType_medium {
line-height: 1;
}
#elGallerySubmit_albumChooser > li > div:hover {
background: rgb( var(--theme-area_background_light) );
cursor: pointer;
}
#elGallerySubmit_albumChooser > li > input[type="radio"]:checked + div {
background: rgb( var(--theme-brand_primary) );
color: #fff;
}
#elGallerySubmit_albumChooser > li > input[type="radio"]:checked + div:before {
content: '\f00c';
font-family: "FontAwesome";
font-size: 36px;
position: absolute;
top: 50%;
transform: translateY(-50%);
opacity: 0.6;
color: inherit;
}
html[dir="ltr"] #elGallerySubmit_albumChooser > li > input[type="radio"]:checked + div:before {
right: 17px;
}
html[dir="rtl"] #elGallerySubmit_albumChooser > li > input[type="radio"]:checked + div:before {
left: 17px;
}
#elGallerySubmit_albumChooser > li > input[type="radio"]:checked + div .ipsType_light {
color: inherit;
opacity: 0.7;
}
.cGallerySubmit_albumImage {
width: 40px;
height: 40px;
background-color: rgba(0,0,0,0.3);
}
html[dir="ltr"] .cGallerySubmit_albumImage {
float: left;
}
html[dir="rtl"] .cGallerySubmit_albumImage {
float: right;
}
html[dir="ltr"] .cGallerySubmit_albumInfo {
margin-left: 47px;
}
html[dir="rtl"] .cGallerySubmit_albumInfo {
margin-right: 47px;
}
.cGallerySubmit_chooseCategory {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
/* Step 2: Upload files */
.cGallerySubmit_uploadImages {
overflow-y: auto;
height: 100%;
}
.cGallerySubmit_details {
padding-bottom: 20px;
}
.cGallerySubmit_uploadImages .ipsAttachment_dropZone {
border-width: 3px;
border-style: dashed;
transition: none;
}
.cGallerySubmit_uploadImages .ipsAttachment_dropZone:not( .ipsDragging ) {
background: transparent;
border-color: rgb( var(--theme-area_background) );
}
/* Positioning required to make the dialog full screen */
.cGalleryDialog_content {
position: absolute;
top: 80px;
bottom: 0;
right: 0;
left: 0;
}
.ipsDialog_content .cGalleryDialog_content.cGalleryDialog_content_moderated {
top: 150px;
}
.cGalleryDialog_imageForm {
display: block;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
overflow: auto;
}
.cGalleryDialog_imageForm [data-role="imageForm"] {
position: relative;
}
#elGallerySubmit {
height: 100%;
}
#elGallerySubmit > .ipsGrid {
position: absolute;
top: 30px;
left: 30px;
bottom: 70px;
right: 30px;
}
/* Step 3: Image info */
.cGallerySubmit_bottomBar {
background: rgba( var(--theme-area_background_reset), 0.9 );
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 85px;
z-index: 100;
}
.ipsApp button.cGallerySubmit_button {
font-size: 66px;
background: transparent;
color: rgb( var(--theme-text_color) );
opacity: 0.4;
text-align: center;
position: absolute;
top: 50%;
margin-top: -20px;
border: 0;
height: 150px; /* Make the clickable area bigger for ease */
width: 60px;
outline: 0;
}
/* Style the uploader */
#elGallerySubmit_imageUploader {
position: relative;
min-height: 200px;
height: 100%;
}
.cGallerySubmit_uploadForm {
height: calc( 100% - 20px );
}
#elGallerySubmit_imageUploader .ipsAttachment_dropZone {
position: absolute !important;
top: 0;
left: 0;
height: 190px !important;
width: 100%;
padding: 10px;
float: left;
cursor: pointer;
}
.cGalleryDialog.cGalleryDialog_uploadStep #elGallerySubmit_imageUploader .ipsAttachment_dropZone {
width: 200px;
}
#elGallerySubmit_imageUploader .ipsAttachment_dropZone:not( .ipsAttachment_dropZoneSmall ) > i:first-child {
font-size: 100px;
margin-top: 20px;
color: rgb( var(--theme-text_light) );
}
#elGallerySubmit_imageUploader .fa-cloud-upload:before {
content: "\f055";
}
#elGallerySubmit_imageUploader .ipsAttachment_supportDrag {
font-size: {fontsize="x_small"};
color: rgb( var(--theme-text_light) );
}
#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;
}
/* Media thumbnail upload area */
.cGalleryThumbField .ipsAttachment_dropZoneSmall_info {
clear: left;
margin-left: auto !important;
}
.cGalleryThumbField h2[data-role="title"] {
width: 150px;
max-width: 150px;
}
.cGalleryThumbField p.ipsDataItem_meta {
width: 100px;
}
.cGalleryThumbField .ipsDataItem_generic {
padding-top: 55px;
}
.cGalleryThumbField .ipsDataItem_size5,
.cGalleryThumbField .ipsDataItem_size8 {
width: 83px;
min-width: 83px;
padding-left: 0px !important;
padding-right: 0px;
}
.cGalleryThumbField .ipsDataItem_size8 {
text-align: left !important;
padding-left: 80px;
}
/* This is a bit messy, but we need to overwrite styles from the uploader for this page */
#elGallerySubmit_imageUploader .ipsAttachment_fileList {
margin-top: 0;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .cGallerySubmit_fileList {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
margin-top: 4px;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach {
height: 200px;
width: 200px;
background-color: rgb( var(--theme-area_background_reset) );
border: 1px solid rgb( var(--theme-area_background) );
margin-bottom: 30px !important;
margin-right: 30px;
cursor: move;
border-radius: var(--radius-1);
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach .cGalleryImageAttach_info {
padding-right: 30px;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach:hover {
border-color: rgb( var(--theme-area_background_dark) );
background-color: rgb( var(--theme-area_background_light) );
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach.cGallerySubmit_activeFile {
border-color: rgb( var(--theme-brand_primary) );
box-shadow: 0px 0px 0px 1px #8ec2ed, 0px 0px 0px 5px {hextorgb="#8ec2ed" opacity="0.3"};
background: rgb( var(--theme-selected) ) !important;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach.cGallerySubmit_imageSaved:before,
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach.cGallerySubmit_imageError:before {
width: 28px;
height: 28px;
border-radius: 28px;
line-height: 28px;
color: #fff;
font-family: 'FontAwesome';
font-size: 14px;
position: absolute;
bottom: 8px;
right: 8px;
text-align: center;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach.cGallerySubmit_imageSaved:before {
content: '\f00c';
background: #558B2F;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach.cGallerySubmit_imageError:not( .cGallerySubmit_activeFile ) {
border-color: #a72f35;
box-shadow: 0 1px 1px rgba(0,0,0,0.075), 0px 1px 5px rgba(167,47,53,0.6);
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach.cGallerySubmit_imageError:before {
content: '\f071';
background: #a72f35;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach:first-child {
margin-left: 230px;
}
#elGallerySubmit_imageUploader .ipsAttachment_fileList .ipsImageAttach .ipsImageAttach_thumb {
height: 135px;
}
#elGallerySubmit_imageUploader .ipsAttach.ipsAttach_done [data-action="insertFile"] {
cursor: move;
}
#elInput_image_copyright,
#elInput_image_tags_wrapper {
max-width: 100%;
}]]>
.cGalleryCarouselWidget .ipsCarousel_item{
flex: 0 0 240px;
min-width: 0;
}
.cGalleryCarouselWidget .ipsImageBlock__main{
aspect-ratio: 4/3;
}
@supports not (aspect-ratio: 4/3){
.cGalleryCarouselWidget .ipsImageBlock__main{
height: 150px;
}
{lang="gallery_recently_commented_images"}
{{foreach $recentComments as $image}} {{$lastComment = $image->comments( 1, 0, 'date', 'desc', NULL, TRUE );}}-
{{if $image->media }}
{{else}}
{{endif}}
{template="nsfwOverlay" app="gallery" location="front" group="global" params="$image, FALSE"}
{$lastComment->truncated(TRUE)|raw}
{$image->lastCommenter()->link()|raw}
· {datetime="$image->mapped('last_comment')"}
{{endforeach}}