PHPackages                             elvandar/kazetenn-admin - 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. [Admin Panels](/categories/admin)
4. /
5. elvandar/kazetenn-admin

ActiveSymfony-bundle[Admin Panels](/categories/admin)

elvandar/kazetenn-admin
=======================

A symfon administration builder library built for the kazetenn project

1.0.4(3y ago)0212MITPHPPHP 8.1.\*

Since Feb 15Pushed 3y ago1 watchersCompare

[ Source](https://github.com/Elvandarysalys/kazetenn-admin)[ Packagist](https://packagist.org/packages/elvandar/kazetenn-admin)[ RSS](/packages/elvandar-kazetenn-admin/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (48)Versions (7)Used By (2)

kazetenn-pages
==============

[](#kazetenn-pages)

Description
-----------

[](#description)

Kazetenn Admin is a symfony bundle that allow you to handle basic pages programatically.

Installation
------------

[](#installation)

You can use

`composer require elvandar/kazetenn_core_admin`

to install the bundle.

Usage
-----

[](#usage)

This bundle provides an administration panel and menu to create a back office.

### configuration:

[](#configuration)

Here is the configuration reference for the bundle, you can configure it in `config/packages/kazetenn_admin.yaml`:

```
kazetenn_admin:
  authorized_roles:     []
  admin_url:            admin
  translation_domain:   kazetenn_admin
  pages:
    name:
      function:             ~
  menu_entries:
    name:
      target:               ''
      display_name:         ''
      translation_domain:   ''
      order:                0
      type:                 route
      authorized_roles:     []
      orientation:          vertical
      children:
        name:
          target:               ''
          order:                0
          display_name:         ''
          translation_domain:   ''
          authorized_roles:     []
          type:                 route
```

Let's go over all of those in detail:

##### Basic configuration:

[](#basic-configuration)

```
kazetenn_admin:
  admin_url:            admin
  translation_domain:   kazetenn_admin
  authorized_roles:     []
  pages:
    name:
      function:             ~
  menu_entries:         []
```

###### admin\_url:

[](#admin_url)

This is the admin menu url prefix. This will produce urls under this format:

`http://your_domain/admin_url/`

By default, it is set to 'admin'.

###### translation\_domain:

[](#translation_domain)

This will define the translation domain of the overall menu. This will also be the translation domain fallback if you do not define it for other menus.

###### authorized\_roles:

[](#authorized_roles)

This is a collection roles authorized to access the menus. The roles are classics symfony roles.

If you want to allow non-authenticated users to access the admin menu, you must use the 'ANONYMOUS' role.

Except if the 'ANONYMOUS' role is set, a user must have all the defined roles to access the menu.

If you did not define roles for each individual menu, this array will be used as a fallback.

###### Pages:

[](#pages)

This is where you will be able to define the admin pages.

###### menu\_entries:

[](#menu_entries)

This is where you will be able to define the different menus.

##### Menu entry configuration:

[](#menu-entry-configuration)

```
name:
  target:               ''
  display_name:         ''
  translation_domain:   ''
  order:                0
  type:                 route
  authorized_roles:     []
  orientation:          vertical
  children:             []
```

This will allow you to configure every menu entry in your admin page.

###### name:

[](#name)

The name of your entry

###### type:

[](#type)

The type of entry, it can be one of:

- link
- page
- route
- header

This tells the bundle how to interpret the 'target' entry.

The header type is a special type only available for the upper menus. This will render a menu with no link tha is used to create main menus and header menus.

###### target:

[](#target)

The string that the code will use to render based on the type you provided

- link: a link to an external source (`https://google.com`)
- page: the name of an admin page
- route: a symfony route
- header: nothing

###### display\_name:

[](#display_name)

The name that will be displayed (and translated)

###### translation\_domain:

[](#translation_domain-1)

The translation domain used to translate the name. If left empty, the bundle will fallback to the default defined domain.

###### order:

[](#order)

The order in which the menu will be rendered. The bundle will throw a warning if 2 menus have the same order.

###### authorized\_roles:

[](#authorized_roles-1)

This is a collection roles authorized to access the menus. The roles are classics symfony roles.

If you want to allow non-authenticated users to access the admin menu, you must use the 'ANONYMOUS' role.

Except if the 'ANONYMOUS' role is set, a user must have all the defined roles to access the menu.

If you did not define roles for each individual menu, this array will be used as a fallback.

###### orientation:

[](#orientation)

This will define if your menu will be displayed in the horizontal head menu or in the vertical side menu. The values are

- horizontal
- vertical

###### children:

[](#children)

Here you can define the sub menus

##### Children menu entry configuration:

[](#children-menu-entry-configuration)

```
name:
      target:               ''
      order:                0
      display_name:         ''
      translation_domain:   ''
      authorized_roles:     []
      type:                 route
```

###### name:

[](#name-1)

The name of your entry

###### type:

[](#type-1)

The type of entry, it can be one of:

- link
- page
- route

This tells the bundle how to interpret the 'target' entry.

The header type is a special type only available for the upper menus. This will render a menu with no link tha is used to create main menus and header menus.

###### target:

[](#target-1)

The string that the code will use to render based on the type you provided

- link: a link to an external source (`https://google.com`)
- page: the name of an admin page
- route: a symfony route

###### display\_name:

[](#display_name-1)

The name that will be displayed (and translated)

###### translation\_domain:

[](#translation_domain-2)

The translation domain used to translate the name. If left empty, the bundle will fallback to the default defined domain.

###### order:

[](#order-1)

The order in which the menu will be rendered. The bundle will throw a warning if 2 menus have the same order.

###### authorized\_roles:

[](#authorized_roles-2)

This is a collection roles authorized to access the menus. The roles are classics symfony roles.

If you want to allow non-authenticated users to access the admin menu, you must use the 'ANONYMOUS' role.

Except if the 'ANONYMOUS' role is set, a user must have all the defined roles to access the menu.

If you did not define roles for each individual menu, this array will be used as a fallback.

Display of the menu
-------------------

[](#display-of-the-menu)

There are multiple ways to create a vue within the menu:

##### Custom controller

[](#custom-controller)

The bundle comes with an abstract controller (`Kazetenn\Admin\Controller\BaseAdminController`). When you extends it, the render method will automatically provides you with arguments containing the menus you registered.

You can use it in combination with the already existing twig templates (`Admin/Resources/views/admin_base.html.twig`) or create your owns.

##### Pages

[](#pages-1)

The admin pages are a way to ensure that the code you created will be displayed in the admin template. You can configure thems using this part of the YAML:

```
pages:
    name:
      function: 'FQCN\Of\Your\file::yourFunction'
```

The name will be used to generate the page url.

The function must be within a specific set of criterias:

- It must not have parameters (you can use constructor injection)
- It must return a string containing HTML

If you did so correctly, you can use the `http://your_domain/admin_url/display_page/page_name` to access your page.

Customisation of the admin
--------------------------

[](#customisation-of-the-admin)

The default admin interface has been created using Bulma ()

License
-------

[](#license)

The pages bundle is under MIT liscence

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity58

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

Total

5

Last Release

1176d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7222a363a323c578bce351640a7062fba7c69d56d62bdbc93bc1f849671eb76c?d=identicon)[Elvandar](/maintainers/Elvandar)

---

Top Contributors

[![Elvandarysalys](https://avatars.githubusercontent.com/u/34376241?v=4)](https://github.com/Elvandarysalys "Elvandarysalys (2 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Type Coverage Yes

### Embed Badge

![Health badge](/badges/elvandar-kazetenn-admin/health.svg)

```
[![Health](https://phpackages.com/badges/elvandar-kazetenn-admin/health.svg)](https://phpackages.com/packages/elvandar-kazetenn-admin)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M648](/packages/sylius-sylius)[easycorp/easyadmin-demo

EasyAdmin Demo Application

145.7k](/packages/easycorp-easyadmin-demo)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[forumify/forumify-platform

121.8k11](/packages/forumify-forumify-platform)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[chameleon-system/chameleon-base

The Chameleon System core.

1026.5k3](/packages/chameleon-system-chameleon-base)

PHPackages © 2026

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