Beispiel #1
0
    private void SetDefaultFormValues(bool isAdmin)
    {
        EnableComments.Checked = CommentSettings.Get().EnableCommentsDefault;

        featuresiteRegion.Visible      = isAdmin;
        featuredCategoryRegion.Visible = isAdmin;

        if (isAdmin ||
            RolePermissionManager.GetPermissions(Int32.Parse(CategoryList.SelectedValue), GraffitiUsers.Current).Publish)
        {
            PublishStatus.Items.Add(new ListItem("Published", "1"));
        }

        PublishStatus.Items.Add(new ListItem("Draft", "2"));


        PublishStatus.Items.Add(new ListItem("Request Approval", "3"));

        if (isAdmin)
        {
            PublishStatus.Items.Add(new ListItem("Requires Changes", "4"));
        }

        PublishDate.DateTime = DateTime.Now.AddHours(SiteSettings.Get().TimeZoneOffSet);
    }
Beispiel #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        LiHyperLink.SetNameToCompare(Context, "settings");

        if (!IsPostBack)
        {
            CommentSettings settings = CommentSettings.Get();
            EnableComments.Checked = settings.EnableCommentsDefault;
            CommentDays.Items.FindByValue(settings.CommentDays.ToString()).Selected = true;
            txtEmail.Text     = settings.Email;
            txtSpamScore.Text = settings.SpamScore.ToString();

            txtAkismetId.Text    = settings.AkismetId;
            txtAkismetScore.Text = settings.AkismetScore.ToString();

            chkUseAkismet.Checked = settings.UseAkismet;

            if (settings.CommentDays > 0 && String.IsNullOrEmpty(settings.AkismetId))
            {
                Message.Text = "We noticed you have enabled new comments, but have not added Akismet. Hopefully that is what you are doing right now, if not, please think about it.";
                Message.Type = StatusType.Warning;
            }
        }

        string display = chkUseAkismet.Checked ? "display: block; padding-left: 20px;" : "display: none; padding-left: 20px;";

        akismetSettings.Attributes.Add("style", display);
    }
Beispiel #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="siteSettings">站点设置</param>
 /// <param name="commentSettings">评论设置</param>
 public SiteSettingsEditModel(SiteSettings siteSettings, CommentSettings commentSettings)
 {
     if (siteSettings != null)
     {
         SiteName              = siteSettings.SiteName;
         SiteDescription       = siteSettings.SiteDescription;
         MainSiteRootUrl       = siteSettings.MainSiteRootUrl;
         SearchMetaDescription = siteSettings.SearchMetaDescription;
         BeiAnScript           = siteSettings.BeiAnScript;
         StatScript            = siteSettings.StatScript;
         Links = siteSettings.Links;
         EnableAnonymousBrowse   = siteSettings.EnableAnonymousBrowse;
         EnableAnonymousPosting  = siteSettings.EnableAnonymousPosting;
         ShareToThirdDisplayType = siteSettings.ShareToThirdDisplayType;
         ShareDisplayIconSize    = siteSettings.ShareDisplayIconSize;
         ShareToThirdBusiness    = siteSettings.ShareToThirdBusiness;
         ShareToThirdIsEnabled   = siteSettings.ShareToThirdIsEnabled;
         SearchMetaKeyWords      = siteSettings.SearchMetaKeyWords;
         EnableSimpleHome        = siteSettings.EnableSimpleHome;
     }
     if (commentSettings != null)
     {
         EnableComment         = commentSettings.EnableComment;
         AllowAnonymousComment = commentSettings.AllowAnonymousComment;
     }
 }
Beispiel #4
0
        /// <summary>
        /// 是否具有创建评论的权限
        /// </summary>
        /// <returns></returns>
        public bool Comment_Create(string tenantTypeId, long?userId = null)
        {
            IUser currentUser = UserContext.CurrentUser;

            //站点设置是否启用了匿名发帖
            TenantCommentSettings settings = TenantCommentSettings.GetRegisteredSettings(tenantTypeId);

            //不允许匿名用户的时候,并且是匿名用户的时候
            if (!settings.AllowAnonymousComment && currentUser == null)
            {
                return(false);
            }

            CommentSettings commentSettings = DIContainer.Resolve <ISettingsManager <CommentSettings> >().Get();

            if (!commentSettings.AllowAnonymousComment && currentUser == null)
            {
                return(false);
            }

            //允许匿名用户,并且是匿名用户的时候
            if (currentUser == null)
            {
                return(true);
            }

            if (userId.HasValue)
            {
                return(new PrivacyService().Validate(userId.Value, currentUser.UserId, PrivacyItemKeys.Instance().Comment()));
            }

            return(true);
        }
        public void CheckComment(
            ICSharpCommentNode commentNode,
            IHighlightingConsumer highlightingConsumer, CommentSettings settings)
        {
            // Ignore it unless it's something we're re-evalutating
            if (!_daemonProcess.IsRangeInvalidated(commentNode.GetDocumentRange()))
            {
                return;
            }

            // Only look for ones that are not doc comments
            if (commentNode.CommentType != CommentType.END_OF_LINE_COMMENT &&
                commentNode.CommentType != CommentType.MULTILINE_COMMENT)
            {
                return;
            }

            ISpellChecker spellChecker = SpellCheckManager.GetSpellChecker(_settingsStore, _solution, settings.DictionaryNames);

            SpellCheck(
                commentNode.GetDocumentRange().Document,
                commentNode,
                spellChecker,
                _solution, highlightingConsumer, _settingsStore, settings);
        }
