Download the PHP package iperson1337/opendxp-tag-management-bundle without Composer
On this page you can find all versions of the php package iperson1337/opendxp-tag-management-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package opendxp-tag-management-bundle
OpenDXP Tag Management Bundle
Tag analytics for the OpenDXP classic admin: which tags exist, how many DataObjects carry each of them (with a per-class breakdown), which objects carry any / all of the selected tags — and a CSV / XLSX export of that list.
What it does:
- "Tags" entry in the main navigation (left bar) for users holding the configured permission
(
tags_search— a core permission, nothing to install). Opens a Tags tab. - Tag grid (left): hierarchical name path (
Parent / Child), number of objects, compact breakdown by class (Product 15 · Brand 7, full list in the tooltip). Search by name (case-insensitive), filter by object class (only tags used by that class, counts restricted to it), server-side sort by name or usage, paging. - Object grid (right): follows the tick marks in the tag grid automatically. Any tag / All tags switch, the selected tags as removable chips, total count, server-side sort on every column, paging, type / published icons, double-click (or the row button) opens the object. Selection survives paging, searching and re-filtering of the tag grid.
- Export (button menu): CSV (UTF-8 BOM,
;delimiter — opens cleanly in Excel with Cyrillic locales) or XLSX (bold frozen header, auto-filter). Streams in batches up toexport.max_rows; cells starting with=,+,-,@, TAB or CR are apostrophe-prefixed against spreadsheet formula injection.
Scope: DataObject assignments only (tags_assignment.ctype = 'object'); assets and documents
are not counted. A tag's count is its own assignments — child tags are not rolled up.
Requirements
- OpenDXP
^1.0with the classic admin bundle (open-dxp/admin-bundle), PHP 8.3. phpoffice/phpspreadsheetfor the XLSX export (declared as a dependency).
Installation
config/bundles.php:
Then:
Routes (config/opendxp/routing.yaml) are picked up automatically by OpenDXP's bundle routing
loader; no entry in the application's config/routes.yaml is needed. No installer, no database
changes: the bundle only reads the core tags / tags_assignment / objects tables.
Grant the tags_search permission (Settings → Users) to every non-admin user who should see the
tab — or point permission at any other permission key you already use.
Configuration
Every key has a default, so the bundle runs without any config/packages/*.yaml. Reference:
Admin API
All endpoints are GET, sit behind the admin firewall and the configured permission
(403 otherwise), and answer {"success": true, ...}.
| Route | Purpose | Parameters |
|---|---|---|
/admin/tag-management/tags |
tags with usage statistics | search, className, orderBy (name|usageCount), orderDirection, limit, offset |
/admin/tag-management/objects |
objects carrying the tags | tagIds (comma-separated, required), matchMode (all|any), className, orderBy (id|key|path|className|published|updatedAt), orderDirection, limit, offset |
/admin/tag-management/export |
same filter, as a file | as /objects plus format (csv|xlsx) |
Unknown values fall back to the defaults instead of failing; limit is clamped to
[1, max_page_size].
Adding an export format
Implement Service\Export\ExporterInterface (format name, content type, extension, write() into
a stream). Services implementing the interface are tagged automatically
(iperson1337.opendxp_tag_management.exporter) and picked up by ExporterRegistry; the new format
appears in the admin export menu on the next page load (exportFormats in
opendxp.settings.tagManagement).
Layout
Testing
Pure unit tests, no OpenDXP kernel or database needed:
License
MIT.
All versions of opendxp-tag-management-bundle with dependencies
doctrine/dbal Version ^3.6 || ^4.0
open-dxp/admin-bundle Version ^1.0
open-dxp/opendxp Version ^1.0
phpoffice/phpspreadsheet Version ^1.29 || ^2.0 || ^3.0 || ^4.0 || ^5.0
symfony/config Version ^7.4
symfony/dependency-injection Version ^7.4
symfony/event-dispatcher Version ^7.4
symfony/framework-bundle Version ^7.4
symfony/http-foundation Version ^7.4
symfony/routing Version ^7.4