Thread: [phpslash-users] Change to block_render_RSS Parser
Brought to you by:
joestewart,
nhruby
From: Peter C. <pe...@we...> - 2002-01-20 19:52:26
|
Hi you all As promised (a while ago!) I've posted a new block_render_rdf.class to patches. It can now process these elements in an RDF document: <channel> <title>xxxx</title> <description>xxxx</description> <link>url</link> </channel> <image> <title>xxxx</title> <description>xxxx</description> <link>url</link> <url>url</url> </image> <item> <title>xxxx</title> <description>xxxx</description> <link>url</link> </item> All other tags are ignored. Use of namespaces in the tags will confuse things right now... as will badly a formed RSS document. Template rssblock.tpl is used. I've supplied a very simple version that doesnt use <font> tags. Obviouly if you dont want descriptions to appear, just leave that area blank in your template file. block_options used - max_items: defaults to 10 - target: defaults to "_self" - could could be "_blank" etc. These block_options are not recognised anymore: - link_prefix,link_postfix. I reckon they're dealt with in the template now. - item_element,title_element,link_element. The code has been written so that it should be fairly easy to add a new block_option overwriting the default tagset (eg with moreover tags). All you have to do is supply an array to rdfparser::parse_setup() depending on a block_option value. Something to be done as soon as the code is OK'd ...comments would be welcome! Peter |
From: nathan r. h. <dst...@tn...> - 2002-01-21 00:21:42
|
On Sun, 20 Jan 2002, Peter Cruickshank wrote: > Hi you all > > As promised (a while ago!) I've posted a new block_render_rdf.class to > patches. > Err... Ok, my memory isn't so good, and my mail is all fsck'ed ATM. can you refresh me as to why we needed a new RSS parser? Yes, I know we need a new one, but what were your resons for re-writing? Just curious... So far looks good, I think that if we do put a new parser into phpslash, I'd like it to be able to parse RSS 0.9, 0.91, and 1.0. How hard would it be to modify your code to do this? What I don't want is to have to rewite the RSS aprser again in a year, modifying easily or adding to is ok just to scrap and restart is icky. -n |
From: Peter C. <pe...@we...> - 2002-01-21 10:42:48
|
> Err... Ok, my memory isn't so good, and my mail is all fsck'ed ATM. can > you refresh me as to why we needed a new RSS parser? Yes, I know we need > a new one, but what were your reasons for re-writing? Just curious... > The main objective was to get title info out of an RSS file (remember the discussion on dynamic titles) and to use templates. I take your points about rewrites... if it's any use to you, Block_render_rss class is pretty much unchanged other than the move to use templates instead of generating HTML directly. I've also kept the basic structure of the rdf_parser class. The main change is to be more flexible about tag names: since I was getting the title anyway, I thought the code might as well retrieve the other info too. This meant adding/changing new tags (<channel><image><url><description>); I thought we could add flexibility storing them in an array of valid tags rather than adding to a series of private variables. Finally, the interpretation of the <title> and <link> tags now has to be context sensitive, so I changed Boolean $initem to be a string $current (current tag) and created a new private variable $node to keep track of things. [BTW $node should really be a stack but php3 doesn't have array_push/array_pop... The code works anyway, cos the interesting nodes are only nested one-deep in an RSS-type document.] > So far looks good, Thanks! > I think that if we do put a new parser into phpslash, > I'd like it to be able to parse RSS 0.9, 0.91, and 1.0. How hard would it > be to modify your code to do this? What I don't want is to have to rewrite > the RSS parser again in a year, modifying easily or adding to is ok just > to scrap and restart is icky. I think that the basic structure of the tags remains the same between the versions of RSS, so the parser should work with all. I'll find out more and double check though. I want to work with the phpSlash - I think it's cool and I want to keep it that way - so thanks for your feedback! P |