? modal.patch
? modules/filter/filter.js
? sites/default/settings.php
Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.930
diff -u -p -r1.930 common.inc
--- includes/common.inc	4 Jul 2009 18:26:42 -0000	1.930
+++ includes/common.inc	7 Jul 2009 02:32:32 -0000
@@ -4763,3 +4763,28 @@ function _drupal_flush_css_js() {
   }
   variable_set('css_js_query_string', $new_character . substr($string_history, 0, 19));
 }
+
+/**
+ * Add a dialog using jquery UI.
+ * TODO: fix this comment.
+ */
+function drupal_dialog($link_class = '', $content = '', $title = '') {
+  $dialogs = &drupal_static(__FUNCTION__, array());
+  if (!count($dialogs)) {
+    drupal_add_js('misc/ui/ui.core.js', array('weight' => JS_LIBRARY + 5));
+    drupal_add_js('misc/ui/ui.draggable.js', array('weight' => JS_LIBRARY + 6));
+    drupal_add_js('misc/ui/ui.droppable.js', array('weight' => JS_LIBRARY + 7));
+    drupal_add_js('misc/ui/ui.dialog.js', array('weight' => JS_LIBRARY + 8));
+    drupal_add_js('misc/dialog.js', array('weight' => JS_LIBRARY + 9));
+    drupal_add_css('misc/ui/ui.all.css');
+    drupal_add_css('misc/ui/ui.core.css');
+    drupal_add_css('misc/ui/ui.dialog.css');
+    $dialogs = array();
+  }
+  if (!isset($dialogs[$link_class])) {
+    $dialogs[$link_class] = '<div id="' . $link_class . '-dialog" class=" ui-helper-hidden" title="' . $title . '">' . $content . '</div>';
+    drupal_add_js(array('dialog' => array_keys($dialogs)), 'setting');
+    return $dialogs[$link_class];
+  }
+  return '';
+}
\ No newline at end of file
Index: misc/dialog.js
===================================================================
RCS file: misc/dialog.js
diff -N misc/dialog.js
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ misc/dialog.js	7 Jul 2009 02:32:32 -0000
@@ -0,0 +1,24 @@
+// $Id$
+(function ($) {
+
+/**
+ * Initialize all modal dialogs requested by drupal_dialog().
+ */
+Drupal.behaviors.dialog = {
+  attach: function (context, settings) {
+  for (var key in Drupal.settings.dialog) {
+    $("#" + Drupal.settings.dialog[key] + "-dialog").dialog({ 
+      autoOpen: false, 
+      modal: true, 
+      width: 600,
+      height: 500,
+    });
+    $("." + Drupal.settings.dialog[key]).click(function() {
+      $("#" + Drupal.settings.dialog[key] + "-dialog").dialog("open");
+      return false;
+    });
+  }
+ }
+}
+
+})(jQuery);
Index: modules/filter/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.module,v
retrieving revision 1.262
diff -u -p -r1.262 filter.module
--- modules/filter/filter.module	5 Jul 2009 18:00:08 -0000	1.262
+++ modules/filter/filter.module	7 Jul 2009 02:32:32 -0000
@@ -578,7 +578,9 @@ function _filter_tips($format, $long = F
  * @ingroup themeable
  */
 function theme_filter_tips_more_info() {
-  return '<p>' . l(t('More information about text formats'), 'filter/tips') . '</p>';
+  $output = '<p>' . l(t('More information about text formats'), 'filter/tips', array('attributes' => array('class' => 'filter-tips-modal'))) . '</p>';
+  $output .= drupal_dialog("filter-tips-modal", filter_tips_long(), t('Filter Tips'));
+  return $output;
 }
 
 /**
Index: modules/filter/filter.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter/filter.pages.inc,v
retrieving revision 1.7
diff -u -p -r1.7 filter.pages.inc
--- modules/filter/filter.pages.inc	8 Mar 2009 21:25:18 -0000	1.7
+++ modules/filter/filter.pages.inc	7 Jul 2009 02:32:32 -0000
@@ -10,8 +10,10 @@
 /**
  * Menu callback; show a page with long filter tips.
  */
-function filter_tips_long() {
-  $format = arg(2);
+function filter_tips_long($format = '') {
+  if (arg(0) == 'filter' && arg(1) == 'tips') {
+    $format = arg(2);
+  }
   if ($format) {
     $output = theme('filter_tips', _filter_tips($format, TRUE), TRUE);
   }
