Yep, I'm definitely in favour of this. It would make things a lot cleaner and more usable. So +1 from me.<br><br>Cheers,<br>Stella<br><br><div class="gmail_quote">On Wed, Feb 11, 2009 at 4:20 AM, Barry Jaspan <span dir="ltr"><<a href="mailto:barry@jaspan.org">barry@jaspan.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Now that Field API is in core it is time to start using it. I have an initial suggestion: change node body and teaser from special cases to normal fields. I suspect this is going to be quite controversial so I thought I'd get some feedback here before evening bothering to start looking at the code.<br>
<br>
This message is not about the details of the implementation; I'm sure there will be subtleties and complexities to work. I'm just asking about the concept.<br>
<br>
Concept:<br>
<br>
Remove all special processing for $node->body and $node->teaser. Create two fields, body and teaser, both text fields. Assign both fields to every existing content type with a "body field" using the textarea widget. For existing nodes, as part of the upgrade path, initialize the teaser field value with whatever teaser would normally be generated automatically from the body.<br>
<br>
Random thoughts:<br>
<br>
- We will get to remove a bunch of code, much of it quite ugly, from node.module.<br>
<br>
- Sites that really want an auto-generated teaser can remove the teaser field from a content type and use the text field's teaser Display Formatter in the teaser context.<br>
<br>
- This will mean removing the body field from the node and node_revision tables, and creating a field_data_body table for it instead. Don't worry about database query efficiency; that is a solved problem (see <a href="http://drupal.org/node/368674" target="_blank">http://drupal.org/node/368674</a>).<br>
<br>
- With $node->body and $node->teaser being normal fields, they will not be available for overloaded use as the complete rendered output of the node. Hurray! We can use $node->content = drupal_render($node) or something like that.<br>
<br>
- We might want to think about adding other fields to our default content types. Perhaps Article should have a Subtitle field, etc. This is a whole topic in itself.<br>
<br>
Comments?<br>
<br>
Thanks,<br><font color="#888888">
<br>
Barry<br>
<br>
</font></blockquote></div><br>