Not the usual which one is best, but does one exist at all.

For use as community portals it is vital that Granny or Mr. Grocer who are not expert computer users can simple create content. Therefore, no matter what the other powerfull benefits of Drupal, without a useable WYSIWYG interface I will have to drop Drupal for general public sites such as for charities etc.

After trying TinyMCE and FCKEditor it is obvious that these are not WYSIWYG for Drupal use. i.e. what you see during editing does not reflect how they will appear on the published page:-

  • The modules do not properly pick up the current theme CSS
  • TinyMCE has the option to use theme CSS 8¬), but is difficult to get working in practise 8¬(
  • TinyMCE display fonts at reduced sized making it unusable to many users with less than teenage 20:20 vision.
  • FCKEditor is either always on or always off, so for users to use it Admins give up ability to raw text edit
  • Both can have problems with destroying mark-up language such as PHP
  • Neither allow single stage image insertion

Caveats

  1. I know there are other editors but these are the two I have tried, and I have seen nothing to suggest that any of the others are Mr Grocer usable WYSIWYG editors.
  2. I don't want the moon on the stick, e.g. I would be happy to declare an editor WYSIWYG if it had no image or table capability but could display text being edited in a "What You See Is What You Get" manner.
  3. I know I have not yet contributed back to the Drupal community so have no right to demand functionality. If I continue using Drupal then I no doubt will contribute and/or donate. But if there is no WYSIWYG editor then it would be more productive for me, my business and my clients to use a different CMS (not a threat, just a reality).
  4. Some of my statements may not be wholly technically correct (.i.e. I am fallible), but to me (and many others) the key question is.. "is there a 'dumb user'-friendly WYSIWYG Drupal editor solution that can be consistently and at least relatively easily installed".


Hopefully this covers the pedants 8¬)
P.S.
I agree with a different posting that prefereably the core (or a module) should have an editor interface (hooks, admin screen etc.) to make easier integration between WYSIWYG (or other) editors and Drupal data entry boxes. This would give a consistent method for controlling CSS access, permission access, editor selection etc. and ease 3rd party editor integration.

Comments

StevenSokulski’s picture

Not the usual which one is best, but does one exist at all.

Well...if the usual is asking what WYSIWYG editor is best doesn't that kinda mean that at least two of 'em exist?

http://drupal.org/project/widgeditor
http://drupal.org/project/fckeditor
http://drupal.org/project/htmlarea
http://drupal.org/project/tinymce
http://drupal.org/project/wymeditor

John Bryan’s picture

TinyMCE & FCKeditor are not WYSIWYG editors under Drupal, they are merely pretty editors.

I have not tried all the others and would love to be told that one of the is functional, WYSIWYG and and either can be switched off to allow PHP etc. or will handle PHP markup etc.

Can you let me know if any of the others you list are "What You See Is What You Get"?

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

drupalprojects’s picture

About FCKEditor

in file fckeditor.module
you should add into function fckeditor_process_textarea next line to get own css rules working

".$js_id.".Config['CustomConfigurationsPath'] = '".$module_full_path."/fckeditor.config.js';
<b>".$js_id.".Config['EditorAreaCSS'] = '".$module_full_path."/fckeditor/editor/css/mycss.css';</b>

line should be added in bold
I've got it worked in my project as WYSIWYG editor ;).

John Bryan’s picture

After changing the line to point to the Theme's CSS file, FCKEditor started using the themes Body formatting:-

.".$js_id.".Config['EditorAreaCSS'] = '/themes/themename/style.css';

