ExternalEditor: Windows Installation
Zope External Editor Installation
Installation is two-fold:
- Install the ExternalEditor product in Zope.
- Install the helper application on the client(s) and configure the browser(s)
Product Installation
Download the archive and extract it into your Zope products directory. Then restart Zope. If you succeeded, you'll notice pencil icons next to the external editable objects in the Zope management screens.
Helper Application Installation (Binary)
The binary distribution for Windows includes everything you need to to install the helper application. It is precompiled to a native Windows executable using Python 2.3.4, Pythonwin build 163 and Py2exe 0.5. Everything is included for you in one package.
Just run the setup executable to install and configure the helper app for use with Internet Explorer. You can also register it (zopeedit.exe) with other browsers directly.
You can download the binary installer from Zope.org at:
http://www.zope.org/Members/Caseman/ExternalEditor
Helper Application Installation (Source)
Dependancies: Python 2.2 or newer, Pythonwin extensions (win32all)
Note: This configuration is for Windows 98, for easier setup on XP and Windows 2000, use the binary distribution
Download the helper app archive and extract into the directory where you want to install it: C:\Program Files\ZopeEdit might be a good choice.
Once you have the help application installed, you need to configure your browser to fire it off appropriately. To do so, create an entry in the helper applications list for your browser(s) that associates the mime type "application/x-zope-edit" with the helper application.
To do this for Internet Explorer and other recent browsers, you must register the external editor file type with Windows:
- From the "My Computer" window, choose "Folder Options" from the "View" menu.
- In the "File Types" tab, click on the "New Type" button.
- Enter a description such as "Zope External Editor"
- Enter an extension not otherwise used on your system (.zope is usually a good choice, the exact value is not important)
- For content type (MIME) enter: application/x-zope-edit
- Under "Actions", click on the "New" button.
- For Action enter: Open
- For application used, enter or browse to the path to pythonw.exe
(wherever you installed python2.3, such as C:\Python23).
Use quotes around the path if it includes spaces. Following the path to
Python, enter the path to the helper application file, in quotes if
needed. Follow it with: "%1" (in quotes). On my system it looks like:
'"C:\Python23\pythonw.exe" C:\Casey\ExternalEditor\zopeedit.py "%1"
- Click OK.
- Uncheck "Confirm open after download"
- Click OK, you should now see your new file type.
Tips
The helper application can run any editor program that does not detach itself from the controlling process.
As for editors that insist on detaching from the controlling process (EditPad does this by default), you need to configure them so that they do not detach. For EditPad you could use:
editor = C:\Program Files\EditPadClassic\EditPad.exe /newinstance
Check the command line options of your favorite editor to see if it supports this.
Troubleshooting
If the helper app won't launch or you receive errors try the following suggestions:
- Make sure you have Pythonwin installed properly. To test this, bring up
the Python console and type in
import win32api
. If it throws an exception, you need to install Pythonwin. - Netscape 4 users, add a "%s" at the end of the application command line. It appears the Netscape likes to alert you with spurious things coming from stderr. I'll see if I can come up with a solution to that.
- Make sure the file type is properly configured to launch the helper app when it receives files of type "application/x-zope-edit".
- Try downloading and saving the external editor data to a file manually (right click on the pencil icon). Then try running the helper app from the command line, passing it the path to this file. If it runs, then there is something wrong with the browser/system configuration. If not, then it should output a traceback to your terminal. Email me a copy of this traceback, and the data file and I will try to fix it.
- If the editor launches, but the helper app complains that it lost its connection to the editor process, this is because your editor detached from the parent process (the helper app). Configure the editor such that it does not do this. Unfortunately, many MDI applications do this and cannot be configured otherwise. To solve this problem, a plug-in must be developed for the application. See the README file for more details.
- If you are using IE connecting to Zope over SSL (HTTPS), and you receive
errors that the file could not be opened or downloaded, or you receive
errors from External Editor that the file was not found try the following:
- Go to Tools->Internet Options and click on the advanced tab
- Under security (near the bottom) uncheck "Do not save encrypted files to disk"
- If you are using IE and you receive an error from the helper app like "FATAL ERROR [Errno 2] No such file or directory...." it means that IE is refusing to save the temp file to disk. This is usually caused by a cache control header such as "Cache-Control: no-cache". To use external editor with IE you must prevent this header from being set. Some versions of CookieCrumber inject this header for all authenticated requests. You can fix this by changing the CC configuration on its properties tab in the ZMI to use another cache control value such as "private".