%3 ::xowiki::Podcast ::xowiki::Podcast head item render ::xowiki::RSS ::xowiki::RSS css_link extra_where_clause head item limit render tail ::xowiki::Podcast->::xowiki::RSS ::xowiki::XMLSyndication ::xowiki::XMLSyndication init tag ::xowiki::RSS->::xowiki::XMLSyndication ::xotcl::Object ::xotcl::Object ::xowiki::XMLSyndication->::xotcl::Object

Class ::xowiki::Podcast

::xowiki::Podcast[i] create ... \
           [ -author (default "") ] \
           [ -description (default "") ] \
           [ -explicit (default "no") ] \
           [ -subtitle (default "") ] \
           [ -summary (default "") ]

Class Relations

  • class: ::xotcl::Class[i]
  • superclass: ::xowiki::RSS[i]
::xotcl::Class create ::xowiki::Podcast \
     -superclass ::xowiki::RSS

Methods (to be applied on instances)

  • author (setter)

  • description (setter)

  • explicit (setter)

  • head (scripted)

    return "<?xml version='1.0' encoding='utf-8'?>[:css_link]
    <rss xmlns:itunes='http://www.itunes.com/dtds/podcast-1.0.dtd' version='2.0'>
    <channel>
      [:tag title ${:title}]
      [:tag link ${:link}]
      [:tag description ${:description}]
      [:tag language ${:language}]
      [:tag generator xowiki]
      [:tag itunes:subtitle ${:subtitle}]
      [:tag itunes:summary ${:summary}]
      [:tag itunes:author ${:author}]
      [:tag itunes:explicit ${:explicit}]
    "
  • item (scripted)

    append result \n <item>  [:tag title $title] \n [:tag link $link ] \n [:tag -atts {isPermaLink true} guid $guid] \n [:tag pubDate $pubdate] \n [:tag itunes:duration $duration] \n [:tag author $author ] \n [:tag description $description ] \n [:tag itunes:subtitle $subtitle ] \n [:tag itunes:author $author ] \n [:tag itunes:keywords $keywords ] \n "<enclosure url=\"$link\" length=\"$duration\" type=\"$mime_type\"/> "  \n </item> \n
  • render (scripted)

    set folder_ids [::${:package_id} folder_id]
    if {${:summary}  eq ""} {set :summary ${:description}}
    if {${:subtitle} eq ""} {set :subtitle ${:title}}
    
    set :link ${:siteurl}[lindex [site_node::get_url_from_object_id -object_id ${:package_id}] 0]
    
    set content [:head]
    set sql [::xo::dc select  -vars *  -from "xowiki_podcast_itemi p, cr_items ci, cr_mime_types m"  -where  "ci.parent_id in ([ns_dbquotelist $folder_ids]) and ci.item_id = p.item_id  and ci.live_revision = p.object_id  and p.mime_type = m.mime_type  and ci.publish_status <> 'production' [:extra_where_clause]"  -orderby "p.pub_date asc"  -limit [:limit]]
    
    ::xo::dc foreach get_pages $sql {
      if {$content_type ne "::xowiki::PodcastItem"} continue
      if {${:title} eq ""} {set :title $name}
      set link [::${:package_id} pretty_link -download true -absolute true -siteurl ${:siteurl}  -parent_id $parent_id $name]
      append content [:item  -author $creator -title ${:title} -subtitle ${:subtitle}  -description ${:description}  -link $link -mime_type $mime_type  -guid $link -pubdate $pub_date -duration $duration  -keywords $keywords]
    }
    
    append content [:tail]
    return $content
  • subtitle (setter)

  • summary (setter)