But this does not reflect the styling of node content, at least not necessarily. To get it working WYSIWYG I need to do one of the following:-

  • Make my Node follow default body formatting - to match the editor (I'd prefer to get the editor to match the node)
  • Find a way to control FCKeditor format in my theme's CSS. I think FCKeditor is going out of it's way to ignore local format setting e.g. CSS formatting of 'textarea' is ignored. Maybe there is some FCKeditor identifier that CSS could tartget - but I can't see it.
  • Hack FCKeditor to follow Node CSS formating.

This seems to highlight a benefit of a better editor interface in Drupal. Perhaps Drupal should run each editor session in the CSS context of the type of Node type (etc.) that it is being used to create. If the editors then are altered not to apply any CSS files but just use the current inherited CSS formating the editors can display edited content correctly.

Unfortunately the editors seem to insist on being too clever and re-apply explicit CSS formating from CSS files rather than just use the current contex.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

ideaspring’s picture

This method seems "closest" to being on the right track for implementation.

I can hack simple code, and write my own simple stuff from scratch... but when it comes to large projects like Drupal, let alone integration with a module and third party editor like FCKeditor, I'll have to leave that to the professionals. That being said, here's some thoughts that perhaps a developer (or better coder than I) could point out the flaws in:

Thought #1
Perhaps a module (FCKeditor module? or separate "Node Detect" module) could include code that detects the current node, and then updates the appropriate file(s) so that FCKeditor pulls in the correct CSS. For example, the the code line change suggested above, could be "included" from a separate text file which is updated by this new module. Or it could be possible that FCKeditor code is changed to automatically pull the correct information in.

Thought #2
Ignoring Thought #1... since there is a setting in Drupal to "aggregate" the CSS code (I've only used 5.x, so don't know if this is 4.x feature or not), could another module simply do the same sort of processing, and simply output this CSS to another CSS file pointed to by FCKeditor? Or... (since my first drupal site isn't in production mode I'm not sure what happens physically with the CSS files when it is enabled), perhaps the whole situation mentioned is removed once this function is turned on, provided FCKeditor is pointed to the resulting CSS file.

Thought #3
While not ideal... once a site is in a "production" status, and hopefully theming and module changes slow to the occasional updates, a style sheet could be made manually for FCKeditor by the designer. In fact, I really liked the WYMeditor demo... and while the editor isn't probably for me, the concept they use in their demo would be great for the proverbial "Grandma" mentioned in these threads. For example, if I'm the designer creating my style sheet manually (to be used by FCKeditor), I can create style names with intended meaning... such as "Important" or "Date" ... how something "important" looks as a comment may be different than in a blog post or story... but that would be a function of theming Drupal.

Thought #4
I was originally excited about simply making modifications in the CSS for Drupal theming... however, even using the Web Developer tool bar for Firefox... the CSS seems so convoluted with serious amounts of nesting... that it is really hard to identify the appropriate place to make even some simple CSS changes. I'm hoping that enabling the Aggregate CSS function resolves some of that... but from reading different threads, that appears to open a whole new set of issues.

Thought #5
Does anyone know if Pro Drupal Development book covers things like CCK, Contemplate, and/or Views?

John Bryan’s picture

Not had time to post before but also recently heard about Drupal 5's CSS aggregate facility which certainly sounds a large step in the right direction. For instance, rather than duplicating the same process TinyMCE can (in theory) be configured to use Drupal's aggregated file at wherever it is.

Anyone know where the aggregated CSS file is located?

The bigger problem is contex. And whilst I guess a module may(?) be capable of acting as a standard interface layer between the Drupal edit forms and editors, I think the degree of integration needed would be better suited as part of the core? Especially when you add other wish-list items such as controlling which fields have the editor, permissions on whether the user is allowed the editor, enable/disable button etc.

But the key things I think any interface layer should have to assist intergrated editors should include:-

  • Launch editor in fresh view-like page with all relevent node/block specific styling - For editors that can inherit CSS styling this will aid context by running the editor in the correct context and without non-relevant styling (e.g. without admin CSS styling)
  • Funtion/variable to pass location of aggregated CSS file
  • Funtion/variable to generate & pass location of CSS context file - For editors & code-languages that cannot inherit context a CSS file with the styles that the node/block would be operating in (e.g."body class="sidebars",div id="node-14" class="node",div class="content""), giving them the oportunity to explicitly recreate contex within their own environment
  • Funtion/variable to generate & pass location of context modified CSS file - A CSS file created where (e.g.) "H1" style is a composite of all formating that would be applied to "H1" in that contex i.e. the sum of 'Body H1' + 'Content H1' + 'Node H1' etc. This would be the most challenging method but also allow the easiest integration and would suit TinyMCE well.
  • Funtion/variable to pass featured style list - Possibly with user friendly text. For use in drop down style lists etc. (e.g. "H1=Heading1","H2=Heading2","H3=Heading3","Address")

Some of these functions are effectively to do the same task by different means. This is deliberate to allow different options depending on how the editor works.

It would be a good idea to compare current middleware modules for editors (e.g. the TinyMCE eitor module) to see which one has the best control (e.g. admin interface to select fields that editor is enabled for), then remove any specific-editor components to use as a base for developing an interface layer module.

All easy for me to say when I don't have the time nor the specific skills to impliment 8¬(

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

eaton’s picture

One of the concerns to keep in mind is the fact that WYSIWYG editors do NOT necessarily have any idea of what context their text will be displayed in. A comment? A page? A story? An email? Given the fact that any reasonably complex theme probably includes different styling rules and formatting *per node type*, and given the fact that a simple textarea field has no concept of its own context, I'm not sure if there's any way to really reflect the 'final appearance' without module developers providing an explicit preview step, the way the node edit form does.

Anyone have thoughts on this?

--
Lullabot! | Eaton's blog | VotingAPI discussion

--
Eaton — Partner at Autogram

John Bryan’s picture

Re: 1st Bullet
Point was rather than launch the WYSIWYG editor within the inline node edit field (and therefore in the context of a edit field) to have a WYSIWYG-EDIT button that will open the editor within a modified View mode so that it is operating within the Node (or blocks) View CSS context. It will also mean that the edit area is closer to the live published viewing area rather than a reduced width & height area due to being displayed within the normal edit field area.

Re: 3rd Bullet
This is an alternative for the many(?) WYSIWYG editors do not seem to inherit styling from their environment but instead demand to be pointed to an explicit CSS file. When WYSIWYG-EDIT button is activated generate a temporary CSS file that consists of modified content based on what each style format will look like in the particular nodes context. This way when "H1" is displayed in the editor, instead of showing as the Site default it is rendered as per "H1" of a node of the particular type being edited.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

ideaspring’s picture

Probably like many here, I have some coding experience, but not the skill set or time for implementing this... however I think context is possible with the use of Drupal's hooks, which is where a module would come into play. I might be wrong... but I think in theory it would be possible for a module to "know" what launched it. The trick is, how do you implement this?

I could see a variation of John's suggestion, where a custom module might provide a link under the text box, that when clicked, it would first place the right CSS file (or some other method of "passing" or simulated passing of the right CSS information to the editor), then open a popup window with FCK, Tiny, or whatever editor.

I created a "sandbox" version of my site, so I may play around with the CSS aggregation, and see how I can contribute to this in some small way. I might be able to come up with some pseudo-code of my understanding of the process - then we'd just have to find someone to actually code and integrate it.

Martijn de Wit’s picture

hy John,

I don't know how much knowledge you have off internet, webdesign and webdeveloping; but the list above are WYSIWYG webeditors!!!
Of course there are bigger commercial ones... but that's comparing a apple with a lemon... I think those are the best you can get on the web... (i'm a big fan of the http://drupal.org/project/wymeditor )

Commercial ones: http://www.xstandard.com/ or http://xopus.com/ are totaly differend...

Or are you looking for an edit sollution in the front website??
Like tridion (http://tridion.nl/Images/siteEdit3_tcm7-11608.PNG) has???

John Bryan’s picture

WYSIWYG means "What You See Is What You Get"

Re my knowledge: I have worked or played with computers since the ZX81 (i.e. since 1981), have written several websites but am not a dedicated web-author or admin. I have been using WYSIWYG editors since before Micrsoft had dominance over the PC desktop.

My point is that it does not matter how pretty the editor is, unless it looks identical to the printed/published result it is not a WYSIWYG editor. And whilst you could clone/modify the content of a theme's CSS into the WebEditors own CSS files, this will fail to be WYSIWYG as soon as the theme is changed or the themes style is altered.

By the way I like the looks of the WYMeditor for pro/technical user purposes. But it is no good for 'Granny' or 'Mr. Corner Grocer' usage.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

eaton’s picture

I, too, have been doing Desktop publishing and graphic design since Adobe said, "Hmmm, 'Postscript' sounds like a good name...", and working with the web since before tables existed. (Mmmmm, Navigator 1.2...)

I will say this in as clear a fashion as I can: I believe that what you ask is impossible. Or, rather, impossible without amounts of raw labor that would make the Drupal 4.7 beta-testing cycle look like a walk in the park. If Adobe Golive and Dreamweaver are unable to deliver perfect Wysiwyg when they have complete control over the rendering environment -- and a huge array of tools focused on nothing but HTML design -- the odds of managing to fit something better into a Javascript based CMS plugin that runs on all browsers and can be used by Grandma and fits in an unobrtusive little toolbar at the top of each textarea is a little... over the top.

There is just always going to be a tradeoff: ease of editing versus simplicity of formatting versus 100% flexibility versus cross-browser compatability. We might try to solve this by handcuffing themers to a strict, standard set of styles and removing their ability to display node content differently than the way it was typed in. We can try to solve it by handcuffing module developers so that their code can't vary the way nodes render. We can try to solve it by adding a complex Javascript version of Drupal's native theming system, duplicated on the client side. Or, we can give users the 'preview' button.

I do understand the need for clean, simple HTML editing tools for web apps. I put together a blog for my mother (!!!), and let me tell you -- I wasn't going to hand her an HTML reference manual. *grin* TinyMCE was a fine solution, even though there are quirks.

Drupal can definitely help matters by providing better hooks to editors to plug into (an easy, standardized way of flagging a form field as 'wysiwyg-able', for example), but most of the complexity lies on the side of the Wysiwyg editors themselves. There isn't much chance that the Drupal community itself will take on the enormous task of solving this problem from scratch, internally. As such, it might make more sense to take up these concerns with the development teams/communities for several of the Javascript editor pojects themselves. Their accompanying Drupal modules are really just 'glue' that make them appear in the Drupal context.

--
Lullabot! | Eaton's blog | VotingAPI discussion

--
Eaton — Partner at Autogram

Leeteq’s picture

It should be possible to make a similarly slick implementation of TinyMCE for Drupal as Wordpress has done also using Tiny. We could also probably improve it a bit even within the available resources.

After discussing and defining what the specs would be, including finding out the cost in time/efforts/moneywise, we can establish a bounty for it. That could be a sufficient next step forward.

Ref. "Requirements for "true WYSIWYG" editor?"
http://drupal.org/node/126233#comment-227878

.
--
( Evaluating the long-term route for Drupal 7.x via BackdropCMS at https://www.CMX.zone )

John Bryan’s picture

I am not suggesting that pixel perfect formatting is required. And I certainly don't see that an ergonomical editor in Drupal is impossible. TinyMCE could be WYSIWYG with Drupal if it's font size shrinking bug is fixed and Drupal was made to supply TinyMCE with the current compiled CSS information.

The main issue is not creating a super-duper perfect web-based GUI editor. The larger issue is how to create an interface between Drupal and text editors (whether 3rd party or made for Drupal) so that a) the editor can be supplied with appropriate CSS information & b) Drupal related, non-editing tasks are carried out by Drupal (e.g. permissioning, availability, launching etc.)

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

RwDwR’s picture

I would like to make two comments on what you are saying:

1: This font shrinking bug you can fix yourself. I saw more people complain about this, but if you understand the cascade effect in css for applying rules the font size bug "makes sense" and it is easily fixed (in fact I thought of two methods to fix it, but the second requires cooperation from your editorial person). If you use a self defined style sheet you can add the rule "p { font-size: 24px !important; }". Because I could not make my rule specific enough I just make it very important to get a high score in the cascade, overriding any other font-size.

This works perfectly well with the second thing I wanted to say:

2: How do you suppose Drupal should supply the current compiled CSS information to TinyMCE? Since every theme can have its own structure there will be no way Drupal can figure out which of the styles to export to TinyMCE and which it should not. The problem is that the text on the webpage sits inside *a* structure, where within TinyMCE the text parent is more or less the body element. So I think it is not possible for Drupal to extract the styles that TinyMCE needs. (Actually if the theme is really realy simple it should be possible)

Later on you reply somewhere saying you had to rule out TinyMCE because of the font size. Perhaps this makes TinyMCE an option again??

John Bryan’s picture

1: Thanks for fix information and I will be trying TinyMCE again as a non-WYSIWYG Drupal editor. But this is a non-WYSIWYG fix as it will not take into account changes in theme and context etc.

2: How the editor obtains the right context IS probably the main problem. Suggestions have been made in this thread and others but largely come-down to the fact that Drupal needs a WYSIWYG API so that control, context and styling can be passed by Drupal to the editor in a way so that the editor inherits the environment that it is creating content for. This is not insurmountable, and the cure may almost totally be on the Drupal side. With use of the Aggregated CSS Cache facility in Drupal a part of the solution may be there i.e. configure the editor to get it's styling from the CSS cache file.

The other MAJOR part of the problem (context) will probably involve a variation of the "View" tab. That is a seperate tab for the WYSIWG editor so that is not run as a section in the Admin screens but run from a variant of the live display process, therefore gaining the full context.

The first part I may well be playing with shortly. But playing around with tabs, admin pages and understanding of core display behaviour is well beyong my current knowledge 8¬(

P.S. thanks for the info

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

John Bryan’s picture

See my notes here :-

http://drupal.org/node/159741

Doesn't give TinyMCE context but could supply it with the current total CSS.

P.S. using important as a work around has failed so far. Although it would have to be a temp solution anyway due to disability access needs and legal requirements but it would be more disability friendly than such tiny text.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

RwDwR’s picture

I have used Drupal for about 10 sites since that post and !important never failed even once. Perhaps you could show me an example of where it does not work as expected? I have been able to make normal text inside p tags 14px large for a website inside TinyMCE....

John Bryan’s picture

I don't have any examples of it not working as I now have a better fix for this. See http://drupal.org/node/160657 for my notes on how to make TinyMCE more WYSIWYG within Drupal.

If placed in the blank.htm then !important is a site specific change that may need to be tweaked for each site where there is a different default font size. It is a hard-coding of a font size rather than just using the current P font size and does not reflect site, user or module variation.

But more importantly, if you are a European business or if your users may be elderly/disabled/etc. or if you just like to comply with best practise for site usability and accessability... then !important is definitely unsuitable as it prevents the site visitor/user from controlling the font-size via the browser menu "View/Text size/Larger" etc. Using !important for a font size is technically illegal (though no one has yet been prosecuted) for organisation and business use in many countries and certainly an obstacle to many disabled and aged visitors.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

rkendall’s picture

then !important is definitely unsuitable as it prevents the site visitor/user from controlling the font-size via the browser menu "View/Text size/Larger" etc.

I don't think you are correct about that. User preferences always take priority over site CSS - !important is no different.

John Bryan’s picture

Reference http://www.w3.org/TR/WCAG10-CSS-TECHS/ (CSS Techniques for Web Content Accessibility Guidelines 1.0)

Whilst the behaviour of !important has according to this altered in CSS2 I think I was just confusing my issues. You are right that !important does not cause the accessibility problem that I claimed, thanks 8¬}. Although font sizes set in px (e.g. "14px"), especially in conjuction with !important, do cause a serious accessibility problem.

You should where ever remotely possible set your font sizes in em (e.g. "1.5em"). This uses relative font sizes where the size of an "em" is controllable by those font larger controls etc. that I mentioned earlier. In my tips for Tiny MCE I use the following to tell TinyMCE to use the browsers default font-size (i.e. user controllable):-

body.mceContentBody {
font-size: 1em;
}

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

jotot’s picture

IMHO it's up to you how much your WYSIWYG editor is WYSIWYG on your site with your stylesheets.
TinyMce is pretty flexible in this matter - you can attach dedicated style sheet for editor content window. and fine tune CSS to make it more WYSIWYG.
CSS is context sensitive and context never is the same in editor window and live site.
I doubt you can implement editor like Dreamveaver in Java Script - an even Dreamveaver is not 100% WISYWYG.

svenc’s picture

Hope this help:

http://www.standards-schmandards.com/2007/wysiwyg-editor-test-2/

Also, I don't think any WYSIWYG editor support PHP code.

John Bryan’s picture

Unfortunately they based their tests on online demos and therefore do not appear to have tested whether they are just pretty editors or do actually display content as it will appear on the published page i.e. if the editors use the host sites CSS.

But thanks for the link anyway.

Re: PHP Code
I don't expect a WYSIWYG editor to create code, but I do expect it to preserve code. It is also nice if it preserves white spaces (etc.) that may have been put there to make the raw html readable.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

StevenSokulski’s picture

Through my quick once over of the above article it appears that they attempted to re-create a sample document in each editor, then evaluation the editor based on how easy the editor was to use and how well it replicated the sample document. The online samples of these editors do provide the ability to view the output in both source and full text presentations providing you with an example of exactly what the editor would do on your Drupal site.

I use both TinyMCE and FCKeditor on various sites that I run and find them easy to teach to users (next to no teaching is necessary if the user is familiar with Microsoft Word or WordPerfect editing. What about those WYSIWYG editors to you not believe properly operated in WYSIWYG? As far as my experiences go they work just as a WYSIWYG editor should.

John Bryan’s picture

no text

- other than the text saying "no text" ofcourse,
damn...
and other than any text saying "other than".
O.K.! there is text, but none relvant to the discussion in hand 8¬)

svenc’s picture

John wrote "don't expect a WYSIWYG editor to create [PHP] code, but I do expect it to preserve code". But that would violate the rules of HTML. I don't think there is such a thing as a WYSIWYG that preserves PHP code.

John Bryan’s picture

That would mean any page that contains PHP can not be xHTML compliant.

As far as I know PHP is perfectly xHTML compliant, as is other code, as it exists in it's own context on the page i.e. between <?php ... ?>

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

svenc’s picture

Once a file containing markup and PHP is processed by a PHP script engine, then the resulting Web page can be valid (X)HTML. But WYSIWYG editors edit data before it is run through the PHP script engine!

For example, go to W3C Validator and in the section "Validate By Direct Input" enter the following HTML and PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>

Now, there is an exception. XHTML user agents will think that <? ... ?> is a processing instruction. In that case, you can have a file with XHTML and PHP that is valid XHTML. For example:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>

Of course this won't work for other server-side scripting languages like ASP if they use script delimiter tags like <% %>.

kreynen’s picture

There is a lot of development going on in the TinyMCE community that Drupal users have a difficult time taking advantage of. The PHP Plugin is really slick despite being a perpetual beta.

wardo@drupal.org’s picture

It seems to me, although I might be wrong, that we are not seeing what each other means in this discussion. I think John (original poster) is saying that when you type into an editor it looks different from what will appear after you click "submit" and the page is viewed. So you can set some text to be H1, but that text will look different in the editor than it will when finally displayed. This is the difference between true WYSIWYG and "pretty" editors as he calls them.

So (again I think this is what he is saying) what he wants is the editor to use the CSS that will eventually be used when displaying the content.

What he is not disputing is that you can get many editors that can do bold, italic, H1, H2 etc.

I have only ever used TinyMCE so far. I agree that I get this problem with this editor, but it is quite possible that there are work-a-rounds that make it work "properly". I wish it would work as John is requesting, however I also find that most of my users can deal with the fact that it will come out a little differently when they see it in the final web page.

Hope this helps rather than clouds this discussion.

Chris

John Bryan’s picture

Thanks Chris,

You've got the jist of what I mean by they are not WYSIWYG, i.e. they are not. I was beging to think that these days the phrase WYSIWYG had totally lost it's meaning through over use and had just become an accronym without a definition.

TinyMCE seems the closest between the two that I tried, with some fudging. But I have had to rule it out because the small font size during editing makes it unreadable by many of the even more elderly than me ;¬).

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

