$warning ): $return .= << IPSCONTENT; if ( $idx === 0 ): $return .= <<

IPSCONTENT; $sprintf = array(\IPS\Member::load( $warning->moderator )->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'you_have_been_warned', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; if ( \IPS\Member::loggedIn()->isBanned() ): $return .= <<note_member ): $return .= <<{$warning->note_member}

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

IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
IPSCONTENT; $pluralize = array( $commentCount ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_replies', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; $pluralize = array( $item->mapped('views') ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_views_with_number', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<

IPSCONTENT; if ( \IPS\Application::appIsEnabled('cloud') ): $return .= <<getTemplate( "analytics", "cloud" )->analyticsItem( $item ); $return .= <<

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

IPSCONTENT; return $return; } function breadcrumb( $position='top', $markRead=TRUE ) { $return = ''; $return .= <<breadcrumb ) and $position === "mobile" ): $return .= <<
  1. IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'home', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
  2. IPSCONTENT; $last = end(\IPS\Output::i()->breadcrumb); $return .= <<breadcrumb as $k => $b ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $b[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $b[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $position == 'bottom' ): $return .= << IPSCONTENT; $defaultStream = \IPS\core\Stream::defaultStream(); $return .= <<canAccessModule( \IPS\Application\Module::get( 'core', 'discover' ) ) ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function buttons( $buttons ) { $return = ''; $return .= << IPSCONTENT; foreach ( $buttons as $button ): $return .= << language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << $v ): $return .= << IPSCONTENT; if ( $button['icon'] ): $return .= <<  IPSCONTENT; endif; $return .= <<language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; return $return; } function cachingLog( $cacheLog ) { $return = ''; $return .= << IPSCONTENT; foreach ( $cacheLog as $i => $log ): $return .= << IPSCONTENT; if ( $log[0] === 'get' ): $return .= <<get IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $log[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; elseif ( $log[0] === 'set' ): $return .= <<set IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $log[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; elseif ( $log[0] === 'check' ): $return .= <<check IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $log[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; elseif ( $log[0] === 'delete' ): $return .= <<delete IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $log[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << 1 ): $return .= << IPSCONTENT; endif; $return .= <<Redis IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $log[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; if ( ! empty( $log[2] ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $log[2], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
    IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $log[3], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; endforeach; $return .= << IPSCONTENT; return $return; } function carouselNavigation( $id, $classes='', $hiddenByDefault = FALSE ) { $return = ''; $return .= <<
    IPSCONTENT; return $return; } function comment( $item, $comment, $editorName, $app, $type, $class='' ) { $return = ''; $return .= <<getViewTrackingHash() ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentWrap:inside-start", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= <<
    IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentUserPhoto:before", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentUserPhoto:inside-start", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= <<getTemplate( "global", "core" )->userPhoto( $comment->author(), 'fluid', $comment->warningRef() ); $return .= <<isAnonymous() ) and $comment->author()->canHaveAchievements() and \IPS\core\Achievements\Rank::show() and $rank = $comment->author()->rank() ): $return .= <<html( 'ipsAvatarStack__rank' )} IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentUserPhoto:after", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentUsername:before", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentUsername:inside-start", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userLink( $comment->author(), $comment->warningRef(), NULL, \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Anonymous' ) ? $comment->isAnonymous() : FALSE ); $return .= << IPSCONTENT; if ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Anonymous' ) AND !$comment->isAnonymous() ): $return .= << IPSCONTENT; if ( $comment->author()->modShowBadge() ): $return .= << IPSCONTENT; $return .= \IPS\Member\Group::load( $comment->author()->member_group_id )->formattedName; $return .= << IPSCONTENT; else: $return .= <<author()->member_group_id )->formattedName; $return .= << IPSCONTENT; endif; $return .= <<isAnonymous() and \IPS\Member::loggedIn()->modPermission('can_view_anonymous_posters') ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentUsername:after", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= << IPSCONTENT; if ( ! \IPS\Output::i()->reduceLinks() ): $return .= << IPSCONTENT; endif; $return .= <<dateLine()} IPSCONTENT; if ( ! \IPS\Output::i()->reduceLinks() ): $return .= << IPSCONTENT; endif; $return .= <<editLine() ): $return .= <<language()->addToStack( htmlspecialchars( 'edited_lc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; if ( $comment->author()->hasHighlightedReplies() || ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and $comment->isHighlighted() ) OR ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\MetaData' ) and $comment->isFeatured() ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentBadges:inside-start", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= <<author()->hasHighlightedReplies() ): $return .= << IPSCONTENT; $return .= \IPS\Member\Group::load( $comment->author()->member_group_id )->name; $return .= << IPSCONTENT; endif; $return .= <<isFeatured() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'this_is_a_featured_post', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<isHighlighted() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'this_is_a_popular_comment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentBadges:after", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= <<commentMultimodActions() ) ): $return .= << IPSCONTENT; endif; $return .= <<menu()} IPSCONTENT; if ( $comment->author()->member_id ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->miniProfileWrap( $comment->author(), $comment->$idField, 'comment', remoteLoading:true ); $return .= <<
    IPSCONTENT; if ( \IPS\Member::loggedIn()->modPermission('mod_see_warn') and $comment->warning ): $return .= <<getTemplate( "global", "core" )->commentWarned( $comment ); $return .= <<hidden() AND $comment->hidden() != -2 ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $comment->hiddenBlurb(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; elseif ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Hideable' ) AND $comment->hidden() == -2 ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $comment->deletedBlurb(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<hidden() === 1 && $comment->author()->member_id == \IPS\Member::loggedIn()->member_id ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'comment_awaiting_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "comment:inside-start", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= <<content()} IPSCONTENT; if ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\EditHistory' ) and $comment->editLine() ): $return .= <<editLine()} IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "comment:after", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= << IPSCONTENT; if ( ( ( ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Hideable' ) AND $comment->hidden() !== 1 ) || ! \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Hideable' ) ) && \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Reactable' ) and \IPS\Settings::i()->reputation_enabled and $comment->hasReactionBar() ) || ( ( ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Hideable' ) AND $comment->hidden() === 1 and ( $comment->canUnhide() || $comment->canDelete() ) ) || ! \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Hideable' ) ) && ( $comment->canDelete() ) ) || ( ( ( \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Hideable' ) AND $comment->hidden() === 0 ) || ! \IPS\IPS::classUsesTrait( $comment, 'IPS\Content\Hideable' ) ) and $item->canComment() and $editorName ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentFooter:inside-start", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/comment", "commentControls:inside-start", [ $item,$comment,$editorName,$app,$type,$class ] ); $return .= <<hidden() === 1 && ( $comment->canUnhide() || $comment->canDelete() ) ): $return .= <<canUnhide() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'approve', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<canDelete() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'delete', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<canEdit() || $comment->canSplit() || $comment->canHide() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'moderator_tools', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/mobileFooterBar", "mobileFooter:inside-end", [ ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/mobileFooterBar", "mobileFooter:after", [ ] ); $return .= <<member_id ): $return .= <<