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

Reply via email to