zoon_unit’s picture

I come from old school, back in the days when there were hundreds of software companies trying to make things better, not just 2-3 mega-corporations that have sent us all back a decade in innovation. (something a lot of our younger brethren are oblivious to) I laugh (when I don't cry) at the young kids who don't even know what a 4GL is, or how you could develop entire wysiwyg applications on a pc with one single program.

But to get back to your original problem. I agree that wysiwyg isn't true if it's not truly wysiwyg. BUT, from the standpoint of productivity, how critical is that exactly? HTML was originally designed to convey INTENT. That's why we have tags like "strong" vs. "bold." If you've got "joe average" trying to post something pretty on the Internet, how important is it really, that font sizes match up exactly? It's more important that the RATIOS between font sizes work. In other words, what message is the person trying to convey?

I can tolerate a small difference in font sizes between the editor and reality, so long as the editor allows the "author" to convey their message using the font tools we have available to communicate EMPHASIS. The unfortunate fact is that the Internet does a very poor job of giving us the kind of instantaneous feedback, we're all used to on a dedicated home computer. This is changing with javascript and ajax, but it takes time.

I haven't delved into the particulars enough, but I think tinymce has options to use the site's natural styling when using the editor. Why haven't I delved into the particulars? Because I'm not sure that exact font size is really that important for an editor to be productive for "joe average."

John Bryan’s picture

The concept that content should be seperate from formatting is fine for those that understand it - so long as you don't use WYSIWYG to describe it.

But for Granny and Mr Grocer they are confused that look and feel they just created does not appear on the site, it has just been lost. Either they think:-

  • that they are doing something, that it is their fault.
  • That the site is broken and not working properly

Either way they are being put off from contributing to the site content. This is not just me being picky, it is actual feed back from target audience of members and organisers of a charity that I have been writing a website for. If Drupal is to be usable to joe public then the technology needs to adapt to the person not the other way around.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

StevenSokulski’s picture

Are you saying that when you lay out a node using whatever editor you were testing and submit it all of the formatting went away? What sort of formatting are we talking about here?

John Bryan’s picture

I think you may still need to read Chris's "Are we understanding each other here"

Scenario
CSS for the theoretical site is
Site <H1> is largish white Arial text on dark blue background
Site <H2> is largish dark blue Arial text with bottom block border against pale blue background
Site <P> is small black Times New Roman text against pale blue background

Typical default styling for WebEditors is
WebEditor <H1> is very large bold black Arial text on a white background
WebEditor <H2> is largish bold black Arial text on a white background
WebEditor <P> is small black Arial text on a white background

Granny writes her content laying it out using drop down <H1>, <H2>, the automatic <P> and possible other available options. She has it styled in a way she is happy with when she clicks "Submit" she expects it to look the way she created it. There is nothing un-reasonable in her having this expectation, after all why show it looking all pretty if that is not the way it is to come out.

But when she clicks submit she looses the black on white formatting and the <H1> has even lost it's text size. She creates the node content using formatting and it is lost to be replaced by a completely different fomatting.

I hope this explains it 8¬}

