Kombinierte Ansicht Flache Ansicht Baumansicht
Threads [ Zurück | Nächste ]
toggle
virginie joussot
onglets "guest"
16. Mai 2012 00:21
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

Bonjour,
lorsque qu'un utilisateur "non connecté" va sur notre liferay, il voit un certain nombre d'onglets.
Une fois connecté et reconnu par notre système il voit d'autres onglets,
par contre je n'arrive pas à faire uen sorte qu'il ne voit plus les onglets du début (en mode guest).
Quelqu'un peut il m'indiquer comment faire pour masquer ces onglets une fois connecté ?
Merci d'avance.
Pascal SIMON
RE: onglets "guest"
16. Mai 2012 00:41
Antwort

Pascal SIMON

Rang: Junior Member

Nachrichten: 76

Eintrittsdatum: 18. Februar 2009

Neue Beiträge

Bonjour Virignie,

Pour modifier les droits des invités en général il faut modifier les permissions du rôle guest.
Ensuite pour différents composants tu peux de façon spécifique modifier les permissions d'affichage (ie cette portlet est visible aux guest ou aux user...).

De quoi parles-tu quand tu parles d'onglets (de la dock bar? ) ?

Pascal
virginie joussot
RE: onglets "guest"
16. Mai 2012 01:07
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

typiquement j'aimerai que l'onglet acceuil disparraisse une fois qu'on est connecté au portail
Olivier Bonnet-Torrès
RE: onglets "guest"
16. Mai 2012 02:25
Antwort

Olivier Bonnet-Torrès

Rang: Regular Member

Nachrichten: 148

Eintrittsdatum: 11. Juli 2008

Neue Beiträge

Bonjour Virginie,

Pour faire cela, il est nécessaire de modifier le fichier navigation.vm du thème.
L'affichage de l'onglet de la page d'accueil doit être conditionné par la valur de la variable $is_signed_in (alias de $themeDisplay.isSignedIn(), défini dans init.vm).

 1...
 2#foreach ($nav_item in $nav_items)
 3    ## Skip the home page
 4    #if (!$is_signed_in || $velocityCount > 1)
 5        #if ($nav_item.isSelected())
 6            <li class="selected">
 7        #else
 8            <li>
 9        #end
10...
virginie joussot
RE: onglets "guest"
16. Mai 2012 02:27
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

merci pour cette réponse.
Je n'ai jamais touché au thème,
comment porcèder ? quell evaleur mettre à ce paramètre ?
Encore merci pour l'aide.
Cdlt,
Olivier Bonnet-Torrès
RE: onglets "guest"
16. Mai 2012 02:33
Antwort

Olivier Bonnet-Torrès

Rang: Regular Member

Nachrichten: 148

Eintrittsdatum: 11. Juli 2008

Neue Beiträge

Il s'agit juste de surcharger le fichier navigation.vm. Aucune affectation de valeur ne doit être faite.
Pour créer un thème, je te propose de voir le wiki: Themes et en particulier Themes v6.0.
virginie joussot
RE: onglets "guest"
16. Mai 2012 02:36
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

ok je vais regarder tout ça, il s'agit bien du fichier .vm qui se trouve dans webapps/ROOT/html/themes/control_panel/templates ?
Quand vous dites surcharger, il "suffit" juste d'ajouter votre code à la page ?
Ca se recompile un .vm ?
Olivier Bonnet-Torrès
RE: onglets "guest"
16. Mai 2012 02:48
Antwort

Olivier Bonnet-Torrès

Rang: Regular Member

Nachrichten: 148

Eintrittsdatum: 11. Juli 2008

Neue Beiträge

En fait, il faut créer un thème avec le plugins SDK de Liferay (voir les infos dans le wiki). Modifier directement ce fichier n'est pas une pratique correcte, dans la mesure où il n'y a plus trace de l'original et les modifications risquent de ne pas être prises en compte.
Le fichier navigation.vm du nouveau thème (répertoire docroot/diffs/templates) devra être modifié pour y intégrer la condition manquante...
Pour la "compilation", il s'agit seulement du déploiement du thème (dépôt du WAR via l'interface du portail ou directement dans le répertoire $TOMCAT_HOME/../deploy). Tomcat se charge du désarchivage et de l'inscription de la webapp et Liferay permet ensuite d'appliquer le nouveau thème sur les groupes, organisations et/ou pages.
virginie joussot
RE: onglets "guest"
21. Mai 2012 04:26
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

Bonjour,
j'ai créé un thème (en copiant le thème control_panel, j'ai modifié le fichier C:\Utilitaires\liferay-portal-6.1.0-ce-ga1\SDK\themes\newtheme-theme\docroot\_diffs\templates\navigation.vm comme ceci :
<nav class="$nav_css_class" id="navigation">
<h1>
<span>#language("navigation")</span>
</h1>

