Ok, ran out of time to fully solve this. But I think I made some
progress. One problem I had was I had not specifying the content. For
testing purposes, always start out with content=text in your rssfeed.
Then you can experiment with content=html, but you risk markup thowing
problems. For example I was getting markup processed like
action.missing, which says if page exists forward to
{p}&action=edit--which it would do, and then completely short circuits
the rss! This script reworks the teaser script but doesn't give as
satisfying results... I will need to do more later...I remember thinking one day we might have problems with the default teaser function, but just have text in my feeds so it's not been a problem. But if you are scanning anything, it could cause anything!!! There is a similar issue in the mail html function that bothers me. I think perhaps we need to solve this issue of mingling markup and html like this in non standard html outputs. Will take more thought and discussion than I have time for at the moment. Attached is an update version of the rss plugin with several problems fixed that seems to work better. Give it a try and let me know how it works for you. There are still some other curious issues at work but, I'll get to them when I get a chance. And you are right. The BoltWire site is down again. Will it ever end? Cheers, Dan On Mon, Sep 21, 2009 at 10:13 AM, The Editor <[email protected]> wrote: > On Mon, Sep 21, 2009 at 8:19 AM, Markus <[email protected]> wrote: >> >> First, it's definitely the newest script version. Also the searches I >> tried matched just two pages most of the time. The one I posted above >> _should_ match around 20 or 25 at most. But read on... > > Do you have your site fully indexed? It should affect the > group=parameter, but if you are trying to do text/data/link, etc, > indexing is essential. > >> Lesson 1: >> One important information for the solutions page is that RSS might not >> work with MAMP or the like on your localhost. The same code that gives >> at least some RSS output on my server ends with an internal server >> error when used with MAMP offline. As Dan pointed out, some tools >> might be missing. > > Possible, but not necessarily. I got the recent server errors online > because something in my online configuration setup triggered a php bug > that was not triggered offline. Nothing to do with apache--though it > did a lousy job reporting the error. And even then windows and linux > work differently in certain situations, so it could be anything. If it > was a missing library, I would think you would get a message in your > php error log for calling an undefined function. Have you checked your > error logs? > >> Lesson 2: >> Even when action=rsslist shows exactly what you want to feed, it is no >> guarantee that these pages will display in your RSS reader. >> Dan, if interested you can check out the following page with the login >> I gave you: >> rss.listOKfeedNotOK (rsslist OK, feed broken) > > This is very strange. The critical lines in the rssfeed function are these: > > $pages = BOLTsort(BOLTsearchPageList($args, $zone), $args); // add > third false for no auth checking > if ($_GET['action'] == 'rsslist') return BOLTdisplay($pages, $args); > > You'll notice the action=rsslist option uses the exact same array of > pages used later by the script to generate the rss feed. So unless > somehow one or the other cancels out some pages for some reason, their > output should be the same... I'm not denying it, just seems strange. > Both start with exactly the same list of pages at least. > >> Lesson 3: >> I might not notice when the page RSS was not saved correctly. I edit >> the page and save it. I get redirected to view the RSS page which is >> automatically opened in my feed reader. Since the RSS page is not >> displayed in the browser, the browser still displays the edit page >> from before. Any further edits using the "old" edit form won't be >> saved. Better remember which edit tabs you already used... > > Yes, that could be a bit tricky. :) You could possibly try creating > a custom edit action like this: copy action.edit => action.rss.edit, > and add to the end of the form > > [session nextpage {p}&action=source] > > That way you should be able to check that what you saved is there now, > and get any messages you need. If it works, we could possibly add it > to the backup file. > >> Lesson 4: >> It seems to be a misbelief that you can just put a search together >> that matches the pages you want to see in your feed, then change the >> function name to "rssfeed" and everything works. For example feeding >> all pages with a certain keyword does not seem to work. Dan, you can >> check: >> rss.keyword > > This is true, but we could add that functionality perhaps. And in > fact this could be our problem... This line in rss.php ~32 should be > changed from > > $pages = BOLTsort(BOLTsearchPageList($args, $zone), $args); // add > third false for no auth checking > > to > > $pages = BOLTsearchPageList($args, $zone); // add third false for no > auth checking > > The way it was written, with the new changes to the core search > function, the sort function gets called twice. > > To try adding the other search criteria we need to replace that line > with this entire snippet (let me know if it works--we could polish > this up more nicely, and I'll update the script): > > global $outarray > $outarray = BOLTsearchPageList($args, $zone); // add third false for > no auth checking > if (isset($args['text'])) BOLTcheckNest1($args['text'], 'text', $args); > if (isset($args['data'])) BOLTcheckNest1($args['data'], 'data', $args); > if (isset($args['link'])) BOLTcheckNest1($args['link'], 'link', $args); > $pages = $outarray; > > This would be cool because you could generate a rss feed of all the > pages that link to a page. IE, put /*[[rss]]*/ on a page and instantly > it gets added to your feed (with link=rss). > >> Some problems I reported might have been caused by my naive approach >> to start with some simple matching like this. From reading the >> solutions page I expected that "rssfeed" can be used with all the >> parameters of "search". > > Let's see if we can't fix the code before we fix the docs. :) > >> Lesson 5: >> When using a page named "rss" (and not some lower hierarchy like >> rss.whatever), the following line is put into the edit field: >> http://www.domain.com/field/index.php?p=rss >> I think you won't see this when you use for example rss.blog. It would >> be a non-issue if the solutions page did not specifically say that you >> can use "rss" as the page name. :) > > It should not do this anyway. And it just did it for me! We have some > weird things going on here, Markus... I'm very busy this week, but > I'll stick with you as best I can and try to work through it with you. > > Another problem. I tried installing rss in a new field, didn't get it > to work, then uninstalled. Got a white screen. Traced it down to a > couple lines in engine.php that need to be rewritten: > > ~1428 or so. > > elseif ($pageArray[0] == 'rss') { > if (! isset($_GET['action']) && > BOLTexists('code.skin.rss')) $skin > = 'code.skin.rss'; > else $skin = BOLTgetlink($BOLTcodePages, 'skin'); > } > > This will return the normal skin if code.skin.rss doesn't exist rather > than a whole new skin. Seems the overall logic of this little code > section (lines before and after) could be simplified, but this will > work for now... Does anyone remember why we have a print=true option > here? > >> Great, most of the issues with RSS seem to be solved, or at least >> identified. > > Solved? > >> Is it possible to feed changed pages? Currently if I put a page into >> my feed, it won't display as new in my feed reader when updated. I >> have a similar page to BoltWire.com's download page, where I post >> updates. But since I don't create a new page for each update, I wonder >> how this can be reflected in the feed. > > You should be able to do sort=lastmodified in the rssfeed function. > Did that not work for you? > >> Thanks for reading! > > Sorry it's not working as well as we'd like. We'll get there. It would > be a fun problem to track down if I had more time today!!! > > Cheers, > Dan > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "BoltWire" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/boltwire?hl=en -~----------~----~----~----~------~----~------~--~---
<<attachment: rss.php>>
