PHPackages                             mapbender/data-manager - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. mapbender/data-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mapbender/data-manager
======================

Mapbender data manager

2.0.8(3y ago)37.3k1[2 issues](https://github.com/mapbender/data-manager/issues)[1 PRs](https://github.com/mapbender/data-manager/pulls)MITJavaScriptPHP &gt;=5.3.3

Since Apr 26Pushed 2y ago17 watchersCompare

[ Source](https://github.com/mapbender/data-manager)[ Packagist](https://packagist.org/packages/mapbender/data-manager)[ RSS](/packages/mapbender-data-manager/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (5)Versions (65)Used By (0)

Deprecated
==========

[](#deprecated)

This repository is deprecated. Its functionality will be integrated into the [mapbender digitizer repository](https://github.com/mapbender/mapbender-digitizer) in version 2.0 and the code has already been ported to the [develop branch](https://github.com/mapbender/mapbender-digitizer/tree/develop/src/Mapbender/DataManagerBundle). Propose any changes there.

---

Old description: Mapbender Data Manager element
-----------------------------------------------

[](#old-description-mapbender-data-manager-element)

List and edit database table contents in a Mapbender application.

Data listings are displayed as (HTML) tables. Individual items can be edited or created in customizable forms.

Designed for use in a sidepane.

Data is organized into "schemes" to support multiple tables with differing data and form structures.

If multiple schemes are defined, Data Manager will display a dropdown to allow schema switching.

Each schema separately defines how data is listed and the structure of the form used for editing and creating items.

For spatial data integration, see [Digitizer](https://github.com/mapbender/mapbender-digitizer).

For database connection / table selection, please refer to [the Data Source documentation](https://github.com/mapbender/data-source#configuring-repositories).

Connection and table configuration may either be inlined into the Data Manager schema configuration directly, or reference an existing global configuration placed into a Symfony container parameter.

Configuring tabular item listing
--------------------------------

[](#configuring-tabular-item-listing)

Each schema configuration contains an object under key `table` with the following structure:

nametypedescriptiondefaultcolumnslist of objects with `data` and `label` entriesmaps database columns to HTMl table columnsDisplay primary key onlysearchingbooleanEnables display filtering by search termtruepageLengthintegerLimits the number of rows per page16Configuring forms
-----------------

[](#configuring-forms)

Each schema configuration contains a list of (potentially nested) objects under key `formItems`, defining the contents and structure of the form shown when an item is created or edited. Note that this form will also be used purely as a detail display vehicle even if editing is disabled.

Additionaly, the `popup` object in the schema controls properties of the the popup itself. It supports the following values:

nametypedescriptiondefaulttitlestringPopup title text"Edit" (localized)widthstringvalid CSS width rule"550px"### Form input fields

[](#form-input-fields)

Form input fields come in a multitude of different types, controlled by the `type`value. All inputs share a common set of configuration options:

nametypedescriptiondefaulttypestringType of form input field (see below)-none-namestringDatabase column mapped to the input-none-valuestringInitial field value on newly created items-none-titlestringLabel text for form input field-none-attrobjectMapping of HTML attributes to add to the input-none-infoTextstringExplanatory text placed in a tooltip next to the label-none-cssobjectMapping of CSS rules to add to the form group (container around label and input)-none-cssClassstringAdded to the class attribute of the form group (container around label and input)-none-Input field `type` is one of

- "input" for a [regular single-row text input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text)
- "textArea" for a [multiple-row text input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea)
- "select" for a [dropdown offering predefined choices](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select)
- "radioGroup" for an expanded list of [predefined choices](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio)
- "checkbox" for an [on / off choice](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox)
- "date" for a [specialized input selecting a calendar day](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date) (produces standard SQL date string format "YYYY-MM-DD")
- "colorPicker" for a [specialized input selecting a color](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color) (produces CSS-like hash + 6 hex digits string format)
- "file" for [allowing file attachments](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file)

Many common customizations for inputs can be performed purely with the `attr` object. E.g. type "input" can be restricted to allow numbers only by overriding its HTML type attribute; all inputs can be made required or readonly.

```

formItems:
  - type: input
    name: strictly_formatted_column
    title: Strict input pattern demo
    attr:
        pattern: '\w{2}\d{3,}'
        placeholder: Two letters followed by at least three digits
        required: true
  - type: input
    name: numeric_column
    title: Numbers only
    attr:
      type: number
      min: 10
      max: 200
      step: 10
      required: true
  - type: textArea
    name: text_column
    title: Very large text area
    attr:
      rows: 10
```

#### Choice input option formats

[](#choice-input-option-formats)

Types "radioGroup" and "select" require a list of objects under key `options` to specify the available choices. Option objects contain:

nametypedescriptiondefaultvaluestringGenerated database value for the choice-none-labelstringDisplayed text for the choiceSame as valueattrobjectMapping of HTML attributes to add to the individual HTML `` or ``-none-```

formItems:
  - type: select
    options:
      # Allow user to explicitly (re)select ~nothing in particular
      - label: ''
        value: ''
      - label: First option text   # displayed
        value: v1   # value in database column
      - label: Second option text (disabled)
        value: v2
        attr:
          disabled: true
      - label: Third option text
        value: v3
```

Selects (NOT radioGroup items) can alternatively specify `sql`and `connection` (Doctrine DBAL connection name) to generate choices dynamically. The `sql` *should* generate `label` and `value` aliases for clarity. If it does not, the first column of each row is used as the option label and the last column as the submit value.

Static `option` definitions and `sql` can also be combined.

```

formItems:
  - type: select
    options:
      # Allow user to explicitly (re)select ~nothing in particular
      - label: ''
        value: ''
      - label: Static option a
        value: a
    sql: SELECT CONCAT("label_prefix", ': ', "name") AS label, "id" AS value FROM "some_table"
    connection: name_of_some_connection
```

If `sql` is defined but `connection` is omitted, the "default" DBAL connection is used for the query.

#### File uploads

[](#file-uploads)

Files uploaded through `type: file` form items will be stored in the server's file system. The mapped database column will only store a file path as a string.

The default storage path for uploads is determined by Mapbender, but can be reconfigured on the "dataStore" / "featureType" level, individually for each database column. This is done via a `files` object in the "dataStore" / "featureType" configuration.

E.g.

```
schemes:
  items_with_customized_upload_location:
    dataStore:
        connection: dm_connection_name
        table: items_with_file_attachments
        ## Customization per column here
        files:
          - field: attachment_path_column
            path: /var/mapbender-attachments/dm/items_with_customized_upload_location/attachment_path_column
```

The starting point for a relative `path` (no leading slash) is the web server document root.

For image attachments, you may link a `type: img` item that will automatically display a preview of the current attachment.

```

formItems:
    - type: file
      title: Attached image
      name: img_path_column
      attr:
        accept: 'image/*'
    - type: image
      name: img_path_column   # Link to input established by matching "name" value
      src: attachment-placeholder.png
```

### Structural / misc form elements

[](#structural--misc-form-elements)

#### Type "tabs"

[](#type-tabs)

Complex form dialogs can be organized into multiple tabs by inserting an object with `type: tabs`into the `formItems` list, and assigning it one or more tab specifications, which consist of `title` (text displayed on the tab) and `children` (contents of the tab).

```

popup:
  title: 'Multi-tab form dialog'
formItems:
  - type: tabs
    children:
      - title: 'First tab'
        children:
          # First tab form item specifications
          - type: input
            title: Input in first tab

      - title: 'Second tab'
        children:
          # First tab form item specifications
          - type: input
            title: Input in second tab
```

### Misc container tags "div", "span", "p"

[](#misc-container-tags-div-span-p)

Inserts HTML ``, `` or `` tags. May specify `text` (encoded, inserted first) and `children` (list of more items to insert). Supports adding free-form HTML attributes via `attr` object and custom `cssClass`.

```

formItems:
  - type: p
    text: This is an introductory paragraph.
  # Arrange inputs in Bootstrap grid row + columns
  - type: div
    cssClass: row
    children:
      - type: input
        title: Input in left column
        cssClass: col-xs-4 col-4
      - type: input
        title: Input in middle column
        cssClass: col-xs-4 col-4
      - type: input
        title: Input in right column
        cssClass: col-xs-4 col-4
```

### Type "html"

[](#type-html)

Inserts custom HTML content (no escaping), wrapped into an extra div. May specify `attr` and `cssClass` to be added onto the containing div.

```

formItems:
  - type: html
    html: 'This will not go through any HTML escaping.'
    cssClass: added-on-wrapping-div
```

#### Type "breakLine"

[](#type-breakline)

Inserts a single HTML `` element. Supports adding free-form HTML attributes via `attr` object and custom `cssClass`.

Configuring access
------------------

[](#configuring-access)

Each schema may also limit the possible interactions users can perform:

nametypedescriptiondefaultallowCreatebooleanEnables creation of new itemstrueallowEditbooleanEnables editing of existing itemstrueallowDeletebooleanEnables deletion of existing itemstrueallowRefreshbooleanAdd button to explicitly reload items from databasefalseExample configuration
---------------------

[](#example-configuration)

```
schemes:
  a_demo_schema:
    label: Demo   # displayed in schema selector, if multiple schemes configured
    dataStore:
      connection: dm_connection_name
      table: dm_items
      uniqueId: id
    allowEdit:    true    # Can edit existing items
    allowCreate:  true    # Can create new items from scratch
    allowDelete:  false   # Can not delete anything
    allowRefresh: true    # Enable item refresh button
    table:
      columns:
      - data: id
        title: ID
      - data: name
        title: Item name
    popup:
      title: 'Edit dialog title'
      width: 50vw   # half screen width
    formItems:
    - type: p
      text: This is a non-interactive introductory paragraph.
    - type: input
      name: name
      infoText: This will show up in a tooltip next to the label.
      title: Item name
      attr:
        placeholder: 'Entry required'
        required: true
    - type: textArea
      name: description
      title: Longer description text
      attr:
        rows: 4
    - type: radioGroup
      title: Choose one
      name: choice_column_1
      options:
        - label: Option 1
          value: v1
        - label: Option 2
          value: v2
      value: v2   # Pre-select second option by default for new items
    - type: select
      title: Select at least one (multiple choice)
      attr:
        required: required
        multiple: multiple
      name: choice_column_2
      options:
        - label: Option 1
          value: v1
        - label: Option 2 (disabled)
          value: v2
          attr:
            disabled: disabled
        - label: Option 3
          value: v3
      value: v1,v3   # use comma-separated values for default multi-select value
```

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance7

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 91% 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 ~49 days

Recently: every ~5 days

Total

50

Last Release

1313d ago

Major Versions

1.2.5 → 2.0.32021-12-08

1.2.6 → 2.0.42022-01-28

1.2.7 → 2.0.52022-09-20

1.2.8 → 2.0.62022-11-09

1.2.9 → 2.0.72022-11-11

### Community

Maintainers

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

![](https://www.gravatar.com/avatar/0154eb5bdfa738d2bbc95bb345ba5f971d9395a2318f8724e42fa3bd384ae9c2?d=identicon)[LazerTiberius](/maintainers/LazerTiberius)

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

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

![](https://avatars.githubusercontent.com/u/44997160?v=4)[Felix Rauch](/maintainers/frwg)[@frwg](https://github.com/frwg)

---

Top Contributors

[![werrolf](https://avatars.githubusercontent.com/u/24895932?v=4)](https://github.com/werrolf "werrolf (456 commits)")[![eSlider](https://avatars.githubusercontent.com/u/1188335?v=4)](https://github.com/eSlider "eSlider (24 commits)")[![frwg](https://avatars.githubusercontent.com/u/44997160?v=4)](https://github.com/frwg "frwg (15 commits)")[![astroidex](https://avatars.githubusercontent.com/u/996298?v=4)](https://github.com/astroidex "astroidex (3 commits)")[![DavidPatzke](https://avatars.githubusercontent.com/u/5700151?v=4)](https://github.com/DavidPatzke "DavidPatzke (2 commits)")[![Phocacius](https://avatars.githubusercontent.com/u/3438255?v=4)](https://github.com/Phocacius "Phocacius (1 commits)")

---

Tags

datamapbenderData Manager

### Embed Badge

![Health badge](/badges/mapbender-data-manager/health.svg)

```
[![Health](https://phpackages.com/badges/mapbender-data-manager/health.svg)](https://phpackages.com/packages/mapbender-data-manager)
```

###  Alternatives

[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M508](/packages/pimcore-pimcore)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M203](/packages/sulu-sulu)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)[oro/platform

Business Application Platform (BAP)

645143.5k115](/packages/oro-platform)[codefog/contao-haste

haste extension for Contao Open Source CMS

46676.5k171](/packages/codefog-contao-haste)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)

PHPackages © 2026

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