Getting Started

Configuration

Administration

Modules

Templates

Integrations

Development

UNA CMS Architecture

images/architecture-diagram.png

1. Core

Description: The Core of UNA CMS contains the foundational components and utilities essential for the framework's functioning. It primarily includes basic files such as utilities, base classes, interfaces, and configurations.

Components:

  • Utilities: Standard functions and common utilities that provide necessary support across the infrastructure.
  • Base Classes: Generalized classes serving as the foundation for derived classes within the system.
  • Interfaces: Definitions for methods and properties that must be implemented by implementing classes.
  • Configs: Configuration files that define system-wide settings and parameters.
  • ACL (Access Control List): Defines the permissions and access levels for different users and roles within the system.

Role in MVC:

  • Model (M): Core data structures and business logic.
  • Controller (C): Core logic for handling the requests.
  • View (V): Basic view definitions used across various modules.

2. Objects

Description: Objects in UNA CMS are helper classes that encapsulate high-level interface functionalities, simplifying operations across the system.

Common Objects:

  • Captcha: Manages the creation and validation of CAPTCHA challenges to prevent automated attacks.
  • Categories: Helps manage and apply categorizations to different content types.
  • Comments: Supports commenting systems for user interactions.
  • Editors: Provides rich text editors and related functionalities.
  • Forms: Manages forms and their processing.
  • Grids: Manages content grids, facilitating display and data manipulation.
  • Lists: Helps create and manage various lists.
  • Live Updates: Manages real-time notifications and live content updates.
  • Menu: Controls and defines navigational menus.
  • Metatags: Manages metadata for SEO and improved search functionalities.
  • Pages: Manages the creation and layout of various content pages.
  • Payment: Handles payment processing and integration with payment gateways.
  • Profiles: Manages user profiles and their associated data.
  • RSS: Manages RSS feed generation and parsing.
  • Social Sharing: Facilitates sharing of content across social media platforms.
  • Storage: Manages file storage and retrieval.
  • Uploaders: Facilitates the uploading of files.
  • Views: Manages view representations and templates.
  • Votes: Supports voting mechanisms for content.

Role in MVC:

  • Model (M): Data structures and business logic for each object.
  • Controller (C): Logic to handle object-related requests and actions.
  • View (V): Presentation layer elements for object-related content.

3. Plugins

Description: Plugins in UNA CMS are third-party libraries that provide extended functionalities and enhancements to the core system.

Common Plugins:

  • jQuery: A JavaScript library that simplifies HTML document traversing, event handling, and Ajax interactions.
  • TinyMCE: A rich text editor in JavaScript for allowing users to create and edit content.

Role in MVC:

  • Model (M): Data handled by plugins for specific functional purposes.
  • Controller (C): Scripts and code to control plugin behavior.
  • View (V): Interface and user interaction elements provided by plugins.

4. Modules

Description: Modules in UNA CMS are complete, independent pieces of code that can be integrated into the system or removed without affecting core functionalities. They add specific functionalities such as forums, blogs, and other features.

Characteristics:

  • Separability: Modules are designed to be added or removed as needed.
  • Independence: Each module operates independently, encapsulating its own functionalities.

Examples:

  • Forums: Module for creating and managing discussion forums.
  • Blogs: Module for creating and managing blogs.
  • Photo Gallery: Module for photo management and display.

Role in MVC:

  • Model (M): Data structures and operations for the module.
  • Controller (C): Logic to manage user requests and module interactions.
  • View (V): Templates and presentation layers for the module content.

5. MVC Paradigm

Explanation: UNA CMS follows the Model-View-Controller (MVC) architectural pattern which segregates the codebase into three interconnected components:

  • Model (M): Represents the data structure and the business logic of the application. This includes database classes and core data operations.
  • Controller (C): Handles the user's interactions, works with the model, and ultimately selects a view to render that displays the data.
  • View (V): Represents the UI (User Interface) and the presentation layer. It displays the data and transmits controller responses in a format suitable for user interactions. This involves templates and files within the /template/ folder.

6. Integration and Dependencies

Service Calls: Service calls facilitate communication between different modules and objects, allowing seamless integration and the effective sharing of data.

By adhering to this architecture, UNA CMS ensures modularity, ease of maintenance, and scalability, providing a robust framework for community management.

  • M - Model, *Db classes
  • V - View, *Templ* classes and files in /template/ folder.
  • C - Controller, *Module classes