diff --git a/modules/fontyourface_wysiwyg/fontyourface_wysiwyg.info b/modules/fontyourface_wysiwyg/fontyourface_wysiwyg.info new file mode 100644 index 0000000000000000000000000000000000000000..a189b001def14e4628f9f0d380eb8ed0fd31cbb4 --- /dev/null +++ b/modules/fontyourface_wysiwyg/fontyourface_wysiwyg.info @@ -0,0 +1,9 @@ +; $Id$ +name = WYSIWYG for @font-your-face +description = Adds list of enabled fonts to WYSIWYG. +dependencies[] = fontyourface +dependencies[] = wysiwyg +package = @font-your-face +core = 7.x + +files[] = fontyourface_wysiwyg.module diff --git a/modules/fontyourface_wysiwyg/fontyourface_wysiwyg.install b/modules/fontyourface_wysiwyg/fontyourface_wysiwyg.install new file mode 100644 index 0000000000000000000000000000000000000000..b4d3cd789e7c3bc1d054335e69c93a1709afc115 --- /dev/null +++ b/modules/fontyourface_wysiwyg/fontyourface_wysiwyg.install @@ -0,0 +1,10 @@ +fid . ' { ' . $font_css . ' }' . "\n"; + } // if + + } // foreach + + return $css; + +} // fontyourface_wysiwyg_generate_css + +/** + * Re-writes wysiwyg.css file. + */ +function fontyourface_wysiwyg_rewrite_css($css) { + + // Write CSS. + + $destination = file_stream_wrapper_uri_normalize('public://fontyourface/wysiwyg.css'); + $destination_directory = dirname($destination); + + if (file_prepare_directory($destination_directory, FILE_CREATE_DIRECTORY)) { + file_unmanaged_save_data($css, $destination, FILE_EXISTS_REPLACE); + } // if + +} // fontyourface_wysiwyg_rewrite_css + +/** + * Implements hook_wysiwyg_include_directory(). + */ +function fontyourface_wysiwyg_wysiwyg_include_directory($type) { + + if ($type == 'plugins') { + return 'plugins'; + } // if + +} // fontyourface_wysiwyg_wysiwyg_include_directory diff --git a/modules/fontyourface_wysiwyg/plugins/fontyourface.inc b/modules/fontyourface_wysiwyg/plugins/fontyourface.inc new file mode 100644 index 0000000000000000000000000000000000000000..c0beb003424895cd1733292906ed80fb8536f36f --- /dev/null +++ b/modules/fontyourface_wysiwyg/plugins/fontyourface.inc @@ -0,0 +1,44 @@ + $font->fid, + 'name' => $font->name, + ); + + } // foreach + + $plugins['fontyourface'] = array( + 'title' => t('@font-your-face'), + 'vendor url' => 'http://drupal.org/project/fontyourface', + 'icon file' => 'fontyourface.jpg', + 'icon title' => t('Set font'), + 'css path' => 'sites/default/files/fontyourface', + 'css file' => 'wysiwyg.css', + 'settings' => array( + 'fonts' => $fonts_setting, + ), + ); + + return $plugins; + +} // fontyourface_wysiwyg_fontyourface_plugin + diff --git a/modules/fontyourface_wysiwyg/plugins/fontyourface/fontyourface.js b/modules/fontyourface_wysiwyg/plugins/fontyourface/fontyourface.js new file mode 100644 index 0000000000000000000000000000000000000000..c96ea5a2dfdd1346cd0f37370016a2a4338ac940 --- /dev/null +++ b/modules/fontyourface_wysiwyg/plugins/fontyourface/fontyourface.js @@ -0,0 +1,98 @@ +(function ($) { + +Drupal.wysiwyg.plugins.fontyourface = { + + /** + * Returns whether the passed node belongs to this plugin. + */ + isNode: function(node) { + return true; + }, // isNode + + /** + * Execute the button. + */ + invoke: function(data, settings, instanceId) { + + var button = $('#cke_' + instanceId + ' .cke_button_fontyourface'); + var position = button.offset(); + var fontSelect = $('