caterpillar 1.4.4 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/.gitignore +9 -0
  2. data/ChangeLog +27 -0
  3. data/MIT-LICENSE +0 -4
  4. data/README.rdoc +3 -3
  5. data/Rakefile +6 -22
  6. data/caterpillar.gemspec +28 -0
  7. data/generators/caterpillar/caterpillar_generator.rb +12 -4
  8. data/generators/caterpillar/templates/config/portlets.rb +10 -2
  9. data/generators/caterpillar/templates/stylesheets/portlet_test_bench/main.css +2 -2
  10. data/init.rb +20 -8
  11. data/lib/caterpillar.rb +33 -27
  12. data/lib/caterpillar/config.rb +3 -1
  13. data/lib/caterpillar/helpers/liferay.rb +129 -132
  14. data/lib/caterpillar/helpers/portlet.rb +41 -0
  15. data/lib/caterpillar/liferay.rb +2 -3
  16. data/lib/caterpillar/navigation.rb +2 -4
  17. data/lib/caterpillar/parser.rb +1 -5
  18. data/lib/caterpillar/portlet.rb +20 -19
  19. data/lib/caterpillar/portlet_support.rb +9 -22
  20. data/lib/caterpillar/security.rb +20 -42
  21. data/lib/caterpillar/task.rb +17 -36
  22. data/lib/caterpillar/usage.rb +14 -10
  23. data/lib/caterpillar/util.rb +1 -1
  24. data/lib/java/rails-portlet-0.12.0.jar +0 -0
  25. data/lib/rails_gem_chooser.rb +14 -7
  26. data/lib/web/portlet.rb +1 -1
  27. data/portlet_test_bench/controllers/caterpillar/application.rb +0 -5
  28. data/portlet_test_bench/controllers/caterpillar/junit_controller.rb +30 -9
  29. data/portlet_test_bench/controllers/caterpillar/liferay_controller.rb +13 -3
  30. data/portlet_test_bench/controllers/caterpillar/session_controller.rb +3 -0
  31. data/portlet_test_bench/controllers/caterpillar/xhr_controller.rb +12 -1
  32. data/portlet_test_bench/views/caterpillar/application/_back_to_menu.html.erb +1 -1
  33. data/portlet_test_bench/views/caterpillar/application/index.html.erb +8 -1
  34. data/portlet_test_bench/views/caterpillar/application/portlet_test_bench.html.erb +26 -8
  35. data/portlet_test_bench/views/caterpillar/css/background.html.erb +4 -1
  36. data/portlet_test_bench/views/caterpillar/css/simple.html.erb +13 -9
  37. data/portlet_test_bench/views/caterpillar/liferay/session_variables.html.erb +3 -12
  38. data/portlet_test_bench/views/caterpillar/session/cookies.html.erb +5 -0
  39. data/portlet_test_bench/views/caterpillar/session/namespace.html.erb +14 -0
  40. data/portlet_test_bench/views/caterpillar/xhr/resource.html.erb +15 -0
  41. data/portlet_test_bench/views/caterpillar/xhr/time.html.erb +7 -6
  42. data/spec/app1/config/routes.rb +3 -0
  43. data/spec/app2/config/routes.rb +7 -0
  44. data/spec/app3/config/routes.rb +5 -0
  45. data/spec/caterpillar/helper_spec.rb +69 -0
  46. data/spec/caterpillar/task_spec.rb +192 -0
  47. data/spec/spec.opts +5 -0
  48. data/spec/spec_helper.rb +44 -0
  49. data/test/README +4 -0
  50. data/test/dtd/liferay-display_5_1_0.dtd +44 -44
  51. data/test/dtd/liferay-display_5_2_0.dtd +44 -44
  52. data/test/dtd/liferay-display_6_0_0.dtd +44 -44
  53. data/test/dtd/liferay-portlet-app_5_1_0.dtd +582 -582
  54. data/test/dtd/liferay-portlet-app_5_2_0.dtd +642 -642
  55. data/test/dtd/liferay-portlet-app_6_0_0.dtd +730 -730
  56. data/test/dtd/portlet-app_2_0.xsd +830 -830
  57. data/test/liferay_helpers_test.rb +94 -7
  58. data/test/portlet_support_test.rb +0 -18
  59. data/test/portlets_test.rb +6 -11
  60. data/test/xml_test.rb +4 -14
  61. metadata +53 -31
  62. data/lib/java/rails-portlet-0.10.1.jar +0 -0
