Le plugin UGC fournit un bouton abstrait pour définir une page comme étant la racine de l'arborescence virtuelle d'un type de contenu.
Pour intégrer les contenus proposés via une arborescence virtuelle, vous pouvez donc définir un bouton se basant sur celui apporté par le plugin UGC et en personnalisant :
le libellé/description du bouton le type de contenu utilisé pour créer l'arborescence (ugc-content-type) le champ du type de contenu utilisé pour classer les contenus (ugc-metadatPath). Ce paramètre est optionnel :
si on le défini pas : on laisse le choix à l'utilisateur de choisir sa donnée de classification parmi les données de type CONTENT ou énuméré du type de contenu choisis si vide : il n'y aura pas de donnée de classification. Tous les contenus seront à la racine de l'arborescence. si non vide : la classification se fera par rapport à cette donnée et elle ne pourra pas être changée.
le droit qui donnera accès à ce bouton Il est également possible de personnaliser les messages et info-bulles de ce bouton.
Le plugin Classified Ads définit un bouton pour positionner une page comme étant la racine des petites annonces. Les pages des petites annonces sont classées suivant le champs "Catégorie"
Oups ! La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.<extension ref-id="org.ametys.plugins.ugc.SetRoot"
id="org.ametys.plugins.classified.ads.SetRoot"
point="org.ametys.core.ui.RibbonControlsManager"
class="org.ametys.plugins.ugc.clientsideelement.SetUGCRootClientSideElement">
<class >
<label i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_LABEL</label>
<description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_DESCRIPTION</description>
<ugc-content-type>org.ametys.plugins.classified.ads.Content.ads</ugc-content-type>
<ugc-metadataPath>category</ugc-metadataPath>
<ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_ADD_PAGE_END_DESCRIPTION</ugc-page-end-description>
<no-jcr-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_NOJCR_PAGE_END_DESCRIPTION</no-jcr-page-end-description>
<add-ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_END_DESCRIPTION</add-ugc-page-end-description>
<remove-ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_REMOVE_PAGE_END_DESCRIPTION</remove-ugc-page-end-description>
<ugc-page-already-exist i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_ALREADY_EXIST_DESCRIPTION</ugc-page-already-exist>
<ugc-dialog-title i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_BOX_TITLE</ugc-dialog-title>
<ugc-dialog-hint i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_BOX_HINT</ugc-dialog-hint>
<ugc-dialog-confirm i18n="true">PLUGINS_CLASSIFIED_ADS_ROOT_PAGE_CONFIRM</ugc-dialog-confirm>
<ugc-dialog-delete-confirm i18n="true">PLUGINS_CLASSIFIED_ADS_ROOT_PAGE_DELETE_CONFIRM</ugc-dialog-delete-confirm>
<ugc-dialog-icon>ametysicon-newspaper1</ugc-dialog-icon>
<icon-glyph>ametysicon-newspaper1</icon-glyph>
</class>
<right>Classified_Ads_Right_Set_Root</right>
</extension> <extension ref-id="org.ametys.plugins.ugc.SetRoot"
id="org.ametys.plugins.classified.ads.SetRoot"
point="org.ametys.core.ui.RibbonControlsManager"
class="org.ametys.plugins.ugc.clientsideelement.SetUGCRootClientSideElement">
<class >
<label i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_LABEL</label>
<description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_DESCRIPTION</description>
<ugc-content-type>org.ametys.plugins.classified.ads.Content.ads</ugc-content-type>
<ugc-metadataPath>category</ugc-metadataPath>
<ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_ADD_PAGE_END_DESCRIPTION</ugc-page-end-description>
<no-jcr-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_NOJCR_PAGE_END_DESCRIPTION</no-jcr-page-end-description>
<add-ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_END_DESCRIPTION</add-ugc-page-end-description>
<remove-ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_REMOVE_PAGE_END_DESCRIPTION</remove-ugc-page-end-description>
<ugc-page-already-exist i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_ALREADY_EXIST_DESCRIPTION</ugc-page-already-exist>
<ugc-dialog-title i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_BOX_TITLE</ugc-dialog-title>
<ugc-dialog-hint i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_BOX_HINT</ugc-dialog-hint>
<ugc-dialog-confirm i18n="true">PLUGINS_CLASSIFIED_ADS_ROOT_PAGE_CONFIRM</ugc-dialog-confirm>
<ugc-dialog-delete-confirm i18n="true">PLUGINS_CLASSIFIED_ADS_ROOT_PAGE_DELETE_CONFIRM</ugc-dialog-delete-confirm>
<ugc-dialog-icon>ametysicon-newspaper1</ugc-dialog-icon>
<icon-glyph>ametysicon-newspaper1</icon-glyph>
</class>
<right>Classified_Ads_Right_Set_Root</right>
</extension> Voir le code
<extension ref-id="org.ametys.plugins.ugc.SetRoot"
id="org.ametys.plugins.classified.ads.SetRoot"
point="org.ametys.core.ui.RibbonControlsManager"
class="org.ametys.plugins.ugc.clientsideelement.SetUGCRootClientSideElement">
<class >
<label i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_LABEL</label>
<description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_DESCRIPTION</description>
<ugc-content-type>org.ametys.plugins.classified.ads.Content.ads</ugc-content-type>
<ugc-metadataPath>category</ugc-metadataPath>
<ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_ADD_PAGE_END_DESCRIPTION</ugc-page-end-description>
<no-jcr-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_NOJCR_PAGE_END_DESCRIPTION</no-jcr-page-end-description>
<add-ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_END_DESCRIPTION</add-ugc-page-end-description>
<remove-ugc-page-end-description i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_REMOVE_PAGE_END_DESCRIPTION</remove-ugc-page-end-description>
<ugc-page-already-exist i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_ALREADY_EXIST_DESCRIPTION</ugc-page-already-exist>
<ugc-dialog-title i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_BOX_TITLE</ugc-dialog-title>
<ugc-dialog-hint i18n="true">PLUGINS_CLASSIFIED_ADS_SET_ROOT_PAGE_BOX_HINT</ugc-dialog-hint>
<ugc-dialog-confirm i18n="true">PLUGINS_CLASSIFIED_ADS_ROOT_PAGE_CONFIRM</ugc-dialog-confirm>
<ugc-dialog-delete-confirm i18n="true">PLUGINS_CLASSIFIED_ADS_ROOT_PAGE_DELETE_CONFIRM</ugc-dialog-delete-confirm>
<ugc-dialog-icon>ametysicon-newspaper1</ugc-dialog-icon>
<icon-glyph>ametysicon-newspaper1</icon-glyph>
</class>
<right>Classified_Ads_Right_Set_Root</right>
</extension>