zmsobject.py - Base ZMS object implementation.
ZMSObject is the primary content management class in ZMS framework, extending ZMSItem with comprehensive capabilities for managing versioned, multilingual content with workflow support.
This module defines the core ZMSObject class that serves as the foundation for all major content types in ZMS. It combines multiple mixin classes to provide:
- Version Control: Complete version history tracking and rollback capabilities through the
_versionmanager.VersionItemmixin - Workflow Management: State machine-based workflow control via
ZMSWorkflowItem.ZMSWorkflowItem - Access Control: Fine-grained permission and role-based access through
_accessmanager.AccessableObject - Multilingual Support: Full internationalization for content attributes via
_multilangmanager.MultiLanguageObject - Content Hierarchy: Parent-child relationships and tree traversal using
_objchildren.ObjChildren - Metadata Management: Object attributes and Dublin Core support through
_objattrs.ObjAttrs - Input Validation: Request-based property validation and processing via
_objinputs.ObjInputs - Copy/Paste: Object cloning and clipboard operations through
_copysupport.CopySupport - Caching: Request-level caching and buffering via
_cachemanager.ReqBuff - URL Path Handling: Declarative URL generation and path-based routing through
_pathhandler.PathHandler - Reference Management: Link tracking and reference resolution via
_zreferableitem.ZReferableItem - XML Import/Export: Serialization and deserialization using
_exportable.Exportable - Text Formatting: Rich text format conversion through
_textformatmanager.TextFormatObject
Primary Use Cases:
- Page Management: ZMSObject instances represent pages and page containers with full versioning and workflow capabilities
- Content Elements: Reusable content components with version control and multilingual support
- Resource Management: Binary and media object handling through integrated blob field support
- Workflow-Driven Publishing: State-based content approval and publication workflows
- Internationalization: Content authoring and publishing for multiple languages with translation workflows
ZMSObject instances form hierarchical structures where a typical content tree contains:
- Root document element (ZMSDocument meta-type)
- Page containers and intermediate pages
- Page elements (ZMSObject meta-type)
- Resources (ZMSResource meta-type)
- RecordSets (ZMSRecordSet meta-type)
- References and cross-links (ZMSReference meta-type)
Security Model: Uses Zope's AccessControl framework with ClassSecurityInfo declarations to enforce role-based permissions on all public methods. The _accessmanager.AccessableObject mixin provides granular access control at the object level.
Key Properties:
meta_id: Identifies the meta-object template defining object structure
meta_type: Semantic content type (e.g., 'ZMSDocument', 'ZMSObject', 'ZMSResource')
sort_id: Determines display order within parent container
_uid: Persistent unique identifier for cross-system references
_p_oid: ZODB object identifier for internal system use
Language Support:
The module fully integrates multilingual content management allowing objects to have content in multiple languages with independent versioning and workflows per language variant.
License: GNU General Public License v2 or later, Organization: ZMS Publishing
| Class | |
Full-featured ZMS content management object extending ZMSItem with comprehensive capabilities. |