1

Attached is the code for my RSS dashboard, using the DaniWeb API. It's an improved version of the mashup I posted earlier, using jQuery to get all feeds asynchronously. The part which initially loads the forums is shown below.

It creates an API object, and a Parser object. The first gets the forums list in JSON format, the second the extracts all forums to create the initial empty div's. A static method to a decorator function is passed, which adds the actual markup. The Parser and Decorator classes are in the zip file, so I won't discuss those here.

If you want to see the result, go here.

Any question, remarks, etc. are welcome.

For some reason I'm not seeing my attached file, you can download the zip file.

Edited by pritaeas

Votes + Comments
another hit!
<?php
include '../Classes/DwApi/DwApiCredentials.class.php';
include '../Classes/DwApi/DwApiOAuth.class.php';

include 'Decorator.class.php';
include 'Parser.class.php';

$dwapi = new DwApiOAuth(null);
$parser = new Parser();

$divs = array ();
$forums = $dwapi->GetForums();
if ($forums)
{
    $forums = json_decode($forums);
    foreach ($forums->data as $mainForum)
    {
        $divs = array_merge($divs, $parser->ParseForumsResult($mainForum, array ('Decorator' , 'DivWithTitle')));
    }
}
?>
3
Contributors
9
Replies
68
Views
4 Years
Discussion Span
Last Post by pritaeas
0

For some reason I'm not seeing my attached file, you can download the zip file.

Yeah, I'll fix that. Currently editorial articles don't show their attachments.

0

Very good. The simplicity of the board makes it accessible on all devices too I would imagine. No need for responsive design :) And you really show off the advantages of the asynchronous nature of ajax - synchronous load must be frightening.

Big like.

0

Thanks. Yes, that page loads fine on my Torch. That's the reason I like a width of 300px. Most smaller mobile browser with a width of 320/360 will show it just fine. The only thing I can think of at this moment is to add deferred loading, so that AJAX starts only for those blocks in view. Perhaps I will, maybe...

The previous mashup did it all PHP side, and I tried synchronous while debugging, not recommended.

Dani, the RSS for the assembly forum is still giving issues. It doesn't like the CDATA part (can give issues). Perhaps you fixed this, but I encountered HTL in some descriptions (even entity encoded) that can give issues.

Edited by pritaeas

0

This is the feed result in Opera:

XML parsing failed

XML parsing failed: syntax error (Line: 1892, Character: 156)

Reparse document as HTML
Error:
invalid character 
Specification:
http://www.w3.org/TR/REC-xml/#NT-Char 
1889:           <title>Does everyone know this code?</title>
1890:           <link>http://www.daniweb.com/software-development/assembly/threads/445396/does-everyone-know-this-code</link>
1891:           <pubDate>Mon, 14 Jan 2013 12:33:58 +0000</pubDate>
1892:           <description>I would like to know about the following code, could anyone tell me, please? .text:004027A0 sub_4027A0 proc near ; CODE XREF: sub_401010+118\18p .text:004027A0 .text:004027A0 var_404 = byte ptr -404h .text:004027A0 .text:004027A0 sub esp, 404h .text:004027A6 lea eax, [esp+404h+var_404] .text:004027A9 push 1 .text:004027AB push eax .text:004027AC call sub_401CC0 .text:004027B1 add esp, ...</description>
1893:           <content:encoded><![CDATA[ <p>I would like to know about the following code, could anyone tell me, please?</p>
1894: 
1895: <pre><code>.text:004027A0 sub_4027A0      proc near               ; CODE XREF: sub_401010+118p

It highlights the \18 in CODE XREF:. So it must be trying to parse it as a unicode character. Oh, it's an "up arrow" character (should have been converted to &uarr;), lemme see if I can remove it.

Edited by pritaeas

0

If anybody's interested, I just put the code for the RSS dashboard up on GitHub in the Demos folder. It requires the classes, so download everything if you want to test it. Make sure you insert your own API ID and secret in the DwApiAuthorize file. The code uses namespaces so PHP 5.3.0+ is required.

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.