function wysiwyg_get_editor_themes in Wysiwyg 5.2
Same name and namespace in other branches
- 5 wysiwyg.module \wysiwyg_get_editor_themes()
- 6.2 wysiwyg.module \wysiwyg_get_editor_themes()
- 6 wysiwyg.module \wysiwyg_get_editor_themes()
- 7.2 wysiwyg.module \wysiwyg_get_editor_themes()
Retrieve available themes for an editor.
Editor themes control the visual presentation of an editor.
Parameters
$profile: A wysiwyg editor profile; passed/altered by reference.
$selected_theme: An optional theme name that ought to be used.
Return value
An array of theme names, or a single, checked theme name if $selected_theme was given.
1 call to wysiwyg_get_editor_themes()
- wysiwyg_process_form in ./wysiwyg.module 
- Process a textarea for Wysiwyg Editor.
File
- ./wysiwyg.module, line 468 
- Integrate client-side editors with Drupal.
Code
function wysiwyg_get_editor_themes(&$profile, $selected_theme = NULL) {
  static $themes = array();
  if (!isset($themes[$profile->editor])) {
    $editor = wysiwyg_get_editor($profile->editor);
    if (isset($editor['themes callback']) && function_exists($editor['themes callback'])) {
      $themes[$editor['name']] = $editor['themes callback']($editor, $profile);
    }
    else {
      $themes[$editor['name']] = array(
        'default',
      );
    }
  }
  // Check optional $selected_theme argument, if given.
  if (isset($selected_theme)) {
    // If the passed theme name does not exist, use the first available.
    if (!in_array($selected_theme, $themes[$profile->editor])) {
      $selected_theme = $profile->settings['theme'] = $themes[$profile->editor][0];
    }
  }
  return isset($selected_theme) ? $selected_theme : $themes[$profile->editor];
}