auto_polling_enabled ): $return .= <<isLastPage() ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "gallery" )->featuredComments( $image->featuredComments(), $image->url()->setQueryString('tab', 'comments')->setQueryString('recommended', 'comments') ); $return .= <<commentPageCount() > 1 ): $return .= <<
{$image->commentPagination( array('tab') )}
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->commentMultimodHeader( $image, '#comments' ); $return .= <<
IPSCONTENT; endif; $return .= <<
IPSCONTENT; if ( \count( $image->comments( NULL, NULL, 'date', 'asc', NULL, NULL, NULL, NULL, FALSE, isset( \IPS\Widget\Request::i()->showDeleted ) ) ) ): $return .= <<timeLastRead(); $lined = FALSE; $return .= <<comments( NULL, NULL, 'date', 'asc', NULL, NULL, NULL, NULL, FALSE, isset( \IPS\Widget\Request::i()->showDeleted ) ) as $comment ): $return .= <<getTimestamp() < $comment->mapped('date') ): $return .= << IPSCONTENT; endif; $return .= <<html()} IPSCONTENT; endforeach; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_comments', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<getTemplate( "global", "core" )->commentMultimod( $image ); $return .= << IPSCONTENT; if ( $image->commentPageCount() > 1 ): $return .= <<
{$image->commentPagination( array('tab') )}
IPSCONTENT; endif; $return .= <<commentForm() || $image->locked() || \IPS\Member::loggedIn()->restrict_post || \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings'] || !\IPS\Member::loggedIn()->checkPostsPerDay() ): $return .= << IPSCONTENT; if ( $image->commentForm() ): $return .= <<locked() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_locked_can_comment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<commentForm()} IPSCONTENT; else: $return .= <<locked() ): $return .= <<getTemplate( "forms", "gallery", 'front' )->commentUnavailable( 'image_locked_cannot_comment' ); $return .= <<restrict_post ): $return .= <<getTemplate( "forms", "gallery", 'front' )->commentUnavailable( 'restricted_cannot_comment', \IPS\Member::loggedIn()->warnings(5,NULL,'rpa'), \IPS\Member::loggedIn()->restrict_post ); $return .= <<members_bitoptions['unacknowledged_warnings'] ): $return .= <<getTemplate( "forms", "gallery", 'front' )->commentUnavailable( 'unacknowledged_warning_cannot_post', \IPS\Member::loggedIn()->warnings( 1, FALSE ) ); $return .= <<checkPostsPerDay() ): $return .= <<getTemplate( "forms", "gallery", 'front' )->commentUnavailable( 'member_exceeded_posts_per_day' ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function image( $image, $commentsAndReviews=FALSE ) { $return = ''; $return .= <<container()->club() ): $return .= <<clubs and \IPS\Settings::i()->clubs_header == 'full' ): $return .= <<getTemplate( "clubs", "core" )->header( $club, $image->container() ); $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "view", "gallery" )->imageFrame( $image ); $return .= << IPSCONTENT; if ( $image->hasPreviousOrNext() ): $return .= <<getTemplate( "view", "gallery", 'front' )->imageCarouselLinks( $image ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "view", \IPS\Request::i()->app )->imageInfo( $image ); $return .= <<getTemplate( "view", "gallery", 'front' )->imageComments( $image, $commentsAndReviews ); $return .= << IPSCONTENT; if ( $image->container()->club() ): $return .= << IPSCONTENT; endif; $return .= <<_dimensions['small'][0] ) ? $carouselImage->_dimensions['small'][0] : 0; $return .= <<_dimensions['small'][1] ) ? $carouselImage->_dimensions['small'][1] : 0; $return .= <<
IPSCONTENT; if ( $carouselImage->media ): $return .= << $sprintf ) ); $return .= << IPSCONTENT; else: $return .= << $sprintf ) ); $return .= << 
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $carouselImage->caption, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT; endif; $return .= <<getTemplate( "global", "gallery", 'front' )->nsfwOverlay( $carouselImage, FALSE ); $return .= << IPSCONTENT; return $return; } function imageCarouselLinks( $image ) { $return = ''; $return .= <<fetchNextOrPreviousImages( 9, 'ASC' ), 0, 4 ) ); $return .= <<fetchNextOrPreviousImages( 9, 'DESC' ); $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function imageFrame( $image ) { $return = ''; $return .= <<data ): $return .= << IPSCONTENT; if ( $image->media ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/view/imageFrame", "videoContainer:inside-start", [ $image ] ); $return .= <<masked_file_name ): $return .= <<masked_file_name )->url; $return .= << original_file_name )->url; $return .= << original_file_name )->url; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/view/imageFrame", "videoContainer:inside-end", [ $image ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/view/imageFrame", "videoContainer:after", [ $image ] ); $return .= <<canEdit() ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/view/imageFrame", "imageContainer:inside-start", [ $image ] ); $return .= <<masked_file_name )->url; $return .= << IPSCONTENT; $imageWidth=isset( $image->_dimensions['small'][0] ) ? $image->_dimensions['small'][0] : 0; $return .= <<_dimensions['small'][1] ) ? $image->_dimensions['small'][1] : 0; $return .= <<masked_file_name )->url; $return .= << IPSCONTENT; if ( \is_countable( $image->_notes ) AND \count( $image->_notes ) ): $return .= << IPSCONTENT; foreach ( $image->_notes as $note ): $return .= <<
IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $note['NOTE'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/view/imageFrame", "imageContainer:after", [ $image ] ); $return .= <<getTemplate( "global", "gallery", 'front' )->nsfwOverlay( $image ); $return .= << IPSCONTENT; if ( $image->canEdit() OR $image->canDownloadOriginal() OR \IPS\Member::loggedIn()->member_id ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_tools', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $image->hasPreviousOrNext() ): $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; return $return; } function imageInfo( $image ) { $return = ''; $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->contentItemMessages( $image->getMessages(), $image ); $return .= <<hidden() === 1 and $image->canUnhide() ): $return .= <<

IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_pending_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<