Image du projet 'Socle K-Sup' téléversée
  1. Socle K-Sup
  2. CORE-422

FrontUtil.isAccueilSite()

XMLWordImprimable

    • Icon: Bug Bug
    • Résolution: Résolu
    • Icon: Mineur Mineur
    • 6.0-rc4
    • 6.0-rc3
    • Aucune
    • Aucune

      Bonjour,

      J'ai comme un doute sur la valeur de retour de la fonction FrontUtil.isAccueilSite(). J'ai également ce doute en 5.1.6 car je pense avoir le même problème.

      En gros, la fonction isAccueilSite() va regarder récursivement les rubriques mères de la fiche univ et s'arrêter quand la rubrique retournée sera null.

      FrontUtil.java
      public static boolean isAccueilSite(final FicheUniv ficheUniv) {
      		boolean isAccueil = Boolean.FALSE;
      		try {
      			if (ficheUniv != null && StringUtils.isNotBlank(ficheUniv.getCodeRubrique())) {
      				final String codeRubriquePageCourante = ficheUniv.getCodeRubrique();
      				final InfosRubriques rubriqueCourante = Rubrique.renvoyerItemRubrique(codeRubriquePageCourante);
      				InfosRubriques rubriqueSite = rubriqueCourante;
      				while (rubriqueSite.getRubriqueMere() != null) {
      					rubriqueSite = rubriqueSite.getRubriqueMere();
      				}
      				isAccueil = codeRubriquePageCourante.equals(rubriqueSite.getCode());
      			}
      		} catch (final Exception e) {
      			LOG.error("impossible de savoir si on est sur l'accueil d'un site", e);
      		}
      		return isAccueil;
      	}
      

      Sauf que !

      Cette fonction ne me retourne jamais vrai ! et je peux vous le prouver !

      Pour cela, il faut aller dans CacheRubriqueManager.getCacheRubriques()

      ça commence par :

      CacheRubriqueManager.getCacheRubriques()
      InfosRubriques infosRubriqueTop = new InfosRubriques(Rubrique.CODE_RUBRIQUE_ROOT);
      

      et un peu en dessous, ça continue avec :

      CacheRubriqueManager.getCacheRubriques()
      if (rubriqueMere == null || rubriqueMere.getCode().length() == 0) {
      	// La rubrique mère est le sommet de l'arbre
      	rubriqueMere = infosRubriqueTop;
      }
      

      Et voilà ! lors du chargement de la liste des rubriques, si la rubrique mère est vide (ce qui arrive par exemple pour la rubrique d'accueil), alors la rubrique mère devient la rubrique racine.

      Donc, pour qu'une fiche soit une fiche d'accueil du site, il faut qu'elle soit rattachée à la rubrique CODE_RUBRIQUE_ROOT.

      Ou alors, il faut impérativement que la rubrique d'accueil du site ait le code = CODE_RUBRIQUE_ROOT
      Du coup, je ne vois pas à quoi sert le paramètre

      site.[ID].rubrique=[CODE_RUBRIQUE]
      

      ni comment ça se passerait pour du multisite.

            matthieu.marc@ensam.eu Matthieu Marc
            matthieu.marc@ensam.eu Matthieu Marc
            Votes:
            0 Voter pour ce ticket
            Gérer les observateurs:
            2 Démarre l'observation de ce ticket

              Création:
              Mise à jour:
              Résolue: