Index: js/ckeditor-3.0.js =================================================================== RCS file: /cvs/drupal/contributions/modules/wysiwyg/editors/js/ckeditor-3.0.js,v retrieving revision 1.2.4.5 diff -u -r1.2.4.5 ckeditor-3.0.js --- js/ckeditor-3.0.js 17 Nov 2009 15:31:33 -0000 1.2.4.5 +++ js/ckeditor-3.0.js 18 Mar 2010 20:42:10 -0000 @@ -24,7 +24,12 @@ } } } + // register Font styles + var wysiwygSettings = Drupal.settings.wysiwyg.configs.ckeditor[format]; + CKEDITOR.stylesSet.add(wysiwygSettings.customStylesName, wysiwygSettings.stylesCss); } + // + }; @@ -110,7 +115,10 @@ Drupal.wysiwyg.activeId = ev.editor.name; } }; - + + // Add the Font styles to this instance + if(settings.customStylesName) CKEDITOR.config.stylesCombo_stylesSet = settings.customStylesName; + // Attach editor. CKEDITOR.replace(params.field, settings); }; Index: ckeditor.inc =================================================================== RCS file: /cvs/drupal/contributions/modules/wysiwyg/editors/ckeditor.inc,v retrieving revision 1.2.6.5 diff -u -r1.2.6.5 ckeditor.inc --- ckeditor.inc 14 Feb 2010 00:03:28 -0000 1.2.6.5 +++ ckeditor.inc 18 Mar 2010 20:42:10 -0000 @@ -172,6 +172,12 @@ } elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) { $settings['contentsCss'] = explode(',', strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()))); + + // @todo also parse the css when no classes are defined + if($config['css_classes']) { + $settings['customStylesName'] = "custom_styles"; + $settings['stylesCss'] = _wysiwyg_ckeditor_get_stylesCss($config['css_classes']); + } } } } @@ -323,3 +329,27 @@ return $plugins; } + +/** + * helper function to parse the css + */ + +function _wysiwyg_ckeditor_get_stylesCss($css_classes) { + + $lines = explode("\n", $css_classes); + foreach ($lines as $line) { + $l = explode("=", $line); + $lc = explode(".", $l[1]); + + $style['name'] = $l[0]; + $style['element'] = $lc[0]; + $style['attributes']['class'] = $lc[1]; + + $css_styles[] = $style; + } + + return $css_styles; +} \ No newline at end of file