3013 lines
138 KiB
XML
3013 lines
138 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<theme name="Default" author_name="Invision Power Services, Inc" author_url="http://www.invisionpower.com">
|
|
<template template_group="browse" template_name="album" template_data="$album, $table" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class="ipsPageHeader ipsClearfix ipsSpacer_bottom">
|
|
<h1 class="ipsType_pageTitle ipsType_break">{wordbreak="$album->_title"} </h1>
|
|
<div class='ipsPos_right ipsResponsive_noFloat ipsResponsive_hidePhone'>
|
|
{{$followerCount = \IPS\gallery\Image::containerFollowerCount( $album );}}
|
|
{template="follow" app="core" group="global" params="'gallery', 'album', $album->_id, $followerCount"}
|
|
</div>
|
|
</div>
|
|
<hr class='ipsHr ipsResponsive_hidePhone'>
|
|
|
|
<div class='ipsColumns ipsColumns_collapsePhone'>
|
|
<div class='ipsColumn ipsColumn_wide'>
|
|
{{if $album->coverPhoto('medium')}}
|
|
<div class='ipsAreaBackground ipsPad_half ipsSpacer_bottom'>
|
|
<img src='{$album->coverPhoto('medium')}' class='ipsImage' alt=''>
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $album->type === 2}}
|
|
<span class="ipsBadge ipsBadge_warning">{lang="album_private_badge"}</span>
|
|
{{elseif $album->type === 3}}
|
|
<span class="ipsBadge ipsBadge_warning">{lang="album_friend_only_badge"}</span>
|
|
{{endif}}
|
|
|
|
<div class='ipsPhotoPanel ipsPhotoPanel_tiny ipsClearfix ipsSpacer_both'>
|
|
{template="userPhoto" group="global" app="core" params="\IPS\Member::load( $album->owner_id ), 'tiny'"}
|
|
<div>
|
|
<strong class='ipsType_minorHeading'>{lang="album_created_by"}</strong><br>
|
|
{expression="\IPS\Member::load( $album->owner_id )->name"}
|
|
</div>
|
|
</div>
|
|
|
|
{{if $album->description}}
|
|
<div class='ipsType_medium ipsType_richText ipsSpacer_top'>
|
|
{$album->description|raw}
|
|
</div>
|
|
{{endif}}
|
|
|
|
<ul class='ipsList_inline ipsType_medium ipsClear ipsSpacer_top'>
|
|
<li><i class='fa fa-camera'></i> {lang="num_images" pluralize="$album->count_imgs"}</li>
|
|
{{if $album->allow_comments}}
|
|
<li><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$album->count_comments"}</li>
|
|
{{endif}}
|
|
</ul>
|
|
|
|
<hr class='ipsHr'>
|
|
<ul class='ipsList_inline'>
|
|
{{if $album->canDelete() }}
|
|
<li><a href='{$album->url()->setQueryString( array( 'do' => 'deleteAlbum', 'csrfKey' => \IPS\Session::i()->csrfKey ) )}' data-ipsDialog data-ipsDialog-title="{lang="delete_album"}" title="{lang="delete_album"}">{lang="delete_album"}</a></li>
|
|
{{endif}}
|
|
|
|
{{if $album->canEdit() }}
|
|
<li><a href='{$album->url()->setQueryString( array( 'do' => 'editAlbum', 'csrfKey' => \IPS\Session::i()->csrfKey ) )}' title="{lang="edit_album"}" data-ipsDialog data-ipsDialog-title="{lang="edit_album"}">{lang="edit_album"}</a></li>
|
|
{{endif}}
|
|
</ul>
|
|
|
|
{{if count( $album->_event )}}
|
|
<hr class='ipsHr'>
|
|
<div class='ipsSpacer_top cGalleryEvents'>
|
|
<h2 class='ipsType_sectionHead'>{lang="events_in_album" pluralize="count( $album->_event )"}</h2>
|
|
{template="eventBlocks" group="view" app="calendar" params="$album->_event"}
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_fluid'>
|
|
{{if $album->can('add')}}
|
|
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_bottom ipsResponsive_hidePhone">
|
|
{template="categoryButtons" group="browse" params="$album->can('add'), $album->category(), $album"}
|
|
</ul>
|
|
{{endif}}
|
|
<div class='ipsBox'>
|
|
{$table|raw}
|
|
</div>
|
|
</div>
|
|
{{if $album->can('add')}}
|
|
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsResponsive_showPhone ipsResponsive_block">
|
|
{template="categoryButtons" group="browse" params="$album->can('add'), $album->category(), $album"}
|
|
</ul>
|
|
{{endif}}
|
|
<div class='ipsResponsive_showPhone ipsResponsive_block'>
|
|
{template="follow" app="core" group="global" params="'gallery', 'album', $album->_id, $followerCount"}
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="browse" template_name="albums" template_data="$table, $headers, $albums" template_location="front" template_app="gallery"><![CDATA[{{foreach $albums as $album}}
|
|
<li class='ipsDataItem ipsAreaBackground_reset'>
|
|
<div class='ipsColumns ipsColumns_collapsePhone'>
|
|
<div class='ipsColumn ipsColumn_wide'>
|
|
<div class='ipsPad'>
|
|
<h3 class='ipsType_sectionHead'>
|
|
{{if \IPS\gallery\Image::containerUnread( $album )}}
|
|
<span class="ipsItemStatus" data-ipsTooltip title="{lang="album_new_content"}">
|
|
<i class="fa fa-circle"></i>
|
|
</span>
|
|
{{endif}}
|
|
{{if \IPS\gallery\Image::containerUnread( $album )}}<strong>{{endif}}
|
|
<a href='{$album->url()}' title='{lang="view_this_album" sprintf="$album->_title"}'>{$album->_title}</a>
|
|
{{if \IPS\gallery\Image::containerUnread( $album )}}</strong>{{endif}}
|
|
</h3>
|
|
{{if $album->last_img_date}}<p class='ipsType_light ipsType_medium ipsType_reset'>{lang="updated"} {datetime="$album->last_img_date"}</p>{{endif}}
|
|
<ul class='ipsList_inline ipsType_medium'>
|
|
<li><i class='fa fa-camera'></i> {lang="num_images" pluralize="$album->count_imgs"}</li>
|
|
{{if $album->allow_comments}}
|
|
<li><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$album->count_comments"}</li>
|
|
{{endif}}
|
|
</ul>
|
|
<div class='ipsType_medium ipsType_richText ipsSpacer_both ipsContained' data-ipsTruncate data-ipsTruncate-size='3 lines' data-ipsTruncate-type='remove'>
|
|
{$album->truncated()|raw}
|
|
</div>
|
|
<div class='ipsPhotoPanel ipsPhotoPanel_tiny'>
|
|
{template="userPhoto" group="global" app="core" params="$album->owner(), 'tiny'"}
|
|
<div>
|
|
<span class='ipsType_minorHeading'>{lang="album_created_by"}</span><br>
|
|
<span class='ipsType_normal'>{$album->owner()->link()|raw}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_fluid'>
|
|
{{if $table->canModerate()}}
|
|
<div class='ipsPos_right ipsPad'>
|
|
<input type='checkbox' data-role='moderation' name="moderate[{$album->_id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $album ) )"}" data-state=''>
|
|
</div>
|
|
{{endif}}
|
|
<div class='ipsPad cGalleryAlbums_recent'>
|
|
<ul class='ipsList_reset'>
|
|
<li {{if $album->coverPhoto( 'small' )}}style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $album->coverPhoto( 'small' ) )"}" );'{{endif}} class='cGalleryTrimmedImage'>
|
|
<a href='{$album->url()}' title='{lang="view_this_album" sprintf="$album->_title"}'>
|
|
{{if $album->coverPhoto( 'small' )}}
|
|
<img src='{$album->coverPhoto( 'small' )}' alt='{$album->_title}'>
|
|
{{endif}}
|
|
</a>
|
|
</li>
|
|
{{foreach $album->_latestImages as $image }}
|
|
<li style='background-image: url( "{file="$image->thumb_file_name" extension="gallery_Images"}" );' class='cGalleryTrimmedImage'>
|
|
<a href='{$image->url()}' data-ipsLightbox data-fullURL='{file="$image->masked_file_name" extension="gallery_Images"}'>
|
|
<img src='{file="$image->thumb_file_name" extension="gallery_Images"}' alt="{$image->caption}">
|
|
{{if $album->allow_comments}}
|
|
<span class='cGalleryAlbums_comments'><i class='fa fa-comment'></i> {expression="count( $image->comments() )"}</span>
|
|
{{endif}}
|
|
</a>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
{{endforeach}}]]></template>
|
|
<template template_group="browse" template_name="categories" template_data="" template_location="front" template_app="gallery"><![CDATA[{{if !\IPS\Request::i()->isAjax()}}
|
|
<div class="ipsPageHeader ipsPad_half ipsClearfix ipsSpacer_bottom" data-ipsSticky data-ipsSticky-disableIn='phone'>
|
|
<h1 class="ipsType_pageTitle">{lang="gallery_title"}</h1>
|
|
</div>
|
|
{{endif}}
|
|
<ol class="ipsDataList">
|
|
{template="categoryRow" group="browse" params="NULL, NULL, \IPS\gallery\Category::roots()"}
|
|
</ol>]]></template>
|
|
<template template_group="browse" template_name="categoriesSidebar" template_data="$currentCategory=NULL" template_location="front" template_app="gallery"><![CDATA[{{$categories = $currentCategory ? $currentCategory->children() : \IPS\gallery\Category::roots();}}
|
|
{{if count($categories)}}
|
|
<div id='elGalleryCategories' class='ipsSpacer_top'>
|
|
<h3 class='ipsType_reset ipsType_sectionTitle'>{{if $currentCategory}}{lang="subcategories"}{{else}}{lang="categories"}{{endif}}</h3>
|
|
<div class='ipsSideMenu ipsPad_half'>
|
|
<ul class='ipsSideMenu_list'>
|
|
{{foreach $categories as $category}}
|
|
<li>
|
|
<a href="{$category->url()}" class='ipsSideMenu_item {{if $currentCategory && $currentCategory->id == $category->id}}{{endif}} ipsTruncate ipsTruncate_line'><span class='ipsBadge ipsBadge_style1 ipsPos_right cGalleryCategoryCount'>{expression="\IPS\gallery\Image::contentCount( $category )"}</span><strong class='ipsType_normal'>{$category->_title}</strong></a>
|
|
{{if $category->hasChildren()}}
|
|
<ul class="ipsSideMenu_list">
|
|
{{foreach $category->children() as $idx => $subcategory}}
|
|
<li>
|
|
{{if $idx >= 5}}
|
|
<a href='{$category->url()}' class='ipsSideMenu_item'><span class='ipsType_light ipsType_small'>{lang="and_x_more" sprintf="count( $category->children() ) - 5"}</span></a>
|
|
{{break;}}
|
|
{{else}}
|
|
<a href="{$subcategory->url()}" class='ipsSideMenu_item ipsTruncate ipsTruncate_line'><strong class='ipsPos_right ipsType_small cGalleryCategoryCount'>{expression="\IPS\gallery\Image::contentCount( $subcategory )"}</strong>{$subcategory->_title}</a>
|
|
{{endif}}
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
{{endif}}
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
<a href='{url="app=gallery&module=gallery&controller=browse&do=categories" seoTemplate="gallery_categories"}' class='ipsButton ipsButton_fullWidth ipsButton_small ipsButton_light'>{lang="browse_categories"} <i class='fa fa-caret-right'></i></a>
|
|
</div>
|
|
</div>
|
|
{{endif}}]]></template>
|
|
<template template_group="browse" template_name="category" template_data="$category, $albums, $table" template_location="front" template_app="gallery"><![CDATA[<div class="ipsPageHeader ipsClearfix ipsSpacer_bottom">
|
|
<h1 class="ipsType_pageTitle">{$category->_title}</h1>
|
|
<div class='ipsPos_right ipsResponsive_noFloat ipsResponsive_hidePhone'>
|
|
{{$followerCount = \IPS\gallery\Image::containerFollowerCount( $category );}}
|
|
{template="follow" app="core" group="global" params="'gallery', 'category', $category->_id, $followerCount"}
|
|
</div>
|
|
</div>
|
|
|
|
{{if $category->show_rules == 1}}
|
|
<hr class='ipsHr'>
|
|
<a href="{$category->rules_link}" class='ipsJS_show ipsType_normal' data-ipsDialog data-ipsDialog-title="{lang="gallery_category_{$category->id}_rulestitle"}" data-ipsDialog-content="#elCategoryRules">{lang="category_rules"}</a>
|
|
<div id='elCategoryRules' class='ipsHide ipsPad ipsType_richText ipsType_medium ipsSpacer_both'>{lang="gallery_category_{$category->id}_rules"}</div>
|
|
{{elseif $category->show_rules == 2}}
|
|
<hr class='ipsHr'>
|
|
<strong class='ipsType_normal'>{lang="gallery_category_{$category->id}_rulestitle"}</strong>
|
|
<div class='ipsType_richText ipsType_medium ipsSpacer_both'>{lang="gallery_category_{$category->id}_rules"}</div>
|
|
{{else}}
|
|
<div class='ipsType_richText ipsType_medium ipsSpacer_both'>
|
|
{$category->description|raw}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $category->can('add')}}
|
|
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_bottom ipsResponsive_hidePhone">
|
|
{template="categoryButtons" group="browse" params="$category->can('add'), $category, NULL"}
|
|
</ul>
|
|
{{endif}}
|
|
|
|
|
|
{{if $category->children()}}
|
|
<div class="ipsSpacer_bottom">
|
|
{template="categoryGrid" group="browse" app="gallery" params="$category->children()"}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $albums}}
|
|
<div class='ipsBox ipsSpacer_bottom'>
|
|
{$albums|raw}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $table}}
|
|
<div class='ipsBox'>
|
|
{$table|raw}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if \IPS\gallery\Category::canOnAny('add')}}
|
|
<ul class="ipsToolList ipsToolList_horizontal ipsResponsive_hideDesktop ipsResponsive_block ipsClearfix ipsSpacer_top">
|
|
{template="categoryButtons" group="browse" params="\IPS\gallery\Category::canOnAny('add'), $category"}
|
|
</ul>
|
|
{{endif}}
|
|
|
|
<div class='ipsResponsive_showPhone ipsResponsive_block'>
|
|
{template="follow" app="core" group="global" params="'gallery', 'category', $category->_id, $followerCount"}
|
|
</div>]]></template>
|
|
<template template_group="browse" template_name="categoryButtons" template_data="$canSubmitImages, $currentCategory=NULL, $currentAlbum=NULL" template_location="front" template_app="gallery"><![CDATA[<li class='ipsToolList_primaryAction'>
|
|
<a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" {{if $currentAlbum}}href="{url="app=gallery&module=gallery&controller=submit&do=submit&category={$currentCategory->id}&album={$currentAlbum->id}&_new=1" seoTemplate="gallery_submit"}" {{elseif $currentCategory}} href="{url="app=gallery&module=gallery&controller=submit&do=submit&category={$currentCategory->id}&_new=1" seoTemplate="gallery_submit"}" {{else}} data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title='{lang="choose_category"}' href="{url="app=gallery&module=gallery&controller=submit&_new=1" seoTemplate="gallery_submit"}" {{endif}}>{lang="add_gallery_image"}</a>
|
|
</li>]]></template>
|
|
<template template_group="browse" template_name="categoryGrid" template_data="$categories" template_location="front" template_app="gallery"><![CDATA[
|
|
{{if count( $categories )}}
|
|
<div class='ipsBox cGalleryCats ipsClear ipsClearfix'>
|
|
<ul class='ipsGrid' data-ipsGrid data-ipsGrid-minItemSize='220' data-ipsGrid-maxItemSize='500'>
|
|
{{foreach $categories as $category}}
|
|
<li class='ipsGrid_span4 cGalleryCat'>
|
|
<a href='{$category->url()}' style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $category->coverPhoto('medium') )"}" );' class='cGalleryTrimmedImage' data-grid-ratio='40'>
|
|
<h2 class='ipsType_sectionHead ipsTruncate ipsTruncate_line'>{$category->_title}</h2>
|
|
<img src='{$category->coverPhoto('medium')}' alt='{$category->_title}'>
|
|
<ul class='ipsList_inline ipsType_left cGalleryCat_info'>
|
|
{{if $category->last_img_date}}
|
|
<li><i class='fa fa-clock-o'></i> {datetime="$category->last_img_date"}</li>
|
|
{{endif}}
|
|
{{if $category->allow_comments}}
|
|
<li class='ipsPos_right' data-ipsTooltip title='{lang="cat_comment_count" pluralize="$category->_comments"}'><i class='fa fa-comment'></i> {$category->_comments}</li>
|
|
{{endif}}
|
|
{{if $category->allow_albums}}
|
|
<li class='ipsPos_right' data-ipsTooltip title='{lang="cat_album_count" pluralize="$category->public_albums"}'><i class='fa fa-th-large'></i> {$category->public_albums}</li>
|
|
{{endif}}
|
|
<li class='ipsPos_right' data-ipsTooltip title='{lang="cat_img_count" pluralize="\IPS\gallery\Image::contentCount( $category )"}'><i class='fa fa-camera'></i> {expression="\IPS\gallery\Image::contentCount( $category )"}</li>
|
|
</ul>
|
|
</a>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
</div>
|
|
{{endif}}]]></template>
|
|
<template template_group="browse" template_name="categoryRow" template_data="$table, $headers, $categories" template_location="front" template_app="gallery"><![CDATA[{{foreach $categories as $category}}
|
|
{{if $category->can('view')}}
|
|
<li class="ipsDataItem ipsDataItem_responsivePhoto ipsClearfix">
|
|
<div class='ipsDataItem_generic ipsDataItem_size3'>
|
|
{template="thumbImage" group="global" app="core" params="$category->coverPhoto( 'small' ), $category->_title, 'medium', '', 'view_this', $category->url(), 'gallery_Images'"}
|
|
</div>
|
|
<div class="ipsDataItem_main">
|
|
<h4 class="ipsDataItem_title">
|
|
<!-- @todo: change unread indicator to stand out more and to be more consistent...maybe adjusting the category icon? -->
|
|
{{if \IPS\gallery\Image::containerUnread( $category )}}UNREAD{{endif}}
|
|
<a href="{$category->url()}">{$category->_title}</a>
|
|
</h4>
|
|
<p class="ipsDataItem_meta">{$category->description|raw}</p>
|
|
{{if $category->hasChildren()}}
|
|
<ul class="ipsDataItem_subList ipsList_inline">
|
|
{{foreach $category->children() as $subcategory}}
|
|
<li class="{{if \IPS\gallery\Image::containerUnread( $subcategory )}}ipsDataItem_unread{{endif}}">
|
|
<a href="{$subcategory->url()}">{$subcategory->_title}</a>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
{{endif}}
|
|
</div>
|
|
<dl class="ipsDataItem_stats ipsDataItem_statsLarge">
|
|
{{$count = \IPS\gallery\Image::contentCount( $category );}}
|
|
<dt class="ipsDataItem_stats_number">{number="$count"}</dt>
|
|
<dd class="ipsDataItem_stats_type ipsType_light">{lang="images_no_number" pluralize="$count"}</dd>
|
|
</dl>
|
|
<ul class="ipsDataItem_lastPoster ipsDataItem_withPhoto">
|
|
{{if $lastPost = $category->lastImage()}}
|
|
<li>{template="userPhoto" app="core" group="global" params="$lastPost->author(), 'tiny'"}</li>
|
|
<li><a href="{$lastPost->url()}" class='ipsType_break ipsContained'>{$lastPost->caption}</a></li>
|
|
<li>{lang="byline_nodate" htmlsprintf="$lastPost->author()->link()"}</li>
|
|
<li data-short="1 dy" class="ipsType_light">{datetime="$lastPost->date"}</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{if $table->canModerate()}}
|
|
<div class='ipsDataItem_modCheck'>
|
|
<input type='checkbox' data-role='moderation' name="moderate[{$category->_id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $category ) )"}" data-state=''>
|
|
</div>
|
|
{{endif}}
|
|
</li>
|
|
{{endif}}
|
|
{{endforeach}}]]></template>
|
|
<template template_group="browse" template_name="imageTable" template_data="$table, $headers, $rows, $quickSearch" template_location="front" template_app="gallery"><![CDATA[<div data-baseurl='{$table->baseUrl}' data-resort='{$table->resortKey}' data-controller='core.global.core.table{{if $table->canModerate()}},core.front.core.moderation{{endif}}'>
|
|
{{if \IPS\Request::i()->app == 'gallery'}}<h2 class='ipsType_sectionTitle ipsType_reset ipsClear ipsType_medium'>{lang="num_images" pluralize="$table->count"}</h2>{{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}}
|
|
<div class="ipsButtonBar ipsPad_half ipsClearfix ipsClear">
|
|
{{if $table->canModerate()}}
|
|
<ul class="ipsButtonRow ipsPos_right ipsClearfix">
|
|
<li>
|
|
<a class="ipsJS_show" href="#elCheck_menu" id="elCheck_{$table->uniqueId}" title='{lang="{$table->langPrefix}select_rows_tooltip"}' data-ipsTooltip data-ipsAutoCheck data-ipsAutoCheck-context="#elTable_{$table->uniqueId}" data-ipsMenu data-ipsMenu-activeClass="ipsButtonRow_active">
|
|
<span class="cAutoCheckIcon ipsType_medium"><i class="fa fa-square-o"></i></span> <i class="fa fa-caret-down"></i>
|
|
<span class='ipsNotificationCount' data-role='autoCheckCount'>0</span>
|
|
</a>
|
|
<ul class="ipsMenu ipsMenu_auto ipsMenu_withStem ipsHide" id="elCheck_{$table->uniqueId}_menu">
|
|
<li class="ipsMenu_title">{lang="{$table->langPrefix}select_rows"}</li>
|
|
<li class="ipsMenu_item" data-ipsMenuValue="all"><a href="#">{lang="all"}</a></li>
|
|
<li class="ipsMenu_item" data-ipsMenuValue="none"><a href="#">{lang="none"}</a></li>
|
|
{{if count($table->getFilters())}}
|
|
<li class="ipsMenu_sep"><hr></li>
|
|
{{foreach $table->getFilters() as $filter}}
|
|
<li class="ipsMenu_item" data-ipsMenuValue="{$filter}"><a href="#">{lang="$filter"}</a></li>
|
|
{{endforeach}}
|
|
{{endif}}
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
{{endif}}
|
|
|
|
<ul class="ipsButtonRow ipsPos_right ipsClearfix">
|
|
{{if $table->showAdvancedSearch AND ( ( isset( $table->sortOptions ) and !empty( $table->sortOptions ) ) OR $table->advancedSearch )}}
|
|
<li>
|
|
<a href="#elSortByMenu_menu" id="elSortByMenu_{$table->uniqueId}" data-role='sortButton' data-ipsMenu data-ipsMenu-activeClass="ipsButtonRow_active" data-ipsMenu-selectable="radio">{lang="sort_by"} <i class="fa fa-caret-down"></i></a>
|
|
<ul class="ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide" id="elSortByMenu_{$table->uniqueId}_menu">
|
|
{{$custom = TRUE;}}
|
|
{{foreach $table->sortOptions as $k => $col}}
|
|
<li class="ipsMenu_item {{if $col === $table->sortBy}}{{$custom = FALSE;}}ipsMenu_itemChecked{{endif}}" data-ipsMenuValue="{$col}" data-sortDirection='{{if $col == 'image_caption'}}asc{{else}}desc{{endif}}'><a href="{$table->baseUrl->setQueryString( array( 'filter' => $table->filter, 'sortby' => $col, 'sortdirection' => ( $col == 'image_caption' ) ? 'asc' : 'desc', 'page' => '1' ) )}">{lang="{$table->langPrefix}sort_{$k}"}</a></li>
|
|
{{endforeach}}
|
|
{{if $table->advancedSearch}}
|
|
<li class="ipsMenu_item {{if $custom}}ipsMenu_itemChecked{{endif}}" data-noSelect="true">
|
|
<a href='{$table->baseUrl->setQueryString( array( 'advancedSearchForm' => '1', 'filter' => $table->filter, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection ) )}' data-ipsDialog data-ipsDialog-title='{lang="custom_sort"}'>{lang="custom"}</a>
|
|
</li>
|
|
{{endif}}
|
|
</ul>
|
|
</li>
|
|
{{endif}}
|
|
{{if !empty( $table->filters )}}
|
|
<li>
|
|
<a href="#elFilterByMenu_menu" data-role="tableFilterMenu" id="elFilterByMenu_{$table->uniqueId}" data-ipsMenu data-ipsMenu-activeClass="ipsButtonRow_active" data-ipsMenu-selectable="radio">{lang="filter_by"} <i class="fa fa-caret-down"></i></a>
|
|
<ul class='ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide' id='elFilterByMenu_{$table->uniqueId}_menu'>
|
|
<li data-action="tableFilter" data-ipsMenuValue='' class='ipsMenu_item {{if !$table->filter}}ipsMenu_itemChecked{{endif}}'>
|
|
<a href='{$table->baseUrl->setQueryString( array( 'filter' => '', 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection, 'page' => '1' ) )}'>{lang="{$table->langPrefix}all"}</a>
|
|
</li>
|
|
{{foreach $table->filters as $k => $q}}
|
|
<li data-action="tableFilter" data-ipsMenuValue='{$k}' class='ipsMenu_item {{if $k === $table->filter}}ipsMenu_itemChecked{{endif}}'>
|
|
<a href='{$table->baseUrl->setQueryString( array( 'filter' => $k, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection, 'page' => '1' ) )}'>{lang="{$table->langPrefix}{$k}"}</a>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
</li>
|
|
{{endif}}
|
|
</ul>
|
|
|
|
<ul class='ipsButtonRow ipsPos_right ipsClearfix'>
|
|
<li>
|
|
<a href='{$table->baseUrl->setQueryString( array( 'thumbnailSize' => 'thumb', 'csrfKey' => \IPS\Session::i()->csrfKey ) )}' data-ipsTooltip title='{lang="view_as_thumbnails"}' class='{{if !isset( \IPS\Request::i()->cookie['thumbnailSize'] ) OR \IPS\Request::i()->cookie['thumbnailSize'] == 'thumb' }}ipsButtonRow_active{{endif}}'><i class='fa fa-th-large'></i></a>
|
|
</li>
|
|
<li>
|
|
<a href='{$table->baseUrl->setQueryString( array( 'thumbnailSize' => 'large', 'csrfKey' => \IPS\Session::i()->csrfKey ) )}' data-ipsTooltip title='{lang="view_as_large"}' class='{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'large' }}ipsButtonRow_active{{endif}}'><i class='fa fa-square'></i></a>
|
|
</li>
|
|
<li>
|
|
<a href='{$table->baseUrl->setQueryString( array( 'thumbnailSize' => 'rows', 'csrfKey' => \IPS\Session::i()->csrfKey ) )}' data-ipsTooltip title='{lang="view_as_list"}' class='{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'rows' }}ipsButtonRow_active{{endif}}'><i class='fa fa-th-list'></i></a>
|
|
</li>
|
|
</ul>
|
|
|
|
{{if $table->pages > 1}}
|
|
<div data-role="tablePagination">
|
|
{template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit"}
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $table->canModerate()}}
|
|
<form action="{$table->baseUrl}" method="post" data-role='moderationTools' data-ipsPageAction class='ipsClear'>
|
|
{{endif}}
|
|
{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'large' AND \IPS\Request::i()->controller != 'search' }}
|
|
<ol class='ipsList_reset ipsClear ipsType_center cGalleryLargeList ipsAreaBackground_light ipsPad' id='elTable_{$table->uniqueId}' data-controller='gallery.front.browse.list' data-role='tableRows'>
|
|
{template="tableRowsLarge" group="browse" app="gallery" params="$table, $headers, $rows"}
|
|
</ol>
|
|
{{elseif isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'rows' AND \IPS\Request::i()->controller != 'search' }}
|
|
<ol class='ipsDataList ipsList_reset ipsClear' id='elTable_{$table->uniqueId}' data-role='tableRows'>
|
|
{template="tableRowsRows" group="browse" app="gallery" params="$table, $headers, $rows"}
|
|
</ol>
|
|
{{else}}
|
|
<ol class='ipsList_reset ipsPad_half ipsClear ipsGrid ipsGrid_collapsePhone ipsType_center cGalleryPatchwork_list' data-controller='gallery.front.browse.list' data-ipsPhotoLayout data-ipsPhotoLayout-itemTemplate='core.patchwork.imageList' data-ipsPhotoLayout-minHeight='300' id='elTable_{$table->uniqueId}' data-role='tableRows'>
|
|
{template="tableRowsThumbs" group="browse" app="gallery" params="$table, $headers, $rows"}
|
|
</ol>
|
|
{{endif}}
|
|
{{if $table->canModerate()}}
|
|
<div class="ipsAreaBackground ipsPad ipsClearfix" data-role="pageActionOptions">
|
|
<div class="ipsPos_right">
|
|
<select name="modaction" data-role="moderationAction">
|
|
{{if $table->canModerate('unhide')}}
|
|
<option value='approve' data-icon='check-circle'>{lang="approve"}</option>
|
|
{{endif}}
|
|
{{if $table->canModerate('feature') or $table->canModerate('unfeature')}}
|
|
<optgroup label="{lang="feature"}" data-icon='star' data-action='feature'>
|
|
{{if $table->canModerate('feature')}}
|
|
<option value='feature'>{lang="feature"}</option>
|
|
{{endif}}
|
|
{{if $table->canModerate('unhide')}}
|
|
<option value='unfeature'>{lang="unfeature"}</option>
|
|
{{endif}}
|
|
</optgroup>
|
|
{{endif}}
|
|
{{if $table->canModerate('pin') or $table->canModerate('unpin')}}
|
|
<optgroup label="{lang="pin"}" data-icon='thumb-tack' data-action='pin'>
|
|
{{if $table->canModerate('pin')}}
|
|
<option value='pin'>{lang="pin"}</option>
|
|
{{endif}}
|
|
{{if $table->canModerate('unpin')}}
|
|
<option value='unpin'>{lang="unpin"}</option>
|
|
{{endif}}
|
|
</optgroup>
|
|
{{endif}}
|
|
{{if $table->canModerate('hide') or $table->canModerate('unhide')}}
|
|
<optgroup label="{lang="hide"}" data-icon='eye' data-action='hide'>
|
|
{{if $table->canModerate('hide')}}
|
|
<option value='hide'>{lang="hide"}</option>
|
|
{{endif}}
|
|
{{if $table->canModerate('unhide')}}
|
|
<option value='unhide'>{lang="unhide"}</option>
|
|
{{endif}}
|
|
</optgroup>
|
|
{{endif}}
|
|
{{if $table->canModerate('lock') or $table->canModerate('unlock')}}
|
|
<optgroup label="{lang="lock"}" data-icon='lock' data-action='lock'>
|
|
{{if $table->canModerate('lock')}}
|
|
<option value='lock'>{lang="lock"}</option>
|
|
{{endif}}
|
|
{{if $table->canModerate('unlock')}}
|
|
<option value='unlock'>{lang="unlock"}</option>
|
|
{{endif}}
|
|
</optgroup>
|
|
{{endif}}
|
|
{{if $table->canModerate('move')}}
|
|
<option value='move' data-icon='arrow-right'>{lang="move"}</option>
|
|
{{endif}}
|
|
{{if $table->canModerate('split_merge')}}
|
|
<option value='merge' data-icon='level-up'>{lang="merge"}</option>
|
|
{{endif}}
|
|
{{if $table->canModerate('delete')}}
|
|
<option value='delete' data-icon='trash'>{lang="delete"}</option>
|
|
{{endif}}
|
|
{{if $table->savedActions}}
|
|
<optgroup label="{lang="saved_actions"}" data-icon='tasks' data-action='saved_actions'>
|
|
{{foreach $table->savedActions as $k => $v}}
|
|
<option value='savedAction-{$k}'>{$v}</option>
|
|
{{endforeach}}
|
|
</optgroup>
|
|
{{endif}}
|
|
</select>
|
|
<button type="submit" class="ipsButton ipsButton_alternate ipsButton_verySmall">{lang="submit"}</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
{{endif}}
|
|
|
|
{{if $table->pages > 1}}
|
|
<div class="ipsButtonBar ipsPad_half ipsClearfix ipsClear">
|
|
<div data-role="tablePagination">
|
|
{template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit"}
|
|
</div>
|
|
</div>
|
|
{{endif}}
|
|
</div>]]></template>
|
|
<template template_group="browse" template_name="index" template_data="$featured, $new" template_location="front" template_app="gallery"><![CDATA[<div class="ipsPageHeader ipsClearfix ipsSpacer_bottom">
|
|
<h1 class="ipsType_pageTitle">{lang="gallery_title"}</h1>
|
|
</div>
|
|
|
|
{{if \IPS\gallery\Category::canOnAny('add')}}
|
|
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsResponsive_hidePhone ipsSpacer_bottom">
|
|
{template="categoryButtons" group="browse" params="\IPS\gallery\Category::canOnAny('add'), NULL, NULL"}
|
|
</ul>
|
|
{{endif}}
|
|
|
|
{{if count( \IPS\gallery\Category::roots() )}}
|
|
<div class="ipsSpacer_bottom">
|
|
{template="categoryGrid" group="browse" app="gallery" params="\IPS\gallery\Category::roots()"}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if !empty( $featured )}}
|
|
<div class='ipsBox ipsSpacer_bottom'>
|
|
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="featured_images"}</h2>
|
|
<div data-ipsPhotoLayout data-ipsPhotoLayout-itemTemplate='gallery.patchwork.indexItem' data-ipsPhotoLayout-maxRows='3' class='ipsPad_half ipsClearfix cGalleryPatchwork_index'>
|
|
<ul class='ipsList_inline'>
|
|
{{foreach $featured as $image}}
|
|
<li data-role='patchworkImage' data-json='{$image->json()|raw}'>
|
|
<a href='{$image->url()}'><img src='{file="$image->small_file_name" extension="gallery_Images"}' alt='' class='ipsJS_hide'></a>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if !empty( $new )}}
|
|
<div class='ipsBox'>
|
|
<h2 class='ipsType_sectionTitle ipsType_reset'>{lang="new_images"}</h2>
|
|
<div data-ipsPhotoLayout data-ipsPhotoLayout-itemTemplate='gallery.patchwork.indexItem' data-ipsPhotoLayout-maxRows='3' class='ipsPad_half ipsClearfix cGalleryPatchwork_index'>
|
|
<ul class='ipsList_inline'>
|
|
{{foreach $new as $image}}
|
|
<li data-role='patchworkImage' data-json='{$image->json()|raw}'>
|
|
<a href='{$image->url()}'><img src='{file="$image->small_file_name" extension="gallery_Images"}' alt='' class='ipsJS_hide'></a>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if \IPS\gallery\Category::canOnAny('add')}}
|
|
<ul class="ipsToolList ipsToolList_horizontal ipsResponsive_showPhone ipsResponsive_block ipsClearfix ipsSpacer_top">
|
|
{template="categoryButtons" group="browse" params="\IPS\gallery\Category::canOnAny('add')"}
|
|
</ul>
|
|
{{endif}}]]></template>
|
|
<template template_group="browse" template_name="indexSidebar" template_data="$canSubmitImages, $currentCategory=NULL, $currentAlbum=NULL" template_location="front" template_app="gallery"></template>
|
|
<template template_group="browse" template_name="miniAlbum" template_data="$album" template_location="front" template_app="gallery"><![CDATA[
|
|
<ol class='ipsGrid ipsList_reset cGalleryMiniAlbum ipsClearfix' data-ipsGrid data-ipsGrid-minItemSize='60' data-ipsGrid-maxItemSize='100'>
|
|
{{foreach $album->_latestImages as $image}}
|
|
{{if $image->medium_file_name}}
|
|
<li style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), \IPS\File::get( 'gallery_Images', $image->small_file_name )->url )"}" );' class='ipsGrid_span3 cGalleryTrimmedImage' data-grid-ratio='100' data-imageID='{$image->id}'>
|
|
<a href='{$image->url()->setQueryString( 'browse', 1 )}' title='{$image->caption}' data-ipsLightbox data-ipsLightbox-group='g{$album->id}' data-fullURL="{file="$image->masked_file_name" extension="gallery_Images"}">
|
|
<img src='{file="$image->small_file_name" extension="gallery_Images"}' alt='{$image->caption}'>
|
|
</a>
|
|
</li>
|
|
{{else}}
|
|
<li class='ipsGrid_span3 ipsNoThumb ipsNoThumb_video'> </li>
|
|
{{endif}}
|
|
{{endforeach}}
|
|
</ol>
|
|
<a href='{$album->url()}' class='ipsType_small'>{lang="view_entire_album" sprintf="$album->name"}</a>]]></template>
|
|
<template template_group="browse" template_name="noImages" template_data="$container" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsType_center ipsPad'>
|
|
<p class='ipsType_large'>{{if $container instanceof \IPS\gallery\Album}}{lang="no_images_in_album"}{{else}}{lang="no_images_in_cat"}{{endif}}</p>
|
|
{{if $container->can('add')}}
|
|
<a href='{url="app=gallery&module=gallery&controller=submit&do=submit&_new=1" seoTemplate="gallery_submit"}{{if $container instanceof \IPS\gallery\Album}}&category={$container->category_id}&album={$container->id}{{else}}&category={$container->id}{{endif}}' class='ipsButton ipsButton_primary ipsButton_medium'>{lang="submit_first_image"}</a>
|
|
{{endif}}
|
|
</div>]]></template>
|
|
<template template_group="browse" template_name="tableRowsLarge" template_data="$table, $headers, $images" template_location="front" template_app="gallery"><![CDATA[
|
|
{{foreach $images as $image}}
|
|
<li class='{{if $image->hidden()}}ipsModerated{{else}}ipsAreaBackground_reset{{endif}} ipsPad ipsType_center cGalleryImageItem ipsContained ipsType_break'>
|
|
<a href='{$image->url()}' title='{lang="view_this" sprintf="$image->caption"}'>
|
|
<img src='{file="$image->medium_file_name" extension="gallery_Images"}' alt='' class='ipsImage'>
|
|
</a>
|
|
<h2 class='ipsType_sectionHead ipsType_normal ipsContained ipsType_break'>
|
|
{{if $image->unread()}}<span class='ipsItemStatus ipsItemStatus_small'><i class="fa fa-circle"></i></span>{{endif}}
|
|
{{if $image->prefix()}}
|
|
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
|
|
{{endif}}
|
|
<a href='{$image->url()}' title='{lang="view_this" sprintf="$image->caption"}'>
|
|
{{if $image->unread()}}<strong>{$image->caption}</strong>{{else}}{$image->caption}{{endif}}
|
|
</a>
|
|
{{if $table->canModerate()}}
|
|
<input type='checkbox' data-role='moderation' name="moderate[{$image->id}]" data-actions="{{if $image->mapped('featured')}}unfeature{{else}}feature{{endif}} {{if $image->mapped('pinned')}}unpin{{else}}pin{{endif}} {{if $image->hidden() === -1}}unhide{{elseif $image->hidden() === 1}}approve{{else}}hide{{endif}} {{if $image->mapped('locked')}}unlock{{else}}lock{{endif}} move delete" data-state='{{if $image->tableStates()}}{$image->tableStates()}{{endif}}'>
|
|
{{endif}}
|
|
</h2>
|
|
<ul class='ipsList_inline'>
|
|
{{if $image->directContainer()->allow_comments}}
|
|
<li class='{{if $image->comments == 0}}ipsFaded{{endif}}' data-ipsTooltip title='{lang="num_comments" pluralize="$image->comments"}'><i class='fa fa-comment'></i> {$image->comments}</li>
|
|
{{endif}}
|
|
<li class='{{if $image->views == 0}}ipsFaded{{endif}}' data-ipsTooltip title='{lang="num_views_with_number" pluralize="$image->views"}'><i class='fa fa-eye'></i> {$image->views}</li>
|
|
</ul>
|
|
{{if $image->mapped('pinned') || $image->mapped('featured') || $image->hidden() === -1 || $image->hidden() === 1}}
|
|
<br>
|
|
<ul class='ipsList_inline'>
|
|
<li>
|
|
{{if $image->hidden() === -1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$image->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
|
{{elseif $image->hidden() === 1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('pinned')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('featured')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
|
{{endif}}
|
|
</li>
|
|
</ul>
|
|
{{endif}}
|
|
</li>
|
|
{{endforeach}}
|
|
]]></template>
|
|
<template template_group="browse" template_name="tableRowsRows" template_data="$table, $headers, $images" template_location="front" template_app="gallery"><![CDATA[{{if count( $images )}}
|
|
{{foreach $images as $image}}
|
|
<li class='ipsDataItem {{if $image->unread()}}ipsDataItem_unread{{endif}} {{if method_exists( $image, 'tableClass' ) && $image->tableClass()}}ipsDataItem_{$image->tableClass()}{{endif}} {{if $image->hidden()}}ipsModerated{{endif}}'>
|
|
{{if isset( \IPS\Request::i()->cookie['thumbnailSize'] ) AND \IPS\Request::i()->cookie['thumbnailSize'] == 'large' }}
|
|
<div class='ipsDataItem_main'>
|
|
<div class='ipsType_center'>
|
|
{{if $image->medium_file_name}}
|
|
<a href='{$image->url()}' title='{lang="view_this" sprintf="$image->caption"}'>
|
|
<img src='{file="$image->medium_file_name" extension="gallery_Images"}' alt='{$image->caption}' class='ipsImage'>
|
|
</a>
|
|
{{else}}
|
|
{template="thumbImage" group="global" app="core" params="'', $image->caption, 'medium', 'ipsPos_center', 'view_this', $image->url(), 'gallery_Images'"}
|
|
{{endif}}
|
|
<br>
|
|
<h4 class='ipsDataItem_title ipsType_large'>
|
|
{{if $image->unread() === -1}}
|
|
<span class='ipsBadge ipsBadge_new'>{lang="new"}</span>
|
|
{{elseif $image->unread() === 1}}
|
|
<span class='ipsBadge ipsBadge_new'>{lang="updated"}</span>
|
|
{{endif}}
|
|
|
|
{{if $image->prefix()}}
|
|
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
|
|
{{endif}}
|
|
|
|
<a href='{$image->url()}' title='{lang="view_this_image" sprintf="$image->caption"}' {{if $image->canEdit()}}data-role="editableTitle"{{endif}}>
|
|
{wordbreak="$image->caption"}
|
|
</a>
|
|
</h4>
|
|
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>
|
|
{lang="byline_nodate" htmlsprintf="$image->author()->link()"}
|
|
{{if \IPS\Request::i()->controller != 'gallery'}}
|
|
{lang="in"} <a href="{$image->container()->url()}">{$image->container()->_title}</a>
|
|
{{endif}}
|
|
</p>
|
|
{{if $image->mapped('pinned') || $image->mapped('featured') || $image->hidden() === -1 || $image->hidden() === 1 || count( $image->tags() )}}
|
|
<br>
|
|
<ul class='ipsList_inline'>
|
|
{{if $image->mapped('pinned') || $image->mapped('featured') || $image->hidden() === -1 || $image->hidden() === 1}}
|
|
<li>
|
|
{{if $image->hidden() === -1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$image->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
|
{{elseif $image->hidden() === 1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('pinned')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('featured')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
|
{{endif}}
|
|
</li>
|
|
{{endif}}
|
|
|
|
{{if count( $image->tags() )}}
|
|
<li>{template="tags" group="global" app="core" params="$image->tags()"}</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{endif}}
|
|
<p class='ipsType_normal'>
|
|
{{if $image->directContainer()->allow_comments}}
|
|
{{if $image->comments}}
|
|
<a href='{$image->url()->setFragment('comments')}'>
|
|
{{endif}}
|
|
{lang="num_comments" pluralize="$image->comments"}
|
|
{{if $image->comments}}
|
|
</a>
|
|
{{endif}}
|
|
·
|
|
{{endif}}
|
|
<strong>{{if $image->updated == $image->date}}{lang="uploaded"}{{else}}{lang="updated"}{{endif}} {datetime="$image->updated"}</strong>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
{{if $table->canModerate()}}
|
|
<div class='ipsDataItem_modCheck'>
|
|
<input type='checkbox' data-role='moderation' name="moderate[{$image->id}]" data-actions="{expression="implode( ' ', $table->multimodActions( $image ) )"}" data-state='{{if $image->tableStates()}}{$image->tableStates()}{{endif}}'>
|
|
</div>
|
|
{{endif}}
|
|
{{else}}
|
|
<div class='ipsDataItem_generic ipsDataItem_size3'>
|
|
{template="thumbImage" group="global" app="core" params="$image->small_file_name, $image->caption, 'medium', '', 'view_this', $image->url(), 'gallery_Images'"}
|
|
</div>
|
|
<div class='ipsDataItem_main'>
|
|
<h4 class='ipsDataItem_title ipsType_large'>
|
|
{{if $image->prefix()}}
|
|
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
|
|
{{endif}}
|
|
|
|
{{if $image->unread()}}
|
|
<span class='ipsItemStatus' data-ipsTooltip title='{{if $image->unread() === -1}}{lang="new"}{{else}}{lang="updated"}{{endif}}'>
|
|
<i class="fa fa-circle"></i>
|
|
</span>
|
|
{{endif}}
|
|
<a href='{$image->url()}' title='{lang="view_this_image" sprintf="$image->caption"}' {{if $image->canEdit()}}data-role="editableTitle"{{endif}}>
|
|
{wordbreak="$image->caption"}
|
|
</a>
|
|
</h4>
|
|
<p class='ipsType_reset ipsType_light ipsType_blendLinks'>{lang="byline_nodate" htmlsprintf="$image->author()->link()"}</p>
|
|
<div class='ipsType_medium ipsType_richText ipsType_break' data-ipsTruncate data-ipsTruncate-type="remove" data-ipsTruncate-size="2 lines">
|
|
{$image->truncated()|raw}
|
|
</div>
|
|
|
|
{{if $image->mapped('pinned') || $image->mapped('featured') || $image->hidden() === -1 || $image->hidden() === 1 || count( $image->tags() )}}
|
|
<ul class='ipsList_inline'>
|
|
{{if $image->mapped('pinned') || $image->mapped('featured') || $image->hidden() === -1 || $image->hidden() === 1}}
|
|
<li>
|
|
{{if $image->hidden() === -1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$image->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
|
{{elseif $image->hidden() === 1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('pinned')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('featured')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
|
{{endif}}
|
|
</li>
|
|
{{endif}}
|
|
|
|
{{if count( $image->tags() )}}
|
|
<li>{template="tags" group="global" app="core" params="$image->tags()"}</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{endif}}
|
|
</div>
|
|
<div class='ipsDataItem_generic ipsDataItem_size8'>
|
|
{{if $image->directContainer()->allow_comments}}
|
|
<p class='ipsType_normal'>
|
|
{{if $image->comments}}
|
|
<a href='{$image->url()->setFragment('replies')}'>
|
|
{{endif}}
|
|
{lang="num_comments" pluralize="$image->comments"}
|
|
{{if $image->comments}}
|
|
</a>
|
|
{{endif}}
|
|
</p>
|
|
{{endif}}
|
|
<p class='ipsType_medium'><strong>{{if $image->updated == $image->date}}{lang="uploaded"}{{else}}{lang="updated"}{{endif}} {datetime="$image->updated"}</strong></p>
|
|
</div>
|
|
{{if $table->canModerate()}}
|
|
<div class='ipsDataItem_modCheck'>
|
|
<input type='checkbox' data-role='moderation' name="moderate[{$image->id}]" data-actions="{expression="implode( ' ', $table->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}}'>
|
|
</div>
|
|
{{endif}}
|
|
{{endif}}
|
|
</li>
|
|
{{endforeach}}
|
|
{{endif}}]]></template>
|
|
<template template_group="browse" template_name="tableRowsThumbs" template_data="$table, $headers, $images" template_location="front" template_app="gallery"><![CDATA[{{foreach $images as $image}}
|
|
<li class='ipsGrid_span4 {{if $image->hidden()}}ipsModerated{{else}}ipsAreaBackground_light{{endif}} cGalleryImageItem' data-role='patchworkImage' data-json='{$image->json()|raw}'>
|
|
<div data-grid-ratio='65'>
|
|
<a href='{$image->url()}' title='{lang="view_this" sprintf="$image->caption"}' style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), \IPS\File::get( 'gallery_Images', $image->small_file_name )->url )"}" )' class='cGalleryImageItem_image cGalleryTrimmedImage'>
|
|
<img src='{file="$image->small_file_name" extension="gallery_Images"}' alt='' class='cGalleryThumb'>
|
|
</a>
|
|
{{if $table->canModerate()}}
|
|
<input type='checkbox' data-role='moderation' name="moderate[{$image->id}]" data-actions="{{if $image->mapped('featured')}}unfeature{{else}}feature{{endif}} {{if $image->mapped('pinned')}}unpin{{else}}pin{{endif}} {{if $image->hidden() === -1}}unhide{{elseif $image->hidden() === 1}}approve{{else}}hide{{endif}} {{if $image->mapped('locked')}}unlock{{else}}lock{{endif}} move delete" data-state='{{if $image->tableStates()}}{$image->tableStates()}{{endif}}'>
|
|
{{endif}}
|
|
</div>
|
|
<ul class='ipsList_inline ipsType_medium ipsClearfix'>
|
|
{{if $image->unread()}}
|
|
<li class='ipsPos_left'>
|
|
<span class='ipsItemStatus ipsItemStatus_small' data-ipsTooltip title='{{if $image->unread() === -1}}{lang="new"}{{else}}{lang="updated"}{{endif}}'><i class="fa fa-circle"></i></span>
|
|
</li>
|
|
{{endif}}
|
|
{{if $image->mapped('pinned') || $image->mapped('featured') || $image->hidden() === -1 || $image->hidden() === 1}}
|
|
<li class='ipsPos_left'>
|
|
{{if $image->hidden() === -1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$image->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
|
{{elseif $image->hidden() === 1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('pinned')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
|
|
{{endif}}
|
|
{{if $image->mapped('featured')}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
|
{{endif}}
|
|
</li>
|
|
{{endif}}
|
|
|
|
{{if $image->directContainer()->allow_comments}}
|
|
<li class='ipsPos_right {{if $image->comments == 0}}ipsFaded{{endif}}' data-ipsTooltip title='{lang="num_comments" pluralize="$image->comments"}'><i class='fa fa-comment'></i> {$image->comments}</li>
|
|
{{endif}}
|
|
<li class='ipsPos_right {{if $image->views == 0}}ipsFaded{{endif}}' data-ipsTooltip title='{lang="num_views_with_number" pluralize="$image->views"}'><i class='fa fa-eye'></i> {$image->views}</li>
|
|
</ul>
|
|
</li>
|
|
{{endforeach}}]]></template>
|
|
<template template_group="dashboard" template_name="overview" template_data="$data" template_location="admin" template_app="gallery"><![CDATA[<ul class="ipsDataList">
|
|
{{foreach $data as $k => $v}}
|
|
<li class="ipsDataItem">
|
|
<span class="ipsDataItem_generic ipsDataItem_size6">
|
|
<strong>{lang="$k"}</strong>
|
|
</span>
|
|
<span class="ipsDataItem_generic">
|
|
{{if $k === 'total_disk_spaceg'}}
|
|
{filesize="$v"}
|
|
{{elseif $k === 'largest_image'}}
|
|
<a href='{$v->url()}' target='_blank'>{$v->caption}</a> <span class="ipsType_light">({filesize="$v->file_size"})</span>
|
|
{{elseif $k === 'most_viewed_image'}}
|
|
<a href='{$v->url()}' target='_blank'>{$v->caption}</a> <span class="ipsType_light">({lang="num_views_with_number" pluralize="$v->views"})</span>
|
|
{{else}}
|
|
{$v}
|
|
{{endif}}
|
|
</span>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>]]></template>
|
|
<template template_group="global" template_name="approvalQueueItem" template_data="$item, $ref, $container, $title" template_location="front" template_app="gallery"><![CDATA[<div id="elApprovePanel" class='ipsBox'>
|
|
<article itemscope="" itemtype="http://schema.org/Comment" class="ipsClearfix ipsClear">
|
|
<div class='ipsPad'>
|
|
<p class="ipsPos_right ipsPad_half">
|
|
<a href='{$item->url()}' class='ipsType_normal ipsType_light'>
|
|
<i class='fa fa-{$item::$icon}'></i> {lang="$item::$title"}
|
|
</a>
|
|
</p>
|
|
<div class="ipsPhotoPanel ipsPhotoPanel_small ipsClearfix">
|
|
{template="userPhoto" group="global" params="$item->author()"}
|
|
<div>
|
|
<a href="#user{$item->author()->member_id}_menu" id="user{$item->author()->member_id}" class="ipsType_sectionHead" data-ipsmenu="">{$item->author()->name} <i class="fa fa-caret-down"></i></a>
|
|
<ul class="ipsMenu ipsMenu_auto ipsMenu_withStem ipsHide" id="user{$item->author()->member_id}_menu">
|
|
{{if \IPS\Member::loggedIn()->modPermission('mod_can_warn')}}
|
|
<li class='ipsMenu_item'><a href='{url="app=core&module=system&controller=warnings&do=warn&id={$item->author()->member_id}&ref={$ref}" seoTemplate="warn_add" seoTitle="$item->author()->members_seo_name"}' data-ipsDialog data-ipsDialog-title="{lang="warn_member" sprintf="$item->author()->name"}" data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="warning_issued"}" data-role="warnUserDialog">{lang="warn_user"}</a></li>
|
|
{{endif}}
|
|
{{if $item->author()->member_id != \IPS\Member::loggedIn()->member_id}}
|
|
{{if $item->author()->members_bitoptions['bw_is_spammer']}}
|
|
<li class='ipsMenu_item' data-ipsMenuValue='spamFlagButton'><a href='{url="app=core&module=system&controller=moderation&id={$item->author()->member_id}&s=0" seoTemplate="flag_as_spammer" seoTitle="$item->author()->members_seo_name" csrf="true"}' data-confirm data-confirmSubMessage="{lang="spam_unflag_confirm"}">{lang="spam_unflag"}</a></li>
|
|
{{else}}
|
|
<li class='ipsMenu_item' data-ipsMenuValue='spamFlagButton'><a href='{url="app=core&module=system&controller=moderation&id={$item->author()->member_id}&s=1" seoTemplate="flag_as_spammer" seoTitle="$item->author()->members_seo_name" csrf="true"}' data-confirm>{lang="spam_flag"}</a></li>
|
|
{{endif}}
|
|
{{endif}}
|
|
<li class="ipsMenu_item"><a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$item->author()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}">{lang="message_send"}</a></li>
|
|
</ul>
|
|
{{if $container}}
|
|
<p class='ipsType_reset'>{lang="posted_in_container"} <a href="{$container->url()}">{$container->_title}</a></p>
|
|
{{endif}}
|
|
<p class="ipsType_light ipsType_reset">{lang="date_replied" htmlsprintf="\IPS\DateTime::ts( $item->mapped('date') )->html(FALSE)"}</p>
|
|
</p></div>
|
|
</div>
|
|
</div>
|
|
<div class='ipsAreaBackground_light ipsPad'>
|
|
<div class='ipsBox'>
|
|
<h2 class="ipsType_sectionTitle ipsType_blendLinks"><a href="{$item->url()}">{$title}</a></h2>
|
|
<div class="ipsType_richText ipsPost ipsType_normal ipsPad">
|
|
|
|
{template="snippet" app="gallery" location="front" group="global" params="$item"}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
</div>]]></template>
|
|
<template template_group="global" template_name="commentTableHeader" template_data="$comment, $image" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsDataList ipsAreaBackground_light ipsClearfix'>
|
|
<div class='ipsDataItem'>
|
|
<div class='ipsDataItem_generic ipsDataItem_size2'>
|
|
{template="thumbImage" group="global" app="core" params="$image->thumb_file_name, $image->caption, 'small', 'view_this', $image->url(), 'gallery_Images'"}
|
|
</div>
|
|
<div class='ipsDataItem_main ipsType_break'>
|
|
<h3 class='ipsType_sectionHead'><a href='{$image->url()}' title='{lang="view_this_image" sprintf="$image->caption"}'>{$image->caption}</a></h3>
|
|
<p class='ipsType_normal ipsType_light ipsType_blendLinks ipsType_reset'>{lang="in"} <a href='{$image->container()->url()}'>{$image->container()->_title}</a></p>
|
|
{{if $image->container()->allow_rating}}
|
|
{template="rating" group="global" location="front" app="core" params="'large', $image->rating"}
|
|
{{endif}}
|
|
|
|
<span class='ipsType_medium ipsType_reset'>{{if $image->container()->allow_comments}} {{if !$image->comments}}<span class='ipsType_light'>{{endif}}<i class='fa fa-comment'></i> {$image->comments}{{endif}}{{if !$image->comments}}</span>{{endif}}</span>
|
|
</div>
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="global" template_name="embedAlbums" template_data="$album, $url" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsEmbedded ipsEmbedded_withImage'>
|
|
<div class='ipsEmbedded_headerArea'>
|
|
<h4 class='ipsType_reset ipsType_normal ipsTruncate ipsTruncate_line'><i class='fa fa-camera' data-ipsTooltip title='{lang="embed_gallery_album"}'></i> <a href='{$url}' title='{lang="view_this_album"}' target='_top'>{$album->_title}</a></h4>
|
|
</div>
|
|
<div class='ipsEmbedded_content'>
|
|
<span class='ipsType_medium'>{lang="byline_nodate" htmlsprintf="$album->owner()->link()"}</span><br>
|
|
{{if count( $album->_latestImages )}}
|
|
<ul class='ipsList_inline cGallery_albumImages'>
|
|
{{foreach $album->_latestImages as $idx => $image }}
|
|
{{if $idx < 5}}
|
|
<li style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), \IPS\File::get( 'gallery_Images', $image->thumb_file_name )->url )"}" );' class='cGallery_albumImage cGalleryTrimmedImage'>
|
|
<a href='{$image->url()}' data-ipsLightbox data-fullURL='{file="$image->masked_file_name" extension="gallery_Images"}' target='_top'>
|
|
<img src='{file="$image->thumb_file_name" extension="gallery_Images"}'>
|
|
</a>
|
|
</li>
|
|
{{endif}}
|
|
{{endforeach}}
|
|
</ul>
|
|
{{endif}}
|
|
</div>
|
|
<div style='{{if $album->coverPhoto( 'small' )}}background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $album->coverPhoto( 'small' ) )"}" );{{endif}}' class='{{if !$album->coverPhoto( 'small' )}}ipsNoThumb{{endif}} ipsEmbedded_image cGalleryTrimmedImage'>
|
|
<a href='{$album->url()}' title='{lang="view_this_album" sprintf="$album->_title"}' target='_top'>
|
|
<ul class='ipsList_inline cGallery_albumStats ipsType_small'>
|
|
<li><i class='fa fa-camera'></i> {$album->count_imgs}</li>
|
|
{{if $album->allow_comments}}
|
|
<li><i class='fa fa-comment'></i> {$album->count_comments}</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{if $album->coverPhoto( 'small' )}}
|
|
<img src='{$album->coverPhoto( 'small' )}' alt='{$album->_title}'>
|
|
{{endif}}
|
|
</a>
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="global" template_name="link" template_data="$image" template_location="global" template_app="gallery"><![CDATA[<a href="{$image->url()}" class="ipsType_blendLinks" target="_blank">{wordbreak="$image->caption"}</a>]]></template>
|
|
<template template_group="global" template_name="profileAlbumRow" template_data="$table, $headers, $albums" template_location="front" template_app="gallery"><![CDATA[{{foreach $albums as $album}}
|
|
<li class='ipsGrid_span4 cProfileAlbum' data-grid-ratio='100'>
|
|
<div>
|
|
<a href='{$album->url()}' class='cProfileAlbum_image' style='background-image: url( "{$album->coverPhoto('medium')}" );'>
|
|
<h3 class='ipsType_sectionHead'>{$album->_title}</h3>
|
|
<img src='{$album->coverPhoto('medium')}' alt='' class='ipsImage'>
|
|
</a>
|
|
</div>
|
|
</li>
|
|
{{endforeach}}]]></template>
|
|
<template template_group="global" template_name="profileAlbumTable" template_data="$table, $headers, $rows, $quickSearch" template_location="front" template_app="gallery"><![CDATA[<h2 class='ipsType_pageTitle'>{lang="profile_gallery_album"}</h2>
|
|
<br>
|
|
|
|
<div data-baseurl='{$table->baseUrl}' data-resort='{$table->resortKey}' data-controller='core.global.core.table{{if $table->canModerate()}},core.front.core.moderation{{endif}}'>
|
|
{{if $table->pages > 1}}
|
|
<div data-role="tablePagination">
|
|
{template="pagination" group="global" app="core" location="global" params="$table->baseUrl, $table->pages, $table->page, $table->limit, TRUE, 'albumPage'"}
|
|
</div>
|
|
<br>
|
|
{{endif}}
|
|
|
|
<ol class='ipsList_reset ipsClear ipsGrid ipsGrid_collapsePhone ipsType_center' data-controller='gallery.front.browse.list' data-ipsGrid data-ipsGrid-minItemSize='175' data-ipsGrid-maxItemSize='250' id='elTable_{$table->uniqueId}'>
|
|
{template="$table->rowsTemplate[1]" params="$table, $headers, $rows" object="$table->rowsTemplate[0]"}
|
|
</ol>
|
|
</div>]]></template>
|
|
<template template_group="global" template_name="snippet" template_data="$activity, $type='activity'" template_location="front" template_app="gallery"><![CDATA[
|
|
{{if $activity instanceof \IPS\gallery\Image\Comment}}
|
|
{{$item = $activity->item();}}
|
|
{{else}}
|
|
{{$item = $activity;}}
|
|
{{endif}}
|
|
|
|
<div class='cSearchActivity_info ipsContained'>
|
|
<div class='ipsColumns'>
|
|
<div class='ipsColumn ipsColumn_narrow'>
|
|
{{if $item->medium_file_name}}
|
|
<a href='{$item->url()}'>
|
|
<div class='ipsThumb_bg cSearchActivity_image' style='background-image: url( "{file="$item->medium_file_name" extension="gallery_Images"}" );'>
|
|
<img src='{file="$item->medium_file_name" extension="gallery_Images"}' alt=''>
|
|
</div>
|
|
</a>
|
|
{{else}}
|
|
<a href='{$item->url()}'>
|
|
<div class='ipsNoThumb ipsNoThumb_video cSearchActivity_image'></div>
|
|
</a>
|
|
{{endif}}
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_fluid'>
|
|
{{if $activity instanceof \IPS\gallery\Image\Comment}}
|
|
<div class='ipsType_medium ipsType_richText ipsContained ipsSpacer_bottom ipsSpacer_half' data-ipsTruncate data-ipsTruncate-size='5 lines' data-ipsTruncate-type='remove'>
|
|
{$item->truncated()|raw}
|
|
</div>
|
|
{{if $type != 'search' and $item instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
|
<ul class='ipsList_inline ipsType_light'>
|
|
<li>{template="reputationMini" group="global" app="core" params="$item, '', NULL, TRUE"}</li>
|
|
</ul>
|
|
{{endif}}
|
|
{{else}}
|
|
{{if $type != 'search'}}<a href='{$item->url()}' class='ipsType_normal ipsType_break'>{$item->mapped('title')}</a>{{endif}}
|
|
{{if $item->directContainer() instanceof \IPS\gallery\Album}}
|
|
<div class='ipsAreaBackground_light ipsPad_half {{if $type != 'search'}}ipsSpacer_top ipsSpacer_half{{endif}}'>
|
|
<div class='ipsColumns'>
|
|
<div class='ipsColumn ipsColumn_veryNarrow'>
|
|
<a href='{$item->directContainer()->url()}'>
|
|
{{if $item->directContainer()->coverPhoto('small')}}
|
|
<div class='ipsThumb_bg ipsThumb_tiny ipsPos_center' style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $item->directContainer()->coverPhoto('small') )"}" )'>
|
|
<img src='{$item->directContainer()->coverPhoto('small')}' alt=''>
|
|
</div>
|
|
{{else}}
|
|
<div class='ipsNoThumb ipsThumb_tiny ipsPos_center'></div>
|
|
{{endif}}
|
|
</a>
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_fluid ipsPos_top'>
|
|
<h3 class='ipsType_medium ipsType_reset ipsType_unbold'>{lang="in_album"} <a href='{$item->directContainer()->url()}'>{$item->directContainer()->_title}</a></h3>
|
|
<span class='ipsType_light'>{lang="num_images_in_album" pluralize="$item->directContainer()->count_imgs"}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{endif}}
|
|
<div class='ipsType_medium ipsType_richText ipsContained ipsSpacer_both ipsSpacer_half' data-ipsTruncate data-ipsTruncate-size='4 lines' data-ipsTruncate-type='remove'>
|
|
{$item->truncated()|raw}
|
|
</div>
|
|
<ul class='ipsList_inline ipsType_light'>
|
|
{{if $item->directContainer()->allow_comments}}
|
|
<li>{lang="num_comments" pluralize="$item->comments"}</li>
|
|
{{endif}}
|
|
{{if $type != 'search' and $item instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
|
<li>{template="reputationMini" group="global" app="core" params="$item, '', NULL, TRUE"}</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{endif}}
|
|
</div>
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="livesearch" template_name="category" template_data="$category" template_location="admin" template_app="gallery"><![CDATA[<li class='ipsPad_half ipsClearfix' data-role='result'>
|
|
<a href='{url="app=gallery&module=gallery&controller=categories&do=form&id="}{$category->id}' class='ipsPos_left'>{$category->_title}</a>
|
|
</li>
|
|
|
|
]]></template>
|
|
<template template_group="stats" template_name="graphs" template_data="$graph" template_location="admin" template_app="gallery"><![CDATA[{$graph|raw}
|
|
<div class="ipsPad_half ipsAreaBackground">
|
|
{lang="gallery_graph_disclaimer"}
|
|
</div>]]></template>
|
|
<template template_group="stats" template_name="information" template_data="$table" template_location="admin" template_app="gallery"><![CDATA[{$table|raw}
|
|
<br>
|
|
<div class="ipsPad_half ipsType_light">
|
|
{lang="gallery_stats_disclaimer"}
|
|
</div>]]></template>
|
|
<template template_group="stats" template_name="uploadersTable" template_data="$select, $pagination" template_location="admin" template_app="gallery"><![CDATA[
|
|
{{if trim( $pagination )}}
|
|
{$pagination|raw}
|
|
<br><br>
|
|
{{endif}}
|
|
|
|
<table class="ipsTable ipsTable_zebra">
|
|
<thead>
|
|
<tr>
|
|
<th>{lang="member"}</th>
|
|
<th>{lang="gallery_images"}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{foreach $select as $row}}
|
|
{{$member = \IPS\Member::constructFromData( $row );}}
|
|
<tr>
|
|
<td>{template="userPhoto" app="core" group="global" params="$member"} {$member->name}</td>
|
|
<td><a href='{$member->url()->setQueryString( array( 'do' => 'content', 'type' => 'gallery_image' ) )}' target='_blank'>{$row['images']}</a></td>
|
|
</tr>
|
|
{{endforeach}}
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
|
|
{$pagination|raw}]]></template>
|
|
<template template_group="submit" template_name="categorySelector" template_data="$form" template_location="front" template_app="gallery"><![CDATA[
|
|
{{if !\IPS\Request::i()->isAjax()}}
|
|
{template="pageHeader" group="global" app="core" params="\IPS\Member::loggedIn()->language()->addToStack('choose_category')"}
|
|
{{else}}
|
|
<div class='ipsPad'>
|
|
{{endif}}
|
|
{$form|raw}
|
|
{{if \IPS\Request::i()->isAjax()}}
|
|
</div>
|
|
{{endif}}]]></template>
|
|
<template template_group="submit" template_name="createAlbum" template_data="$form, $totalItems" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsPad'>
|
|
{{if \IPS\Member::loggedIn()->group['g_img_album_limit'] && $totalItems > \IPS\Member::loggedIn()->group['g_img_album_limit']}}
|
|
<div class='ipsMessage ipsMessage_info ipsSpacer_bottom'>
|
|
<h4 class='ipsMessage_title'>{lang="too_many_images"}</h4>
|
|
{lang="album_limit_message" pluralize="\IPS\Member::loggedIn()->group['g_img_album_limit']" sprintf="$totalItems"}
|
|
</div>
|
|
{{endif}}
|
|
{$form|raw}
|
|
</div>]]></template>
|
|
<template template_group="submit" template_name="existingAlbums" template_data="$category, $albums, $uploadedCount" template_location="front" template_app="gallery"><![CDATA[
|
|
{{if count( $albums )}}
|
|
<ul class='ipsDataList' data-controller='gallery.front.submit.existingAlbums'>
|
|
{{foreach $albums as $album}}
|
|
<li class='ipsDataItem'>
|
|
<div class='ipsDataItem_generic ipsDataItem_size3'>
|
|
<div style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $album->coverPhoto( 'small' ) )"}" );' class='cGallerySubmit_albumImage cGalleryTrimmedImage {{if \IPS\Member::loggedIn()->group['g_img_album_limit'] && $album->count_imgs >= \IPS\Member::loggedIn()->group['g_img_album_limit']}}ipsFaded{{endif}}'>
|
|
<img src='{$album->coverPhoto( 'small' )}' alt='{$album->_title}'>
|
|
</div>
|
|
</div>
|
|
<div class='ipsDataItem_main'>
|
|
<h3 class='ipsDataItem_title ipsType_large {{if \IPS\Member::loggedIn()->group['g_img_album_limit'] && $album->count_imgs >= \IPS\Member::loggedIn()->group['g_img_album_limit']}}ipsFaded{{endif}}'>{$album->_title} {{if $album->last_img_date}}<span class='ipsType_light ipsType_unbold ipsType_medium ipsType_reset'>({lang="updated"} {datetime="$album->last_img_date"})</span>{{endif}}</h3>
|
|
<ul class='ipsList_inline ipsType_medium ipsType_light {{if \IPS\Member::loggedIn()->group['g_img_album_limit'] && $album->count_imgs >= \IPS\Member::loggedIn()->group['g_img_album_limit']}}ipsFaded{{endif}}'>
|
|
<li><i class='fa fa-camera'></i> {lang="num_images" pluralize="$album->count_imgs"}</li>
|
|
{{if $album->allow_comments}}
|
|
<li><i class='fa fa-comment'></i> {lang="num_comments" pluralize="$album->count_comments"}</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{if \IPS\Member::loggedIn()->group['g_img_album_limit'] && $album->count_imgs >= \IPS\Member::loggedIn()->group['g_img_album_limit']}}
|
|
<p class='ipsType_normal ipsType_reset'><i class='fa fa-info-circle'></i> {lang="album_full_desc"}</p>
|
|
{{elseif \IPS\Member::loggedIn()->group['g_img_album_limit'] && ( \IPS\Member::loggedIn()->group['g_img_album_limit'] - $album->count_imgs ) < $uploadedCount}}
|
|
<p class='ipsType_normal ipsType_reset'>
|
|
<strong><i class='fa fa-info-circle'></i> {lang="x_more_images_album" pluralize="( \IPS\Member::loggedIn()->group['g_img_album_limit'] - $album->count_imgs )"}</strong>
|
|
</p>
|
|
{{endif}}
|
|
</div>
|
|
<div class='ipsDataItem_generic ipsDataItem_size2 ipsType_right'>
|
|
{{if !(\IPS\Member::loggedIn()->group['g_img_album_limit'] && $album->count_imgs >= \IPS\Member::loggedIn()->group['g_img_album_limit'])}}
|
|
<a href='{url="app=gallery&module=gallery&controller=submit&do=submit&_step=album&chooseAlbum=1&category={$category->id}&albumLocation=existing&album={$album->_id}"}' data-action='chooseAlbum' class='ipsButton ipsButton_primary ipsButton_small'>{lang="choose_album"}</a>
|
|
{{else}}
|
|
<em class='ipsType_noBreak ipsType_light'><i class='fa fa-times'></i> {lang="album_full"}</em>
|
|
{{endif}}
|
|
</div>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
{{endif}}
|
|
]]></template>
|
|
<template template_group="submit" template_name="imageInformation" template_data="$images=array(), $movies=array(), $form, $category, $currentIndex=0, $currentType='images', $currentItem, $album=NULL, $canCreate" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsColumns ipsColumns_collapsePhone cGallerySubmit_stepBlock ipsSpacer_bottom ipsSpacer_double'>
|
|
<div class='ipsColumn ipsColumn_veryNarrow'>
|
|
<span class='cGallerySubmit_step'>2</span>
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_fluid'>
|
|
<h1 class='ipsType_pageTitle'>{lang="add_information"}</h1>
|
|
<p class='ipsType_normal ipsType_reset'>
|
|
{{if $canCreate && !$album}}
|
|
{lang="add_information_plus_album_desc"}
|
|
{{else}}
|
|
{lang="add_information_desc"}
|
|
{{endif}}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div data-controller='gallery.front.submit.main' class='cGallerySubmit'>
|
|
<a id='elImageInfo'></a>
|
|
<div class='ipsBox'>
|
|
<h2 class='ipsType_sectionTitle ipsType_reset'>{{if count($movies) AND count($images)}}{lang="media_you_uploaded"}{{elseif count($movies)}}{lang="movies_you_uploaded"}{{else}}{lang="images_you_uploaded"}{{endif}}</h2>
|
|
<div class='ipsAreaBackground ipsPad_half cGallerySubmitStrip'>
|
|
<div class='ipsCarousel ipsClearfix' data-ipsCarousel data-role='uploadedImages'>
|
|
<ul class='cDownloadsCarousel' data-role="carouselItems">
|
|
{{foreach $images as $idx => $image}}
|
|
<li class="ipsCarousel_item {{if $image->done}}cGallerySubmit_done{{endif}} {{if $currentType == 'images' && $currentIndex == $idx}}cGallerySubmit_current{{endif}} {{if $album && \IPS\Member::loggedIn()->group['g_img_album_limit'] && ( $idx + 1 ) > \IPS\Member::loggedIn()->group['g_img_album_limit']}}cGallerySubmit_excess{{endif}}" data-type='images' data-index='{$idx}'>
|
|
<div style="background-image: url( '{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $image->url )"}' );" class="cGalleryTrimmedImage">
|
|
<a href="{url="app=gallery&module=gallery&controller=submit&do=submit&type=images&edit={$idx}&_step=image_information&category={$category->_id}" seoTemplate="gallery_submit"}">
|
|
<img src="{$image->url}" alt=''>
|
|
</a>
|
|
</div>
|
|
</li>
|
|
{{endforeach}}
|
|
{{foreach $movies as $idx => $image}}
|
|
<li class="ipsCarousel_item {{if $currentType == 'movies' && $currentIndex == $idx}}cGallerySubmit_current{{endif}} {{if $album && \IPS\Member::loggedIn()->group['g_img_album_limit'] && ( count( $images ) + $idx + 1 ) > \IPS\Member::loggedIn()->group['g_img_album_limit']}}cGallerySubmit_excess{{endif}}" data-type='movies' data-index='{$idx}'>
|
|
<div {{if $image->attachmentThumbnailUrl}}style="background-image: url( '{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), $image->attachmentThumbnailUrl )"}' );"{{endif}} class="cGalleryTrimmedImage cGalleryMovieThumb ipsNoThumb ipsNoThumb_video">
|
|
<a href="{url="app=gallery&module=gallery&controller=submit&do=submit&type=images&edit={$idx}&_step=image_information&category={$category->_id}" seoTemplate="gallery_submit"}">
|
|
{{if $image->attachmentThumbnailUrl}}
|
|
<img src="{$image->attachmentThumbnailUrl}" alt=''>
|
|
{{else}}
|
|
|
|
{{endif}}
|
|
</a>
|
|
</div>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
<span class='ipsCarousel_shadow ipsCarousel_shadowLeft'></span>
|
|
<span class='ipsCarousel_shadow ipsCarousel_shadowRight'></span>
|
|
<a href='#' class='ipsCarousel_nav ipsHide' data-action='prev'><i class='fa fa-chevron-left'></i></a>
|
|
<a href='#' class='ipsCarousel_nav ipsHide' data-action='next'><i class='fa fa-chevron-right'></i></a>
|
|
</div>
|
|
</div>
|
|
<div class='ipsAreaBackground_reset ipsPad ipsClearfix'>
|
|
<a href='{url="app=gallery&module=gallery&controller=submit&do=submit&category={$category->_id}&_step=image_information&finish=1" seoTemplate="gallery_submit"}' class='ipsPos_right ipsButton ipsButton_important ipsButton_verySmall' data-action='finish'><i class='fa fa-check'></i> {lang="image_info_finish"}</a>
|
|
{{if $category->allow_albums AND ( $canCreate or count( \IPS\gallery\Album::loadByOwner() ) )}}
|
|
<div data-role='albumChoice' class='ipsPos_left {{if $album}}ipsHide{{endif}}'>
|
|
{{if $canCreate}}
|
|
<a href='{url="app=gallery&module=gallery&controller=submit&do=submit&_step=album&chooseAlbum=true&albumLocation=new&category={$category->_id}"}' data-action='createAlbum' data-ipsDialog data-ipsDialog-remoteSubmit data-ipsDialog-forceReload data-ipsDialog-title='{lang="create_album"}' class='ipsButton ipsButton_light ipsButton_verySmall'><i class='fa fa-plus'></i> {lang="create_an_album"}</a> {{if count( \IPS\gallery\Album::loadByOwner() )}} {lang="or"} {{endif}}
|
|
{{endif}}
|
|
{{if count( \IPS\gallery\Album::loadByOwner() )}}
|
|
<a href='{url="app=gallery&module=gallery&controller=submit&do=submit&_step=album&chooseAlbum=true&albumLocation=existing&category={$category->_id}"}' data-ipsDialog data-ipsDialog-title='{lang="choose_existing_album"}' data-ipsDialog-forceReload class='ipsButton ipsButton_light ipsButton_verySmall'><i class='fa fa-picture-o'></i> {lang="add_to_existing_album"}</a>
|
|
{{endif}}
|
|
</div>
|
|
<div data-role='albumChosen' class='ipsPos_left {{if !$album}}ipsHide{{endif}} ipsType_break'>
|
|
<i class='fa fa-picture-o'></i> <span data-role='text'>{lang="new_album" pluralize="$album['images']" sprintf="$album['name']"}</span> <a href='{url="app=gallery&module=gallery&controller=submit&do=submit&category={$category->_id}&_step=album" seoTemplate="gallery_submit"}' data-action='changeAlbum' class='ipsType_small'>({lang="change_album"})</a>
|
|
</div>
|
|
{{else}}
|
|
<div class='ipsPos_left'>
|
|
<i class='fa fa-picture-o'></i> {lang="adding_to_category_x" sprintf="$category->_title"}
|
|
</div>
|
|
{{endif}}
|
|
|
|
<ul class='ipsMenu ipsMenu_auto ipsHide' id='elImageTools_menu'>
|
|
<li class='ipsMenu_item'><a href='#'>{lang="set_tags"}</a></li>
|
|
<li class='ipsMenu_item'><a href='#'>{lang="set_copyright"}</a></li>
|
|
<li class='ipsMenu_item'><a href='#'>{lang="notify_me"}</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<section class='ipsColumns ipsColumns_collapsePhone ipsSpacer_top' data-role='editForm'>
|
|
{$form|raw}
|
|
</section>
|
|
</div>]]></template>
|
|
<template template_group="submit" template_name="imageInformationDone" template_data="$images=array(), $movies=array(), $category, $album=NULL" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='cGallerySubmit_finished ipsType_center'>
|
|
<h3 class='ipsType_large'>{lang="ready_to_submit"}</h3>
|
|
<br>
|
|
<a href='{url="app=gallery&module=gallery&controller=submit&do=submit&category={$category->_id}&_step=image_information&finish=1" seoTemplate="gallery_submit"}' class='ipsButton ipsButton_important ipsButton_large' data-action='finish'><i class='fa fa-check'></i> {lang="finish_all_images"}</a>
|
|
</div>]]></template>
|
|
<template template_group="submit" template_name="imageInformationForm" template_data="$form, $currentItem, $itemCount, $currentIndex, $category, $currentType" template_location="front" template_app="gallery"><![CDATA[<div class='ipsColumn ipsColumn_wide'>
|
|
<div class='ipsPad ipsBox'>
|
|
{{if $currentItem->url && $currentType == 'images'}}
|
|
<img src='{$currentItem->url}' class='ipsImage' alt=''>
|
|
{{else}}
|
|
{{if $currentItem->attachmentThumbnailUrl}}
|
|
<img src='{$currentItem->attachmentThumbnailUrl}' class='ipsImage' alt=''>
|
|
{{else}}
|
|
<div class='ipsNoThumb ipsNoThumb_video'></div>
|
|
{{endif}}
|
|
{{endif}}
|
|
</div>
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_fluid cGallerySubmit_info'>
|
|
<div class='ipsBox ipsPad'>
|
|
<h3 class='ipsType_sectionHead ipsSpacer_bottom'>{{if $currentType == 'images'}}{lang="editing_image"}{{else}}{lang="editing_movie"}{{endif}} <span class='ipsType_light'>({lang="x_of_y" sprintf="$currentIndex + 1, $itemCount"})</h3>
|
|
{$form|raw}
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="submit" template_name="processing" template_data="$redirector" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsBox ipsPad'>
|
|
<h1 class='ipsType_veryLarge ipsType_center'>{lang="saving_images"}</h1>
|
|
<p class='ipsType_large ipsType_center ipsSpacer_bottom'>{lang="saving_images_desc"}</p>
|
|
|
|
{$redirector|raw}
|
|
</div>]]></template>
|
|
<template template_group="submit" template_name="uploadImages" template_data="$form, $category, $canCreateAlbums=FALSE, $imageLimit=NULL" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsColumns ipsColumns_collapsePhone ipsSpacer_bottom ipsSpacer_double cGallerySubmit_stepBlock {{if $canCreateAlbums && \IPS\Member::loggedIn()->group['g_img_album_limit']}}cGalerySubmit_stepBlock_noMargin{{endif}}'>
|
|
<div class='ipsColumn ipsColumn_veryNarrow'>
|
|
<span class='cGallerySubmit_step'>1</span>
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_fluid'>
|
|
<h1 class='ipsType_pageTitle'>{{if isset( $form->elements['']['movies'] )}}{lang="add_gallery_image_movies"}{{else}}{lang="add_gallery_image"}{{endif}}</h1>
|
|
<p class='ipsType_normal ipsType_reset'>
|
|
{{if $imageLimit !== NULL}}
|
|
{lang="add_gallery_album_limit" pluralize="\IPS\Member::loggedIn()->group['g_img_album_limit']"}
|
|
{{elseif $canCreateAlbums && \IPS\Member::loggedIn()->group['g_img_album_limit']}}
|
|
{lang="add_gallery_image_limit" pluralize="\IPS\Member::loggedIn()->group['g_img_album_limit']"}
|
|
{{else}}
|
|
{lang="add_gallery_image_desc"}
|
|
{{endif}}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
{{if $form->error}}
|
|
<div class="ipsMessage ipsMessage_error ipsSpacer_bottom">
|
|
{$form->error}
|
|
</div>
|
|
{{endif}}
|
|
|
|
|
|
|
|
<form accept-charset='utf-8' method="post" action="{$form->action}" id='elGallerySubmit' enctype="multipart/form-data" data-ipsForm data-controller='gallery.front.submit.main'>
|
|
<input type="hidden" name="{$form->id}_submitted" value="1">
|
|
{{foreach $form->hiddenValues as $k => $v}}
|
|
<input type="hidden" name="{$k}" value="{$v}">
|
|
{{endforeach}}
|
|
|
|
<h3 class='ipsType_sectionTitle ipsType_reset'>{lang="select_your_images"}</h3>
|
|
<div class='ipsAreaBackground ipsPad ipsBox ipsBox_transparent ipsClearfix'>
|
|
<div id='elGallerySubmit_uploader' class='ipsClear'>
|
|
{$form->elements['']['images']->html( $form )|raw}
|
|
{{if $form->elements['']['images']->error}}
|
|
<br>
|
|
<span class="ipsType_warning">{lang="$form->elements['']['images']->error"}</span>
|
|
{{endif}}
|
|
<button type='button' class='ipsButton ipsButton_veryLight ipsButton_verySmall ipsHide' data-action='uploadMore'>{lang="upload_more_images"}</button>
|
|
</div>
|
|
</div>
|
|
{{if isset( $form->elements['']['movies'] )}}
|
|
<p class='ipsType_center ipsType_large'>{lang="or"}</p>
|
|
<h3 class='ipsType_sectionTitle ipsType_reset'>{lang="select_your_movies"}</h3>
|
|
<div class='ipsAreaBackground ipsPad ipsBox ipsBox_transparent ipsClearfix'>
|
|
<div id='elGallerySubmit_uploader' class='ipsClear'>
|
|
{$form->elements['']['movies']->html( $form )|raw}
|
|
{{if $form->elements['']['movies']->error}}
|
|
<br>
|
|
<span class="ipsType_warning">{lang="$form->elements['']['movies']->error"}</span>
|
|
{{endif}}
|
|
<button type='button' class='ipsButton ipsButton_veryLight ipsButton_verySmall ipsHide' data-action='uploadMore'>{lang="upload_more_movies"}</button>
|
|
</div>
|
|
</div>
|
|
{{endif}}
|
|
|
|
<hr class='ipsHr'>
|
|
<div class='ipsType_right'>
|
|
<button type='submit' class='ipsButton ipsButton_large ipsButton_primary' data-role='submitForm'>{lang="continue"}</button>
|
|
</div>
|
|
</form>]]></template>
|
|
<template template_group="submit" template_name="wizardForm" template_data="$stepNames, $activeStep, $output, $baseUrl, $showSteps" template_location="front" template_app="gallery"><![CDATA[
|
|
{{foreach $stepNames as $step => $name}}
|
|
{{if $activeStep == $name}}
|
|
{$output|raw}
|
|
{{endif}}
|
|
{{endforeach}}]]></template>
|
|
<template template_group="view" template_name="comments" template_data="$image" template_location="front" template_app="gallery"><![CDATA[<div class='ipsBox ipsSpacer_top'>
|
|
<div class='' data-controller='core.front.core.commentFeed' data-baseURL='{$image->url()}' {{if $image->isLastPage()}}data-lastPage{{endif}} data-feedID='image-{$image->id}' id='comments'>
|
|
<div class='ipsPad'>
|
|
<h2 class='ipsType_sectionHead ipsSpacer_bottom' data-role="comment_count">{lang="num_comments_uc" pluralize="$image->comments"}</h2>
|
|
{{if $image->commentPageCount() > 1}}
|
|
{$image->commentPagination()|raw}
|
|
<br><br>
|
|
{{endif}}
|
|
<div data-role='commentFeed' data-controller='core.front.core.moderation'>
|
|
{{if count( $image->comments() )}}
|
|
<form action="{$image->url()->csrf()->setQueryString( 'do', 'multimodComment' )}" method="post" data-ipsPageAction data-role='moderationTools'>
|
|
{{$commentCount=0; $timeLastRead = $image->timeLastRead(); $lined = FALSE;}}
|
|
{{foreach $image->comments() as $comment}}
|
|
{{if !$lined and $timeLastRead and $timeLastRead->getTimestamp() < $comment->mapped('date')}}
|
|
{{if $lined = TRUE and $commentCount}}
|
|
<hr class="ipsCommentUnreadSeperator">
|
|
{{endif}}
|
|
{{endif}}
|
|
{{$commentCount++;}}
|
|
{$comment->html()|raw}
|
|
{{endforeach}}
|
|
{template="commentMultimod" app="core" group="global" params="$image"}
|
|
</form>
|
|
{{else}}
|
|
<p class='ipsType_normal ipsType_light ipsType_reset' data-role='noComments'>{lang="no_comments"}</p>
|
|
{{endif}}
|
|
</div>
|
|
{{if $image->commentPageCount() > 1}}
|
|
<hr class='ipsHr'>
|
|
{$image->commentPagination()|raw}
|
|
{{endif}}
|
|
|
|
{{if $image->commentForm() || $image->locked() || \IPS\Member::loggedIn()->restrict_post || \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings']}}
|
|
<a id='replyForm'></a>
|
|
<div data-role='replyArea' class='ipsBox ipsBox_transparent ipsAreaBackground ipsPad {{if !$image->canComment()}}cTopicPostArea_noSize{{endif}} ipsSpacer_top'>
|
|
{{if $image->commentForm()}}
|
|
{{if $image->locked()}}
|
|
<p class='ipsType_reset ipsType_warning ipsComposeArea_warning ipsSpacer_bottom ipsSpacer_half'><i class='fa fa-info-circle'></i> {lang="image_locked_can_comment"}</p>
|
|
{{endif}}
|
|
{$image->commentForm()|raw}
|
|
{{else}}
|
|
{{if $image->locked()}}
|
|
{template="commentUnavailable" group="forms" location="front" app="core" params="'image_locked_cannot_comment'"}
|
|
{{elseif \IPS\Member::loggedIn()->restrict_post}}
|
|
{template="commentUnavailable" group="forms" location="front" app="core" params="'restricted_cannot_comment', \IPS\Member::loggedIn()->warnings(5,NULL,'rpa'), \IPS\Member::loggedIn()->restrict_post"}
|
|
{{elseif \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings']}}
|
|
{template="commentUnavailable" group="forms" location="front" app="core" params="'unacknowledged_warning_cannot_post', \IPS\Member::loggedIn()->warnings( 1, FALSE )"}
|
|
{{endif}}
|
|
{{endif}}
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="view" template_name="image" template_data="$image, $slider, $next=NULL, $prev=NULL, $hasNext=TRUE, $hasPrev=TRUE" template_location="front" template_app="gallery"><![CDATA[
|
|
<div data-controller='gallery.front.view.image'>
|
|
<div id='elGalleryHeader'>
|
|
{template="imageFrame" group="view" app="gallery" params="$image, $slider, $next, $prev"}
|
|
<div id='elGalleryNav' data-role='collectionNav'>
|
|
<ul class='ipsList_inline ipsClearfix'>
|
|
{template="imageSlider" group="view" app="gallery" params="$image, $slider, $next, $prev, $hasNext, $hasPrev"}
|
|
</ul>
|
|
<p class='ipsType_reset ipsType_center'>
|
|
{lang="slider_text" pluralize="$image->directContainer()->count_imgs" sprintf="$image->directContainer()->_title"}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<section data-role='imageInfo'>
|
|
{template="imageInfo" group="view" params="$image, $slider, $next, $prev"}
|
|
</section>
|
|
|
|
<div data-role='imageComments'>
|
|
{{if $image->directContainer()->allow_comments}}
|
|
{template="comments" app="gallery" group="view" params="$image"}
|
|
{{endif}}
|
|
</div>
|
|
</div> ]]></template>
|
|
<template template_group="view" template_name="imageFrame" template_data="$image, $slider, $next=NULL, $prev=NULL" template_location="front" template_app="gallery"><![CDATA[
|
|
<div id='elGalleryImage' data-role="imageFrame" {{if $image->data}}data-imageSizes='{$image->data}'{{endif}}>
|
|
{{if $image->media }}
|
|
<div class='cGallery_videoContainer'>
|
|
{{if in_array( $image->file_type, array( 'video/ogg', 'video/webm', 'video/mp4', 'video/x-flv', 'video/3gpp' ) )}}
|
|
<video id="elGalleryVideo" class="ipsPos_center video-js vjs-default-skin" controls preload="auto" width="100%" height="100%"{{if $image->medium_file_name }} poster="{file="$image->medium_file_name" extension="gallery_Images"}"{{endif}} data-setup='{"techOrder": ["html5","flash"]}'>
|
|
<source src="{file="$image->original_file_name" extension="gallery_Images"}" type='{$image->file_type}' />
|
|
</video>
|
|
{{else}}
|
|
<!-- Old fashioned...supports things like wmv though-->
|
|
<embed wmode="opaque" autoplay="true" showcontrols="true" showstatusbar="true" showtracker="true" src="{file="$image->original_file_name" extension="gallery_Images"}" width="480" height="360" type='{$image->file_type}' />
|
|
{{endif}}
|
|
</div>
|
|
{{else}}
|
|
<div class='cGalleryViewImage' data-role='notesWrapper' data-controller='gallery.front.view.notes' data-imageID='{$image->id}' {{if $image->canEdit()}}data-editable{{endif}} data-notesData='{expression="( $image->notes ) ? str_replace( '\'', ''', $image->notes ) : '[]'"}'>
|
|
|
|
<img src='{file="$image->masked_file_name" extension="gallery_Images"}' alt='{$image->caption}' title='{$image->caption}' data-role='theImage' class='ipsHide'>
|
|
<noscript>
|
|
<img src='{file="$image->masked_file_name" extension="gallery_Images"}' alt='{$image->caption}' title='{$image->caption}' data-role='theImage'>
|
|
</noscript>
|
|
{{if count( $image->_notes )}}
|
|
<noscript>
|
|
{{foreach $image->_notes as $note}}
|
|
<div class='cGalleryNote' style='left: {$note['LEFT']}%; top: {$note['TOP']}%; width: {$note['WIDTH']}%; height: {$note['HEIGHT']}%'>
|
|
<div class='cGalleryNote_border'></div>
|
|
<div class='cGalleryNote_note'>{$note['NOTE']}</div>
|
|
</div>
|
|
{{endforeach}}
|
|
</noscript>
|
|
{{endif}}
|
|
</div>
|
|
|
|
<ul class='ipsButton_split cGalleryViewImage_controls'>
|
|
{{if $image->canEdit()}}
|
|
<li><a href='#' class='ipsButton ipsButton_overlaid ipsButton_verySmall ipsJS_show' title='{lang="add_image_note"}' data-action='addNote'>{lang="add_image_note"}</a></li>
|
|
<li>
|
|
<a href='#' class='ipsButton ipsButton_overlaid ipsButton_verySmall' title='{lang="rotate_image"}' id='elImage_rotate' data-ipsMenu data-ipsMenu-appendTo='#elGalleryImage'>
|
|
{lang="rotate_image"} <i class='fa fa-caret-down'></i>
|
|
</a>
|
|
<ul class='ipsMenu ipsMenu_auto ipsHide' id='elImage_rotate_menu'>
|
|
<li class='ipsMenu_item'>
|
|
<a href='{$image->url( 'rotate' )->setQueryString( 'direction', 'right' )}' title='{lang="rotate_right"}'>
|
|
<i class='fa fa-rotate-right'></i> {lang="rotate_right"}
|
|
</a>
|
|
</li>
|
|
<li class='ipsMenu_item'>
|
|
<a href='{$image->url( 'rotate' )->setQueryString( 'direction', 'left' )}' title="{lang="rotate_left"}">
|
|
<i class='fa fa-rotate-left'></i> {lang="rotate_left"}
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
{{endif}}
|
|
{{if count( $image->sizes() ) > 1}}
|
|
<li>
|
|
<a href='#' class='ipsButton ipsButton_overlaid ipsButton_verySmall' title='{lang="view_all_sizes"}' id='elImageSize' data-ipsMenu data-ipsMenu-appendTo='#elGalleryImage'>
|
|
{lang="view_all_sizes"} <i class='fa fa-caret-down'></i>
|
|
</a>
|
|
<ul class='ipsMenu ipsMenu_medium ipsHide' id='elImageSize_menu'>
|
|
{{foreach $image->sizes() as $k => $dims}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->setQueryString( 'imageSize', $k )}'>{$dims[0]}x{$dims[1]}</a></li>
|
|
{{endforeach}}
|
|
</ul>
|
|
</li>
|
|
{{endif}}
|
|
{{if ( $image->album_id AND $image->canEdit() ) OR \IPS\gallery\Image::modPermission( 'edit', NULL, $image->container() ) || \IPS\Member::loggedIn()->member_id}}
|
|
<li>
|
|
{{if ( $image->album_id AND $image->canEdit() ) OR \IPS\gallery\Image::modPermission( 'edit', NULL, $image->container() )}}
|
|
<a href='#' class='ipsButton ipsButton_overlaid ipsButton_verySmall' title='{lang="set_image_as"}' id='elImageSetAs' data-ipsMenu data-ipsMenu-appendTo='#elGalleryImage'>
|
|
{lang="set_image_as"} <i class='fa fa-caret-down'></i>
|
|
</a>
|
|
<ul class='ipsMenu ipsMenu_auto ipsHide' id='elImageSetAs_menu'>
|
|
{{if \IPS\gallery\Image::modPermission( 'edit', NULL, $image->container() ) AND ( $image->album_id AND $image->canEdit() )}}
|
|
<li class='ipsMenu_item'><a data-action='setAsCover' href='{$image->url()->setQueryString( 'do', 'cover' )->setQueryString( 'set', 'category')->csrf()}'>{lang="cover_category_only"}</a></li>
|
|
<li class='ipsMenu_item'><a data-action='setAsCover' href='{$image->url()->setQueryString( 'do', 'cover' )->setQueryString( 'set', 'album')->csrf()}'>{lang="cover_album_only"}</a></li>
|
|
<li class='ipsMenu_item'><a data-action='setAsCover' href='{$image->url()->setQueryString( 'do', 'cover' )->setQueryString( 'set', 'both')->csrf()}'>{lang="cover_both"}</a></li>
|
|
{{elseif \IPS\gallery\Image::modPermission( 'edit', NULL, $image->container() )}}
|
|
<li class='ipsMenu_item'><a data-action='setAsCover' href='{$image->url()->setQueryString( 'do', 'cover' )->setQueryString( 'set', 'category')->csrf()}'>{lang="cover_category"}</a></li>
|
|
{{elseif $image->album_id AND $image->canEdit()}}
|
|
<li class='ipsMenu_item'><a data-action='setAsCover' href='{$image->url()->setQueryString( 'do', 'cover' )->setQueryString( 'set', 'album')->csrf()}'>{lang="cover_album"}</a></li>
|
|
{{endif}}
|
|
{{if \IPS\Member::loggedIn()->member_id}}
|
|
<li class='ipsMenu_sep'><hr></li>
|
|
<li class='ipsMenu_item'>
|
|
<a href='{$image->url('setAsPhoto')->csrf()}' data-action='setAsProfile' title="{lang="set_gallery_image_photo"}">{lang="set_gallery_image_photo"}</a>
|
|
</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{elseif \IPS\Member::loggedIn()->member_id}}
|
|
<a href='{$image->url('setAsPhoto')->csrf()}' class='ipsButton ipsButton_overlaid ipsButton_verySmall' title='{lang="set_gallery_image_photo"}'>
|
|
{lang="set_gallery_image_photo"}
|
|
</a>
|
|
{{endif}}
|
|
</li>
|
|
{{endif}}
|
|
<li>
|
|
<a href='{file="$image->masked_file_name" extension="gallery_Images"}' class='ipsButton ipsButton_overlaid ipsButton_verySmall' title='{lang="view_in_lightbox"}' data-ipsTooltip data-ipsLightbox><i class='fa fa-expand'></i></a>
|
|
</li>
|
|
</ul>
|
|
{{endif}}
|
|
<span id='elGalleryImageNav'>
|
|
{{if $prev}}
|
|
<a href='{$prev->url()->setQueryString( 'browse', 1 )}' id='elGalleryImageNav_prev' data-action='prevImage' data-imageID='{$prev->id}' title='{$prev->caption}'><i class='fa fa-angle-left'></i></a>
|
|
{{endif}}
|
|
{{if $next}}
|
|
<a href='{$next->url()->setQueryString( 'browse', 1 )}' id='elGalleryImageNav_next' data-action='nextImage' data-imageID='{$next->id}' title='{$next->caption}'><i class='fa fa-angle-right'></i></a>
|
|
{{endif}}
|
|
</span>
|
|
</div>]]></template>
|
|
<template template_group="view" template_name="imageInfo" template_data="$image, $slider, $next=NULL, $prev=NULL" template_location="front" template_app="gallery"><![CDATA[
|
|
<div class='ipsColumns ipsColumns_collapsePhone'>
|
|
<div class='ipsColumn ipsColumn_fluid'>
|
|
{{if $image->hidden() === 1 and $image->canUnhide()}}
|
|
<div class="ipsBox ipsPad ipsAreaBackground_light ipsSpacer_bottom">
|
|
<p class="ipsType_reset ipsType_normal"><i class='fa fa-warning'></i> {lang="image_pending_approval"}</p>
|
|
<br>
|
|
<ul class='ipsList_inline'>
|
|
<li><a href="{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}" class="ipsButton ipsButton_small ipsButton_positive" title='{lang="approve_title"}'><i class="fa fa-check-circle"></i> {lang="approve"}</a></li>
|
|
{{if $image->canDelete()}}
|
|
<li><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete' ) )}' data-confirm title='{lang="delete_title"}' class="ipsButton ipsButton_small ipsButton_negative"><i class='fa fa-times'></i> {lang="delete"}</a></li>
|
|
{{endif}}
|
|
</ul>
|
|
</div>
|
|
{{endif}}
|
|
|
|
<div class='ipsBox ipsPad' data-role='imageDescription'>
|
|
<h1 class='ipsType_pageTitle ipsType_break'>
|
|
{{if $image->prefix()}}
|
|
{template="prefix" group="global" app="core" params="$image->prefix( TRUE ), $image->prefix()"}
|
|
{{endif}}
|
|
|
|
{{if $image->locked()}}<i class='fa fa-lock'></i> {{endif}}{wordbreak="$image->caption"}
|
|
{{if $image->hidden() === 1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
|
{{elseif $image->hidden() === -1}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$image->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
|
{{endif}}
|
|
{{if $image->canUnfeature()}}
|
|
<span class="ipsBadge ipsBadge_icon ipsBadge_positive" data-ipsTooltip title='{lang="featured"}'><i class='fa fa-star'></i></span>
|
|
{{endif}}
|
|
</h1>
|
|
<div class='ipsPhotoPanel ipsPhotoPanel_mini ipsClearfix ipsSpacer_bottom ipsSpacer_top'>
|
|
{template="userPhoto" app="core" group="global" params="$image->author(), 'mini', $image->warningRef()"}
|
|
<div>
|
|
<div class='ipsPos_right ipsResponsive_noFloat ipsResponsive_hidePhone'>
|
|
{template="follow" app="core" group="global" params="'gallery', 'image', $image->id, $image->followers()->count( TRUE )"}
|
|
</div>
|
|
<p class='ipsType_reset ipsType_normal ipsType_blendLinks'>
|
|
{lang="byline_nodate_itemprop" htmlsprintf="$image->author()->link( $image->warningRef() )"}
|
|
</p>
|
|
<ul class='ipsList_inline'>
|
|
<li class='ipsType_light'>{datetime="$image->date"}</li>
|
|
<li class='ipsType_light'>{lang="num_views_with_number" pluralize="$image->views"}</li>
|
|
{{if $image->author()->member_id OR $image->canChangeAuthor()}}
|
|
{{if $image->author()->member_id}}
|
|
<li><a href='{url="app=core&module=members&controller=members&id={$image->author()->member_id}&do=content&type=gallery_image" base="front" seoTitles="$image->author()->members_seo_name" seoTemplate="profile_content"}'>{lang="find_users_images"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canChangeAuthor()}}
|
|
<li><a href='{$image->url()->setQueryString( array( 'do' => 'changeAuthor' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="change_author"}" title='{lang="change_author_ititle"}'>{lang="change_author"}</a></li>
|
|
{{endif}}
|
|
{{endif}}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
{{if $image->description}}
|
|
<div class='ipsType_medium ipsType_richText ipsType_break ipsSpacer_both' data-controller="core.front.core.lightboxedImages">
|
|
{$image->description|raw}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if count( $image->tags() )}}
|
|
{template="tags" group="global" app="core" params="$image->tags()"}
|
|
<br>
|
|
{{endif}}
|
|
|
|
{{if $image->credit_info && $image->copyright}}
|
|
<div class='ipsGrid ipsGrid_collapsePhone'>
|
|
<div class='ipsGrid_span6'>
|
|
{{endif}}
|
|
|
|
{{if $image->credit_info}}
|
|
<h3 class='ipsType_minorHeading'>{lang="image_credit_info"}</h3>
|
|
<div class='ipsType_richText ipsType_medium'>
|
|
{$image->credit_info}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $image->credit_info && $image->copyright}}
|
|
</div>
|
|
<div class='ipsGrid_span6'>
|
|
{{endif}}
|
|
|
|
{{if $image->copyright}}
|
|
<h3 class='ipsType_minorHeading'>{lang="image_copyright"}</h3>
|
|
<div class='ipsType_richText'>
|
|
© {$image->copyright}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $image->credit_info && $image->copyright}}
|
|
</div>
|
|
</div>
|
|
{{endif}}
|
|
|
|
<hr class='ipsHr'>
|
|
|
|
{{if $image instanceof \IPS\Content\Reputation and settings.reputation_enabled}}
|
|
<div class='ipsPos_right ipsResponsive_noFloat'>
|
|
{template="reputation" app="core" group="global" params="$image"}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{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()}}
|
|
<a href='#elImageActions_menu' id='elImageActions' class='ipsButton ipsButton_light ipsButton_verySmall' data-ipsMenu>{lang="manage_image"} <i class='fa fa-caret-down'></i></a>
|
|
<ul id='elImageActions_menu' class='ipsMenu ipsMenu_auto ipsHide'>
|
|
{{if $image->canEdit()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->setQueryString( array( 'do' => 'edit' ) )}' title="{lang="gallery_edit_details_title"}">{lang="gallery_edit_details"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canFeature()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'feature' ) )}' title="{lang="feature_title_image"}">{lang="feature"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canUnfeature()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unfeature' ) )}' title="{lang="unfeature_title_image"}">{lang="unfeature"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canPin()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'pin' ) )}' title="{lang="pin_title_image"}">{lang="pin"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canUnpin()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unpin' ) )}' title="{lang="unpin_title_image"}">{lang="unpin"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canHide()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'hide' ) )}' title="{lang="hide_title_image"}" data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canUnhide()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}' title="{{if $image->hidden() === 1}}{lang="approve_title_image"}{{else}}{lang="unhide_title_image"}{{endif}}">{{if $image->hidden() === 1}}{lang="approve"}{{else}}{lang="unhide"}{{endif}}</a></li>
|
|
{{endif}}
|
|
{{if $image->canLock()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' title="{lang="lock_title_image"}">{lang="lock"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canUnlock()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unlock' ) )}' title="{lang="unlock_title_image"}">{lang="unlock"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canMove()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="move"}" title="{lang="gallery_move_title"}">{lang="move"}</a></li>
|
|
{{endif}}
|
|
{{if $image->canDelete()}}
|
|
<li class='ipsMenu_item'><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete' ) )}' data-confirm title="{lang="delete_title_image"}">{lang="delete"}</a></li>
|
|
{{endif}}
|
|
{{if \IPS\Member::loggedIn()->modPermission('can_view_moderation_log')}}
|
|
<li class='ipsMenu_sep'><hr></li>
|
|
<li class="ipsMenu_item"><a href='{$image->url()->csrf()->setQueryString( array( 'do' => 'modLog' ) )}' data-ipsDialog data-ipsDialog-title='{lang="moderation_history"}'>{lang="moderation_history"}</a></li>
|
|
{{endif}}
|
|
</ul>
|
|
{{endif}}
|
|
|
|
{{if !\IPS\Member::loggedIn()->group['gbw_no_report'] }}
|
|
<a href='{$image->url('report')}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="report_image"}" data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="report_submit_success"}" title="{lang="report_image"}">{lang="report_image"}</a>
|
|
{{endif}}
|
|
<div class='ipsResponsive_showPhone ipsResponsive_block ipsSpacer_both'>
|
|
{template="follow" app="core" group="global" params="'gallery', 'image', $image->id, $image->followers()->count( TRUE )"}
|
|
</div>
|
|
{{if count( $image->shareLinks() )}}
|
|
<div class='ipsSpacer_top'>
|
|
{template="sharelinks" app="core" group="global" params="$image"}
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
</div>
|
|
<div class='ipsColumn ipsColumn_wide' id='elGalleryImageStats'>
|
|
<div class='ipsBox ipsPad' data-role="imageStats">
|
|
{{if $image->container()->allow_rating}}
|
|
<div class='ipsType_center'>
|
|
{$image->rating()|raw}
|
|
</div>
|
|
<hr class='ipsHr'>
|
|
{{endif}}
|
|
|
|
{{if $image->gps_show}}
|
|
{$image->map( 240, 100 )|raw}
|
|
<div class='ipsType_small'>
|
|
{$image->loc_short}
|
|
{{if $image->canEdit() }}
|
|
<br><br>
|
|
<a href='#' id='elMapForm' data-ipsMenu data-ipsMenu-closeOnClick='false'>{lang="map_privacy"} <i class='fa fa-caret-down'></i></a>
|
|
<div class='ipsMenu ipsMenu_auto ipsHide ipsPad' id='elMapForm_menu'>
|
|
{$image->enableMapForm()|raw}
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
<hr class='ipsHr'>
|
|
{{elseif $image->canEdit() AND $image->gps_raw}}
|
|
<div class='ipsFaded'>
|
|
{$image->map( 240, 100 )|raw}
|
|
<div class='ipsType_small'>
|
|
{$image->loc_short}
|
|
</div>
|
|
</div>
|
|
{{if $image->canEdit() }}
|
|
<div class='ipsType_small ipsSpacer_top'>
|
|
<strong>{lang="map_not_being_shown"}</strong>
|
|
<a href='#' id='elMapForm' data-ipsMenu data-ipsMenu-closeOnClick='false'>{lang="map_privacy"} <i class='fa fa-caret-down'></i></a>
|
|
<div class='ipsMenu ipsMenu_auto ipsHide ipsPad' id='elMapForm_menu'>
|
|
{$image->enableMapForm()|raw}
|
|
</div>
|
|
</div>
|
|
{{endif}}
|
|
<hr class='ipsHr'>
|
|
{{endif}}
|
|
|
|
{{if $image->directContainer() instanceof \IPS\gallery\Album}}
|
|
<div>
|
|
<strong class='ipsType_minorHeading'>{lang="from_the_album"}</strong>
|
|
<br>
|
|
<h3 class='ipsType_sectionHead ipsType_break'><a href='{$image->directContainer()->url()}' class='ipsType_normal'>{$image->directContainer()->_title}</a></h3>
|
|
<ul class='ipsList_inline ipsType_medium'>
|
|
<li><i class='fa fa-camera'></i> <strong>{lang="num_images" pluralize="$image->directContainer()->count_imgs"}</strong></li>
|
|
<li><i class='fa fa-comments'></i> <strong>{lang="num_comments" pluralize="$image->directContainer()->count_comments"}</strong></li>
|
|
</ul>
|
|
</div>
|
|
<hr class='ipsHr'>
|
|
{{endif}}
|
|
|
|
{{if count($image->metadata)}}
|
|
<h2 class='ipsType_minorHeading'>{lang="gallery_metadata"}</h2>
|
|
<div class='cGalleryExif'>
|
|
{{if isset( $image->metadata['EXIF.FocalLength'] ) || ( isset( $image->metadata['IFD0.Make'] ) AND isset( $image->metadata['IFD0.Model'] ) ) || isset( $image->metadata['EXIF.ShutterSpeedValue'] ) || isset( $image->metadata['COMPUTED.ApertureFNumber'] ) || isset( $image->metadata['Exif.Photo.ISOSpeed'] )}}
|
|
<h3 class='ipsType_reset ipsType_small'>
|
|
{{if isset( $image->metadata['IFD0.Make'] ) AND isset( $image->metadata['IFD0.Model'] )}}
|
|
<strong>{lang="gallery_exif_camera"} {$image->metadata['IFD0.Make']} {$image->metadata['IFD0.Model']}</strong>
|
|
{{else}}
|
|
<strong>{lang="camera_information"}</strong>
|
|
{{endif}}
|
|
</h3>
|
|
<ul class='ipsList_inline cGalleryExif_data'>
|
|
{{if isset( $image->metadata['EXIF.FocalLength'] )}}
|
|
<li data-ipsTooltip title='{lang="EXIF.FocalLength"}'>
|
|
<span><i class='fa fa-arrows-h'></i></span>
|
|
{$image->focallength}
|
|
</li>
|
|
{{endif}}
|
|
{{if isset( $image->metadata['EXIF.ExposureTime'] )}}
|
|
<li data-ipsTooltip title='{lang="EXIF.ExposureTime"}'>
|
|
<span><i class='fa fa-clock-o'></i></span>
|
|
{$image->metadata['EXIF.ExposureTime']}
|
|
</li>
|
|
{{endif}}
|
|
{{if isset( $image->metadata['COMPUTED.ApertureFNumber'] )}}
|
|
<li data-ipsTooltip title='{lang="COMPUTED.ApertureFNumber"}'>
|
|
<span class='cGalleryExif_f'>f</span>
|
|
{$image->metadata['COMPUTED.ApertureFNumber']}
|
|
</li>
|
|
{{endif}}
|
|
{{if isset( $image->metadata['Exif.Photo.ISOSpeed'] ) || isset( $image->metadata['EXIF.ISOSpeedRatings'] )}}
|
|
<li data-ipsTooltip title='{lang="gallery_exif_isospeed"}'>
|
|
<span class='cGalleryExif_iso'>ISO</span>
|
|
{{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}}
|
|
</li>
|
|
{{endif}}
|
|
</ul>
|
|
<a href='{$image->url( 'metadata' )}' data-ipsDialog data-ipsDialog-title='{lang="view_all_photo_info"}'>{lang="view_all_photo_info"}</a>
|
|
{{else}}
|
|
<a href='{$image->url( 'metadata' )}' data-ipsDialog data-ipsDialog-title='{lang="view_all_photo_info"}'>{lang="view_photo_info"}</a>
|
|
{{endif}}
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="view" template_name="imageSizes" template_data="$image, $sizes" template_location="front" template_app="gallery"><![CDATA[
|
|
{template="pageHeader" group="global" app="core" params="sprintf( \IPS\Member::loggedIn()->language()->get('all_image_sizes'), $image->caption )"}
|
|
|
|
<p class='ipsType_reset ipsSpacer_bottom'>
|
|
<a href='{$image->url()}' title='{lang="back_to_image_page"}'><i class='fa fa-chevron-left'></i> {lang="back_to_image_page"}</a>
|
|
</p>
|
|
|
|
<ul class='ipsButton_split'>
|
|
<li><a href='{$image->url()->setQueryString( 'imageSize', 'thumb' )}' class='ipsButton {{if \IPS\Request::i()->imageSize == 'thumb'}}ipsButton_primary{{else}}ipsButton_light{{endif}} ipsButton_verySmall' title='{lang="size_thumb"}'>{lang="size_thumb"} <span class='ipsType_light ipsResponsive_hidePhone ipsResponsive_inline'>({$sizes['thumb'][0]}x{$sizes['thumb'][1]})</span></a></li>
|
|
<li><a href='{$image->url()->setQueryString( 'imageSize', 'small' )}' class='ipsButton {{if \IPS\Request::i()->imageSize == 'small'}}ipsButton_primary{{else}}ipsButton_light{{endif}} ipsButton_verySmall' title='{lang="size_small"}'>{lang="size_small"} <span class='ipsType_light ipsResponsive_hidePhone ipsResponsive_inline'>({$sizes['small'][0]}x{$sizes['small'][1]})</span></a></li>
|
|
<li><a href='{$image->url()->setQueryString( 'imageSize', 'medium' )}' class='ipsButton {{if \IPS\Request::i()->imageSize == 'medium' or !\IPS\Request::i()->imageSize}}ipsButton_primary{{else}}ipsButton_light{{endif}} ipsButton_verySmall' title='{lang="size_medium"}'>{lang="size_medium"} <span class='ipsType_light ipsResponsive_hidePhone ipsResponsive_inline'>({$sizes['medium'][0]}x{$sizes['medium'][1]})</span></a></li>
|
|
<li><a href='{$image->url()->setQueryString( 'imageSize', 'large' )}' class='ipsButton {{if \IPS\Request::i()->imageSize == 'large'}}ipsButton_primary{{else}}ipsButton_light{{endif}} ipsButton_verySmall' title='{lang="size_large"}'>{lang="size_large"} <span class='ipsType_light ipsResponsive_hidePhone ipsResponsive_inline'>({$sizes['large'][0]}x{$sizes['large'][1]})</span></a></li>
|
|
</ul>
|
|
|
|
<div id='elGalleryImage_sized'>
|
|
{{if \IPS\Request::i()->imageSize == 'medium' OR !\IPS\Request::i()->imageSize}}
|
|
<a href='{file="$image->masked_file_name" extension="gallery_Images"}'><img src='{file="$image->medium_file_name" extension="gallery_Images"}' alt='{$image->caption}' title='{$image->caption}'></a>
|
|
{{elseif \IPS\Request::i()->imageSize == 'large'}}
|
|
<a href='{file="$image->masked_file_name" extension="gallery_Images"}'><img src='{file="$image->masked_file_name" extension="gallery_Images"}' alt='{$image->caption}' title='{$image->caption}'></a>
|
|
{{elseif \IPS\Request::i()->imageSize == 'small'}}
|
|
<a href='{file="$image->masked_file_name" extension="gallery_Images"}'><img src='{file="$image->small_file_name" extension="gallery_Images"}' alt='{$image->caption}' title='{$image->caption}'></a>
|
|
{{elseif \IPS\Request::i()->imageSize == 'thumb'}}
|
|
<a href='{file="$image->masked_file_name" extension="gallery_Images"}'><img src='{file="$image->thumb_file_name" extension="gallery_Images"}' alt='{$image->caption}' title='{$image->caption}'></a>
|
|
{{endif}}
|
|
</div>
|
|
|
|
{{if $image->credit_info}}
|
|
<h3 class='ipsType_minorHeading'>{lang="image_credit_info"}</h3>
|
|
<div class='ipsType_richText ipsType_medium ipsSpacer_bottom'>
|
|
{$image->credit_info}
|
|
</div>
|
|
{{endif}}
|
|
|
|
{{if $image->copyright}}
|
|
<h3 class='ipsType_minorHeading'>{lang="image_copyright"}</h3>
|
|
<div class='ipsType_richText ipsSpacer_bottom'>
|
|
© {$image->copyright}
|
|
</div>
|
|
{{endif}}]]></template>
|
|
<template template_group="view" template_name="imageSlider" template_data="$image, $slider, $next=NULL, $prev=NULL, $hasNext=TRUE, $hasPrev=TRUE" template_location="front" template_app="gallery"><![CDATA[
|
|
<li class='ipsJS_show'><a href='#' data-action='prev' {{if !$hasPrev}}data-disabled='true'{{endif}}><i class='fa fa-angle-left'></i></a></li>
|
|
<li class='cGalleryAlbumSlider_wrapper'>
|
|
<ol class='ipsList_reset cGalleryAlbumSlider' data-role='collection'>
|
|
|
|
{{for $i=0, $j=count($slider['previous']); $i<3-$j; $i++}}
|
|
{template="imageThumbnail" group="view" params="FALSE"}
|
|
{{endfor}}
|
|
{{foreach array_reverse( $slider['previous'] ) as $idx => $previous}}
|
|
{template="imageThumbnail" group="view" params="$previous"}
|
|
{{endforeach}}
|
|
{template="imageThumbnail" group="view" params="$image, true"}
|
|
{{foreach $slider['next'] as $next}}
|
|
{template="imageThumbnail" group="view" params="$next"}
|
|
{{endforeach}}
|
|
{{for $i=0, $j=count($slider['next']); $i<3-$j; $i++}}
|
|
{template="imageThumbnail" group="view" params="FALSE"}
|
|
{{endfor}}
|
|
|
|
</ol>
|
|
</li>
|
|
<li class='ipsJS_show'><a href='#' data-action='next' {{if !$hasNext}}data-disabled='true'{{endif}}><i class='fa fa-angle-right'></i></a></li>]]></template>
|
|
<template template_group="view" template_name="imageThumbnail" template_data="$image, $highlight=FALSE, $json=FALSE" template_location="front" template_app="gallery"><![CDATA[{{if $image}}
|
|
{{if $image->medium_file_name}}
|
|
<li style='background-image: url( "{expression="str_replace( array( '(', ')' ), array( '\(', '\)' ), \IPS\File::get( 'gallery_Images', $image->thumb_file_name )->url )"}" );' class='cGalleryTrimmedImage {{if $highlight}}cGalleryAlbumSlider_active{{endif}}' data-imageID='{$image->id}'>
|
|
<a href='{$image->url()->setQueryString( 'browse', 1 )}' title='{$image->caption}'>
|
|
<img src='{file="$image->thumb_file_name" extension="gallery_Images"}' alt='{$image->caption}'>
|
|
</a>
|
|
</li>
|
|
{{else}}
|
|
<li class='ipsNoThumb ipsNoThumb_video ipsCursor_pointer' data-imageID='{$image->id}'>
|
|
<a href='{$image->url()->setQueryString( 'browse', 1 )}' title='{$image->caption}'></a>
|
|
</li>
|
|
{{endif}}
|
|
{{else}}
|
|
<li class='ipsAreaBackground'> </li>
|
|
{{endif}}]]></template>
|
|
<template template_group="view" template_name="metadata" template_data="$image" template_location="front" template_app="gallery"><![CDATA[{template="pageHeader" if="!\IPS\Request::i()->isAjax()" group="global" app="core" params="\IPS\Member::loggedIn()->language()->addToStack('gallery_metadata')"}
|
|
<div class='ipsPad'>
|
|
{{if count( $image->metadata )}}
|
|
<ol class='ipsDataList' itemscope itemtype="http://schema.org/ItemList">
|
|
<meta itemprop="itemListOrder" content="Descending">
|
|
{{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 AND ( !\IPS\Member::loggedIn()->language()->checkKeyExists( $key ) OR ( \IPS\Member::loggedIn()->language()->checkKeyExists( $key ) AND \IPS\Member::loggedIn()->language()->get( $key ) ) )}}
|
|
<li class='ipsDataItem ipsClearfix' itemprop="itemListElement">
|
|
<div class='ipsDataItem_generic ipsDataItem_size7'><strong class='ipsPos_right'>{lang="$key"}</strong></div>
|
|
<div class='ipsDataItem_main'>{{if \IPS\Member::loggedIn()->language()->checkKeyExists( $key . '_map_' . $value )}}{lang="{$key}_map_{$value}"}{{else}}{$value}{{endif}}</div>
|
|
</li>
|
|
{{endif}}
|
|
{{endforeach}}
|
|
</ol>
|
|
{{else}}
|
|
<p class='ipsType ipsType_light'>{lang="gallery_no_metadata"}</p>
|
|
{{endif}}
|
|
</div>]]></template>
|
|
<template template_group="view" template_name="rssContent" template_data="$image" template_location="front" template_app="gallery"><![CDATA[{$image->description|raw}
|
|
<p>
|
|
<a href='{$image->url()}' title='{$image->caption}'><img src='{file="$image->medium_file_name" extension="gallery_Images"}' title='{$image->caption}' alt='{$image->caption}'></a>
|
|
</p>]]></template>
|
|
<template template_group="widgets" template_name="galleryStats" template_data="$stats, $latestImage, $orientation='vertical'" template_location="front" template_app="gallery"><![CDATA[<h3 class='ipsType_reset ipsWidget_title'>{lang="block_galleryStats"}</h3>
|
|
<div class='ipsWidget_inner'>
|
|
{{if $orientation == 'vertical'}}
|
|
<div class='ipsPad_half'>
|
|
<ul class='ipsDataList' id='elGalleryStats'>
|
|
<li class='ipsDataItem'>
|
|
<div class='ipsDataItem_main ipsPos_middle'>
|
|
<strong>{lang="total_images_front_v" pluralize="$stats['totalImages']"}</strong>
|
|
</div>
|
|
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
|
<span class='ipsDataItem_stats_number'>{number="$stats['totalImages']"}</span>
|
|
</div>
|
|
</li>
|
|
{{if $stats['totalComments']}}
|
|
<li class='ipsDataItem'>
|
|
<div class='ipsDataItem_main ipsPos_middle'>
|
|
<strong>{lang="stats_total_comments_v" pluralize="$stats['totalComments']"}</strong>
|
|
</div>
|
|
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
|
<span class='ipsDataItem_stats_number'>{number="$stats['totalComments']"}</span>
|
|
</div>
|
|
</li>
|
|
{{endif}}
|
|
{{if $stats['totalAlbums']}}
|
|
<li class='ipsDataItem'>
|
|
<div class='ipsDataItem_main ipsPos_middle'>
|
|
<strong>{lang="total_albums_v" pluralize="$stats['totalAlbums']"}</strong>
|
|
</div>
|
|
<div class='ipsDataItem_stats ipsDataItem_statsLarge'>
|
|
<span class='ipsDataItem_stats_number'>{number="$stats['totalAlbums']"}</span>
|
|
</div>
|
|
</li>
|
|
{{endif}}
|
|
</ul>
|
|
{{if $latestImage}}
|
|
<hr class='ipsHr'>
|
|
{template="latestImage" group="widgets" app="gallery" params="$latestImage, $orientation"}
|
|
{{endif}}
|
|
</div>
|
|
{{else}}
|
|
{{$columns = 1;}}
|
|
{{$columns += ( $stats['totalComments'] ) ? 1 : 0;}}
|
|
{{$columns += ( $stats['totalAlbums'] ) ? 1 : 0;}}
|
|
{{$span = 12 / $columns;}}
|
|
<div class='ipsGrid ipsGrid_collapsePhone ipsWidget_stats'>
|
|
<div class='ipsGrid_span{$span} ipsType_center'>
|
|
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalImages']"}</span><br>
|
|
<span class='ipsType_light ipsType_medium'>{lang="total_images_front_h" pluralize="$stats['totalImages']"}</span>
|
|
</div>
|
|
{{if $stats['totalComments']}}
|
|
<div class='ipsGrid_span{$span} ipsType_center'>
|
|
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalComments']"}</span><br>
|
|
<span class='ipsType_light ipsType_medium'>{lang="stats_total_comments_h" pluralize="$stats['totalComments']"}</span>
|
|
</div>
|
|
{{endif}}
|
|
{{if $stats['totalAlbums']}}
|
|
<div class='ipsGrid_span{$span} ipsType_center'>
|
|
<span class='ipsType_large ipsWidget_statsCount'>{number="$stats['totalAlbums']"}</span><br>
|
|
<span class='ipsType_light ipsType_medium'>{lang="total_albums_h" pluralize="$stats['totalAlbums']"}</span>
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
{{endif}}
|
|
</div>]]></template>
|
|
<template template_group="widgets" template_name="imageFeed" template_data="$images, $title, $orientation='vertical'" template_location="front" template_app="gallery"><![CDATA[{{if !empty( $images ) }}
|
|
<h3 class='ipsType_reset ipsWidget_title'>{$title}</h3>
|
|
<div class='ipsWidget_inner'>
|
|
{{if $orientation == 'vertical'}}
|
|
<div class='ipsPad_half'>
|
|
<ul class='ipsList_reset cGalleryWidgetList'>
|
|
{{foreach $images as $image}}
|
|
{template="imageRow" group="widgets" app="gallery" params="$image, $orientation"}
|
|
{{endforeach}}
|
|
</ul>
|
|
</div>
|
|
{{else}}
|
|
<div class='ipsCarousel ipsClearfix' data-ipsCarousel data-ipsCarousel-slideshow data-ipsCarousel-showDots>
|
|
<ul class='cGalleryCarousel ipsGrid ipsGrid_collapsePhone' data-role="carouselItems">
|
|
{{foreach $images as $idx => $image}}
|
|
{template="imageRow" group="widgets" app="gallery" params="$image, $orientation"}
|
|
{{endforeach}}
|
|
</ul>
|
|
<span class='ipsCarousel_shadow ipsCarousel_shadowLeft'></span>
|
|
<span class='ipsCarousel_shadow ipsCarousel_shadowRight'></span>
|
|
<a href='#' class='ipsCarousel_nav ipsHide' data-action='prev'><i class='fa fa-chevron-left'></i></a>
|
|
<a href='#' class='ipsCarousel_nav ipsHide' data-action='next'><i class='fa fa-chevron-right'></i></a>
|
|
</div>
|
|
{{endif}}
|
|
</div>
|
|
{{endif}}]]></template>
|
|
<template template_group="widgets" template_name="imageRow" template_data="$image, $orientation='vertical'" template_location="front" template_app="gallery"><![CDATA[<li class='cGalleryWidget {{if $orientation == 'horizontal'}}ipsCarousel_item{{endif}}'>
|
|
<div class='ipsType_center'>
|
|
<a href='{$image->url()}' title='{lang="view_this_image" sprintf="$image->caption"}'>
|
|
{{if $image->medium_file_name}}
|
|
<img src='{file="$image->medium_file_name" extension="gallery_Images"}' alt='' class='ipsImage'>
|
|
{{else}}
|
|
<div class='ipsImage ipsNoThumb ipsNoThumb_video'> </div>
|
|
{{endif}}
|
|
</a>
|
|
</div>
|
|
<div>
|
|
{{if $image->directContainer()->allow_comments}}
|
|
<div class="ipsCommentCount ipsPos_right {{if $image->comments === 0}}ipsFaded{{endif}}" data-ipsTooltip title='{lang="num_comments" pluralize="$image->comments"}'>
|
|
{$image->comments}
|
|
</div>
|
|
{{endif}}
|
|
{{if $image->unread()}}<span class="ipsItemStatus ipsItemStatus_small"><i class="fa fa-circle"></i></span> <strong>{{endif}}<a href="{$image->url()}" title='{lang="view_this_image" sprintf="$image->caption"}' class='ipsType_break'>{wordbreak="$image->caption"}</a>{{if $image->unread()}}</strong>{{endif}}<br>
|
|
<span class='ipsType_light ipsType_small'>{lang="byline_nodate" htmlsprintf="$image->author()->link()"} · {datetime="$image->mapped('date')" norelative="true"}</span><br>
|
|
</div>
|
|
</li>]]></template>
|
|
<template template_group="widgets" template_name="latestImage" template_data="$latestImage, $orientation='vertical'" template_location="front" template_app="gallery"><![CDATA[<div id='elGalleryStatsLatest' class='ipsClearfix cGalleryWidget'>
|
|
<strong class='ipsType_minorHeading'>{lang="latest_image"}</strong><br>
|
|
<div class='ipsType_center'>
|
|
<a href='{$latestImage->url()}' title='{lang="view_this_image" sprintf="$latestImage->caption"}'>
|
|
{{if $latestImage->medium_file_name}}
|
|
<img src='{file="$latestImage->medium_file_name" extension="gallery_Images"}' alt='' class='ipsImage'>
|
|
{{else}}
|
|
<div class='ipsImage ipsNoThumb ipsNoThumb_video'> </div>
|
|
{{endif}}
|
|
</a>
|
|
</div>
|
|
<div>
|
|
{{if $latestImage->directContainer()->allow_comments}}
|
|
<div class="ipsCommentCount ipsPos_right {{if $latestImage->comments === 0}}ipsFaded{{endif}}" data-ipsTooltip title='{lang="num_comments" pluralize="$latestImage->comments"}'>
|
|
{$latestImage->comments}
|
|
</div>
|
|
{{endif}}
|
|
{{if $latestImage->unread()}}<span class="ipsItemStatus ipsItemStatus_small"><i class="fa fa-circle"></i></span> <strong>{{endif}}<a href="{$latestImage->url()}" title='{lang="view_this_image" sprintf="$latestImage->caption"}'>{wordbreak="$latestImage->caption"}</a>{{if $latestImage->unread()}}</strong>{{endif}}<br>
|
|
<span class='ipsType_light ipsType_small'>{lang="byline_nodate" htmlsprintf="$latestImage->author()->link()"} · {datetime="$latestImage->mapped('date')" norelative="true"}</span><br>
|
|
</div>
|
|
</div>]]></template>
|
|
<template template_group="widgets" template_name="recentComments" template_data="$comments" template_location="front" template_app="gallery"><![CDATA[{{if !empty( $comments ) }}
|
|
<h3 class='ipsType_reset ipsWidget_title'>{lang="block_recentComments"}</h3>
|
|
<div class='ipsPad_half ipsWidget_inner'>
|
|
<ul class='ipsDataList ipsDataList_reducedSpacing'>
|
|
{{foreach $comments as $comment}}
|
|
<li class='ipsDataItem'>
|
|
<div class='ipsDataItem_generic ipsDataItem_size1'>
|
|
{template="thumbImage" group="global" app="core" params="$comment->item()->thumb_file_name, $comment->item()->caption, 'tiny', '', 'view_this', '', 'gallery_Images'"}
|
|
</div>
|
|
<div class='ipsDataItem_main'>
|
|
<a href="{$comment->url()}" title='{lang="view_this_image" sprintf="$comment->item()->caption"}'>{wordbreak="$comment->item()->caption"}</a><br>
|
|
<span class='ipsType_light ipsType_medium'>{lang="byline_nodate" htmlsprintf="$comment->author()->link()"}</span><br>
|
|
<div class='ipsType_richText ipsType_medium' data-ipsTruncate data-ipsTruncate-type="remove" data-ipsTruncate-size="2 lines">
|
|
{$comment->mapped('content')|raw}
|
|
</div>
|
|
</div>
|
|
</li>
|
|
{{endforeach}}
|
|
</ul>
|
|
</div>
|
|
{{endif}}]]></template>
|
|
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="embed.css">.ipsEmbedded .cGalleryTrimmedImage {
|
|
background-color: #333;
|
|
background-size: cover;
|
|
background-position: 50%;
|
|
background-repeat: no-repeat;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.ipsEmbedded .cGalleryTrimmedImage img {
|
|
display: none;
|
|
}
|
|
|
|
.ipsEmbedded .cGalleryTrimmedImage a {
|
|
width: 120px;
|
|
height: 120px;
|
|
display: block;
|
|
}
|
|
|
|
.ipsEmbedded .cGallery_albumImages {
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.ipsEmbedded .cGallery_albumImage a {
|
|
width: 40px;
|
|
height: 40px;
|
|
border: 2px solid #fff;
|
|
}
|
|
|
|
.ipsEmbedded .cGallery_albumStats {
|
|
color: #fff;
|
|
font-weight: bold;
|
|
position: absolute;
|
|
bottom: 5px;
|
|
text-shadow: 0px 1px 0px rgba(0,0,0,0.5);
|
|
}
|
|
html[dir="ltr"] .ipsEmbedded .cGallery_albumStats {
|
|
right: 5px;
|
|
}
|
|
html[dir="rtl"] .ipsEmbedded .cGallery_albumStats {
|
|
left: 5px;
|
|
}</css>
|
|
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="gallery_responsive.css"><![CDATA[/* PHONES */
|
|
@media screen and (max-width: 767px) {
|
|
.ipsApp .cGalleryAlbums_recent {
|
|
padding: 0;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul {
|
|
height: 134px;
|
|
}
|
|
html[dir="ltr"] .cGalleryAlbums_recent > ul {
|
|
padding-left: 138px;
|
|
}
|
|
html[dir="rtl"] .cGalleryAlbums_recent > ul {
|
|
padding-right: 138px;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li:first-child,
|
|
.cGalleryAlbums_recent > ul > li:first-child a {
|
|
width: 134px;
|
|
height: 134px;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li,
|
|
.cGalleryAlbums_recent > ul > li a {
|
|
width: 65px;
|
|
height: 65px;
|
|
}
|
|
|
|
/* IMAGE VIEW */
|
|
#elGalleryHeader {
|
|
margin: -10px -10px 0 -10px;
|
|
}
|
|
|
|
.cGalleryAlbumSlider_wrapper {
|
|
width: 265px;
|
|
}
|
|
|
|
.cGalleryAlbumSlider li {
|
|
width: 38px;
|
|
height: 38px;
|
|
}
|
|
|
|
#elGalleryNav a[data-action] {
|
|
font-size: 30px;
|
|
position: relative;
|
|
top: -5px;
|
|
}
|
|
}]]></css>
|
|
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="gallery.css"><![CDATA[/* Gallery rework */
|
|
#elGalleryHeader {
|
|
margin: -15px -15px 15px -15px;
|
|
}
|
|
|
|
body.ipsLayout_sidebarUsed #elGalleryHeader {
|
|
margin-right: 0;
|
|
}
|
|
html[dir="rtl"] body.ipsLayout_sidebarUsed #elGalleryHeader {
|
|
margin-left: 0;
|
|
}
|
|
|
|
#elGalleryImage {
|
|
background: #333333;
|
|
min-height: 300px;
|
|
padding: 20px;
|
|
position: relative;
|
|
text-align: center;
|
|
}
|
|
|
|
#elGalleryNav {
|
|
padding: 10px;
|
|
background: #222;
|
|
min-height: 90px;
|
|
text-align: center;
|
|
color: #9f9f9f;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.cGalleryAlbumSlider_wrapper {
|
|
width: 350px;
|
|
overflow: hidden;
|
|
position: relative;
|
|
height: 50px;
|
|
}
|
|
|
|
.cGalleryAlbumSlider {
|
|
display: inline-block;
|
|
white-space: nowrap;
|
|
font-size: 0px !important;
|
|
position: absolute;
|
|
top: 0;
|
|
}
|
|
html[dir="ltr"] .cGalleryAlbumSlider {
|
|
left: 0;
|
|
}
|
|
html[dir="rtl"] .cGalleryAlbumSlider {
|
|
right: 0;
|
|
}
|
|
|
|
.cGalleryAlbumSlider .cGalleryTrimmedImage {
|
|
background-color: #222;
|
|
}
|
|
|
|
.cGalleryAlbumSlider li {
|
|
display: inline-block;
|
|
width: 50px;
|
|
height: 50px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.cGalleryAlbumSlider li {
|
|
border: 2px solid #222;
|
|
background-size: cover;
|
|
background-position: 50% 50%;
|
|
}
|
|
|
|
.cGalleryAlbumSlider li.cGalleryAlbumSlider_active {
|
|
border-color: #5490c0;
|
|
}
|
|
|
|
.cGalleryAlbumSlider li a {
|
|
display: block;
|
|
height: 100%;
|
|
}
|
|
|
|
html[dir="ltr"] .cGalleryAlbumSlider li:last-child {
|
|
margin-right: 0;
|
|
}
|
|
html[dir="rtl"] .cGalleryAlbumSlider li:last-child {
|
|
margin-left: 0;
|
|
}
|
|
|
|
#elGalleryNav > ul > li {
|
|
margin: 0;
|
|
}
|
|
|
|
#elGalleryNav a[data-action] {
|
|
width: 17px;
|
|
text-align: center;
|
|
line-height: 50px;
|
|
font-size: 28px;
|
|
color: #fff;
|
|
{prefix="transition" value="0.1s all linear"}
|
|
}
|
|
|
|
#elGalleryNav a[data-action][data-disabled] {
|
|
cursor: default;
|
|
opacity: 0.2;
|
|
}
|
|
|
|
.cGalleryAlbumSlider .ipsAreaBackground {
|
|
background: rgba(0,0,0,0.2);
|
|
}
|
|
|
|
.cGalleryMiniAlbum li {
|
|
position: relative;
|
|
}
|
|
|
|
.cGalleryMiniAlbum li a {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
}
|
|
|
|
#elGalleryImageStats [data-ipsRating] > .ipsRating {
|
|
float: none;
|
|
}
|
|
|
|
#elGalleryImageNav a {
|
|
position: absolute;
|
|
color: #fff;
|
|
font-size: 60px;
|
|
top: 50%;
|
|
margin-top: -30px;
|
|
padding: 0 15px;
|
|
}
|
|
|
|
html[dir="ltr"] #elGalleryImageNav_prev {
|
|
left: 0px;
|
|
}
|
|
html[dir="rtl"] #elGalleryImageNav_prev {
|
|
right: 0px;
|
|
}
|
|
|
|
html[dir="ltr"] #elGalleryImageNav_next {
|
|
right: 0px;
|
|
}
|
|
html[dir="rtl"] #elGalleryImageNav_next {
|
|
left: 0px;
|
|
}
|
|
|
|
/* PATCHWORK */
|
|
.cGalleryPatchwork_item {
|
|
display: block;
|
|
float: left;
|
|
background-size: cover;
|
|
background-color: #333;
|
|
position: relative;
|
|
overflow: hidden;
|
|
text-shadow: 1px 1px 0px rgba(0,0,0,0.8);
|
|
text-align: left;
|
|
}
|
|
html[dir="rtl"] .cGalleryPatchwork_item {
|
|
float: right;
|
|
text-align: right;
|
|
}
|
|
|
|
.cGalleryPatchwork_item > a {
|
|
position: absolute;
|
|
display: block;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
}
|
|
|
|
.cGalleryPatchwork_item [data-role='moderation'] {
|
|
position: absolute;
|
|
top: 5px;
|
|
}
|
|
html[dir="ltr"] .cGalleryPatchwork_item [data-role='moderation'] {
|
|
right: 5px;
|
|
}
|
|
html[dir="rtl"] .cGalleryPatchwork_item [data-role='moderation'] {
|
|
left: 5px;
|
|
}
|
|
|
|
.cGalleryPatchwork_item [data-commentCount='0'] {
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.cGalleryPatchwork_item.ipsNoThumb {
|
|
text-shadow: none;
|
|
}
|
|
|
|
.cGalleryPatchwork_image {
|
|
position: absolute;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
html[dir="ltr"] .cGalleryPatchwork_image {
|
|
left: 0;
|
|
}
|
|
html[dir="ltr"] .cGalleryPatchwork_image {
|
|
right: 0;
|
|
}
|
|
|
|
.cGalleryPatchwork_item .ipsPhotoPanel {
|
|
position: absolute;
|
|
background: rgba(0,0,0,0.8);
|
|
width: 100%;
|
|
top: 0;
|
|
line-height: 1.2;
|
|
height: 42px;
|
|
color: #fff;
|
|
opacity: 0;
|
|
{prefix="transition" value="opacity 0.1s linear"}
|
|
}
|
|
html[dir="ltr"] .cGalleryPatchwork_item .ipsPhotoPanel {
|
|
left: 0;
|
|
padding: 7px 0 0 7px;
|
|
}
|
|
html[dir="rtl"] .cGalleryPatchwork_item .ipsPhotoPanel {
|
|
right: 0;
|
|
padding: 7px 7px 0 0;
|
|
}
|
|
|
|
.cGalleryPatchwork_item .ipsPhotoPanel span {
|
|
line-height: inherit;
|
|
display: block;
|
|
width: 100%;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.cGalleryPatchwork_item .ipsPhotoPanel span + span {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.cGalleryPatchwork_item:hover .ipsPhotoPanel {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Image list patchwork */
|
|
.cGalleryPatchwork_list .cGalleryPatchwork_stats {
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
font-size: 13px;
|
|
color: #fff;
|
|
padding: 7px;
|
|
background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%);
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.6)));
|
|
background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
background: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
background: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
}
|
|
|
|
/* Featured/New patchwork */
|
|
.cGalleryPatchwork_index {
|
|
padding-top: 3px;
|
|
padding-bottom: 3px;
|
|
}
|
|
|
|
.cGalleryPatchwork_index .cGalleryPatchwork_item .cGalleryPatchwork_comments {
|
|
position: absolute;
|
|
bottom: 7px;
|
|
color: #fff;
|
|
font-size: 12px;
|
|
}
|
|
html[dir="ltr"] .cGalleryPatchwork_index .cGalleryPatchwork_item .cGalleryPatchwork_comments {
|
|
right: 7px;
|
|
}
|
|
html[dir="rtl"] .cGalleryPatchwork_index .cGalleryPatchwork_item .cGalleryPatchwork_comments {
|
|
left: 7px;
|
|
}
|
|
|
|
/* CATEGORIES */
|
|
.cGalleryCats {
|
|
padding: 7px;
|
|
}
|
|
|
|
.cGalleryCats > .ipsGrid {
|
|
margin-bottom: -15px;
|
|
}
|
|
|
|
.cGalleryCat > a {
|
|
display: block;
|
|
height: 150px;
|
|
position: relative;
|
|
color: #fff;
|
|
}
|
|
|
|
.cGalleryCat > a:before {
|
|
content: '';
|
|
display: block;
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 53px;
|
|
background: rgba(0,0,0,0.8);
|
|
}
|
|
|
|
.cGalleryCat .ipsType_sectionHead,
|
|
.cGalleryCat .cGalleryCat_info {
|
|
position: absolute;
|
|
left: 7px;
|
|
right: 7px;
|
|
text-shadow: 1px 1px 1px rgba(0,0,0,1);
|
|
}
|
|
|
|
.cGalleryCat .ipsType_sectionHead {
|
|
bottom: 23px;
|
|
color: #fff;
|
|
font-size: 15px;
|
|
}
|
|
|
|
.cGalleryCat .cGalleryCat_info {
|
|
bottom: 7px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
/* ALBUM LIST IN A CATEGORY */
|
|
.cGalleryAlbums > li:not( :last-child ) {
|
|
margin-bottom: 7px;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul {
|
|
height: 204px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
html[dir="ltr"] .cGalleryAlbums_recent > ul {
|
|
padding-left: 208px;
|
|
}
|
|
html[dir="rtl"] .cGalleryAlbums_recent > ul {
|
|
padding-right: 208px;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li {
|
|
width: 100px;
|
|
height: 100px;
|
|
float: left;
|
|
position: relative;
|
|
margin: 0 0 4px 4px;
|
|
}
|
|
html[dir="rtl"] .cGalleryAlbums_recent > ul > li {
|
|
float: right;
|
|
margin: 0 4px 4px 0;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li a {
|
|
display: block;
|
|
width: 100px;
|
|
height: 100px;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li span {
|
|
padding-right: 7px;
|
|
text-align: right;
|
|
font-size: 11px;
|
|
font-weight: bold;
|
|
color: #fff;
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
line-height: 26px;
|
|
text-shadow: 1px 1px 0px rgba(0,0,0,0.8);
|
|
background-image: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%);
|
|
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0.6)));
|
|
background-image: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
background-image: -o-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
background-image: -ms-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
background-image: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.6) 100%);
|
|
}
|
|
html[dir="rtl"] .cGalleryAlbums_recent > ul > li span {
|
|
text-align: left;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li img {
|
|
display: none;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li:first-child {
|
|
width: 204px;
|
|
height: 204px;
|
|
overflow: hidden;
|
|
position: absolute;
|
|
}
|
|
html[dir="ltr"] .cGalleryAlbums_recent > ul > li:first-child {
|
|
left: 0;
|
|
}
|
|
html[dir="rtl"] .cGalleryAlbums_recent > ul > li:first-child {
|
|
right: 0;
|
|
}
|
|
|
|
.cGalleryAlbums_recent > ul > li:first-child a {
|
|
width: 204px;
|
|
height: 204px;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
.cGalleryImageList > li {
|
|
padding: 7px;
|
|
border: 1px solid rgba(0,0,0,0.05);
|
|
}
|
|
|
|
.cGalleryImageList > li > div {
|
|
width: 100%;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
/* For non-js, we need a fixed height because the JS won't be handling it */
|
|
.ipsJS_none .cGalleryImageList > li > div {
|
|
height: 180px;
|
|
}
|
|
|
|
.cGalleryImageList > li > div + ul {
|
|
height: 26px;
|
|
line-height: 24px;
|
|
}
|
|
|
|
.cGalleryImageItem.cGalleryImageItem_selected {
|
|
background-color: {theme="selected"};
|
|
}
|
|
|
|
.cGalleryImageItem_image {
|
|
display: block;
|
|
position: relative;
|
|
max-width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.cGalleryLargeList > li {
|
|
margin-bottom: 15px;
|
|
border: 1px solid rgba(0,0,0,0.05);
|
|
}
|
|
|
|
.cGalleryLargeList > li img {
|
|
display: block;
|
|
margin: 0 auto 10px auto;
|
|
}
|
|
|
|
/* IMAGE VIEW PAGE */
|
|
.cGalleryViewImage {
|
|
/* Needed for FF & IE */
|
|
display: inline-block;
|
|
/*table-layout: fixed;
|
|
width: 100%;
|
|
min-height: 100%;*/
|
|
/* -- */
|
|
position: relative;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.cGalleryViewImage_controls {
|
|
position: absolute;
|
|
top: 15px;
|
|
opacity: 0;
|
|
{prefix="transition" value="0.3s all linear"}
|
|
}
|
|
html[dir="ltr"] .cGalleryViewImage_controls {
|
|
right: 15px;
|
|
}
|
|
html[dir="rtl"] .cGalleryViewImage_controls {
|
|
left: 15px;
|
|
}
|
|
|
|
#elGalleryImage:hover .cGalleryViewImage_controls {
|
|
opacity: 1;
|
|
}
|
|
|
|
.cGalleryViewImage_options {
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.cGalleryExif .fa-camera {
|
|
font-size: 42px;
|
|
line-height: 58px;
|
|
}
|
|
|
|
.cGalleryExif_data {
|
|
margin: 5px 0;
|
|
}
|
|
|
|
.cGalleryExif_data li {
|
|
border: 2px solid #5d5d5d;
|
|
border-radius: 5px;
|
|
line-height: 20px;
|
|
height: 24px;
|
|
font-size: 12px;
|
|
font-weight: bold;
|
|
margin: 4px 2px;
|
|
}
|
|
html[dir="ltr"] .cGalleryExif_data li {
|
|
padding-right: 6px;
|
|
}
|
|
html[dir="rtl"] .cGalleryExif_data li {
|
|
padding-left: 6px;
|
|
}
|
|
|
|
.cGalleryExif_data li span {
|
|
background: #5d5d5d;
|
|
color: #fff;
|
|
width: 30px;
|
|
font-size: 15px;
|
|
display: inline-block;
|
|
text-align: center;
|
|
}
|
|
html[dir="ltr"] .cGalleryExif_data li span {
|
|
float: left;
|
|
padding: 0 8px 0 6px;
|
|
margin-right: 6px;
|
|
}
|
|
html[dir="rtl"] .cGalleryExif_data li span {
|
|
float: right;
|
|
padding: 0 6px 0 8px;
|
|
margin-left: 6px;
|
|
}
|
|
|
|
.cGalleryExif .cGalleryExif_f {
|
|
font-family: 'Palatino', 'Times New Roman';
|
|
font-style: italic;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.cGalleryExif .cGalleryExif_iso {
|
|
font-size: 11px;
|
|
padding: 0;
|
|
}
|
|
|
|
/* IMAGE SIZES */
|
|
#elGalleryImage_sized {
|
|
margin: 15px 0;
|
|
background: #333333;
|
|
padding: 15px;
|
|
text-align: center;
|
|
}
|
|
|
|
/* 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;
|
|
}
|
|
|
|
.cGalleryNote_editing .cGalleryNote_note ul {
|
|
text-align: left;
|
|
margin-top: 5px;
|
|
}
|
|
html[dir="rtl"] .cGalleryNote_editing .cGalleryNote_note ul {
|
|
text-align: right;
|
|
}
|
|
|
|
.cGalleryNote_editing .cGalleryNote_note a {
|
|
color: #fff;
|
|
}
|
|
|
|
.cGalleryNote_editing .cGalleryNote_note textarea {
|
|
font-size: 11px;
|
|
color: #000;
|
|
}
|
|
|
|
.cGalleryNote_note {
|
|
max-width: 200px;
|
|
padding: 4px 10px;
|
|
position: absolute;
|
|
top: 100%;
|
|
margin-top: 5px;
|
|
background: #2a2a2a;
|
|
color: #fff;
|
|
font-size: 12px;
|
|
border-radius: 2px;
|
|
pointer-events: none;
|
|
}
|
|
html[dir="ltr"] .cGalleryNote_note {
|
|
left: 0px;
|
|
}
|
|
html[dir="rtl"] .cGalleryNote_note {
|
|
right: 0px;
|
|
}
|
|
|
|
.cGalleryNote_delete {
|
|
position: absolute;
|
|
top: -10px;
|
|
width: 24px;
|
|
height: 24px;
|
|
line-height: 19px;
|
|
border-radius: 12px;
|
|
background: #000;
|
|
border: 1px solid #fff;
|
|
color: #fff;
|
|
font-size: 17px;
|
|
}
|
|
html[dir="ltr"] .cGalleryNote_delete {
|
|
right: -10px;
|
|
}
|
|
html[dir="rtl"] .cGalleryNote_delete {
|
|
left: -10px;
|
|
}
|
|
|
|
/* 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;}
|
|
|
|
/* General style which creates the square thumb container */
|
|
.cGalleryTrimmedImage {
|
|
background-color: #333;
|
|
background-size: cover;
|
|
background-position: 50%;
|
|
background-repeat: no-repeat;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.cGalleryTrimmedImage img {
|
|
display: none;
|
|
}
|
|
|
|
.cGalleryThumb {
|
|
max-width: 170px;
|
|
max-height: 170px;
|
|
}
|
|
|
|
/* This is to make the video responsive in size
|
|
See: http://3strandsmarketing.com/video-fluid-2.php */
|
|
.cGallery_videoContainer {
|
|
position: relative;
|
|
height: 100%;
|
|
}
|
|
|
|
.cGallery_videoContainer .video-js {
|
|
position: absolute;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
html[dir="ltr"] .cGallery_videoContainer .video-js {
|
|
left: 0;
|
|
}
|
|
html[dir="rtl"] .cGallery_videoContainer .video-js {
|
|
right: 0;
|
|
}]]></css>
|
|
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="profile.css"><![CDATA[/* Styles used to display albums in profiles */
|
|
|
|
.cProfileAlbum {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/*.cProfileAlbum:before, .cProfileAlbum:after {
|
|
display: inline-block;
|
|
content: '';
|
|
width: 90%;
|
|
height: 90%;
|
|
position: absolute;
|
|
background: #bbbbbb;
|
|
z-index: -1;
|
|
top: 0;
|
|
left: 5%;
|
|
}
|
|
|
|
.cProfileAlbum:before {
|
|
background: #dbdbdb;
|
|
{prefix="transform" value="rotate(-3deg)"}
|
|
}
|
|
|
|
.cProfileAlbum:after {
|
|
background: #ababab;
|
|
{prefix="transform" value="rotate(4deg)"}
|
|
}*/
|
|
|
|
.cProfileAlbum > div {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0 auto;
|
|
border: 1px solid rgba(0,0,0,0.05);
|
|
}
|
|
|
|
.cProfileAlbum_image {
|
|
display: block;
|
|
position: relative;
|
|
max-width: 100%;
|
|
height: 100%;
|
|
background-color: #333;
|
|
background-size: cover;
|
|
background-position: 50%;
|
|
background-repeat: no-repeat;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.cProfileAlbum_image img {
|
|
display: none;
|
|
}
|
|
|
|
.cProfileAlbum .ipsType_sectionHead {
|
|
font-size: 14px;
|
|
text-align: left;
|
|
display: block;
|
|
padding: 7px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
top: 0px;
|
|
background: rgba(0,0,0,0.5);
|
|
color: #fff;
|
|
}
|
|
]]></css>
|
|
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="submit.css"><![CDATA[#elGallerySubmit_uploader .ipsAttachment_dropZone {
|
|
background: #fff;
|
|
border: 3px dashed rgba(0,0,0,0.1);
|
|
}
|
|
|
|
.cGallerySubmit [data-role='albumChosen'] {
|
|
padding: 5px 0;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.cGallerySubmit [data-role="editForm"] .ipsNoThumb {
|
|
width: 100%;
|
|
}
|
|
|
|
.cGallerySubmitStrip .ipsCarousel_item {
|
|
position: relative;
|
|
}
|
|
|
|
.cGallerySubmitStrip .cGalleryTrimmedImage a, .cGallerySubmitStrip .cGalleryMovieThumb {
|
|
width: 90px;
|
|
height: 90px;
|
|
display: block;
|
|
}
|
|
|
|
.cGallerySubmitStrip .ipsCarousel_item:not( .cGallerySubmit_current ) {
|
|
border: 5px solid transparent;
|
|
}
|
|
|
|
html[dir="ltr"] .cGallerySubmitStrip .ipsCarousel:not( [data-ipsCarousel-fullSizeItems] ) .ipsCarousel_item {
|
|
margin-right: 5px;
|
|
}
|
|
html[dir="rtl"] .cGallerySubmitStrip .ipsCarousel:not( [data-ipsCarousel-fullSizeItems] ) .ipsCarousel_item {
|
|
margin-left: 5px;
|
|
}
|
|
|
|
.cGallerySubmit_current {
|
|
border: 5px solid #5490c0;
|
|
}
|
|
|
|
.cGallerySubmit_done > div {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.cGallerySubmit_done:after {
|
|
display: block;
|
|
content: "\f00c";
|
|
font-family: "FontAwesome";
|
|
border: 1px solid rgba(255,255,255,0.6);
|
|
text-align: center;
|
|
line-height: 20px;
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 20px;
|
|
color: #fff;
|
|
position: absolute;
|
|
bottom: 5px;
|
|
box-shadow: 0px 1px 0px rgba(0,0,0,0.6);
|
|
background: #36a546;
|
|
}
|
|
html[dir="ltr"] .cGallerySubmit_done:after {
|
|
right: 5px;
|
|
}
|
|
html[dir="rtl"] .cGallerySubmit_done:after {
|
|
left: 5px;
|
|
}
|
|
|
|
.cGallerySubmit_excess > div {
|
|
opacity: 0.4;
|
|
}
|
|
|
|
.cGallerySubmit_excess:before {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
line-height: 90px;
|
|
text-align: center;
|
|
font-size: 60px;
|
|
content: "\f00d";
|
|
font-family: 'FontAwesome';
|
|
color: #333;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.cGallerySubmit_stepBlock .ipsType_pageTitle,
|
|
.cGallerySubmit_stepBlock p {
|
|
margin: 0 0 0 10px;
|
|
}
|
|
html[dir="rtl"] .cGallerySubmit_stepBlock .ipsType_pageTitle,
|
|
html[dir="rtl"] .cGallerySubmit_stepBlock p {
|
|
margin: 0 10px 0 0;
|
|
}
|
|
|
|
.cGallerySubmit_step {
|
|
display: block;
|
|
width: 50px;
|
|
height: 50px;
|
|
text-align: center;
|
|
line-height: 50px;
|
|
font-size: 26px;
|
|
color: #fff;
|
|
border-radius: 50px;
|
|
background: {theme="step_background"};
|
|
}
|
|
html[dir="ltr"] .cGallerySubmit_step {
|
|
margin-right: 10px;
|
|
}
|
|
html[dir="rtl"] .cGallerySubmit_step {
|
|
margin-left: 10px;
|
|
}
|
|
|
|
.cGallerySubmit_albumImage {
|
|
width: 75px;
|
|
height: 75px;
|
|
}
|
|
|
|
.cGallerySubmit_finished {
|
|
width: 400px;
|
|
margin: 0 auto;
|
|
}]]></css>
|
|
<css css_location="front" css_app="gallery" css_attributes="" css_path="." css_name="widgets.css"><![CDATA[.cGalleryWidget {
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.cGalleryWidget > div:first-child {
|
|
margin-bottom: 5px;
|
|
background: #fff;
|
|
}
|
|
|
|
.ipsWidget.ipsWidget_vertical .cGalleryWidget .ipsImage {
|
|
max-height: 175px;
|
|
}
|
|
|
|
.ipsWidget.ipsWidget_horizontal .cGalleryWidget .ipsImage {
|
|
max-height: 145px;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.cGalleryWidget .ipsNoThumb {
|
|
width: 100%;
|
|
}
|
|
|
|
.cGalleryWidgetList > li {
|
|
border-bottom: 1px solid #ebebeb;
|
|
padding-bottom: 10px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.cGalleryWidgetList > li:last-child {
|
|
padding-bottom: 0;
|
|
margin-bottom: 0;
|
|
border: 0;
|
|
}]]></css>
|
|
</theme>
|