tableClass() ): $return .= <<tableClass(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<enabled ): $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $row->author(), 'fluid' ); $return .= <<

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

  • IPSCONTENT; if ( ! $row->viewed ): $return .= <<language()->addToStack( htmlspecialchars( 'alert_not_viewed', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<viewed); $pluralize = array( $row->viewed ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'alert_viewed_times', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf, 'pluralize' => $pluralize ) ); $return .= <<
  • IPSCONTENT; $htmlsprintf = array($row->author()->name, \IPS\DateTime::ts( $row->start )->localeDate()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= <<end ): $return .= <<end instanceof \IPS\DateTime ) ? $row->end : \IPS\DateTime::ts( $row->end );$return .= (string) $val->localeDate(); $return .= <<
IPSCONTENT; if ( $table->canModerate() ): $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $table->canModerate() ): $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= <<
{$table}
IPSCONTENT; return $return; } function announcementGroupCheck( $groups ) { $return = ''; $return .= <<
IPSCONTENT; $sprintf = array( \IPS\Member::loggedIn()->language()->formatList($groups) );$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'announce_not_all_view_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<
IPSCONTENT; return $return; } function announcementRow( $table, $headers, $rows ) { $return = ''; $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $row->author(), 'fluid' ); $return .= <<

IPSCONTENT; if ( $row->mapped('title') ): $return .= <<mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'content_deleted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<

