"Publish" status is currently considered boolean. It should instead be a matter of audience.

That Drupal currently understands the published state of nodes in terms of true or false results in far-reaching and expensive incompatibilities/bugs/workarounds which create unnecessary complexity in contrib or dependent modules/systems.

Rather than Drupal asking/determining whether a node is published (yes/no), Drupal should ask "who gets to see this content and under which conditions shall they see it?" The visibility of an entity should instead be a matter of audience. To re-imagine how this aspect of Drupal can be improved, do this now:

ALTER TABLE 'node' DROP 'status'

Then resolve for all use-cases involving the visibility of content. Such as:

  • how to then make content visible to human users (who may or may not be authenticated)
  • how to then make content visible in the form of revisions or drafts
  • how to then make content visible to machines such as cron for search indexing, etc.
  • how to then make content visible/controllable to a moderation-or-workflow system such as Workbench or Scheduler
  • how to then make content visible to specific domains, and/or to specific languages

Discuss!

This is, in my opinion, one of Drupal's most fatal and most expensive design flaws. The time is past, I believe, to solve this for Drupal 8. Hopefully this issue can receive due attention before it's too late for Drupal 9.

Comments

catch’s picture

Status: Active » Closed (duplicate)
apaderno’s picture

Issue tags: -(Unpublished), -i18n synchronize pending unpublished revisions, -can't publish, -Field collection preview issue with workbench moderate module?, -conflick workbench

I am removing issue tags used from one to four issues. I apologize for bumping the issue.

Version: 9.x-dev » 9.0.x-dev

The 9.0.x branch will open for development soon, and the placeholder 9.x branch should no longer be used. Only issues that require a new major version should be filed against 9.0.x (for example, removing deprecated code or updating dependency major versions). New developments and disruptive changes that are allowed in a minor version should be filed against 8.9.x, and significant new features will be moved to 9.1.x at committer discretion. For more information see the Allowed changes during the Drupal 8 and 9 release cycles and the Drupal 9.0.0 release plan.