001
014
015 package com.liferay.portlet.messageboards;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.settings.FallbackKeys;
019 import com.liferay.portal.kernel.settings.GroupServiceSettingsLocator;
020 import com.liferay.portal.kernel.settings.LocalizedValuesMap;
021 import com.liferay.portal.kernel.settings.ParameterMapSettings;
022 import com.liferay.portal.kernel.settings.Settings;
023 import com.liferay.portal.kernel.settings.SettingsFactoryUtil;
024 import com.liferay.portal.kernel.settings.TypedSettings;
025 import com.liferay.portal.kernel.util.LocalizationUtil;
026 import com.liferay.portal.kernel.util.PropsKeys;
027 import com.liferay.portal.kernel.util.RSSUtil;
028 import com.liferay.portal.util.PortalUtil;
029 import com.liferay.portlet.messageboards.constants.MBConstants;
030 import com.liferay.portlet.messageboards.util.MBUtil;
031
032 import java.util.Map;
033
034
037 @Settings.Config(settingsIds = MBConstants.SERVICE_NAME)
038 public class MBGroupServiceSettings {
039
040 public static final String[] ALL_KEYS = {};
041
042 public static MBGroupServiceSettings getInstance(long groupId)
043 throws PortalException {
044
045 Settings settings = SettingsFactoryUtil.getSettings(
046 new GroupServiceSettingsLocator(groupId, MBConstants.SERVICE_NAME));
047
048 return new MBGroupServiceSettings(settings);
049 }
050
051 public static MBGroupServiceSettings getInstance(
052 long groupId, Map<String, String[]> parameterMap)
053 throws PortalException {
054
055 Settings settings = SettingsFactoryUtil.getSettings(
056 new GroupServiceSettingsLocator(groupId, MBConstants.SERVICE_NAME));
057
058 ParameterMapSettings parameterMapSettings = new ParameterMapSettings(
059 parameterMap, settings);
060
061 return new MBGroupServiceSettings(parameterMapSettings);
062 }
063
064 public MBGroupServiceSettings(Settings settings) {
065 _typedSettings = new TypedSettings(settings);
066 }
067
068 public String getEmailFromAddress() {
069 return _typedSettings.getValue("emailFromAddress");
070 }
071
072 public String getEmailFromName() {
073 return _typedSettings.getValue("emailFromName");
074 }
075
076 public LocalizedValuesMap getEmailMessageAddedBody() {
077 return _typedSettings.getLocalizedValuesMap("emailMessageAddedBody");
078 }
079
080 public String getEmailMessageAddedBodyXml() {
081 return LocalizationUtil.getXml(
082 getEmailMessageAddedBody(), "emailMessageAddedBody");
083 }
084
085 public LocalizedValuesMap getEmailMessageAddedSubject() {
086 return _typedSettings.getLocalizedValuesMap("emailMessageAddedSubject");
087 }
088
089 public String getEmailMessageAddedSubjectXml() {
090 return LocalizationUtil.getXml(
091 getEmailMessageAddedSubject(), "emailMessageAddedSubject");
092 }
093
094 public LocalizedValuesMap getEmailMessageUpdatedBody() {
095 return _typedSettings.getLocalizedValuesMap("emailMessageUpdatedBody");
096 }
097
098 public String getEmailMessageUpdatedBodyXml() {
099 return LocalizationUtil.getXml(
100 getEmailMessageUpdatedBody(), "emailMessageUpdatedBody");
101 }
102
103 public LocalizedValuesMap getEmailMessageUpdatedSubject() {
104 return _typedSettings.getLocalizedValuesMap(
105 "emailMessageUpdatedSubject");
106 }
107
108 public String getEmailMessageUpdatedSubjectXml() {
109 return LocalizationUtil.getXml(
110 getEmailMessageUpdatedSubject(), "emailMessageUpdatedSubject");
111 }
112
113 public String getMessageFormat() {
114 String messageFormat = _typedSettings.getValue("messageFormat");
115
116 if (MBUtil.isValidMessageFormat(messageFormat)) {
117 return messageFormat;
118 }
119
120 return "html";
121 }
122
123 public String[] getPriorities(String currentLanguageId) {
124 return LocalizationUtil.getSettingsValues(
125 _typedSettings.getWrappedSettings(), "priorities",
126 currentLanguageId);
127 }
128
129 public String[] getRanks(String languageId) {
130 return LocalizationUtil.getSettingsValues(
131 _typedSettings.getWrappedSettings(), "ranks", languageId);
132 }
133
134 public String getRecentPostsDateOffset() {
135 return _typedSettings.getValue("recentPostsDateOffset");
136 }
137
138 @Settings.Property(name = "rssDelta")
139 public int getRSSDelta() {
140 return _typedSettings.getIntegerValue("rssDelta");
141 }
142
143 @Settings.Property(name = "rssDisplayStyle")
144 public String getRSSDisplayStyle() {
145 return _typedSettings.getValue(
146 "rssDisplayStyle", RSSUtil.DISPLAY_STYLE_FULL_CONTENT);
147 }
148
149 @Settings.Property(name = "rssFeedType")
150 public String getRSSFeedType() {
151 return _typedSettings.getValue(
152 "rssFeedType", RSSUtil.getFeedType(RSSUtil.ATOM, 1.0));
153 }
154
155 public boolean isAllowAnonymousPosting() {
156 return _typedSettings.getBooleanValue("allowAnonymousPosting");
157 }
158
159 public boolean isEmailHtmlFormat() {
160 return _typedSettings.getBooleanValue("emailHtmlFormat");
161 }
162
163 public boolean isEmailMessageAddedEnabled() {
164 return _typedSettings.getBooleanValue("emailMessageAddedEnabled");
165 }
166
167 public boolean isEmailMessageUpdatedEnabled() {
168 return _typedSettings.getBooleanValue("emailMessageUpdatedEnabled");
169 }
170
171 public boolean isEnableFlags() {
172 return _typedSettings.getBooleanValue("enableFlags");
173 }
174
175 public boolean isEnableRatings() {
176 return _typedSettings.getBooleanValue("enableRatings");
177 }
178
179 @Settings.Property(name = "enableRss")
180 public boolean isEnableRSS() {
181 if (!PortalUtil.isRSSFeedsEnabled()) {
182 return false;
183 }
184
185 return _typedSettings.getBooleanValue("enableRss");
186 }
187
188 public boolean isSubscribeByDefault() {
189 return _typedSettings.getBooleanValue("subscribeByDefault");
190 }
191
192 public boolean isThreadAsQuestionByDefault() {
193 return _typedSettings.getBooleanValue("threadAsQuestionByDefault");
194 }
195
196 private static FallbackKeys _getFallbackKeys() {
197 FallbackKeys fallbackKeys = new FallbackKeys();
198
199 fallbackKeys.add(
200 "allowAnonymousPosting",
201 PropsKeys.MESSAGE_BOARDS_ANONYMOUS_POSTING_ENABLED);
202 fallbackKeys.add(
203 "emailFromAddress", PropsKeys.MESSAGE_BOARDS_EMAIL_FROM_ADDRESS,
204 PropsKeys.ADMIN_EMAIL_FROM_ADDRESS);
205 fallbackKeys.add(
206 "emailFromName", PropsKeys.MESSAGE_BOARDS_EMAIL_FROM_NAME,
207 PropsKeys.ADMIN_EMAIL_FROM_NAME);
208 fallbackKeys.add(
209 "emailHtmlFormat", PropsKeys.MESSAGE_BOARDS_EMAIL_HTML_FORMAT);
210 fallbackKeys.add(
211 "emailMessageAddedBody",
212 PropsKeys.MESSAGE_BOARDS_EMAIL_MESSAGE_ADDED_BODY);
213 fallbackKeys.add(
214 "emailMessageAddedEnabled",
215 PropsKeys.MESSAGE_BOARDS_EMAIL_MESSAGE_ADDED_ENABLED);
216 fallbackKeys.add(
217 "emailMessageAddedSubject",
218 PropsKeys.MESSAGE_BOARDS_EMAIL_MESSAGE_ADDED_SUBJECT);
219 fallbackKeys.add(
220 "emailMessageUpdatedBody",
221 PropsKeys.MESSAGE_BOARDS_EMAIL_MESSAGE_UPDATED_BODY);
222 fallbackKeys.add(
223 "emailMessageUpdatedEnabled",
224 PropsKeys.MESSAGE_BOARDS_EMAIL_MESSAGE_UPDATED_ENABLED);
225 fallbackKeys.add(
226 "emailMessageUpdatedSubject",
227 PropsKeys.MESSAGE_BOARDS_EMAIL_MESSAGE_UPDATED_SUBJECT);
228 fallbackKeys.add("enableFlags", PropsKeys.MESSAGE_BOARDS_FLAGS_ENABLED);
229 fallbackKeys.add(
230 "enableRatings", PropsKeys.MESSAGE_BOARDS_RATINGS_ENABLED);
231 fallbackKeys.add("enableRss", PropsKeys.MESSAGE_BOARDS_RSS_ENABLED);
232 fallbackKeys.add(
233 "messageFormat", PropsKeys.MESSAGE_BOARDS_MESSAGE_FORMATS_DEFAULT);
234 fallbackKeys.add(
235 "priorities", PropsKeys.MESSAGE_BOARDS_THREAD_PRIORITIES);
236 fallbackKeys.add("ranks", PropsKeys.MESSAGE_BOARDS_USER_RANKS);
237 fallbackKeys.add(
238 "recentPostsDateOffset",
239 PropsKeys.MESSAGE_BOARDS_RECENT_POSTS_DATE_OFFSET);
240 fallbackKeys.add(
241 "rssDelta", PropsKeys.SEARCH_CONTAINER_PAGE_DEFAULT_DELTA);
242 fallbackKeys.add(
243 "rssDisplayStyle", PropsKeys.RSS_FEED_DISPLAY_STYLE_DEFAULT);
244 fallbackKeys.add("rssFeedType", PropsKeys.RSS_FEED_TYPE_DEFAULT);
245 fallbackKeys.add(
246 "subscribeByDefault",
247 PropsKeys.MESSAGE_BOARDS_SUBSCRIBE_BY_DEFAULT);
248 fallbackKeys.add(
249 "threadAsQuestionByDefault",
250 PropsKeys.MESSAGE_BOARDS_THREAD_AS_QUESTION_BY_DEFAULT);
251
252 return fallbackKeys;
253 }
254
255 static {
256 SettingsFactoryUtil.registerSettingsMetadata(
257 MBGroupServiceSettings.class, null, _getFallbackKeys());
258 }
259
260 private final TypedSettings _typedSettings;
261
262 }