You specified that the summary should not be shown when this post is displayed in full view. This setting has been ignored since you have not defined a summary for the post. (To define a summary, insert the delimiter "

" (without the quotes) in the Body of the post to indicate the end of the summary and the start of the main content.)

I am getting this on every node edit. I had the CKEditor module installed and switched to WYSIWYG. (See #834772: CKeditor is already working, how do I slide WYSIWYG under it?)

I also seem to be getting the previous teaser duplicated in the content. This is happening at least when I switch to non rich text (I personally despise editors).

Comments

TwoD’s picture

Remove the duplicate teaser and check the "Show summary in full view" checkbox and/or insert a teaser break (<!--break-->) in the body.

The teaser is stored in its own field in the {node_revisions} table. When the teaser is supposed to be part of the body message the teaser is also duplicated at the beginning of the body field. If editing a node and Drupal sees that the "Show summary in full view" is not checked and the teaser field is identical to the beginning of the body field (up to but not including the <!--break--> comment, or the length of an auto-generated teaser), Drupal will remove the teaser from the body textarea and place it in its own textarea.

When using Wysiwyg module, the teaser is always supposed to be included in the body as dealing with separate editors for this could get complicated. If the beginning of the body field is not identical to the teaser contents, Drupal must include it in the body field or you'd risk losing data. Because the teaser was different from the beginning of the body, it's also assumed that the checkbox should be unchecked (Though it'll be automatically rechecked when you see that message as there was no actual teaser - unless you specifically inserted <!--break-->.)

I'm not sure there's an easy way for us to detect and fix this odd case automatically, I'm not getting a good grasp of the code dealing with this right now...

NancyDru’s picture

Apparently there is a serious conflict between WYSIWYG and #221257: text_summary() should output valid HTML and Unicode text, and not count markup characters as part of the text length.

If the beginning of the body field is not identical to the teaser contents...

Since the code in the teaser issue adds a "..." on the end, the beginning is not the same. Is that what's happening here? Would it also happen if that code corrects an HTML tag (such as ending it)?

TwoD’s picture

I'm at work right now so I can't check if the "..." is actually appended in the database, but I think it's just added during rendering. It doesn't show up when editing a split teaser without Wysiwyg either, right?

Code corrections like ending open tags is done at rendering time (and then it's cached) by the "HTML Corrector"-filter, so those changes never make it to the database.

Don't know when I'll have time to dig deeper into this, my todo list keeps growing... :(

NancyDru’s picture

No, the code in #221257: text_summary() should output valid HTML and Unicode text, and not count markup characters as part of the text length is a replacement for node_teaser(), so it creates the teaser that goes into node_revisions. I checked the database and, yes, the "..." is there. I assume that revised HTML would be there as well. I will try to test that part later today.

sun’s picture

Component: Editor - CKeditor » Code
Status: Active » Closed (cannot reproduce)

Sorry, but Drupal core hacks are not supported. Looks like you messed up your database values badly. :-/

NancyDru’s picture

Oh, I accept that the db is messed up and that you won't support it unless it gets committed. What I am trying to do here is to understand what this module does, and how, so I can help make that patch work right. It certainly produces what my customer (and many others) would call a "better" teaser.