IPSCONTENT; if ( $row->active ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'active', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'inactive', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; $htmlsprintf = array($row->author()->name, \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= <<
IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $row->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $row->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $table->canModerate() ): $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $table->canModerate() ): $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= <<
{$table}
IPSCONTENT; return $return; } function approvalQueueClubWrapper( $html, $actions ) { $return = ''; $return .= <<
{$html}
IPSCONTENT; return $return; } function approvalQueueItem( $item, $ref, $container, $title ) { $return = ''; $return .= << IPSCONTENT; if ( $reason = $item->approvalQueueReason() ): $return .= <<
IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'reason_for_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

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

IPSCONTENT; endif; $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", \IPS\Request::i()->app )->userPhoto( $item->author() ); $return .= <<
IPSCONTENT; if ( $item->author()->member_id ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $item->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= <<author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
IPSCONTENT; return $return; } function approvalQueueItemWrapper( $html, $actions, $id ) { $return = ''; $return .= << IPSCONTENT; if ( \is_array( $actions ) AND \count( $actions ) ): $return .= << IPSCONTENT; if ( isset( $actions['delete'] ) ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'delete', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'hide', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'approve', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function approvalQueueRows( $table, $headers, $rows ) { $return = ''; $return .= <<item() ): $return .= << IPSCONTENT; $return .= $row->html(); $return .= << IPSCONTENT; endif; $return .= <<

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

IPSCONTENT; endif; $return .= <<dummyLoading ): $return .= <<getPaginationKey() != 'page' ): $return .= << IPSCONTENT; if ( $table->title ): $return .= << IPSCONTENT; $val = "{$table->title}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<canModerate() AND $table->showFilters ) OR ( $table->showAdvancedSearch AND ( ( isset( $table->sortOptions ) and \count( $table->sortOptions ) > 1 ) OR $table->advancedSearch ) ) OR ( !empty( $table->filters ) ) OR ( $table->pages > 1 ) ): $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->pagination( $table->baseUrl, $table->pages, $table->page, $table->limit, TRUE, $table->getPaginationKey() ); $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; if ( \count( $rows ) ): $return .= <<
    IPSCONTENT; $return .= $table->rowsTemplate[0]->{$table->rowsTemplate[1]}( $table, $headers, $rows ); $return .= << IPSCONTENT; else: $return .= <<

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

IPSCONTENT; endif; $return .= << IPSCONTENT; else: $return .= <<author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
  • IPSCONTENT; $val = "{$item::$title}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
  • IPSCONTENT; $htmlsprintf = array(\IPS\DateTime::ts( $item->mapped('date') )->html(FALSE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'date_replied', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= << IPSCONTENT; if ( $row->objectContainer() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'posted_in_container', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $row->objectContainer()->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
  • IPSCONTENT; endif; $return .= <<
IPSCONTENT; endif; $return .= <<getPaginationKey() != 'page' ): $return .= << IPSCONTENT; if ( $table->title ): $return .= << IPSCONTENT; $val = "{$table->title}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $table->pages > 1 ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->pagination( $table->baseUrl, $table->pages, $table->page, $table->limit, TRUE, $table->getPaginationKey() ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $table->canModerate() ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= $table->rowsTemplate[0]->{$table->rowsTemplate[1]}( $table, $headers, $rows ); $return .= << IPSCONTENT; else: $return .= <<

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

IPSCONTENT; else: $return .= <<author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
IPSCONTENT; return $return; } function hiddenTableRows( $table, $headers, $rows ) { $return = ''; $return .= << {$row['index_content']} IPSCONTENT; endforeach; $return .= <<

IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'modcp_hidden_empty', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << 250 ): $return .= << IPSCONTENT; $sprintf = array($total, 250); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'modcp_hidden_showing_x_of_y', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<

IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_results', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= <<
IPSCONTENT; foreach ( $r as $k => $v ): $return .= << IPSCONTENT; if ( $k === '_buttons' ): $return .= <<getTemplate( "global", "core" )->controlStrip( $v ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; if ( $table->pages > 1 ): $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->pagination( $table->baseUrl, $table->pages, $table->page, $table->limit ); $return .= <<
IPSCONTENT; endif; $return .= <<

IPSCONTENT; $sprintf = array($table->extra->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'ips_used_member', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<
  1. IPSCONTENT; foreach ( $headers as $k => $header ): $return .= << IPSCONTENT; $val = "{$table->langPrefix}{$header}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $header === '_buttons' ): $return .= <<
    IPSCONTENT; endif; $return .= <<
  2. IPSCONTENT; $return .= $table->rowsTemplate[0]->{$table->rowsTemplate[1]}( $table, $headers, $rows ); $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->pagination( $table->baseUrl, $table->pages, $table->page, $table->limit ); $return .= <<

IPSCONTENT; return $return; } function iptools( $form, $members ) { $return = ''; $return .= << {$form}
{$members}
IPSCONTENT; return $return; } function memberManagementRow( $table, $headers, $rows ) { $return = ''; $return .= <<
{$row['photo']}
IPSCONTENT; endforeach; $return .= << {$form}
IPSCONTENT; foreach ( $tabs as $key => $tab ): $return .= << IPSCONTENT; $val = "modcp_members_{$key}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->tabScrollers( ); $return .= <<
{$content}
IPSCONTENT; return $return; } function promoteTableRows( $table, $headers, $rows ) { $return = ''; $return .= <<id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
  • scheduled > time() ): $return .= <<
  • IPSCONTENT; endforeach; $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_results', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= <<
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::load( $warning->member ), 'fluid' ); $return .= <<
    • IPSCONTENT; $htmlsprintf = array(\IPS\Member::load( $warning->member )->link(), \IPS\Member::load( $warning->moderator )->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'user_warned_by', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= <<
    • IPSCONTENT; $val = ( $warning->date instanceof \IPS\DateTime ) ? $warning->date : \IPS\DateTime::ts( $warning->date );$return .= $val->html(useTitle: true); $return .= <<
    IPSCONTENT; if ( \IPS\Settings::i()->warnings_acknowledge ): $return .= << IPSCONTENT; if ( $warning->acknowledged ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_acknowledged', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_not_acknowledged', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<note_mods ): $return .= << IPSCONTENT; $return .= \IPS\Text\Parser::truncate( $warning->note_mods ); $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; endforeach; $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'modcp_recent_warnings', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( $table->pages > 1 ): $return .= <<
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->pagination( $table->baseUrl, $table->pages, $table->page, $table->limit ); $return .= <<
    IPSCONTENT; endif; $return .= <<


    IPSCONTENT; endif; $return .= <<hidden() === -2 ): $return .= <<

    IPSCONTENT; if ( $delLog ): $return .= <<deletion_date); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'content_delete_pending', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<language()->addToStack( htmlspecialchars( 'content_deleted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

    IPSCONTENT; if ( $delLog ): $return .= << IPSCONTENT; endif; $return .= <<

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

    IPSCONTENT; if ( $pointCount ): $return .= << IPSCONTENT; $pluralize = array( $pointCount ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'automoderation_report_points_flag', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= <<
    {$item->content()}
    IPSCONTENT; endif; $return .= <<

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

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

    IPSCONTENT; if ( $report->author ): $return .= <<getTemplate( "modcp", \IPS\Request::i()->app )->reportPanel( $report,$comment,$ref ); $return .= << IPSCONTENT; if ( $prevReport or $nextReport ): $return .= <<
    IPSCONTENT; if ( $prevReport ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'previous_report', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( $prevItem ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $prevItem->mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'content_deleted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; if ( $nextReport ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'next_report', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( $nextItem ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $nextItem->mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'content_deleted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( count(\IPS\core\Reports\Types::roots() )>0 ): $return .= <<

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

    IPSCONTENT; endif; $return .= <<
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->tabScrollers( ); $return .= <<
    activeTab ) and \IPS\Widget\Request::i()->activeTab == 'comments' ): $return .= <<
    IPSCONTENT; foreach ( $report->reports( $filterByType ) as $r ): $return .= <<
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::load( $r['report_by'] ), 'mini' ); $return .= <<

    IPSCONTENT; if ( ! $r['report_by'] and isset( $r['guest_name'] ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $r['guest_name'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; else: $return .= <<link(); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $r['guest_email'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<

    IPSCONTENT; if ( $r['report_type'] ): $return .= <<_title; } catch( \Exception $e ) { } $return .= <<language()->addToStack( htmlspecialchars( 'report_type_byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<language()->addToStack( htmlspecialchars( 'report_date_submitted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<html(useTitle: true); $return .= <<modPermission('can_use_ip_tools') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'modcp' ) ) ): $return .= << IPSCONTENT; $sprintf = array($r['ip_address']); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'ip_prefix', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<

    IPSCONTENT; if ( $r['report'] ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'report_no_message', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; endforeach; $return .= <<
    activeTab ) or \IPS\Widget\Request::i()->activeTab != 'comments' ): $return .= <<
    IPSCONTENT; return $return; } function reportList( $table ) { $return = ''; $return .= << {$table} IPSCONTENT; return $return; } function reportListOverview( $table, $headers, $rows, $quickSearch, $advancedSearch ) { $return = ''; $return .= <<
      IPSCONTENT; foreach ( $rows as $row ): $return .= <<unread() ): $return .= <<
      IPSCONTENT; if ( $lastComment = $row->comments( 1, 0, 'date', 'desc' ) ): $return .= <<getTemplate( "global", "core" )->userPhoto( $lastComment->author(), 'tiny' ); $return .= <<getTemplate( "global", "core" )->userPhoto( $row->author(), 'tiny' ); $return .= <<
      IPSCONTENT; endforeach; $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_results_reports', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<author AND \IPS\Member::loggedIn()->modPermission('mod_see_warn') AND \count(\IPS\Member::load( $report->author )->warnings( 1 )) ): $return .= <<
      IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'previous_warnings', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; foreach ( \IPS\Member::load( $report->author )->warnings( 2 ) as $warning ): $return .= << IPSCONTENT; endforeach; $return .= <<
      IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $container === NULL ): $return .= <<language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<language()->addToStack( $class::$title ), $container->_title); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'icon_blurb_in_containers', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; if ( $report->status == \IPS\core\Reports\Report::STATUS_REJECTED ): $return .= << IPSCONTENT; $val = "report_status_{$report->status}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; elseif ( $report->status == \IPS\core\Reports\Report::STATUS_OPEN ): $return .= << IPSCONTENT; $val = "report_status_{$report->status}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $val = "report_status_{$report->status}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<getReportedTypes() as $name ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; return $return; } function reportToggle( $report, $ref='list', $showIcon=TRUE ) { $return = ''; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function tableWrapper( $table, $title='' ) { $return = ''; $return .= << IPSCONTENT; if ( $title ): $return .= << IPSCONTENT; $val = "{$title}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function template( $content, $tabs, $activeTab, $counters=null ) { $return = ''; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/modcp/template", "modcp_header:before", [ $content,$tabs,$activeTab,$counters ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/modcp/template", "modcp_header:inside-start", [ $content,$tabs,$activeTab,$counters ] ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'modcp', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; if ( !empty( $counters ) ): $return .= << IPSCONTENT; foreach ( $counters as $counter ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $counter['total'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $val = "{$counter['title']}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/modcp/template", "modcp_header:after", [ $content,$tabs,$activeTab,$counters ] ); $return .= <<

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

      IPSCONTENT; if ( isset( $tabs['content'] ) and count( $tabs['content'] ) ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'modcp_content_tools', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
      {$content}
      IPSCONTENT; return $return; } function unapprovedContent( $content, $tabs, $activeTab ) { $return = ''; $return .= <<
      IPSCONTENT; foreach ( $tabs as $key => $tab ): $return .= << IPSCONTENT; $val = "{$tab}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->tabScrollers( ); $return .= <<
      {$content}
      IPSCONTENT; return $return; } function warnActions( $actions, $member, $min ) { $return = ''; $return .= <<

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

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

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

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

        IPSCONTENT; endif; $return .= <<
        IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $action['wa_points'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
        IPSCONTENT; if ( $action['wa_mq'] or $action['wa_rpa'] or $action['wa_suspend'] ): $return .= << IPSCONTENT; if ( $action['wa_mq'] ): $return .= <<
        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_mq', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; if ( $action['wa_mq'] != -1 ): $return .= <<language()->addToStack( htmlspecialchars( 'f_hours', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<language()->addToStack( htmlspecialchars( 'f_days', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<language()->addToStack( htmlspecialchars( 'indefinitely', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<
        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_rpa', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; if ( $action['wa_rpa'] != -1 ): $return .= <<language()->addToStack( htmlspecialchars( 'f_hours', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<language()->addToStack( htmlspecialchars( 'f_days', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<language()->addToStack( htmlspecialchars( 'indefinitely', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<
        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_suspend', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; if ( $action['wa_suspend'] != -1 ): $return .= <<language()->addToStack( htmlspecialchars( 'f_hours', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<language()->addToStack( htmlspecialchars( 'f_days', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<language()->addToStack( htmlspecialchars( 'indefinitely', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_punishment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; return $return; } function warnHovercard( $warning ) { $return = ''; $return .= <<

        IPSCONTENT; if ( $warning->canViewDetails() ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $warning->points, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $val = "core_warn_reason_{$warning->reason}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<language()->addToStack( htmlspecialchars( 'warning', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; if ( \IPS\Settings::i()->warnings_acknowledge OR \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings'] ): $return .= << IPSCONTENT; if ( $warning->acknowledged ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_acknowledged', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= <<canAcknowledge() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'acknowledge', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

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

        IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_not_acknowledged', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<contentObject() and $content->canView() ): $return .= << id ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<    IPSCONTENT; if ( $content instanceof \IPS\Content\Comment ): $return .= <<item()->mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<

        IPSCONTENT; endif; $return .= <<canViewDetails() ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::load( $warning->moderator ), 'fluid' ); $return .= <<
        IPSCONTENT; $sprintf = array(\IPS\Member::load( $warning->moderator )->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<

        IPSCONTENT; $val = ( $warning->date instanceof \IPS\DateTime ) ? $warning->date : \IPS\DateTime::ts( $warning->date );$return .= $val->html(useTitle: true); $return .= <<

        IPSCONTENT; if ( $warning->expire_date > 0 ): $return .= <<( IPSCONTENT; $sprintf = array(\IPS\DateTime::ts( $warning->expire_date )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_expires', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<expire_date == 0 ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_no_longer_active', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<removed_on ): $return .= <<removed_on )->relative()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_expired_on', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; endif; $return .= <<

        IPSCONTENT; endif; $return .= <<canViewDetails() or $warning->mq or $warning->rpa or $warning->suspend ): $return .= <<

        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_punishment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
          IPSCONTENT; if ( $warning->canViewDetails() ): $return .= << IPSCONTENT; if ( $warning->expire_date ): $return .= <<expire_date < time() ): $return .= <<expire_date == -1 ): $return .= <<points ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_action_points_never_expire', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<expire_date )); $pluralize = array( $warning->points ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_action_points_expired', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf, 'pluralize' => $pluralize ) ); $return .= <<expire_date )); $pluralize = array( $warning->points ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_action_points_expire', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf, 'pluralize' => $pluralize ) ); $return .= <<points ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_action_points', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= <<cheev_point_reduction ): $return .= << IPSCONTENT; $pluralize = array( $warning->cheev_point_reduction ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_deduct_cheev_points', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= <<mq ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'moderation_modq', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<mq == -1 ): $return .= <<language()->addToStack( htmlspecialchars( 'indefinitely', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<mq_interval ): $return .= << IPSCONTENT; endif; $return .= <<rpa ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'moderation_nopost', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<rpa == -1 ): $return .= <<language()->addToStack( htmlspecialchars( 'indefinitely', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<rpa_interval ): $return .= << IPSCONTENT; endif; $return .= <<suspend ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'moderation_banned', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<suspend == -1 ): $return .= <<language()->addToStack( htmlspecialchars( 'indefinitely', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<suspend_interval ): $return .= << IPSCONTENT; endif; $return .= <<

        IPSCONTENT; endif; $return .= <<note_member ): $return .= <<

        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_member_note', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( $warning->note_member ); $return .= <<
        IPSCONTENT; endif; $return .= <<note_mods and \IPS\Member::loggedIn()->modPermission('mod_see_warn') ): $return .= <<

        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_mod_note', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
        IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( $warning->note_mods ); $return .= <<
        IPSCONTENT; endif; $return .= << IPSCONTENT; if ( $warning->canDelete() ): $return .= <<
        IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'revoke', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

        IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function warningRevoke( $warning ) { $return = ''; $return .= <<

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

        IPSCONTENT; return $return; } function warningRowPoints( $points ) { $return = ''; $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $points, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
        IPSCONTENT; $pluralize = array( $points ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'wan_action_points', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<