PHPackages                             melisplatform/melis-cms - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. melisplatform/melis-cms

ActiveMelisplatform-module[Framework](/categories/framework)

melisplatform/melis-cms
=======================

Melis Platform CMS module

v5.3.29(3w ago)115.7k415OSL-3.0PHPPHP ^8.1|^8.3

Since May 16Pushed 3w ago8 watchersCompare

[ Source](https://github.com/melisplatform/melis-cms)[ Packagist](https://packagist.org/packages/melisplatform/melis-cms)[ Docs](https://github.com/melisplatform/melis-cms)[ RSS](/packages/melisplatform-melis-cms/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (15)Versions (162)Used By (15)Security (2)

melis-cms
=========

[](#melis-cms)

MelisCms provides a full CMS for Melis Platform, including templating system, drag'n'drop of plugins, SEO and many administration tools.

Getting Started
---------------

[](#getting-started)

These instructions will get you a copy of the project up and running on your machine.
This Melis Platform module is made to work with the MelisCore.

### Prerequisites

[](#prerequisites)

You will need to install melisplatform/melis-core and melisplatform/melis-engine in order to have this module running.
This will automatically be done when using composer.

### Installing

[](#installing)

Run the composer command:

```
composer require melisplatform/melis-cms

```

Tools &amp; Elements provided
-----------------------------

[](#tools--elements-provided)

- Page Edition System (Edition, Properties, SEO, Languages)
- Site Tool
- Template Tool
- Platform Ids Tool
- Site Redirect Tool
- Styles Tool
- Page's Languages Tool
- Dashboard Indicators
- Site Tree View
- Site Tree Explorer &amp; Search
- Melis Templating Plugins Components for back-office

Running the code
----------------

[](#running-the-code)

### MelisCms Services

[](#meliscms-services)

MelisCms provides many services to be used in other modules:

- MelisCmsPageService
    Services to save a page and to save its different parts (SEO, styles, languages, etc).
    File: /melis-cms/src/Service/MelisCmsPageService.php

```
// Get the service
$pageSrv = $this->getServiceManager()->get('MelisCmsPageService');
// Save a page and get its id back
$pageId = $pageSrv->savePage($pageTree, $pagePublished, $pageSaved, $pageSeo, $pageLang, $pageStyle);

```

- MelisCmsSiteService
    Save a site, get the list of pages of a site and many more.
    File: /melis-cms/src/Service/MelisCmsSiteService.php

```
// Get the service
$cmsSiteSrv = $this->getServiceManager()->get('MelisCmsSiteService');
// Get list of pages of this site
$sitePages = $cmsSiteSrv->getSitePages($siteId);

```

- MelisCmsPageGetterService
    Get the full HTML of a page. This service works with the cache system. A page must have been generated at least one, so that the cache is generated and available to be used by the service.
    Cache is generated in this folder: /cache
    File: /melis-cms/src/Service/MelisCmsPageGetterService.php

```
// Get the service
$pageGetterService = $this->getServiceManager()->get('MelisCmsPageGetterService');
// Get list of pages of this site
$pageContent = $cmsSiteSrv->getPageContent($pageId);

```

- MelisCmsRightsService
    Get the rights defined for the user and adapt access to the different elements of the interface:
    File: /melis-cms/src/Service/MelisCmsRightsService.php

```
// Get the service
$melisCmsRights = $this->getServiceManager()->get('MelisCmsRights');
// Get the user's rights
$xmlRights = $melisCoreAuth->getAuthRights();
// find if a user has access to it
// Example: find if a user has access to a specific page id
$isAccessible = $melisCmsRights->isAccessible($xmlRights, MelisCmsRightsService::MELISCMS_PREFIX_PAGES, $idPage);

```

### MelisCms Forms

[](#meliscms-forms)

#### Forms factories

[](#forms-factories)

All Melis CMS forms are built using Form Factories.
All form configuration are available in the file: /melis-cms/config/app.forms.php
Any module can override or add items in this form by building the keys in an array and marge it in the Module.php config creation part.

```
return array(
	'plugins' => array(

		// MelisCms array
		'meliscms' => array(

			// Form key
			'forms' => array(

				// MelisCms Page Properties form
				'meliscms_page_properties' => array(
					'attributes' => array(
						'name' => 'pageproperties',
						'id' => 'idformpageproperties',
						'method' => 'POST',
						'action' => '/melis/MelisCms/Page/saveProperties',
					),
					'hydrator'  => 'Laminas\Hydrator\ArraySerializable',
					'elements' => array(
						array(
							'spec' => array(
								...
							),
						),
					),
					'input_filter' => array(
						'page_id' => array(
							...
						),
					),
				),
			),
		),
	),
),

```

#### Forms elements

[](#forms-elements)

MelisCms provides many form elements to be used in forms:

- MelisCmsTemplateSelect: a dropdown to select a template
- MelisCmsPlatformSelect: a dropdown to select a platform
- MelisCmsStyleSelect: a dropdown to select a style
- MelisSwitch: an on-off button designed for Melis Platform
- MelisCmsLanguageSelect: a dropdown to select the language
- MelisCmsPageLanguagesSelect: a dropdown to select the page language
- MelisMultiValInput: multiple input selection
- MelisCmsPlatformIDsSelect: a dropdown to select the platform id
- MelisCmsPluginSiteSelect: a dropdown to select the site
- MelisCmsPluginSiteModuleSelect: a dropdown to select the module

### Listening to services and update behavior with custom code

[](#listening-to-services-and-update-behavior-with-custom-code)

Most services trigger events so that the behavior can be modified.

```
public function attach(EventManagerInterface $events)
{
    $sharedEvents      = $events->getSharedManager();

    $callBackHandler = $sharedEvents->attach(
    	'MelisCms',
    	array(
    		'meliscms_page_save_start',
    		'meliscms_page_publish_start',
    	),
    	function($e){

    		$sm = $e->getTarget()->getEvent()->getApplication()->getServiceManager();

    		// Custom Code here
    	},
    100);

    $this->listeners[] = $callBackHandler;
}

```

### TinyMCE configurations

[](#tinymce-configurations)

MelisCms brings 3 defaults configuration when editing a template within a "MelisTag" editable area:

- html: full sets of buttons for the editor
- textarea: buttons limited to text and links
- media: buttons limited to media object insertion such as images and videos
    Creating other config is possible. Add the config in a file then declare the file in the module.config.php file of the module:

```
// Config Files
'tinyMCE' => array(
	'html' => 'MelisCms/public/js/tinyMCE/html.php',
	'textarea' => 'MelisCms/public/js/tinyMCE/textarea.php',
	'media' => 'MelisCms/public/js/tinyMCE/media.php',
),

```

- mini templates will automatically turned into plugins if places in their folder.

### Javascript helpers provided with MelisCms

[](#javascript-helpers-provided-with-meliscms)

- melisLinkTree: Shows a modal with the treeview to search and make a page selection

```
melisLinkTree.createInputTreeModal('#sourcePageId');

```

Authors
-------

[](#authors)

- **Melis Technology** - [www.melistechnology.com](https://www.melistechnology.com/)

See also the list of [contributors](https://github.com/melisplatform/melis-cms/contributors) who participated in this project.

License
-------

[](#license)

This project is licensed under the OSL-3.0 License - see the [LICENSE.md](LICENSE.md) file for details

###  Health Score

67

—

FairBetter than 99% of packages

Maintenance95

Actively maintained with recent releases

Popularity30

Limited adoption so far

Community33

Small or concentrated contributor base

Maturity97

Battle-tested with a long release history

 Bus Factor3

3 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~33 days

Recently: every ~12 days

Total

100

Last Release

24d ago

Major Versions

v2.5.0 → v3.0.02018-10-17

v3.2.14 → v4.0.02020-08-17

v4.1.2 → v5.0.02022-06-20

PHP version history (5 changes)v2.1PHP ^5.5 || ^7.0

v3.0.1PHP ^7.0

v4.0.0PHP ^7.1.3|^7.2|^7.3

v5.0.0PHP ^7.3|^8.0

v5.1.0PHP ^8.1|^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/f8c3d1de854682cd37de2faa73a026b1c83b4b15500f352077581948c5d778ce?d=identicon)[melisplatform](/maintainers/melisplatform)

---

Top Contributors

[![fparan](https://avatars.githubusercontent.com/u/39509647?v=4)](https://github.com/fparan "fparan (338 commits)")[![sircxes](https://avatars.githubusercontent.com/u/21098160?v=4)](https://github.com/sircxes "sircxes (298 commits)")[![jzabate](https://avatars.githubusercontent.com/u/39899634?v=4)](https://github.com/jzabate "jzabate (251 commits)")[![rbbrioso28](https://avatars.githubusercontent.com/u/9497212?v=4)](https://github.com/rbbrioso28 "rbbrioso28 (221 commits)")[![ksuson](https://avatars.githubusercontent.com/u/31838758?v=4)](https://github.com/ksuson "ksuson (92 commits)")[![benborla](https://avatars.githubusercontent.com/u/22745294?v=4)](https://github.com/benborla "benborla (83 commits)")[![jun1432](https://avatars.githubusercontent.com/u/26325630?v=4)](https://github.com/jun1432 "jun1432 (57 commits)")[![jamesrepository](https://avatars.githubusercontent.com/u/10151213?v=4)](https://github.com/jamesrepository "jamesrepository (55 commits)")[![simonalcover](https://avatars.githubusercontent.com/u/17284664?v=4)](https://github.com/simonalcover "simonalcover (50 commits)")[![mariateresapomar](https://avatars.githubusercontent.com/u/85868605?v=4)](https://github.com/mariateresapomar "mariateresapomar (38 commits)")[![sgris](https://avatars.githubusercontent.com/u/3981660?v=4)](https://github.com/sgris "sgris (34 commits)")[![nicole-cayambas](https://avatars.githubusercontent.com/u/55810654?v=4)](https://github.com/nicole-cayambas "nicole-cayambas (4 commits)")[![jerremeirago](https://avatars.githubusercontent.com/u/30467695?v=4)](https://github.com/jerremeirago "jerremeirago (1 commits)")[![ffesch](https://avatars.githubusercontent.com/u/1141489?v=4)](https://github.com/ffesch "ffesch (1 commits)")

---

Tags

cmsmodulezf2melis

### Embed Badge

![Health badge](/badges/melisplatform-melis-cms/health.svg)

```
[![Health](https://phpackages.com/badges/melisplatform-melis-cms/health.svg)](https://phpackages.com/packages/melisplatform-melis-cms)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
