category()->club() ): $return .= <<clubs and \IPS\Settings::i()->clubs_header == 'full' ): $return .= <<getTemplate( "clubs", "core" )->header( $club, $album->category() ); $return .= << IPSCONTENT; endif; $return .= <<coverPhoto('masked') ): $return .= <<

IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $album->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT; endif; $return .= <<
IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "header:before", [ $album,$table,$commentsAndReviews ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "header:inside-start", [ $album,$table,$commentsAndReviews ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "badges:before", [ $album,$table,$commentsAndReviews ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "badges:inside-start", [ $album,$table,$commentsAndReviews ] ); $return .= <<asItem()->badges() as $badge ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "badges:after", [ $album,$table,$commentsAndReviews ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "title:inside-start", [ $album,$table,$commentsAndReviews ] ); $return .= <<asItem()->canEdit() ): $return .= << IPSCONTENT; if ( $album->asItem()->locked() ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $album->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= <<asItem()->locked() ): $return .= << IPSCONTENT; endif; $return .= <<_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "title:after", [ $album,$table,$commentsAndReviews ] ); $return .= <<
IPSCONTENT; if ( !isset( \IPS\Widget\Request::i()->tab ) || \IPS\Widget\Request::i()->tab !== 'node_gallery_gallery' ): $return .= <<language()->addToStack( htmlspecialchars( 'album_created_by', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<owner()->link()} IPSCONTENT; if ( $album->last_img_date ): $return .= <<last_img_date ): $return .= <<language()->addToStack( htmlspecialchars( 'updated', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<last_img_date instanceof \IPS\DateTime ) ? $album->last_img_date : \IPS\DateTime::ts( $album->last_img_date );$return .= $val->html(useTitle: true); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "header:inside-end", [ $album,$table,$commentsAndReviews ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "header:after", [ $album,$table,$commentsAndReviews ] ); $return .= << IPSCONTENT; if ( $album->asItem()->shareLinks() ): $return .= <<getTemplate( "sharelinks", "core" )->shareButton( $album->asItem() ); $return .= <<getTemplate( "global", "core" )->follow( 'gallery', 'album', $album->_id, $followerCount ); $return .= <<
IPSCONTENT; if ( $album->description ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( $album->description, array(''), array(), array('data-ipsTruncate') ); $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "iconsList:before", [ $album,$table,$commentsAndReviews ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "iconsList:inside-start", [ $album,$table,$commentsAndReviews ] ); $return .= << 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; if ( $album->use_comments && $album->comments > 0 ): $return .= << IPSCONTENT; $pluralize = array( $album->comments ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_album_num_comments_lc', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= <<allow_comments && $album->count_comments > 0 ): $return .= << IPSCONTENT; $pluralize = array( $album->count_comments ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_image_comments_s', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= <<use_reviews && $album->reviews > 0 ): $return .= << IPSCONTENT; $pluralize = array( $album->reviews ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'gallery_album_num_reviews_lc', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= <<views >= 0 ): $return .= << IPSCONTENT; if ( \IPS\Application::appIsEnabled('cloud') and \IPS\Member::loggedIn()->modPermission('can_view_moderation_log') ): $return .= <<id; $return .= << IPSCONTENT; $pluralize = array( $album->views ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_views_with_number', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $pluralize = array( $album->views ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_views_with_number', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= <<asItem(), 'IPS\Content\Reactable' ) and \IPS\Settings::i()->reputation_enabled ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->reputation( $album->asItem() ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "gallery/front/browse/album", "iconsList:after", [ $album,$table,$commentsAndReviews ] ); $return .= <<
IPSCONTENT; if ( $menu = $album->asItem()->menu() ): $return .= <<
  • {$menu}
  • IPSCONTENT; if ( $album->can( 'add' ) ): $return .= <<getTemplate( "browse", \IPS\Request::i()->app )->categoryButtons( $album->can('add'), $album->category(), $album ); $return .= << IPSCONTENT; endif; $return .= <<_event ) ): $return .= <<

    IPSCONTENT; $pluralize = array( \count( $album->_event ) ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'events_in_album', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlocks( $album->_event ); $return .= <<
    IPSCONTENT; endif; $return .= <<getTemplate( "global", "core" )->contentItemMessages( $album->asItem()->getMessages(), $album->asItem() ); $return .= << {$table}

    IPSCONTENT; if ( $commentsAndReviews ): $return .= << IPSCONTENT; if ( ( $album->asItem()->use_reviews && $album->asItem()->container()->allow_reviews ) && ( $album->asItem()->use_comments && $album->asItem()->container()->allow_comments ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->commentMultimodHeader( $album, '#reviews', 'review' ); $return .= <<
    IPSCONTENT; $reviewCount=0; $timeLastRead = $album->timeLastRead(); $lined = FALSE; $return .= <<reviews( NULL, NULL, NULL, 'desc', NULL, NULL, NULL, NULL, isset( \IPS\Widget\Request::i()->showDeleted ) ) as $review ): $return .= <<getTimestamp() < $review->mapped('date') ): $return .= << IPSCONTENT; endif; $return .= <<html()} IPSCONTENT; endforeach; $return .= <<getTemplate( "global", "core" )->commentMultimod( $album, 'review' ); $return .= <<
    IPSCONTENT; if ( $album->reviewPageCount() > 1 ): $return .= <<
    {$album->reviewPagination( array( 'tab', 'sort' ) )}
    IPSCONTENT; endif; $return .= <<canReview() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_reviews', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function albums( $table, $headers, $albums ) { $return = ''; $return .= <<asNode(); $return .= <<ui( 'dataAttributes' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
    IPSCONTENT; if ( \IPS\gallery\Image::containerUnread( $album ) ): $return .= << IPSCONTENT; endif; $return .= <<asItem()->mapped('featured') ): $return .= << IPSCONTENT; endif; $return .= <<type === \IPS\gallery\Album::AUTH_TYPE_PRIVATE ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'album_private_badge', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $album->type === \IPS\gallery\Album::AUTH_TYPE_RESTRICTED ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'album_friend_only_badge', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<

    IPSCONTENT; if ( \IPS\gallery\Image::containerUnread( $album ) ): $return .= << IPSCONTENT; endif; $return .= << $sprintf ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $album->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; if ( \IPS\gallery\Image::containerUnread( $album ) ): $return .= << IPSCONTENT; endif; $return .= <<

    IPSCONTENT; if ( $result = $album->truncated() ): $return .= << {$result}
    IPSCONTENT; endif; $return .= <<
    IPSCONTENT; if ( $table->canModerate() ): $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; endif; $return .= <<getTemplate( "global", "gallery", 'front' )->nsfwOverlay( $image, FALSE ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endforeach; $return .= <<

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

    IPSCONTENT; if ( \IPS\gallery\Category::canOnAny('add') ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "browse", \IPS\Request::i()->app )->categoryButtons( \IPS\gallery\Category::canOnAny('add'), NULL, NULL ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( \IPS\Settings::i()->gallery_overview_show_categories ): $return .= <<clubs and \IPS\Settings::i()->club_nodes_in_apps) ? \IPS\gallery\Category::clubNodes() : array(); $return .= <<

    IPSCONTENT; if ( $clubNodes ): $return .= <<language()->addToStack( htmlspecialchars( 'community_image_categories', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<language()->addToStack( htmlspecialchars( 'gallery_categories', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; endif; $return .= <<clubs and \IPS\Settings::i()->club_nodes_in_apps and $clubNodes = \IPS\gallery\Category::clubNodes() ): $return .= << IPSCONTENT; if ( $rootCategories ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'club_node_gallery', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<