function system_clean_url_settings
system_clean_url_settings($form, &$form_state)
Form builder; Configure clean URL settings.
See also
Related topics
File
- modules/system/system.admin.inc, line 2243
- Admin page callbacks for the system module.
Code
function system_clean_url_settings($form, &$form_state) { $available = FALSE; $conflict = FALSE; // If the request URI is a clean URL, clean URLs must be available. // Otherwise, run a test. if (strpos(request_uri(), '?q=') === FALSE && strpos(request_uri(), '&q=') === FALSE) { $available = TRUE; } else { $request = drupal_http_request($GLOBALS['base_url'] . '/admin/config/search/clean-urls/check'); // If the request returns HTTP 200, clean URLs are available. if (isset($request->code) && $request->code == 200) { $available = TRUE; // If the user started the clean URL test, provide explicit feedback. if (isset($form_state['input']['clean_url_test_execute'])) { drupal_set_message(t('The clean URL test passed.')); } } else { // If the test failed while clean URLs are enabled, make sure clean URLs // can be disabled. if (variable_get('clean_url', 0)) { $conflict = TRUE; // Warn the user of a conflicting situation, unless after processing // a submitted form. if (!isset($form_state['input']['op'])) { drupal_set_message(t('Clean URLs are enabled, but the clean URL test failed. Uncheck the box below to disable clean URLs.'), 'warning'); } } // If the user started the clean URL test, provide explicit feedback. elseif (isset($form_state['input']['clean_url_test_execute'])) { drupal_set_message(t('The clean URL test failed.'), 'warning'); } } } // Show the enable/disable form if clean URLs are available or if the user // must be able to resolve a conflicting setting. if ($available || $conflict) { $form['clean_url'] = array( '#type' => 'checkbox', '#title' => t('Enable clean URLs'), '#default_value' => variable_get('clean_url', 0), '#description' => t('Use URLs like <code>example.com/user</code> instead of <code>example.com/?q=user</code>.'), ); $form = system_settings_form($form); if ($conflict) { // $form_state['redirect'] needs to be set to the non-clean URL, // otherwise the setting is not saved. $form_state['redirect'] = url('', array('query' => array('q' => '/admin/config/search/clean-urls'))); } } // Show the clean URLs test form. else { drupal_add_js(drupal_get_path('module', 'system') . '/system.js'); $form_state['redirect'] = url('admin/config/search/clean-urls'); $form['clean_url_description'] = array( '#type' => 'markup', '#markup' => '<p>' . t('Use URLs like <code>example.com/user</code> instead of <code>example.com/?q=user</code>.'), ); // Explain why the user is seeing this page and what to expect after // clicking the 'Run the clean URL test' button. $form['clean_url_test_result'] = array( '#type' => 'markup', '#markup' => '<p>' . t('Clean URLs cannot be enabled. If you are directed to this page or to a <em>Page not found (404)</em> error after testing for clean URLs, see the <a href="@handbook">online handbook</a>.', array('@handbook' => 'http://drupal.org/node/15365')) . '</p>', ); $form['actions'] = array( '#type' => 'actions', 'clean_url_test' => array( '#type' => 'submit', '#value' => t('Run the clean URL test'), ), ); $form['clean_url_test_execute'] = array( '#type' => 'hidden', '#value' => 1, ); } return $form; }
© 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/modules!system!system.admin.inc/function/system_clean_url_settings/7.x