/* * Copyright (c) 2010-2017, b3log.org & hacpai.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.b3log.solo.model; import org.b3log.latke.Keys; import org.b3log.latke.logging.Level; import org.b3log.latke.logging.Logger; import org.json.JSONArray; import org.json.JSONObject; /** * This class defines option model relevant keys. * * @author <a href="http://88250.b3log.org">Liang Ding</a> * @version 1.3.0.4, Feb 17, 2017 * @since 0.6.0 */ public final class Option { /** * Option. */ public static final String OPTION = "option"; /** * Options. */ public static final String OPTIONS = "options"; /** * Key of option value. */ public static final String OPTION_VALUE = "optionValue"; /** * Key of option category. */ public static final String OPTION_CATEGORY = "optionCategory"; // oId constants /** * Key of broadcast chance expiration time. */ public static final String ID_C_BROADCAST_CHANCE_EXPIRATION_TIME = "broadcastChanceExpirationTime"; /** * Key of Qiniu access key. */ public static final String ID_C_QINIU_ACCESS_KEY = "qiniuAccessKey"; /** * Key of Qiniu secret key. */ public static final String ID_C_QINIU_SECRET_KEY = "qiniuSecretKey"; /** * Key of Qiniu domain. */ public static final String ID_C_QINIU_DOMAIN = "qiniuDomain"; /** * Key of Qiniu bucket. */ public static final String ID_C_QINIU_BUCKET = "qiniuBucket"; /** * Key of blog title. */ public static final String ID_C_BLOG_TITLE = "blogTitle"; /** * Key of blog subtitle. */ public static final String ID_C_BLOG_SUBTITLE = "blogSubtitle"; /** * Key of relevant articles display count. */ public static final String ID_C_RELEVANT_ARTICLES_DISPLAY_CNT = "relevantArticlesDisplayCount"; /** * Key of random articles display count. */ public static final String ID_C_RANDOM_ARTICLES_DISPLAY_CNT = "randomArticlesDisplayCount"; /** * Key of external relevant articles display count. */ public static final String ID_C_EXTERNAL_RELEVANT_ARTICLES_DISPLAY_CNT = "externalRelevantArticlesDisplayCount"; /** * Key of recent article display count. */ public static final String ID_C_RECENT_ARTICLE_DISPLAY_CNT = "recentArticleDisplayCount"; /** * Key of recent comment display count. */ public static final String ID_C_RECENT_COMMENT_DISPLAY_CNT = "recentCommentDisplayCount"; /** * Key of most used tag display count. */ public static final String ID_C_MOST_USED_TAG_DISPLAY_CNT = "mostUsedTagDisplayCount"; /** * Key of most comment article display count. */ public static final String ID_C_MOST_COMMENT_ARTICLE_DISPLAY_CNT = "mostCommentArticleDisplayCount"; /** * Key of most view article display count. */ public static final String ID_C_MOST_VIEW_ARTICLE_DISPLAY_CNT = "mostViewArticleDisplayCount"; /** * Key of article list display count. */ public static final String ID_C_ARTICLE_LIST_DISPLAY_COUNT = "articleListDisplayCount"; /** * Key of article list pagination window size. */ public static final String ID_C_ARTICLE_LIST_PAGINATION_WINDOW_SIZE = "articleListPaginationWindowSize"; /** * Key of administrator's email. */ public static final String ID_C_ADMIN_EMAIL = "adminEmail"; /** * Key of locale string. */ public static final String ID_C_LOCALE_STRING = "localeString"; /** * Key of time zone id. */ public static final String ID_C_TIME_ZONE_ID = "timeZoneId"; /** * Key of notice board. */ public static final String ID_C_NOTICE_BOARD = "noticeBoard"; /** * Key of HTML head. */ public static final String ID_C_HTML_HEAD = "htmlHead"; /** * Key of meta keywords. */ public static final String ID_C_META_KEYWORDS = "metaKeywords"; /** * Key of meta description. */ public static final String ID_C_META_DESCRIPTION = "metaDescription"; /** * Key of article update hint flag. */ public static final String ID_C_ENABLE_ARTICLE_UPDATE_HINT = "enableArticleUpdateHint"; /** * Key of signs. */ public static final String ID_C_SIGNS = "signs"; /** * Key of key of Solo. */ public static final String ID_C_KEY_OF_SOLO = "keyOfSolo"; /** * Key of allow visit draft via permalink. */ public static final String ID_C_ALLOW_VISIT_DRAFT_VIA_PERMALINK = "allowVisitDraftViaPermalink"; /** * Key of allow register. */ public static final String ID_C_ALLOW_REGISTER = "allowRegister"; /** * Key of version. */ public static final String ID_C_VERSION = "version"; /** * Key of article list display style. * * <p> * Optional values: * <ul> * <li>"titleOnly"</li> * <li>"titleAndContent"</li> * <li>"titleAndAbstract"</li> * </ul> * </p> */ public static final String ID_C_ARTICLE_LIST_STYLE = "articleListStyle"; /** * Key of article/page comment-able. */ public static final String ID_C_COMMENTABLE = "commentable"; /** * Key of feed (Atom/RSS) output mode. * * <p> * Optional values: * <ul> * <li>"abstract"</li> * <li>"fullContent"</li> * </ul> * </p> */ public static final String ID_C_FEED_OUTPUT_MODE = "feedOutputMode"; /** * Key of feed (Atom/RSS) output entry count. */ public static final String ID_C_FEED_OUTPUT_CNT = "feedOutputCnt"; /** * Key of editor type. * * Optional values: * <p> * <ul> * <li>"tinyMCE"</li> * <li>"CodeMirror-Markdown"</li> * <li>"KindEditor"</li> * </ul> * </p> */ public static final String ID_C_EDITOR_TYPE = "editorType"; /** * Key of skins. */ public static final String ID_C_SKINS = "skins"; /** * Key of skin dir name. */ public static final String ID_C_SKIN_DIR_NAME = "skinDirName"; /** * Key of skin name. */ public static final String ID_C_SKIN_NAME = "skinName"; /** * Key of reply notification template body. */ public static final String ID_C_REPLY_NOTI_TPL_BODY = "replyNotiTplBody"; /** * Key of reply notification template subject. */ public static final String ID_C_REPLY_NOTI_TPL_SUBJECT = "replyNotiTplSubject"; /** * Key of footer content. */ public static final String ID_C_FOOTER_CONTENT = "footerContent"; // Category constants /** * Broadcast. */ public static final String CATEGORY_C_BROADCAST = "broadcast"; /** * Qiniu. */ public static final String CATEGORY_C_QINIU = "qiniu"; /** * Preference. */ public static final String CATEGORY_C_PREFERENCE = "preference"; /** * Default preference. * * @author <a href="http://88250.b3log.org">Liang Ding</a> * @version 2.1.0.9, Nov 23, 2015 * @since 0.3.1 */ public static final class DefaultPreference { /** * Logger. */ private static final Logger LOGGER = Logger.getLogger(DefaultPreference.class.getName()); /** * Default recent article display count. */ public static final int DEFAULT_RECENT_ARTICLE_DISPLAY_COUNT = 10; /** * Default recent comment display count. */ public static final int DEFAULT_RECENT_COMMENT_DISPLAY_COUNT = 10; /** * Default most used tag display count. */ public static final int DEFAULT_MOST_USED_TAG_DISPLAY_COUNT = 20; /** * Default article list display count. */ public static final int DEFAULT_ARTICLE_LIST_DISPLAY_COUNT = 20; /** * Default article list pagination window size. */ public static final int DEFAULT_ARTICLE_LIST_PAGINATION_WINDOW_SIZE = 15; /** * Default most comment article display count. */ public static final int DEFAULT_MOST_COMMENT_ARTICLE_DISPLAY_COUNT = 5; /** * Default blog title. */ public static final String DEFAULT_BLOG_TITLE = "Solo 示例"; /** * Default blog subtitle. */ public static final String DEFAULT_BLOG_SUBTITLE = "Java 开源博客"; /** * Default skin directory name. */ public static final String DEFAULT_SKIN_DIR_NAME = "9IPHP"; /** * Default language. */ public static final String DEFAULT_LANGUAGE = "zh_CN"; /** * Default time zone. * * @see java.util.TimeZone#getAvailableIDs() */ public static final String DEFAULT_TIME_ZONE = "Asia/Shanghai"; /** * Default enable article update hint. */ public static final String DEFAULT_ENABLE_ARTICLE_UPDATE_HINT = "true"; /** * Default notice board. */ public static final String DEFAULT_NOTICE_BOARD = "Open Source, Open Mind, <br/>Open Sight, Open Future!"; /** * Default meta keywords.. */ public static final String DEFAULT_META_KEYWORDS = "Solo,Java 博客,开源"; /** * Default meta description.. */ public static final String DEFAULT_META_DESCRIPTION = "An open source blog with Java. Java 开源博客"; /** * Default HTML head to append. */ public static final String DEFAULT_HTML_HEAD = ""; /** * Default footer content. */ public static final String DEFAULT_FOOTER_CONTENT = ""; /** * Default relevant articles display count. */ public static final int DEFAULT_RELEVANT_ARTICLES_DISPLAY_COUNT = 5; /** * Default random articles display count. */ public static final int DEFAULT_RANDOM_ARTICLES_DISPLAY_COUNT = 5; /** * Default external relevant articles display count. */ public static final int DEFAULT_EXTERNAL_RELEVANT_ARTICLES_DISPLAY_COUNT = 5; /** * Most view articles display count. */ public static final int DEFAULT_MOST_VIEW_ARTICLES_DISPLAY_COUNT = 5; /** * Default signs. */ public static final String DEFAULT_SIGNS; /** * Default allow visit draft via permalink. */ public static final String DEFAULT_ALLOW_VISIT_DRAFT_VIA_PERMALINK = "false"; /** * Default allow register. */ public static final String DEFAULT_ALLOW_REGISTER = "false"; /** * Default allow comment article/page. */ public static final String DEFAULT_COMMENTABLE = "true"; /** * Default article list display style. */ public static final String DEFAULT_ARTICLE_LIST_STYLE = "titleAndAbstract"; /** * Default key of solo. */ public static final String DEFAULT_KEY_OF_SOLO = "Your key"; /** * Default reply notification template. */ public static final String DEFAULT_REPLY_NOTIFICATION_TEMPLATE; /** * Default feed output mode. */ public static final String DEFAULT_FEED_OUTPUT_MODE = "abstract"; /** * Default feed output entry count. */ public static final int DEFAULT_FEED_OUTPUT_CNT = 10; /** * Default editor type. */ public static final String DEFAULT_EDITOR_TYPE = "CodeMirror-Markdown"; static { final JSONArray signs = new JSONArray(); final int signLength = 4; try { for (int i = 0; i < signLength; i++) { final JSONObject sign = new JSONObject(); sign.put(Keys.OBJECT_ID, i); signs.put(sign); sign.put(Sign.SIGN_HTML, ""); } // Sign(id=0) is the 'empty' sign, used for article user needn't // a sign DEFAULT_SIGNS = signs.toString(); final JSONObject replyNotificationTemplate = new JSONObject(); replyNotificationTemplate.put("subject", "${blogTitle}: New reply of your comment"); replyNotificationTemplate.put("body", "Your comment on post[<a href='${postLink}'>" + "${postTitle}</a>] received an reply: <p>${replier}" + ": <span><a href='${replyURL}'>${replyContent}</a></span></p>"); DEFAULT_REPLY_NOTIFICATION_TEMPLATE = replyNotificationTemplate.toString(); } catch (final Exception e) { LOGGER.log(Level.ERROR, "Creates sign error!", e); throw new IllegalStateException(e); } } /** * Private default constructor. */ private DefaultPreference() { } } /** * Private constructor. */ private Option() { } }