Download & Extend

'Feed content' setting broken after 'Body as field'

Project:Drupal core
Version:8.x-dev
Component:node system
Category:bug report
Priority:normal
Assigned:Unassigned
Status:needs review
Issue tags:needs backport to D7

Issue Summary

The 'feed_item_length' setting ("Feed content: Global setting for the default display of content items in each feed - Titles only, Titles plus teaser, Full text") is currently broken.
The current code in node_feed() grabs the value, but does nothing with it.

With the new 'Body as field', those options are now display settings for the 'body' field in 'rss' build mode : hidden, default, summary.

With no field UI in core for now, we could programmatically update all instances of the body field when the setting is changed, but this doesn't play nicely when you enable the CCK UI and can define different settings for different node types.

So I guess the question is: what do we want to do with this feature ?

Comments

#1

Priority:normal» critical

Critical, not as in 'urgent', but as in 'needs to be solved before a release'.

#2

Status:active» needs review

I think it makes sense to move that settings back into the aggregator.

AttachmentSizeStatusTest resultOperations
493674-aggregator-feed-item-length.patch3.99 KBIdleFailed on MySQL 5.0 InnoDB, with: 15,312 pass(es), 0 fail(s), and 18 exception(es).View details | Re-test

#3

Status:needs review» needs work

The last submitted patch failed testing.

#4

Field UI is now in. Users can choose which display settings they want for the 'RSS build mode' field by field, including body.

So agreed on the approach where the 'length of text to display' variable is limited to aggregator feeds (listing "external" content with no fields on them - although in Feed API, agregated (non-node) items could be fieldable too, I guess).

However :
+++ modules/node/node.module
@@ -2065,9 +2065,7 @@ function node_feed($nids = FALSE, $channel = array()) {
- $item_length = variable_get('feed_item_length', 'fulltext');

$item_length is used below (are we displaying full objects or only titles). It's nothing more than a boolean now.

This review is powered by Dreditor.

#5

Priority:critical» normal

Not critical. Please read and understand Priority levels of Issues, thanks.

#6

Got bit by this today. It's quite confusing that the teaser setting at /admin/config/services/rss-publishing has no effect. This also seems to impact views.

#7

Yeah confirmed, views can't display just the title plus teaser, you end up with the full body.

#8

subscribing

#9

This appears to be causing the complete body text to be displayed in RSS feeds instead of just the teaser, which is not good.

Subscribe.

#10

Status:needs work» needs review

Just to sum up yched's point, the setting can be ignored for your own RSS feed as now Field UI will let you set the field formatter for each field per content type.

Visit /admin/structure/types/manage/article/display and click on the "Custom Display Settings" to enable the RSS view mode on the article content type, for example. Then you can set "Trimmed" or "Summary or Trimmed" which will be in effect for the default rss.xml and views based feeds.

Seems slightly more difficult now as you have to change those per field per content type if you want teasers. Might be nice to have this as the "default" setting for RSS instead of using the per content-type "default" formatter. Then you can override individual types and fields against this setting rather than having to change each content type.

I think yched's comment in #4 leads to the fact that that whole section about $item_length could be removed as well, since one of the display formatters you can choose for a field is "<hidden>" which if you set for all fields on a content type has the same effect as "Title only".

AttachmentSizeStatusTest resultOperations
feed-item-length-493674-10.patch4.21 KBIdlePASSED: [[SimpleTest]]: [MySQL] 31,993 pass(es).View details | Re-test

#11

subscribe

#12

Version:7.x-dev» 8.x-dev

#1010766: Global feed setting has no effect was duplicate.

nobody click here