CF04 et versions antérieures : Utilisation d'URL conviviales sans informations d'état

Par défaut, les URL d'HCL DX Portal incluent des informations d'état de navigation. Si vous configurez des pages pour les URL conviviales, le portail ajoute les informations d'état à ces URL. Certains scénarios requièrent des URL courtes et compréhensibles qui ne comportent pas les informations d'état. Pour les scénarios de ce type, vous pouvez configurer des URL conviviales de sorte que le portail n'affiche pas ces informations d'état.

Avant de commencer

Si vous utilisez le groupe de correctifs combinés 8 ou ultérieur, accédez à Définition d'URL conviviales sans informations d'état pour les pages de votre site.

Si vous êtes sous Combined Cumulative Fix 7 ou une version antérieure, accédez à CF07 et version antérieure : Utilisation d'URL conviviales sans informations d'état.

Pourquoi et quand exécuter cette tâche

Les informations d'état correspondent à une agrégation codée de l'état de navigation du portail, la page et ses composants, par exemple, les portlets sur la page en cours :
  • L'état du portail inclut la sélection de page, les extensions, le mappage des étiquettes et les cibles d'action.
  • L'état du portlet inclut les paramètres de rendu, l'état de fenêtre et le mode de portlet.
La représentation de l'état de navigation dans l'URL active les caractéristiques des sites Web dynamiques telles que l'utilisation des signets ou le bouton Précédent. Par exemple, les utilisateurs peuvent marquer une page d'un signet et revenir ultérieurement au même état de cette page.
Certains scénarios requièrent des URL courtes et compréhensibles qui ne comportent pas les informations d'état. Exemples :
  • Vous ne voulez pas que l'URL semble référencer du contenu dynamique.
  • Vous voulez que l'URL contienne uniquement des informations pouvant être lues et interprétées par une personne.
  • Vous voulez que l'URL soit adaptée à la zone adresse du navigateur Web.
  • Les moteurs de recherche Internet attendent des URL statiques qui font référence à une seule ressource ou page Web pendant la durée de vie de cette page.
  • Les moteurs de recherche Internet préfèrent les URL courtes et conviviales.
Pour les scénarios de ce type, vous configurez HCL DX Portal comme suit :
  • Vous configurez les thèmes de sorte qu'ils affichent uniquement des URL courtes et conviviales, sans l'état de navigation codé.
  • Vous configurez des pages qui utilisent ce thème pour afficher des URL conviviales.
La configuration s'applique à toutes les pages qui utilisent ce thème et qui sont configurées pour afficher les URL conviviales.
Notes :
  • Vous pouvez créer des URL conviviales pour des pages de portail.
  • Si vous configurez votre portail pour l'affichage d'URL conviviales sans état, la lisibilité des URL s'en trouve améliorée aux dépens de la perte de la fonctionnalité d'état. Les conséquences sont par exemple les suivantes :
    • Les URL de portail désignent toujours l'état par défaut d'une page car elles ne contiennent pas les informations d'état.
    • Si un utilisateur clique sur le bouton Précédent ou actualise une page en cliquant sur le bouton Actualisation ou sur le titre de la page, la page retourne au mode par défaut, à savoir Affichage.
    • Si un utilisateur visualise une page puis crée un signet, lorsqu'il clique ensuite sur le signet, la page s'ouvre dans le mode Affichage par défaut.
    • Les URL conviviales sans état ne contiennent pas les informations habituelles sur la langue de la page. Le portail détermine la langue de la page dans l'ordre suivant :
      1. Le portail recherche d'abord la préférence utilisateur.
      2. Si la préférence utilisateur n'est pas définie, le portail recherche la langue préférée qui est définie dans le navigateur. Si la page est une page publique, l'utilisateur est un utilisateur anonyme. Dans ce cas, le portail recherche également la langue préférée qui est définie dans le navigateur.
      3. Si le portail ne peut pas déterminer un paramètre de langue préférée pour le portail ou le navigateur, il applique la langue par défaut qui est définie pour le portail.
      Pour plus de détails sur la présentation des pages de portail spécifiques à une langue avec des URL conviviales sans état, lisez les informations à la fin de la procédure ci-après.

