On Wed, Aug 14, 2002 at 05:08:21PM +0100, Adrian Hungate wrote: > > One question about zshell though, what is the box that is added "left of the > add product pulldown"? Is it something that ABSOLUTELY has to be on the > contents listing (i.e. something to do with creating or maintaining the > objects listed?). Could it be backdoor'd into all_meta_types so that it, > itself is listed in the pulldown, or could it have a ZMI tab of it's own > (Both of these are easier than live patching the DTML)?
About ZShell : IF and ONLY if you want to use ZShell from the right frame of the ZMI (manage_main) you currently have to modify manage_main to put a text input field somewhere on it. Then running ZShell from there applies ZShell commands to the current folderish object. (Of course you can in any case use ZShell by pointing your web browser to it) Of course ZShell could use a special tab, or another clever solution, but IMHO this is really NOT the problem here. The problem is not about ZShell, ExternalEditor, or any other Zope product, but if I understand correctly it is about extending, not replacing, the Zope's main management interface. Jim please correct me if I'm wrong. That's why I proposed to add three loops in manage_main, to loop over three different types of plugins. Each Zope product which wants to extend the ZMI should register itself once as a ZMI plugin of three sorts : - top ZMI plugin : displayed once at the top (ex : ZShell) - line ZMI plugin : displayed once for each object (ex : External Editor) - bottom ZMI plugin : displayed once at the bottom (ex : xxx) registering a ZMI plugin would be as simple as : root.registerZMIPlugin("top|line|bottom", self) or : root.registerTopZMIPlugin(self) root.registerLineZMIPlugin(self) root.registerBottomZMIPlugin(self) self represents the object which wants to register as a ZMI plugin. It would have to provide at least one of the three methods : TopZMIPlugin(self, obj) LineZMIPlugin(self, obj) BottomZMIPlugin(self, obj) these three methods would have to render some html snippet, e.g. a form with a text input field for ZShell, or a nice icon with a link for External Editor. obj would be the object on which the method applies, e.g. current folder, or current object in the object listing. This way manage_main could be rendered more powerful by just adding three <dtml-in> in it, and its aspect wouldn't even change in case no ZMI plugin would be registered (which is the case with a base Zope installation). any comment ? thx for reading Jerome Alet _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )