Comment afficher un membre dans le portail courant?

Michel Remacle · le 14/02/17 à 11:53

Bonjour,

Je vois sur la demo jalios que lorsqu'on affiche un membre, un paramètre portal est ajouté.

Par défaut sur nos espaces collaboratifs, nous n'avont pas ce paramètre et tout lien vers un membre s'affiche dans le portail par défaut du site.

Comment changer ce comportement?

Merci

0 pt
Michel Remacle · le 15/02/17 à 13:45

La solution :

Dans le plugin.xml

<policyfilter class="EspacesCoCHUPlugin.DescriptiveURLchange" />

La classe :

 

package xxx;

import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.jalios.jcms.Channel;
import com.jalios.jcms.Data;
import com.jalios.jcms.Member;
import com.jalios.jcms.context.JcmsContext;
import com.jalios.jcms.policy.BasicPortalPolicyFilter;
import com.jalios.jcms.portlet.PortalInterface;
import com.jalios.jcms.portlet.PortalManager;
import com.jalios.util.Util;

public class DescriptiveURLchange extends BasicPortalPolicyFilter {
    private Channel channel = Channel.getChannel();
 
    @Override
    public void fillDescriptiveURLParameterMap(Map<String, String> paramMap, Data data) {
        if (data instanceof Member) {
            addPortalParam(paramMap);
        } 
    }

    private void addPortalParam(Map<String,String> paramMap) {
         JcmsContext context = channel.getCurrentJcmsContext();
         if(Util.notEmpty(context) && context.isInFrontOffice()) {
             HttpServletRequest req = context.getRequest();
             if(Util.notEmpty(req)) {
                 PortalInterface tmpPI = ((PortalInterface) req.getAttribute(PortalManager.PORTAL_PORTAL));
                 if(Util.notEmpty(tmpPI)){
                     paramMap.put("portal", tmpPI.getId());
                 }
             }
         }
    }
}
0 pt