Textänderungen
In vielen Fällen sind auch Textänderungen der Grund für Änderungen im Frontend. Soll beispielsweise anstelle der Bestellen Schaltfläche in Zukunft ein Kostenpflichtig bestellen stehen, waren früher immer Eingrife in das .cshtml notwendig und die Erweiterbarkeit des Shops war an dieser Stelle blockiert.
Wir haben deshalb begonnen die Fixtexte durch Aufrufe in eine Texttabelle zu ersetzen, die in der Admin über /Seiten/Benutzerinterface gepflegt werden kann. Damit der entsprechende Button einen anderen Text bekommt, kann die ID /CHECKOUT/REVIEW/BESTELLENBUTTON in der Admin umdefiniert werden.
Um die verbaren Text-Ids zu sehen, kann der Shop mit dem Parameter showtextid gestartet werden. Anstelle der Texte werden dann die notwendigen IDs angezeigt.
Bitte beachten, dass die Umstellung auf Text-Ids kontinuierlich erfolgt und noch nicht abgeschlossen ist. Ein Blick in die .cshtml Datei bringt sofort Gewissheit. Sind dort Aufrufe von @Model.state.TextPart() vorhanden, dann ist diese View bereits auf das per Admin änderbare Benutzerinterface umgestellt.
Konfigurierbare Texte in eigenen Views
Sollten in den Views die oben beschriebene Technik verwendet werden, dann sollten anstelle von fixen Texten der folgende Term eingesetzt werden
@Model.state.TextPart("/Controllername/Viewname/Elementname", "Standardtext")
Der Term kann an jeder Stelle des HTML Codes stehen, d.h. sowohl als sichtbarer Text oder auch als Teil von Javascript-Code, Klassennamen, etc.
<button>@Model.state.TextPart("/Konto/Authenticate/Upload", "Dokument-Upload")</button>
<button class="btn @Model.state.TextPart("/Checkout/Checkout/PayClass", "")">Kauf starten</button>
Mit dem zweiten Beispiel kann über den ID /Checkout/Checkout/PayClass dem Kaufen Button eine zusätzliche CSS Klasse über die Admin ergänzbar gemacht werden.
Die Form der IDs /Controllername/Viewname/Elementname wird von unserem Team verwendet, kann aber theoretisch auch anders verwendet werden. Werden Kundenprojekt-spezifische Implementierungen von Standard-Views gebaut, sollten aber immer die IDs der Referenzimplementierung verwendet werden.