I think that I understand enough about the features/context/spaces/purl/og combination that I have a sense of the power that is at my fingertips, but I'm still having a very difficult time wrapping my brain around how to put these pieces together. In particular, I'd like to get features/context/spaces/purl working with og. I've been looking through the issue queue here, and it seems like others are having similar problems.

I'd appreciate it very much if you folks, or someone else following this issue queue, would put together a screencast on how to use features/context/spaces/purl/ with og. I've watched the videos on developmentseed about some of these modules, and they seem to be out-dated. Spaces is now 2.0, for instance, and I'm pretty sure that the video on spaces was in regards to the 1.0 branch.

Thanks!

Comments

mikemccaffrey’s picture

@jmiccolis is giving a talk on how to use features at the Doing It With Drupal conference. Hopefully, someone will videotape that and make it available to the larger community.

In the meantime, I took a stab at diagramming how the five modules interact:
http://www.flickr.com/photos/mccaffry/4174702701

Does that help and/or make sense?

petednz’s picture

I think it is the sort of diagram that could help - but it would probably need more text for each of the arrows to really help someone like me - but at least i learnt a new game - thanks for trying

ldweeks’s picture

@mikemccaffrey - Thanks for making that diagram! I have to admit that it was only kinda helpful - what can I say, I'm slow.

I've been studying them for a few days now, and so I think that I am starting to get a better grasp on how these modules work together. I think that I understand how features and context and spaces work together, but now I'm trying to figure out how PURL ties it all together. I downloaded and installed OpenAtrium, and it looks like PURL is used to rewrite the URL's of any group node, and of any node posted into a group. I assume that functionality is provided by spaces_og.

I've been looking for that type of URL re-writing functionality in other places, like in the spaces module itself. I can't find it. Have I missed something, or is it actually there?

This leads me to a more general and philosophical question (not sure if this is the right place for it - I'll let the project owner decide) that I have also posted here.

Associating content together when it all loads on a drupal page is tricky business. In drupal, each page, no matter the site, is basically the same: you have main content in the middle (a view, a node, or multiple nodes), with blocks surrounding that central content. To make the blocks somehow aware of whats in the middle, (much less aware of each other) you either have to do some really fancy footwork in your own custom module, or you have to make "arguments" available in the URL.

I've been studying the spaces/context/features/purl suite of modules, and I've also looked into the Panels/Ctools modules made by Earl Miles (the guy who wrote views). While both provide tools to make my job easier, my understanding of each is that I'm still required to place "arguments" in the URL if I want the contents of my blocks defined by my "context" (I use that in the general sense, and not in the specific sense meant by either the context module, or the concept of context in Ctools).

Am I missing something, or is that where we're at with Drupal?

Finally, I should say in closing that I am aware of other modules that help with this kind of thing on a limited, case-by-case basis. The Views attach module and the Node reference views module, for instance, each take a stab at solving this issue for a very specific use case. They're both good modules, and there are others like them, but I'd really like to find a solution to this problem in general.

mikemccaffrey’s picture

@ldweeks

In answer to your first question, purl is actually really simple. As far as I understand it, it merely notices its assigned path in the url, enables the associated space, strips its part of the url out of the path, and then loads whatever is normally at the rest of the path.

As far as the block arguments, I would need more information about what exactly you want to build before making an informed suggestion, and I would also not be able to speak much about panels, since I've never been very interested in the functionality they provide.

However, there is one case that Spaces really makes things easier. When you enable it, it adds additional filters and arguments for Views, so you can do things like filter the view in the block for nodes that are posted into the current og space. If that is you goal, nothing could be simpler.

Hope that helps!

Mike