IPSCONTENT; $htmlsprintf = array(\IPS\DateTime::ts( $version['b_backup'] )->html( false )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_version_released', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= <<
IPSCONTENT; if ( $version['b_changelog'] ): $return .= <<getTemplate( "global", "core", 'global' )->richText( $version['b_changelog'] ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_no_changelog', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<

IPSCONTENT; endif; $return .= << IPSCONTENT; if ( isset( $version['b_id'] ) and ( $file->canDownload() or ( $file->canEdit() and \IPS\Member::loggedIn()->group['idm_bypass_revision'] ) ) ): $return .= <<
  • IPSCONTENT; $sprintf = array($versionNumber); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'with_version', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= <<
  • IPSCONTENT; if ( $file->canDownload() ): $return .= <<setQueryString( array( 'version' => $version['b_id'] ) )->csrf(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<url('download')->setQueryString( array( 'version' => $version['b_id'] ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<requiresDownloadConfirmation() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<canEdit() and \IPS\Member::loggedIn()->group['idm_bypass_revision'] ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'restore', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
  • 'deletePreviousVersion', 'version' => $version['b_id'] ) )->csrf(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'delete', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
  • 'previousVersionVisibility', 'version' => $version['b_id'] ) )->csrf(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; if ( $version['b_hidden'] ): $return .= <<language()->addToStack( htmlspecialchars( 'unhide_from_members', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<language()->addToStack( htmlspecialchars( 'hide_from_members', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
  • IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; foreach ( $hiddenValues as $k => $v ): $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; endif; $return .= <<

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

    IPSCONTENT; return $return; } function comments( $file ) { $return = ''; $return .= <<auto_polling_enabled ): $return .= <<isLastPage() ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->featuredComments( $file->featuredComments(), $file->url()->setQueryString( 'tab', 'comments' )->setQueryString( 'recommended', 'comments' ) ); $return .= <<commentPageCount() > 1 ): $return .= <<
    {$file->commentPagination( array('tab') )}
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->commentMultimodHeader( $file, '#comments' ); $return .= <<
    IPSCONTENT; endif; $return .= <<
    IPSCONTENT; if ( \count( $file->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( $file ); $return .= << IPSCONTENT; if ( $file->commentPageCount() > 1 ): $return .= <<
    {$file->commentPagination( array('tab') )}
    IPSCONTENT; endif; $return .= <<commentForm() || $file->locked() || \IPS\Member::loggedin()->restrict_post || \IPS\Member::loggedIn()->members_bitoptions['unacknowledged_warnings'] || !\IPS\Member::loggedIn()->checkPostsPerDay() ): $return .= << IPSCONTENT; if ( $file->commentForm() ): $return .= <<locked() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_locked_can_comment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<commentForm()} IPSCONTENT; else: $return .= <<locked() ): $return .= <<getTemplate( "forms", "core", 'front' )->commentUnavailable( 'file_locked_cannot_comment' ); $return .= <<restrict_post ): $return .= <<getTemplate( "forms", "core", '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", "core", 'front' )->commentUnavailable( 'unacknowledged_warning_cannot_post', \IPS\Member::loggedIn()->warnings( 1, FALSE ) ); $return .= <<checkPostsPerDay() ): $return .= <<getTemplate( "forms", "core", 'front' )->commentUnavailable( 'member_exceeded_posts_per_day' ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function download( $file, $terms=NULL, $download=NULL, $confirmUrl=NULL, $multipleFiles=NULL, $waitingOn=NULL, $waitingFor=0 ) { $return = ''; $return .= << IPSCONTENT; if ( $terms ): $return .= <<getTemplate( "view", "downloads" )->downloadTerms( $file, $terms, $confirmUrl, $multipleFiles ); $return .= <<getTemplate( "view", "downloads" )->multipleFiles( $file, $download, $waitingOn, $waitingFor ); $return .= << IPSCONTENT; return $return; } function downloadButton( $file ) { $return = ''; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "downloads/front/view/downloadButton", "downloadButton:inside-start", [ $file ] ); $return .= <<canDownload() AND !( !$file->container()->can( 'download' ) AND $file->container()->message('npd') ) ): $return .= <<member_id ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_no_permission_guest', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'sign_in_short', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_no_permission', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<requiresDownloadConfirmation() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_now', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "downloads/front/view/downloadButton", "downloadButton:after", [ $file ] ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_teaser', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; return $return; } function downloadTerms( $file, $downloadTerms, $confirmUrl, $multipleFiles ) { $return = ''; $return .= <<

    IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_terms', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_terms_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<
    IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( $downloadTerms, array('ipsRichText--download-terms') ); $return .= <<
    IPSCONTENT; return $return; } function log( $file, $table ) { $return = ''; $return .= <<container()->log ): $return .= <<
    IPSCONTENT; $pluralize = array( $file->container()->log ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'log_days', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<
    IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::load( $row['dmid'] ), 'mini' ); $return .= <<

    IPSCONTENT; $return .= htmlspecialchars( \IPS\Member::load( $row['dmid'] )->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $val = ( $row['dtime'] instanceof \IPS\DateTime ) ? $row['dtime'] : \IPS\DateTime::ts( $row['dtime'] );$return .= (string) $val; $return .= << IPSCONTENT; endforeach; $return .= <<getPaginationKey() != 'page' ): $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; $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; if ( method_exists( $table, 'container' ) AND $table->container() !== NULL ): $return .= <<container()->can('add') ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_first_row', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<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; return $return; } function multipleFiles( $fileObject, $files, $waitingOn, $waitingFor ) { $return = ''; $return .= <<

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

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