1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.matomo.web;
35
36 import fr.paris.lutece.portal.service.content.PageData;
37 import fr.paris.lutece.portal.service.datastore.DatastoreService;
38 import fr.paris.lutece.portal.service.includes.PageInclude;
39 import fr.paris.lutece.portal.service.plugin.PluginService;
40 import fr.paris.lutece.portal.service.template.AppTemplateService;
41 import fr.paris.lutece.portal.service.util.AppPropertiesService;
42 import fr.paris.lutece.util.html.HtmlTemplate;
43
44 import java.util.HashMap;
45 import java.util.Map;
46
47 import javax.servlet.http.HttpServletRequest;
48
49
50
51
52 public class MatomoInclude implements PageInclude
53 {
54 private static final String PROPERTY_DEFAULT_SITE_ID = "matomo.default.site.id";
55 private static final String PROPERTY_DEFAULT_SERVER_HTTP_URL = "matomo.default.server.http.url";
56 private static final String PROPERTY_DEFAULT_SERVER_HTTPS_URL = "matomo.default.server.https.url";
57 private static final String PROPERTY_DEFAULT_AUTH_TOKEN = "matomo.default.widget.auth.token";
58 private static final String DSKEY_SITE_ID = "matomo.site_property.site.id";
59 private static final String DSKEY_SERVER_HTTP_URL = "matomo.site_property.server.http.url";
60 private static final String DSKEY_SERVER_HTTPS_URL = "matomo.site_property.server.https.url";
61 private static final String DSKEY_AUTH_TOKEN = "matomo.site_property.widget.auth.token";
62 private static final String MARK_MATOMO = "matomo";
63 private static final String PLUGIN_NAME = "matomo";
64 private static final String TEMPLATE_MATOMO_INCLUDE = "skin/plugins/matomo/matomo_analytics.html";
65 private static final String MARK_SITE_ID = "site_id";
66 private static final String MARK_SERVER_HTTP_URL = "server_http_url";
67 private static final String MARK_SERVER_HTTPS_URL = "server_https_url";
68
69 private final String _strDefaultSiteId;
70 private final String _strDefaultServerHttpUrl;
71 private final String _strDefaultServerHttpsUrl;
72 private final String _strDefaultAuthToken;
73
74
75
76
77 public MatomoInclude( )
78 {
79 _strDefaultSiteId = AppPropertiesService.getProperty( PROPERTY_DEFAULT_SITE_ID, "<no site id provided>" );
80 _strDefaultServerHttpUrl = AppPropertiesService.getProperty( PROPERTY_DEFAULT_SERVER_HTTP_URL, "<no server http url provided>" );
81 _strDefaultServerHttpsUrl = AppPropertiesService.getProperty( PROPERTY_DEFAULT_SERVER_HTTPS_URL, "<no server https url provided>" );
82 _strDefaultAuthToken = AppPropertiesService.getProperty( PROPERTY_DEFAULT_AUTH_TOKEN, "" );
83
84
85 if ( !DatastoreService.existsKey( DSKEY_SITE_ID ) )
86 {
87 DatastoreService.setDataValue( DSKEY_SITE_ID, _strDefaultSiteId );
88 }
89 if ( !DatastoreService.existsKey( DSKEY_SERVER_HTTP_URL ) )
90 {
91 DatastoreService.setDataValue( DSKEY_SERVER_HTTP_URL, _strDefaultServerHttpUrl );
92 }
93 if ( !DatastoreService.existsKey( DSKEY_SERVER_HTTPS_URL ) )
94 {
95 DatastoreService.setDataValue( DSKEY_SERVER_HTTPS_URL, _strDefaultServerHttpsUrl );
96 }
97 if ( !DatastoreService.existsKey( DSKEY_AUTH_TOKEN ) )
98 {
99 DatastoreService.setDataValue( DSKEY_AUTH_TOKEN, _strDefaultAuthToken );
100 }
101 }
102
103
104
105
106
107
108
109
110
111
112
113
114
115 @Override
116 public void fillTemplate( Map<String, Object> rootModel, PageData data, int nMode, HttpServletRequest request )
117 {
118 if ( PluginService.isPluginEnable( PLUGIN_NAME ) && ( request != null ) )
119 {
120 Map<String, Object> model = new HashMap<String, Object>( );
121 String strSiteId = DatastoreService.getDataValue( DSKEY_SITE_ID, _strDefaultSiteId );
122 String strServerHttpUrl = DatastoreService.getDataValue( DSKEY_SERVER_HTTP_URL, _strDefaultServerHttpUrl );
123 String strServerHttpsUrl = DatastoreService.getDataValue( DSKEY_SERVER_HTTPS_URL, _strDefaultServerHttpsUrl );
124 model.put( MARK_SITE_ID, strSiteId );
125 model.put( MARK_SERVER_HTTP_URL, strServerHttpUrl );
126 model.put( MARK_SERVER_HTTPS_URL, strServerHttpsUrl );
127
128 HtmlTemplate template = AppTemplateService.getTemplate( TEMPLATE_MATOMO_INCLUDE, request.getLocale( ), model );
129
130 rootModel.put( MARK_MATOMO, template.getHtml( ) );
131 }
132 else
133 {
134 rootModel.put( MARK_MATOMO, "" );
135 }
136 }
137
138 }