1 installer.pages.inc installer_browser_install_queue_callback($method, $op, $project_name)

Menu callback; Allows for adding to and removing from the install queue.

File

core/modules/installer/installer.pages.inc, line 980
Page callbacks used by the Installer browse pages.

Code

function installer_browser_install_queue_callback($method, $op, $project_name) {
  module_load_include('inc', 'installer', 'installer.browser');
  switch ($op) {
    case 'add':
      $projects = installer_browser_get_listed_projects();

      if (isset($projects[$project_name])) {
        $project = $projects[$project_name];
        installer_browser_install_queue_add($project);
      }
      else {
        backdrop_set_message(t('Error: The project was not found.'), 'error');
      }
      break;

    case 'remove':
      installer_browser_install_queue_remove($project_name);
      break;

    default:
      return MENU_NOT_FOUND;
  }

  if ($method === 'ajax') {
    $commands = array();
    // Refresh the install queue.
    $commands[] = ajax_command_replace('.installer-browser-install-queue', installer_browser_get_install_list());
    // Refresh the add to queue link.
    $commands[] = ajax_command_replace('#add-to-queue-link-' . $project_name, installer_browser_add_remove_queue_link($project_name));
    return array('#type' => 'ajax', '#commands' => $commands);
  }

  // Redirect to the page it came from.
  $redirect = (isset($_GET['destination'])) ? $_GET['destination'] : installer_browser_path();
  if ($method === 'form') {
    return $redirect;
  }

  // For $method === 'link' or 'nojs'.
  backdrop_goto($redirect);
  return NULL;
}