Beispiel #6
0
        /// <summary>
        /// 转换为评论实体
        /// </summary>
        /// <returns></returns>
        public CommentSettings AsCommentSettings()
        {
            CommentSettings commentSettings = DIContainer.Resolve <ISettingsManager <CommentSettings> >().Get();

            commentSettings.EnableComment         = EnableComment;
            commentSettings.AllowAnonymousComment = AllowAnonymousComment;
            return(commentSettings);
        }
Beispiel #7
0
    protected void SettingsSave_Click(object sender, EventArgs e)
    {
        try
        {
            if (!string.IsNullOrEmpty(txtAkismetId.Text.Trim()))
            {
                Macros  m       = new Macros();
                Akismet akismet = new Akismet(txtAkismetId.Text.Trim(), m.FullUrl(new Urls().Home),
                                              SiteSettings.Version);
                if (!akismet.VerifyKey())
                {
                    Message.Text = "Your Akismet key could not be verified. Please check it and re-enter it.";
                    Message.Type = StatusType.Error;
                    return;
                }
            }

            CommentSettings settings = CommentSettings.Get();
            settings.EnableCommentsDefault = EnableComments.Checked;
            settings.CommentDays           = Int32.Parse(CommentDays.SelectedValue);
            settings.Email     = txtEmail.Text;
            settings.SpamScore = Int32.Parse(txtSpamScore.Text);

            if (chkUseAkismet.Checked && String.IsNullOrEmpty(txtAkismetId.Text))
            {
                Message.Text = "Please provide your Akismet Id.";
                Message.Type = StatusType.Error;
                return;
            }

            settings.UseAkismet = chkUseAkismet.Checked;

            settings.AkismetId    = txtAkismetId.Text;
            settings.AkismetScore = Int32.Parse(txtAkismetScore.Text);

            settings.Save();

            Message.Text = "Your Comment & Spam settings have been updated!";
            Message.Type = StatusType.Success;
        }
        catch (Exception ex)
        {
            Message.Text = "Your Comment & Spam settings could not be updated. Reason: " + ex.Message;
            Message.Type = StatusType.Error;
        }
    }
Beispiel #8
0
 public void Save(CommentSettings settings)
 {
     repository.Save(settings);
 }
        public static void SpellCheck(
            IDocument document, ITokenNode token, ISpellChecker spellChecker,
            ISolution solution, IHighlightingConsumer highlightingConsumer,
            IContextBoundSettingsStore settingsStore, CommentSettings settings)
        {
            if (spellChecker == null)
            {
                return;
            }

            string buffer    = token.GetText();
            ILexer wordLexer = new WordLexer(buffer);

            wordLexer.Start();
            while (wordLexer.TokenType != null)
            {
                string tokenText = wordLexer.GetCurrTokenText();
                if (SpellCheckUtil.ShouldSpellCheck(tokenText, settings.CompiledWordsToIgnore) &&
                    !spellChecker.TestWord(tokenText, true))
                {
                    IClassMemberDeclaration containingElement =
                        token.GetContainingNode <IClassMemberDeclaration>(false);
                    if (containingElement == null ||
                        !IdentifierResolver.IsIdentifier(containingElement, solution, tokenText))
                    {
                        CamelHumpLexer camelHumpLexer = new CamelHumpLexer(buffer, wordLexer.TokenStart, wordLexer.TokenEnd);
                        foreach (LexerToken humpToken in camelHumpLexer)
                        {
                            if (SpellCheckUtil.ShouldSpellCheck(humpToken.Value, settings.CompiledWordsToIgnore) &&
                                !spellChecker.TestWord(humpToken.Value, true))
                            {
                                //int start = token.GetTreeStartOffset().Offset + wordLexer.TokenStart;
                                //int end = start + tokenText.Length;

                                //var range = new TextRange(start, end);
                                //var documentRange = new DocumentRange(document, range);
                                DocumentRange documentRange =
                                    token.GetContainingFile().TranslateRangeForHighlighting(token.GetTreeTextRange());
                                documentRange = documentRange.ExtendLeft(-wordLexer.TokenStart);
                                documentRange = documentRange.ExtendRight(-1 * (documentRange.GetText().Length - tokenText.Length));


                                TextRange textRange = new TextRange(humpToken.Start - wordLexer.TokenStart,
                                                                    humpToken.End - wordLexer.TokenStart);
                                //string word = document.GetText(range);
                                string word = documentRange.GetText();


                                var highlighting = new StringSpellCheckHighlighting(
                                    document.GetText(textRange), documentRange,
                                    humpToken.Value, textRange,
                                    solution, spellChecker, settingsStore);
                                var file = token.GetContainingFile();

                                highlightingConsumer.AddHighlighting(highlighting, documentRange, file);

                                break;
                            }
                        }
                    }
                }

                wordLexer.Advance();
            }
        }
Beispiel #10
0
 public static YoutubeComment Comment(CommentSettings settings = null)
 {
     return(new YoutubeComment(settings));
 }
Beispiel #11
0
 public static YoutubeComments Comments(CommentSettings settings = null)
 {
     return(new YoutubeComments(settings, null, ResultsPerPage));
 }