2017-09-12 8 views
2

Je souhaite améliorer l'expérience de l'éditeur et la rendre plus agréable visuellement lorsque je remplis du contenu sur une page (dans toutes les propriétés). Pourrait être un simple diviseur ou un titre ..Comment puis-je séparer visuellement les propriétés d'un EPiServer ContentType?

Je suis déjà en utilisant des onglets, chaque fois que cela a du sens. En outre, j'ai expérimenté avec l'utilisation de blocs en tant que propriétés. Cela ajoute une bonne séparation avec un en-tête clair, mais c'est tellement plus de code à maintenir et un peu de désordre pour être honnête quand les propriétés appartiennent vraiment au type de page.

Répondre

3

Dès le début, il n'est pas possible de décorer les propriétés avec les titres, sauf si vous utilisez des propriétés de bloc, comme vous l'avez mentionné.

Cependant, je pensais que votre question était assez intéressante, et j'ai découvert qu'étendre Episerver pour accommoder ce comportement est étonnamment facile. J'ai écrit un exemple de solution, que vous pouvez utiliser comme bon vous semble: https://arlc.dk/grouping-properties-with-headlines-without-property-blocks. Si vous n'aimez pas la solution, une approche alternative serait d'introduire votre propre type de propriété (Titre), et de créer un 1) un dojo-widget personnalisé pour afficher simplement un titre, et 2) un EditeurDescriptor pour définir le ClientEditingClass. Linus a écrit un excellent article sur ce blog ici: https://world.episerver.com/blogs/Linus-Ekstrom/Dates/2012/7/Creating-a-custom-editor-for-a-property/.

EDIT: Je vois, j'ai sauté trop rapidement sur la partie prioritaire. Vous n'avez pas besoin de surcharger les fichiers en les remplaçant, et vous n'aurez pas à extraire Shell.zip (sauf si vous êtes curieux de savoir comment Episerver a implémenté ses widgets). La partie qui remplace le composant spécifique est define ("epi/shell/form/Field") Tant que votre définition de ce widget est chargée après le shell, dojo utilisera votre implémentation, quand quelque chose nécessite "epi/shell/form/Le point qui assure que votre implémentation est chargée après, se trouve dans module.config, sous 'Ceci injecte notre implémentation de champ [...]'

Le chemin ~/ClientResources/Scripts/Shell/Field/Field.js est simplement l'emplacement que j'ai choisi pour mettre la version surchargée de Field.js.Vous pouvez le mettre où vous voulez, aussi longtemps que vous mettez à jour module.config en conséquence, avec le nouveau chemin Cela fonctionne comme ceci: , Episerver définit le widget A. Ensuite, vous définissez un widget avec le même nom, A. Lorsque quelque chose tente d'aller chercher A, il renvoie votre implémentation, plutôt que celle d'Episerver

+0

Votre article de blog dit de remplacer ~/ClientResources/Scripts/Shell/Field/Field.js, mais je n'ai pas ce type de fichier dans mon dossier ClientResources. J'utilise la démo tech alliage pour tester. Dois-je extraire le dossier Shell.zip dans les modules/_protected/Shell, créer les dossiers et fichiers requis et recompresser le dossier pour qu'il fonctionne. Je ne suis pas très familier avec la modification du dojo et les fonctionnalités intégrées. J'espère que vous allez fournir des étapes plus détaillées. En outre, peut-être la réponse devrait être disponible sur ce poste pour les autres à voir .. – Frostrar

+0

Bonjour Frostrar, J'ai ajouté une réponse comme une modification à ma réponse, car il était trop long pour un commentaire. –

+0

Cela a fonctionné parfaitement! Certainement quelque chose que je vais utiliser dans les futurs projets. Merci pour la clarification sur la partie primordiale! – Frostrar