Procédure

  1. Dans le service de configuration WP du portail, affectez la valeur false à la propriété personnalisée friendly.redirect.enabled.
    Pour ce faire, éditez le fournisseur d'environnement de ressources WP ConfigService dans la console WebSphere® Integrated Solutions Console. Si la propriété n'est pas répertoriée ici, ajoutez-la et affectez-lui la valeur false. Pour plus d'informations sur cette propriété et sa définition, consultez les rubriques relatives au service de configuration du portail et à la définition des propriétés de configuration de service.
  2. Dans le thème que vous souhaitez configurer, pour les URL courtes et sans état, affectez la valeur true au paramètre com.ibm.portal.theme.hasBaseURL.
    Vous pouvez mettre à jour le paramètre du thème à l'aide de l'interface de configuration XML. Voici un exemple de script XML :
    <?xml version="1.0" encoding="UTF-8"?>
    
    <request
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="PortalConfig_8.5.0.xsd"
       type="update">
    
       <!-- This sample sets the hasBaseURL Tag in the Portal 8.5 Theme. -->
       <portal action="locate">
          <theme action="update" uniquename="ibm.portal.85Theme" >
             <parameter name="com.ibm.portal.theme.hasBaseURL" 
                        type="string" update="set">true</parameter>
          </theme>
       </portal>
    </request>
  3. Assurez-vous que toutes les URL générées dans le thème ne comportent pas l'état de navigation.
    Dans le thème par défaut, vous pouvez effectuer cette étape en modifiant les fichiers navigation.jsp et sideNavigation.jsp.
    Pour modifier le fichier navigation.jsp, procédez comme suit :
    1. Accédez au répertoire du fichier navigation.jsp. Vous devez mettre à jour deux copies de ce fichier, une dans chacun des emplacements de répertoire suivants :
      • PortalServer_root\theme\wp.theme.themes\default85\installedApps\DefaultTheme85.ear\DefaultTheme85.war\themes\html\dynamicSpots
      • PortalServer_root\theme\wp.theme.modules\webapp\installedApps\ThemeModules.ear\ThemeModules.war\themes\html\dynamicSpots
    2. Ouvrez le fichier navigation.jsp à l'aide d'un éditeur.
    3. Recherchez la chaîne <a href="?uri=nm:oid:${wp.identification[node]}" class="wpthemeLeft${titleClass}"> et remplacez-la par le fragment de code suivant :
      <portal-navigation:urlGeneration contentNode="${wp.identification[node]}" keepNavigationalState="false">    
      <a href="<%wpsURL.write(out);%>" class="wpthemeLeft${titleClass}">
    4. Localisez la première balise </a> après la chaîne mise à jour <a href="<%wpsURL.write(out);%>" et remplacez-la par le fragment de code suivant :
      </a>
      </portal-navigation:urlGeneration> 
    Pour modifier le fichier sideNavigation.jsp, procédez comme suit :
    1. Accédez au répertoire PortalServer_root\theme\wp.theme.themes\default85\installedApps\DefaultTheme85.ear\DefaultTheme85.war\themes\html\dynamicSpots.
    2. Ouvrez le fichier sideNavigation.jsp à l'aide d'un éditeur.
    3. Recherchez la chaîne <a href="?uri=nm:oid:${wp.identification[node]}" class="<c:if test="${isSelectedNode}"> wpthemeSelected</c:if>${titleClass}"> et remplacez-la par le fragment de code suivant :
      <portal-navigation:urlGeneration contentNode="${wp.identification[node]}" keepNavigationalState="false">    
      <a href="<%wpsURL.write(out);%>" class="<c:if test="${isSelectedNode}">wpthemeSelected</c:if>${titleClass}">
    4. Localisez la première balise </a> après la chaîne mise à jour <a href="<%wpsURL.write(out);%>" et remplacez-la par le fragment de code suivant :
      </a>
      </portal-navigation:urlGeneration> 
  4. Modifiez le fichier mobileNavigation.jsp.
    1. Accédez au répertoire PortalServer_root\theme\wp.theme.themes\default85\installedApps\DefaultTheme85.ear\DefaultTheme85.war\themes\html\dynamicSpots.
    2. Ouvrez le fichier mobileNavigation.jsp à l'aide d'un éditeur.
    3. Recherchez la chaîne <a href="?uri=nm:oid:${nodeID}"> et remplacez-la par le fragment de code suivant :
      <portal-navigation:urlGeneration contentNode="${nodeID}" keepNavigationalState="false">    
      <a href="<%wpsURL.write(out);%>"
    4. Localisez la première balise </a> après la chaîne mise à jour <a href="<%wpsURL.write(out);%>" et remplacez-la par le fragment de code suivant :
      </a>
      </portal-navigation:urlGeneration> 
  5. Facultatif : Pour HCL Web Content Manager : Si vous voulez que le portlet Rendu d'HCL Web Content Manager affiche également les adresses URL personnalisées et sans état. Dans ce cas, implémentez un plug-in qui convertit les URL d'HCL Web Content Manager au format personnalisé requis.
    Pour obtenir des instructions et un exemple de code pour un plug-in de ce type, voir Exemple 2 : Créer une adresse URL conviviale pour le contenu Web.
  6. Définissez des noms d'URL conviviales pour les pages si nécessaire.
    Pour plus d'informations sur cette étape, lisez la rubrique Utilisation des URL conviviales.
  7. Facultatif : Vous voudrez peut-être présenter aux visiteurs de votre site des pages de portail spécifiques à une langue avec des URL conviviales sans état. Dans ce cas, structurez votre site de portail pour qu'il reflète les pages ciblées pour des pays ou des régions spécifiques.
    Par exemple, vous pouvez créer un noeud pour une page spécifique, puis créer des pages enfant spécifiques à une langue sous ce noeud. Exemple : Sous le nœud home, vous créez des pages en anglais, en français et en allemand. Vous pouvez ensuite indiquer aux visiteurs de votre site l'URL conviviale appropriée parmi les suivantes :
    http://www.myco.com/wps/home/en/shop
    http://www.myco.com/wps/home/fr/shop
    http://www.myco.com/wps/home/de/shop

Résultats

Le portail n'affiche plus les informations d'état avec les URL.