PHPackages                             ddoe/wysiwyg-editor-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. ddoe/wysiwyg-editor-module

ActiveOxideshop-module[Utility &amp; Helpers](/categories/utility)

ddoe/wysiwyg-editor-module
==========================

Summernote WYSIWYG Editor for OXID eShop.

v6.0.1(6mo ago)19981.7k—4.6%17[1 PRs](https://github.com/OXID-eSales/ddoe-wysiwyg-editor-module/pulls)2proprietaryPHPPHP &gt;=8.2CI passing

Since Jul 24Pushed 1mo ago13 watchersCompare

[ Source](https://github.com/OXID-eSales/ddoe-wysiwyg-editor-module)[ Packagist](https://packagist.org/packages/ddoe/wysiwyg-editor-module)[ Docs](https://www.oxid-esales.com/)[ RSS](/packages/ddoe-wysiwyg-editor-module/feed)WikiDiscussions b-7.5.x Synced 1mo ago

READMEChangelogDependencies (15)Versions (37)Used By (2)

Summernote WYSIWYG Editor for OXID eShop
========================================

[](#summernote-wysiwyg-editor-for-oxid-eshop)

[![Development](https://github.com/OXID-eSales/ddoe-wysiwyg-editor-module/actions/workflows/trigger.yaml/badge.svg?branch=b-7.5.x)](https://github.com/OXID-eSales/ddoe-wysiwyg-editor-module/actions/workflows/trigger.yaml)[![Latest Version](https://camo.githubusercontent.com/5b74271f460d1a3f240b9e1c56af5fc4f1815996a1b235788f084722dcf7c060/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f64646f652f777973697779672d656469746f722d6d6f64756c653f6c6f676f3d636f6d706f736572266c6162656c3d6c617465737426696e636c7564655f70726572656c656173657326636f6c6f723d6f72616e6765)](https://packagist.org/packages/ddoe/wysiwyg-editor-module)[![PHP Version](https://camo.githubusercontent.com/f37bab115ff8bf57a033e478489a710ce0ae6e327305868a880a3281475141af/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f64646f652f777973697779672d656469746f722d6d6f64756c65)](https://github.com/OXID-eSales/ddoe-wysiwyg-editor-module)

[![Quality Gate Status](https://camo.githubusercontent.com/ca0c247cf12423ee6a7f456e4a5702205cac03a62fc8eb7f2381af252b4d400c/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4f5849442d6553616c65735f64646f652d777973697779672d656469746f722d6d6f64756c65266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/dashboard?id=OXID-eSales_ddoe-wysiwyg-editor-module)[![Coverage](https://camo.githubusercontent.com/cea30c3fc722d61b05e8120fcba94c7098b346dbd3b0588c8c5a2f684a400fe4/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4f5849442d6553616c65735f64646f652d777973697779672d656469746f722d6d6f64756c65266d65747269633d636f766572616765)](https://sonarcloud.io/dashboard?id=OXID-eSales_ddoe-wysiwyg-editor-module)[![Technical Debt](https://camo.githubusercontent.com/4480fc3404f7eaa5f3968dcbfc7b39df624817d0efe2ce9932e678412f09d3a8/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d4f5849442d6553616c65735f64646f652d777973697779672d656469746f722d6d6f64756c65266d65747269633d7371616c655f696e646578)](https://sonarcloud.io/dashboard?id=OXID-eSales_ddoe-wysiwyg-editor-module)

Compatibility
=============

[](#compatibility)

### Versions

[](#versions)

- versions `7.0.x` - compatible with OXID eShop compilation 7.5.x and higher
- versions `6.0.x` - compatible with OXID eShop compilation 7.4.x and higher
- versions `5.0.x` - compatible with OXID eShop compilation 7.3.x and higher
- versions `4.2.x` - compatible with OXID eShop compilation 7.2.x and higher
- versions `4.0.x - 4.1.x` - compatible with OXID eShop compilation 7.1.x
- versions `3.x` - compatible with OXID eShop compilation 7.0.x
- versions `2.x` - compatible with OXID eShop compilation 6.0.x - 6.5.x

### Branches

[](#branches)

- `b-7.5.x` is compatible with OXID eShop b-7.5.x branch
- `b-7.4.x` is compatible with OXID eShop b-7.4.x branch
- `b-7.3.x` is compatible with OXID eShop b-7.3.x branch
- `b-7.2.x` is compatible with OXID eShop b-7.2.x branch
- `b-7.1.x` is compatible with OXID eShop b-7.1.x branch, works with **Twig engine** only from here on
- `b-7.0.x` is compatible with OXID eShop b-7.0.x branch and supports **Legacy Smarty engine**
- `b-2.x` is compatible with OXID eShop compilations: 6.2.x - 6.5.x

### Module installation via composer

[](#module-installation-via-composer)

In order to install the module via composer run one of the following commands in commandline in your shop base directory (where the shop's composer.json file resides).

- `composer require ddoe/wysiwyg-editor-module:^7.0.0`to install the released version compatible with OXID eShop v7.5.x
- `composer require ddoe/wysiwyg-editor-module:dev-b-7.5.x`to install the specific unreleased branch

### Module activation in OXID eShop Admin

[](#module-activation-in-oxid-eshop-admin)

After installation, please, activate the module in OXID eShop Admin `EXTENSIONS -> Modules -> "Summernote WYSIWYG Editor for OXID eShop" -> Activate`

Development installation
========================

[](#development-installation)

The installation instructions below are shown for the current [SDK](https://github.com/OXID-eSales/docker-eshop-sdk)for shop 7.5. Make sure your system meets the requirements of the SDK.

1. Ensure all docker containers are down to avoid port conflicts
2. Clone the SDK for the new project

```
echo MyProject && git clone https://github.com/OXID-eSales/docker-eshop-sdk.git $_ && cd $_
```

2. Clone the repository to the source directory

```
git clone --recurse-submodules https://github.com/OXID-eSales/ddoe-wysiwyg-editor-module.git --branch=b-7.5.x ./source
```

3. Run the recipe to setup the development environment

```
./source/recipes/setup-development.sh
```

You should be able to access the shop via

- Frontend
- Admin Panel:
    - (credentials:  / admin)

### Running the tests and quality tools

[](#running-the-tests-and-quality-tools)

Check the "scripts" section in the `composer.json` file for the available commands. Those commands can be executed by connecting to the php container and running the command from there, example:

```
make php
composer tests-coverage
```

Commands can be also triggered directly on the container with docker compose, example:

```
docker compose exec -T php composer tests-coverage
```

Rebuilding the assets
---------------------

[](#rebuilding-the-assets)

To rebuild the assets, latest node docker container can be used. The one is pulled automatically if you are using the installation method from the previous section. What is left - connect to the container, install the npm dependencies and run the assets building process

```
make node
```

Navigate to the module directory and run:

```
npm install
npm run build
```

Alternatively, if you're actively developing and want changes to be applied automatically, you can enable watch mode:

```
npm run watch
```

Migration
---------

[](#migration)

Besides running the usual migrations process, there are some addition actions that may differ by project.

### Media paths to IDs

[](#media-paths-to-ids)

The command `ddoewysiwyg:migrate:urls-to-ids tableName fieldName tableIdKey` migrates hardcoded media paths inserted by earlier version of MediaLibrary to Media object ID's. It takes the `tableName`, `fieldName`, and the `tableIdKey` field as params.

Example use:

```
vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxartextends OXLONGDESC
vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxartextends OXLONGDESC_1
vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcategories OXDESC
vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcategories OXDESC_1
vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcontents OXCONTENT
vendor/bin/oe-console ddoewysiwyg:migrate:urls-to-ids oxcontents OXCONTENT_1

```

Ensure all fields for which the WYSIWYG editor is used are migrated.

### Media alt texts

[](#media-alt-texts)

The command `ddoewysiwyg:migrate:alt-texts tableName fieldName tableIdKey` adds `oeMediaAlt` placeholders to media image `alt` attributes. This enables media alt texts managed in the Media Library to be rendered automatically in the frontend. It should be run after the `ddoewysiwyg:migrate:urls-to-ids` migration, as it relies on the `data-id` attribute being present on media image tags.

The command handles the following cases:

- Empty or missing `alt` attribute: replaced with the `oeMediaAlt` placeholder
- Already migrated (`oeMediaAlt` placeholder present): skipped
- Custom alt text written manually: **not modified**, but listed in the command output for manual review

Example use:

```
vendor/bin/oe-console ddoewysiwyg:migrate:alt-texts oxartextends OXLONGDESC
vendor/bin/oe-console ddoewysiwyg:migrate:alt-texts oxartextends OXLONGDESC_1
vendor/bin/oe-console ddoewysiwyg:migrate:alt-texts oxcontents OXCONTENT
vendor/bin/oe-console ddoewysiwyg:migrate:alt-texts oxcontents OXCONTENT_1

```

If any media images have custom alt text, the command will output them:

```
Warning: The following media images have custom alt text that was NOT modified:

  [OXID=abc123] media-id="68cab835a253c" alt="My product photo"

Please review these entries and update alt texts manually if needed.

```

Bugs and Issues
---------------

[](#bugs-and-issues)

If you experience any bugs or issues, please report them in the section **WYSIWYG Editor + Media Gallery** of .

###  Health Score

66

—

FairBetter than 99% of packages

Maintenance80

Actively maintained with recent releases

Popularity50

Moderate usage in the ecosystem

Community31

Small or concentrated contributor base

Maturity87

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 58.2% 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 ~159 days

Recently: every ~98 days

Total

20

Last Release

190d ago

Major Versions

v1.0.0 → v2.0.02017-11-14

v2.4.2 → v3.0.02023-05-09

v3.0.2 → v4.0.02024-03-12

v4.2.0 → v5.0.02025-04-10

v5.0.1 → v6.0.02025-10-16

PHP version history (4 changes)v1.0.0PHP &gt;=5.6

v3.0.0PHP &gt;=8.0

v4.0.0PHP ^8.1

v4.2.0PHP &gt;=8.2

### Community

Maintainers

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

---

Top Contributors

[![Sieg](https://avatars.githubusercontent.com/u/98882?v=4)](https://github.com/Sieg "Sieg (196 commits)")[![RahatHameed](https://avatars.githubusercontent.com/u/11661532?v=4)](https://github.com/RahatHameed "RahatHameed (27 commits)")[![NikolaIvanovski](https://avatars.githubusercontent.com/u/8055347?v=4)](https://github.com/NikolaIvanovski "NikolaIvanovski (17 commits)")[![TitaKoleva](https://avatars.githubusercontent.com/u/22682166?v=4)](https://github.com/TitaKoleva "TitaKoleva (16 commits)")[![tkcreateit](https://avatars.githubusercontent.com/u/42207462?v=4)](https://github.com/tkcreateit "tkcreateit (14 commits)")[![robertblank](https://avatars.githubusercontent.com/u/7868142?v=4)](https://github.com/robertblank "robertblank (11 commits)")[![hkreuter](https://avatars.githubusercontent.com/u/3692295?v=4)](https://github.com/hkreuter "hkreuter (9 commits)")[![MarcelOxid](https://avatars.githubusercontent.com/u/98812941?v=4)](https://github.com/MarcelOxid "MarcelOxid (9 commits)")[![pclaisse](https://avatars.githubusercontent.com/u/1215834?v=4)](https://github.com/pclaisse "pclaisse (5 commits)")[![kenariosz](https://avatars.githubusercontent.com/u/2828175?v=4)](https://github.com/kenariosz "kenariosz (5 commits)")[![a-afsharfarnia](https://avatars.githubusercontent.com/u/54709809?v=4)](https://github.com/a-afsharfarnia "a-afsharfarnia (4 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (4 commits)")[![MantasVaitkunas](https://avatars.githubusercontent.com/u/623436?v=4)](https://github.com/MantasVaitkunas "MantasVaitkunas (3 commits)")[![angel-dimitrov](https://avatars.githubusercontent.com/u/12593227?v=4)](https://github.com/angel-dimitrov "angel-dimitrov (3 commits)")[![sebbbbauer](https://avatars.githubusercontent.com/u/1807282?v=4)](https://github.com/sebbbbauer "sebbbbauer (3 commits)")[![liulka-oxid](https://avatars.githubusercontent.com/u/56023474?v=4)](https://github.com/liulka-oxid "liulka-oxid (2 commits)")[![vilmal](https://avatars.githubusercontent.com/u/3765393?v=4)](https://github.com/vilmal "vilmal (1 commits)")[![AlfonsMartin](https://avatars.githubusercontent.com/u/35966734?v=4)](https://github.com/AlfonsMartin "AlfonsMartin (1 commits)")[![BenjaminJoerger](https://avatars.githubusercontent.com/u/3601583?v=4)](https://github.com/BenjaminJoerger "BenjaminJoerger (1 commits)")[![DixDir](https://avatars.githubusercontent.com/u/8233104?v=4)](https://github.com/DixDir "DixDir (1 commits)")

---

Tags

oxid-eshopoxid-modulephpwysiwyg-editorOXIDmoduleseditorwysiwygeshopsummernote

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ddoe-wysiwyg-editor-module/health.svg)

```
[![Health](https://phpackages.com/badges/ddoe-wysiwyg-editor-module/health.svg)](https://phpackages.com/packages/ddoe-wysiwyg-editor-module)
```

###  Alternatives

[oxid-esales/gdpr-optin-module

This is the GDPR opt-in module for the OXID eShop.

20459.1k2](/packages/oxid-esales-gdpr-optin-module)

PHPackages © 2026

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