Page 1 of 1

Re: Enterprise class features

Posted: Wed Mar 15, 2006 4:40 pm
by fredt
I love these questions (although I have no answer...). This smells S-O law...

I'd add:
- is any workflow mechanism avail/planned for validating publication (news, pages...) ?
- (how) can one implement replication features between production servers ?

Re: Enterprise class features

Posted: Mon Apr 24, 2006 12:59 pm
by Fido
Hello,

I need these features too :

- add workflow validating on user or user's group profile
- then validate content when user post new content with his validating workflow profil

so i'll start develop this features for my project, i wish submit my dev here for testing or for help.

This is the way i think is the best, what do you think about ?

the cycle can be like this :
1) a user add a new content, on click submit, a mail with a direct link to this content is send to the validator
2) the validator receive the mail notification, he open the direct link to the new content to validate et then he can :
- add corrections into the content
- add some notes to the content (via a new text area dedicated to Notes)
then he can submit the content with corrections to the original user or he can submit the content to the webmaster who have to put online this new content
3) or the user receive his content to check it and send to validator again
4) or the webmaster receive a email notification in order to publish the content

On the code side it can be like :
- develop a new module that manage and register a validating cycle for a group of users, in which we can define for a group of users who is the validator and who is the webmaster

- then how put this feature while user add new content for not directly publish but send the new content to the validator and after to the webmaster.

That least point is for me the most difficult bacause i don't have how to implement this without put some code in the original code of cmsms. Or we can develop as a module wich can be "add validating content" so it's can be completlly independant form the original code of cmsms ?

what do you think about this way ?

Re: Enterprise class features

Posted: Mon Apr 24, 2006 1:20 pm
by fredt
Internally we're using the following trick to manage validations: we created a "News_Valid" news category and a not--inmenu (=hidden) page showing only this cat, so people in charge of validation can see and validate it --> they just change the category.

Of course, this is not a *real* workflow - but in my mind, the difference would be as follows :
- "Category" field is hidden
- people create in "News_Draft" category , the "submit" button set category to "News-Valid1"
- validators1 see only these news, their Submit button sets categ to "News-Valid2" - put a new button to "Refuse" and set categ back to "News_Drafts"?
- validators2 see only these news, their Submit button sets categ to "News" - so they're published.

I think you can put all this on one page, and set the Category - _Draft, _Valid1, _Valid2... to be shown according to users' group membership - let's say "Group_for_News_Draft", "Group_for_News_Valid1"... Can someone confirm this point ?

So, you'd have to :
- hide category
- add a "Refuse" button
- set a system to define the flow - "next" and "previous" step. I can post more on this (next week - busy!) if needed.

HTH !

Re: Enterprise class features

Posted: Mon Apr 24, 2006 3:46 pm
by Fido
thanks for your fast reply !

it's a good trick you use.

Did you have code it directly in cmsms classes ?

In my case, differents groups of users can have differents validators, so i really need to have a workflow manager.

The second difficult is cmsms don't manage permissions on specific content (i'm not sure but i've tried to do this without succes).

finally the project is oriented for corporate client and must have a "user-friendly" interface to manage this features.

to be continued...

Re: Enterprise class features

Posted: Mon Apr 24, 2006 5:21 pm
by fredt
No, I didn't code anything - we're just changing Categ by hand.

I'm not sure you'd have to hard-code adding/changing buttons, hiding categ... That's probably some smarty thing - but I'm not sure...

"differents groups of users can have differents validators" : do you mean in *same* workflow, some kind on conditional validator ? Or can you just say "User A starts a Workflow_Z instance", so you "know" it will route through Step1_Z, Step2_Z, Step3_Z ?

