This page should only be applied if the script assisted migration asks you to switch to manual migration skin.2025002.INTRANET.PageSubscription
Version 2.1.0 of the Intranet Design Charter integrates the functionalities of plugin Page Subscription:
2 page and theme subscription management services a subscription notification center a "Follow page" button to subscribe to a page The notification center is displayed on all pages in the header to the left of the notification links.
The follow page button is displayed on all pages to the right of the breadcrumb trail.
If you've overloaded the "common-script " template, add the call to the template loading the JS required for the notification center and page tracking.
Oops! Copy to clipboard failed. Open the code and copy it manually.<xsl:call-template name="head-js-subscriptions"/> <xsl:call-template name="head-js-subscriptions"/>
<xsl:call-template name="head-js-subscriptions"/> If you've overloaded the header, and in particular the "notifications-links" template, add a call to the "my-subscriptions" template before the notification links.
Oops! Copy to clipboard failed. Open the code and copy it manually.<xsl:template name="notifications-links">
<ul class="icons">
<!-- My subscriptions -->
<xsl:call-template name="my-subscriptions"/>
<!-- Alerts-->
<xsl:call-template name="alerts"/>
<xsl:apply-templates select="/cms/inputData/linkDirectory[@id='notifications']/links/link" mode="notification-link"/>
<li class="icon mobile">
<nav aria-label="skin.{$skin}:SKIN_NAV_MAIN_NAVIGATION" i18n:attr="aria-label" role="navigation">
<button class="open-menu-mobile" onclick="openSecondMobile()" aria-label="skin.{$skin}:SKIN_NAV_MAIN_NAVIGATION_MENU" i18n:attr="aria-label" aria-haspopup="dialog" aria-expanded="false">
<span class="material-icons" aria-hidden="true">menu</span>
</button>
</nav>
</li>
</ul>
<xsl:call-template name="notifications-links-js"/>
</xsl:template> <xsl:template name="notifications-links">
<ul class="icons">
<!-- My subscriptions -->
<xsl:call-template name="my-subscriptions"/>
<!-- Alerts-->
<xsl:call-template name="alerts"/>
<xsl:apply-templates select="/cms/inputData/linkDirectory[@id='notifications']/links/link" mode="notification-link"/>
<li class="icon mobile">
<nav aria-label="skin.{$skin}:SKIN_NAV_MAIN_NAVIGATION" i18n:attr="aria-label" role="navigation">
<button class="open-menu-mobile" onclick="openSecondMobile()" aria-label="skin.{$skin}:SKIN_NAV_MAIN_NAVIGATION_MENU" i18n:attr="aria-label" aria-haspopup="dialog" aria-expanded="false">
<span class="material-icons" aria-hidden="true">menu</span>
</button>
</nav>
</li>
</ul>
<xsl:call-template name="notifications-links-js"/>
</xsl:template> Voir le code
<xsl:template name="notifications-links">
<ul class="icons">
<!-- My subscriptions -->
<xsl:call-template name="my-subscriptions"/>
<!-- Alerts-->
<xsl:call-template name="alerts"/>
<xsl:apply-templates select="/cms/inputData/linkDirectory[@id='notifications']/links/link" mode="notification-link"/>
<li class="icon mobile">
<nav aria-label="skin.{$skin}:SKIN_NAV_MAIN_NAVIGATION" i18n:attr="aria-label" role="navigation">
<button class="open-menu-mobile" onclick="openSecondMobile()" aria-label="skin.{$skin}:SKIN_NAV_MAIN_NAVIGATION_MENU" i18n:attr="aria-label" aria-haspopup="dialog" aria-expanded="false">
<span class="material-icons" aria-hidden="true">menu</span>
</button>
</nav>
</li>
</ul>
<xsl:call-template name="notifications-links-js"/>
</xsl:template> If you have overloaded the template "user-menu file user-menu.xsl You need to add a new area for the "My tracked pages" service.
Oops! Copy to clipboard failed. Open the code and copy it manually.<xsl:template name="user-menu">
<div class="menu-fixed">
<nav role="navigation" class="left" aria-label="skin.{$skin}:SKIN_USER_MENU_PERSONAL_SPACE" i18n:attr="aria-label">
<xsl:call-template name="user-menu-mobile"/>
<xsl:call-template name="user-image"/>
<!-- Apps metiers -->
[...]
<!-- Apps RH -->
[...]
<!-- Favorites -->
[...]
<!-- Follow pages -->
<xsl:if test="$rendering-context = 'back' or /cms/page/pageContents/zone[@name='user-menu-followedpages']/zoneItem/html/body/node()">
<xsl:call-template name="user-menu-item-app">
<xsl:with-param name="inputDataId" select="'followedPages'"/>
<xsl:with-param name="title"><i18n:text i18n:key="SKIN_USER_MENU_FOLLOWED_PAGES" i18n:catalogue="skin.{$skin}"/></xsl:with-param>
<xsl:with-param name="icon"><xsl:call-template name="followed-pages-icon"/></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="user-menu-followed-pages-js"/>
</xsl:if>
<!-- RSS feed -->
[...]
<!-- Workspaces -->
<xsl:call-template name="user-menu-workspace-items"/>
</nav>
<div class="right" role="dialog" aria-modal="true">
<xsl:call-template name="personnalize-theme"/>
<xsl:call-template name="user-top"/>
<!-- Apps metiers -->
[...]
<!-- Apps RH -->
[...]
<!-- Favorites -->
[...]
<!-- Followed pages -->
<div class="apps menu-followedPages" id="menu-followedPages">
<a name="anchor-followedPages"/>
<zone name="user-menu-followedpages" level="2"/>
</div>
<!-- RSS feed -->
[...]
<!-- Workspaces -->
<xsl:call-template name="user-menu-workspaces-zone"/>
</div>
<xsl:call-template name="user-menu-js"/>
</div>
</xsl:template> <xsl:template name="user-menu">
<div class="menu-fixed">
<nav role="navigation" class="left" aria-label="skin.{$skin}:SKIN_USER_MENU_PERSONAL_SPACE" i18n:attr="aria-label">
<xsl:call-template name="user-menu-mobile"/>
<xsl:call-template name="user-image"/>
<!-- Apps metiers -->
[...]
<!-- Apps RH -->
[...]
<!-- Favorites -->
[...]
<!-- Follow pages -->
<xsl:if test="$rendering-context = 'back' or /cms/page/pageContents/zone[@name='user-menu-followedpages']/zoneItem/html/body/node()">
<xsl:call-template name="user-menu-item-app">
<xsl:with-param name="inputDataId" select="'followedPages'"/>
<xsl:with-param name="title"><i18n:text i18n:key="SKIN_USER_MENU_FOLLOWED_PAGES" i18n:catalogue="skin.{$skin}"/></xsl:with-param>
<xsl:with-param name="icon"><xsl:call-template name="followed-pages-icon"/></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="user-menu-followed-pages-js"/>
</xsl:if>
<!-- RSS feed -->
[...]
<!-- Workspaces -->
<xsl:call-template name="user-menu-workspace-items"/>
</nav>
<div class="right" role="dialog" aria-modal="true">
<xsl:call-template name="personnalize-theme"/>
<xsl:call-template name="user-top"/>
<!-- Apps metiers -->
[...]
<!-- Apps RH -->
[...]
<!-- Favorites -->
[...]
<!-- Followed pages -->
<div class="apps menu-followedPages" id="menu-followedPages">
<a name="anchor-followedPages"/>
<zone name="user-menu-followedpages" level="2"/>
</div>
<!-- RSS feed -->
[...]
<!-- Workspaces -->
<xsl:call-template name="user-menu-workspaces-zone"/>
</div>
<xsl:call-template name="user-menu-js"/>
</div>
</xsl:template> Voir le code
<xsl:template name="user-menu">
<div class="menu-fixed">
<nav role="navigation" class="left" aria-label="skin.{$skin}:SKIN_USER_MENU_PERSONAL_SPACE" i18n:attr="aria-label">
<xsl:call-template name="user-menu-mobile"/>
<xsl:call-template name="user-image"/>
<!-- Apps metiers -->
[...]
<!-- Apps RH -->
[...]
<!-- Favorites -->
[...]
<!-- Follow pages -->
<xsl:if test="$rendering-context = 'back' or /cms/page/pageContents/zone[@name='user-menu-followedpages']/zoneItem/html/body/node()">
<xsl:call-template name="user-menu-item-app">
<xsl:with-param name="inputDataId" select="'followedPages'"/>
<xsl:with-param name="title"><i18n:text i18n:key="SKIN_USER_MENU_FOLLOWED_PAGES" i18n:catalogue="skin.{$skin}"/></xsl:with-param>
<xsl:with-param name="icon"><xsl:call-template name="followed-pages-icon"/></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="user-menu-followed-pages-js"/>
</xsl:if>
<!-- RSS feed -->
[...]
<!-- Workspaces -->
<xsl:call-template name="user-menu-workspace-items"/>
</nav>
<div class="right" role="dialog" aria-modal="true">
<xsl:call-template name="personnalize-theme"/>
<xsl:call-template name="user-top"/>
<!-- Apps metiers -->
[...]
<!-- Apps RH -->
[...]
<!-- Favorites -->
[...]
<!-- Followed pages -->
<div class="apps menu-followedPages" id="menu-followedPages">
<a name="anchor-followedPages"/>
<zone name="user-menu-followedpages" level="2"/>
</div>
<!-- RSS feed -->
[...]
<!-- Workspaces -->
<xsl:call-template name="user-menu-workspaces-zone"/>
</div>
<xsl:call-template name="user-menu-js"/>
</div>
</xsl:template> If you have overloaded the template "shares" page template, the template must be reused to insert the "Follow page" button in the <div class="actions-print">
Oops! Copy to clipboard failed. Open the code and copy it manually.<xsl:template name="actions">
<div class="actions-print">
<xsl:call-template name="matomo-stats"/>
<xsl:if test="ametys:renderingContext() = 'front' and $pageFollowEnabled = 'true' and not($deactivatePageSubscription = 'true')">
<xsl:call-template name="page-subscription"/>
</xsl:if>
<a href="javascript:window.print();" title="skin.{$skin}:SKIN_PAGE_PRINT" i18n:attr="title">
<xsl:call-template name="action-print-icon"/>
</a>
<xsl:call-template name="delimiter-actions"/>
<xsl:call-template name="sendByMailForm">
<xsl:with-param name="link-content"><xsl:call-template name="action-contact-icon"/></xsl:with-param>
</xsl:call-template>
</div>
</xsl:template> <xsl:template name="actions">
<div class="actions-print">
<xsl:call-template name="matomo-stats"/>
<xsl:if test="ametys:renderingContext() = 'front' and $pageFollowEnabled = 'true' and not($deactivatePageSubscription = 'true')">
<xsl:call-template name="page-subscription"/>
</xsl:if>
<a href="javascript:window.print();" title="skin.{$skin}:SKIN_PAGE_PRINT" i18n:attr="title">
<xsl:call-template name="action-print-icon"/>
</a>
<xsl:call-template name="delimiter-actions"/>
<xsl:call-template name="sendByMailForm">
<xsl:with-param name="link-content"><xsl:call-template name="action-contact-icon"/></xsl:with-param>
</xsl:call-template>
</div>
</xsl:template> Voir le code
<xsl:template name="actions">
<div class="actions-print">
<xsl:call-template name="matomo-stats"/>
<xsl:if test="ametys:renderingContext() = 'front' and $pageFollowEnabled = 'true' and not($deactivatePageSubscription = 'true')">
<xsl:call-template name="page-subscription"/>
</xsl:if>
<a href="javascript:window.print();" title="skin.{$skin}:SKIN_PAGE_PRINT" i18n:attr="title">
<xsl:call-template name="action-print-icon"/>
</a>
<xsl:call-template name="delimiter-actions"/>
<xsl:call-template name="sendByMailForm">
<xsl:with-param name="link-content"><xsl:call-template name="action-contact-icon"/></xsl:with-param>
</xsl:call-template>
</div>
</xsl:template> Activation of the notification center and page tracking depends on a site parameter . It is necessary to activate notification center and page tracking in the site settings to test proper integration in your declination.
The notification center displays notifications related to the user's current theme subscriptions. To test the notification center's integration, insert the "My subscriptions" service to subscribe to one or more themes. Select the instantaneous frequency and the "Intranet" channel to ensure that the notification center is not empty. All you have to do is modify/validate a theme's content to see it in the notification center.