Well, currently MODx doesn’t have a real workflow to have documents reviewed by "content editors" (or any defined role) before they are published by mere content publisher (or any defined role to that effect).
You’ll have to use either
Front End Document Manager (aka FDM) if you need content publishers to be web users or
ManagerManager if your contributors are manager users.
In the first case, you can take advantage of the [tt]&moderated, &canpost, &canmoderate, &trusted, &anonymous[/tt] parameters, which allow you to have documents unpublished as default and control who can moderate post or not.
In the second case, you’ll have to define rules to define the default value for a given role & a defined template. You’ll have to dig into the documentation, but you can set a default value for any given MODx document field thanks to the mm_default function :
[tt]mm_default($field, $value, $roles, $templates, $eval);[/tt]
Let’s say the role you want to give access to has the ID : 2, regarding the the 6,9,12 ID and the template you need to set default value for the published field, it would mean this kind of rule :
[tt]mm_default(’published’, ’0’, ’2’ , ’6,9,12, ’true’);[/tt]
Then, you’ll have to hide the fields for the given role :
[tt]mm_hideFields($fields, $roles, $templates);[/tt]
let’s continue with our example :
[tt]mm_hideFields(’unpublished,published’, ’2’, ’6,9,12’);[/tt]
I still am learning the ManagerManager plugin, you’d have to check the syntax but here is the idea to compensate for the lack of real workflow in MODx.
Hope it helps