Linking vocabularies to specific content types (page, story, project etc) is great, and what I think is one of the best features of drupal. However, there are definitely elements of this implementation that could be improved. Here are some of my initial usability impressions. Just some initial rapidfire thoughts, as there are some tricky issues which i am yet to fully get my head around. overall i think that drupal sets a very good standard, and i'd like to see it get better...
1) multiple selects are great, but i would find checkboxes far easier to use in forms. i think this interface for joining nodes to terms could be a little more advanced - maybe the admin could control the input type of a vocabularly- select box, radio, checkbox, etc...
2) rather than being static markers, multiple select terms could be able to be filtered - so you could combine two or three terms, and filter the content of the site from this combination, or cruise from page to page with the filter storing your settings, and loading all content based on those settings...
3) logically following on from this, there could be some capacity for assigning specific terms to certain users, this would be particularly useful for sites with magazine focused categories, where there might be individual sub-editors for different sections...
4) different vocabularies have variations in meaning and weight, it would be good to have more options for the way a specific vocabulary interacts with the content/navigation - there could be built in vocabulary types such as Subject , Section , Topic , etc... focusing on being more of a type language, rather than generic labels... just a possibility, and i really have to think it through a bit more coherently - but just thought i'd float a few things out...
Comments
Filtering with taxonomies
I completely agree with you on the #2. I do not have strong feelings about the rest because I've not used drupal that much. However I have implemented such a functionality for my homemade "cms". Actually I have started with the idea of creating a directory of all the workplaces and research institutions in the field of mobile robotics for my site at http://robotika.cz/ (but it's not there yet
). The functionality I sought for was to be able to find easily things like "show me all the research institutions interested in indoor mobile robotics from UK focusing mainly on software and/or control". This equals to creating a query like (research AND indoor AND UK AND (software OR control)) [assuming that the words have tids in theirs vocabularies]. Would there be a desire for such a feature in drupal? I could voluteer for it
The implementation of my taxonomies was based on tree of arbitrary depth. The tree was represented in a mysql database as a depth first "search" meaning that each node was assigned three numbers: left, right and id. The numbers assigned to the left and right field were generated by a counter counting the number of all nodes in the depth first search. When first reaching a node the counter was incremented and recorded in the left field, then all the children were recursively enumerated and then the counter incremented again and assingned to the right field resulting with the root having left=1 and right=num_of_all_children*2.
The main advantage of the implementation were single queries for all children of a particular node arbitrarily deep. The implementation allowed listing of all research institutions in europe even though the term associated with the institution was a country. By using the europe's left and right fields - WHERE europe.left < this.left AND this.right < europe.right.
the modified preorder tree traversal algorithm
Sounds like what you're referring to...
http://www.sitepoint.com/article/1105
interesting
i wonder how much faster book.module would be using this algorithm ...
Table locking
This is known technique that makes things a whole lot faster. The only problem is that rebuilding the tree should be atomic (in our case) which requires table locking ...
some of this is doable today
1. nice ideas.
2. it is already possible to filter the site for multiple terms. just concatenate them with comma separators. you may also instruct drupal to AND or OR the listed terms ... try index.php?or=1,2,3 or index.php?and=4,5,6.
3. i'd like to hear more how you one would use the association between users and terms, as in the magazine example. we've discussed access control by role+taxonomy, but I'm more intereted in the use of this feature, not the implementation.
sub editing and category filters
the idea with associations between users and terms is that you might need to have separate editing roles in the publishing process, but with these roles interacting with essentially the same stages of the process.
print magazines will generally have particular feature or subject editors, who may or may not be part of the main editorial team and responsible for final publishing decisions , proof checking etc. maybe there is a films sub-editor, a music sub-editor, a books sub-editor, etc who work with a larger group of reviewers feeding content into the site. the sub editors would only be responsible for editing content within their area, and maybe it's useful to ensure that they ONLY manipulate content in their areas. they would be using exactly the same functionality, but be interacting with a select subset of the overall web content. there are various reasons you might want to do this, rather than have open category editing, depending on the scale and nature of your publication.
dividing responsibility, and eliminating cross-over of editing between different subsets of content allows the process of publishing to become manageable for larger groups in these kind of magazine environments. if there is an overall editor, or single publisher, responsible for the entire content of a magazine, it is good if they know who is doing what, and know that there won't be any carry on outside of this.
yes, this is kind of heirachical, kind of different to the open community moderated model of publishing, but it is a seriously productive approach to content gathering and writing if it is done well.
am thinking that there are various ways in which web publishing can be integrated with print, one of the interesting possibilities is where you have a large user base feeding content into a website, where the editorial team regularly selects and downloads the best picks to drop into a print layout... this is kind of where these ideas are stemming from...
but more specifically web related, i was thinking about the idea of user defined filters, stored as session variables or permission strings, where users can flag certain content categories in their user profile, and interact with the site based on this profile... that's more what i was getting at with the filtering idea (but thanks for the tipoff re: the and/or comma selectors in drupal - that's really cool!)
need use case
i was thinking about the idea of user defined filters, stored as session variables or permission strings, where users can flag certain content categories in their user profile, and interact with the site based on this profile
this sounds exciting at a geek level, but how would a site really make use of this? why not give links to the user where he explicitly sees the mix of terms that he cares about? the only application i can think of is in the negative context such as "never show me articles about skiing or bowling").
but thanks for the tipoff re: the and/or comma selectors in drupal - that's really cool
no problem ... wish that feature was more apparent in the UI.
i have one for you
I am wanting to do something like this for my site (http://www.oasismag.com -it's a long running writing community for gay teens.. almost 10 years old)
I want to be able to store meta information of each of the user blogs on the site and be able to filter on that. IE : i only want to see blogs posted by other lesbians living in north america around the ages of 20-23.
I also want to have different sections on the site , with administrators for each section.
IE : have a poems vocabulary term, which anyone can post to .. but person x has admin ability on the poem category and nowhere else. Also , terms which user does not have write permission to should not show up on the term list.
The site is of such a large and diversified nature I am going to have to try and channel content/responsibilies in as a controlled way as possible.
Before userland frontier died a utterly painful horrible death on us (losing ~1gb of actual user content) .. we were 2700 users and 600 hosted user sites strong.
nice example
I want to be able to store meta information of each of the user blogs on the site and be able to filter on that. IE : i only want to see blogs posted by other lesbians living in north america around the ages of 20-23.
that is a good example. i'll be other sites could use this too ... i'll try to add this to drupal. i really need kjartan's node api to do it cleanly though.
I also want to have different sections on the site , with administrators for each section.
IE : have a poems vocabulary term, which anyone can post to .. but person x has admin ability on the poem category and nowhere else. Also , terms which user does not have write permission to should not show up on the term list.
since this deals with access control, it requires a larger discussion of how to implement. we are discussing it here.
Kjartan's node API
that is a good example. i'll be other sites could use this too ... i'll try to add this to drupal. i really need kjartan's node api to do it cleanly though.
Well, feed it to me in small incremental chunks. I'd like to work on the node API first if that is going to help tackling the suggested taxonomy improvements.
possible to do a checkout by date
is it possible to check out the drupal repository as it stood on october 20th for example? what would be the command? this would speed up an effort to bring kjartan's code into the core. if not, i suppose we could checkout 4.0 and work from there.
cvs co -D "20-Oct-2002"
see checkout options and -D date_spec.
it's a pleasure to help out in bringing kjartan's famous node api into the core
TortoiseCVS
silly me, TortoiseCVS has this built in on the revision tab. Presents a pretty calendar widget. This is an easy CVS client for Windows.
I had a look
the problem is that Kjartan's patch applies clean about in the beginning of October. You know best how many changes to the drupal core have been made since then.
In short: It will be very time consuming.
--
Drupal services
My Drupal services
some design questions
I want to be able to store meta information of each of the user blogs on the site and be able to filter on that. IE : i only want to see blogs posted by other lesbians living in north america around the ages of 20-23.
So assume that we associate the terms 'lesbian', '20-25', and 'north america' with this user. do we silently tag all her posts with these terms? are these default terms which may be overridden by her on the compose/edit form. what do you think?
also consider the intranet case where we want to tag a particular person's posts with the terms 'marketing' and 'market research'. some of this user's posts are likely not related to marketing at all, so i see a need for lettign the user adjust his terms on each post.
#1 select vs. checkboxes, etc.
With regard to #1, this might be a good idea with small non-hierarchical taxonomies. If this were to be implemented, control over what type of form object (select vs. checkbox) needs to be controlled by the admin. Imagine how unwieldy it would be to see a long list of options like this formatted as checkboxes. It might work well, though, and I would definitely like to see it.
What I would like to see with regard to how taxonomy terms are selected is:
1) Child nodes that have multiple parents should appear under each parent. Presently, a child node will only appear under the parent that comes first in the alphabet. Taxonomy_dhtml and taxonomy_html handle this correctly, but the select form does not.
2) Possibly the option to add a new type of interaction where upon entering a new blog/story, etc., instead of using a select form, you click a link that reads "Add [taxonomy name] terms to this entry" or something. When you click that link, it opens a new window with all of the available terms for entry as checkboxes. From there you can click the terms you want and click submit. The add terms window closes and shows the terms you selected on the original entry page. I could flow chart this if it doesn't make sense, but seems like a good idea. It would be a good idea for sites with large taxonomies.
Drupal web site example to download
I am begining to evaluate Drupal. I am amazed about what it can do but I find myself a bit confused about how to design my first web site with drupal.
¿Is there any "already designed" drupal web site that can be downloaded and analysed as an example?
Thank you
Manuel
#1) essential
#1: EXCELLENT idea. i'm actually looking to implement this, because i *have* to, for a scrapbook site.
what's the best place to look for the drupal developer guide? my hope is that we somehow keep the taxonomy info in an object (or at that there's an API to grab a specific hierarchy from a taxonomy), so the display is trivial. is this the case? is it easy to extend modules? (as opposed to "patching" the module)?
mind you i haven't done php dev in years; i know/remember enough to fix scripts, and don't know what's currently availalbe; have been doing java and .Net for most of my career. i know, i can look through the docs, but i'm mainly looking for a quick kickstart. :)
thanks!
j.
---
Jon Madison, Consultant
Thought For Food Tech, LLC
http://www.tfftech.com/
#1 Yes! and when ??
I don't know when we can have this. Guys this is a basic feature that should be there.
I will probably have to develop, like all other devlopers since this feature was requested on 2002 on my own...