Hi! I decided to roll my own, after taking a look at Dror's source code. The code isn't bad but I don't want to get into patching Radiant itself to support a plugin, seems safer to try and make it work within the mainstream and besides, that gave me an excuse to write a Radiant behavior.
The Asset List behavior uses an extra page part called 'assets' within which the user has created a YAML representation of the assets that need to be centralized. The format is straightforward and amenable to machine generation. The YAML list is organized, first by asset host (which is a URL under which the assets are kept), and the entries under this host are the various content types (I use mime types to organize this content, but actually, anything can be a key since the behaviour doesn't actually depend on mime types. I'll make an example, by pointing out some of my own use cases. I keep several files in a /files URL which contains different types of content. I have some projects that I like to keep separate from my personal files, and those go into subdirectories. http://sohne.net/files: application/pdf: CV.pdf: Curriculum Vitae revenue.pdf: A Community Revenue Collection System http://sohne.net/files/semafox: application/pdf: semapedia.pdf: Semapedia in Africa application/octet-stream: semacoder-0.47.dmg: Semacoder 0.47 (Mac OS X) Inside the page that I have designated as my assets page by setting the 'Asset List' behavior, I can put in tags that will filter my assets by content type, or by host, or both, and use that to list the assets that match the conditions. <ul> <r:assets:each type="application/pdf"> <li><a href="<r:asset:url/>"><r:asset:name/></a></li> </r:assets:each> </ul> Visiting my asset page will then give me a list of all my PDF documents regardless of the actual asset location. In addition, the Asset List behavior will automatically transform all child URLs that match the asset key (e.g semapedia.pdf). In addition to the above behavior, which is really just a convenient way to list your site assets, you can access URLs such as (my asset list page is /assets) http://sohne.net/assets/semapedia.pdf and you will be automatically redirected to the actual content. The system doesn't handle duplicate asset keys, only taking the first one that it gets. I think this is a GOOD THING, to have one key per resource. I've placed the code in a Subversion repository accessible via svn+ssh://sohne.net/users/home/guido/svn/assets_behavior and you can check it out with svn co svn+ssh://sohne.net/users/home/guido/svn/assets_behavior/trunk/assets_behavior I'm not sure if anonymous access to my repository is working yet so I've added a tarball to my assets available via http://sohne.net/assets/assets_behavior-0.0.1.tar.gz I hope this is useful and I had fun writing and learning about Radiant behaviors. My only regret is that behavior is not spelt behaviour since this led to a lot of grief for me (my muscle memory is intimately hooked up with behaviour). Question: I am memoizing the YAML parse and I need to invalidate it when the 'assets' page part is updated. How do I do this? -- G. _______________________________________________ Radiant mailing list [email protected] http://lists.radiantcms.org/mailman/listinfo/radiant
