[Zope] Hiding HTML URL
David H
bluepaul at earthlink.net
Mon May 9 21:16:37 EDT 2005
Jens Vagelpohl wrote:
>
> On May 10, 2005, at 00:48, J Cameron Cooper wrote:
>
>> But please note, this is very hostile web design. I would suggest
>> you re-think your need for such a "feature".
>
>
> "Hostile" is an excellent word for that kind of behavior. It
> certainly breaks quite a few rules in the "user friendliness" book.
>
> So what exactly is the goal for following such a user-defeating
> technique?
>
> jens
>
>
If I might disagree, keeping a stable URL is not, by itself,
"user-defeating". For example, user's do not like browser history
clutter with subfolders and objects - all from the same application.
Also, we do not want a user to open browser history and click
www.myApp.com/updateChartOfAccounts. Because that would be "out of
context". Sure you can respond with an error message. But why should
they see it in the first place?
With a stable URL they just click www.myApp.com and they get the main
page - every time.
The question remains - is there an elegant solution to this.
I think there is. Maybe 3 years ago Jim Penny wrote a message (I wish I
could find it now!) regarding a web technique which I believe he
referred to as the "stateless machine".
I liked the idea and have used it ever since.
The idea is to use index_html as a request dispatcher. index_html
simply responds to page requests and pulls in zpt macros, dtml and
python code displaying to screen. An example:
index_html
request = context.REQUEST
if request[caller] == 'Budgeting':
if request[action_type] == 'Process':
context.SQL.updateBudget()
context.ZPT.showUpdatePage(context,request)
and the caller looks like ...
Zpt module Budgeting
..
<form name="budgeting" action="index_html">
<input type="hidden" name="caller" value="Budgeting">
<input type="hidden" name="action_type" value="" > <---- see with
javascript
<input type "button" name="process" value=" Process " onclick="Process()">
etc
I believe that this technique is not only useful in the "stable" URL
way, but it is very useful for larger applications - index_html becomes
the "engine" driving the whole application. This centralizes a big chunk
of application logic in one place.
David
More information about the Zope
mailing list