function ajax_base_page_theme


Error message

User warning: The following module is missing from the file system: theme/theme. For information about how to fix this, see the documentation page. in _drupal_trigger_error_with_delayed_logging() (line 1156 of /var/www/html/elmsln_community/
cis7 ajax_base_page_theme()
cle7 ajax_base_page_theme()
elmsmedia7 ajax_base_page_theme()
icor7 ajax_base_page_theme()
meedjum_blog7 ajax_base_page_theme()
mooc7 ajax_base_page_theme()

Theme callback for Ajax requests.

Many different pages can invoke an Ajax request to system/ajax or another generic Ajax path. It is almost always desired for an Ajax response to be rendered using the same theme as the base page, because most themes are built with the assumption that they control the entire page, so if the CSS for two themes are both loaded for a given page, they may conflict with each other. For example, Bartik is Drupal's default theme, and Seven is Drupal's default administration theme. Depending on whether the "Use the administration theme when editing or creating content" checkbox is checked, the node edit form may be displayed in either theme, but the Ajax response to the Field module's "Add another item" button should be rendered using the same theme as the rest of the page. Therefore, system_menu() sets the 'theme callback' for 'system/ajax' to this function, and it is recommended that modules implementing other generic Ajax paths do the same.

See also



Related topics

9 string references to 'ajax_base_page_theme'
ctools_context_menu in sites/all/modules/ulmus/ctools/includes/
field_collection_menu in sites/all/modules/ulmus/field_collection/field_collection.module
Implements hook_menu().
file_menu in modules/file/file.module
Implements hook_menu().
og-7.x-1.x.database.php in sites/all/modules/ulmus/og/tests/og-7.x-1.x.database.php
Filled installation of Drupal 7.0, for test purposes.
page_manager_menu in sites/all/modules/ulmus/ctools/page_manager/page_manager.module
Delegated implementation of hook_menu().

... See full list


includes/, line 430
Functions for use with Drupal's Ajax framework.


function ajax_base_page_theme() {
  if (!empty($_POST['ajax_page_state']['theme']) && !empty($_POST['ajax_page_state']['theme_token'])) {
    $theme = $_POST['ajax_page_state']['theme'];
    $token = $_POST['ajax_page_state']['theme_token'];

    // Prevent a request forgery from giving a person access to a theme they
    // shouldn't be otherwise allowed to see. However, since everyone is allowed
    // to see the default theme, token validation isn't required for that, and
    // bypassing it allows most use-cases to work even when accessed from the
    // page cache.
    if ($theme === variable_get('theme_default', 'bartik') || drupal_valid_token($token, $theme)) {
      return $theme;