Page 1 of 2

GET PAID! I need a content/page approval module

Posted: Wed Sep 03, 2008 8:40 am
by jack4ya
Like the title...
I need my client to be able to review and to approve content/pages before it's set live.

Workflow:
My client (editor in chief) has 30+ departments (editors).
Each department should be able to edit pages (adding and deleting is not that important, but would be nice).
When the editor is done, information is shown that their work is awaiting approval.
My client (editor in chief) should receive a mail.
If possible that mail should contain information about what content/page was modified.
Then when my client (editor in chief) enters the backend, on the page list, preferably there would be a column added.
In this column it's shown whether the page/content needs to be approved ("need approval")
In the editing page, there should be a toggle funtion. ("approval given")

This functionaliteit is preferably written as a module, or it should be well documented what was done to a new installation.
Site is yet to be installed. We have our own server.

I have an idea how this could be written, but I am not an programmer.

I know about UDT sending a mail on content saving (in event manager) but this is really too limited.

I am aware that 2.0 will have a workflow/approval functionality, but it's still not clear when 2.0 will be ready.
Apart from that, such a new version might be "too much/accident prone" to use so early in this stage.
I need this module in a couple of weeks...

For more information contact me.
If you can't help me, but know someone who can, please... contact me.

Re: GET PAID! I need a content/page approval module

Posted: Thu Sep 04, 2008 8:27 am
by Russ
Another problem here would be multiple editors. As far a I know CMSMS has no controls to lock pages/items when being edited. So everything is on a last save basis.

Re: GET PAID! I need a content/page approval module

Posted: Thu Sep 04, 2008 11:41 am
by jack4ya
Hi all,

thanks for all the replies.

I thought of the news module, it has the functionalities.
But it means that every page (or at least the approval required ones) should build through the news module, right?
Must be confusing in the backend for a lay...
I will take a good look to see what the pros and cons of this approach would be.

Now this might be a work around (Mark's post)
If he used FEU, CC, and News FEU editing the articles will auto save as draft.
Editor in chief has to approve them can check them and put them anywhere he wants...

Now, I do need the following:
After a existing article/page is edited is should remain live (in the previous version, showing like nothing has changed).
* I am not sure this is possible, I didn't think so but I haven't used News FEU yet.
* "put them anywhere he wants" < have to have a look at it, 'cause if I understand this correctly, it means that the article(page) isn't live.

I'll go and do some trial-and-error and report back.

Re: GET PAID! I need a content/page approval module

Posted: Thu Sep 04, 2008 11:42 am
by jack4ya
Despite I am having a look at the workaround, the first approach described in the OP, is still desired.

So the job/project offer is still up!

Re: GET PAID! I need a content/page approval module

Posted: Fri Sep 05, 2008 8:04 am
by jack4ya
Mark's idea: FEU, CC, and News FEU

It's only possible for a user to submit a new article, not to edit an existing one. Therefore, this will not work.


Different approach!

Isn't it possible to have in a template and also in database "content_draft" next to the "content" in the db table cms_content_props.
Then in the edit page (in backend) for an editor:
only display "content_draft", they can edit this as the wish and store it.

When it's stored the editor in chief receives a mail.

Then in the edit page (in backend) for the editor in chief also only display "content_draft"
BUT when they click an "approved button", the data in "content_draft" is automatically copied to "content".

This would need at least
- an addaption of the editing page in the backend
- some code to display "content_draft"
- an approved button
- database: extra field "content_draft"

Is this a good idea? Can anyone help me with this
Is this is a bad idea? Why, and what would be a better solution?

Re: GET PAID! I need a content/page approval module

Posted: Fri Sep 05, 2008 8:36 am
by vilkis
It is a good idea. However, more features should be created in order that the system would work well:

locking of page when it is being edited by editor;
possibility for editor in chief to view "old content";
possibility for editor in chief to reject content draft;

The think is that it would be the hack of CMSMS core. So,  you have to apply this patch after each update of CMSMS.

What is a timeframe?



Vilkis

Re: GET PAID! I need a content/page approval module

Posted: Fri Sep 05, 2008 8:49 am
by jack4ya
vilkis wrote: It is a good idea. However, more features should be created in order that the system would work well:

locking of page when it is being edited by editor; nice, but not a must for me
possibility for editor in chief to view "old content"; maybe just display current "content" this but disable editing
possibility for editor in chief to reject content draft; a deny approval, will empty the field of "content_draft" without copying it to "content".

The think is that it would be the hack of CMSMS core. So,  you have to apply this patch after each update of CMSMS.
Pity, but c'est la vie, because for me, this is a dealbreaker if I can't offer an "approval method" to my client , as long as it's documented, keep my head straight I'll be fine  ;D
What is a timeframe?
Couple of weeks... maybe 2 months..
Vilkis

Re: GET PAID! I need a content/page approval module

Posted: Fri Sep 05, 2008 12:53 pm
by NaN
mark wrote: This is the way news handles front end input it has to be approved before it will get shown, so Chief editor will get email about new article and then he logs into backend and reads/corrects/edits article and then marks it as published and it goes live...
But is the frotend user also able to edit an already existing article ?
Will these changes also be handled like new articles?
That means: As long as the changes are not aproved by the admin the old article will be shown.
When it is aproved the new articles content will be shown.

If so, will the article only be editable for that user/usergroup who has created the article?

Another problem is that you just have articles that can be put anywhere.
If you want to create pages instead (with links in the menu) you must create a new page and insert the news module tag with params that only shows the desired article by yourself.

Re: GET PAID! I need a content/page approval module

Posted: Fri Sep 05, 2008 2:49 pm
by jack4ya
First of all...
The more I learn about the power of cmsms, the more I realize I know so little about.  ;)
Secondly:
English is not my native tongue, so I might have some problems pointing out what I mean. Please do not hesitate to ask me what I mean if I talk jibberish again.

