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