children( 'view', NULL, FALSE ) : \IPS\blog\Category::roots(); $return .= <<

IPSCONTENT; if ( $currentCategory ): $return .= <<language()->addToStack( htmlspecialchars( 'blog_subcategories', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= <<language()->addToStack( htmlspecialchars( 'categories', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<

IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'featured_entries', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->carouselNavigation( 'blogs-featured-entries' ); $return .= <<

{$entry->truncated(TRUE)}
IPSCONTENT; endforeach; $return .= << IPSCONTENT; return $return; } function index( $table, $featured, $blogs=array(), $viewMode=NULL, $category=NULL ) { $return = ''; $return .= <<
IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "header:before", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "header:inside-start", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "title:inside-start", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= <<_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<language()->addToStack( htmlspecialchars( 'blogs', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "title:after", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "header:after", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "buttons:inside-start", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= <<getTemplate( "browse", \IPS\Request::i()->app )->indexButtons( $blogs, $viewMode, FALSE, $category ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "buttons:after", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= <<
IPSCONTENT; if ( $category !== null and ( \count( $blogs ) || \IPS\blog\Blog::canCreate() ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "buttons:inside-start", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= <<getTemplate( "browse", \IPS\Request::i()->app )->indexButtons( $blogs, $viewMode, FALSE, $category ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/index", "buttons:after", [ $table,$featured,$blogs,$viewMode,$category ] ); $return .= <<getTemplate( "browse", \IPS\Request::i()->app )->featuredEntries( $featured ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "browse", \IPS\Request::i()->app )->indexButtons( $blogs, $viewMode, TRUE, $category ); $return .= << IPSCONTENT; endif; $return .= << {$table} IPSCONTENT; return $return; } function indexButtons( $blogs=array(), $viewMode=NULL, $forMobile=FALSE, $category=NULL ) { $return = ''; $return .= << IPSCONTENT; if ( \count( $blogs ) ): $return .= << 1 ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_new_blog', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_blog', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( \count( $blogs ) > 1 ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_entry', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; else: $return .= <<disabled != 1 ): $return .= <<id}", null, "blog_submit", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ); $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_entry', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endif; $return .= <<
IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "header:before", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "header:inside-start", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "title:inside-start", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= <<_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<language()->addToStack( htmlspecialchars( 'blogs', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "title:after", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "header:after", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "buttons:inside-start", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= <<getTemplate( "browse", \IPS\Request::i()->app )->indexButtons( $blogs, $viewMode, FALSE, $category ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "buttons:after", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= << IPSCONTENT; if ( $category !== null and ( \count( $blogs ) || \IPS\blog\Blog::canCreate() ) ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "buttons:inside-start", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= <<getTemplate( "browse", \IPS\Request::i()->app )->indexButtons( $blogs, $viewMode, FALSE, $category ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGrid", "buttons:after", [ $entries,$featured,$blogs,$pagination,$viewMode,$category ] ); $return .= <<getTemplate( "browse", \IPS\Request::i()->app )->featuredEntries( $featured ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "browse", \IPS\Request::i()->app )->indexButtons( $blogs, $viewMode, TRUE, $category ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; if ( \count($entries) ): $return .= <<
IPSCONTENT; foreach ( $entries as $id => $entry ): $return .= <<getTemplate( "browse", "blog", 'front' )->indexGridEntry( $entry, true ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_entries_yet', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << 1 ): $return .= <<
IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->pagination( $pagination['url'], $pagination['pages'], $pagination['page'], $pagination['perpage'], TRUE, 'page' ); $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function indexGridEntry( $entry, $primary=false, $table=false ) { $return = ''; $return .= <<unread() ): $return .= <<ui( 'dataAttributes' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "image:before", [ $entry,$primary,$table ] ); $return .= <<
IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "image:after", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "main:before", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "main:inside-start", [ $entry,$primary,$table ] ); $return .= <<id ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $entry->container()->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<
IPSCONTENT; elseif ( $entry->category_id ): $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $entry->category()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "title:inside-start", [ $entry,$primary,$table ] ); $return .= <<prefix() ): $return .= <<getTemplate( "global", "core" )->prefix( $entry->prefix( TRUE ), $entry->prefix() ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "badges:inside-start", [ $entry,$primary,$table ] ); $return .= <<badges() as $badge ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "badges:after", [ $entry,$primary,$table ] ); $return .= <<unread() ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'unread_blog', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= htmlspecialchars( $entry->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= <<

IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "title:inside-end", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "title:after", [ $entry,$primary,$table ] ); $return .= <<{$entry->truncated(TRUE)} IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "main:inside-end", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "main:after", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "stats:before", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "stats:inside-start", [ $entry,$primary,$table ] ); $return .= <<stats(TRUE) as $k => $v ): $return .= << IPSCONTENT; if ( $k === "comments" ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->formatNumber( $v ); $return .= <<language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->formatNumber( $v ); $return .= <<language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "stats:after", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $entry->author(), 'fluid' ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "metadata:inside-start", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; if ( $entry->category_id ): $return .= <<author()->link(),$entry->category()->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'entry_name_with_cat', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $entry->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; endif; $return .= <<
  • IPSCONTENT; $val = ( $entry->date instanceof \IPS\DateTime ) ? $entry->date : \IPS\DateTime::ts( $entry->date );$return .= $val->html(useTitle: true); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "metadata:inside-end", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/indexGridEntry", "metadata:after", [ $entry,$primary,$table ] ); $return .= << IPSCONTENT; if ( $table and $table->canModerate() ): $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; return $return; } function rows( $table, $headers, $blogs ) { $return = ''; $return .= <<coverPhoto(); $return .= <<
    ui( 'dataAttributes' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "image:before", [ $table,$headers,$blogs ] ); $return .= <<
    IPSCONTENT; else: $return .= <<
    IPSCONTENT; endif; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "image:after", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "title:before", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "title:inside-start", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $blog->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "title:inside-end", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "title:after", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "metadata:inside-start", [ $table,$headers,$blogs ] ); $return .= <<owner() instanceof \IPS\Member ): $return .= <<owner()->link(), $blog->category()->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'blog_by', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= <<club() ): $return .= << IPSCONTENT; $sprintf = array($club->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'club_blog_for', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) ); $return .= << IPSCONTENT; $htmlsprintf = array(\IPS\Member::loggedIn()->language()->addToStack( 'blogs_groupblog_name_' . $blog->id ), $blog->category()->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'group_blog_by', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "metadata:after", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "stats:inside-start", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $blog->_items, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $pluralize = array( $blog->_items ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'blog_entries', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<
  • IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $blog->_comments, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $pluralize = array( $blog->_comments ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'blog_comments', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<
  • IPSCONTENT; $return .= \IPS\Theme\Template::htmlspecialchars( $blog->num_views, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $pluralize = array( $blog->num_views ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'blog_views', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) ); $return .= <<
  • IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "stats:inside-end", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "stats:after", [ $table,$headers,$blogs ] ); $return .= <<description ): $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( $blog->description ); $return .= << IPSCONTENT; endif; $return .= <<
    IPSCONTENT; if ( $blog->latestEntry() ): $return .= <<
    IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryTitle:before", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryTitle:inside-start", [ $table,$headers,$blogs ] ); $return .= <<latestEntry()->caption, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryBadges:inside-start", [ $table,$headers,$blogs ] ); $return .= <<latestEntry()->badges() as $badge ): $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryBadges:after", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; if ( $blog->latestEntry()->unread() ): $return .= << IPSCONTENT; endif; $return .= <<latestEntry()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryTitle:inside-end", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryTitle:after", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryMetaData:inside-start", [ $table,$headers,$blogs ] ); $return .= <<getTemplate( "global", "core" )->userPhoto( $blog->latestEntry()->author(), '' ); $return .= <<
    IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryMetaData:inside-end", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "lastEntryMetaData:after", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; if ( $table->canModerate() ): $return .= << IPSCONTENT; endif; $return .= <<
    {$blog->latestEntry()->content()}
    IPSCONTENT; else: $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_entries_yet', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; endif; $return .= <<_recentEntries ); $return .= << 1 ): $return .= << IPSCONTENT; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'recent_entries', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "recentEntries:before", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "recentEntries:inside-start", [ $table,$headers,$blogs ] ); $return .= <<ui('dataAttributes'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ); $return .= << IPSCONTENT; $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $entry->author(), 'fluid' ); $return .= <<

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

    IPSCONTENT; if ( !( $blog->owner() instanceof \IPS\Member ) ): $return .= << IPSCONTENT; $htmlsprintf = array(trim( $blog->latestEntry()->author()->link() ), \IPS\DateTime::ts( $blog->latestEntry()->date )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) ); $return .= << IPSCONTENT; endif; $return .= << IPSCONTENT; endforeach; $return .= << IPSCONTENT; $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "blog/front/browse/rows", "recentEntries:after", [ $table,$headers,$blogs ] ); $return .= << IPSCONTENT; endforeach; $return .= <<

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