[pLog-svn] r2030 - in plog/branches/plog-1.0.1:
class/daotemplates/rss
Mark Wu
markplace at gmail.com
Sat May 21 14:36:10 GMT 2005
Wonderful, happy to hear we have postcasting support in native, it will be a
very good idea to promote pLog.
Mark
> -----Original Message-----
> From: plog-svn-bounces at devel.plogworld.net
> [mailto:plog-svn-bounces at devel.plogworld.net] On Behalf Of
> Oscar Renalias
> Sent: Friday, May 20, 2005 6:16 PM
> To: plog-svn at devel.plogworld.net
> Subject: Re: [pLog-svn] r2030 - in plog/branches/plog-1.0.1:
> class/daotemplates/rss
>
> been meaning to do this for a while but it never seemed to be
> the right time... But it's finally here for those into
> podcastig or vlogging :-)
>
> I've modified the resource chooser (the pop-up window one
> gets when clicking the "add resource" link in the new post
> and edit post pages) so that it adds an extra "id" attribute
> to each one of the links that point to resources which
> contains the internal resource identifier of the file.
> Otherwise I didn't see an easy way to keep track of the links
> to files that had been added from the resource centre... and
> nobody *usually* uses the "id" attribute of links nayway.
>
> The new method Article::getArticleResources() basically
> extracts all those id attributes via a regexp and then tries
> to load the GalleryResource object with the given identifier.
> If it can be found, it adds it to an array and if not it ignores it.
>
> The result is an array of GalleryResource objects that can be
> handled like any other object. We can query the description,
> size, link, etc.
>
> The only downside is that this does not affect old posts, or
> links which are manually added unless the "id" attribute is
> added afterwards. As I said, I couldn't find an easy way to
> identify which links point to local resources and which ones
> don't, so this seemed the best alternative. Let me know if
> you can think of something better
> :)
>
> Oscar
>
> On 5/20/05, oscar at devel.plogworld.net
> <oscar at devel.plogworld.net> wrote:
> > Author: oscar
> > Date: 2005-05-20 09:55:20 +0000 (Fri, 20 May 2005) New
> Revision: 2030
> >
> > Modified:
> > plog/branches/plog-1.0.1/class/dao/article.class.php
> > plog/branches/plog-1.0.1/templates/rss/rss20.template
> > Log:
> > yay! native support for rss 2.0 enclosures :)
> >
> >
> > Modified: plog/branches/plog-1.0.1/class/dao/article.class.php
> > ===================================================================
> > --- plog/branches/plog-1.0.1/class/dao/article.class.php
> 2005-05-20 08:04:30 UTC (rev 2029)
> > +++ plog/branches/plog-1.0.1/class/dao/article.class.php
> 2005-05-20 09:55:20 UTC (rev 2030)
> > @@ -828,6 +828,44 @@
> > }
> >
> > return( $this->_nextArticle );
> > - }
> > + }
> > +
> > + /**
> > + * returns all the resources which are
> linked in this post. It basically looks
> > + * at the "id" attribute of all links. When
> the resource has been added via the
> > + * "add resource" pop-up window from the
> "new post" and "edit post" pages
> > + * from the admin interface contains
> something like "res_XX" where "XX" is the
> > + * internal id of the resource.
> > + *
> > + * If this id attribute is not found this
> method will not work. We could not find
> > + * a better way to identify these resources...
> > + *
> > + * @return An array of GalleryResource
> objects containing all the resources
> > + */
> > + function getArticleResources()
> > + {
> > + include_once(
> PLOG_CLASS_PATH."class/data/stringutils.class.php" );
> > + include_once(
> > + PLOG_CLASS_PATH."class/gallery/dao/galleryresources.class.php" );
> > +
> > + // extract all the "res_XX" values
> > + $regexp ="/<a.*id=\"res_([0-9]+)\".*>.*<\/a>/im";
> > + $resources = Array();
> > + $galleryResources = new GalleryResources();
> > + if( preg_match_all( $regexp,
> $this->getText(), $out, PREG_SET_ORDER )) {
> > + // process the results
> > + foreach( $out as $match ) {
> > + $resourceId = $match[1];
> > + // try to load the resource
> > + $resource =
> $galleryResources->getResource( $resourceId, $this->getBlog());
> > + if( $resource ) {
> > + // add it
> to the array
> > +
> $resources[] = $resource;
> > + // and continue...
> > + }
> > + }
> > + }
> > +
> > + return( $resources );
> > + }
> > }
> > ?>
> >
> > Modified: plog/branches/plog-1.0.1/templates/rss/rss20.template
> > ===================================================================
> > --- plog/branches/plog-1.0.1/templates/rss/rss20.template
> 2005-05-20 08:04:30 UTC (rev 2029)
> > +++ plog/branches/plog-1.0.1/templates/rss/rss20.template
> 2005-05-20 09:55:20 UTC (rev 2030)
> > @@ -3,7 +3,7 @@
> > <rss version="2.0"
> > xmlns:content="http://purl.org/rss/1.0/modules/content/"
> > xmlns:dc="http://purl.org/dc/elements/1.1/"
> > ->
> > +>
> > {$locale->setLocale("en_UK")}
> > <channel>
> > <title>{$blog->getBlog()|escape}</title>
> > @@ -27,7 +27,15 @@
> > {/foreach}
> > {assign var="postDate" value=$post->getDateObject()}
> > <pubDate>{$locale->formatDate($postDate, "%a, %d %b %Y
> %H:%M:%S")}</pubDate>
> > - <source
> url="{$url->rssLink("rss20")}">{$blog->getBlog()|escape}</source>
> > + <source
> url="{$url->rssLink("rss20")}">{$blog->getBlog()|escape}</source>
> > + {foreach from=$post->getArticleResources() item=resource}
> > + {** please uncomment the line below if you'd like to
> server everything but images, instead of
> > + only audio and video **}
> > + {** if !$resource->isImage() **}
> > + {if $resource->isSound() || $resource->isVideo()}
> > + <enclosure type="{$resource->getMimeType()}"
> length="{$resource->getFileSize()}"
> url="{$url->resourceDownloadLink($resource)}" />
> > + {/if}
> > + {/foreach}
> > </item>
> > {/foreach}
> > </channel>
> >
> > _______________________________________________
> > pLog-svn mailing list
> > pLog-svn at devel.plogworld.net
> > http://devel.plogworld.net/mailman/listinfo/plog-svn
> >
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.plogworld.net
> http://devel.plogworld.net/mailman/listinfo/plog-svn
More information about the pLog-svn
mailing list