http://trac.habariproject.org/habari-extras/browser/plugins/rss/rss.plugin.php
This is the first piece of the successful podcasting puzzle. The RSS
plugin triggers plugins prior to sending the RSS output with this:
"$xml= Plugins::filter( 'rss_feed', $xml );"
I propose that we create a new plugin called "podcast" that does the following:
* registers a new content type called podcast
* modifies the post composition screen to include a field in which one
places the URL to the podcast file they're publishing
* filters the RSS output to include the enclosure data for the media,
as well as inject all the necessary iTunes bits.
(If there are other things to do, please let me know -- I'm not a podcaster.)
The second step is one we've talked about in the abstract several
times, but I don't think we yet have code to permit the addition of
arbitrary fields on the post composition screen. (If we already have
such functionality, then I've been asleep at the wheel.)
What considerations should be in mind as we move forward on this functionality?
Cheers,
Scott
And later:
> The second step is one we've talked about in the abstract several
> times, but I don't think we yet have code to permit the addition of
> arbitrary fields on the post composition screen. (If we already have
> such functionality, then I've been asleep at the wheel.)
I was thinking that we'd have a separate template for this purpose. It
should be easy to do, whereas adding arbitrary fields to the existing
composition template (as I imagine you'd have to do it, anyway) would be
unwieldy to maintain. I'll explain briefly.
It should be possible if it's not already done to extract the
surrounding components of the composition fields (the media browser and
the advanced area) into their own templates that are included from the
composition page. This should make it easy to create a new template
just for podcast posts that contains only those essential fields.
An alternative would be more complex because it would require that we
insert hooks in various places in that template. If a hook didn't exist
where a plugin might want to add a field, then we'd need to add new
ones, perhaps leading to many fields like "above_title" or "under_tags".
This doesn't strike me as a system we would want to maintain, when a
plugin could easily change out the form en masse using the method
describe above, and use the tab sections to house addtional fields for
existing content types.
A far different alternative would be to use FormUI to build the admin
forms, but I think FormUI is a little far off for that right now. Even
if we switched the whole admin system to FormUI when it becomes capable
of this, the podcast plugin (or any plugin) would continue to work if it
used its own template, and the series of hooks would fail, which is why
I think this way is a good way forward.
The theme system already allows plugins to provide additional templates
that can be used for admin pages. We just need to tell the podcast
plugin to do this. The "admintheme" plugin in the extras repo
demonstrates some of this functionality.
All that said, I'm happy to entertain more clever alternatives.
> * filters the RSS output to include the enclosure data for the media,
> as well as inject all the necessary iTunes bits.
This is probably a better solution than the one that was in the RSS
plugin when I last saw it, which adds the enclosure data directly from
the postinfo itself. We'd simply move the code from RSS to the podcast
plugin.
> (If there are other things to do, please let me know -- I'm not a podcaster.)
The RSS output is not currently filtered for autop, so the text all runs
together in the output. Should we apply the same output filtering on
the feed as the site display itself? How do we accomplish that?
Also, apologies in advance for any interchange I make between RSS and
RRS (already did it in the plugin once), where RRS is an abbreviation I
use commonly for the company I work for.
Owen
> I propose that we create a new plugin called "podcast" that does the following:
> * registers a new content type called podcast
> * modifies the post composition screen to include a field in which one
> places the URL to the podcast file they're publishing
How would this work with a silo? Wouldn't the ideal be that a
podcaster had their audio service silo, browsed their podcasts and
double clicked?
I'm not a podcaster either (although maybe I would be if Habari's
implementation was cool enough :) so I might not 'get' the workflow.
--
Michael C. Harris, School of CS&IT, RMIT University
http://twofishcreative.com/michael/blog
When you double-click an asset, you'd get some kind of interface that
would allow you to set that asset as the one to use in the enclosure.
How to accomplish this (displaying a menu on double-click instead of
just inserting the image, along with how to say "I want to insert this
image as a thumbnail that is linked to the original") is something that
can currently be done, but there isn't any UI for since we've not yet
needed to include it. Hopefully we can include this quickly in the
tweaks to the media browser that are likely to come with Monolith?
Owen
Yes, very clever. If there was an example of that then #217 would be
trivial too.