sevenx_classes, the content classes package
This page is for developers and administrators who need to know which general content classes a sevenx_multisite
installation has and where they come from. It answers: what the sevenx_classes package contains, how it is
installed, and what the installer changes in these classes afterwards. The site-specific ng_* classes are on
The demo content packages.
Contents
The package
| Field | Value |
|---|---|
| Name | sevenx_classes |
| Summary | sevenx content classes |
| Type | contentclass |
| Install type | install (<package ... install_type="install">) |
| Version | number 6.0, release 10-stable; <ezpublish><version> 6.0.10-stable |
| License | GPL, text in documents/LICENCE |
| Files | package.xml, documents/LICENCE, 33 files ezcontentclass/class-<identifier>.xml |
| Required by | sevenx_multisite, sevenx_multisite_clean, sevenx_site, sevenx_site_clean |
Its <provides> list has 34 entries because file is listed twice; there are 33 class files and 33
<install> items, and the same 33 items under <uninstall>. The published archive of 6.0.15 is
sevenx_classes.ezpkg.
The classes
Read from the <identifier>, the eng-US entry of <serialized-name-list>, the <group> elements, the
is-container attribute and the <attribute datatype="..."> elements of each class file.
| Identifier | Name | Group | Container | Attributes | Datatypes beyond ezstring and ezxmltext |
|---|---|---|---|---|---|
article | Article | Content | yes | 13 | ezauthor, ezboolean, ezdatetime, ezkeyword, ezobjectrelationlist, ezsrrating, xrowmetadata |
article_mainpage | Article (main-page) | Content | yes | 13 | ezauthor, ezboolean, ezdatetime, ezimage, ezkeyword, xrowmetadata |
article_subpage | Article (sub-page) | Content | no | 5 | ezkeyword, xrowmetadata |
banner | Banner | Content | no | 5 | ezimage, ezkeyword, eztext |
blog | Blog | Content | yes | 4 | ezkeyword, xrowmetadata |
blog_post | Blog post | Content | yes | 7 | ezboolean, ezdatetime, ezkeyword, xrowmetadata |
comment | Comment | Content | no | 3 | eztext |
documentation_page | Documentation page | Content | yes | 4 | ezboolean, ezkeyword |
event | Event | Content | no | 7 | ezdatetime, ezkeyword, xrowmetadata |
event_calendar | Event calendar | Content | yes | 4 | ezselection, xrowmetadata |
feedback_form | Feedback form | Content | yes | 8 | ezemail, eztext, xrowmetadata |
file | File | Media | no | 4 | ezbinaryfile, ezkeyword |
flash | Flash | Media | no | 4 | ezkeyword, ezmedia |
folder | Folder | Content | yes | 8 | ezboolean, ezdatetime, ezkeyword, xrowmetadata |
forum | Forum | Content | yes | 3 | xrowmetadata |
forum_reply | Forum reply | Content | no | 2 | eztext |
forum_topic | Forum topic | Content | yes | 4 | ezboolean, ezsubtreesubscription, eztext |
forums | Forums | Content | yes | 2 | (none) |
frontpage | Frontpage | Content | yes | 8 | ezkeyword, ezobjectrelation, xrowmetadata |
gallery | Gallery | Content | yes | 7 | ezkeyword, ezobjectrelation, ezsrrating, xrowmetadata |
geo_article | Geo Article | Content | yes | 13 | ezauthor, ezboolean, ezdatetime, ezgmaplocation, ezimage, ezkeyword, xrowmetadata |
image | Image | Media | no | 6 | ezimage, ezkeyword, ezsrrating, xrowmetadata |
infobox | Infobox | Content | no | 5 | ezimage, ezurl |
link | Link | Content | no | 5 | ezboolean, ezurl, xrowmetadata |
multicalendar | Multicalendar | Content | no | 3 | ezobjectrelationlist |
poll | Poll | Content | no | 3 | ezoption |
product | Product | (none in the file) | yes | 12 | ezkeyword, ezmatrix, ezmultioption, ezobjectrelationlist, ezprice, ezsrrating, xrowmetadata |
quicktime | Quicktime | Media | no | 4 | ezkeyword, ezmedia |
real_video | Real video | Media | no | 4 | ezkeyword, ezmedia |
review | Review | Content | no | 5 | ezboolean, ezinteger, eztext |
silverlight | Silverlight | Media | no | 3 | ezmedia |
video | Video | Media | no | 6 | ezkeyword, ezmedia, ezsrrating, xrowmetadata |
windows_media | Windows media | Media | no | 4 | ezkeyword, ezmedia |
The datatypes come from extensions: ezsrrating from ezstarrating, ezgmaplocation from ezgmaplocation,
xrowmetadata from xrowmetadata. The installer's preInstall() registers the first two (and ngenhancedlink,
eztags) in content.ini [DataTypeSettings] for the running process before the packages are installed, and lists
all three extensions in ActiveExtensions; see Extensions it activates.
How the package is installed
The setup installs required packages before the site package's post-install runs (see
Dependencies and install order). CreateSites installs them with
'non-interactive' => true (kernel/setup/steps/ezstep_create_sites.php). In that mode
eZContentClassPackageHandler (kernel/classes/packagehandlers/ezcontentclass/ezcontentclasspackagehandler.php)
skips a class whose remote id already exists: "Non-interactive installs (e.g. CLI) must not destructively replace
existing classes and their content objects."
Six of the 33 classes carry the same remote id as a class of the kernel's base data (share/db_data.dba):
article, comment, file, folder, image and link. On a new installation these six keep the base data's
definition; the other 27 are created from the package.
Note
When you import sevenx_classes by hand into an existing site, the class handler offers the choices of its
ERROR_EXISTS conflict: replace, skip, create a new class, or update the existing class ("attributes are added and
updated, none removed"). See Import versus install.
What the installer changes afterwards
sevenxMultiSiteInstaller adjusts some of these classes during the install:
| Step | Class | Change |
|---|---|---|
preInstall() | folder | adds tags ("Tags", ezkeyword) and publish_date ("Publish date", ezdatetime), named in the primary language |
preInstall() | user (base data) | adds two_factor ("Two-step sign-in", datatype sevenxauthentication2fa) when extension/sevenx_authentication_2fa exists |
post-install updateClassAttributes | folder | renames short_description to "Summary" and show_children to "Display sub items" |
post-install updateTemplateLookClassAttributes | template_look (base data) | adds twelve attributes such as site_map_url, footer_text, hide_powered_by, footer_script |
post-install removeClassAttribute | template_look | removes the attribute id |
Two repair steps then rebuild class name lists that were stored under a number instead of a language code
(postInstallResyncContentClassNames, postInstallRepairClassNameLists); see Post-install fixes.
History
The git history of packages/sevenx_classes starts on 2024-01-13 ("Renamed Key Site Package Internal Directories
For Initial Editing and Improvments To Begin"), when the folder packages/ezwebin_classes was renamed to
packages/sevenx_classes (git log --follow shows the rename). Later commits switched every class to an eng-US translation (2024-01-13), gave the article, image and
product classes a star rating attribute (2024-02-27), added xrowmetadata to most page classes (2024-04-02), added
the review class (2026-09-12) and made product a container (2026-09-30).
Related pages
- sevenx_multisite
- The demo content packages
- Package types
- Install items and handlers
- Site packages: start here
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
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.