<ul>
#foreach ($nav_item in $nav_items)
## Skip the home page
#if (!$is_signed_in || $velocityCount > 1)
#if ($nav_item.isSelected())
<li class="selected">
#else
<li>
#end
<a href="$nav_item.getURL()" $nav_item.getTarget()><span>$nav_item.icon() $nav_item.getName()</span></a>

#if ($nav_item.hasChildren())
<ul class="child-menu">
#foreach ($nav_child in $nav_item.getChildren())
#if ($nav_child.isSelected())
<li class="selected">
#else
<li>
#end
<a href="$nav_child.getURL()" $nav_child.getTarget()>$nav_child.getName()</a>
</li>
#end
</ul>
#end
</li>
#end
</ul>
</nav>

puis j'ai compilé le theme via ant all.
Le fichier .war est bien créé, dans liferay, je demande à utiliser ce thème,
mais lorsque je demande qu'un onglet n'apparaisse que pour "guest", il apparait quand même pour les users connectés.
Qu'ai je raté ?
Olivier Bonnet-Torrès
RE: onglets "guest"
21. Mai 2012 04:42
Antwort

Olivier Bonnet-Torrès

Rang: Regular Member

Nachrichten: 148

Eintrittsdatum: 11. Juli 2008

Neue Beiträge

virginie joussot:

mais lorsque je demande qu'un onglet n'apparaisse que pour "guest", il apparait quand même pour les users connectés.
Qu'ai je raté ?


Bonjour,
Un utilisateur connecté n'est pas un utilisateur "guest"...
Si "guest" désigne la communauté par défaut, il vous faut modifier la condition d'affichage en [à titre indicatif] "$scopeGroupId != $groupLocalService.getGroup($companyId, "Guest")" (ou approchant).
virginie joussot
RE: onglets "guest"
21. Mai 2012 04:44
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

Bah justement, pour moi, guest c'est les personnes non authentifiées du portail.
Je souhaites que cet onglet n'apparaisse QUE pour les utilisateurs connectés et reconnus par mon CAS et mon LDAP.
Est ce bien ça ?
Olivier Bonnet-Torrès
RE: onglets "guest"
21. Mai 2012 05:32
Antwort

Olivier Bonnet-Torrès

Rang: Regular Member

Nachrichten: 148

Eintrittsdatum: 11. Juli 2008

Neue Beiträge

Oui, c'est effectivement ça!
Dans l'état initial du script (avec la seule condition $is_signed_in), tout utilisateur connecté aura l'affichage de l'onglet.
Les utilisateurs connectés sont a priori reconnus par le LDAP (ou directement ajoutés dans Liferay).
virginie joussot
RE: onglets "guest"
21. Mai 2012 06:41
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

non pardon je souhaite que l'onglet "welcome" disparaisse une fois que l'on est connecté ..
comment faire ça ?
Olivier Bonnet-Torrès
RE: onglets "guest"
21. Mai 2012 06:47
Antwort

Olivier Bonnet-Torrès

Rang: Regular Member

Nachrichten: 148

Eintrittsdatum: 11. Juli 2008

Neue Beiträge

#if (!$is_signed_in)
?
virginie joussot
RE: onglets "guest"
21. Mai 2012 06:58
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

oui ça ok, mais je ne vaux pas que tous les onglets soit cachés.
Juste quelques uns....
là j'arrive à cacher tous les onglets, mais comment identifier les onglets que je veux cacher ?
virginie joussot
RE: onglets "guest"
21. Mai 2012 07:24
Antwort

virginie joussot

Rang: Junior Member

Nachrichten: 78

Eintrittsdatum: 14. März 2012

Neue Beiträge

j'ai bien trouvé ça :


#foreach ($nav_item in $nav_items)
#if($nav_item.getName() == "Bienvenue" && $is_signed_in )



mais ce n'est pas très très portable ...
Matthieu R.
RE: onglets "guest"
5. September 2012 02:33
Antwort

Matthieu R.

Rang: Junior Member

Nachrichten: 44

Eintrittsdatum: 18. Juli 2012

Neue Beiträge

Je sais que ce sujet date un peu mais j'ai été confronté à pas mal de problèmes similaires pour masquer et afficher les onglets.

J'ai finalement procédé de la manière suivante.

1. Changement de $nav_items en $custom_nav_items
2. Création d'un hook qui instancie une variable Velocity
3. Dans ce hook, prendre la liste des onglets, la parser et faire les modifications que l'on souhaite.
4. Empaqueter le tout et transmettre au template sous le nom custom_nav_items

Ce n'est pas la solution la plus extraordinaire mais elle a le mérite d'éviter de trop surcharger le template avec des tests. Pour moi, les fichiers Velocity doivent rester clairs et donc réaliser des tests logiques doit être possible en amont.
Au final, cela m'a permis de gérer mes onglets sans faire appel aux mécanismes Liferay, uniquement via les droits stockés dans ma base de données.

C'est une piste. Si quelqu'un souhaite obtenir des informations plus précises, il suffit de demander.