We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7231
    • 4,205 Posts
    It has been a recurring request for some sort of workflow management in MODx. I admit that I have limited experience with how workflow works. Davidm spent some time talking me through it this morning on Twitter (not the best medium for long discussions due to the char limit) but I was wondering how it could fit into MODx (096x for now). MODx being as flexible as it is there must be a way to get this done.

    My basic understanding is that workflow refers managing content by managing the editorial process through gateways (draft, edited, approved, etc.).

    I know that there is more to it. Therefore the first step in trying to address the problem is to define it. So what would workflow be in MODx? Is there a working solution that I am not aware of?
      [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

      Something is happening here, but you don't know what it is.
      Do you, Mr. Jones? - [bob dylan]
      • 25483
      • 741 Posts
      Could you post the twitter discussion here? A saw it in TweetDeck but reading it as a outstander is difficult wink
        with regards,

        Ronald Lokers
        'Front-end developer' @ h2o Media

        • 7231
        • 4,205 Posts
        Pieced it together, like I said Twitter is not the best for this sort of discussion:

        First you create a workflow (you can have several). Then you create possible statuses for a workflow..
        Then you can assign content types allowed to use that workflow, and also which roles can see and/or edit the status..
        Next you define which actions are to be taken for each status modification (like publish the content if status is modifie ...
        Note that you can trigger more than one action for a given status change (example : publish and promote to front page).. 
        have rules saving the content and creating a new revision for example.Pretty handy..
        From the content editor point of view, there is a workflow tab (if the editor has the rights). From there he can change s ...
        And he can also schedule the status change and add a comment associated with the status change. ..
        And I think that’s it. It’s IMHO as powerful as a workflow addon can be. You’d have to test it out to really see how it’s ...
        Another thing needed for this kind of website is taxonomies (this goes well beyond tagging).

        In rereading this I am intreagued with the first line. You can have multiple workflows?
          [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

          Something is happening here, but you don't know what it is.
          Do you, Mr. Jones? - [bob dylan]
          • 27708 MODX Staff
          • 2,502 Posts
          You can use search twitter discussions using search.twitter.com or you can use disqus too. Conversation threading is tricky but threading is appearing more and more in search.twitter.com results.

          Keep this thread alive. I’d love to see this conversation lead to a real workflow since it is a standard feature in most ECM solutions.
            Author of zero books. Formerly of many strange things. Pairs well with meats. Conversations are magical experiences. He's dangerous around code but a markup magician. Blog ✦ Twitter ✦ LinkedIn ✦ GitHub
            • 7231
            • 4,205 Posts
            I’d love to see this conversation lead to a real workflow since it is a standard feature in most ECM solutions.
            That is my plan. First to define, then to plan and finally to build. I am not 100% sure of all that is involved in a workflow that is why I started with the definition. Is there a working example in other systems to be inspired by? I know that Drupal has something but I can’t find any useful info on it without actually installing it and I don’t have the time for that right now.

            The wikipedia definition is useless to me: http://en.wikipedia.org/wiki/Workflow_application

            Does WordPress have workflow or a workflow add-on?
              [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

              Something is happening here, but you don't know what it is.
              Do you, Mr. Jones? - [bob dylan]
              • 6726
              • 7,075 Posts
              You’re right, Twitter makes it hard to be clear...
              I’ll set up a Drupal install with the module for you to play with, and send you a PM, probably next week...

              For the record I was referring to a project I am working on, which requires custom workflow and I had to go for Drupal to handle that. The twitter quotes refer to how Drupal workflow module work. This is a big module, with pretty advanced settings (custom statuses, handles roles and permissions, is tied to trigger actions for every scenario in one way and the other e.g archived -> published, trash -> draft or whatever is imaginable). Along with the taxonomy module I think those are industry benchmarks of what can be done in those areas.

              Yes with the Drupal module you can have as many workflows as you like, which is probably overkill in many cases but not in this specific case where there are a LOT of content. Drupal allows for different content types and you can even go granular by defining which workflow applies to which content type.

              Wikipedia’s definition is wide, and maybe not specific enough for document workflow.
              How would I define a workflow ?

              Well, to me it’s a structured process a document goes through from draft to publishing to archiving to trashing. Each step requires a validation process by an authorized person. This person can be different for each step, and that’s where Roles and permission come to play. Each validation has an effect on the content status (published, promoted to frontpage, archived... etc).

              Those are the common steps but in some cases you have several reviews / validation before a document gets published. Now I am talking complex workflow which will only be useful in a handful of cases. IMHO we should stick to simpler things with no customizable workflow.

              As for WordPress and workflow, there is a pretty interresting codex article :
              http://codex.wordpress.org/User:Scompt/Workflow_With_WordPress

              Workflow is useful when you are in the context of multiple authors, and even more so when you manage a lot of content, with frequent publishing. It’s also useful mainly in the context of webzines, web publishing but not so critical to corporate websites. I know I never had a use for it before.

                .: COO - Commerce Guys - Community Driven Innovation :.


                MODx est l'outil id
                • 22303 MODX Staff
                • 10,725 Posts
                Just as a side note/reminder from the core development team on the content versioning/publishing workflow issue:

                [*] MODx Revo 2.0 will not have native workflow or versioning features in order to provide a more seamless migration path from 0.9.x/1.0; i.e. without breaking every component that depends on the legacy API calls and database structures.
                [*] MODx Revo 2.1 will introduce important database structure changes that will break legacy (0.9.x/1.0) API calls and direct SQL queries in components and provide the foundation for versioning of content for many purposes, including for easy restoration of past content, workflow management, and i18n of all Content Elements (i.e. everything from Resource content, pagetitle, and introtext to Element content such as TV values, template/chunk content, and even snippet/plugin code, will be a record in the Content tables that can be versioned for just about any functional purpose.

                I believe this approach is important, because not only is MODx template centric, it is as such, content centric.  And the MODx data model should reflect that fact by making Content a first-class citizen (and not a column in the Resource and Element tables).  Once that transition is made, the content workflow potential of MODx will be as powerful and flexible as it’s templating capabilities.

                Until that time, some types of workflow can be applied through the use of custom tables to track status data and some plugins to interact with it.  It really is only limited by your imagination and development skills in that sense, even now.  However, I realize that most people just want the features and not a development project, so either have patience for the higher-end ECM features that will be added to the core project deliberately and carefully, or fund a developer to come up with an implementation to meet your requirements as an add-on.
                  • 6726
                  • 7,075 Posts
                  Drooling at Revolution 2.1 grin

                  Thanks very much for the input !
                  The question was asked on twitter and didn’t know what to answer Shane, now we have the grand scheme smiley
                    .: COO - Commerce Guys - Community Driven Innovation :.


                    MODx est l'outil id
                    • 21191
                    • 236 Posts
                    Can’t wait to start playing with it.
                      ~Shawn Himmelberger
                      Check out my MODx Development and MODx Design Company - Himmelberger Design
                      • 7231
                      • 4,205 Posts
                      have patience for the higher-end ECM features that will be added to the core project deliberately and carefully,
                      So it seems that for a true workflow solution we better wait for 2.1. I am OK with that wink

                      Until that time, some types of workflow can be applied through the use of custom tables to track status data and some plugins to interact with it. It really is only limited by your imagination and development skills in that sense, even now.
                      This is what I was getting at. What we need is not really a solution for a workflow, but rather to establish a method. The first time I thought about this I considered using a combination of roles, template variables and plugin to control the process.

                      To reproduce a workflow like this one described in the WP article is nt too complicated.

                      1) create a role for each step.
                      Contributor: can create new documents but not publish
                      Editor: can create, edit and delete but not publish (basically the same as cotributor but we need the role for MM)
                      Publisher: can publish

                      2) Create a user/document group for each role.

                      3) Create a checkbox TV for each of the options needed for the process. Draft, Submitted, Edited, Approved, etc.. and limit the check boxes to the specific groups so that each level only has access to their own set.

                      4) Use a plugin to recognize which checkboxes are selected on saving the document. If the box that sends it to the next level is selected then the plugin will send a notice to the user notifying that there is a new document to edit/publish.

                      5) there could also be a module to work as a dashboard where each user could track the process (may not even need a custom table)

                      This is an overly simplified blueprint but it seems like a good starting point. I am sure there is a much more sophisticated method to do this. Any ideas?
                        [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

                        Something is happening here, but you don't know what it is.
                        Do you, Mr. Jones? - [bob dylan]