"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
Comment #1
catchDuplicate of #1777388: Support arbitrary workflow states.
Comment #2
apadernoI am removing issue tags used from one to four issues. I apologize for bumping the issue.