Changes under the hood
This thread is mostly technical in nature and may not be interesting to nontechnical users. Feel free to read on and chime in, though. :)
There are some things I'd change about the way I built OGA if I could, and 2.0 seems like a great opportunity to do that. OGA was my first major Drupal site, and due to Drupal's relatively steep learning curve, I made a few missteps that are still affecting us now. Unfortunately, fixing those missteps will require some major work, possibly including writing an importer that reads data from one version of the site, tweaks it, and inserts it into a new version, which is something I'm planning on putting together for the migration to 2.0 anyway.
A little background info: Most pieces of content that you add to Drupal are called "Nodes". A node is a piece of text or an image or another file or some group of fields that's a discrete piece of content. It has an author, a creation date, and some other basic metadata. Different types of content are handled by having different node types, and each different type of node might be themed and rendered differently. For instance, you wouldn't render an audio file the same way that you might render a blog post.
When I first created the interface for uploading art, I made three different node types for art uploads: 2D, 3D, and Audio. These have worked fairly well for us so far, but have the disadvantage of being very similar and yet maintained in three different places. Because of this, I occasionally run into bugs with all three and miss fixing one or two of them. Any experienced coder will understand this issue -- it's the main reason that you separate your code into functions, instead of just copying and pasting code in where you need it.
What originally convinced me to do it this way was that there are a few key difference between each format. For one thing, each separate format requires that we accept different types of files. Secondly, we can always generate a preview from 2D art, but we can't generate one from 3D art, so those two forms differ in that the 3D preview is requried and the 2D preview is optional. Finally, audio previews are rendered using a flash audio player, and other art previews are just images. This was easiest to implement, but unfortunately it's made things very difficult for me to mix art types on the same page, particularly audio and other kinds of art.
In OGA 2.0, my plan is to combine the three types of art into one node type, called Art. When you submit a piece of art, you will select what type of art it is on the submission form, and then any additional requirements (previews, etc) will be evaluated dynamically depending on your selection. The art browsing menu will remain the same, sorted first by the type of art submission (2d, 3d, or audio) and then subtypes. The upshot is that it will be easier for us to add art types and subtypes without mucking around with adding and theming new node types. Furthermore, I'll be able to clean up the search results page so that it looks the same as the Browse art page, and people will be able to freely add 2D, 3D, and Audio submissions to their collections (which are explained in another thread).
This will also pave the way to allowing people to easily submit things such as articles, tutorials, and OpenGL shaders, which at the moment we have no easy way of accepting.
Anyway, part of the reason I'm writing this is to get my thoughts down on paper so I'll know where I'm going. That said, if anyone has any questions, comments, or ideas, I'd love to hear them. For the record, nothing in these implementation details should affect what OGA looks like on the outside. :)
Peace,
Bart
I'm not sure what disscussion thread this belongs to, but is it feasible to get the OP on the forums counted as read/unread, i.e. that the forum software knows whether or not you read the OP, just like the replies? It's kind of confusing, sometimes. ;)
I would like to see the OpenID implementation done right. As of right now, each time I have to sign in using my OpenID credentials which means I have to remember or bookmark the credentials somewhere/someplace. The whole idea and implementation of OpenID AFAIK is to make it a seamless affair especially for users like me and I don't need to remember stuff. Can something be done about that?
Also is there some sort of timeline to OGA 2.0 and perhaps a progress bar of the same so people could know.
I can't make any promises about OpenID. Unfortunately it's another one of those areas that I don't have time to do myself, so I'm using a canned Drupal add-on. It's not something that I use myself, so I'm not really even sure how it works -- I added it at someone else's request. I'll see what I can do, but other features will have to take priority. At this point in time, does your openID work the way you described for other websites?
I'll keep people posted on the progress, but I'm not going to be posting a timeline, because ultimately I'll just end up missing the deadline anyway. :)
I do wish there was a quote and reply system so I could have replied in a much better way.
As far as how OpenID works here's the lowdown :-
http://www.labnol.org/internet/tools/openid-for-dummies-get-personal-ope... as well as
http://www.slideshare.net/kuchmuch/implementing-openid
You could also look at http://www.readwriteweb.com/archives/web_of_identities_making_machine-ac... to have some background idea why is this so useful/necessary.
Firefox 4 is also trying to use OpenID in a big way.
http://www.readwriteweb.com/archives/firefoxs_plan_to_kick_the_logins_bu...
As far as my experience of using openid on your site is concerned, its less than satisfactory. Each time I have to remember my openid provider endpoint details from http://openid-provider.appspot.com/ and then paste that link from there to the login interface. This is a pain I could do without.
Also I have discovered that the forum software is a bit heavy on the memory side or atleast feels heavy. I don't know if other users feel the same or not.
Can you tell me exactly what you have to enter here, versus on other sites that use openid?
Bart
Okay, I did some leg-work and poked around the Drupal forums about OpenID. The ultimate problem is that, at the moment, Drupal's OpenID support is kind of poor, and certain sites (like Google) don't export standard OpenID URLs, which means you can't just use your gmail address, and instead you have to use the OpenID url they give you, which is basically impossible to memorize. There are some external Drupal modules which alleviate this problem, but none of them strike me as particularly well supported (which is kind of surprising, honestly). I believe Firefox 4 will have some kind of OpenID stuff built in, so you may be able to have it send the URL for you.
I don't really want to write a module myself, because I won't have time to support and debug it, and honestly, I'm guessing that a good, well-supported one will come along on its own, possibly even before I'm done designing OGA 2. In any case, when it does, I should theoretically just be able to drop it into place.
agreed with the points shared. Also isn't it interesting to know that Drupal has such issues.
<slightly OT>I was helping a Drupal designer with a video site sometime back and found similar shortcomings. We were looking to use .ogg . The project ultimately fizzled out. There were some paid modules but when you are on a shoe-string you don't wanna risk things. </slightly OT>
Just my 2 paise.
I'm not switching away from Drupal. It's not perfect, but it is by far the best. :)