2117 lines
54 KiB
PHP
2117 lines
54 KiB
PHP
<?php
|
|
namespace IPS\Theme;
|
|
class class_gallery_front_submit extends \IPS\Theme\Template
|
|
{ function categorySelector( $form ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( !\IPS\Widget\Request::i()->isAjax() ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->pageHeader( \IPS\Member::loggedIn()->language()->addToStack('choose_category') );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div class='i-padding_3'>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$form}
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\Widget\Request::i()->isAjax() ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function chooseAlbum( $category, $createAlbumForm, $canCreateAlbum, $maximumAlbums, $existingAlbumForm ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
<div class='cGalleryChooseAlbum_wrap' data-controller='gallery.front.submit.chooseCategory'>
|
|
<div data-role='chooseAlbumType' class='cGalleryChooseAlbum_list'>
|
|
<ul>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $category->allow_albums != 2 ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<a href='#' class='cGalleryChooseAlbum_listItem' data-type='category'>
|
|
<h2 class='ipsTitle ipsTitle--h3'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'use_no_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h2>
|
|
<p class='i-color_soft'>
|
|
IPSCONTENT;
|
|
|
|
$sprintf = array($category->_title); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_directly_to', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
|
$return .= <<<IPSCONTENT
|
|
</p>
|
|
</a>
|
|
<form action="
|
|
IPSCONTENT;
|
|
|
|
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=gallery&module=gallery&controller=submit&category={$category->_id}&noAlbum=1", null, "gallery_submit", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
|
|
$return .= <<<IPSCONTENT
|
|
" class='ipsHide'>
|
|
<button type="submit" class="ipsButton ipsButton--primary">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'use_no_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-right'></i></button>
|
|
</form>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<a href='#' class='cGalleryChooseAlbum_listItem' data-type='createAlbum'
|
|
IPSCONTENT;
|
|
|
|
if ( !$canCreateAlbum || !$createAlbumForm ):
|
|
$return .= <<<IPSCONTENT
|
|
data-disabled
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
>
|
|
<h2 class='ipsTitle ipsTitle--h3'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_new_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h2>
|
|
<p class='i-color_soft'>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $createAlbumForm ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_new_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
elseif ( !$canCreateAlbum ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cannot_create_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$sprintf = array($maximumAlbums); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'used_max_albums', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</p>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href='#' class='cGalleryChooseAlbum_listItem' data-type='existingAlbum'
|
|
IPSCONTENT;
|
|
|
|
if ( !$existingAlbumForm ):
|
|
$return .= <<<IPSCONTENT
|
|
data-disabled
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
>
|
|
<h2 class='ipsTitle ipsTitle--h3'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'choose_existing_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h2>
|
|
<p class='i-color_soft'>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $existingAlbumForm ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'choose_existing_album_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_existing_albums', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</p>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $createAlbumForm ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div data-role='createAlbumForm' hidden>
|
|
{$createAlbumForm}
|
|
</div>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $existingAlbumForm ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div data-role='existingAlbumForm' hidden>
|
|
{$existingAlbumForm}
|
|
</div>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function chooseCategory( $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar=NULL, $form=NULL ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div data-controller='gallery.front.submit.chooseCategory' data-preselected-album="
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Widget\Request::i()->album, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" class='cGallerySubmit_chooseCategory'>
|
|
<form accept-charset='utf-8' class="ipsForm
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $class, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
ipsForm--choose-category" action="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" method="post"
|
|
IPSCONTENT;
|
|
|
|
if ( $uploadField ):
|
|
$return .= <<<IPSCONTENT
|
|
enctype="multipart/form-data"
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $attributes as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
"
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
data-ipsForm data-role='categoryForm'>
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
_submitted" value="1">
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $hiddenValues as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_array($v) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $v as $_k => $_v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
[
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $_k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
]" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $_v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div class='cGallerySubmit_albumChoice'>
|
|
{$elements['']['image_category']->html()}
|
|
</div>
|
|
<div class="i-padding_3 i-border-top_3 i-text-align_center ipsJS_hide" data-role="continueCategory">
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $actionButtons as $button ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$button}
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
</form>
|
|
</div>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function container( $container ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $container['album'] ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$sprintf = array($container['album']->_title); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_submit_prefix_album', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$sprintf = array($container['category']->_title); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_submit_prefix_cat', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function createAlbum( $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar=NULL, $form=NULL ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$dropdownFields = [ 'set_album_owner', 'album_type', 'album_sort_options', 'album_sort_options', 'album_allow_comments', 'album_allow_reviews', 'album_use_comments', 'album_use_reviews', 'album_type', 'album_allowed_access', 'album_submit_type', 'album_submit_access_members', 'album_submit_access_groups', 'set_album_owner', 'album_owner' ];
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<form accept-charset='utf-8' class="ipsFormWrap ipsFormWrap--create-album" action="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" method="post"
|
|
IPSCONTENT;
|
|
|
|
if ( $uploadField ):
|
|
$return .= <<<IPSCONTENT
|
|
enctype="multipart/form-data"
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $attributes as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
"
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
data-ipsForm>
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
_submitted" value="1">
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $hiddenValues as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_array($v) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $v as $_k => $_v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
[
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $_k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
]" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $_v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $uploadField ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="MAX_FILE_SIZE" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $uploadField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
<input type="hidden" name="plupload" value="
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( md5( mt_rand() ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<ul class='cGalleryDialog_formPanel'>
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $elements as $collection ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $collection as $inputName => $input ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( !\in_array( $inputName, $dropdownFields ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_object( $input ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$input->rowHtml($form)}
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$input}
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li class='ipsFieldRow' id='elAlbumExtrasRow'>
|
|
<ul class='ipsButtons ipsButtons--fill'>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( isset( $elements['']['set_album_owner'] ) && \count( $elements['']['set_album_owner']->options['options'] ) > 1 ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<button type="button" id="elAlbumCreate_owner" popovertarget="elAlbumCreate_owner_menu" class="ipsButton ipsButton--inherit ipsButton--small"><i class="fa-solid fa-user"></i>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'album_create_owner', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elAlbumCreate_owner_menu">
|
|
<div class="iDropdown">
|
|
<ul class='ipsForm
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $class, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
ipsForm--vertical ipsForm--album-owner'>
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( array( 'set_album_owner', 'album_owner' ) as $inputName ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( isset( $elements[''][ $inputName ] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$elements[''][ $inputName ]->rowHtml()}
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</ul>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( ( isset( $elements['']['album_type'] ) && \count( $elements['']['album_type']->options['options'] ) > 1 ) OR ( isset( $elements['']['album_submit_type'] ) && \count( $elements['']['album_submit_type']->options['options'] ) > 1 ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<button type="button" id="elAlbumCreate_privacy" popovertarget="elAlbumCreate_privacy_menu" class="ipsButton ipsButton--inherit ipsButton--small"><i class="fa-solid fa-lock"></i>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'album_create_privacy', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elAlbumCreate_privacy_menu">
|
|
<div class="iDropdown">
|
|
<ul class='ipsForm
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $class, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
ipsForm--vertical ipsForm--album-privacy'>
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( array( 'album_type', 'album_allowed_access', 'album_submit_type', 'album_submit_access_members', 'album_submit_access_groups' ) as $inputName ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( isset( $elements[''][ $inputName ] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_object( $elements[''][ $inputName ] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$elements[''][ $inputName ]->rowHtml($form)}
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$elements[''][ $inputName ]}
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</ul>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( isset( $elements['']['album_sort_options'] ) || isset( $elements['']['album_allow_comments'] ) || isset( $elements['']['album_allow_reviews'] ) || isset( $elements['']['album_use_comments'] ) || isset( $elements['']['album_use_reviews'] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<button type="button" id="elAlbumCreate_features" popovertarget="elAlbumCreate_features_menu" class="ipsButton ipsButton--inherit ipsButton--small"><i class="fa-solid fa-comments"></i>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'album_create_features', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elAlbumCreate_features_menu">
|
|
<div class="iDropdown">
|
|
<ul class='ipsForm
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $class, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
ipsForm--vertical ipsForm--album-features'>
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( array( 'album_sort_options', 'album_allow_comments', 'album_allow_reviews', 'album_use_comments', 'album_use_reviews' ) as $inputName ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( isset( $elements[''][ $inputName ] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_object( $elements[''][ $inputName ] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$elements[''][ $inputName ]->rowHtml($form)}
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$elements[''][ $inputName ]}
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</ul>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class='ipsSubmitRow cGalleryDialog_submitBar'>
|
|
<button type='submit' class='ipsButton ipsButton--primary'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</form>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function existingAlbumForm( $category, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar=NULL, $form=NULL ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$existingAlbums = \IPS\gallery\Album::loadForSubmit( $category );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
<form accept-charset='utf-8' class="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $class, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" action="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" method="post"
|
|
IPSCONTENT;
|
|
|
|
if ( $uploadField ):
|
|
$return .= <<<IPSCONTENT
|
|
enctype="multipart/form-data"
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $attributes as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
"
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
data-ipsForm data-ipsFormSubmit data-controller='gallery.front.submit.existingAlbums'>
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
_submitted" value="1">
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $hiddenValues as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_array($v) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $v as $_k => $_v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
[
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $_k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
]" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $_v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<ul id='elGallerySubmit_albumChooser' class='ipsScrollbar'>
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $elements['']['existing_album']->options['options'] as $optionID => $option ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$album = $existingAlbums[ $optionID ];
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<input id="existing_album_
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $optionID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" type='radio' name='existing_album' value='
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $optionID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
'
|
|
IPSCONTENT;
|
|
|
|
if ( $optionID == $elements['']['existing_album']->value ):
|
|
$return .= <<<IPSCONTENT
|
|
checked
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
>
|
|
<div class='i-flex i-gap_2'>
|
|
<span class="ipsThumb i-flex_00 i-basis_40
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\Member::loggedIn()->group['g_img_album_limit'] && $album->count_imgs >= \IPS\Member::loggedIn()->group['g_img_album_limit'] ):
|
|
$return .= <<<IPSCONTENT
|
|
i-opacity_4
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $album->coverPhoto('small') ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<img src='
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $album->coverPhoto( 'small' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
' alt="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $album->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" loading="lazy">
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</span>
|
|
<div class='i-flex_11 cGallerySubmit_albumInfo'>
|
|
<p><strong class="i-font-size_2">
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $album->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
</strong></p>
|
|
<ul class='ipsList ipsList--inline i-color_soft'>
|
|
<li>
|
|
IPSCONTENT;
|
|
|
|
$pluralize = array( $album->count_imgs ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_images', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
|
|
$return .= <<<IPSCONTENT
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\Member::loggedIn()->group['g_img_album_limit'] ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $album->count_imgs >= \IPS\Member::loggedIn()->group['g_img_album_limit'] ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'album_full_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$pluralize = array( ( \IPS\Member::loggedIn()->group['g_img_album_limit'] - $album->count_imgs ) ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'x_more_images_album', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</ul>
|
|
</div>
|
|
<label for="existing_album_
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $optionID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
"><span class="ipsInvisible">
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $album->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
</span></label>
|
|
</div>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</ul>
|
|
<div class='ipsSubmitRow cGalleryDialog_submitBar'>
|
|
<button type='submit' class='ipsButton ipsButton--primary'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'choose_selected_album', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</form>
|
|
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function postingInformation( $guestPostBeforeRegister, $modQueued, $continueUrl, $guestEmailError=NULL ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div class='i-text-align_center i-padding_3'>
|
|
<form accept-charset='utf-8' class="ipsForm" action="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $continueUrl, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" method="post" data-ipsForm>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( !\IPS\Member::loggedIn()->member_id ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<h2 class='ipsTitle ipsTitle--h3'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_guest_post_normal_header', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h2>
|
|
<p class='i-font-size_2 i-margin-top_3'>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $guestPostBeforeRegister ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_guest_post_pbr_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<br>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'guest_post_sign_in', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</p>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $modQueued ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<p class='i-color_warning i-margin-top_3'>
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_guest_post_mod_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</p>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $guestPostBeforeRegister ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="guest_email_submit" value="1">
|
|
<input type="email" name="guest_email" value="" placeholder="
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'guest_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
" class="ipsInput ipsInput--text i-margin-top_3" required autocomplete="email">
|
|
<br><span class="i-color_soft">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'guest_email_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</span>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $guestEmailError ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<p class="i-color_warning">
|
|
IPSCONTENT;
|
|
|
|
$val = "{$guestEmailError}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</p>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="_pi" value="1">
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<ul class='ipsButtons ipsButtons--main'>
|
|
<li>
|
|
<button type="submit" class="ipsButton ipsButton--primary">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
|
|
IPSCONTENT;
|
|
|
|
else:
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="_pi" value="1">
|
|
<h2 class='i-color_warning'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mod_queue_message', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h2>
|
|
|
|
IPSCONTENT;
|
|
|
|
$warnings = \IPS\Member::loggedIn()->warnings( 1, NULL, 'mq' );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \count( $warnings ) and \IPS\Member::loggedIn()->mod_posts > time() ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \count( $warnings ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<p class="i-font-size_2 i-margin-top_3">
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_this_will_be_moderated', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</p>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<p class="i-font-size_2 i-margin-top_3">
|
|
|
|
IPSCONTENT;
|
|
|
|
$sprintf = array(\IPS\DateTime::ts( \IPS\Member::loggedIn()->mod_posts )->relative()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'restriction_ends', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</p>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<ul class='ipsButtons'>
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $warnings as $idx => $warning ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<a href="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $warning->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" class='ipsButton ipsButton--inherit' data-ipsDialog data-ipsDialog-size='narrow'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_warning_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</a>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<button type="submit" class="ipsButton ipsButton--primary">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</form>
|
|
</div>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function processing( $redirector ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
<div class='i-padding_4'>
|
|
<p class='i-font-size_2 i-text-align_center i-margin-bottom_3'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'saving_images_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</p>
|
|
|
|
{$redirector}
|
|
</div>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function uploadImages( $form, $category ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
<form accept-charset='utf-8' method="post" action="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $form->action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" id='elGallerySubmit' enctype="multipart/form-data">
|
|
<div class='cGallerySubmit_uploadImages' data-controller='gallery.front.submit.uploadImages'>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $form->error ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<div class="ipsMessage ipsMessage--error i-margin-bottom_3">
|
|
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $form->error, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $form->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
_submitted" value="1">
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $form->hiddenValues as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<input type="hidden" name="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" value="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
">
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
<div class='ipsHide'>
|
|
{$form->elements['']['credit_all']->html()}
|
|
{$form->elements['']['copyright_all']->html()}
|
|
{$form->elements['']['tags_all']->html()}
|
|
{$form->elements['']['prefix_all']->html()}
|
|
{$form->elements['']['images_order']->html()}
|
|
{$form->elements['']['images_info']->html()}
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\Settings::i()->gallery_nsfw ):
|
|
$return .= <<<IPSCONTENT
|
|
{$form->elements['']['nsfw_all']->html()}
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\Member::loggedIn()->member_id ):
|
|
$return .= <<<IPSCONTENT
|
|
{$form->elements['']['images_autofollow_all']->html()}
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
|
|
<div id='elGallerySubmit_imageUploader' class=''>
|
|
{$form->elements['']['images']->html( $form )}
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $form->elements['']['images']->error ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<br>
|
|
<span class="i-color_warning">
|
|
IPSCONTENT;
|
|
|
|
$val = "{$form->elements['']['images']->error}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</span>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
</div>
|
|
</form>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function wrapper( $container, $images, $club, $allImagesForm ) {
|
|
$return = '';
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( $club AND \is_array( $container ) AND !\IPS\Widget\Request::i()->isAjax() ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Theme::i()->getTemplate( "clubs", "core" )->header( $club, $container['category'] );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
<div data-controller='gallery.front.submit.wrapper' data-role="submitWrapper" class='
|
|
IPSCONTENT;
|
|
|
|
if ( !\IPS\Widget\Request::i()->isAjax() ):
|
|
$return .= <<<IPSCONTENT
|
|
ipsBox
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
'>
|
|
<div class='cGalleryDialog'>
|
|
<div class='cGalleryDialog_inner'>
|
|
<div class='cGalleryDialog_primary'>
|
|
<div class='cGalleryDialog_title'>
|
|
<h1 class='ipsDialog_title'>
|
|
<span data-role='dialogTitle'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_gallery_image', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</span>
|
|
<div data-role="containerInfo">
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_array( $container ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Theme::i()->getTemplate( "submit", "gallery" )->container( $container );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
</h1>
|
|
<a href='#' data-action='closeDialog' class='cGalleryDialog_close'>×</a>
|
|
</div>
|
|
<div class='cGalleryDialog_container
|
|
IPSCONTENT;
|
|
|
|
if ( \is_array( $container ) ):
|
|
$return .= <<<IPSCONTENT
|
|
ipsHide
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
' data-role="container">
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( !\is_array( $container ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$container}
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
<div class='cGalleryDialog_imageForm
|
|
IPSCONTENT;
|
|
|
|
if ( \is_string( $container ) ):
|
|
$return .= <<<IPSCONTENT
|
|
ipsHide
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\gallery\Image::moderateNewItems( \IPS\Member::loggedIn(), ( is_array( $container ) ) ? $container['category'] : NULL, FALSE ) ):
|
|
$return .= <<<IPSCONTENT
|
|
cGalleryDialog_content_moderated
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
' data-role="images">
|
|
<div class="cGalleryDialog_imageFormAlign">
|
|
<div id='elGallerySubmit_toolBar'>
|
|
<ul class='ipsButtons'>
|
|
<li>
|
|
<button type="button" id="elCopyrightMenu" popovertarget="elCopyrightMenu_menu" class='ipsButton ipsButton--inherit ipsButton--small'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'set_copyright_all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elCopyrightMenu_menu">
|
|
<div class="iDropdown">
|
|
<div class="i-padding_3">
|
|
<h3 class='ipsTitle ipsTitle--h3 i-margin-bottom_2'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'copyright', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h3>
|
|
<p class='i-margin-bottom_3 i-color_soft'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'set_copyright_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</p>
|
|
{$allImagesForm->elements['']['image_copyright']->html()}
|
|
<button class='ipsButton ipsButton--inherit ipsButton--small ipsButton--wide i-margin-top_3' type="button" popovertarget="elCopyrightMenu_menu">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
<li>
|
|
<button type="button" id="elCreditMenu" popovertarget="elCreditMenu_menu" class='ipsButton ipsButton--inherit ipsButton--small'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'set_credit_all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elCreditMenu_menu">
|
|
<div class="iDropdown">
|
|
<div class="i-padding_3">
|
|
<h3 class='ipsTitle ipsTitle--h3 i-margin-bottom_2'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'credit', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h3>
|
|
<p class='i-margin-bottom_3 i-color_soft'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'credit_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</p>
|
|
{$allImagesForm->elements['']['image_credit_info']->html()}
|
|
<button class='ipsButton ipsButton--inherit ipsButton--small ipsButton--wide i-margin-top_3' type="button" popovertarget="elCreditMenu_menu">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
<li class='
|
|
IPSCONTENT;
|
|
|
|
if ( !isset( $allImagesForm->elements['']['image_tags'] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
ipsHide
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
cGalleryTagsButton'>
|
|
<button type="button" id="elTagsMenu" popovertarget="elTagsMenu_menu" class='ipsButton ipsButton--inherit ipsButton--small'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'set_tags_all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elTagsMenu_menu">
|
|
<div class="iDropdown">
|
|
<div class="i-padding_3">
|
|
<h3 class='ipsTitle ipsTitle--h3 i-margin-bottom_2'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'tags', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h3>
|
|
<p class='i-margin-bottom_3 i-color_soft'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'tags_all_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</p>
|
|
<div data-role="globalTagsField">
|
|
IPSCONTENT;
|
|
|
|
if ( isset( $allImagesForm->elements['']['image_tags'] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
{$allImagesForm->elements['']['image_tags']->html()}
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
</div>
|
|
<button class='ipsButton ipsButton--inherit ipsButton--small ipsButton--wide i-margin-top_3' type="button" popovertarget="elTagsMenu_menu">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\Settings::i()->gallery_nsfw ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<button type="button" id="elNSFW" popovertarget="elNSFW_menu" class='ipsButton ipsButton--inherit ipsButton--small'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nsfw_set_all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elNSFW_menu">
|
|
<div class="iDropdown">
|
|
<div class="i-padding_3">
|
|
{$allImagesForm->elements['']['image_nsfw']->html()} <label for='check_image_nsfw'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'nsfw_enable_all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<button class='ipsButton ipsButton--inherit ipsButton--small ipsButton--wide i-margin-top_3' type="button" popovertarget="elNSFW_menu">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \IPS\Member::loggedIn()->member_id ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<button type="button" id="elNotifyOption" popovertarget="elNotifyOption_menu" class='ipsButton ipsButton--inherit ipsButton--small'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gal_notification_options', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i></button>
|
|
<i-dropdown popover id="elNotifyOption_menu">
|
|
<div class="iDropdown">
|
|
<div class="i-padding_3">
|
|
{$allImagesForm->elements['']['image_auto_follow']->html()} <label for='check_image_auto_follow'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'new_image_comments_notification', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<button class='ipsButton ipsButton--inherit ipsButton--small ipsButton--wide i-margin-top_3' type="button" popovertarget="elNotifyOption_menu">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li>
|
|
<button type="button" id="elFileTypes" popovertarget="elFileTypes_menu" class='i-margin-start_auto ipsButton ipsButton--inherit ipsButton--small'>
|
|
<i class='fa-solid fa-circle-info'></i>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'allowed_file_types_link', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
<i class='fa-solid fa-caret-down'></i>
|
|
</button>
|
|
<i-dropdown popover id="elFileTypes_menu">
|
|
<div class="iDropdown">
|
|
<div class="i-padding_3">
|
|
<h3 class='ipsTitle ipsTitle--h3'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'attach_allowed_types', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</h3>
|
|
<div class='i-margin-top_2 i-color_soft i-font-size_-2' data-role="allowedTypes"></div>
|
|
</div>
|
|
</div>
|
|
</i-dropdown>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div data-role='imageForm' class='i-padding_3'>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( \is_array( $container ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
{$images}
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class='cGallerySubmit_imageDetails' data-role="imageDetails">
|
|
<form id='form_imageDetails' accept-charset='utf-8' method="post" action="
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $allImagesForm->action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
" enctype="multipart/form-data">
|
|
<div class='i-text-align_center i-color_soft i-font-size_2 i-opacity_4 i-margin-top_3' data-role='submitHelp'>
|
|
<i class='fa-regular fa-image i-font-size_6 i-color_soft'></i>
|
|
<br><br>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_help_info', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class='ipsSubmitRow cGallerySubmit_bottomBar
|
|
IPSCONTENT;
|
|
|
|
if ( !\is_array( $container ) ):
|
|
$return .= <<<IPSCONTENT
|
|
ipsHide
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
'>
|
|
<span data-role='imageErrors' class='ipsHide i-color_negative'><i class='fa-solid fa-triangle-exclamation'></i>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'files_had_errors', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</span>
|
|
<button type='submit' class='ipsButton ipsButton--negative' data-action="closeDialog" form="elGalleryClose">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cancel', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
<button type='submit' class='ipsButton ipsButton--primary' data-role='submitForm' form="elGallerySubmit" disabled>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_all_images', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div data-role="defaultImageDetailsForm" class='ipsHide'>
|
|
<div class='cGallerySubmit_details'>
|
|
<div class="i-padding_3">
|
|
<div class='cGallerySubmit_preview ipsThumb'></div>
|
|
</div>
|
|
<ul class='ipsForm ipsForm--vertical ipsForm--gallery-submit'>
|
|
<li class='ipsFieldRow'>
|
|
<label class='ipsFieldRow__label' for='image_details_DEFAULT'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
{$allImagesForm->elements['']['image_title_DEFAULT']->html()}
|
|
<p class='i-color_warning ipsHide' data-errorField='image_title'></p>
|
|
</div>
|
|
</li>
|
|
<li class='ipsFieldRow'>
|
|
<label class='ipsFieldRow__label' for='image_description_DEFAULT'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_description', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
<div data-role="imageDescriptionEditor" class='ipsHide'>
|
|
{$allImagesForm->elements['']['filedata__image_description_DEFAULT']->html()}
|
|
<div class='i-text-align_end i-font-size_-2 i-margin-top_2'><a href='#' data-role="imageDescriptionUseTextarea">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'use_plain_editor', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</a></div>
|
|
<p class='i-color_warning ipsHide' data-errorField='image_description'></p>
|
|
</div>
|
|
<div data-role="imageDescriptionTextarea">
|
|
{$allImagesForm->elements['']['image_textarea_DEFAULT']->html()}
|
|
<div class='i-text-align_end i-font-size_-2 i-margin-top_2'><a href='#' data-role="imageDescriptionUseEditor">
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'use_rte_editor', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</a></div>
|
|
<p class='i-color_warning ipsHide' data-errorField='image_textarea'></p>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
|
|
<li class='ipsFieldRow cGalleryTagsField
|
|
IPSCONTENT;
|
|
|
|
if ( !isset( $allImagesForm->elements['']['image_tags_DEFAULT'] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
ipsHide
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
'>
|
|
<label class='ipsFieldRow__label' for='image_tags_default'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_tags', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( isset( $allImagesForm->elements['']['image_tags_DEFAULT'] ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
|
|
$return .= preg_replace( '/data-ipsAutocomplete(?!\-)/', '', $allImagesForm->elements['']['image_tags_DEFAULT']->html() );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<p class='i-color_warning ipsHide' data-errorField='image_tags'></p>
|
|
</div>
|
|
</li>
|
|
|
|
<li class='ipsFieldRow'>
|
|
<label class='ipsFieldRow__label' for='image_credit_DEFAULT'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_credit_info', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
{$allImagesForm->elements['']['image_credit_info_DEFAULT']->html()}
|
|
<p class='i-color_warning ipsHide' data-errorField='image_credit'></p>
|
|
</div>
|
|
</li>
|
|
<li class='ipsFieldRow'>
|
|
<label class='ipsFieldRow__label' for='image_copyright_DEFAULT'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_copyright', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
{$allImagesForm->elements['']['image_copyright_DEFAULT']->html()}
|
|
<p class='i-color_warning ipsHide' data-errorField='image_copyright'></p>
|
|
</div>
|
|
</li>
|
|
<li class='ipsFieldRow ipsHide cGalleryMapField'>
|
|
<label class='ipsFieldRow__label' for='image_gps_show_DEFAULT'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_gps_show', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
{$allImagesForm->elements['']['image_gps_show_DEFAULT']->html()}
|
|
<div class='ipsFieldRow__desc'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_gps_show_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</div>
|
|
<p class='i-color_warning ipsHide' data-errorField='image_gps_show'></p>
|
|
</div>
|
|
</li>
|
|
<li class='ipsFieldRow ipsHide cGalleryThumbField'>
|
|
<label class='ipsFieldRow__label' for='image_thumbnail_DEFAULT'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_thumbnail', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
{$allImagesForm->elements['']['image_thumbnail_DEFAULT']->html()}
|
|
<p class='i-color_warning ipsHide' data-errorField='image_thumbnail'></p>
|
|
</div>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
foreach ( $allImagesForm->elements[''] as $k => $v ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
if ( !\in_array( $k, array( 'image_title_DEFAULT', 'image_tags_DEFAULT', 'image_gps_show_DEFAULT', 'image_thumbnail_DEFAULT', 'image_textarea_DEFAULT', 'image_description_DEFAULT', 'filedata__image_description_DEFAULT', 'image_credit_info_DEFAULT', 'image_copyright_DEFAULT', 'image_auto_follow_DEFAULT', 'image_credit_info', 'image_copyright', 'image_auto_follow', 'image_tags', 'image_nsfw' ) ) ):
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li class='ipsFieldRow'>
|
|
|
|
IPSCONTENT;
|
|
|
|
$langString = str_replace( '_DEFAULT', '', $k );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<label class='ipsFieldRow__label' for='
|
|
IPSCONTENT;
|
|
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
|
$return .= <<<IPSCONTENT
|
|
'>
|
|
IPSCONTENT;
|
|
|
|
$val = "{$langString}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</label>
|
|
<div class='ipsFieldRow__content'>
|
|
{$v->html()}
|
|
</div>
|
|
</li>
|
|
|
|
IPSCONTENT;
|
|
|
|
endif;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
|
|
IPSCONTENT;
|
|
|
|
endforeach;
|
|
$return .= <<<IPSCONTENT
|
|
|
|
<li class='ipsSubmitRow'>
|
|
<button type='button' class='ipsButton ipsButton--secondary ipsButton--wide' data-role='saveDetails'>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_go_back', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
</button>
|
|
<p class='ipsHide' data-role='savedMessage'>
|
|
<i class='fa-solid fa-check'></i>
|
|
IPSCONTENT;
|
|
|
|
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_info_saved', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
|
$return .= <<<IPSCONTENT
|
|
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div data-role="editedImageDetailsForm" class='ipsHide'></div>
|
|
</div>
|
|
IPSCONTENT;
|
|
|
|
return $return;
|
|
}} |