You are here

function theme_img_assist_page in Image Assist 5.3

Same name and namespace in other branches
  1. 5 img_assist.module \theme_img_assist_page()
  2. 5.2 img_assist.module \theme_img_assist_page()
  3. 6.2 img_assist.module \theme_img_assist_page()
  4. 6 img_assist.module \theme_img_assist_page()

Related topics

File

./img_assist.module, line 1807
Image Assist module

Code

function theme_img_assist_page($content, $attributes = NULL) {
  $title = drupal_get_title();
  $output = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . "\n";
  $output .= '<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">' . "\n";
  $output .= "<head>\n";
  $output .= '<title>' . $title . "</title>\n";

  // Note on CSS files from Benjamin Shell:
  // Stylesheets are a problem with image assist. Image assist works great as a
  // TinyMCE plugin, so I want it to LOOK like a TinyMCE plugin. However, it's
  // not always a TinyMCE plugin, so then it should like a themed Drupal page.
  // Advanced users will be able to customize everything, even TinyMCE, so I'm
  // more concerned about everyone else. TinyMCE looks great out-of-the-box so I
  // want image assist to look great as well. My solution to this problem is as
  // follows:
  // If this image assist window was loaded from TinyMCE, then include the
  // TinyMCE popups_css file (configurable with the initialization string on the
  // page that loaded TinyMCE). Otherwise, load drupal.css and the theme's
  // styles. This still leaves out sites that allow users to use the TinyMCE
  // plugin AND the Add Image link (visibility of this link is now a setting).
  // However, on my site I turned off the text link since I use TinyMCE. I think
  // it would confuse users to have an Add Images link AND a button on the
  // TinyMCE toolbar.
  //
  // Note that in both cases the img_assist.css file is loaded last. This
  // provides a way to make style changes to img_assist independently of how it
  // was loaded.
  $output .= drupal_get_html_head();
  $output .= drupal_get_js();
  $output .= "\n<script type=\"text/javascript\"><!-- \n";
  $output .= "  if (parent.tinyMCE && parent.tinyMCEPopup && parent.tinyMCEPopup.getParam('popups_css')) {\n";
  $output .= "    document.write('<link href=\"' + parent.tinyMCEPopup.getParam('popups_css') + '\" rel=\"stylesheet\" type=\"text/css\">');\n";
  $output .= "  } else {\n";
  foreach (drupal_add_css() as $media => $type) {
    $paths = array_merge($type['module'], $type['theme']);
    foreach (array_keys($paths) as $path) {

      // Don't import img_assist.css twice.
      if (!strstr($path, 'img_assist.css')) {
        $output .= "  document.write('<style type=\"text/css\" media=\"{$media}\">@import \"" . base_path() . $path . "\";<\\/style>');\n";
      }
    }
  }
  $output .= "  }\n";
  $output .= "--></script>\n";

  // Ensure that img_assist.js is imported last.
  $path = drupal_get_path('module', 'img_assist') . '/img_assist_popup.css';
  $output .= "<style type=\"text/css\" media=\"all\">@import \"" . base_path() . $path . "\";</style>\n";
  $output .= "</head>\n";
  $output .= '<body' . drupal_attributes($attributes) . ">\n";

  // Do not display status/error messages in popup header frame.
  if (!isset($attributes['id']) || $attributes['id'] != 'img_assist_header') {
    $output .= theme('status_messages');
  }
  $output .= "<!-- begin content -->\n";
  $output .= $content;
  $output .= "<!-- end content -->\n";
  $output .= '</body>';
  $output .= '</html>';
  return $output;
}