P.S. Yes, I know that you can tailor the editors CSS but this goes awry as soon as a different theme is used or the existing theme is updated.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

StevenSokulski’s picture

Okay. Sorry for the confusion. In my experience with TinyMCE I have defined font sizes, colors, etc. directly and disabled the use of "Formats" which make us of paragraph and header tags. When a user says they want a font size of 36 pt for a line of text the final HTML output that ends up in the database says that it should be 7 (equivalent of 36 pt) not H1 or H2 or anything of that sort.

Try it out here:
http://tinymce.moxiecode.com/example_full.php?example=true

Note that the drop down titled "-Format-" is the one I was talking about using Header and Paragraph tags. The "-Styles-" drop down is used for administrator configured styles. For example if you'd like to allow a preset for text that is 24 pt, red, bold, and underlined you could create a style here.

I can see the use of H1 and P tags as causing issues. But if the formatting information supplied by the WYSIWYG editor is more specific than H1 or P then there shouldn't be much of a problem.

John Bryan’s picture

Glad we starting to understand each other 8¬) What you are saying is that TinyMCE etc. can be forced to be WYSIWYG rather than just being so in the first place. Even then possibly only by removing CSS control from the site and imbedding style in the content itself. For my purposes not very user friendly:-

  • Time overhead with multiple Drupal websites of creating seperate webeditor CSS files to match each theme CSS
  • Effectively prevents WYSIWYG for sites with optional themes
  • Fixed font height styles goes against United Kingdom Disability Access laws, fixed font sizes prevents browser based font resizing. TinyMCE tends to try and use fixed height.

But thanks for the feedback. The impression I am still getting to my root question is that there is currently no WYSIWYG webeditor for Drupal.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

svenc’s picture

John wrote: "do actually display content as it will appear on the published page". In which browser? Different browsers render pages differently. Fonts will also render differently when viewed from a Mac than a Windows machine. Users also customize browsers to render pages according to their needs. Some browsers like Lynx don't render pages in a graphical way. It is your job as a Web designer to inform your customers that the Web is not a printed page.

Also, editors in CMS are content editor. What if the CSS is based of a page template like this:

...<div id="wrapper"> ...content from WYSIWYG goes here... </div>...

And the CSS is:

#wrapper > h2 {color:red}

If the WYSIWYG editor is pointing to the CSS for the site, since the editor does not contain <div id="wrapper"></div> then if the content in the WYSIWYG editor contains an h2, will not be formatted to the above rule.

John Bryan’s picture

If the user is on a 'MAC and using Firefox' then the WYSWIG output is being generated on a 'MAC and in a Firefox session' and will therefore will be displayed the same as a 'MAC and using Firefox'. Like wise on an MS Windows IE browser the CSS formatting be displayed in MS Windows IE browser fashion.

BUT.. even if the Java inline output (for example) does not fully reflect the exact browser behaviour I am not worried about subtle or exotic differences such as precise spacing between tables cells "BEFORE" functionality. What I am concerned with is wether H2 is displayed as the sites 'white text on black bar' instead of the editors default of 'black on white background'. Such behaviour is not greatly affected by normal browsers.

And as far as the technical obstacles... obstacles are there to be overcome 8¬). I don't want to get in to technical discussion of how to adapt Drupal or code an editor. But at the very least I can see a reasonable work around.

To go boolean though I take it your vote NO - there is no WYSIWYG editor for Drupal.

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

goggie’s picture

John,

I share your sentiments 100% - maybe it is because we are old school and we understand what WYSIWYG means and because we have actually written some C++ editors that DOES do it?

I have really studied TinyMCE and in my opinion it is not solid. As the main developer states it is xHTML complient, but it is not. It uses align statements to align tables etc etc.

I have looked at the other options, but it all boils down to the fact:

As far as I can see all GPL CMS's uses 3rd party editors and herein lies the imminent problem of integration.

I have found that Drupal devs shift the blame onto TinyMCE, e107 devs shift the blame onto TinyMCE, joomla devs shift the blame onto TinyMCE et al. The blame MUST lie on the shoulders of the devs - it is after all their overall package they are sending out into the world.

IMHO the golden rule remains: If you want to make use of third party software, make sure it complies with your standards and you understand how to integrate it into your software's framework. DO NOT rely on us as users to be your test bench!

Well, that said .... where can I find a decent WYSIWYG editor ???

MikeyGYSE’s picture

You're saying NOT to relu on users to be a test bench, surely that's the WHOLE POINT of Open Source Software? The "WYSIWYG" editors for Drupal are notoriously spotty, none of them have been able to match what I need a WYSIWYG editor to perform on my site. I need it to fit with the design of the site itself, and also for its output to match my site's formatting, this just doesn't happen without considerable hacking of the editor. We need a group to get together and get a decent WYSIWYG editor together, something the Drupal CMS can call its own.

-----------------------------------------------------------------
Michael O'Toole

Gay Youth :: South East - Founder & Operations Administration

drupalnesia’s picture

John Bryan,

Let's me share my experiences in wysiwyg area. After hacking TinyMCE, openWYSIWYG and WYSIWYGnow editors than I found that only Drupal has seriously problem in editor sections. You never found this problem in Joomla. Why?

Because Joomla (and many CMSs) by default support an editor and this mean that they put a basic way how to provide an editor on their CMS way. On other side, Drupal supports for an editor is still premature. Drupal only supports an id for textarea that will be used for 3rd party editor.

What does this mean for developers? They are conflict of Drupal js, jQuery and the 3rd Party js. And, some of these js are redundant/duplicate. Your idea is great, but until the core dev of Drupal include an editor.

