Suggestion 1:using virtual node and reffed node to publish a node at many places.
Suggestion 2:Administrator can decide which document type/template/macro can be used by a user.
Suggestion 3:Let datatype can use part of a node as value.
Content
Company1(User A)
Sales news(virtual node)
Sales Department(User A1)
Other
Design Department(User A2)
Design news
Manufacturing Department(virtual node including child node)
Some node
Company2(User B)
Reffed Content
Sales news(reffed node)
Manufacturing Department(reffed node including child node)
Please image:
Sales news can not only published in Sales Department.But also in Company1. Normally Parent Campany can get information from its department.
Both Company1 and Comany2 have not Manufacturing Department. The both Manufacturing Department of Company1 and Company2 are the same standalone manufacturing Company. In other words, Only one manufacturing company work for Company1 and Company2 as a department at the same time.
Now, if you add Sales news twice times at each of two places, you will have some problems. Two sales news can’t be updated at the same time, although both are the same really. You may can update them one by one. But if you have many copies of a nodes or you must update in a large content tree, you may can’t ensure that you can update them all.
My solution is following:
Use virtual node and reffed node just like above.
Virtual node only have related properties from the context. The properties are like sort index, path,access etc. Reffed node is real content of virtual nodes.
To store a reffed node, My thought change start string of path from -1 to 0, then, remove some properties to the virtual node.
How to create a virtual node and reffed node?
My opinion is that add a refer to link in dialog box of creating a normal node. When you make the node refer to other node, both this node and reffed node will be virtual node automatically. The original reffed node will be created as reffed node.
How to delete a virtual node and reffed node?
User can delete virtual node as normal node. When only have one virtual node refer to a reffed node, the virtual and reffed node will be combined as a normal node at place where virtual node is. Virtual node and reffed node will be deleted.
How to edit virtual node and reffed node?
Because the best virtual node is as same as normal node. User can edit them just need click virtual node like normal node. No need to find out where reffed node is.
User access to reffed node just by using virtual node,It’s indirection. Just because of this, I thought that if it’s necessary showing reffed node in content tree?
I have create a document type for Sales news included price. This is no useful to other department. If you want to set include child type of sales department to include document type for sales news, So other department can also include document type for sales news. If you set Sales Department can’t include document type for Sales news, So all department can’t include document type for Sales news.
About template, I have create a template for Sales Department node. It’s not suitable for other department like Design Department. Like above, You can’t set only Sales Department can use this template by set node. Because each department nodes are the same type.
Macro is same as document type and template.If macro only used in template. Then macro isn’t same as document type and template. But macro can used in a richtext editor of any node. So they are the same.
So you have to let administrator to decide which document type/template/macro can be used by a user. Through user permission, you can add these function.
This is the first version of my suggestions. I will add new thought when I have new idea about these suggestions at any time.
I hope these features can be included in Umbraco 4.1
For example: you can let string datatype use xpath to select title of a node as value. Or You can let date datatype select date value of a node as value. Or you can let some information in a node as value of a color picker datatype. This function will make all datatype more flexible and useful. To do this, you can make a generic interface for all datatype. It’s easy.
Sorry for my poor Engilsh.
Thanks for your great work!
China
2010-1-7
When it comes to your first suggestion regardin the linked nodes this is somewhat interesting, however it can be solved without modifying the core. I've just solved with a similiar problem using a content picker, a few properties to control rendering of child content and icons which clearly indicates that it's linked content it works quite well. Adding other content under the linked data was needed. PS: You need to be carefull when writing your xslt for this, templates come in handy.What could be nice was a edit link on the content picker result, taking the user directly to editing the document which is referenced in the content picker. Another thing is that it can be tedious to see child nodes of the linked page in the content tree when using a content picker as the user has to locate the referenced node manually and then look at any child nodes.
But my way is better than your way. User A and A1 can edit Sales News, A1 only can delete one virtual node. A can delete two virtual nodes. They do it just like operate normal node.
If you feel my way is good. please vote it at:
umbraco.codeplex.com/.../View.aspx?...Id=25829
Some famous open source CMS written by C# all support published a content to many places. Like Kooboo(GPL),Mojoportal(CPL) Cuyahoga 2.0 alpha.
I think Umbraco should add this function as they do.
If enough people vote for this (after you've added this as a feature on Codeplex), it *might* be considered being added to the core, but of course, you're free to build this functionality your own and share that package :p
Cheers,
/Dirk
Vote me if you like this function. please.
You can do this with umbracoRedirect
Can both user A and A1 edit Sales news any time with umbracoRedirect?
Use my idea, because there are only one sales news entity. so both user A and A1 can edit it.
This is the main benifit.
When you delete a node that be redirected with umbracoRedirect? the node can auto be deleted? If it can't, it must show you error page after clicked the node.
Use my idea, this should be solved.
I know that slace is a core developer of umbraco, So I hope you can tell other developer what I mean. I just want Umbraco will be better.
You can solve the delete by attaching an eventhandler to Document.BeforeDelete and then delete all pages with umbracoRedirect set to the page you're working on.When it comes editing both users will need rights to the Reffed Content node, besides this there's also the issue of the user having to locate the node to edit it, however it should be fairly straight forward to write a custom datatype which behaves like the content picker but also includes an edit button which takes the user to the correct page.
However I think this is a better approach than hacking the core.