You are here

function search_by_page_paths_edit_form_submit in Search by Page 8

Submit callback for search_by_page_paths_edit_form().

Adds/edits the path to be indexed, and updates database of paths.

File

search_by_page_paths/search_by_page_paths.module, line 451
Module file for Search by Page Paths, a sub-module for Search by Page.

Code

function search_by_page_paths_edit_form_submit($form, &$form_state) {
  $vals = $form_state['values'];
  $langs = serialize($vals['languages']);
  $envid = intval($vals['environment']);

  // Save the new information
  if (isset($vals['pid']) && $vals['pid']) {
    \Drupal::database()
      ->update('sbpp_path')
      ->fields(array(
      'environment' => $envid,
      'page_path' => $vals['path'],
      'title' => $vals['title'],
      'page_type' => $vals['type'],
      'snippet' => $vals['snippet'],
      'role' => $vals['role'],
      'languages' => $langs,
    ))
      ->condition('pid', $vals['pid'])
      ->execute();

    // Force this to be reindexed
    search_by_page_force_reindex('search_by_page_paths', $vals['pid'], $envid);
  }
  else {
    $vals['pid'] = \Drupal::database()
      ->insert('sbpp_path')
      ->fields(array(
      'environment' => $envid,
      'page_path' => $vals['path'],
      'title' => $vals['title'],
      'page_type' => $vals['type'],
      'snippet' => $vals['snippet'],
      'role' => $vals['role'],
      'languages' => $langs,
    ))
      ->execute();
  }

  // Update the translation strings
  _search_by_page_paths_update_translation($vals);

  // Go back to the paths list
  \Drupal::messenger()
    ->addMessage(t('The page to index has been saved'));
  $form_state['redirect'] = 'admin/config/search/search_by_page/edit/' . $envid . '/paths';
}