承接 proudcommerce/salutation 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

proudcommerce/salutation

Composer 安装命令:

composer require proudcommerce/salutation

包简介

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

README 文档

README

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

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

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)

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-<select> einhängt und sie bei gespeichertem Wert DIV selektiert.

Template Block Feld
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)

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 DIVinklusive 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/<lang>/… fürs Frontend, Application/views/admin/<lang>/… fürs Backend) und liefert so das Auswahl-Label in den Anrede-Dropdowns.

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

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

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 <http://www.gnu.org/licenses/>.

Copyright

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

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2026-07-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固