PHPackages                             proudcommerce/salutation - 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. proudcommerce/salutation

ActiveOxideshop-module

proudcommerce/salutation
========================

Ergänzt die Anrede um die Option "Divers" (OXSAL = DIV) in Frontend und Backend.

00PHP

Since Jul 1Pushed todayCompare

[ Source](https://github.com/proudcommerce/pcSalutation)[ Packagist](https://packagist.org/packages/proudcommerce/salutation)[ RSS](/packages/proudcommerce-salutation/feed)WikiDiscussions main Synced today

READMEChangelog (1)DependenciesVersions (1)Used By (0)

pcSalutation
============

[](#pcsalutation)

Ergänzt die Kunden-Anrede um die Option **„Divers"** (interner `OXSAL`-Code `DIV`, neben `MR`/`MRS`) – in Frontend und Backend, **update-sicher** und ohne Core-Dateien zu verändern.

Plugin für OXID eShop 6.

Hintergrund
-----------

[](#hintergrund)

Rechtlicher Auslöser: das AGG (§§ 1, 3, 19, 21) i. V. m. dem Beschluss des Bundesverfassungsgerichts vom 10.10.2017 (1 BvR 2019/16, „drittes Geschlecht"). Online-Shops sollten entweder auf die verpflichtende Anrede-Abfrage verzichten oder eine dritte Option „divers" anbieten.

Funktionsweise
--------------

[](#funktionsweise)

Die OXID-Standard-Templates verdrahten in den Anrede-Auswahlen fest nur `MR`/`MRS`. Da sowohl die Core-Admin-Templates (`Application/views/admin`) als auch die Core-Sprachdateien über Composer ausgeliefert und bei jedem Update zurückgesetzt werden, dürfen sie nicht direkt editiert werden. Das Modul löst das ausschließlich über Modul-Mechanismen (`blocks`, `templates`, Modul-Sprachdateien).

### Backend (alle Themes)

[](#backend-alle-themes)

Erweiterung der vier betroffenen Admin-Masken über Smarty-Blocks. Der jeweilige Block rendert per `[{$smarty.block.parent}]` das Original und bindet ein gemeinsames Partial ein, das die `DIV`-Option per JavaScript in den vorhandenen Anrede-`` einhängt und sie bei gespeichertem Wert `DIV` selektiert.

TemplateBlockFeld`user_main.tpl``admin_user_main_form``oxuser__oxsal``user_address.tpl``admin_user_address_form``oxaddress__oxsal``order_address.tpl``admin_order_address_billing``oxorder__oxbillsal``order_address.tpl``admin_order_address_delivery``oxorder__oxdelsal`> **Warum auch im Backend nötig?** Ohne die Option würde ein Speichern im Backend einen als „Divers" angelegten Datensatz auf den ersten Auswahlwert (`MR`) zurücksetzen.

### Frontend (Standard-Themes wave/flow)

[](#frontend-standard-themes-waveflow)

Die ausgelieferte `form/fieldset/salutation.tpl` der Themes wave/flow rendert die Anrede-Optionen innerhalb des Smarty-Blocks `salutation_options`. Das Modul überschreibt diesen Block **theme-scoped** (`theme => wave|flow`), rendert per `[{$smarty.block.parent}]` die Original-Optionen (`MR`/`MRS`) und ergänzt serverseitig die Option `DIV` – **inklusive korrekter Vorselektion** bei gespeichertem Wert `DIV` (analog zur OXID-Standardlogik `$value`/`$value2`). Da alle Anrede-Formulare (Kontakt, Newsletter, Rechnungs- und Lieferadresse, Konto) dieses Fieldset einbinden, genügt **ein einziger Block-Override je Theme**. Die Theme-Bindung stellt sicher, dass ein **eigenes Theme nicht berührt** wird – dort pflegt man die Anrede im Theme selbst.

Die Übersetzung des Codes `DIV` → „Divers"/„Diverse" liegt in den Modul-Sprachdateien (`Application/translations//…` fürs Frontend, `Application/views/admin//…` fürs Backend) und liefert so das Auswahl-Label in den Anrede-Dropdowns.

### Ausgabe der Anrede (Mails, Adressen, Listen)

[](#ausgabe-der-anrede-mails-adressen-listen)

Rechtlich soll für „Divers" **keine Anrede** ausgegeben werden. Die OXID-Standard-Ausgabe verwendet dafür überall den Smarty-Modifier `|oxmultilangsal` – an rund 48 Stellen (Datei-Templates **und** CMS-Mail-Contents in der Datenbank). Statt jede Stelle einzeln zu patchen (Fleißarbeit, muss auf jeder Umgebung nachgezogen werden), überschreibt das Modul den Modifier **zentral und update-sicher**:

- Registriert via `metadata.php` (`smartyPluginDirectories`) ein modul-eigenes `Smarty/Plugin/modifier.oxmultilangsal.php`. OXID stellt Modul-Smarty-Plugins den Core-Plugins voran (`UtilsView::_fillCommonSmartyProperties`), wodurch das Core-Plugin überschrieben wird – ohne Core-Dateien zu ändern.
- **Kundenkontext** (Mails, Rechnungs-/Lieferadressen, Bestätigungen): Nur echte Anreden (`MR`/`MRS`) werden übersetzt; `DIV`, leere und unbekannte Werte liefern einen leeren String → keine Anrede.
- **Adminbereich** (`$oLang->isAdmin()`): Es wird weiterhin normal übersetzt (`DIV` → „Divers"), damit „Divers"-Kunden in den Backend-Übersichten (oxuser/oxorder) erkennbar bleiben.

So greift die Regel „Divers = keine Anrede" an allen Ausgabestellen gleichzeitig, ohne einzelne Templates oder CMS-Inhalte zu editieren.

Installation
------------

[](#installation)

```
composer require proudcommerce/salutation
vendor/bin/oe-console oe:module:install-configuration source/modules/pc/salutation
vendor/bin/oe-console oe:module:activate pcSalutation
```

Anschließend den Template-/Sprach-Cache leeren (`source/tmp`).

License
-------

[](#license)

```
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see .

```

Copyright
---------

[](#copyright)

```
Proud Commerce GmbH | 2026
https://www.proudcommerce.com

```

###  Health Score

20

↑

LowBetter than 13% of packages

Maintenance65

Regular maintenance activity

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

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.

### Community

Maintainers

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

### Embed Badge

![Health badge](/badges/proudcommerce-salutation/health.svg)

```
[![Health](https://phpackages.com/badges/proudcommerce-salutation/health.svg)](https://phpackages.com/packages/proudcommerce-salutation)
```

PHPackages © 2026

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