IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $conversation->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<

IPSCONTENT; $pluralize = array( $conversation->to_count ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'members_in_convo', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<
    IPSCONTENT; $members = 0; $return .= <<maps() as $map ): $return .= <<getTemplate( "messaging", \IPS\Request::i()->app )->participant( $map, $conversation ); $return .= <<group['g_max_mass_pm'] == -1 OR $members < \IPS\Member::loggedIn()->group['g_max_mass_pm'] ): $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'messenger_invite_placeholder', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; endif; $return .= <<
auto_polling_enabled ): $return .= <<isLastPage() ): $return .= << IPSCONTENT; if ( $alert ): $return .= <<
{$alert->content}
IPSCONTENT; endif; $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", \IPS\Request::i()->app, 'global' )->pagination( $conversation->url(), $conversation->commentPageCount(), \IPS\Request::i()->page ? \intval( \IPS\Request::i()->page ) : 1, \IPS\core\Messenger\Conversation::getCommentsPerPage(), TRUE ); $return .= <<
IPSCONTENT; foreach ( $conversation->comments() as $comment ): $return .= <<html()} IPSCONTENT; endforeach; $return .= <<
commentPageCount() <= 1 ): $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", \IPS\Request::i()->app, 'global' )->pagination( $conversation->url(), $conversation->commentPageCount(), \IPS\Request::i()->page ? \intval( \IPS\Request::i()->page ) : 1, \IPS\core\Messenger\Conversation::getCommentsPerPage(), TRUE ); $return .= <<
{$conversation->commentForm()}
IPSCONTENT; if ( \IPS\Widget\Request::i()->isAjax() and \IPS\Settings::i()->core_datalayer_enabled ): $return .= << if ( IpsDataLayerConfig && !window.IpsDataLayerConfig && IpsDataLayerConfig._events.content_view.enabled ) { $('body').trigger( 'ipsDataLayer', { _key: 'content_view', _properties: IPSCONTENT; $return .= json_encode($conversation->getDataLayerProperties()); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function folderForm( $action, $formHtml ) { $return = ''; $return .= << {$formHtml}
IPSCONTENT; return $return; } function messageList( $baseUrl, $langPrefix, $headers, $mainColumn, $rootButtons, $rows, $sortBy, $sortDirection, $filters, $currentFilter, $pages, $currentPage, $noSort, $quickSearch, $advancedSearch, $classes, $widths ) { $return = ''; $return .= <<
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "messaging", "core" )->messageListRows( $rows, $mainColumn, $rootButtons, $headers, $langPrefix ); $return .= <<
IPSCONTENT; return $return; } function messageListRow( $row, $overview, $folders ) { $return = ''; $return .= <<id ): $return .= << IPSCONTENT; if ( $overview ): $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $row['last_message']->author(), 'fluid' ); $return .= <<
IPSCONTENT; if ( $row['map_has_unread'] ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $overview ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $row['mt_title'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $row['mt_title'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; if ( $row['last_message'] ): $return .= <<{$row['last_message']->truncated( TRUE )}
IPSCONTENT; endif; $return .= <<
IPSCONTENT; $val = ( $row['mt_last_post_time'] instanceof \IPS\DateTime ) ? $row['mt_last_post_time'] : \IPS\DateTime::ts( $row['mt_last_post_time'] );$return .= $val->html(TRUE, TRUE, useTitle: true); $return .= <<
  • IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->formatNumber( $row['mt_replies'] ); $return .= <<
IPSCONTENT; if ( $overview ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function messageListRows( $conversations, $pagination=NULL, $overview=FALSE, $folders=array() ) { $return = ''; $return .= <<
IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_results_messages', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= <<getTemplate( "messaging", \IPS\Request::i()->app )->messageListRow( $row, $overview, $folders ); $return .= <<

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

IPSCONTENT; return $return; } function participant( $map, $conversation ) { $return = ''; $return .= <<members_disable_pm ): $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::load( $map['map_user_id'] ), 'fluid' ); $return .= <<
IPSCONTENT; if ( $map['map_user_id'] == \IPS\Member::loggedIn()->member_id ): $return .= <<name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<member_id ): $return .= <<language()->addToStack( htmlspecialchars( 'messenger_deleted_member', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= htmlspecialchars( \IPS\Member::load( $map['map_user_id'] )->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; if ( $map['map_user_banned'] ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'messenger_map_removed', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( !$map['map_user_active'] ): $return .= <<language()->addToStack( htmlspecialchars( 'messenger_map_left', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<html(useTitle: true); $return .= <<language()->addToStack( htmlspecialchars( 'messenger_map_left_notime', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<members_disable_pm == 2 ): $return .= <<name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'messenger_map_disabled_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'messenger_map_disabled', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= <<language()->addToStack( htmlspecialchars( 'messenger_map_read', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<html(useTitle: true); $return .= <<language()->addToStack( htmlspecialchars( 'messenger_map_not_read', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
IPSCONTENT; if ( $map['map_user_id'] != \IPS\Member::loggedIn()->member_id and \IPS\Member::load( $map['map_user_id'] )->member_id ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function submitForm( $title, $form ) { $return = ''; $return .= <<

IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
{$form}
IPSCONTENT; return $return; } function template( $folder, $folders, $counts, $conversations, $pagination, $conversation, $baseUrl, $baseUrlTemplate, $sortBy, $filter, $alert=NULL ) { $return = ''; $return .= <<
IPSCONTENT; endif; $return .= <<