Now...
I'm a bit familiar with the News module, using the templates, thus creating pages with overviews, job openings, newsletters etc etc.
Mark pointed me to fesubmit for news. At least that's what I came up with after his tip. However this is only for submitting new articles. It's not that I don't want to believe, of course not, I would love it to be the solution. But for now I don't see how your tip would handle my needs.

I think NaN has made a good summary of my whishes...
except for one small thing: these editors (in my case) are not allowed to make new pages or the alter the pagestructure. So that's a small plus.

All needs to be finished around Oct 27th (then I have, at most, a week myself for building the whole site)

Ow and NaN, thanks for your help sofar  ;D

Re: GET PAID! I need a content/page approval module

Posted: Fri Sep 05, 2008 3:02 pm
by calguy1000
I work with News and News does not handle this the way you want.  so News is out.

To get content approval mechanism into the core would be a significant core modification.  Roughly it would involve:
a) Add a permission called 'Publish Content' or something like that.
    - would require a schema change and a new version of CMS
b) Add a mechanism whereby 'draft' content can be saved.  It should handle the situation where
    there are multiple content blocks on the page.....
    - May require a schema change
b) Add a mechanism to email selected administrators (who have the publish content permission) are contacted
    when a page is edited.
    - would require some preferences and the ability to change the message that is sent.
c) Add a mechanism whereby selected administrators (somebody with a certain permission) could approve or reject
    content for frontend display
    - would require a modification to the listcontent page to see content that has modifications
    - would require a modification to the editcontent page to approve content.
d) add a locking mechanism so that the same page cannot be edited by two people simultaneously

Caveats:
  - This can't be done as a module it would require a new version of CMS Made Simple with a significant beta
    process.
  - The preview functionality only supports one content block.... so ideally authorized people would need to be
    able to see the 'draft' page in it's completed form on the frontend, with a notification that the page is
    in 'draft' mode, and a way to display the previously 'published' code.
    - This would probably require significant changes to the core classes, and a new plugin
      or two.... and probably a preference

It's a considerably large project that would result in a new version of CMS.

Re: GET PAID! I need a content/page approval module

Posted: Fri Sep 05, 2008 7:50 pm
by NaN
What about an additional content type?
Storing content, draft and "approval status" as content_props won't need changes to the database.
In the backend the content type now just needs to check if the content_prop "approval status" is set to "true" and if we want to see the actual (approved) content or the draft. (could be a dropdown that reloads the editing page like the content types)
So we can switch from content to draft.

We also need a module that creates new permissions like "Approve Content" and a handler to the event "ContentEditPre".
When a content is changed the content will be stored in the content_prop "draft" and an email will be sent to the admin (or a specified email address that can be setup in the modules preferences).
When a content is approved the content_prop "content_en" (that contains the content that will be shown in frontend) will be replaced with the content_prop "draft" (that we stored with the new content type).

So in the frontend will only be displayed the approved content.

The only thing where we need to modify the core is the listcontent.php to show where approval is needed.

This is not easy (for me - i'm also no programmer).
But i believe it would be possible to realize that with just a module with its own content type and only a modification of the listcontent.php.

Re: GET PAID! I need a content/page approval module

Posted: Mon Sep 08, 2008 7:43 am
by jack4ya
CallGuy and NaN thanks for the ellaborate post, really insightfull, but I don't like the open endings/how it sounds...  :-[
It's starting to sound like I'm really getting stuck :o

CallGuy seems to have a good approach, but maybe a too complete approach. This would benefit the whole community, which off course is good, but also makes it (too?) large as a project. Nonetheless, bigger or smaller... I would settle for both, if I would just have a content approval method to begin with. Hard coded patch would be fine also!

Depending on what a client is willing to pay for this (might need some time talking it through, back and forth)... is there anyone who might be able to make this for me?

How about the idea NaN is opting? Seems smaller, but would it work?

I'm running out of idea's / options here... maybe it's time for a first for me... say no to a new assignment for a big client.  :'(
(I would hate it! I love cmsms...  I am sooo stuck)

Re: GET PAID! I need a content/page approval module

Posted: Mon Sep 08, 2008 2:03 pm
by NaN
jack4ya wrote: How about the idea NaN is opting? Seems smaller, but would it work?
I'm working on that idea.
I'll post my results soon.

Re: GET PAID! I need a content/page approval module

Posted: Mon Sep 08, 2008 3:12 pm
by calguy1000
A module that creates a content type could work, it would allow you to keep track of draft content and published content, and to modify the form to allow for these options, etc.  I think.

However, you would still need to hack the listcontent page to be able to view modified pages, and those that are in the draft state.... and this would have to be a hack, because no other content type would use it.

Re: GET PAID! I need a content/page approval module

Posted: Mon Sep 08, 2008 3:39 pm
by NaN
calguy1000 wrote: However, you would still need to hack the listcontent page to be able to view modified pages
The module i'm developing has an own admin section that shows only content of type "ApprovableContent".
There all non-approved drafts will be shown.
The listcontent.php still just shows the actual content.
There will be no hack of the core neccessary.
Only minus is, that you need to manage two kind of content lists.
The default one and the approval stuff.