Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Package types

The package types Exponential knows (site, sitestyle, contentclass, contentobject, extension), where the type is declared, what each one is for, which types the 6.0.15 index really uses, and what the type changes in the…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/site-packages/basics/package-types.md

On this page

Package types

This page is for administrators and developers who need to know what kind of package they hold. It answers: which types exist, where the type is written, which types the package server offers, and what the type changes.

Contents

  1. Where the type is declared
  2. The types at a glance
  3. The types in the 6.0.15 index
  4. TypeList and what it is used for
  5. What the type changes
  6. Type, install type and install items are three things
  7. Related pages

Where the type is declared

In two places, which must agree:

<!-- package.xml -->
<type value="site" />
<!-- index.xml on the package server -->
<package name="sevenx_multisite" version="6.0-15-stable" type="site" ... />

The kernel reads the value of <type> trimmed (eZPackage::parseDOMTree()), and refuses the definition when the value is not a plain token of letters, digits and ._+-. The setup wizard reads the type attribute of the index to decide which remote packages are site packages (eZStepSiteTypes::retrieveRemotePackagesList()).

The types at a glance

TypeHoldsMade byTypical install itemsExamples
siteA starter site: requirements and install scriptsby hand, in a source repositorynone (install_type="import")sevenx_multisite, cjw_multisite, plain_site
sitestyleA color scheme or design: CSS, images, thumbnailthe site style wizard (ezstyle creator)ezfilesevenx_design_blue, ezflow_design
contentclassContent class definitionsthe content class wizard (ezcontentclass creator)ezcontentclasssevenx_classes, ezwebin_classes
contentobjectContent, often with the classes it needsthe content object wizard, ezpm add ... ezcontentobjectezcontentobject, sometimes ezcontentclasssevenx_multisite_democontent, sevenx_banners
extensionOne or more extensions as filesthe extension export wizard (ezextension creator)ezextensionsevenx_extension, ezstarrating_extension

The creators and their package types are in kernel/classes/packagecreators/*/ (packageType()), listed in settings/package.ini [CreationSettings] HandlerList[]: ezcontentobject, ezcontentclass, ezextension, ezstyle.

Note

There is no package type design. Design files travel in sitestyle packages, or inside an extension. The word design does appear in package.xml, but as the type of a <file-list> (files that go below design/<design>/), not as a package type.

The types in the 6.0.15 index

The 44 entries of https://exponential.packages.exponential.earth/exponential/6.0/6.0.15/index.xml, counted by their type attribute:

TypeEntries
site12
contentobject13
extension8
sitestyle7
contentclass4

The index groups the non-site packages under the comment DEPENDENCY PACKAGE LIST: they are offered only as requirements of a site package, never as a choice of their own. The complete list is in What is on the package server.

TypeList and what it is used for

[PackageSettings]
TypeList[]
TypeList[contentobject]=Content object
TypeList[contentclass]=Content class
TypeList[sitestyle]=Site style
TypeList[site]=Site
TypeList[extension]=Extension

eZPackage::typeList() turns this into the list of types with their names. Its main use is the Type limitation of the package policies: kernel/package/module.php gives the functions read, list, create, edit, remove, install, import and export a limitation Type whose values come from typeList(). A user whose policy is limited by Type may use a package only when its type is among the chosen values (eZPackage::canUsePackagePolicyFunction()).

Note

extension is in TypeList from 6.0.15 on. Before, it was missing, so a Type limitation could not name it and a role limited by Type never reached packages of type extension. On an older release, add it in settings/override/package.ini.append.php:

[PackageSettings]
TypeList[extension]=Extension

What the type changes

WhereWhat the type does
Setup wizard, Site types stepOnly site packages are offered, local (fetchPackages() with 'type' => 'site') and remote (type="site" in the index)
Create sites stepNothing: it installs what the site package requires, whatever their types
Package policiesThe Type limitation (above)
Package list in the administrationShown on each card; the list can be filtered by type in eZPackage::fetchPackages()
InstallNothing: install() looks at install_type and the install items, never at the type

Type, install type and install items are three things

SaysExample
<type value>What the package issitestyle
install_typeWhether install() runs the items at allimport
<install><item type>Which handler does the work for one itemezfile

A sitestyle package of 7x is type sitestyle, install type import, with one ezfile item: it is imported so the site package's installer can use its files, and installing it on its own changes nothing. See Import versus install and Install items and handlers.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x