PHPackages                             wakers/cms-base-module - 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. wakers/cms-base-module

ActiveLibrary[Framework](/categories/framework)

wakers/cms-base-module
======================

Base module of Wakers CMS 5

1.0.3-alpha(5y ago)0123[1 issues](https://github.com/wakerscz/cms-base-module/issues)1MITPHP

Since Feb 11Pushed 5y ago1 watchersCompare

[ Source](https://github.com/wakerscz/cms-base-module)[ Packagist](https://packagist.org/packages/wakers/cms-base-module)[ Docs](http://www.wakers.cz/cms)[ RSS](/packages/wakers-cms-base-module/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (4)DependenciesVersions (5)Used By (1)

BaseModule
==========

[](#basemodule)

Základní modul celé aplikace, obsahuje společné třídy, komponenty, assety, atp. Spojuje celou aplikaci.

**Namespace:** `Wakers\BaseModule\\*`.

**Vzorová třída:** `Wakers\BaseModule\Component\Admin\BreadCrumb\BreadCrumb`

Komponenty
----------

[](#komponenty)

### Admin (site-manager)

[](#admin-site-manager)

1. `Admin\BaseControl` - Předek všech Admin komponent - napříč celou aplikací (všechny Admin komponenty od něj dědí).
2. `Admin\NavBar` - generuje navigační (dropdown) menu v site-manageru.
3. `Admin\Bradcrumb` - generuje drobečkové menu v site-manageru.

### Common (společné Admin i Frontend)

[](#common-společné-admin-i-frontend)

1. `Common\BaseControl` - Předek všech Common komponent - napříč celou aplikací (všechny Common komponenty od něj dědí).
2. `Common\AssetLoader` - zajištuje načítání JS, CSS, Fontů a dalších statických souborů.
3. `Common\Logout (HandleLogout)` - zajištuje odhlašování uživatelů.
4. `Common\Modal (HandleModalToggle)` - zajištuje otevírání modálních oken skrze PHP.
5. `Common\Notification` - zajištuje výpis notifikací skrze PHP.
6. `Common\PermissionWatcher` - porovnává identitu přihlášeného uživatele (zda-li nebyla změněna v DB).

### Frontend

[](#frontend)

1. `Frontend\BaseControl` - Předek všech Frontend komponent - napříč celou aplikací (všechny Frontend komponenty od něj dědí).
2. `Frontend\DashboardModal` - modální okno s Dashboardem (sestaví podle použitých modulů - dle app.neon `parameters.dashboard`).

Buildery
--------

[](#buildery)

### ACL Builder

[](#acl-builder)

1. `Builder\AclBuilderFactory` - registuje celý ACL do DI podle použitých modulů.
2. `Builder\AuthorizatorBuilder` - předek všech Authorizátorů (osatatní od něj musí dědit).

Každý modulový Authorizator se musí registrovat v config.neon v sekci `parameters.acl`.

Presenter a layout
------------------

[](#presenter-a-layout)

Pro všechny modulové AdminPresentry - napříč celou aplikací existuje předek `Presenter\BaseAdminPresenter`.

2. `Presenter\BaseAdminPresenter` načítá výchozí layout: `@layout.latte`, v modulech lze tedy používat pouze view.
3. `Presenter\AdminPresenter` - Admin presenter pro base-module (lze zde registrovat komponenty pro base-module).

Util
----

[](#util)

### Ajaxová validace formulářů

[](#ajaxová-validace-formulářů)

`Util\AjaxValidate` - traita s metodou `success`, kterou lze využít při validaci formulářu.

1. Př: `$form->onValidate[] = function (Form $form) { $this->validate($form) };`.

### Práce se soubory

[](#práce-se-soubory)

Pro práci se soubory slouží třída `Wakers\BaseModule\Util\ProtectedFile`.

1. Ukládá soubory do neveřejného adresáře.
2. Pomocí 2 základních metod či maker lze soubory zpřístupnit.
3. Zajištuje i generování náhledových obrázků (ořezů).

#### Nahrávání souboru

[](#nahrávání-souboru)

1. Z formuláře přijde objekt typu `Nette\Http\FileUpload $fileUpload`.
2. Vytvoříme instanci `ProtectedFile $protectedFile` a uložíme soubor.

```
$protectedFile = new ProtectedFile('my-super/sub-folder/', NULL);
$tmsName = $protectedFile->move($fileUpload); // vrací unikátní název

// ... Název někam uložíme - třeba do DB
```

##### Odstranění souborů

[](#odstranění-souborů)

1. Načteme název souboru.
2. Vytvoříme instanci `ProtectedFile $protectedFile`, **již s názvem souboru**.
3. Následně soubor odstraníme (z neveřejného i veřejného adresáře).

```
$name = 'nahled.jpg' // Načteno např. z DB
$protectedFile = new ProtectedFile('my-super/sub-folder/', $name);
$protectedFile->remove();
```

#### Publikování souboru / vytvoření ořezu

[](#publikování-souboru--vytvoření-ořezu)

Publikování souboru či obrázku se může řešit na úrovni šablony viz latte šablona.

1. Načteme název souboru.
2. Vytvoříme instanci `ProtectedFile $protectedFile` **s názvem souboru** a přidáme mu i extra atribut.
3. Soubor vypíšeme v šabloně a vypíšeme i atribut.

##### Příklad PHP (Repository):

[](#příklad-php-repository)

```
$name = 'nahled.jpg'; // Načteno např. z DB
$title = 'Titulek obrázku'; // Načteno např. z DB

$protectedFile = new ProtectedFile('my-super/sub-folder/', $name);
$protectedFile->setAttr('title', $title);
```

##### Příklad Latte:

[](#příklad-latte)

```
{* Makro file vytvoří kopii souboru do veřejného adresáře a vrátí cestu k souboru *}

Odkaz na soubor

{* nebo *}

Odkaz na soubor

{* Makro img vytvoří oříznutý obrázek a vrátí cestu k souboru
   Pokud soubor ještě nebyl nahrán (neexistuje privátní soubor), vytvoří šedý obrázek *}

{* nebo *}

{* Vypíše pouze, pokud existuje privátní soubor - nevytváří tedy šedý obrázek *}

{if $protectedFile->getPrivateFile()})

{/if}
```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~178 days

Total

4

Last Release

2113d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1b48b74251a86c4daeda4177aec702410218ccf9f71a719a11cb39cfb4b381f6?d=identicon)[Wakers](/maintainers/Wakers)

---

Top Contributors

[![jzaplet](https://avatars.githubusercontent.com/u/4992367?v=4)](https://github.com/jzaplet "jzaplet (19 commits)")

### Embed Badge

![Health badge](/badges/wakers-cms-base-module/health.svg)

```
[![Health](https://phpackages.com/badges/wakers-cms-base-module/health.svg)](https://phpackages.com/packages/wakers-cms-base-module)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M192](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)

PHPackages © 2026

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