[Zope-Checkins] CVS: Zope3/lib/python/Zope/Publisher/Browser - metaConfigure.py:1.1.2.9

Jim Fulton jim@zope.com
Mon, 14 Jan 2002 08:42:52 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/Publisher/Browser
In directory cvs.zope.org:/tmp/cvs-serv29617/Publisher/Browser

Modified Files:
      Tag: Zope-3x-branch
	metaConfigure.py 
Log Message:
Factored skin service from view service.

Made skins type-dependent. IOW, skins for Browsers are different from
skins for FTP.

Added resource components, which are to views as utilities are to
adapters. They provide interface-specific components that do not
extend or depend on some specific other component.  Like views, they
are named and are specific to a particulat presentation type. 
We nee resources to deal with things like images and style sheets.

Added tests for browser directives.


=== Zope3/lib/python/Zope/Publisher/Browser/metaConfigure.py 1.1.2.8 => 1.1.2.9 ===
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
-from Zope.ComponentArchitecture import provideView
+from Zope.ComponentArchitecture import provideView, defineSkin, provideResource
 from Zope.Configuration.name import resolve
 from IBrowserPublisher import IBrowserPublisher
 
@@ -31,3 +31,18 @@
         (('view', for_, name, IBrowserPublisher, layer),
         provideView, (for_, name, IBrowserPublisher, factory, layer)),
         ]
+
+def skin(name, layers):
+    layers = [layer.strip() for layer in layers.split(',')]
+    return [(
+        ('skin', name, IBrowserPublisher),
+        defineSkin, (name, IBrowserPublisher, layers)
+        )]
+
+def resource(component, name, layer=''):
+    type = IBrowserPublisher
+    component = resolve(component)
+    return [(
+        ('resource', name, type,layer),
+        provideResource, (name, type, component, layer)
+        )]