G'day Rob,
I just ran a quick check after your post. My apologies for not doing this earlier. Things are broken. Note : All the tests below are with openacs 3.2.4.
Hafeez, Henry, I am ready to add the ad_page_contract backport to a contrib section of OpenACS. Hafeez, have you tested your patched version of Henry's patches to see if the modifications in ad-abstract-url and
ad-utilities.tcl.preload didn't break other modules?
My changes to ad-utilities.tcl.preload - Commented out ad_proc in preference for ad_proc declared in Henri's 00-ad-proc.tcl. The new ad_proc handles -public etc switches
I did a grep of all files calling ad_proc. The one I found that is broken is "calendar/monthly.tcl" - The default arguments to calendar_basic_monthly called day_number_template has an escaped dollar sign. Escaping is not needed with the new ad_proc.
There are bugs with ad_proc in the way it passes arguments for example ad_text_to_html (in the main ACS 3.2.x distrib) that falls over when you pass in text with $ signs in them - but this is not in openACS 3.2.4
Otherwise I have tried to go through other files (haven't tried intranet as I haven't set it up) and have found no visible problems
Do the modifications to ad-abstract-url make it so that _every_ error is output to the browser? What if you don't
want that to happen (e.g. you want to give your user a nice error page. AOLserver allows you to do that with plain
ad-abstract-url AFAIK).
I don't understand what you mean exactly by every error. All I have done is to wrap the "source tcl_file_name" in a catch clause, check if the errorInfo is "ad_script_abort" in which case I exit cleanly, if not do an ns_write 200 with the errorInfo as well as write the error to log.
I could quickly add an option to disable this feature if you wanted. I think the main ACS distribution does this.
I have gone through quite a few pages that all use the ad_abstract_url and none have any issues. I have made a few dud pages with errors and they got echoed correctly to the browser.
ad_page_contract also works correctly with the above modifications
Sorry about asking this, but I am out of time to go look the answers for myself. Thanks.
No problems I should have checked this myself. But time is never on your side :)
Cheers,
Hafeez