You are here

function views_url_alias_node_rebuild in Views URL alias 8

Same name and namespace in other branches
  1. 6 views_url_alias_node.module \views_url_alias_node_rebuild()
  2. 7 views_url_alias_node.module \views_url_alias_node_rebuild()

Rebuild view_url_alias_node table.

This function typically only needs to be called when this module is installed.

2 calls to views_url_alias_node_rebuild()
ViewsURLAliasNodeAdminForm::submitForm in src/Form/ViewsURLAliasNodeAdminForm.php
Form submission handler.
views_url_alias_node_install in ./views_url_alias_node.install
Implements hook_install().

File

./views_url_alias_node.module, line 165
Allows node-related Views to be filtered by path aliases.

Code

function views_url_alias_node_rebuild() {
  $database = \Drupal::database();

  // Purge view_url_alias_node table.
  $database
    ->truncate('views_url_alias_node')
    ->execute();

  // Build select query for insert.
  $query = $database
    ->select('url_alias', 'ua');
  $query
    ->join('node', 'n', "CONCAT('/node/', n.nid) = ua.source");
  $query
    ->fields('n', array(
    'nid',
  ))
    ->fields('ua', array(
    'alias',
  ));

  // Populate view_url_alias_node table.
  try {
    $database
      ->insert('views_url_alias_node')
      ->from($query)
      ->execute();
  } catch (Exception $e) {
    watchdog_exception('views_url_alias_node', $e);
  }

  // Display message
  drupal_set_message(t('The %table table has been successfully rebuilt.', array(
    '%table' => 'views_url_alias_node',
  )));
}