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

ActiveThelia-module[Admin Panels](/categories/admin)

thelia/thelia-studio-module
===========================

1.4.11(5y ago)322.8k3[14 issues](https://github.com/thelia-modules/TheliaStudio/issues)LGPL-3.0+PHPCI failing

Since Jan 14Pushed 5y ago7 watchersCompare

[ Source](https://github.com/thelia-modules/TheliaStudio)[ Packagist](https://packagist.org/packages/thelia/thelia-studio-module)[ RSS](/packages/thelia-thelia-studio-module/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (4)Versions (20)Used By (0)

Thelia Studio
=============

[](#thelia-studio)

author: Benjamin Perche

This module allows you to generate all the repetitive classes and templates you have to write for a module.

1. Installation

---

Install it as a thelia module by downloading the zip archive and extracting it in `thelia/local/modules` or by uploading it with the backoffice, or by requiring it with composer:

```
"require": {
    "thelia/thelia-studio-module": "~1.4.4"
}
```

2. Usage

---

This module adds two commands: `$ php Thelia module:generate:all`and `$ php Thelia module:generate:config-form`

3. Generating your module configuration form

---

To do that, you will need to write a new file. Create `config-form.yml` in your module's Config directory, and by respecting the following structure, TheliaStudio will generate everything for you :) :

- the root node is called 'config'
- then write your config `varName: type` for simple ones.
    - available types are: text, textarea, integer, number, checkbox.
    - you can add more precise data into the generation:
        - `label: My Var` to customize the name of the field displayed in the configuration page
        - `required: false` if the field isn't required
        - `regex` a validation regex.
        - `size` an array with "min" and "max" keys.
        - `help: Help for my var` a help message for the field displayed in the configuration page

Here's an example:

```
config:
  var_name: text
  var_name2: integer
  var_name3: checkbox
  var_name4:
    label: My Variable
    help: Help for variable ...
    type:  text
    required: false
    regex: "a-z+"
    size:
      min: 5
      max: 20
```

4. How to use it ?

---

\### 4.1 Generate the configuration form only

First, write your config-form.yml Then launch `$ php Thelia module:generate:config-form`Finally, adapt the generated template for your need.

### 4.2 Generate table CRUD and configuration form

[](#42-generate-table-crud-and-configuration-form)

#### 4.2.1 Writing the schema.xml

[](#421-writing-the-schemaxml)

If you want your table to be correctly integrated into Thelia, you have to respect some conventions.

- Always call your primary key `id` and never construct the PK with two columns.
- If you want a visibility toggle, call your column `visible` and give it the type `BOOLEAN` or `TINYINT`
- If you want a position management, call your column `position`. The order argument for the loop will be called manual
- If the column is called 'id', 'title', 'name' or 'code' its entries in the table will be a clickable link
- If the column is a `BOOLEAN` or a `TINYINT` type, it will be used as a checkbox.
- If the column is called 'chapo', 'description' or 'postscriptum', it won't be displayed in the table

Here's a typical schema that will work like a charm with TheliaStudio:

```

```

#### 4.2.2 Generating everything

[](#422-generating-everything)

Write your schema.xml, then if needed write your config-form.yml You can now launch `$ php Thelia module:generate:all`, your can use the --table option to specify the tables you want to generate.

Go to the `Form` directory and change the form names that you want. You can change the generated templates as you want, as the generator integrates everything, everywhere, even if it's not needed.

#### 4.2.3 Automatic support for some standard Thelia features

[](#423-automatic-support-for-some-standard-thelia-features)

The module will generate the appropriate code for managing 'position' and 'visible' fields if the table has columns with these names.

The module will automaticaly generate the code for managing standard Thelia SEO fields (including a rewriten URL) if the table has the following columns :

- meta\_title
- meta\_description
- meta\_keywords

5. Access to the generated pages

---

The CRUDs are generated under `/admin/module/ModuleCode/table_name`You can write a hook to access it from the `Tools` dropdown or add links into your module configuration page.

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 82.4% 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 ~157 days

Recently: every ~7 days

Total

16

Last Release

1825d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2196919?v=4)[thelia](/maintainers/thelia)[@thelia](https://github.com/thelia)

---

Top Contributors

[![lovenunu](https://avatars.githubusercontent.com/u/6106094?v=4)](https://github.com/lovenunu "lovenunu (56 commits)")[![lunika](https://avatars.githubusercontent.com/u/767834?v=4)](https://github.com/lunika "lunika (8 commits)")[![gillesbourgeat](https://avatars.githubusercontent.com/u/7335734?v=4)](https://github.com/gillesbourgeat "gillesbourgeat (2 commits)")[![roadster31](https://avatars.githubusercontent.com/u/2197734?v=4)](https://github.com/roadster31 "roadster31 (2 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/thelia-thelia-studio-module/health.svg)

```
[![Health](https://phpackages.com/badges/thelia-thelia-studio-module/health.svg)](https://phpackages.com/packages/thelia-thelia-studio-module)
```

PHPackages © 2026

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