[Zope] problem saving file twice with ange-ftp

Tres Seaver tseaver@digicool.com
Wed, 11 Apr 2001 07:07:51 -0400


John Hunter <jdhunter@ace.bsd.uchicago.edu> wrote:

<snip> 

> There is one other feature of using ange-ftp that I have found
> dissatisfying.  If I access a WikiName for the first time that has no
> content from ange-ftp (one of the links identified with a '?'), after
> I edit it, commit the changes and then view it in the browser, the
> page is displayed as plain text.  I.e, *John* is displayed with the
> asterisks, not as emphasized text.  So I usually have to go to my
> browser, access the empty wiki link, accept the default text and
> commit it.  Then I can go in and edit it with emacs over ange-ftp.
> Not a big hassle but I'd rather avoid it.  
> 
> If I then go into the Zope GUI manager interface and look at the type
> of document that was created, it is a DTML Document rather than a
> ZWiki Page.  Any suggestions here?

You need to leverage the "PUT hook", described in the fishbowl at:

  http://dev.zope.org/Wikis/DevSite/Proposals/HookablePUTCreation

Basically, the hook allows you to write a PythonScript (or
ExternalMethod) 'PUT_factory', to override the default machinery
which tries to figure out the kind of object to make when an
FTP/HTTP PUT is done to a non-existent object.

Sample External Method::

    #Implement the "hookable PUT" hook.
    import re, OFS.DTMLMethod

    TEXT_PATTERN = re.compile( '^text/.*$' )

    def PUT_factory( self, name, typ, body ):
        """
        """
        if TEXT_PATTERN.match( typ ):
            return OFS.DTMLMethod.DTMLMethod( '', __name__=name )
        return None

Tres.
-- 
===============================================================
Tres Seaver                                tseaver@digicool.com
Digital Creations     "Zope Dealers"       http://www.zope.org