The simplest definition of Content Management might be Drupal’s option to ‘publish’ or leave what you have put in as ‘unpublished’ right on a content input form. Wiki takes what Content Management should include much further. Working just your own website you can see the value of doing a draft. You might also like the idea of preparing a bunch of new content to send out automatically on a publication schedule. If you have a newspaper with an immediate supervisor, the section editor, the legal staff, the editor & chief, and the publisher all potentially needing to review some controversial article you wrote about the town billionaire before it goes out, you probably see value in a Content Managed workflow.
Drupal has substantial built-in Content Moderation capabilities. It also has roles and role permissions so you could establish content contributors, editors, publisher or other types of roles and what they are allowed to do. For publishing steps authorization before going live Drupal includes some powerful Workflow Management capabilities you should review and consider.
The Drupal.org documentation on core content moderation is thus a good starting point. You might watch this video on Content Moderation Basics. And add in Workflows…
composer require 'drupal/workflow
drush en workflows
If you want to trigger that flood of approvals to the boss at the last minute, you probably want to use the Moderated Content Bulk Publish module. A potentially more sane use is that you publish a newspaper with editions and want to drop all the new content into the online site at the same time that the presses release the print version into delivery.
composer require 'drupal/moderated_content_bulk_publish
drush en moderated_content_bulk_publish
You are an optimist and anticipate each reviewer will see the world just the way you do. The last thing you enjoy is having several of them standing at your door with a printout of what you sent through the workflow steps with red, orange, purple or whatever marks each has written notes in the margin to drill you over. Being an online person you would just as well see that ‘notification’ thing send you an email telling you that comments have been added to your draft via the Moderation Note module.
composer require 'drupal/moderation_note
drush en moderation_note
Drupal maintains versions of content right from what is available in core. But if you want to enhance a perspective on what edits and updates the various players in the content approval process have done, you may want to try the Diff Module. For an outline of how to do content moderation with the Diff module included, take a look at this link.
composer require drupal/diff
drush en diff
Once you have your site going, you may want to move the content from unpublished to published under a schedule. Use the Scheduler Module. Let’s say you are taking a holiday and you want the site to looked refreshed while you are gone. Just prepare content in advance and then schedule when it will be published.
composer require drupal/scheduler
drush en scheduler
This module is something you probably don’t want to bother with as a developer or site builder but when it comes time for adding and editing content you probably want it; or your content editors will. You need to enable the basic ‘content moderation’ that is part of Core and then add this module to make the GUI interface a little easier for content editors to use.
composer require 'drupal/moderation_sidebar
drush en moderation_sidebar
A tool you might like is ‘drag and drop’ file loading. Getting it is not as straightforward as just adding a Drupal module. However, because it can be so valuable if you are grabbing a bunch of files from your photos, your local drive, an old site you are recovering content from, etc. it may be worth the extra trouble. You have to do some coding to get it done. But you aren’t on your own. Cornel Andreev outlines a detailed process with all the files and code if you want to tackle it yourself. And, it appears he runs a development company who probably would do it for you for a fee.
An emerging power player is the Content Planner module. At a minimum, the developer of this module is to be complimented for one of the best module descriptions on Drupal.org. But this little wonder is likely to get awards from anyone who has a serious need to manage content. Imagine a Dashboard function of publication status, an integrated Google Analytics, last and pending update lists, available widgets, and links to key connections like MailChimp. All that is just the first tab. Then imagine a calendar function with macro view and details by day of content types (articles, newsletters, social, etc.) with titles across the weekly view. And just jump to the next tab for the ‘who’, ‘when’, ‘where’ drag-and-drop which you will find extraordinary if you involve multiple players in development, placement, approvals, across your organization and a client’s. The 3-Minute demo gives you a quick understanding, but don’t worry about the security warning shown as the video was shot early in the release and the module is now fully good-to-go.
composer require 'drupal/content_planner
drush en content_planner
It is worth really thinking through the approach you will take to content moderation in terms of roles involved, process control steps you want to assure quality, how notification of pending steps between people should occur, and more. Advanced Content Moderation in Drupal is a video that provides a good overall perspective. If you find you are going to have a bunch of content editors and approvers in a workflow, you might consider a streamline interface UI for these roles by using Workbench, Workbench Moderation, Workbench Email or Content Moderation Notifications contrib modules.
composer require 'drupal/workbench
drush en workbench
composer require 'drupal/workbench_moderation
drush en workbench_moderation
composer require 'drupal/workbench_email
drush en workbench_email
Content Moderation Notifications
composer require 'drupal/content_moderation_notifications
drush en content_moderation_notifications
Workbench Access
This module brings some of the People, Permissions, Role elements to Content Management.
composer require 'drupal/workbench_access
drush en workbench_access
It is pretty common that you want to share information between sites; meaning more than just the common links modules. People share data, they exchange with RSS feeds, and more; Check here for a complete review.
The Feeds module is probably the most commonly used of the RSS capabilities of Drupal and their overview of the module points to both companion and alternative modules.
Sometimes what you mean by sharing content isn’t grabbing a feed from an external site but rather you want to take the input of your own content and present it on more than one of your own sites. For this you will want to use the Entity Share module. For a detailed review of this module you can see a presentation by one of its maintainers.
Once Fields and Content Types are established, one can prepare for operating the site by establishing Roles, Role Permissions, and the Workflow around Content Moderation.
In the Administration interface, under the “People” menu, you can set Roles and then grant Permissions for what any Role you create is permitted to do. These basics in core can be enhanced with additional contributed modules. In core, enable content moderation…
drush en content moderation
Content moderation is also something that is coordinated with how you set up. ‘Roles’. You might especially like to consider the Role Delegation module in coordination with your deployment of Content Moderation.
In your dreams there is a large truck and that nasty big boss who cuts apart your great work with those notes. When they finally move on, regardless of how that might have occurred, their approval oversight is no long part of your workflow. Planning ahead for the fact people move, resign, change roles, your workflow approvals are not perpetual. Rather, you have incorporated the Role Expiration module into your system to let them expire should you forget. Wonder if you might also use it to expire your submitted work if it doesn’t get approved by some anticipated publication date it logically fit with for content context?
composer require drupal/role_expire
drush en role_expire
With the Field Permissions Module you can move further with the field level permissions than you can from the admin section of Core.
composer require drupal/field_permissions
drush en field_permissions
Also see using taxonomy term associations to set tight permissions on various entities.