module documentation

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:

Primary Use Cases:

  1. Page Management: ZMSObject instances represent pages and page containers with full versioning and workflow capabilities
  2. Content Elements: Reusable content components with version control and multilingual support
  3. Resource Management: Binary and media object handling through integrated blob field support
  4. Workflow-Driven Publishing: State-based content approval and publication workflows
  5. 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 ZMSObject Full-featured ZMS content management object extending ZMSItem with comprehensive capabilities.