[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