My basic wflow architecture:
Workflow table : Code ("News"), Label ("Corp News"), Version ("1"), group(s) allowed to create.
Steps table : each step has a Workflow_Code ("News"), Code
("News_Create", "News_Valid_Content", "News_Valid_Look"...) , Label ("News Validation").
Note that Workflow destinations are not coded in the steps, but in their actions.
Actions table : WFlow code ("News"), Step ("News_Valid_Content"), Number (1,2,3... so they be shown in this order), Label ("Validate Content for this News" - so you can generate buttons), Destination_Step, Allowed_Users_for_Next_Step, Hide_Condition, Mail_To_Send.
Mails table : Mail_Code, Subject, Content - for those two, would be fine to have some smarty and/or formula evaluation...

My favorite trick : for each Action, Destination_Step, Allowed_Users and Hide_Condition are evaluated at run-time. So, for Dest_Step : you can decide to code & store in the db:
- "News_Valid_Look" ('direct notation')
- or some kind of this (this is only pseudocode, probably wouldn't work !!) :

Code: Select all

if (some_special_condition = true) {return "ThisDestStep"} else {return "ThatDestStep")
For Allowed_Users, you can set same kind of mechanism to decide to "send" to one/many groups, users...
For Hide_Condition, you can use it to hide the Validation button on 1st April... or if FieldAmount is negative.
This allows to test & decide anything.

The code "knows" which is current step_code and wflow_code, looks for all possible buttons, evals if they're to be shown & their order, and prints them...

But I have NO idea so far about how to create fields on wflow "Pages", and then how to eval them (I mean, to get them back in the code). I'm still thinking about using QCodo (php5 only), but didn't try yet.

As it's for a contract, you'll perhaps have time & money to code it ! Hope you'll be able to share...

Thats All Folks...

...Or perhaps there's a good php wflow engine out there to embed...

HTH !

Re: Enterprise class features

Posted: Mon Apr 24, 2006 6:19 pm
by Elijah Lofgren
bornholtz wrote: Are older versions of pages stored in the database?  Due to regulatory concerns we need to track every version of every page and be able to recreate the site for any point in time.
Check out Archiver: http://dev.cmsmadesimple.org/projects/archiver
I haven't gotten it working, but I think that's because I'm using the SVN version of CMS Made Simple.

Re: Enterprise class features

Posted: Tue Apr 25, 2006 3:12 am
by Fido
Nice FredT !

I really like the look of the architecture of your workflow.
I think that the code side can be as you describe.

But for me the essential question is how to implement this in cmsms ?

- as a module
- as a plugin
- in the original code
- can i subclasses the content manager in order to adding this features ?

Can anyone have an answer fro this ?

Re: Enterprise class features

Posted: Tue Apr 25, 2006 6:45 am
by fredt
Not me...  ;)... I guess it probably would be a module.

It would probably be nice to watch Form Generator module.

But as for code architecture... The Dream Dev Team Will Tell Us !

Re: Enterprise class features

Posted: Tue Apr 25, 2006 7:15 am
by Fido
he he !

yes i wish that The Dream Dev Team tell me the best choice for dev.

Just a last question : the architecture you explain me has been implemented already in cmsms ?

anyway i put feedback on this dev here.

the form gen module seems not work properly, i like more the form builder module that i've tried already.

Re: Enterprise class features

Posted: Tue Apr 25, 2006 7:50 am
by fredt
Alas, not implemented yet under php... Just was in Lotus Notes, after installing & consulting on workflow products & systems for five years  :D

I perhaps probably forgot some points on this draft, so if you go on, I propose you to work with you on it. I'll probably have some hours for this in May.

Re: Enterprise class features

Posted: Tue Apr 25, 2006 7:58 am
by Fido
yes ! it's a nice idea.

What is you skill level in programming ?

for me, i'm more easy on dev with flash but i play with php since 6 or 7 years.

Re: Enterprise class features

Posted: Tue Apr 25, 2006 8:21 am
by fredt
I'm not good in programming, having to RTF(php)M every 2 lines...

But I'm quite good in reading, copy-pasting and debugging code.  ;) Oh, and finding solutions for things said to be impossible, too  ;D [because I don't know they're impossible... ;D]

Re: Enterprise class features

Posted: Tue Apr 25, 2006 8:46 am
by Fido
;D so it seems to be a good team, a brain and some arms to code ;-)