[Zope3-checkins] CVS: Zope3/lib/python/Zope/App/OFS/Content/Folder/Views/VFS - configure.zcml:1.3

Stephan Richter srichter@cbu.edu
Fri, 20 Dec 2002 04:26:11 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Content/Folder/Views/VFS
In directory cvs.zope.org:/tmp/cvs-serv31450/Zope/App/OFS/Content/Folder/Views/VFS

Modified Files:
	configure.zcml 
Log Message:
Refactoring and fixing VFS and FTP

I am glad to make this commit that fixes up a lot of the FTP
implementation. I fixed the behavior of many of the FTP commands,
including LIST, SIZE, and CWD.

I moved the original VFSFile/DirectoryView into abstract classes and wrote
a special implementation for each content type, which makes the code much
more flexible.

Also I finally implemented a smart way of adding files via VFS through
file extension introspection, based on Jim's ExtensionViewName proposal.

I am adding documentation in the DevelCookbook right now and will later
add a README file.

TODOs:

- make VFS View names flexible, so that file extensions specify views.

- Simplify ZCML directives, so that one can add new extensions for Add views
  quicker. A solution might look like that:

      <vfs:view
          name=".dtml"
          for="Zope.App.OFS.Container.IAdding."
          factory=".DTMLPageAdd."
          permission="Zope.ManageContent">
        <vfs:extension name=".html" />
        <vfs:extension name=".xul" /> 
        <vfs:extension name=".xml" /> 
        ...
      </vfs:view>
			   
  This method would also be good for defining a default fiel extension.

- Show an object with its default file extension.
								     


=== Zope3/lib/python/Zope/App/OFS/Content/Folder/Views/VFS/configure.zcml 1.2 => 1.3 ===
--- Zope3/lib/python/Zope/App/OFS/Content/Folder/Views/VFS/configure.zcml:1.2	Thu Jun 20 11:54:51 2002
+++ Zope3/lib/python/Zope/App/OFS/Content/Folder/Views/VFS/configure.zcml	Fri Dec 20 04:25:40 2002
@@ -4,11 +4,17 @@
 >
 
   <vfs:view
+      name="Folder"
+      for="Zope.App.OFS.Container.IAdding."
+      factory=".FolderAdd."
+      permission="Zope.ManageContent" />
+
+  <vfs:view
       name="vfs"
-      for="Zope.App.OFS.Container.IContainer."
+      for="Zope.App.OFS.Content.Folder.Folder.IFolder"
       permission="Zope.ManageContent" 
       allowed_interface="Zope.Publisher.VFS.IVFSDirectoryPublisher." 
-      factory="Zope.App.OFS.Container.Views.VFS.VFSContainerView." 
+      factory=".FolderView." 
       />
 
 </zopeConfigure>