I want to set up a Drupal site where a group of Customer Admins can manage the same type of data (content types) for different customers. I considered a multi-site setup, but this seemed a bit too complex.
Here is what I want to be able to do:
Site Admins can create content types, modify the structure of the site, etc.
Customer Admins can log in and add content for any customer (but not create content types)
Customers can log in and read data that is only related to them, but not for other customers.
When different customers log in, they should be able to be directed to a branded landing page for their company.
All users log in to the same URL (not separate domains or subdomains)
I've looked into a number of different modules, but I'm not sure which one(s) would be best for my purposes. Any ideas?
Update: I appreciate the answers suggesting different modules to look into, but as I stated above, I've looked into a number of modules, but because there is so much overlap, I'm not quite sure which one would best suit my needs. I've looked into: nodeaccess, spaces, Organic Groups (og), subdomain, domain, feature, and context. The answer I'm looking for would have more of an explanation on why one module would likely serve my purposes better than others.
The Spaces module provides most, if not all of the functionality you're looking for.
You might also want to look into Organic Groups
Related
I am currently working on a Plone project with several custom content types. These content types have several fields that in turn fetch their values from vocabularies. Currently, I've just hard coded my values in a vocabularies.py file as such:
from Products.Archetypes import atapi
CITIES_LIST = atapi.DisplayList((
('nairobi', 'Nairobi'),
('kisumu', 'Kisumu'),
('mombasa', 'Mombasa'),
('eldoret', 'Eldoret'),
('nakuru', 'Nakuru'),
))
This works well and there is no problem with it.
The only drawback is that the vocabulary is etched in code and it will need a programmer/developer to modify the existing vocabulary.
What I need is a way for site administrators and users who are not necessarily programmers to be able to modify the vocabulary in future through the web interface i.e. a client from another country to be able to change the list of available cities.
I've looked at Products.ATVocabularyManager but I don't think it fits the bill. Perhaps if there was an interface with a grid to manage the vocabularies. This I guess I will have to manage them by storing them as ArcheTypes.
Is there a way to handle such a situation in Plone 4? How would one go about it?
Products.ATVocabularyManager should work fine for your use case. I've used it with success many times in the past.
It provides an admin UI to manage your vocabularies.
If the UI to manage to vocabs is not to your liking, perhaps you could contribute to the project to make it better?
I'm starting to learn drupal and hopefully this is a easy newbie question for you to answer but my firm basically has a very large data set and I want to present it to the public.
We do research on firms and have a database with a company name and all the data we have about the firm(its mainly numbers/estimates). So is there a way to create a view that does this for us?
Creating individual pages is not very practical since we have several thousand companies we have studied over the years.
If there isn't anything easy, then is it possible to create a php page that takes the company name from the url and then queries the database and presents all the data to users?
Take a look at the views module. It can take a bit of work to customize it for a specific database, but is very flexible once you do.
assuming i have a contacts orchard module which manages contacts
can i have two instance like so
mysite.com/WorkContacts/...
mySite.com/HomeContacts/....
and have the data partitioned by instance/location type etc.
I assume it should be but want to be sure before i dig any deeper
It's not possible by default (although I'm not saying impossible at all).
Each module has it's unique, hardcoded Id which prevents multi-instancing of modules by design. There are also many other reasons why it wouldn't be a good idea...
Achieving such behavior is possible of course, but in slightly different way. As Orchard is mainly about content, you are free to build your own, different content types for different contact types from existing parts and fields. And then you're free to create instances of those. It's described very well here.
HTH
This would probably be better asked over on the Orchard sites.
If you look at blogs functionality you can have multiple of those, following a similar pattern of code you could have multiple of the contacts modules.
The path /HomeContacts ... etc would be set through the routing functionality of Orchard.
I think what you're looking for might the multi-tenancy module, available from the gallery. The only difference with what you describe is that the instances would need different server names rather than subfolders like you decribed.
Then again it's not quite clear whether you only want to separate just the data for that module (in which case the suggestion to model it after blog is a good one) or for the whole site (that would be multi-tenancy).
I'm considering which software to use for a blog that I would like to install in a personal home server (synology). Here are my requirements:
Language management: I'll be writing in different languages, and some entries would be translated in different languages, not always the same. Blog readers should be able to select which languages they can/wish to read. For instance, if they chose English, then all entries which have English translation would appear in English, the remaining appearing in whatever language they were written, or not at all.
RSS customization: the blog will broach different subjects. I would like the users to be able to customize a RSS syndication which corresponds to their interests, so that the sigal to noise ration in their RSS readers remains bearable. This should probably work with a "Categoriy" or "Tag" system.
sub-blogs: I would like to have sub-blogs with their own url, which would present a subset of the blog entries. For instance my blog could deal with politics, sports, and myLife, and I could produce the following blog urls: blog.mydomain.tld (shows everything), opinions.mydomain.tld (shows only the politics related posts), sports.mydomain.tld (all entries dedicated to sports). I would also like to theme differently those sub-blogs (i.e. a ball picture for sports.mydomain.tld, etc).
modular privacy: my intended audience is heterogeneous (family, sets of friends, the internet), and I would like to be able to limit access to certain entries to different subsets of users. To me, the most obvious way to do this would be to define users with a login and password. I would then pool them into groups, and define for each entry if it is private, and if so which groups can read it. I do not necessarily want to share the same things between my neighbors and my school friends.
That also brings the issue of RSS syndication: either each user would have its how RSS thread, or then RSS could be category specific and the private entries would appear without content. Perhaps other possibilities exist.
These set of features are quite specific. I was thinking of using a blog software to implement them, but perhaps I'm thinking this wrong and I should use a CMS or even a framework?
Another point is that this is done for "fun", and although I can program (python, etc), this is not my day job, so it should not require expert level skills or full time investment to implement. A solution which involves me developing a whole new blog application is not adapted to my constraints.
EDIT
OpenID: I like the Stack Overflow login system (check this screen capture of it), because most readers already have an OpenID, and in any case do not need to create a specific one for my blog. The system I would use should be capable of using the OpenID method of authentication
I don't know what is the best translation software around.
But I only use a Babylon Software as an Online Translator too.
You can find it at http://babylon.depapaz.com
Till now, I only use this program for my online translation software.
And I think is good enough as a Translation Software.
Is tagging is the best user friendly way to categorize a subject? An example would be the tags mechanism used in this Q/A site. (StackOverflow.com). How you would Implement categories in a best user friendly way? Or hierarchical categories are the best user friendly way to present available categories?
Is there any online store use tag to categorize product categories?
What you want depends on the nature of the media being categorized.
If you're working primarily with media that is difficult to index, like images, audio, or video, then you want a loose tagging system that encourages putting as many tags as possible with each item. The more tags the merrier, because you will need to use the tags to help index the content for searching.
For something that is more easily indexed (text!), you want a much more rigid system where it may take an extra step or two to create new categories or even force users choose from pre-defined categories. You no longer need to rely on user-supplied tags for search indexing, because you can index the content directly. You are strictly doing categorization, and for categorization to have meaning you need to be sure that users are sorting things into the same categories.
Whether or not a hierarchy or tree structure is appropriate depends on how well your categories fit into a tree structure. Some things fit better than others, and many things that appear to fit a tree structure (like programming topics) turn out not to be such a good fit after all.
I say yes!
Tagging provides a many to many relationship between questions and categories. It makes them loosely coupled and so gives control as well as flexibility for categorizing things.
Tagging has the advantage that a single post can belong to more than one category. This is not possible with (conventional) hierarchical structures. Tagging is a more powerful system than hierarchical categorizing - and so it allows the users to express more.
A hierarchical structure works better if you have a single editor who will spend the time to neatly categorize everything so that a menu structure can be created.
I think tagging works well when things can/need not be strictly categorized or require a hierarchy. It's kind of a non-relational way of relating things.
If works, tags should be controlled or filtered (e.g. crystalreports vs crystal-reports).
Retiring duplicate tags & migrating subject to a proper category will require human intervention.
I don't know of any store that use tagging. Static attributes can be categorized (Electronics -> Camera -> SLR). There could be other attributes, which are dynamic (price range between x and y) & those are not tagged.
Amazon has tags as well. I think, its search option has one choice where it says "get products tagged with" & gives you a box to put in your idea of what a tag could be (which shows you a dropdown of tags, it finds matching - same as stackoverflow).
Tagging can be very useful in every case. For example, gmail applies tags to all emails. Tags could be predefined (with a fixed meaning), or user generated. Having those predefined tags is important as they work like categories, can be controlled by the store owners, and still don't force you to use a hierarchy. You can emulate a category system with tags by enforcing some specific rules on the type of allowable tags, but you can't go the other way round with hierarchical categories.
So, for example, to find all incoming emails on gmail, we can search by the inbox tag.
tag:inbox
Or to get all unread emails in the inbox, we can search by two tags:
tag:inbox && tag:unread
It's much better than trying to categorize in possibly this fashion, for example:
/Inbox
/Inbox/Unread
/Inbox/Spam
Not that anyone cares about spam (the actual ones), but spam can be unread too. So should we introduce another sub-category called Unread inside Spam, or do some other restructuring within Inbox itself?
/Inbox/Spam/Unread
Another store-specific example could be to find all SLR cameras on Amazon that uses compact flash for storage, and supports RAW, and JPEG formats, we could theoretically use:
tag:camera && tag:SLR && tag:Compact-Flash && tag:RAW-format && tag:JPEG-format
Categorization forces you to choose a hierarchy which might mean you have to pick one between two or more perfectly reasonable choices. For example, is an iPod Touch a music player, or a video player, or maybe a portable computer, or all of it?
its depend on the context, if you want to make structure clear and controllable you should force it by your pre-defined category, but if you want to make it flexible and make easier for your user tag is the best technique to manage subject, furthermore it makes search engine easier to analyse and provides better results
so my answer if you asking for user friendliness it would be tags.