public AggregatorController::adminOverview()
Displays the aggregator administration page.
Return value
array A render array as expected by drupal_render().
File
- core/modules/aggregator/src/Controller/AggregatorController.php, line 109
Class
- AggregatorController
- Returns responses for aggregator module routes.
Namespace
Drupal\aggregator\Controller
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | public function adminOverview() { $entity_manager = $this ->entityManager(); $feeds = $entity_manager ->getStorage( 'aggregator_feed' ) ->loadMultiple(); $header = array ( $this ->t( 'Title' ), $this ->t( 'Items' ), $this ->t( 'Last update' ), $this ->t( 'Next update' ), $this ->t( 'Operations' )); $rows = array (); /** @var \Drupal\aggregator\FeedInterface[] $feeds */ foreach ( $feeds as $feed ) { $row = array (); $row [] = $feed ->link(); $row [] = $this ->formatPlural( $entity_manager ->getStorage( 'aggregator_item' )->getItemCount( $feed ), '1 item' , '@count items' ); $last_checked = $feed ->getLastCheckedTime(); $refresh_rate = $feed ->getRefreshRate(); $row [] = ( $last_checked ? $this ->t( '@time ago' , array ( '@time' => $this ->dateFormatter->formatInterval(REQUEST_TIME - $last_checked ))) : $this ->t( 'never' )); if (! $last_checked && $refresh_rate ) { $next_update = $this ->t( 'imminently' ); } elseif ( $last_checked && $refresh_rate ) { $next_update = $next = $this ->t( '%time left' , array ( '%time' => $this ->dateFormatter->formatInterval( $last_checked + $refresh_rate - REQUEST_TIME))); } else { $next_update = $this ->t( 'never' ); } $row [] = $next_update ; $links [ 'edit' ] = [ 'title' => $this ->t( 'Edit' ), 'url' => Url::fromRoute( 'entity.aggregator_feed.edit_form' , [ 'aggregator_feed' => $feed ->id()]), ]; $links [ 'delete' ] = array ( 'title' => $this ->t( 'Delete' ), 'url' => Url::fromRoute( 'entity.aggregator_feed.delete_form' , [ 'aggregator_feed' => $feed ->id()]), ); $links [ 'delete_items' ] = array ( 'title' => $this ->t( 'Delete items' ), 'url' => Url::fromRoute( 'aggregator.feed_items_delete' , [ 'aggregator_feed' => $feed ->id()]), ); $links [ 'update' ] = array ( 'title' => $this ->t( 'Update items' ), 'url' => Url::fromRoute( 'aggregator.feed_refresh' , [ 'aggregator_feed' => $feed ->id()]), ); $row [] = array ( 'data' => array ( '#type' => 'operations' , '#links' => $links , ), ); $rows [] = $row ; } $build [ 'feeds' ] = array ( '#prefix' => '<h3>' . $this ->t( 'Feed overview' ) . '</h3>' , '#type' => 'table' , '#header' => $header , '#rows' => $rows , '#empty' => $this ->t( 'No feeds available. <a href=":link">Add feed</a>.' , array ( ':link' => $this ->url( 'aggregator.feed_add' ))), ); return $build ; } |
Please login to continue.