In short, Drupal architecture must provide a better way for wysiwyg editor by including a default editor. I think this will be a very2 long time because Drupal has no roadmap for this issue (where's Drupal roadmap?). As I remember, the core dev didn't like to provide a default editor because they want Drupal still simple (and small size). Another issue is Drupal rule, Drupal doesn't like to include any non GPL s/w (FYI: TinyMCE, FCKeditor, and openWYSIWYG is not GPL but they are LGPL!), I don't know if Drupal accepts LGPL or not (on Drupal handbooks only say: All code must be licensed under GNU/GPL).

Otherwise your idea will be a dream only. Better you speak to the core dev, maybe they already include this issue in next version, Drupal 6.

HTH

Leeteq’s picture

Ref. this one:
http://drupal.org/drupal-6-status-update#comment-228039

"More than TinyMCE
Boris Mann - May 3, 2007 - 04:07

I wish I could deliver something that would knock their socks off...something more than TinyMCE. I look at the WYSIWYG editor at wordpress.com and I think, "Wow, I wish I could do that on my sites!"

The Wordpress.com WYSIWYG editor *is* TinyMCE."

Also see my comment in that same thread:
("Well that really nails it, doesnt it?")
http://drupal.org/drupal-6-status-update#comment-228121

.
--
( Evaluating the long-term route for Drupal 7.x via BackdropCMS at https://www.CMX.zone )

Leeteq’s picture

So to take WYSIWYG in the strict sense, what would the requirements be?
Perhaps make a list and arrange user voting on the importance of each item (within the context/focus of finding a spec that fits the "strict definition")?

That could be useful as a guideline and hopefully serve as temptation for developers.

Hmmm, lets see - from the top of my tiny head:
(not necessarily in prioritised order, nor a complete or "most important list", merely a quick brainstorm list to initiate some discussion on what such a list "should" include.)

  • The text should be based on the site CSS and simply show the text that way, exactly as it will after saving the node.
  • Simple way to insert images into the text (ok using existing/other contributed module), but the point is that it should imediately show up in the text exactly as it will after saving the node.
  • A really working convenient way to select existing CSS-styles from a drop-down list. I havent seen that work "out of the box" in the exiting editors I have tried.)
  • It should probably be possible to zoom in to enlarge the text for "editing convenience".
  • Full-screen feature (also for editing convenience, still as true WYSIWYG, of course)
  • The standard Preview button for the node post would only display the node with its categories etc., (content that other modules would affect), but the body text would not need preview.
  • Possibility to get "backstage" to code view and back to WYSIWYG without needing "preview" button for that.
  • Potentially make sure it can be used with interesting developments such as the Collaborative editor project: See http://drupal.org/project/collaborative_editor and http://groups.drupal.org/soc-collaborative-editor
  • etc... (chime in, please)

.
--
( Evaluating the long-term route for Drupal 7.x via BackdropCMS at https://www.CMX.zone )

Wimmmmm’s picture

Some more features on the WYSIWYG wishlist:

  • when editing text of a content type, make use of CSS definitions & node template of that content type (hard one?)
  • in extension: when editing a block, make use of CSS def & template of blocks, even in multiple regions. Most likely you'll indicate region first, then edit in right context.
  • standard preview button should display teaser and full node in right context (what if node is displayed in multiple lists in the site - with multiple node templates?)
John Bryan’s picture

My apologies for clogging up the "Drupal 6: Status update" announcement http://drupal.org/drupal-6-status-update. I did not mean for my single comment to generate so much response in an announcment thread.

Some comments to what has been said:-

  • I was only after a yes there is or no there is not type response. I was not sure at the time whether I should have posted it but it was an on the spur enquiry dashed of quick whilst it was in my mind and had the oportunity.
  • Yes there may be better places to make this point, but with the forums this does not necessarily get to the attention of core developers and I did not know where the correct place would be. Even at the moment I don't know which Drupal component this should be recorded against as a 'Feature Request'.
  • Yes I have a commercial business, but the community portal work I am doing is for charities - my commercial customers don't need this facility and I am at heart a one person business struggling to pay the mortgage so can't justify paying for development for functionality that I won't gain from.
  • Even if my suggestions were to be for business gain, I would hope that the most important thing would be whether they would benefit the Drupal community and not whether individuals gain profit from it.
  • I think a) it is a shame that trying to assist through suggestion can seem to be stamped on by the defensive & b) that those suggesting need to give allowance to those being defensive who have sweated to contribute to Drupal
  • For many, myself included, this is not a last minute inclusion request into version 6 but a question raised at first hearing of 6 as an active project (as opposed to refing 5.x). Timing was prompted by the announcement.

Again I apologise for my posting, I fully appreciate the wonderful work done by others. My suggestions are in no way a criticism of work done.

Could I ask anyone who wants to discuss Drupal netiquete, proper request process, who is entitled to make suggestions or attitudes to those who make suggestions - to start a new thread. As can be seen by this pre-existing thread, I am interested in the technical topic of WYSIWYG and how Drupal impliments it (or not).

Regards

John Bryan
www.ALT2.com
Application Integration Specialists
Tel: UK 08700 3456-31

forngren’s picture

I'm just throwing in my 0.02€ here but:

I have had the idea of a true Drupal WYSIWYG for some time. My plan is to hack/modify/write plugins for wymeditor. The latest version is even jQuery-based! If you haven't already, peek around a little with it feel for yourself. It feels really lightweight and have the potential to become really web 2.0-isch. Most exciting is however the code. Since it's rather new it's still clean and weel-thought IMO.

I'm not sure what I want to say with this post.

Ohh, and this site can be a little bit tricky to find, http://trac.wymeditor.org/trac

ideaspring’s picture

I will be keeping my eye on this one. :-)

shamrockvi’s picture

I wouldn't normally get involved in this - too much potential for a flame war here.

But

@John Bryan I simply have to say this. I'm a Drupal end-user i.e. I design / develop site with Drupal. I'm not particulalrly involved with the community here, though I am so with the Ubercart modules.

My first reaction when reading the thread was to "roll my eyes". I've taken a deep breath now.

So this contribution is positive, I'll give an overview of what I do to get TinyMCE working the way you want it - entriely with css.

  • use the YUI reset and fonts and css files in your theme. Include them first in your list of css files. They simplify your css by removing all default browser styling, and force you to specify exactly how you want things to look.
  • Structure you site's css to fully separate the major section positioning (i.e. layout of page, block positioning etc) from the styling of editable elements (h tags, p tags etc). I do this by using the example found with the zen theme of having a layout.css file for major layout, and a sep[arate dcss file that deals with "styling" stuff.
  • any css rules referencing the "body" tag need a second rule referencing "body.mceContentBody" eg:
body, body.mceContentBody {background:#ffffff;font-size:m;}1em;}
  • any css rules referencing your "main content area" tag need a second rule referencing "body.mceContentBody" eg:
div#maincontent blockquote, body.mceContentBody blockquote {
font: italic 1.1em Georgia, "Times New Roman", Times, serif;
background: url("../images/quote-left.png") no-repeat left top;
padding-top: 10px;
padding-left:70px;}
  • make tinymce use a defined css file for the editor. (use %h\%t\editor.css) in the css file path box - this will set the css path to the path of your current theme + css file editor.css.
  • in editor.css use @import rules to include all css files except you layout.css - not necessary and often these rules introduce "funny" stuff into the editor window

et voila your problem is solved.

Ignore the actual css I used - it is only important to know that when TinyMCE is on it is in an iframe (i.e. acts as a standalone page) so you have to slightly refactor your css to reference this standalone page which has the class "mceContentBody" applied to is body tag.

Can I just say that whilst you request and enquiry are very much valid, your approach could have been improved so it solicited answers rather than flames.

OpenChimp’s picture

I'll be trying this out when I have time to go through my css file and make the appropriate changes. Seems simple enough. Thanks for the pointers. My thoughts about potential workaround was more complicated, so I probably would have never gotten around to doing it.

rkendall’s picture

Wow, some useful information, instead of just hot air :)

Thanks.

--
Ross Kendall
UK based Web and IT consultant specialising in Free and Open Source Software technologies.
http://rosskendall.com

IrnBru001’s picture

My problem has been that I can't even get the available WYSIWYGs to even work in drupal 5.x. Both FCK and Tiny worked in 4.7.x (at least worked!) but neither work on 5.x.

platform8-1’s picture

While I have not yet fully tested this editor, it certainly appears to be able to display content through the sites stylesheet, making it truly WYSIWYG (as you explained was your requirement John). The one downside (and what will probably prevent a number of people from being able to use it on their site) is that you have to install it to your computer first. It seems more suited to websites with staff posted content, not community driven content.

It has a lite version for free here: http://xstandard.com/ (and a paid beefier version).

Some more interesting links (probably have to install it first):
http://xstandard.com/en/test-drive/lite/separating-content-from-formatting/
http://xstandard.com/en/test-drive/lite/semantic-markup/

Worth checking out anyway, might suit some of you out there.

amusis01’s picture

It would greatly help this issue if people really tried to stop thinking like developers and instead see this issue from the perspective of 'Granny', 'Mr Grocer' and the 99.999% of the human race who know nothing about coding, do not want to build their own CMS, cannot afford to employ a coding expert, and just want Drupal to work as easily as Yahoo, Blogger or MS Word out of the box.

