Forum .LRN Q&A: Re: navigation changes in dotLRN: RFC

Posted by Andrew Grumet on
Jumping back a few posts...

As their link will be static (e.g. "/pvt/home") we can
compare directly with "ad_conn url" I think ?

Right. Note that /pvt/home is specified by the HomeURL kernel parameter. So the check could be done against the parameter value instead of the hardcoded string "/pvt/home". Email me if you have any question about how to do the lookup.

I've seen that some files are available directly (/www
and /packages/acs-subsite/www for example). Where part of
the documentation decribes what pages are or aren't
accessible ? Is it part of the request pre-processor,
or something else ?

It's part of the request processor (RP), and should be documented there. If not there's always the source code :-) Here's how it works though:

a) The RP looks for a matching file under /www and will use it if it finds one.
b) If it doesn't find one, it climbs up the URL looking for a site node that matches. Then it looks in the www subdirectory for the package that is mounted there and tries to find a match.

There are some other tricks as well. For example URLs that start with /resources are treated specially for performance. /resources/package-key maps to package-key/www/resources. There are also "virtual url handler" or .vuh files that can process all URLs under their root. It's neat stuff!

-> Is it possible to use a portlet in a "standard OpenACS pages" ?

Sounds like it would be a bit of a hack, but it should be possible. One issue is how to get hold of the element_id. You might take a look at "magic objects", e.g. the acs__magic_object_id() database function.