Understanding Objects in Zope
Zope is built on the concepts of objects and folders. The next two sections address this fundamental aspect of the way Zope works.
Creating Objects
The Zope management interface represents everything in terms of objects and folders. When you build Web applications with Zope, you spend most of your time creating and managing objects in folders. For example, to make a new Manager account, you create a User object in a User folder.
Return to the Root folder by clicking the top-left folder in the Navigator frame.
To add a new object to the current folder, select an object from the pull-down menu labeled Select Type to Add... This pull-down menu is called the Product Add List.
For example, to create a folder, select Folder from the pull-down menu. At this point, you are taken to an Add form that collects information about the new folder, as shown in Figure 2.3.
Figure 2.3 The Add Form folder.
Type zoo in the Id field, and Zope Zoo in the Title field. Then click the Add button.
Zope creates a new folder in the current folder. You can verify this by noting that a new folder named zoo is inside the Root folder.
Click the zoo folder to enter it. Notice that the URL of the folder is based on the folder's id. You can create more folders inside your new folder if you want. For example, create a folder inside the zoo folder with an id of arctic. Go to the zoo folder and choose Folder from the pull-down menu. Then type in arctic for the folder id, and Arctic Exhibit for the title. Now click the Add button. You always create new objects in the same way:
Go to the folder where you want to add a new object.
Choose the type of object you want to add from the pull-down menu.
Fill out an Add form and submit it.
Zope creates a new object in the current folder.
Notice that every Zope object has an id that you need to specify on the Add form when you create the object. The id is how Zope names objects. Objects also use their ids for their URLs.
Objects also use their ids for their URLs, for example:
http://localhost:8080/zoo/arctic/
is the URL to the artic folder.
Chapter 3, "Using Basic Zope Objects," covers all the basic Zope objects and what they can do for you.
Moving Objects
Most computer systems enable you to move files around in directories with cut, copy, and paste. Zope has a similar system that enables you to move objects around in folders by cutting or copying them, and then pasting them to a new location.
To experiment with copy and paste, create a new folder in the Root folder with an id of bears. Then select bears by checking the check box just to the left of the folder. Then click the Cut button. Cut removes the selected objects from the folder and places them on a clipboard. The object does not, however, disappear from its location until it is pasted somewhere else.
Now enter the zoo folder by clicking it, and then enter the arctic folder by clicking it. You could also have used the Navigator to get to the same place. Now, click the Paste button to paste cut object(s) into the current folder. You should see the bears folder appear in its new location. You can verify that the folder has been moved by going to the Root folder and noting that bears is no longer there.
Copy works similarly to Cut. When you paste copied objects, the original objects are not changed. Select the object(s) you want to copy and click the Copy button. Then navigate to another folder and click the Paste button.
You can cut and copy folders that contain other objects and move many objects at one time with a single cut and paste. For example, go to the zoo folder and copy the arctic folder. Now paste it into the zoo folder. You will now have two folders inside the zoo folder, arctic and copy_of_arctic. If you paste an object into the same folder where you copied it, Zope changes the id of the pasted object. This is a necessary step because you cannot have two objects with the same id in the same folder.
To rename the copy_of_arctic folder, select the folder by checking the check box to the left of the folder. Then click the Rename button. This takes you to the Rename Items form as shown in Figure 2.4.
Figure 2.4 Renaming an object.
Type in a new id mountains and click OK. Zope ids can consist of letters, numbers, spaces, dashes, underscores and periods, and they are case-sensitive. Here are some legal Zope ids: index.html, 42, and Snake-Pit.
Now your zoo folder contains an arctic and a mountains folder. Each of these folders contains a bears folder. This is because when we made a copy of the arctic folder, it also copied the bears folder that it contained.
If you want to delete an object, select it and then click the Delete button. Unlike cut objects, deleted objects are not placed in the clipboard and cannot be pasted. In the next section, we'll see how we can retrieve deleted objects.
Zope does not allow you to cut, delete, or rename a few particular objects in the Root folder. These objects include Control_Panel, standard_html_header, standard_html_footer, and standard_error_message. These important objects are necessary for Zope's operation. Also, these operations don't work in some cases. For instance, you can't paste a User object into a regular folder.
If you are having problems with copy and paste, make sure that you have enabled cookies in your browser. Zope uses cookies to keep track of the objects that you cut and copy.