1.9. Cubes — CubicWeb 3.10.1

### Navigation

- index
- modules |
- next |
- previous |
- CubicWeb 3.10.1 »
- Tutorials »
- 1. Building a simple blog »

# 1.9. Cubes

## 1.9.1. Standard library

A library of standard cubes are available from CubicWeb Forge Cubes provide entities and views.

The available application entities in standard cubes are:

- addressbook: PhoneNumber and PostalAddress
- basket: Basket (like a shopping cart)
- blog: Blog (a very basic blog)
- classfolder: Folder (to organize things but grouping them in folders)
- classtags: Tag (to tag anything)
- comment: Comment (to attach comment threads to entities)
- file: File (to allow users to upload and store binary or text files)
- link: Link (to collect links to web resources)
- mailinglist: MailingList (to reference a mailing-list and the URLs for its archives and its admin interface)
- person: Person (easily mixed with addressbook)
- task: Task (something to be done between start and stop date)
- zone: Zone (to define places within larger places, for example a city in a state in a country)

## 1.9.2. Adding comments to BlogDemo

To import a cube in your instance just change the line in the `__pkginfo__.py` file and verify that the cube you are planning to use is listed by the command `cubicweb-ctl list`. For example:

    __use__ = ('comment',)

will make the `Comment` entity available in your `BlogDemo` cube.

Change the schema to add a relationship between `BlogEntry` and `Comment` and you are done. Since the comment cube defines the `comments` relationship, adding the line:

    comments = ObjectRelation('Comment', cardinality='1*', composite='object')

to the definition of a `BlogEntry` will be enough.

## 1.9.3. Synchronize the data model

Once you modified your data model, you need to synchronize the database with your model. For this purpose, CubicWeb provides a very useful command `cubicweb-ctl shell blogdemo` which launches an interactive shell where you can enter migration commands (see cubicweb-ctl tool for more details)). As you added the cube named comment, you need to run:

    add_cube('comment')

You can now start your instance and comment your blog entries.

### Navigation

- index
- modules |
- next |
- previous |
- CubicWeb 3.10.1 »
- Tutorials »
- 1. Building a simple blog »