@@ -1,643 +1,643 @@
1
- <!--
2
- This is the DTD for the Portlet Application parameters that are specific to
3
- Liferay Portal.
4
-
5
- <!DOCTYPE liferay-portlet-app PUBLIC
6
- "-//Liferay//DTD Portlet Application 5.2.0//EN"
7
- "http://www.liferay.com/dtd/liferay-portlet-app_5_2_0.dtd">
8
- -->
9
-
10
- <!--
11
- The liferay-portlet-app element is the root of the deployment descriptor for
12
- a Liferay portlet application.
13
- -->
14
- <!ELEMENT liferay-portlet-app (portlet*, role-mapper*, custom-user-attribute*)>
15
-
16
- <!--
17
- The portlet element contains the declarative data of a portlet.
18
- -->
19
- <!ELEMENT portlet (portlet-name, icon?, virtual-path?, struts-path?,
20
- configuration-path?, configuration-action-class?, indexer-class?,
21
- open-search-class?, scheduler-class?, portlet-url-class?,
22
- friendly-url-mapper-class?, url-encoder-class?, portlet-data-handler-class?,
23
- portlet-layout-listener-class?, poller-processor-class?,
24
- pop-message-listener-class?, social-activity-interpreter-class?,
25
- social-request-interpreter-class?, webdav-storage-token?, webdav-storage-class?,
26
- control-panel-entry-category?, control-panel-entry-weight?,
27
- control-panel-entry-class?, preferences-company-wide?,
28
- preferences-unique-per-layout?, preferences-owned-by-group?,
29
- use-default-template?, show-portlet-access-denied?, show-portlet-inactive?,
30
- action-url-redirect?, restore-current-view?, maximize-edit?, maximize-help?,
31
- pop-up-print?, layout-cacheable?, instanceable?, scopeable?,
32
- user-principal-strategy?, private-request-attributes?,
33
- private-session-attributes?, render-weight?, ajaxable?, header-portal-css*,
34
- header-portlet-css*, header-portal-javascript*, header-portlet-javascript*,
35
- footer-portal-css*, footer-portlet-css*, footer-portal-javascript*,
36
- footer-portlet-javascript*, css-class-wrapper?, facebook-integration?,
37
- add-default-resource?, system?, active?, include?)>
38
-
39
- <!--
40
- The portlet-name element contains the unique name of the portlet. This name must
41
- match the portlet-name specified in portlet.xml.
42
- -->
43
- <!ELEMENT portlet-name (#PCDATA)>
44
-
45
- <!--
46
- The icon element specifies an image that represents the portlet.
47
- -->
48
- <!ELEMENT icon (#PCDATA)>
49
-
50
- <!--
51
- The virtual-path value sets the virtual path used to override the default
52
- servlet context path.
53
-
54
- For example, suppose your portlet is deployed to the servlet path
55
- "/test-portlet". By default, the portal will return "/test-portlet" for the
56
- servlet context path. You can override it by setting virtual-path to "/virtual"
57
- and have the portal return "/virtual" for the servlet context path.
58
-
59
- The default value is "" which means this is not used.
60
- -->
61
- <!ELEMENT virtual-path (#PCDATA)>
62
-
63
- <!--
64
- Supppose the struts-path value is "mail". This tells the portal that all
65
- requests with the path mail/* are considered part of this portlet's scope. Users
66
- who request paths that match mail/* will only be granted access if they also
67
- have access to this portlet. This is true for both portlet requests and regular
68
- servlet requests.
69
- -->
70
- <!ELEMENT struts-path (#PCDATA)>
71
-
72
- <!--
73
- The configuration-path value is no longer available. Use
74
- configuration-action-class instead.
75
- -->
76
- <!ELEMENT configuration-path (#PCDATA)>
77
-
78
- <!--
79
- The configuration-action-class value must be a class that implements
80
- com.liferay.portal.kernel.portlet.ConfigurationAction and is called to allow
81
- users to configure the portlet at runtime.
82
-
83
- See:
84
-
85
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/action/ConfigurationActionImpl.html
86
- -->
87
- <!ELEMENT configuration-action-class (#PCDATA)>
88
-
89
- <!--
90
- The indexer-class value must be a class that implements
91
- com.liferay.portal.kernel.search.Indexer and is called to create or update a
92
- search index for the portlet.
93
-
94
- See:
95
-
96
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/util/Indexer.html
97
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/search/Indexer.html
98
- http://lucene.apache.org
99
- -->
100
- <!ELEMENT indexer-class (#PCDATA)>
101
-
102
- <!--
103
- The open-search-class value must be a class that implements
104
- com.liferay.portal.kernel.search.OpenSearch and is called to get search results
105
- in the OpenSearch 1.1 standard.
106
-
107
- See:
108
-
109
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/alfrescocontent/util/OpenSearch.html
110
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/search/OpenSearch.html
111
- http://www.opensearch.org
112
- -->
113
- <!ELEMENT open-search-class (#PCDATA)>
114
-
115
- <!--
116
- The scheduler-class value must be a class that implements
117
- com.liferay.portal.kernel.job.Scheduler and is called to schedule jobs for this
118
- portlet.
119
-
120
- See:
121
-
122
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/calendar/job/CalendarScheduler.html
123
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/job/Scheduler.html
124
- http://www.opensymphony.com/quartz
125
- -->
126
- <!ELEMENT scheduler-class (#PCDATA)>
127
-
128
- <!--
129
- The portlet-url-class value must be a class that extends
130
- com.liferay.portlet.PortletURLImplWrapper. Set this class to override the
131
- default portlet URL implementation.
132
-
133
- See:
134
-
135
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portal/struts/StrutsActionPortletURL.html
136
- -->
137
- <!ELEMENT portlet-url-class (#PCDATA)>
138
-
139
- <!--
140
- The friendly-url-mapper-class value must be a class that implements
141
- com.liferay.portal.kernel.portlet.FriendlyURLMapper. Use this if content inside
142
- a portlet needs to have a friendly URL. See the Message Boards portlet for an
143
- example of its uses.
144
-
145
- See:
146
-
147
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/MBFriendlyURLMapper.html
148
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/portlet/FriendlyURLMapper.html
149
- -->
150
- <!ELEMENT friendly-url-mapper-class (#PCDATA)>
151
-
152
- <!--
153
- The url-encoder-class value must be a class that implements
154
- com.liferay.portal.kernel.servlet.URLEncoder. Use this to set a custom
155
- URLEncoder that is used by the RenderResponse class to implement the encodeURL
156
- method. This is useful if you need to add custom logic to rewrite URLs.
157
- -->
158
- <!ELEMENT url-encoder-class (#PCDATA)>
159
-
160
- <!--
161
- The portlet-data-handler-class value must be a class that implements
162
- com.liferay.portal.kernel.lar.PortletDataHandler and is called when archiving
163
- tasks are run.
164
-
165
- See:
166
-
167
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/journal/lar/PortletDataHandlerImpl.html
168
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/lar/PortletDataHandler.html
169
- -->
170
- <!ELEMENT portlet-data-handler-class (#PCDATA)>
171
-
172
- <!--
173
- The portlet-layout-listener-class value must be a class that implements
174
- com.liferay.portal.kernel.portlet.PortletLayoutListener and is called when a portlet
175
- is added, moved, or removed from a layout.
176
-
177
- See:
178
-
179
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/journalcontent/JournalContentPortletLayoutListener.html
180
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/portlet/PortletLayoutListener.html
181
- -->
182
- <!ELEMENT portlet-layout-listener-class (#PCDATA)>
183
-
184
- <!--
185
- The poller-processor-class value must be a class that implements
186
- com.liferay.portal.kernel.poller.PollerProcessor and is triggered by the
187
- JavaScript class Liferay.Poller. It allows a portlet to use polling to be
188
- notified of data changes. See the Chat portlet for a real world implementation.
189
-
190
- See:
191
-
192
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/poller/PollerProcessor.html
193
- -->
194
- <!ELEMENT poller-processor-class (#PCDATA)>
195
-
196
- <!--
197
- The pop-message-listener-class value must be a class that implements
198
- com.liferay.portal.kernel.pop.MessageListener and is called when processing
199
- emails.
200
-
201
- See:
202
-
203
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/pop/MessageListenerImpl.html
204
- http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/pop/MessageListener.html
205
- -->
206
- <!ELEMENT pop-message-listener-class (#PCDATA)>
207
-
208
- <!--
209
- The social-activity-interpreter-class value must be a class that implements
210
- com.liferay.portlet.social.model.SocialActivityInterpreter and is called to
211
- interpret activities into friendly messages that are easily understandable by a
212
- human being.
213
-
214
- See:
215
-
216
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/social/MBActivityInterpreter.html
217
- http://docs.liferay.com/portal/5.2/javadocs/portal-service/com/liferay/portlet/social/model/SocialActivityInterpreter.html
218
- -->
219
- <!ELEMENT social-activity-interpreter-class (#PCDATA)>
220
-
221
- <!--
222
- The social-request-interpreter-class value must be a class that implements
223
- com.liferay.portlet.social.model.SocialRequestInterpreter and is called to
224
- interpret requests into friendly messages that are easily understandable by a
225
- human being.
226
-
227
- See:
228
-
229
- http://docs.liferay.com/portal/5.2/javadocs/portal-service/com/liferay/portlet/social/model/SocialRequestInterpreter.html
230
- -->
231
- <!ELEMENT social-request-interpreter-class (#PCDATA)>
232
-
233
- <!--
234
- The webdav-storage-token value is the WebDAV directory name for data managed by
235
- this portlet.
236
-
237
- See:
238
-
239
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/documentlibrary/webdav/DLWebDAVStorageImpl.html
240
- -->
241
- <!ELEMENT webdav-storage-token (#PCDATA)>
242
-
243
- <!--
244
- The webdav-storage-class value must be a class that implements
245
- com.liferay.portal.webdav.WebDAVStorage and allows data to be exposed via the
246
- WebDAV protocol.
247
-
248
- See:
249
-
250
- http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/documentlibrary/webdav/DLWebDAVStorageImpl.html
251
- -->
252
- <!ELEMENT webdav-storage-class (#PCDATA)>
253
-
254
- <!--
255
- Set the control-panel-entry-category value to "my", "content", "portal" or
256
- "server" to make this portlet available in the Control Panel under that
257
- category.
258
- -->
259
- <!ELEMENT control-panel-entry-category (#PCDATA)>
260
-
261
- <!--
262
- Set the control-panel-entry-weight value to a double number to control the
263
- position of the entry within its Control Panel category. Higher values mean
264
- that the entry will appear lower in the Control Panel menu.
265
- -->
266
- <!ELEMENT control-panel-entry-weight (#PCDATA)>
267
-
268
- <!--
269
- The control-panel-entry-class value must be a class that implements
270
- com.liferay.portlet.ControlPanelEntry and is called by the Control Panel to
271
- decide whether the portlet should be shown to a specific user in a specific
272
- context. The default value is set in portal.properties.
273
-
274
- See:
275
-
276
- http://docs.liferay.com/portal/5.2/javadocs/portal-service/com/liferay/portlet/ControlPanelEntry.html
277
- -->
278
- <!ELEMENT control-panel-entry-class (#PCDATA)>
279
-
280
- <!--
281
- Set the preferences-company-wide value to true if the preferences for the
282
- portlet are across the entire company. Setting this value to true means
283
- the value for preferences-unique-per-layout and preferences-owned-by-group are
284
- not used. The default value is false.
285
-
286
- For example, an administrator could set the preferences to an Announcements
287
- portlet that would save a message in the portlet's preferences. This message
288
- would then be used across all pages for that company. The portlet must not be
289
- instanceable because instanceable portlets have uniquely generated portlet ids.
290
-
291
- The default behavior of the bundled Announcements portlet sets the instanceable
292
- value to true so that normal users cannot create company wide messages. A future
293
- release would include permissions for the edit mode versus the view mode which
294
- would allow an administrator to set the message while users would just view the
295
- message.
296
- -->
297
- <!ELEMENT preferences-company-wide (#PCDATA)>
298
-
299
- <!--
300
- Set the preferences-unique-per-layout value to true if the preferences for the
301
- portlet are unique across all pages. If set to false, the preferences for the
302
- portlet are shared across all pages. The default value is true.
303
-
304
- The preferences-unique-per-layout element is used in combination with the
305
- preferences-owned-by-group element. See the comments for the
306
- preferences-owned-by-group element for more information.
307
- -->
308
- <!ELEMENT preferences-unique-per-layout (#PCDATA)>
309
-
310
- <!--
311
- Set the preferences-owned-by-group value to true if the preferences for the
312
- portlet are owned by the group when the portlet is shown in a group page. If
313
- set to false, the preferences are owned by the user at all times. The default
314
- value is true.
315
-
316
- Suppose the Stocks portlet has preferences-unique-per-layout set to true and
317
- preferences-owned-by-group set to false. Users can set a different list of
318
- stocks for every personal page. Users can set a different list of stocks for
319
- every community page.
320
-
321
- Suppose the Stocks portlet has preferences-unique-per-layout set to false and
322
- preferences-owned-by-group set to false. Users can set one list of stocks to be
323
- shared across all personal pages. Users can set one list of stocks to be shared
324
- across a community's set of pages.
325
-
326
- Suppose the Stocks portlet has preferences-unique-per-layout set to true and
327
- preferences-owned-by-group set to true. Users can set a different list of stocks
328
- for every personal page. Administrators set the portlet preferences for users in
329
- a community page. Administrators can set a different list of stocks for every
330
- community page that are then shared by all users within a community.
331
-
332
- Suppose the Stocks portlet has preferences-unique-per-layout set to false and
333
- preferences-owned-by-group set to true. Users can set one list of stocks to be
334
- shared across all personal pages. Administrators set the portlet preferences for
335
- users in a community page. Administrators can set one list of stocks to be
336
- shared by all users across a community's set of pages.
337
- -->
338
- <!ELEMENT preferences-owned-by-group (#PCDATA)>
339
-
340
- <!--
341
- Set the use-default-template value to true if the portlet uses the default
342
- template to decorate and wrap content. Setting this to false allows the
343
- developer to own and maintain the portlet's entire outputted content. The
344
- default value is true.
345
-
346
- The most common use of this is if you want the portlet to look different from
347
- the other portlets or if you want the portlet to not have borders around the
348
- outputted content.
349
- -->
350
- <!ELEMENT use-default-template (#PCDATA)>
351
-
352
- <!--
353
- Set the show-portlet-access-denied value to true if users are shown the portlet
354
- with an access denied message if they do not have access to the portlet. If set
355
- to false, users are never shown the portlet if they do not have access to the
356
- portlet. The default value is set in portal.properties.
357
-
358
- See:
359
-
360
- http://www.liferay.com/page/guest/documentation/development/properties
361
- -->
362
- <!ELEMENT show-portlet-access-denied (#PCDATA)>
363
-
364
- <!--
365
- Set the show-portlet-inactive value to true if users are shown the portlet
366
- with an inactive message if the portlet is inactive. If set to false, users are
367
- never shown the portlet if the portlet is inactive. The default value is set in
368
- portal.properties.
369
-
370
- http://www.liferay.com/page/guest/documentation/development/properties
371
- -->
372
- <!ELEMENT show-portlet-inactive (#PCDATA)>
373
-
374
- <!--
375
- Set the action-url-redirect value to true if an action URL for this portlet
376
- should cause an auto redirect. This helps prevent double submits. The default
377
- value is false.
378
- -->
379
- <!ELEMENT action-url-redirect (#PCDATA)>
380
-
381
- <!--
382
- Set the restore-current-view value to true if the portlet restores to the
383
- current view when toggling between maximized and normal states. If set to false,
384
- the portlet will reset the current view when toggling between maximized and
385
- normal states. The default value is true.
386
- -->
387
- <!ELEMENT restore-current-view (#PCDATA)>
388
-
389
- <!--
390
- Set the maximize-edit value to true if the portlet goes into the maximized state
391
- when the user goes into the edit mode. This only affects the default portal
392
- icons and not what may be programmatically set by the portlet developer.
393
- The default value is false.
394
- -->
395
- <!ELEMENT maximize-edit (#PCDATA)>
396
-
397
- <!--
398
- Set the maximize-help value to true if the portlet goes into the maximized state
399
- when the user goes into the help mode. This only affects the default portal
400
- icons and not what may be programmatically set by the portlet developer.
401
- The default value is false.
402
- -->
403
- <!ELEMENT maximize-help (#PCDATA)>
404
-
405
- <!--
406
- Set the pop-up-print value to true if the portlet goes into the pop up state
407
- when the user goes into the print mode. This only affects the default portal
408
- icons and not what may be programmatically set by the portlet developer.
409
- The default value is true.
410
- -->
411
- <!ELEMENT pop-up-print (#PCDATA)>
412
-
413
- <!--
414
- Set the layout-cacheable flag to true if the data contained in this portlet can
415
- will never change unless the layout or Journal portlet entry is changed.
416
- -->
417
- <!ELEMENT layout-cacheable (#PCDATA)>
418
-
419
- <!--
420
- Set the instanceable value to true if the portlet can appear multiple times on a
421
- page. If set to false, the portlet can only appear once on a page. The default
422
- value is false.
423
- -->
424
- <!ELEMENT instanceable (#PCDATA)>
425
-
426
- <!--
427
- If the scopeable is set to true, an administrator will be able to configure the
428
- scope of the data of the portlet to either the current community (default),
429
- the current layout, or the scope of any other layout of the community that
430
- already exists. Portlets that want to support this must be programmed to obtain
431
- the proper scope group id according to the configuration and scope their data
432
- accordingly. The default is false.
433
- -->
434
- <!ELEMENT scopeable (#PCDATA)>
435
-
436
- <!--
437
- Set the user-principal-strategy value to either "userId" or "screenName".
438
- Calling request.getRemoteUser() will normally return the user id. However, some
439
- portlets may need the user principal returned to be screen name instead.
440
- -->
441
- <!ELEMENT user-principal-strategy (#PCDATA)>
442
-
443
- <!--
444
- Set the private-request-attributes value to true if the portlet does not share
445
- request attributes with the portal or any other portlet. The default value is
446
- true. The property "request.shared.attributes" in portal.properties specifies
447
- which request attributes are shared even when the private-request-attributes
448
- value is true.
449
- -->
450
- <!ELEMENT private-request-attributes (#PCDATA)>
451
-
452
- <!--
453
- Set the private-session-attributes value to true if the portlet does not share
454
- session attributes with the portal. The default value is true. The property
455
- "session.shared.attributes" in portal.properties specifies which session
456
- attributes are shared even when the private-session-attributes value is true.
457
- -->
458
- <!ELEMENT private-session-attributes (#PCDATA)>
459
-
460
- <!--
461
- The default value of render-weight is 1. If set to a value less than 1, the
462
- portlet is rendered in parallel. If set to a value of 1 or greater, then the
463
- portlet is rendered serially. Portlets with a greater render weight have greater
464
- priority and will be rendered before portlets with a lower render weight.
465
-
466
- If the ajaxable value is set to false, then render-weight is always set to 1
467
- if it is set to a value less than 1. This means ajaxable can override
468
- render-weight if ajaxable is set to false.
469
- -->
470
- <!ELEMENT render-weight (#PCDATA)>
471
-
472
- <!--
473
- The default value of ajaxable is true. If set to false, then this portlet can
474
- never be displayed via Ajax.
475
- -->
476
- <!ELEMENT ajaxable (#PCDATA)>
477
-
478
- <!--
479
- Set the path of CSS that will be referenced in the page's header relative to the
480
- portal's context path.
481
- -->
482
- <!ELEMENT header-portal-css (#PCDATA)>
483
-
484
- <!--
485
- Set the path of CSS that will be referenced in the page's header relative to the
486
- portlet's context path.
487
- -->
488
- <!ELEMENT header-portlet-css (#PCDATA)>
489
-
490
- <!--
491
- Set the path of JavaScript that will be referenced in the page's header relative
492
- to the portal's context path.
493
- -->
494
- <!ELEMENT header-portal-javascript (#PCDATA)>
495
-
496
- <!--
497
- Set the path of JavaScript that will be referenced in the page's header relative
498
- to the portlet's context path.
499
- -->
500
- <!ELEMENT header-portlet-javascript (#PCDATA)>
501
-
502
- <!--
503
- Set the path of CSS that will be referenced in the page's footer relative to the
504
- portal's context path.
505
- -->
506
- <!ELEMENT footer-portal-css (#PCDATA)>
507
-
508
- <!--
509
- Set the path of CSS that will be referenced in the page's footer relative to the
510
- portlet's context path.
511
- -->
512
- <!ELEMENT footer-portlet-css (#PCDATA)>
513
-
514
- <!--
515
- Set the path of JavaScript that will be referenced in the page's footer relative
516
- to the portal's context path.
517
- -->
518
- <!ELEMENT footer-portal-javascript (#PCDATA)>
519
-
520
- <!--
521
- Set the path of JavaScript that will be referenced in the page's footer relative
522
- to the portlet's context path.
523
- -->
524
- <!ELEMENT footer-portlet-javascript (#PCDATA)>
525
-
526
- <!--
527
- Set name of the CSS class that will be injected in the DIV that wraps this
528
- portlet.
529
- -->
530
- <!ELEMENT css-class-wrapper (#PCDATA)>
531
-
532
- <!--
533
- Set the facebook-integration value to either "fbml" or "iframe". The default
534
- value is "iframe" because IFrame integration will work without requiring any
535
- changes to your code. See the Message Boards portlet for minor changes that were
536
- made to make it FBML compliant. Note that the Liferay tag libraries already
537
- output FBML automatically if a request is made by Facebook.
538
- -->
539
- <!ELEMENT facebook-integration (#PCDATA)>
540
-
541
- <!--
542
- If the add-default-resource value is set to false, and the portlet does not
543
- belong to the page but has been dynamically added, then the user will see that
544
- he does not have permissions to view the portlet. If the add-default-resource
545
- value is set to true, the default portlet resources and permissions are added to
546
- the page. The user can then view the portlet. Most portlets are harmless and can
547
- benefit from this flexibility. However, to prevent security loop holes, the
548
- default value is false.
549
-
550
- The properties "portlet.add.default.resource.check.enabled" and
551
- "portlet.add.default.resource.check.whitelist" in portal.properties allow
552
- security checks to be configured around this behavior.
553
- -->
554
- <!ELEMENT add-default-resource (#PCDATA)>
555
-
556
- <!--
557
- Set the system value to true if the portlet is a system portlet that a user
558
- cannot manually add to their page. The default value is false.
559
- -->
560
- <!ELEMENT system (#PCDATA)>
561
-
562
- <!--
563
- Set the active value to true if the portlet is active and available to users.
564
- If set to false, the portlet will not be active or available to users. The
565
- default value is true.
566
-
567
- This value can be changed at runtime via the Admin portlet.
568
- -->
569
- <!ELEMENT active (#PCDATA)>
570
-
571
- <!--
572
- Set the include value to true to if the portlet is available to the portal. If
573
- set to false, the portlet is not available to the portal. The default value is
574
- true.
575
-
576
- Portlets that are not included as part of the portal are never available to the
577
- user to be made active or inactive. As far the user knows, the portlets do not
578
- even exist in the system. This allows the Liferay developers to bundle a lot of
579
- portlets in one core package, and yet allow custom deployments to turn on or off
580
- individual portlets or sets of portlets. This follows the Siebel and Microsoft
581
- model of bundling everything in one core package, but using XML configuration or
582
- registry settings to turn on and off features or sets of features.
583
-
584
- We do not recommend that custom deployers modify the core source by removing
585
- specific portlets because this prevents an easy upgrade process in the future.
586
- The best way to turn on and off portlets is to set the include element. The
587
- advantage of this way of doing things is that it becomes very easy to deploy
588
- Liferay. All features are available in one package. The disadvantage is that by
589
- not utilizing all of the portlets, you are wasting disk space and may even take
590
- a small but static memory footprint. However, we feel that the extra disk space
591
- and memory usage is a cheap price to pay in order to provide an easy
592
- installation and upgrade path.
593
- -->
594
- <!ELEMENT include (#PCDATA)>
595
-
596
- <!--
597
- The role-mapper contains two names specified by role-name and role-link. The
598
- role-name value must be a role specified in portlet.xml. The role-link value
599
- must be the name of a Liferay role that exists in the database. The role-mapper
600
- element pairs up these two values to map roles from portlet.xml to roles in
601
- the Liferay database.
602
-
603
- This is needed because Liferay roles may contain spaces whereas roles in
604
- portlet.xml cannot contain spaces. This also adds extra flexibility where the
605
- portlet vendor does not need to have any knowledge about Liferay's roles.
606
- -->
607
- <!ELEMENT role-mapper (role-name, role-link)>
608
-
609
- <!--
610
- See the comments in role-mapper element.
611
- -->
612
- <!ELEMENT role-name (#PCDATA)>
613
-
614
- <!--
615
- See the comments in role-mapper element.
616
- -->
617
- <!ELEMENT role-link (#PCDATA)>
618
-
619
- <!--
620
- The custom-user-attribute contains a list of names that are retrieved using a
621
- custom class that extends com.liferay.portlet.CustomUserAttributes.
622
-
623
- Download the sample hot deployable portlet WAR named test.war. Look for the
624
- class com.sample.strutsliferay.portlet.SampleUserAttributes to see how it
625
- associates the custom user attribute "user.name.test" with the value
626
- "Test Name". This class could be modified to read custom user attributes from
627
- another datasource that may be a database, a LDAP server, or a web service.
628
-
629
- See:
630
-
631
- http://www.liferay.com/page/guest/documentation/development/hot_deploy
632
- -->
633
- <!ELEMENT custom-user-attribute (name+, custom-class)>
634
-
635
- <!--
636
- See the comments in custom-user-attribute element.
637
- -->
638
- <!ELEMENT name (#PCDATA)>
639
-
640
- <!--
641
- See the comments in custom-user-attribute element.
642
- -->
1
+ <!--
2
+ This is the DTD for the Portlet Application parameters that are specific to
3
+ Liferay Portal.
4
+
5
+ <!DOCTYPE liferay-portlet-app PUBLIC
6
+ "-//Liferay//DTD Portlet Application 5.2.0//EN"
7
+ "http://www.liferay.com/dtd/liferay-portlet-app_5_2_0.dtd">
8
+ -->
9
+
10
+ <!--
11
+ The liferay-portlet-app element is the root of the deployment descriptor for
12
+ a Liferay portlet application.
13
+ -->
14
+ <!ELEMENT liferay-portlet-app (portlet*, role-mapper*, custom-user-attribute*)>
15
+
16
+ <!--
17
+ The portlet element contains the declarative data of a portlet.
18
+ -->
19
+ <!ELEMENT portlet (portlet-name, icon?, virtual-path?, struts-path?,
20
+ configuration-path?, configuration-action-class?, indexer-class?,
21
+ open-search-class?, scheduler-class?, portlet-url-class?,
22
+ friendly-url-mapper-class?, url-encoder-class?, portlet-data-handler-class?,
23
+ portlet-layout-listener-class?, poller-processor-class?,
24
+ pop-message-listener-class?, social-activity-interpreter-class?,
25
+ social-request-interpreter-class?, webdav-storage-token?, webdav-storage-class?,
26
+ control-panel-entry-category?, control-panel-entry-weight?,
27
+ control-panel-entry-class?, preferences-company-wide?,
28
+ preferences-unique-per-layout?, preferences-owned-by-group?,
29
+ use-default-template?, show-portlet-access-denied?, show-portlet-inactive?,
30
+ action-url-redirect?, restore-current-view?, maximize-edit?, maximize-help?,
31
+ pop-up-print?, layout-cacheable?, instanceable?, scopeable?,
32
+ user-principal-strategy?, private-request-attributes?,
33
+ private-session-attributes?, render-weight?, ajaxable?, header-portal-css*,
34
+ header-portlet-css*, header-portal-javascript*, header-portlet-javascript*,
35
+ footer-portal-css*, footer-portlet-css*, footer-portal-javascript*,
36
+ footer-portlet-javascript*, css-class-wrapper?, facebook-integration?,
37
+ add-default-resource?, system?, active?, include?)>
38
+
39
+ <!--
40
+ The portlet-name element contains the unique name of the portlet. This name must
41
+ match the portlet-name specified in portlet.xml.
42
+ -->
43
+ <!ELEMENT portlet-name (#PCDATA)>
44
+
45
+ <!--
46
+ The icon element specifies an image that represents the portlet.
47
+ -->
48
+ <!ELEMENT icon (#PCDATA)>
49
+
50
+ <!--
51
+ The virtual-path value sets the virtual path used to override the default
52
+ servlet context path.
53
+
54
+ For example, suppose your portlet is deployed to the servlet path
55
+ "/test-portlet". By default, the portal will return "/test-portlet" for the
56
+ servlet context path. You can override it by setting virtual-path to "/virtual"
57
+ and have the portal return "/virtual" for the servlet context path.
58
+
59
+ The default value is "" which means this is not used.
60
+ -->
61
+ <!ELEMENT virtual-path (#PCDATA)>
62
+
63
+ <!--
64
+ Supppose the struts-path value is "mail". This tells the portal that all
65
+ requests with the path mail/* are considered part of this portlet's scope. Users
66
+ who request paths that match mail/* will only be granted access if they also
67
+ have access to this portlet. This is true for both portlet requests and regular
68
+ servlet requests.
69
+ -->
70
+ <!ELEMENT struts-path (#PCDATA)>
71
+
72
+ <!--
73
+ The configuration-path value is no longer available. Use
74
+ configuration-action-class instead.
75
+ -->
76
+ <!ELEMENT configuration-path (#PCDATA)>
77
+
78
+ <!--
79
+ The configuration-action-class value must be a class that implements
80
+ com.liferay.portal.kernel.portlet.ConfigurationAction and is called to allow
81
+ users to configure the portlet at runtime.
82
+
83
+ See:
84
+
85
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/action/ConfigurationActionImpl.html
86
+ -->
87
+ <!ELEMENT configuration-action-class (#PCDATA)>
88
+
89
+ <!--
90
+ The indexer-class value must be a class that implements
91
+ com.liferay.portal.kernel.search.Indexer and is called to create or update a
92
+ search index for the portlet.
93
+
94
+ See:
95
+
96
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/util/Indexer.html
97
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/search/Indexer.html
98
+ http://lucene.apache.org
99
+ -->
100
+ <!ELEMENT indexer-class (#PCDATA)>
101
+
102
+ <!--
103
+ The open-search-class value must be a class that implements
104
+ com.liferay.portal.kernel.search.OpenSearch and is called to get search results
105
+ in the OpenSearch 1.1 standard.
106
+
107
+ See:
108
+
109
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/alfrescocontent/util/OpenSearch.html
110
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/search/OpenSearch.html
111
+ http://www.opensearch.org
112
+ -->
113
+ <!ELEMENT open-search-class (#PCDATA)>
114
+
115
+ <!--
116
+ The scheduler-class value must be a class that implements
117
+ com.liferay.portal.kernel.job.Scheduler and is called to schedule jobs for this
118
+ portlet.
119
+
120
+ See:
121
+
122
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/calendar/job/CalendarScheduler.html
123
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/job/Scheduler.html
124
+ http://www.opensymphony.com/quartz
125
+ -->
126
+ <!ELEMENT scheduler-class (#PCDATA)>
127
+
128
+ <!--
129
+ The portlet-url-class value must be a class that extends
130
+ com.liferay.portlet.PortletURLImplWrapper. Set this class to override the
131
+ default portlet URL implementation.
132
+
133
+ See:
134
+
135
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portal/struts/StrutsActionPortletURL.html
136
+ -->
137
+ <!ELEMENT portlet-url-class (#PCDATA)>
138
+
139
+ <!--
140
+ The friendly-url-mapper-class value must be a class that implements
141
+ com.liferay.portal.kernel.portlet.FriendlyURLMapper. Use this if content inside
142
+ a portlet needs to have a friendly URL. See the Message Boards portlet for an
143
+ example of its uses.
144
+
145
+ See:
146
+
147
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/MBFriendlyURLMapper.html
148
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/portlet/FriendlyURLMapper.html
149
+ -->
150
+ <!ELEMENT friendly-url-mapper-class (#PCDATA)>
151
+
152
+ <!--
153
+ The url-encoder-class value must be a class that implements
154
+ com.liferay.portal.kernel.servlet.URLEncoder. Use this to set a custom
155
+ URLEncoder that is used by the RenderResponse class to implement the encodeURL
156
+ method. This is useful if you need to add custom logic to rewrite URLs.
157
+ -->
158
+ <!ELEMENT url-encoder-class (#PCDATA)>
159
+
160
+ <!--
161
+ The portlet-data-handler-class value must be a class that implements
162
+ com.liferay.portal.kernel.lar.PortletDataHandler and is called when archiving
163
+ tasks are run.
164
+
165
+ See:
166
+
167
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/journal/lar/PortletDataHandlerImpl.html
168
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/lar/PortletDataHandler.html
169
+ -->
170
+ <!ELEMENT portlet-data-handler-class (#PCDATA)>
171
+
172
+ <!--
173
+ The portlet-layout-listener-class value must be a class that implements
174
+ com.liferay.portal.kernel.portlet.PortletLayoutListener and is called when a portlet
175
+ is added, moved, or removed from a layout.
176
+
177
+ See:
178
+
179
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/journalcontent/JournalContentPortletLayoutListener.html
180
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/portlet/PortletLayoutListener.html
181
+ -->
182
+ <!ELEMENT portlet-layout-listener-class (#PCDATA)>
183
+
184
+ <!--
185
+ The poller-processor-class value must be a class that implements
186
+ com.liferay.portal.kernel.poller.PollerProcessor and is triggered by the
187
+ JavaScript class Liferay.Poller. It allows a portlet to use polling to be
188
+ notified of data changes. See the Chat portlet for a real world implementation.
189
+
190
+ See:
191
+
192
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/poller/PollerProcessor.html
193
+ -->
194
+ <!ELEMENT poller-processor-class (#PCDATA)>
195
+
196
+ <!--
197
+ The pop-message-listener-class value must be a class that implements
198
+ com.liferay.portal.kernel.pop.MessageListener and is called when processing
199
+ emails.
200
+
201
+ See:
202
+
203
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/pop/MessageListenerImpl.html
204
+ http://docs.liferay.com/portal/5.2/javadocs/portal-kernel/com/liferay/portal/kernel/pop/MessageListener.html
205
+ -->
206
+ <!ELEMENT pop-message-listener-class (#PCDATA)>
207
+
208
+ <!--
209
+ The social-activity-interpreter-class value must be a class that implements
210
+ com.liferay.portlet.social.model.SocialActivityInterpreter and is called to
211
+ interpret activities into friendly messages that are easily understandable by a
212
+ human being.
213
+
214
+ See:
215
+
216
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/messageboards/social/MBActivityInterpreter.html
217
+ http://docs.liferay.com/portal/5.2/javadocs/portal-service/com/liferay/portlet/social/model/SocialActivityInterpreter.html
218
+ -->
219
+ <!ELEMENT social-activity-interpreter-class (#PCDATA)>
220
+
221
+ <!--
222
+ The social-request-interpreter-class value must be a class that implements
223
+ com.liferay.portlet.social.model.SocialRequestInterpreter and is called to
224
+ interpret requests into friendly messages that are easily understandable by a
225
+ human being.
226
+
227
+ See:
228
+
229
+ http://docs.liferay.com/portal/5.2/javadocs/portal-service/com/liferay/portlet/social/model/SocialRequestInterpreter.html
230
+ -->
231
+ <!ELEMENT social-request-interpreter-class (#PCDATA)>
232
+
233
+ <!--
234
+ The webdav-storage-token value is the WebDAV directory name for data managed by
235
+ this portlet.
236
+
237
+ See:
238
+
239
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/documentlibrary/webdav/DLWebDAVStorageImpl.html
240
+ -->
241
+ <!ELEMENT webdav-storage-token (#PCDATA)>
242
+
243
+ <!--
244
+ The webdav-storage-class value must be a class that implements
245
+ com.liferay.portal.webdav.WebDAVStorage and allows data to be exposed via the
246
+ WebDAV protocol.
247
+
248
+ See:
249
+
250
+ http://docs.liferay.com/portal/5.2/javadocs/portal-impl/com/liferay/portlet/documentlibrary/webdav/DLWebDAVStorageImpl.html
251
+ -->
252
+ <!ELEMENT webdav-storage-class (#PCDATA)>
253
+
254
+ <!--
255
+ Set the control-panel-entry-category value to "my", "content", "portal" or
256
+ "server" to make this portlet available in the Control Panel under that
257
+ category.
258
+ -->
259
+ <!ELEMENT control-panel-entry-category (#PCDATA)>
260
+
261
+ <!--
262
+ Set the control-panel-entry-weight value to a double number to control the
263
+ position of the entry within its Control Panel category. Higher values mean
264
+ that the entry will appear lower in the Control Panel menu.
265
+ -->
266
+ <!ELEMENT control-panel-entry-weight (#PCDATA)>
267
+
268
+ <!--
269
+ The control-panel-entry-class value must be a class that implements
270
+ com.liferay.portlet.ControlPanelEntry and is called by the Control Panel to
271
+ decide whether the portlet should be shown to a specific user in a specific
272
+ context. The default value is set in portal.properties.
273
+
274
+ See:
275
+
276
+ http://docs.liferay.com/portal/5.2/javadocs/portal-service/com/liferay/portlet/ControlPanelEntry.html
277
+ -->
278
+ <!ELEMENT control-panel-entry-class (#PCDATA)>
279
+
280
+ <!--
281
+ Set the preferences-company-wide value to true if the preferences for the
282
+ portlet are across the entire company. Setting this value to true means
283
+ the value for preferences-unique-per-layout and preferences-owned-by-group are
284
+ not used. The default value is false.
285
+
286
+ For example, an administrator could set the preferences to an Announcements
287
+ portlet that would save a message in the portlet's preferences. This message
288
+ would then be used across all pages for that company. The portlet must not be
289
+ instanceable because instanceable portlets have uniquely generated portlet ids.
290
+
291
+ The default behavior of the bundled Announcements portlet sets the instanceable
292
+ value to true so that normal users cannot create company wide messages. A future
293
+ release would include permissions for the edit mode versus the view mode which
294
+ would allow an administrator to set the message while users would just view the
295
+ message.
296
+ -->
297
+ <!ELEMENT preferences-company-wide (#PCDATA)>
298
+
299
+ <!--
300
+ Set the preferences-unique-per-layout value to true if the preferences for the
301
+ portlet are unique across all pages. If set to false, the preferences for the
302
+ portlet are shared across all pages. The default value is true.
303
+
304
+ The preferences-unique-per-layout element is used in combination with the
305
+ preferences-owned-by-group element. See the comments for the
306
+ preferences-owned-by-group element for more information.
307
+ -->
308
+ <!ELEMENT preferences-unique-per-layout (#PCDATA)>
309
+
310
+ <!--
311
+ Set the preferences-owned-by-group value to true if the preferences for the
312
+ portlet are owned by the group when the portlet is shown in a group page. If
313
+ set to false, the preferences are owned by the user at all times. The default
314
+ value is true.
315
+
316
+ Suppose the Stocks portlet has preferences-unique-per-layout set to true and
317
+ preferences-owned-by-group set to false. Users can set a different list of
318
+ stocks for every personal page. Users can set a different list of stocks for
319
+ every community page.
320
+
321
+ Suppose the Stocks portlet has preferences-unique-per-layout set to false and
322
+ preferences-owned-by-group set to false. Users can set one list of stocks to be
323
+ shared across all personal pages. Users can set one list of stocks to be shared
324
+ across a community's set of pages.
325
+
326
+ Suppose the Stocks portlet has preferences-unique-per-layout set to true and
327
+ preferences-owned-by-group set to true. Users can set a different list of stocks
328
+ for every personal page. Administrators set the portlet preferences for users in
329
+ a community page. Administrators can set a different list of stocks for every
330
+ community page that are then shared by all users within a community.
331
+
332
+ Suppose the Stocks portlet has preferences-unique-per-layout set to false and
333
+ preferences-owned-by-group set to true. Users can set one list of stocks to be
334
+ shared across all personal pages. Administrators set the portlet preferences for
335
+ users in a community page. Administrators can set one list of stocks to be
336
+ shared by all users across a community's set of pages.
337
+ -->
338
+ <!ELEMENT preferences-owned-by-group (#PCDATA)>
339
+
340
+ <!--
341
+ Set the use-default-template value to true if the portlet uses the default
342
+ template to decorate and wrap content. Setting this to false allows the
343
+ developer to own and maintain the portlet's entire outputted content. The
344
+ default value is true.
345
+
346
+ The most common use of this is if you want the portlet to look different from
347
+ the other portlets or if you want the portlet to not have borders around the
348
+ outputted content.
349
+ -->
350
+ <!ELEMENT use-default-template (#PCDATA)>
351
+
352
+ <!--
353
+ Set the show-portlet-access-denied value to true if users are shown the portlet
354
+ with an access denied message if they do not have access to the portlet. If set
355
+ to false, users are never shown the portlet if they do not have access to the
356
+ portlet. The default value is set in portal.properties.
357
+
358
+ See:
359
+
360
+ http://www.liferay.com/page/guest/documentation/development/properties
361
+ -->
362
+ <!ELEMENT show-portlet-access-denied (#PCDATA)>
363
+
364
+ <!--
365
+ Set the show-portlet-inactive value to true if users are shown the portlet
366
+ with an inactive message if the portlet is inactive. If set to false, users are
367
+ never shown the portlet if the portlet is inactive. The default value is set in
368
+ portal.properties.
369
+
370
+ http://www.liferay.com/page/guest/documentation/development/properties
371
+ -->
372
+ <!ELEMENT show-portlet-inactive (#PCDATA)>
373
+
374
+ <!--
375
+ Set the action-url-redirect value to true if an action URL for this portlet
376
+ should cause an auto redirect. This helps prevent double submits. The default
377
+ value is false.
378
+ -->
379
+ <!ELEMENT action-url-redirect (#PCDATA)>
380
+
381
+ <!--
382
+ Set the restore-current-view value to true if the portlet restores to the
383
+ current view when toggling between maximized and normal states. If set to false,
384
+ the portlet will reset the current view when toggling between maximized and
385
+ normal states. The default value is true.
386
+ -->
387
+ <!ELEMENT restore-current-view (#PCDATA)>
388
+
389
+ <!--
390
+ Set the maximize-edit value to true if the portlet goes into the maximized state
391
+ when the user goes into the edit mode. This only affects the default portal
392
+ icons and not what may be programmatically set by the portlet developer.
393
+ The default value is false.
394
+ -->
395
+ <!ELEMENT maximize-edit (#PCDATA)>
396
+
397
+ <!--
398
+ Set the maximize-help value to true if the portlet goes into the maximized state
399
+ when the user goes into the help mode. This only affects the default portal
400
+ icons and not what may be programmatically set by the portlet developer.
401
+ The default value is false.
402
+ -->
403
+ <!ELEMENT maximize-help (#PCDATA)>
404
+
405
+ <!--
406
+ Set the pop-up-print value to true if the portlet goes into the pop up state
407
+ when the user goes into the print mode. This only affects the default portal
408
+ icons and not what may be programmatically set by the portlet developer.
409
+ The default value is true.
410
+ -->
411
+ <!ELEMENT pop-up-print (#PCDATA)>
412
+
413
+ <!--
414
+ Set the layout-cacheable flag to true if the data contained in this portlet can
415
+ will never change unless the layout or Journal portlet entry is changed.
416
+ -->
417
+ <!ELEMENT layout-cacheable (#PCDATA)>
418
+
419
+ <!--
420
+ Set the instanceable value to true if the portlet can appear multiple times on a
421
+ page. If set to false, the portlet can only appear once on a page. The default
422
+ value is false.
423
+ -->
424
+ <!ELEMENT instanceable (#PCDATA)>
425
+
426
+ <!--
427
+ If the scopeable is set to true, an administrator will be able to configure the
428
+ scope of the data of the portlet to either the current community (default),
429
+ the current layout, or the scope of any other layout of the community that
430
+ already exists. Portlets that want to support this must be programmed to obtain
431
+ the proper scope group id according to the configuration and scope their data
432
+ accordingly. The default is false.
433
+ -->
434
+ <!ELEMENT scopeable (#PCDATA)>
435
+
436
+ <!--
437
+ Set the user-principal-strategy value to either "userId" or "screenName".
438
+ Calling request.getRemoteUser() will normally return the user id. However, some
439
+ portlets may need the user principal returned to be screen name instead.
440
+ -->
441
+ <!ELEMENT user-principal-strategy (#PCDATA)>
442
+
443
+ <!--
444
+ Set the private-request-attributes value to true if the portlet does not share
445
+ request attributes with the portal or any other portlet. The default value is
446
+ true. The property "request.shared.attributes" in portal.properties specifies
447
+ which request attributes are shared even when the private-request-attributes
448
+ value is true.
449
+ -->
450
+ <!ELEMENT private-request-attributes (#PCDATA)>
451
+
452
+ <!--
453
+ Set the private-session-attributes value to true if the portlet does not share
454
+ session attributes with the portal. The default value is true. The property
455
+ "session.shared.attributes" in portal.properties specifies which session
456
+ attributes are shared even when the private-session-attributes value is true.
457
+ -->
458
+ <!ELEMENT private-session-attributes (#PCDATA)>
459
+
460
+ <!--
461
+ The default value of render-weight is 1. If set to a value less than 1, the
462
+ portlet is rendered in parallel. If set to a value of 1 or greater, then the
463
+ portlet is rendered serially. Portlets with a greater render weight have greater
464
+ priority and will be rendered before portlets with a lower render weight.
465
+
466
+ If the ajaxable value is set to false, then render-weight is always set to 1
467
+ if it is set to a value less than 1. This means ajaxable can override
468
+ render-weight if ajaxable is set to false.
469
+ -->
470
+ <!ELEMENT render-weight (#PCDATA)>
471
+
472
+ <!--
473
+ The default value of ajaxable is true. If set to false, then this portlet can
474
+ never be displayed via Ajax.
475
+ -->
476
+ <!ELEMENT ajaxable (#PCDATA)>
477
+
478
+ <!--
479
+ Set the path of CSS that will be referenced in the page's header relative to the
480
+ portal's context path.
481
+ -->
482
+ <!ELEMENT header-portal-css (#PCDATA)>
483
+
484
+ <!--
485
+ Set the path of CSS that will be referenced in the page's header relative to the
486
+ portlet's context path.
487
+ -->
488
+ <!ELEMENT header-portlet-css (#PCDATA)>
489
+
490
+ <!--
491
+ Set the path of JavaScript that will be referenced in the page's header relative
492
+ to the portal's context path.
493
+ -->
494
+ <!ELEMENT header-portal-javascript (#PCDATA)>
495
+
496
+ <!--
497
+ Set the path of JavaScript that will be referenced in the page's header relative
498
+ to the portlet's context path.
499
+ -->
500
+ <!ELEMENT header-portlet-javascript (#PCDATA)>
501
+
502
+ <!--
503
+ Set the path of CSS that will be referenced in the page's footer relative to the
504
+ portal's context path.
505
+ -->
506
+ <!ELEMENT footer-portal-css (#PCDATA)>
507
+
508
+ <!--
509
+ Set the path of CSS that will be referenced in the page's footer relative to the
510
+ portlet's context path.
511
+ -->
512
+ <!ELEMENT footer-portlet-css (#PCDATA)>
513
+
514
+ <!--
515
+ Set the path of JavaScript that will be referenced in the page's footer relative
516
+ to the portal's context path.
517
+ -->
518
+ <!ELEMENT footer-portal-javascript (#PCDATA)>
519
+
520
+ <!--
521
+ Set the path of JavaScript that will be referenced in the page's footer relative
522
+ to the portlet's context path.
523
+ -->
524
+ <!ELEMENT footer-portlet-javascript (#PCDATA)>
525
+
526
+ <!--
527
+ Set name of the CSS class that will be injected in the DIV that wraps this
528
+ portlet.
529
+ -->
530
+ <!ELEMENT css-class-wrapper (#PCDATA)>
531
+
532
+ <!--
533
+ Set the facebook-integration value to either "fbml" or "iframe". The default
534
+ value is "iframe" because IFrame integration will work without requiring any
535
+ changes to your code. See the Message Boards portlet for minor changes that were
536
+ made to make it FBML compliant. Note that the Liferay tag libraries already
537
+ output FBML automatically if a request is made by Facebook.
538
+ -->
539
+ <!ELEMENT facebook-integration (#PCDATA)>
540
+
541
+ <!--
542
+ If the add-default-resource value is set to false, and the portlet does not
543
+ belong to the page but has been dynamically added, then the user will see that
544
+ he does not have permissions to view the portlet. If the add-default-resource
545
+ value is set to true, the default portlet resources and permissions are added to
546
+ the page. The user can then view the portlet. Most portlets are harmless and can
547
+ benefit from this flexibility. However, to prevent security loop holes, the
548
+ default value is false.
549
+
550
+ The properties "portlet.add.default.resource.check.enabled" and
551
+ "portlet.add.default.resource.check.whitelist" in portal.properties allow
552
+ security checks to be configured around this behavior.
553
+ -->
554
+ <!ELEMENT add-default-resource (#PCDATA)>
555
+
556
+ <!--
557
+ Set the system value to true if the portlet is a system portlet that a user
558
+ cannot manually add to their page. The default value is false.
559
+ -->
560
+ <!ELEMENT system (#PCDATA)>
561
+
562
+ <!--
563
+ Set the active value to true if the portlet is active and available to users.
564
+ If set to false, the portlet will not be active or available to users. The
565
+ default value is true.
566
+
567
+ This value can be changed at runtime via the Admin portlet.
568
+ -->
569
+ <!ELEMENT active (#PCDATA)>
570
+
571
+ <!--
572
+ Set the include value to true to if the portlet is available to the portal. If
573
+ set to false, the portlet is not available to the portal. The default value is
574
+ true.
575
+
576
+ Portlets that are not included as part of the portal are never available to the
577
+ user to be made active or inactive. As far the user knows, the portlets do not
578
+ even exist in the system. This allows the Liferay developers to bundle a lot of
579
+ portlets in one core package, and yet allow custom deployments to turn on or off
580
+ individual portlets or sets of portlets. This follows the Siebel and Microsoft
581
+ model of bundling everything in one core package, but using XML configuration or
582
+ registry settings to turn on and off features or sets of features.
583
+
584
+ We do not recommend that custom deployers modify the core source by removing
585
+ specific portlets because this prevents an easy upgrade process in the future.
586
+ The best way to turn on and off portlets is to set the include element. The
587
+ advantage of this way of doing things is that it becomes very easy to deploy
588
+ Liferay. All features are available in one package. The disadvantage is that by
589
+ not utilizing all of the portlets, you are wasting disk space and may even take
590
+ a small but static memory footprint. However, we feel that the extra disk space
591
+ and memory usage is a cheap price to pay in order to provide an easy
592
+ installation and upgrade path.
593
+ -->
594
+ <!ELEMENT include (#PCDATA)>
595
+
596
+ <!--
597
+ The role-mapper contains two names specified by role-name and role-link. The
598
+ role-name value must be a role specified in portlet.xml. The role-link value
599
+ must be the name of a Liferay role that exists in the database. The role-mapper
600
+ element pairs up these two values to map roles from portlet.xml to roles in
601
+ the Liferay database.
602
+
603
+ This is needed because Liferay roles may contain spaces whereas roles in
604
+ portlet.xml cannot contain spaces. This also adds extra flexibility where the
605
+ portlet vendor does not need to have any knowledge about Liferay's roles.
606
+ -->
607
+ <!ELEMENT role-mapper (role-name, role-link)>
608
+
609
+ <!--
610
+ See the comments in role-mapper element.
611
+ -->
612
+ <!ELEMENT role-name (#PCDATA)>
613
+
614
+ <!--
615
+ See the comments in role-mapper element.
616
+ -->
617
+ <!ELEMENT role-link (#PCDATA)>
618
+
619
+ <!--
620
+ The custom-user-attribute contains a list of names that are retrieved using a
621
+ custom class that extends com.liferay.portlet.CustomUserAttributes.
622
+
623
+ Download the sample hot deployable portlet WAR named test.war. Look for the
624
+ class com.sample.strutsliferay.portlet.SampleUserAttributes to see how it
625
+ associates the custom user attribute "user.name.test" with the value
626
+ "Test Name". This class could be modified to read custom user attributes from
627
+ another datasource that may be a database, a LDAP server, or a web service.
628
+
629
+ See:
630
+
631
+ http://www.liferay.com/page/guest/documentation/development/hot_deploy
632
+ -->
633
+ <!ELEMENT custom-user-attribute (name+, custom-class)>
634
+
635
+ <!--
636
+ See the comments in custom-user-attribute element.
637
+ -->
638
+ <!ELEMENT name (#PCDATA)>
639
+
640
+ <!--
641
+ See the comments in custom-user-attribute element.
642
+ -->
643
643
  <!ELEMENT custom-class (#PCDATA)>