W3cubDocs

/Drupal 8

function node_title_list

node_title_list(StatementInterface $result, $title = NULL)

Gathers a listing of links to nodes.

Parameters

\Drupal\Core\Database\StatementInterface $result: A database result object from a query to fetch node entities. If your query joins the {comment_entity_statistics} table so that the comment_count field is available, a title attribute will be added to show the number of comments.

$title: (optional) A heading for the resulting list.

Return value

array|false A renderable array containing a list of linked node titles fetched from $result, or FALSE if there are no rows in $result.

File

core/modules/node/node.module, line 188
The core module that allows content to be submitted to the site.

Code

function node_title_list(StatementInterface $result, $title = NULL) {
  $items = array();
  $num_rows = FALSE;
  $nids = [];
  foreach ($result as $row) {
    // Do not use $node->label() or $node->urlInfo() here, because we only have
    // database rows, not actual nodes.
    $nids[] = $row->nid;
    $options = !empty($row->comment_count) ? array('attributes' => array('title' => \Drupal::translation()->formatPlural($row->comment_count, '1 comment', '@count comments'))) : array();
    $items[] = \Drupal::l($row->title, new Url('entity.node.canonical', ['node' => $row->nid], $options));
    $num_rows = TRUE;
  }

  return $num_rows ? array('#theme' => 'item_list__node', '#items' => $items, '#title' => $title, '#cache' => ['tags' => Cache::mergeTags(['node_list'], Cache::buildTags('node', $nids))]) : FALSE;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!modules!node!node.module/function/node_title_list/8.1.x