You are here

function ckeditor_skin_admin_main in CKEditor Skin 7

Override the default admin page to warn the user about missing skin.

Return value

string Page content.

1 string reference to 'ckeditor_skin_admin_main'
ckeditor_skin_menu_alter in ./ckeditor_skin.module
Implements hook_menu_alter().

File

./ckeditor_skin.module, line 148
CKEditor Skin

Code

function ckeditor_skin_admin_main() {
  $page = ckeditor_admin_main();
  if (!empty($page)) {
    $skins = ckeditor_skin_get_skins();
    $global_profile = ckeditor_profile_load('CKEditor Global Profile');
    $skin_options = ckeditor_load_skin_options();
    $original_message = t('The <em>CKEditor Global Profile</em> profile is using %skin skin which cannot be found. Please <a href="@profile_settings">update your settings</a>.', array(
      '%skin' => $global_profile->settings['skin'],
      '@profile_settings' => url('admin/config/content/ckeditor/editg'),
    ));

    // Dirty hack.
    if (!empty($_SESSION['messages']['warning'])) {
      foreach ($_SESSION['messages']['warning'] as $id => $message) {
        if ($message == $original_message) {
          unset($_SESSION['messages']['warning'][$id]);
        }
      }
      if (empty($_SESSION['messages']['warning'])) {
        unset($_SESSION['messages']['warning']);
      }
    }

    // Skin not found.
    if (empty($skins[$global_profile->settings['skin']])) {
      drupal_set_message($original_message, 'warning');
    }
    elseif (!empty($global_profile->settings['skin_api'])) {
      $skin_api = $global_profile->settings['skin_api'];
      if (!empty($skin_api['skin'])) {
        $skin = $skin_api['skin'];

        // Check for:
        // - Skin not found.
        // - skin.js not found.
        if (empty($skins[$skin]) || !($skin_info = $skins[$skin]) || !empty($skin_info['js']) && !file_exists($skin_info['js'])) {
          drupal_set_message(t('The <em>CKEditor Global Profile</em> profile is using %skin skin which cannot be found. Please <a href="@profile_settings">update your settings</a>.', array(
            '%skin' => $skin,
            '@profile_settings' => url('admin/config/content/ckeditor/editg'),
          )), 'warning');
        }
        elseif ($skin_api != $skin_info) {
          drupal_set_message(t('The <em>CKEditor Global Profile</em> profile is using old %skin skin which is deprecated. Please <a href="@profile_settings">update your settings</a>.', array(
            '%skin' => $skin,
            '@profile_settings' => url('admin/config/content/ckeditor/editg'),
          )), 'warning');
        }
      }
    }
  }
  return $page;
}