PHPackages                             godsdev/mycms - 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. godsdev/mycms

Abandoned → [workofstan/mycms](/?search=workofstan%2Fmycms)ArchivedLibrary

godsdev/mycms
=============

MyCMS

v0.3.15(6y ago)04681[1 PRs](https://github.com/GodsDev/mycms/pulls)proprietaryPHPPHP ^5.6 || ^7.0

Since Oct 6Pushed 4y ago2 watchersCompare

[ Source](https://github.com/GodsDev/mycms)[ Packagist](https://packagist.org/packages/godsdev/mycms)[ RSS](/packages/godsdev-mycms/feed)WikiDiscussions develop Synced 2mo ago

READMEChangelog (3)Dependencies (7)Versions (27)Used By (0)

MyCMS
=====

[](#mycms)

ABANDONED - use [workofstan/mycms](https://github.com/WorkOfStan/mycms) instead, where it is actively maintained.

Simple framework to help developing interactive websites. Works as a devstack which you install and then write your classes specific for the project.

Features
========

[](#features)

- [jQuery](https://jquery.org/) and [Bootstrap](https://getbootstrap.com/docs/4.0/components/) (version 4) used in the presentation
- [Latte](http://latte.nette.org/) used as a templating engine
- [MySQL](https://dev.mysql.com/)/[MariaDB](http://mariadb.com) used as the website database
- includes a general administration
- other dependent libraries and technologies - Tracy, Nette\\SmartObject, Psr\\Log\\LoggerInterface, GodsDev\\Backyard\\BackyardMysqli

Installation
============

[](#installation)

Require MyCMS in [`composer.json`](https://getcomposer.org/).

```
{
    ...
    "required": {
        "GodsDev/mycms": "^0.3.4" //or the latest version
        ...
    }
}
```

The `composer install` command will load the library's files into `./vendor/godsdev/mycms/`. The library's classes are in `./vendor/godsdev/mycms/classes/`and most of them are use prefix `My`.

To customize the project, create your own classes as children inheriting MyCMS' classes in the `./classes/` directory and name them it without the initial `My` in its name.

```
$MyCMS = new \GodsDev\MyCMS\MyCMS(
    array(
        // compulsory
        'logger' => $logger, // object \Psr\Log\LoggerInterface
        //optional
    )
);

//Finish with Latte initialization & Mark-up output
$MyCMS->renderLatte(DIR_TEMPLATE_CACHE, "\\GodsDev\\ProjectName\\Latte\\CustomFilters::common", $params);
```

Files `process.php` and `admin-process.php` MUST exist and process forms.

Note: `$MyCMS` name is expected by `ProjectSpecific extends ProjectCommon` class (@todo replace global $MyCMS by parameter handling)

Deployment
==========

[](#deployment)

`/dist`
-------

[](#dist)

Folder `/dist` contains initial *distribution* files for a new project using MyCMS, therefore copy it to your new project folder. Replace the string `MYCMSPROJECTNAMESPACE` with your project namespace. Replace the string `MYCMSPROJECTSPECIFIC` with other website specific information (Brand, Twitter address, phone number...).

MyCMS is used only as a library, so the application using it SHOULD implement `RedirectMatch 404 vendor\/` statement as proposed in `dist/.htaccess` to keep the library hidden from web access.

Languages
---------

[](#languages)

Following settings are expected from the Application that uses MyCMS

```
define('DEFAULT_LANGUAGE', 'en');
```

Following files are expected to exist within the Application

- './language-' . $resultLanguage . '.inc.php'; where `$resultLanguage` is a (ISO 3166-2) two-letter language code. Language versions (or translations, resp.) are specified when instatiating the MyCMS object. For example:

```
array(
    ...
    'TRANSLATIONS' => array(
        'en' => 'ENG',
        'cn' => '中文',
        'cs' => 'CZ'
    ),
)
```

Admin notes
===========

[](#admin-notes)

clientSideResources
-------------------

[](#clientsideresources)

In `class/Admin.php` you can redefine the `clientSideResources` variable with resources to load to the admin. Its default is:

```
    protected $clientSideResources = [
        'js' => [
            'scripts/jquery.js',
            'scripts/popper.js',
            'scripts/bootstrap.js',
            'scripts/admin.js?v=' . PAGE_RESOURCE_VERSION,
        ],
        'css-pre-admin' => [
            'styles/bootstrap.css',
            ],
        'css' => [
            'styles/font-awesome.css',
            'styles/ie10-viewport-bug-workaround.css',
            'styles/bootstrap-datetimepicker.css',
            'styles/summernote.css',
            'styles/admin.css?v=' . PAGE_RESOURCE_VERSION,
        ]
    ];
```

`admin.css` may be inherited to a child project, however as vendor folder SHOULD have denied access from browser, the content of that standard `admin.css` MUST be available through method MyAdmin::getAdminCss.

Testing
=======

[](#testing)

Run from a command line:

```
./vendor/bin/phpunit
```

Note that `dist` folder contains the starting MyCMS based project deployment and testing runs through `dist` as well, so for development, the environment has to be set up for `dist` as well.

TODO
====

[](#todo)

- 190705: v classes\\LogMysqli.php probíhá logování `'log/sql' . date("Y-m-d") . '.log.sql');` do aktuálního adresáře volajícího skriptu - což u API není výhodné. Jak vycházet z APP\_ROOT?
- 190723: pokud jsou v té samé doméně dvě různé instance MyCMS, tak přihlášením do jednoho admin.php jsem přihlášen do všech, i když ten uživatel tam ani neexistuje
- TO BE CHECKED 190723: nastavování hesla by se nemělo do log.sql ukládat - volat instanci BackyardMysqli namísto LogMysqli?? @crs2: Řešilo by to přidání parametru (do query() v LogMysqli.php), který by volání error\_log() potlačil? A poté u změny hesla volání tohoto parametru? + Ještě mě napadá řešení na úrovni samotného sloupce tabulky, tj. definování (v LogMysqli.php), které sloupce které tabulky obsahují citlivé údaje pro logování. Ale to by vyžadovalo parsing SQL.
- 200314: administrace FriendlyURL je v F4T/classes/Admin::outputSpecialMenuLinks() a ::sectionUrls() .. zobecnit do MyCMS a zapnout pokud FRIENDLY\_URL == true

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 54.2% of commits — single point of failure

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 ~42 days

Recently: every ~12 days

Total

23

Last Release

2204d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8134fa965109abdfec69ad5215765895abd2cb77673c8c412dd7f7d85af6625b?d=identicon)[GodsDev](/maintainers/GodsDev)

---

Top Contributors

[![crs2](https://avatars.githubusercontent.com/u/9055279?v=4)](https://github.com/crs2 "crs2 (155 commits)")[![GodsDev](https://avatars.githubusercontent.com/u/2787653?v=4)](https://github.com/GodsDev "GodsDev (91 commits)")[![WorkOfStan](https://avatars.githubusercontent.com/u/26247074?v=4)](https://github.com/WorkOfStan "WorkOfStan (40 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/godsdev-mycms/health.svg)

```
[![Health](https://phpackages.com/badges/godsdev-mycms/health.svg)](https://phpackages.com/packages/godsdev-mycms)
```

###  Alternatives

[nette/nette

👪 Nette Framework - innovative framework for fast and easy development of secured web applications in PHP (metapackage)

1.6k2.8M335](/packages/nette-nette)[nextras/mail-panel

MailPanel is extension for Nette Framework which captures sent e-mails in development mode and shows them in debugger bar.

741.2M4](/packages/nextras-mail-panel)[tomaj/nette-api

Nette api

36261.8k4](/packages/tomaj-nette-api)[nette/web-project

Nette: Standard Web Project

10991.8k](/packages/nette-web-project)[pavlista/nette-palette

Palette support for Nette Framework and Latte template engine

1657.4k](/packages/pavlista-nette-palette)

PHPackages © 2026

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