? 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] = ''; + 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 '

' . l(t('More information about text formats'), 'filter/tips') . '

'; + $output = '

' . l(t('More information about text formats'), 'filter/tips', array('attributes' => array('class' => 'filter-tips-modal'))) . '

'; + $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); }