Ok, so, after starting with the book, one of the first things it says is..
Zope 3 has very flexible skinning support, which allows you to alter the look and,
to some extend, the feel of the ZMI. You can reach other skins by using the
++skin++ URL namespace. One nice skin is ZopeTop, which is excluded
from the Zope X3 3.0.0 release but available in the repository. To see the
initial contents screen of the ZopeTop skin, as shown in Figure 2, you use
http://localhost:8080/++skin++ZopeTop/manage.
So, I tried to go to that page, and I got the following in my logs...
89.100.108.118 - - [11/Aug/2006:20:57:54 +0100] "GET /@@singleBranchTree.xml HTTP/1.1" 200 295 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:
1.8.0.6) Gecko/20060728 Firefox/1.5.0.6"
2006-08-11T20:58:22 ERROR SiteError
http://livinghistory.ie:8080/++skin++ZopeTopTraceback (most recent call last):
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4/zope/publisher/publish.py", line 135, in publish
object = request.traverse(object)
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4/zope/publisher/browser.py", line 500, in traverse
ob = super(BrowserRequest, self).traverse(object)
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4/zope/publisher/http.py", line 451, in traverse
ob = super(HTTPRequest, self).traverse(object)
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4/zope/publisher/base.py", line 289, in traverse
subobject = publication.traverseName(
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4/zope/app/publication/publicationtraverse.py", line 46, in traverseName
ob2 = namespaceLookup(ns, nm, ob, request)
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4/zope/app/traversing/namespace.py", line 121, in namespaceLookup
return traverser.traverse(name, ())
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4/zope/app/traversing/namespace.py", line 388, in traverse
skin = zope.component.getUtility(ISkin, name)
File "/tmp/Zope-3.2.1/build/lib.linux-i686-2.4
/zope/component/__init__.py", line 257, in getUtility
raise ComponentLookupError(interface, name)
ComponentLookupError: (<InterfaceClass zope.publisher.interfaces.browser.ISkin>, u'ZopeTop')