Many publishers (me included) choose open source CMSs because we cannot afford to hire web development experts. There are millions of small sites with only 1 or 2 authors, or church sites, or country club sites, etc etc, that have no IT staff. They (I) need a Drupal that out of the box allows the WYSIWYG editing capability we are used to when we type e-mails in Yahoo or compose letters in Word, or update our Blogger blogs. And we don't want to install it ourselves.

It's no more about pretty code. The buzzword these days is 'ease-of-use'. This is because the man on the street is sick of software that requires an IT degree to install and use. The commercial guys are falling all over themselves to sell their products as being easy to use 'without HTML knowledge'. Alas, the open source guys still sneer at users who want things easier: 'Install XYZ', 'Configure ABC', blah blah blah. Easy for YOU to say- I can't tell a CSS from a pink elephant.

I moved from Joomla because it didn't have comments and a forum at core. I was excited to see Drupal had these, and was faster than Joomla. Now I find that the image uploading in Drupal is atrocious, and it has no WYSIWYG rich text editor. These are the 2 most complained-about features in Drupal, and for many potential users, it's a make or break issue.

If the expert developers would just fix these two elephants in the room, instead of continually being defensive and putting up technical arguments, Drupal would be the best CMS in the world. If Joomla, Movable Type, Blogger, Open CMS, Wordpress, etc all have at least rudimentary WYSIWYG RTEs, there is no excuse for Drupal not having one- except just human stubbornness.

Joomla used to have a horrendous image upload function. It's just been fixed in the latest version. These things can be solved. It may be a big task or it may not- I don't know, I'm not a geek, I'm an accountant who publishes as a hobby. But whether it takes a week of coding or a year, until it is done, Drupal is just not accessible to the ordinary user who doesn't have a web developer on payroll- and I thought they're the ones who matter most.

I mean, how riduculous is this: at the bottom of this comment box is a link saying 'More information about formatting options'. Clicking it takes you to the HTML manual I have copied and pasted below, which tells you how to format your comments- using code. Obviously, the Drupal developers know that people need to format text when making comments. But instead of this long manual which is hieroglyhpics to the non-geek, is it not easier to just have a rich text editor? Why would non-IT people want to learn HTML when they're used to doing without it on Word and Yahoo?

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Compose tips
Web page addresses and e-mail addresses turn into links automatically.
Allowed HTML tags:

 <del> <blockquote> <q> <sub> <p> <br> <ul> <ol> <li> <dl> <dt> <dd> <a> <b> <u> <i> <sup>

This site allows HTML content. While learning all of HTML may feel intimidating, learning how to use a very small number of the most basic HTML "tags" is very easy. This table provides examples for each tag that is enabled on this site.

For more information see W3C's HTML Specifications or use your favorite search engine to find other sites that explain HTML.

Tag Description You Type You Get 
Header <h1>Title</h1> Title 
Header <h2>Subtitle</h2> Subtitle 
Header <h3>Subtitle three</h3> Subtitle three 
Header <h4>Subtitle four</h4> Subtitle four 
Header <h5>Subtitle five</h5> Subtitle five 
Header <h6>Subtitle six</h6> Subtitle six 
Emphasized <em>Emphasized</em> Emphasized 
Strong <strong>Strong</strong> Strong 
Coded text used to show programming source code <code>Coded

Coded
Deleted Deleted Deleted
Block quoted

Block quoted

Block quoted
Quoted inline Quoted inline Quoted inline
Subscripted Subscripted Subscripted
By default paragraph tags are automatically added, so use this tag to add additional ones.

Paragraph one.

Paragraph two.

Paragraph one.

Paragraph two.

