PHPackages                             thomas-keil/dynamic-dropdown - 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. thomas-keil/dynamic-dropdown

ActivePimcore-plugin

thomas-keil/dynamic-dropdown
============================

Populate Comboboxes with Object content of a selected folder

0.9.3(9y ago)105098[8 issues](https://github.com/ThomasKeil/pimcore-plugin-DynamicDropdown/issues)JavaScript

Since Nov 24Pushed 8y ago4 watchersCompare

[ Source](https://github.com/ThomasKeil/pimcore-plugin-DynamicDropdown)[ Packagist](https://packagist.org/packages/thomas-keil/dynamic-dropdown)[ Docs](https://github.com/ThomasKeil/pimcore-plugin-DynamicDropdown)[ RSS](/packages/thomas-keil-dynamic-dropdown/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

Pimcore - Dynamic Dropdown
==========================

[](#pimcore---dynamic-dropdown)

[![License](https://camo.githubusercontent.com/f9860c0965f95ee0077e7e887f3526d51f3662b2db89811107f4d8fbdfb6bc8a/68747470733a2f2f706f7365722e707567782e6f72672f74686f6d61732d6b65696c2f64796e616d69632d64726f70646f776e2f6c6963656e7365)](https://packagist.org/packages/thomas-keil/dynamic-dropdown) [![Latest Stable Version](https://camo.githubusercontent.com/2283c59f09c86c83e6ec179b82763434a87cf56f726abe67ae59624fc8d53d1e/68747470733a2f2f706f7365722e707567782e6f72672f74686f6d61732d6b65696c2f64796e616d69632d64726f70646f776e2f762f737461626c65)](https://packagist.org/packages/thomas-keil/dynamic-dropdown)

Dynamic Dropdown allows you to populate pimcore input fields with the content of other objcts.

[![Interface](docs/DynamicDropdown.png)](docs/DynamicDropdown.png)

Getting started
---------------

[](#getting-started)

- Download Plugin and place it in your plugins directory
- Open Extension Manager in Pimcore and enable/install Plugin
- After Installation within Pimcore Extension Manager, you have to reload Pimcore

or install it via composer on an existing pimcore installation

```
composer require thomas-keil/dynamic-dropdown

```

Configuring
-----------

[](#configuring)

The plugin doesn't require any configuration but provides several input elements. These input fields can be configured like any other of pimcore's input elements.

Usage
-----

[](#usage)

The plugin extends pimcores class data compent menu in the section "Select". Four new elements can be used:

- Dynamic Dropdown: a single select dropdown menu [![Single select example](docs/singleselect_example.png)](docs/singleselect_example.png)
- Dynamic Dropdown (multiselect): a box with several items to select. Select one by clicking it, all other will be deselected. Hold the CTRL-key while clicking to add the item without deselecting the others. [![Multiselect example](docs/multiselect_example.png)](docs/multiselect_example.png)
- Itemselector: the items are displayed in two columns, on the left are the available (or remaining) items, on the right are the selected ones. Transfer to the other column by doubleclicking or using the left/right arrow button. Up/down arrow buttons arrange the order. [![Itemselector example](docs/itemselector_example.png)](docs/itemselector_example.png)
- Superbox Select: Like a "tag field". Select one item and it get's displayed, click the little "x" next to it to remove it. [![Superbox Select example](docs/superboxselect_example.png)](docs/superboxselect_example.png)

### Options

[](#options)

The options for all input elements are the same, only the way the information is presented differes.

[![Options](docs/options.png)](docs/options.png)

Following options need to be set:

- Width: the width of input element
- Parent ID: the path to the folder containing the source objects. You can use drag&amp;drop
- Recursive: check this if objects in subfolders shall be used as well
- Unpublished selectable: usually unpublished objects will be displayed in the item list, but be of a grey color and unselectable. Check this if you want unpublished objects to be selectable. This option is currently only used by the single select dropdown!
- Sort by: either "Value" or "Id". By value is alphabetically ascending, by Id is numerically ascending by pimcore's object id.
- Allowed classes: the object class, that provides the data. Only objects of this class we be considered, all others will be ignored.
- Method: the method that provides the data. The possible methods are extracted from the class definition of the source class.

### Dynamic Dropdown

[](#dynamic-dropdown)

[![Dynamic Dropdown](docs/datacomponent_dynamicdropdown.png)](docs/datacomponent_dynamicdropdown.png)

The Dynamic Dropdown is the "classic" version of the provided input elements: a dropdown input field (ExtJS: Combobox). Every option is provided by an object in a configured folder, by a configured method. The folder can have nested subfolders, but only one type of object class can provide the data.

This input element extends pimcore's [href](https://www.pimcore.org/docs/latest/Objects/Object_Classes/Data_Types/Relation_Types.html) element. Programatically, you can set it's value with the API like you'd do with a href.

### Dynamic Dropdown (multiselect)

[](#dynamic-dropdown-multiselect)

The multiselect Dynamic Dropdown is like the single select version, but you can select more than one item. It uses [ExtJS' UX MultiSelect](http://docs.sencha.com/extjs/6.0.2/classic/Ext.ux.form.MultiSelect.html). It extends pimcore's multiselection. Setting it with the API is like working with a multiselection.

### Itemselector

[](#itemselector)

The Itemselector is like the Multiselect, but uses the [ItemSelector](http://docs.sencha.com/extjs/6.0.2/classic/Ext.ux.form.ItemSelector.html)as UI element.

### SuperboxSelect

[](#superboxselect)

The SuperboxSelect is like the Multiselect, but uses the [TagField](http://docs.sencha.com/extjs/6.0.2/classic/Ext.form.field.Tag.html)as UI element.

Example
-------

[](#example)

```
use Pimcore\Model\Object;

$myHrefElement = Document::getById(23);
$myOtherHrefElement = Document::getById(23);

$myMultihrefElements[] = $myHrefElement;
$myMultihrefElements[] = $myOtherHrefElement;

$myObjectsElements[] = Object\Product::getById(98);
$myObjectsElements[] = Object\Product::getById(99);

$object->setDynamicDropdown($myHrefElement);
$object->setDynamicDropdownMultiple($myMultihrefElements);
$object->setItemselector($myMultihrefElements);
$object->setSuperboxSelect($myMultihrefElements);

$object->save();

```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance4

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.8% 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 ~24 days

Total

2

Last Release

3427d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/965bba97bac6bc4093543962fc1b38fee8b46438cda15afe98bb1ce96a3326f4?d=identicon)[ThomasKeil](/maintainers/ThomasKeil)

---

Top Contributors

[![ThomasKeil](https://avatars.githubusercontent.com/u/1055202?v=4)](https://github.com/ThomasKeil "ThomasKeil (61 commits)")[![brusch](https://avatars.githubusercontent.com/u/142037?v=4)](https://github.com/brusch "brusch (1 commits)")[![chrisjung-dev](https://avatars.githubusercontent.com/u/209926?v=4)](https://github.com/chrisjung-dev "chrisjung-dev (1 commits)")

---

Tags

pluginpimcoreDynamic Dropbox Module

### Embed Badge

![Health badge](/badges/thomas-keil-dynamic-dropdown/health.svg)

```
[![Health](https://phpackages.com/badges/thomas-keil-dynamic-dropdown/health.svg)](https://phpackages.com/packages/thomas-keil-dynamic-dropdown)
```

###  Alternatives

[10up/elasticpress

Supercharge WordPress with Elasticsearch.

1.3k374.3k6](/packages/10up-elasticpress)[offline/oc-mall-plugin

E-commerce solution for October CMS

1744.6k2](/packages/offline-oc-mall-plugin)

PHPackages © 2026

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