[Zope] ZRTChat
Jim Washington
jwashin@vt.edu
Sun, 12 Dec 1999 18:48:34 +0000
Hi, Robin
Hmmm...
user is a variable that is assigned when you first login.
The source of the bottom frame when 'Jim' is logged in looks like:
<CENTER><TABLE CELLSPACING=0 CELLPADDING=0>
<TR><TD>
<nobr><FORM ACTION="formframe" METHOD="POST">
Your message: <input name=user type=hidden value="Jim">
<textarea name=message rows=3 cols=50></textarea>
<input type=submit value="Post Message">
</form></nobr>
</TD><TD>
<nobr><FORM ACTION="formframe" METHOD="POST">
<input name=user type=hidden value="">
<input type=submit value="Logoff">
</form></nobr>
</TD></TR>
</TABLE></CENTER>
so user should be there in REQUEST.form, because it is passed in the
hidden field.
BUT the beginning of formframe only checks to see if there is
[somewhere!] a non-nil variable called message, AHA!
So, Robin, I will bet you have a 'message' on the acquisition path.
If so, the right answer is:
The first part of formframe should read:
<dtml-if message>
<dtml-if user>
<dtml-call "REQUEST.set('dt',ZopeTime())">
<dtml-call "REQUEST.set('id',dt.strftime('%Y%m%d%H%M%S')+user)">
<dtml-call "ChatItemClass_add(_.None, _, NoRedir=1)">
</dtml-if>
</dtml-if>
since we need both user and message here.
Let me know if this works. My take-home lesson in this is that I
definitely should use less popular variable names in an acquisition
system.
-- Jim Washington
Shall we call this kind of bug "Spanish Acquisition"?
It has a Pythonish ring...
And few of us really expect it...
Robin Becker wrote:
>
> In message <38533F75.ECF42C90@vt.edu>, Jim Washington <jwashin@vt.edu> writes
> >Hi, Robin
> >
> >Now I'm really curious about how to fix this. Could you send me the
> >full error traceback?
> >
> >What version of Zope are you using, OS, etc...
> >
> >I don't like the idea of putting out products that don't work for some.
> >
> >-- Jim Washington
> >
> ...
> I am using latest CVS Zope on Win32.
>
> I could try and download the latest binary and use that.
>
> I have always been a bit concerned that some 'products' seem to conflict with others. I have
> quite a few products installed.
>
> This is in the lowest frame.
>
> Zope Error
>
> Zope has encountered an error while publishing this resource.
>
> Error Type: NameError
> Error Value: user
>
> Troubleshooting Suggestions
>
> This resource may be trying to reference a nonexistent object or variable
> user.
> The URL may be incorrect.
> The parameters passed to this resource may be incorrect.
> A resource that this resource relies on may be encountering an error.
>
> For more detailed information about the error, please refer to the HTML source
> for this page.
>
> If the error persists please contact the site maintainer. Thank you for your
> patience.
>
> Traceback (innermost last):
> File C:\Python\devel\Zope\lib\python\ZPublisher\Publish.py, line 214, in publish_module
> File C:\Python\devel\Zope\lib\python\ZPublisher\Publish.py, line 179, in publish
> File C:\Python\devel\Zope\lib\python\Zope\__init__.py, line 211, in zpublisher_exception_hook
> (Object: CatalogAware)
> File C:\Python\devel\Zope\lib\python\ZPublisher\Publish.py, line 165, in publish
> File C:\Python\devel\Zope\lib\python\ZPublisher\mapply.py, line 160, in mapply
> (Object: formframe)
> File C:\Python\devel\Zope\lib\python\ZPublisher\Publish.py, line 102, in call_object
> (Object: formframe)
> File C:\Python\devel\Zope\lib\python\OFS\DTMLMethod.py, line 145, in __call__
> (Object: formframe)
> File C:\Python\devel\Zope\lib\python\DocumentTemplate\DT_String.py, line 502, in __call__
> (Object: formframe)
> File C:\Python\devel\Zope\lib\python\DocumentTemplate\DT_Util.py, line 335, in eval
> (Object: ChatItemClass_add(_.None, _, NoRedir=1))
> (Info: ChatItemClass_add)
> File <string>, line 0, in ?
> File C:\Python\devel\Zope\lib\python\OFS\DTMLMethod.py, line 141, in __call__
> (Object: ChatItemClass_add)
> File C:\Python\devel\Zope\lib\python\DocumentTemplate\DT_String.py, line 502, in __call__
> (Object: ChatItemClass_add)
> File C:\Python\devel\Zope\lib\python\DocumentTemplate\DT_Util.py, line 335, in eval
> (Object: REQUEST.set('id',dt.strftime('%Y%m%d%H%M%S')+'_'+user))
> (Info: REQUEST)
> File <string>, line 0, in ?
> NameError: (see above)
>
> --
> Robin Becker