By default line break tags are automatically added, so use this tag to add additional ones. Use of this tag is different because it is not used with an open/close pair like all the others. Use the extra " /" inside the tag to maintain XHTML 1.0 compatibility Text with
line break Text with
line break
Unordered list - use the

  • to begin each list item
    • First item
    • Second item

    First item
    Second item

    Ordered list - use the

  • to begin each list item
    1. First item
    2. Second item

    First item
    Second item

    Definition lists are similar to other HTML lists.

    begins the definition list,
    begins the definition term and
    begins the definition description.
    First term
    First definition
    Second term
    Second definition

    First term
    First definition
    Second term
    Second definition
    Anchors are used to make links to other pages. drupal.org drupal.org
    Bolded Bolded Bolded
    Underlined Underlined Underlined
    Italicized Italicized Italicized
    Superscripted Superscripted Superscripted

    Most unusual characters can be directly entered without any problems.

    If you do encounter problems, try using HTML character entities. A common example looks like & for an ampersand & character. For a full list of entities see HTML's entities page. Some of the available characters include:

    Character Description You Type You Get
    Ampersand & &
    Greater than > >
    Less than < <
    Quotation mark " "

    Lines and paragraphs are automatically recognized. The
    line break,

    paragraph and

    close paragraph tags are inserted automatically. If paragraphs are not recognized simply add a couple blank lines.
    To post pieces of code, surround them with ... tags. For PHP code, you can use ... , which will also colour it based on syntax.

  • alanflum’s picture

    Thank you! I think the last comment does get to the heart of the matter.

    Drupal is inaccesable to the average person; whether it is the fledgling non-profit or the non-technical person who simply wants to put up a website, it is not accessable. Does Microsoft expect the average user of Word to know C++, Visual Basic, or anything else that has nothing to do with content creation, no! Why then should Drupal require a content creator to concern themselves with XHTML, or CSS. Why should the graphic designer who want to make their site look anything other a standard theme have to concern themselves with PHP?

    I think Drupal is well designed and thought through from a coding perspective but frankly not from the perpective of the "Joe" or "Jane" user on the street. I think Drupal has so much potential and this is why I make this post, not to insult or criticize, but to implore all of you great developers out there to try to see Drupal's use from the point of view of the non-techinical content creator. You can blast me all you want, I really don't care. All I ask of all of the developers in the Drupal community is to please really try to understand this point. Drupal has the potential to be the best CMS if you start to really take into account the larger web community of non-technical users. Please reach out to the larger non-technical community of users. A really well designed WYSIWYG editor that packaged as part of the default installation would be a start. A theming/templating system accessable to non-technical graphic designers would be another.

    Thank You.

    zoon_unit’s picture

    Dries, the creator of Drupal agrees with your opinion and has implored the other developers of Drupal to focus on "ease of use" more. There has been progress, but there's still much to be done.

    If the founder of Drupal has trouble inspiring his troops on the "ease of use" issue, you can see how tough it is to get through to developers who are mainly focusing on their own needs. Only time will tell if this issue gets the attention it deserves.

    I'm optimistic though. I've seen quite a bit of progress in 5.0 and 6.0.

    John Bryan’s picture

    My memories of this thread were depressing and left me with an impression of bashing my head against a wall 8¬(

    But reading back through it, these last few posts give me a little bit of hope back. I like the one previous post comment about "these two elephants in the room", and especially in regards to image uploading. Joe Blogs can upload images to sell items on Ebay (browse local computer files and click upload) but often can't upload images into drupal because of the clumsy 2 stage process involved.

    I have been doing a bit of research & playing around towards some elements solving this, such as using the preprocessed (compilated) CSS cache. And I think the TinyMCE module could be a good starting point for a generic editor interface module. But there is no way I could create a coehesive solution for this.

    It is easy for me to think that my most important issues should be the most important for Drupal itself, doesn't mean it is true. But I do think that this is Drupals most important issue (rightly or wrongly, and many here believe wrongly) if it is to be used for community sites etc.

    Regards

    John Bryan
    www.ALT2.com
    Application Integration Specialists
    Tel: UK 08700 3456-31

    VM’s picture

    John

    You seem to have the patience and the knowledge to take this to the next step. From all of these types of threads I've read, the larger part of the problem seems to be hooks needed in Drupal to employ "most any editor".

    That being said, what can be done in Drupal core to allow editors to be implemented in an easier fashion ?

    zoon_unit’s picture

    First, I don't know enough about Drupal's inner workings to answer that question but here are couple of things:

    • Have an editor that is a one step install. Tinymce may solve this problem soon, since the Moxie folks have given us the green light to include tinymce directly in the module install.
    • One issue I'm aware of is the body field resize issue. Once tinymce is installed the ability to resize body fields disappears. This happens if one chooses to make wysiwyg off as the default and turn it on manually. Even though the editor is off, the body text field cannot be resized. Bummer, especially when the field starts off very small to start with. (any way to set the default size in Drupal?)

    Other core improvements (in my amateur opinion) would be:

    • better integration with editable fields.
    • A "Drupal approved" editor module that has the weight of several maintainers behind it to insure that the module works as advertised. (much like views and CCK today)
    • Better integration with Drupal stylesheets and input filters
    tesliana’s picture

    You are at least 101 % correct, so you have my vote. ;)

    Drupal's capabilities for a site developer seem to be way ahead of Drupal's look & feel and usability for the end user.

    Drupal 7.0 should be declared as a release that ends up making everything humm together (usability, look & feel and promotion of key contributed modules to core, being three key areas).

    ___________________________________
    Svi smo mi zarobljenici svojih ličnih iskustva.
    We are all prisoners of our own experiences.

    VM’s picture

    The problem for modules getting into core seems to be, what defines a key module. Of the hundreds of contrib modules only a rare few make it in and at that only those that benefit as much of the comminity as possible. That being said, even when a module does make it into core, for example CCK, only "parts" of it make it. Hooks make it before the module itself does. Drupal prides itself on being small, adding modules from contrib to the core dowload only bloat the download for those that don't want those extra modules and that larger footprint, which is why installation profiles were created.

    zoon_unit’s picture

    We all waste so much time arguing over whether a module should be in core or not. It doesn't really matter. Here's why:

    • Like CCK, a module's hook base can be placed in core but the main module left out, but that code base makes it effortless to add CCK to any base install because everything works together as expected. No need to "undo" a certain approach to support a new approach. (aggregator vs node feeds comes to mind)
    • The reason people want a module in core is simply because they assume that will insure the module will be properly maintained and debugged. (look how much crap tinymce has gone through) However, Views and CCK proves that external modules can be maintained just as well as core, so long as the maintainers are committed and part of the "core" coding group.
    • So leave an editor module out of core, but just make sure it's maintained like a core module. Install profiles would be a great way to include "optional" modules while giving them the "feel" of a core install.
    • This myth that only "deserving" and "popular" modules make it into core is bogus. Do you really think that the current aggregator and book modules are more popular and needed than a wysiwyg editor? I think not! And yet they are in core! Here's a suggestion: Make these two modules external to core and put a wysiwyg editor in their place! That would be much more useful to the developer community.
    VM’s picture

    The two modules you mention as being in core over and above an editor, have predominently "always" been in core, and may have always been in core. Thus, these two modules are bad examples in your description.

    I also don't see an argument brewing here, just a simple discussion. Arguments happen when one or more individuals push their point ad nausea without doing "anything" to actually help the cause. Speaking up is great, but as has been stated in threads like these for years now, until someone finally steps up and figures out what exactly is needed in core to better suit an editor, there those who want an editor are stuck protesting in threads like this one.

    zoon_unit’s picture

    What, exactly, in my post consisted of an "argument?"

    I thought this was a discussion.....

    VM’s picture

    your first statement

    We all waste so much time arguing

    I was merely refuting that his was an argument or that I was trying to engage in one.

    John Bryan’s picture

    I think we are all agreed that this, in general, is a topic with lots of talk - a surprising amount denying there is even an issue 8¬(. And that what it lacks is much action. Those who are left still talking seem to be of a mind in that there needs to be a solution.

    On the subject of too much just talking.. At some point I will put together my own suggestions for what is needed, imbetween some unfortunately higher priority tasks such as tax returns, selling our home and getting single-stage image uploads implimented.

    But I do think that more of an API, than a module, is needed which may need effectively to modify some core components (beyond just using hooks). i.e. it needs to site between editor modules and the Drupal core:-

         Widget-WYSIWYG editor
          :::::::::::::::::::
         Widget-WYSIWYG module
             =============
       Generic WYSIWYG interface
           :::::::::::::::::::
                 Drupal

    Editor modules could be written to interact with the interface/API instead of with Drupal as such. The editor modules could be a lot more slimline as many tasks, such as controlling which Drupal fields to use it, will be in the interface. For instance if we solve how to obtain style context for a field (and say store it in $drupal_style_context) it can be left to a editor module developer to work out how to get the specific editor to display the style.

    Regards

    John Bryan
    www.ALT2.com
    Application Integration Specialists
    Tel: UK 08700 3456-31

    sun’s picture

    Instead of just talking, let's start with the actual implementation.

    From my POV, all wysiwyg editor modules can be turned into one. They actually do more or less the same. Editor plugin module maintainers also have to implement their plugins into all of these editor modules. That's a pain, because Drupal-based editor plugins are based on Drupal and not on an editor.

    All of you have great ideas. Why not share them with others? Build a solid Wysiwyg API for Drupal?

    Anyone who wants to *do* something is welcome to join our efforts:

    http://drupal.org/project/wysiwyg
    http://groups.drupal.org/wysiwyg

    regards,

    Daniel F. Kudwien
    unleashed mind

    Daniel 'sun' Kudwien
    makers99

    zoon_unit’s picture

    I guess you didn't notice the word "We" in that statement?

    Is it possible that you're being a touch oversensitive here? After 8 months with Drupal, I find some Drupal posters to be a bit defensive. Why is that?

    Constructive criticism is a good thing. It keeps us on our toes and helps make our work better. We all want Drupal to be the best it can be. Many of our careers depend on it.

    VM’s picture

    @ John, an API would certainly be an interesting avenue. Not sure anyone has ever gone that route, at least publicly. Good Luck with the sale of the home and more importantly the IRS : )

    @ Zoon, Over sensitive and defensive ? over making a simple statement that I am not arguing or trying to engage in one ? ermmmm okeedoke :/

    Did you stop to think that maybe the problem is some readers are reading far too much "tone" into written words? Tone that is just not there?

    Either way, enjoy the remainder of your day.

    zoon_unit’s picture

    Best wishes. :-)

    tesliana’s picture

    >> The problem for modules getting into core seems to be, what defines a key module.

    The only answer to that must be "whatever it takes to get a run of a mill site done" and a better editor and handling of links and images (the bread and butter) are key building blocks. I have already tons of respect for Dries and all of you core developers, but even with that due respect, it does not at all matter what you say because the only thing that matters is what the market place says.

    I have already many times suggested that www.drupal.org should dare be used as a showcase of what Drupal is and what can be done with it. But the last thing that I remembered is one of the esteemed core developers ridiculing the whole suggestion because he chose to use all of the "software development" related extras as being things that a run of a mill site would not need.

    The other major point that everyone is missing is that there really should be 2 camps working on this project - the developers and the users. You keep on developing and let the rest of us redo www.drupal.org and in the process you will end up with a site that is at least half organized and a user community that is not only better engaged in the process but is also doing collective testing and all of that.

    Yes Dries, your opinion does not matter near as much as the opinion of the collective user community out there. ;)

    ___________________________________
    Svi smo mi zarobljenici svojih ličnih iskustva.
    We are all prisoners of our own experiences.

    Grammarian’s picture

    I've never programmed a line of code of any kind. I'm not an IT person or a graphic designer either. I'm a pretty literate end-user, and I get really PO'd when software is not easy to use out of the box, because I've been working with commercial software since Lotus 1-2-3, and have only ever had two half days of training on that and none on any other software - if I can't get started and do my task right away I feel it's badly designed.

    I've been working with Drupal since January '07. I've been learning CSS along the way, had a basic grasp of HTML but nothing fancy. I have several sites up, they look pretty. All a WYSIWYG editor would do for me is save some back and forth between the Edit and Preview tabs. MS Word isn't even completely WYSIWYG - nothing is likely to be. I think that having the content just be posted in the site's style *without* me having to format it is a *feature,* not a problem.

    I can see some situations where it might be nice for some end-users to have a WYSIWYG editor, but for most end-users on most sites, allowing them to format their own content as they please will just result in a hideous mishmash. I read some Yahoo groups online, and I don't appreciate the posts that come through in huge, oddly-colored type on an oddly-colored background *at all.*

    The kind of end users who can be trusted to format stuff sensibly can easily figure out how to do it in Drupal. The others you don't want to enable.

    Jean Gazis

    John Bryan’s picture

    Been chipping away at a TinyMCE specific solution.

    See:- http://drupal.org/node/160657

    Regards

    John Bryan
    www.ALT2.com
    Application Integration Specialists
    Tel: UK 08700 3456-31

    simonpfrank’s picture

    Hi John, been reading the thread with interest. Interestingly I have the same views about Joomla and have been using JCE for a while for other reasons. Reading the thread I have got lost in what is and is not achievable.

    My requirements are pretty simple

    • As WYSIWYG as possible i.e. What can be achieved?
    • Paste from Word strips bloatware HTML and styles so that site styles are preserved
    • Paste from Excel produces a simple table without bloatware html
    • Image placement involves simple upload to server and picking to place it in content

    Is this doable?

    I do subscribe to your view but if I am able to provide a hardcoded style sheet to achieve the end then I'm happy (does that work?). If that does work then it's a pretty minimal job maintaining a subset CSS file. That does not say that it would be better if it wasn't hardcoded, however in my CMS experience, users should never be allowed to use all the styles a) because it's confusing and b) they can get "too" creative.

    Personally my ideal WYSIPSTWYG "What you see is pretty similar to what you'll get" (it doesn't need to be pixel perfect) is stripped right down to h's, em, strong,blockquote,q,sub,p,br,ul/ol/li,u and that's about it. Expecting anything more from a javascript control is pushing it (personal opinion).

    I will be working on this soon so if I get anything useful I will post.

    John Bryan’s picture

    Combination of TinyMCE modified as per http://drupal.org/node/160657 plus the Asset module (you will need to use the configure buttons facility in the TinyMCE module to add the Asset upload buton). This provides a close WYSIWYG behaviour that follows Site, Module and User themes/styles without hard-coding. I don't know about the behaviour when pasting from Microsot Office products...

    Regards

    John Bryan
    www.ALT2.com
    Application Integration Specialists
    Tel: UK 08700 3456-31

    simontol’s picture

    I think that a simple, integrated WYSIWYG solution like the one for Wordpress could be good.
    I think that the TinyMCE module in drupal need to be cleaned and to be simplified.
    I would like to see TinyMCE (or FCKEditor or some other) working out of the box in Drupal6, for all browsers and O.S. .

    VM’s picture

    Drupal 6 is feature frozen and there is no editor in it. If an editor or hooks to allow editors to work better are implemented they would have to be supplied and integreated into Drupal 7.

    _____________________________________________________________________
    Confucius says:
    "Those who seek drupal answers should use drupal search!" : )

    dgurba’s picture

    None (or very few) CMS's have a true wysiwyg editor (aka. Frontpage, DreamWeaver and their siblings). Note, that FrontPage is not a Drupal editor, or a Xoops editor, or a Joomla Editor ... its an HTML WYSIWYG editor ... and HTML is just a language. HTML is not software, nor a platform, its runs typically within a platform called a browser. ) Those applications are full-blown install-on-your computer applications. The web is moving in that direction ... but isn't quite there yet.

    It is not Drupals role to "create" such an editor. Many, many such advanced editors exsist. They are typically called Rich Text editors or sometimes mis-classified as WYSIWYG editors. They call it wysiwyg because there is no markup visible in the editing area (aka html, xml, php) just your bolded, italized or paragraphs there for you to see ... wysiwyg. Yes, Frontpage is more powerful ... but again the web is not there yet.

    In my opinion commenters should be directing their comments not just at Drupal (a data managment system and framework to "enable" websites) but also the Editor creators (such as the TinyMCE, FCKEditor maintainers). I dont think there is any "Drupal" [wysiwyg] Editor. I think that such an editor is in essence beyond the scope of drupal.

    They are two different topics: Content Management (where is it, how do i get to it) and how do I edit it (user interface).

    The drupal community would have to evaluate existing software solutions and develop an API for these editors to work with (and perhaps maintain custom *additional* modules for 3rd party editor creators). Again, I'm gonna stress that so far as I know a full-blown drupal editor is not being made by the drupal community ... and marketed as "drupals'-editor". From a software perspective that would be re-inventing the wheel. Editors exist. Even when/if an API is developed for Drupal to properly show a page in wysiwyg format ... Editor maintainers would need to adopt it. That is no small feat.

    I'm not sure how people have become so confused on this issue so much in thinking that a "html input textarea"/wysiwyg editor a core component of Drupal .... it is a piece of the browser or of a 3rd party software (javascript enabled wysiwyg editor).

    ... just my 2 cents.

    sun’s picture

    Very good write-up!

    As mentioned earlier in this thread, see http://drupal.org/project/wysiwyg, and of course http://groups.drupal.org/wysiwyg

    Daniel F. Kudwien
    unleashed mind

    Daniel 'sun' Kudwien
    makers99

    Diam0nd’s picture

    Is there are WYSIWYG editor that's v6 compatible?

    StevenSokulski’s picture

    v6 hasn't hit its first Release Candidate. Modules don't typically see upgrades until after that time.

    StevenSokulski’s picture

    There now seems to be a beta version of TinyMCE ready to go for D6.

    Checkout http://groups.drupal.org/node/5036 for the latest.

    annsera’s picture

    I don't see TinyMCE being developed for 6, not at the link you gave nor at the TinyMCE module link. Are you sure? Where should I be looking?

    Petuschki’s picture

    Hi,

    I jump on this topic after reading this long thread here
    I am just evaluating a lot of CMSs to find the one which fits the demands for a project
    I know Joomla, I checked Redaxo, Etomite, Contenido, Typolight and others

    and everywhere the situation is nearly the same:

    text must be entered
    entered text must be formatted
    images must be uploaded and integrated

    I expect to have more than a one-liner-textinputfield or a naked textarea

    Drupal looks nice, comes with templates, but lets you alone when you need to enter text (what is the main topic of this system)

    and not only with Drupal, but here as well: you then dive into forum searches, find hints, tips, edit configuration files, mix different versions, and so on ... this is a nightmare and frustrates a lot

    if there should be hooks, an integrated feature, a core plugin ... this is not the point.

    The point is that all users need editors and not naked input fields.

    Brian, I think you are right and express my needs (even when I do not need to have so much CSS-template-compliancy...)

    Even young users do not know <b> or <strong>... how many support calls you have because users don't know how to get some bold or italic text?

    Please, all the people out there:
    try to understand the need for an editor and for clear instructions how to get them working!

    domineaux’s picture

    A fact...

    The TinyMCE is a pretty good editor, but my gosh what a pain to get it working right.

    On all sites, whether the admin creates and maintains all content or users create and maintain their own content additions a A good content editor is a must have tool

    There is now an addin for FCKeditor and TinyMCE that allows you to create ImageMaps in the editor. This is a worldclass time saver. You can create images with links to pages quickly without all the hassle of building the image map in HTML (perimeter for clickon areas is huge help).

    IMO, this is one the biggest issues with Drupal. We need a solid competent module that applies a competent editor.

    I've actually taken a working TinyMCE from a working site with nothing, but core modules installed. I copied it to a like installation for another site and the TinyMCE wouldn't work.

    I've gone to PHP5 on the sites, I've changed the permissions for the entire module through all files and folders to 777 and still not working.

    There are some anomalies... and other little twit issues that keep the TinyMCE from being a most important tool in Drupal.

    --------------------------------------------

    I have now applied the FCKeditor and I use the Drupal on sites where my users do not submit any content. I believe I could handle user submissions by just not allowing any trusted users or anyone apart from admin to publish content. We all have trusted users, moderator types who are competent to add content. You can make exceptions of course, but I've still found issues from trusted users content.

    Wordpress nor any other CMS is any better to my knowledge. I have added a little content block with a quick link explaining the various HTML tags for users in Wordpress sites and I use the Wordpress default editor. When I tried other editors I had problems that creep in. The WP plugins don't all work the same, and use content the same...

    IME, most sites I've built that allowed users to submit content still had to have supervision by admin. So, I'd say use the editor of choice, but don't be expecting a proprietary editor from any of the CMS any time soon.

    annsera’s picture

    There's a new module, NicEdit, not quite ready for prime time but I like the idea behind it -- it doesn't rely on a 3rd party editor and is really just AJAX. I'm not sure about whether its WYSIWYG capabilities will be up to snuff as picking up the current design (I doubt it), and I'm positive its extended functionalities (like paste-from-word, drag/drop upload, etc) are quite limited, but for some primary stuff, for bold, indent, etc., it seems like a light-weight AJAX editor is appropriate. If I currently making a site that was primarily forum-based, with lots of user input, I would want an editor like NicEdit, easy to understand, easy on the load.

    Petuschki’s picture

    Did you check the HTML which gets created by NicEdit?

    I seem to remember that it was that editor which created UpperCase-HTML which is a real killer for valid HTML / XHTML for sure!

    it's not only on usability, it's also on quality of the result ;=(