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>>

Reply via email to