Exemplo n.º 1
0
        private string RenderTweetThis()
        {
            string twitterWidgets = "<script type=\"text/javascript\">\n"
                                    + "!function (d, s, id) {\n"
                                    + "var js, fjs = d.getElementsByTagName(s)[0];\n"
                                    + "if (!d.getElementById(id)) {\n"
                                    + "js = d.createElement(s);\n"
                                    + "js.id = id; js.src = \"//platform.twitter.com/widgets.js\";\n"
                                    + "fjs.parentNode.insertBefore(js, fjs);\n"
                                    + "}\n"
                                    + "} (document, \"script\", \"twitter-wjs\");"
                                    + "</script>\n";

            Page.ClientScript.RegisterClientScriptBlock(typeof(Page),
                                                        "twitterwidgets", twitterWidgets);

            string twitterUrl = "https://twitter.com/share";

            string tweetThis = "<a class='twitter-share-button'";

            tweetThis += " title='Tweet This'";
            tweetThis += " href='" + twitterUrl + "'";
            tweetThis += " data-url='" + NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID) + "'";
            tweetThis += " data-text='" + news.Title + "'";
            tweetThis += " data-count='horizontal'";
            tweetThis += "></a>";

            return(tweetThis);
        }
Exemplo n.º 2
0
        private string RenderFacebookLike()
        {
            string facebook = string.Empty;

            if (WebConfigSettings.DisableFacebookLikeButton)
            {
                return(facebook);
            }

            string facebookWidgets = "<script type=\"text/javascript\">\n"
                                     + "(function (d, s, id) {\n"
                                     + "var js, fjs = d.getElementsByTagName(s)[0];\n"
                                     + "if (d.getElementById(id)) return;\n"
                                     + "js = d.createElement(s); js.id = id\n"
                                     + "js.async=true;\n"
                                     + "js.src = \"//connect.facebook.net/en_US/all.js#xfbml=1\";\n"
                                     + "fjs.parentNode.insertBefore(js, fjs);\n"
                                     + "} (document, 'script', 'facebook-jssdk'));\n"
                                     + "</script>\n";

            Page.ClientScript.RegisterClientScriptBlock(typeof(Page),
                                                        "facebookwidgets", facebookWidgets);

            facebook  = "<a class='fb-like'";
            facebook += " data-href='" + NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID) + "'";
            facebook += " data-send='false'";
            facebook += " data-layout='button_count'";
            facebook += " data-width='100'";
            facebook += " data-show-faces='false'";
            facebook += "></a>";

            return(facebook);
        }
Exemplo n.º 3
0
        public void BuildNextPreviousXml(
            XmlDocument doc,
            XmlElement root)
        {
            news.LoadNextPrevious(languageId);

            if ((news.PreviousNewsId > -1) || (news.PreviousNewsUrl.Length > 0))
            {
                XmlHelper.AddNode(doc, root, "PreviousLink", "<a href='" + NewsHelper.FormatNewsUrl(news.PreviousNewsUrl, news.PreviousNewsId, news.PreviousZoneId) + "' title='" + news.PreviousNewsTitle + "'>" + NewsResources.NewsPreviousLink + "</a>");
                XmlHelper.AddNode(doc, root, "PreviousUrl", NewsHelper.FormatNewsUrl(news.PreviousNewsUrl, news.PreviousNewsId, news.PreviousZoneId));
                XmlHelper.AddNode(doc, root, "PreviousNewsTitle", news.PreviousNewsTitle);
                XmlHelper.AddNode(doc, root, "PreviousTitle", NewsResources.NewsPreviousLink.Replace("<<", "").Replace(">>", ""));
                XmlHelper.AddNode(doc, root, "IsFirstNews", news.IsFirstNews.ToString().ToLower());
                XmlHelper.AddNode(doc, root, "IsLastNews", news.IsLastNews.ToString().ToLower());
            }
            if ((news.NextNewsId > -1) || (news.NextNewsUrl.Length > 0))
            {
                XmlHelper.AddNode(doc, root, "NextLink", "<a href='" + NewsHelper.FormatNewsUrl(news.NextNewsUrl, news.NextNewsId, news.NextZoneId) + "' title='" + news.NextNewsTitle + "'>" + NewsResources.NewsNextLink + "</a>");
                XmlHelper.AddNode(doc, root, "NextUrl", NewsHelper.FormatNewsUrl(news.NextNewsUrl, news.NextNewsId, news.NextZoneId));
                XmlHelper.AddNode(doc, root, "NextNewsTitle", news.NextNewsTitle);
                XmlHelper.AddNode(doc, root, "NextTitle", NewsResources.NewsNextLink.Replace("<<", "").Replace(">>", ""));
                XmlHelper.AddNode(doc, root, "IsFirstNews", news.IsFirstNews.ToString().ToLower());
                XmlHelper.AddNode(doc, root, "IsLastNews", news.IsLastNews.ToString().ToLower());
            }
        }
Exemplo n.º 4
0
        public static XmlDocument BuildNewsDataXml(XmlDocument doc, XmlElement newsXml, News news, TimeZoneInfo timeZone, double timeOffset, string editLink)
        {
            XmlHelper.AddNode(doc, newsXml, "Title", news.Title);
            XmlHelper.AddNode(doc, newsXml, "SubTitle", news.SubTitle);
            XmlHelper.AddNode(doc, newsXml, "Url", NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID));
            XmlHelper.AddNode(doc, newsXml, "Target", NewsHelper.GetNewsTarget(news.OpenInNewWindow));
            XmlHelper.AddNode(doc, newsXml, "ShowOption", news.ShowOption.ToString());
            XmlHelper.AddNode(doc, newsXml, "NewsId", news.NewsID.ToString()); //2016-08-11

            string imageFolderPath          = NewsHelper.MediaFolderPath(news.SiteId, news.NewsID);
            string thumbnailImageFolderPath = imageFolderPath + "thumbs/";

            if (news.ImageFile.Length > 0)
            {
                XmlHelper.AddNode(doc, newsXml, "ImageUrl", VirtualPathUtility.ToAbsolute(imageFolderPath + news.ImageFile));
            }
            if (news.ThumbnailFile.Length > 0)
            {
                XmlHelper.AddNode(doc, newsXml, "ThumbnailUrl", VirtualPathUtility.ToAbsolute(thumbnailImageFolderPath + news.ThumbnailFile));
            }

            XmlHelper.AddNode(doc, newsXml, "EditLink", editLink);

            XmlHelper.AddNode(doc, newsXml, "BriefContent", news.BriefContent);
            XmlHelper.AddNode(doc, newsXml, "FullContent", news.FullContent);
            XmlHelper.AddNode(doc, newsXml, "ViewCount", news.Viewed.ToString());
            XmlHelper.AddNode(doc, newsXml, "CommentCount", news.CommentCount.ToString());
            XmlHelper.AddNode(doc, newsXml, "FileUrl", news.FileAttachment);

            object startDate = news.StartDate;

            XmlHelper.AddNode(doc, newsXml, "CreatedDate", FormatDate(startDate, timeZone, timeOffset, ResourceHelper.GetResourceString("NewsResources", "NewsDateFormat")));
            XmlHelper.AddNode(doc, newsXml, "CreatedTime", FormatDate(startDate, timeZone, timeOffset, ResourceHelper.GetResourceString("NewsResources", "NewsTimeFormat")));
            XmlHelper.AddNode(doc, newsXml, "CreatedDD", FormatDate(startDate, timeZone, timeOffset, "dd"));
            XmlHelper.AddNode(doc, newsXml, "CreatedYY", FormatDate(startDate, timeZone, timeOffset, "yy"));
            XmlHelper.AddNode(doc, newsXml, "CreatedYYYY", FormatDate(startDate, timeZone, timeOffset, "yyyy"));
            XmlHelper.AddNode(doc, newsXml, "CreatedMM", FormatDate(startDate, timeZone, timeOffset, "MM"));
            if (System.Globalization.CultureInfo.CurrentCulture.Name.ToLower() == "vi-vn")
            {
                string monthVI = "Tháng " + FormatDate(startDate, timeZone, timeOffset, "MM");
                XmlHelper.AddNode(doc, newsXml, "CreatedMMM", monthVI);
                XmlHelper.AddNode(doc, newsXml, "CreatedMMMM", monthVI);
            }
            else
            {
                XmlHelper.AddNode(doc, newsXml, "CreatedMMM", FormatDate(startDate, timeZone, timeOffset, "MMM"));
                XmlHelper.AddNode(doc, newsXml, "CreatedMMMM", FormatDate(startDate, timeZone, timeOffset, "MMMM"));
            }

            if (news.EndDate != DateTime.MaxValue)
            {
                XmlHelper.AddNode(doc, newsXml, "EndDate", FormatDate(news.EndDate, timeZone, timeOffset, ResourceHelper.GetResourceString("NewsResources", "NewsDateFormat")));
            }

            return(doc);
        }
Exemplo n.º 5
0
        private string RenderPlusOne()
        {
            Page.ClientScript.RegisterStartupScript(typeof(Page),
                                                    "gplusone", "\n<script type=\"text/javascript\" src=\""
                                                    + "https://apis.google.com/js/plusone.js" + "\"></script>", false);

            string plusOne = "<div class='g-plusone' data-size='medium' data-count='true'";

            plusOne += " data-href='" + NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID);
            plusOne += "'></div>";

            return(plusOne);
        }
Exemplo n.º 6
0
        private void LoadSettings()
        {
            newsId = WebUtils.ParseInt32FromQueryString("NewsID", newsId);

            siteSettings = CacheHelper.GetCurrentSiteSettings();

            news = new News(siteSettings.SiteId, newsId, WorkingCulture.LanguageId);

            if (news == null || news.NewsID == -1)
            {
                news = null;
                return;
            }

            url = WebUtils.ParseStringFromQueryString("u", string.Empty);
            if (url.Length == 0)
            {
                url = NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID);
            }

            basePage.Title           = SiteUtils.FormatPageTitle(siteSettings, news.Title);
            basePage.MetaDescription = news.MetaDescription;
            basePage.MetaKeywords    = news.MetaKeywords;

            currentUser = SiteUtils.GetCurrentSiteUser();

            pnlAntiSpam.Visible = false;
            captcha.Visible     = false;
            captcha.Enabled     = false;

            uplAttachFile1.MaxFileSize           = NewsConfiguration.JobApplyAttachFileSize * 1048576;
            uplAttachFile1.AllowedFileExtensions = NewsConfiguration.JobApplyAttachFileExtensions.Replace(".", string.Empty).Split('|');
            uplAttachFile2.MaxFileSize           = uplAttachFile1.MaxFileSize;
            uplAttachFile2.AllowedFileExtensions = uplAttachFile1.AllowedFileExtensions;

            var litAttachFileNote1 = this.FindControl("litAttachFileNote1") as System.Web.UI.WebControls.Literal;
            var litAttachFileNote2 = this.FindControl("litAttachFileNote2") as System.Web.UI.WebControls.Literal;

            if (litAttachFileNote1 != null && litAttachFileNote2 != null)
            {
                litAttachFileNote1.Text = NewsConfiguration.JobApplyAttachFileNote;
                litAttachFileNote2.Text = NewsConfiguration.JobApplyAttachFileNote;
            }
        }
Exemplo n.º 7
0
        public static XmlDocument BuildNewsDataXml(XmlDocument doc, XmlElement newsXml, News news, TimeZoneInfo timeZone,
                                                   double timeOffset, string editLink, int siteId = 1)
        {
            XmlHelper.AddNode(doc, newsXml, "Title", news.Title);
            XmlHelper.AddNode(doc, newsXml, "SubTitle", news.SubTitle);
            XmlHelper.AddNode(doc, newsXml, "Url", NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID));
            XmlHelper.AddNode(doc, newsXml, "Target", NewsHelper.GetNewsTarget(news.OpenInNewWindow));
            XmlHelper.AddNode(doc, newsXml, "ShowOption", news.ShowOption.ToString());
            XmlHelper.AddNode(doc, newsXml, "ZoneId", news.ZoneID.ToInvariantString());

            SiteMapDataSource siteMapDataSource = new SiteMapDataSource();

            siteMapDataSource.SiteMapProvider = "canhcamsite" + siteId.ToInvariantString();

            SiteMapNode rootNode     = siteMapDataSource.Provider.RootNode;
            SiteMapNode startingNode = null;

            if (rootNode == null)
            {
                return(null);
            }

            if (news.ZoneID > -1)
            {
                SiteMapNodeCollection allNodes = rootNode.GetAllNodes();
                foreach (SiteMapNode childNode in allNodes)
                {
                    gbSiteMapNode gbNode = childNode as gbSiteMapNode;
                    if (gbNode == null)
                    {
                        continue;
                    }

                    if (Convert.ToInt32(gbNode.Key) == news.ZoneID)
                    {
                        startingNode = gbNode;
                        XmlHelper.AddNode(doc, newsXml, "ZoneDescription", gbNode.Description);
                        XmlHelper.AddNode(doc, newsXml, "ZoneTitle", gbNode.Title);
                        break;
                    }
                }
            }

            string imageFolderPath          = NewsHelper.MediaFolderPath(news.SiteId, news.NewsID);
            string thumbnailImageFolderPath = imageFolderPath + "thumbs/";

            if (news.ImageFile.Length > 0)
            {
                XmlHelper.AddNode(doc, newsXml, "ImageUrl", VirtualPathUtility.ToAbsolute(imageFolderPath + news.ImageFile));
            }
            if (news.ThumbnailFile.Length > 0)
            {
                XmlHelper.AddNode(doc, newsXml, "ThumbnailUrl",
                                  VirtualPathUtility.ToAbsolute(thumbnailImageFolderPath + news.ThumbnailFile));
            }

            XmlHelper.AddNode(doc, newsXml, "EditLink", editLink);

            XmlHelper.AddNode(doc, newsXml, "BriefContent", news.BriefContent);
            XmlHelper.AddNode(doc, newsXml, "FullContent", news.FullContent);
            XmlHelper.AddNode(doc, newsXml, "ViewCount", news.Viewed.ToString());
            XmlHelper.AddNode(doc, newsXml, "CommentCount", news.CommentCount.ToString());
            XmlHelper.AddNode(doc, newsXml, "FileUrl", news.FileAttachment);

            object startDate = news.StartDate;

            XmlHelper.AddNode(doc, newsXml, "CreatedDate", FormatDate(startDate, timeZone, timeOffset,
                                                                      ResourceHelper.GetResourceString("NewsResources", "NewsDateFormat")));
            XmlHelper.AddNode(doc, newsXml, "CreatedTime", FormatDate(startDate, timeZone, timeOffset,
                                                                      ResourceHelper.GetResourceString("NewsResources", "NewsTimeFormat")));
            XmlHelper.AddNode(doc, newsXml, "CreatedDD", FormatDate(startDate, timeZone, timeOffset, "dd"));
            XmlHelper.AddNode(doc, newsXml, "CreatedYY", FormatDate(startDate, timeZone, timeOffset, "yy"));
            XmlHelper.AddNode(doc, newsXml, "CreatedYYYY", FormatDate(startDate, timeZone, timeOffset, "yyyy"));
            XmlHelper.AddNode(doc, newsXml, "CreatedMM", FormatDate(startDate, timeZone, timeOffset, "MM"));
            if (System.Globalization.CultureInfo.CurrentCulture.Name.ToLower() == "vi-vn")
            {
                string monthVI = "Tháng " + FormatDate(startDate, timeZone, timeOffset, "MM");
                XmlHelper.AddNode(doc, newsXml, "CreatedMMM", monthVI);
                XmlHelper.AddNode(doc, newsXml, "CreatedMMMM", monthVI);
            }
            else
            {
                XmlHelper.AddNode(doc, newsXml, "CreatedMMM", FormatDate(startDate, timeZone, timeOffset, "MMM"));
                XmlHelper.AddNode(doc, newsXml, "CreatedMMMM", FormatDate(startDate, timeZone, timeOffset, "MMMM"));
            }
            if (news.EndDate != null && news.EndDate != DateTime.MaxValue)
            {
                XmlHelper.AddNode(doc, newsXml, "EndDate", FormatDate(news.EndDate, timeZone, timeOffset,
                                                                      ResourceHelper.GetResourceString("NewsResources", "NewsDateFormat")));
            }

            return(doc);
        }
Exemplo n.º 8
0
        public static void SendApprovalRequestNotification(
            SmtpSettings smtpSettings,
            SiteSettings siteSettings,
            int workflowId,
            SiteUser submittingUser,
            News draftNews
            )
        {
            if (!draftNews.StateId.HasValue)
            {
                return;
            }

            WorkflowState workflowState = WorkflowHelper.GetWorkflowState(workflowId, draftNews.StateId.Value);

            if (workflowState == null || workflowState.StateId == -1)
            {
                return;
            }

            if (workflowState.ReviewRoles.Length == 0 ||
                workflowState.NotifyTemplate.Length == 0)                //"ApprovalRequestNotification"
            {
                return;
            }

            string approvalRoles = workflowState.ReviewRoles;

            gbSiteMapNode gbNode = SiteUtils.GetSiteMapNodeByZoneId(draftNews.ZoneID);

            if (gbNode != null)
            {
                List <string> authorizedRoles = gbNode.AuthorizedRoles.SplitOnCharAndTrim(';');
                List <string> reviewRoles     = workflowState.ReviewRoles.SplitOnCharAndTrim(';');

                if (authorizedRoles.Count > 0 && reviewRoles.Count > 0)
                {
                    approvalRoles = string.Empty;

                    foreach (string reviewRole in reviewRoles)
                    {
                        foreach (string role in authorizedRoles)
                        {
                            if (reviewRole.ToLower() == role.ToLower())
                            {
                                approvalRoles += reviewRole + ";";
                            }
                        }
                    }
                }
            }

            List <string> emailAddresses = SiteUser.GetEmailAddresses(siteSettings.SiteId, approvalRoles);

            int queuedMessageCount = 0;

            EmailTemplate template        = EmailTemplate.Get(siteSettings.SiteId, workflowState.NotifyTemplate);
            string        subject         = template.Subject.Replace("{SiteName}", siteSettings.SiteName);
            string        messageTemplate = template.HtmlBody;

            List <string> emailTo = (template.ToAddresses.Length > 0 ? ";" + template.ToAddresses : "").SplitOnCharAndTrim(';');

            string emailToAddress = string.Empty;

            foreach (string email in emailAddresses)
            {
                if (WebConfigSettings.EmailAddressesToExcludeFromAdminNotifications.IndexOf(email,
                                                                                            StringComparison.InvariantCultureIgnoreCase) > -1)
                {
                    continue;
                }
                if (!Email.IsValidEmailAddressSyntax(email))
                {
                    continue;
                }

                if (!emailToAddress.Contains(email + ";"))
                {
                    emailToAddress += email + ";";
                }
            }
            foreach (string email in emailTo)
            {
                if (WebConfigSettings.EmailAddressesToExcludeFromAdminNotifications.IndexOf(email,
                                                                                            StringComparison.InvariantCultureIgnoreCase) > -1)
                {
                    continue;
                }
                if (!Email.IsValidEmailAddressSyntax(email))
                {
                    continue;
                }

                if (!emailToAddress.Contains(email + ";"))
                {
                    emailToAddress += email + ";";
                }
            }

            string replyEmail = submittingUser.Email;

            if (template.ReplyToAddress.Length > 0)
            {
                replyEmail += ";" + template.ReplyToAddress;
            }

            string fromEmailAlias = (template.FromName.Length > 0 ? template.FromName : siteSettings.DefaultFromEmailAlias);

            StringBuilder message = new StringBuilder();

            message.Append(messageTemplate);
            message.Replace("{Title}", draftNews.Title);
            message.Replace("{SubmittedDate}", DateTimeHelper.GetLocalTimeString(draftNews.ApprovedUtc, SiteUtils.GetUserTimeZone(),
                                                                                 SiteUtils.GetUserTimeOffset()));
            message.Replace("{SubmittedBy}", submittingUser.Name);
            message.Replace("{ContentUrl}", NewsHelper.FormatNewsUrl(draftNews.Url, draftNews.NewsID, draftNews.ZoneID));

            EmailMessageTask messageTask = new EmailMessageTask(smtpSettings);

            messageTask.SiteGuid       = siteSettings.SiteGuid;
            messageTask.EmailFrom      = siteSettings.DefaultEmailFromAddress;
            messageTask.EmailFromAlias = fromEmailAlias;
            messageTask.EmailReplyTo   = replyEmail;
            messageTask.EmailTo        = emailToAddress;
            messageTask.EmailCc        = template.CcAddresses;
            messageTask.EmailBcc       = template.BccAddresses;
            messageTask.UseHtml        = true;
            messageTask.Subject        = subject;
            messageTask.HtmlBody       = message.ToString();
            messageTask.QueueTask();
            queuedMessageCount += 1;

            //Email.Send(
            //        smtpSettings,
            //        siteSettings.DefaultEmailFromAddress,
            //        siteSettings.DefaultFromEmailAlias,
            //        submittingUser.Email,
            //        email,
            //        string.Empty,
            //        string.Empty,
            //        messageSubject,
            //        message.ToString(),
            //        false,
            //        Email.PriorityNormal);

            WebTaskManager.StartOrResumeTasks();
        }
Exemplo n.º 9
0
        protected void PopulateControls()
        {
            if (parametersAreInvalid)
            {
                pnlInnerWrap.Visible = false;
                return;
            }

            if (news.IsDeleted)
            {
                if (WebConfigSettings.Custom404Page.Length > 0)
                {
                    Server.Transfer(WebConfigSettings.Custom404Page);
                }
                else
                {
                    Server.Transfer("~/PageNotFound.aspx");
                }

                return;
            }

            if (news.IsPublished && news.EndDate < DateTime.UtcNow)
            {
                expired.Visible = true;
                //http://support.google.com/webmasters/bin/answer.py?hl=en&answer=40132
                // 410 means the resource is gone but once existed
                // google treats it as more permanent than a 404
                // and it should result in de-indexing the content
                Response.StatusCode        = 410;
                Response.StatusDescription = "Content Expired";
                if (
                    !NewsPermission.CanUpdate ||
                    !basePage.UserCanAuthorizeZone(news.ZoneID)
                    )
                {
                    pnlInnerWrap.Visible = false;
                    return;
                }
            }

            // if not published only the editor can see it
            if (!news.IsPublished)
            {
                bool stopRedirect = false;

                if (WebConfigSettings.EnableContentWorkflow && basePage.SiteInfo.EnableContentWorkflow)
                {
                    if (news.StateId.HasValue && WorkflowHelper.UserHasStatePermission(workflowId, news.StateId.Value))
                    {
                        stopRedirect = true;
                    }
                }
                else
                {
                    if (
                        (currentUser != null && currentUser.UserGuid == news.UserGuid) ||
                        (NewsPermission.CanUpdate && basePage.UserCanAuthorizeZone(news.ZoneID))
                        )
                    {
                        stopRedirect = true;
                    }
                }

                if (!stopRedirect)
                {
                    pnlInnerWrap.Visible = false;
                    WebUtils.SetupRedirect(this, SiteUtils.GetCurrentZoneUrl());
                    return;
                }
            }

            SetupMetaTags();

            XmlDocument doc = new XmlDocument();

            doc.LoadXml("<NewsDetail></NewsDetail>");
            XmlElement root = doc.DocumentElement;

            //XmlHelper.AddNode(doc, root, "ModuleTitle", module.ModuleTitle);
            XmlHelper.AddNode(doc, root, "ZoneTitle", basePage.CurrentZone.Name);
            XmlHelper.AddNode(doc, root, "ZoneDescription", basePage.CurrentZone.Description);
            XmlHelper.AddNode(doc, root, "ViewMore", NewsResources.NewsMoreLinkText);
            XmlHelper.AddNode(doc, root, "Title", news.Title);
            XmlHelper.AddNode(doc, root, "SubTitle", news.SubTitle);
            XmlHelper.AddNode(doc, root, "ZoneUrl", SiteUtils.GetCurrentZoneUrl());

            if (module.ResourceFileDef.Length > 0 && module.ResourceKeyDef.Length > 0)
            {
                List <string> lstResourceKeys = module.ResourceKeyDef.SplitOnCharAndTrim(';');

                foreach (string item in lstResourceKeys)
                {
                    XmlHelper.AddNode(doc, root, item, ResourceHelper.GetResourceString(module.ResourceFileDef, item));
                }
            }

            XmlHelper.AddNode(doc, root, "EditLink", NewsHelper.BuildEditLink(news, basePage, userCanUpdate, currentUser));

            //XmlHelper.AddNode(doc, root, "ViewCVLink", GetCVListLink(news.NewsID, news.CommentCount, NewsPermission.CanManageComment));
            XmlHelper.AddNode(doc, root, "ApplyText", NewsResources.JobApplyLable);
            XmlHelper.AddNode(doc, root, "ApplyUrl", this.siteRoot + "/News/JobApplyDialog.aspx?zoneid=" + zoneId.ToString() + "&NewsID=" + newsId.ToString());

            XmlHelper.AddNode(doc, root, "ShowOption", news.ShowOption.ToString());

            XmlHelper.AddNode(doc, root, "CreatedDate", FormatDate(news.StartDate, NewsResources.NewsDateFormat));
            XmlHelper.AddNode(doc, root, "CreatedTime", FormatDate(news.StartDate, NewsResources.NewsTimeFormat));
            XmlHelper.AddNode(doc, root, "CreatedDD", FormatDate(news.StartDate, "dd"));
            XmlHelper.AddNode(doc, root, "CreatedYY", FormatDate(news.StartDate, "yy"));
            XmlHelper.AddNode(doc, root, "CreatedYYYY", FormatDate(news.StartDate, "yyyy"));
            XmlHelper.AddNode(doc, root, "CreatedMM", FormatDate(news.StartDate, "MM"));
            if (WorkingCulture.DefaultName.ToLower() == "vi-vn")
            {
                string monthVI = "Tháng " + FormatDate(news.StartDate, "MM");
                XmlHelper.AddNode(doc, root, "CreatedMMM", monthVI);
                XmlHelper.AddNode(doc, root, "CreatedMMMM", monthVI);
            }
            else
            {
                XmlHelper.AddNode(doc, root, "CreatedMMM", FormatDate(news.StartDate, "MMM"));
                XmlHelper.AddNode(doc, root, "CreatedMMMM", FormatDate(news.StartDate, "MMMM"));
            }

            XmlHelper.AddNode(doc, root, "Code", news.Code);
            XmlHelper.AddNode(doc, root, "BriefContent", news.BriefContent);
            XmlHelper.AddNode(doc, root, "FullContent", news.FullContent);
            XmlHelper.AddNode(doc, root, "ViewCount", news.Viewed.ToString());
            XmlHelper.AddNode(doc, root, "FileUrl", news.FileAttachment);

            if (displaySettings.ShowNextPreviousLink)
            {
                BuildNextPreviousXml(doc, root);
            }

            XmlHelper.AddNode(doc, root, "FacebookLike", RenderFacebookLike());
            XmlHelper.AddNode(doc, root, "PlusOne", RenderPlusOne());
            XmlHelper.AddNode(doc, root, "TweetThis", RenderTweetThis());
            XmlHelper.AddNode(doc, root, "Print", RenderPrinter());
            XmlHelper.AddNode(doc, root, "Email", RenderEmailSubject());
            XmlHelper.AddNode(doc, root, "FullUrl", NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID));

            if (displaySettings.ShowAttribute)
            {
                BuildNewsAttributesXml(doc, root, languageId);
            }

            BuildNewsImagesXml(doc, root);

            #region Start news other

            BuildNewsOtherXml(doc, root, zoneId, pageNumber, config.RelatedItemsToShow, out totalPages);
            if (NewsHelper.IsAjaxRequest(Request) && WebUtils.ParseBoolFromQueryString("isajax", false))
            {
                Response.Write(XmlHelper.TransformXML(SiteUtils.GetXsltBasePath("news", config.XsltFileNameDetailPage), doc));
                Response.End();
                return;
            }

            string pageUrlLeaveOutPageNumber = NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID);

            if (config.HidePaginationOnDetailPage)
            {
                divPager.Visible = false;
            }
            else
            {
                string pageUrl = pageUrlLeaveOutPageNumber;
                if (WebUtils.ParseInt32FromQueryString("NewsId", -1) == -1 && config.LoadFirstItem)
                {
                    pageUrl = SiteUtils.GetCurrentZoneUrl();
                }

                if (pageUrl.Contains("?"))
                {
                    pageUrl += "&amp;pagenumber={0}";
                }
                else
                {
                    pageUrl += "?pagenumber={0}";
                }
                pgr.PageURLFormat = pageUrl;
                pgr.ShowFirstLast = true;
                pgr.PageSize      = config.PageSize;
                pgr.PageCount     = totalPages;
                pgr.CurrentIndex  = pageNumber;
                divPager.Visible  = (totalPages > 1);
            }

            if (WebUtils.ParseInt32FromQueryString("pagenumber", -1) == 1)
            {
                basePage.AdditionalMetaMarkup += "\n<link rel=\"canonical\" href=\"" + pageUrlLeaveOutPageNumber + "\" />";
            }

            #endregion

            XmlHelper.XMLTransform(xmlTransformer, SiteUtils.GetXsltBasePath("news", config.XsltFileNameDetailPage), doc);

            News.IncrementViewedCount(news.NewsID);
        }
Exemplo n.º 10
0
        private string RenderEmailSubject()
        {
            SetupEmailSubjectScript();

            return(string.Format("<a href='{0}' class='email-link' target='_blank' title='{1}' rel='nofollow'><span>{2}</span></a>",
                                 siteRoot + "/News/EmailSubjectDialog.aspx?u=" + Context.Server.HtmlEncode(NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID)),
                                 NewsResources.NewsEmailLink,
                                 NewsResources.NewsEmailLink));
        }
Exemplo n.º 11
0
        public void BuildNewsOtherXml(
            XmlDocument doc,
            XmlElement root,
            int zoneId,
            int pageNumber,
            int pageSize,
            out int totalPages)
        {
            XmlHelper.AddNode(doc, root, "NewsOtherText", NewsResources.OtherNewsLabel);
            XmlHelper.AddNode(doc, root, "ProductOtherText", NewsResources.OtherProductLabel);
            XmlHelper.AddNode(doc, root, "ProjectOtherText", NewsResources.OtherProjectLabel);

            List <News> lstNews = new List <News>();

            if (pageSize < 0)
            {
                pageSize   = -pageSize;
                totalPages = 1;
                int totalRows = News.GetCount(basePage.SiteId, zoneId, languageId, -1, -1);

                if (pageSize > 0)
                {
                    totalPages = totalRows / pageSize;
                }

                if (totalRows <= pageSize)
                {
                    totalPages = 1;
                }
                else if (pageSize > 0)
                {
                    int remainder;
                    Math.DivRem(totalRows, pageSize, out remainder);
                    if (remainder > 0)
                    {
                        totalPages += 1;
                    }
                }

                lstNews = News.GetPage(basePage.SiteId, zoneId, languageId, -1, -1, pageNumber, pageSize);
            }
            else
            {
                lstNews = News.GetPageNewsOther(zoneId, news.NewsID, languageId, config.NewsType, pageNumber, pageSize, out totalPages);
            }

            foreach (News news in lstNews)
            {
                XmlElement newsXml = doc.CreateElement("NewsOther");
                root.AppendChild(newsXml);

                NewsHelper.BuildNewsDataXml(doc, newsXml, news, timeZone, timeOffset, NewsHelper.BuildEditLink(news, basePage, userCanUpdate, currentUser));

                if (news.NewsID == newsId)
                {
                    XmlHelper.AddNode(doc, newsXml, "IsActive", "true");
                }
            }

            if (pageNumber < totalPages)
            {
                string pageUrl = NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID);

                int iNewsId = WebUtils.ParseInt32FromQueryString("NewsId", -1);
                if (iNewsId == -1 && config.LoadFirstItem)
                {
                    pageUrl = SiteUtils.GetCurrentZoneUrl();
                }

                if (pageUrl.Contains("?"))
                {
                    pageUrl += "&pagenumber=" + (pageNumber + 1).ToString();
                }
                else
                {
                    pageUrl += "?pagenumber=" + (pageNumber + 1).ToString();
                }

                XmlHelper.AddNode(doc, root, "NextPageUrl", pageUrl);
            }
        }
Exemplo n.º 12
0
        private void SetupMetaTags()
        {
            string title = news.Title;

            if (news.MetaTitle.Length > 0)
            {
                basePage.Title = news.MetaTitle;
                title          = news.MetaTitle;
            }
            else
            {
                basePage.Title = SiteUtils.FormatPageTitle(basePage.SiteInfo, news.Title);
            }

            if (news.MetaKeywords.Length > 0)
            {
                basePage.MetaKeywordCsv = news.MetaKeywords;
            }
            else if (basePage.SiteInfo.MetaKeyWords.Length > 0)
            {
                basePage.MetaKeywordCsv = basePage.SiteInfo.GetMetaKeyWords(WorkingCulture.LanguageId);
            }

            if (news.MetaDescription.Length > 0)
            {
                basePage.MetaDescription = news.MetaDescription;
            }
            else if (news.BriefContent.Length > 0)
            {
                basePage.MetaDescription = UIHelper.CreateExcerpt(news.BriefContent, 156);
            }
            else if (news.FullContent.Length > 0)
            {
                basePage.MetaDescription = UIHelper.CreateExcerpt(news.FullContent, 156);
            }

            if (title.Length > 0)
            {
                basePage.AdditionalMetaMarkup += "\n<meta property=\"og:title\" content=\"" + title + "\" />";
            }
            if (basePage.MetaDescription.Length > 0)
            {
                basePage.AdditionalMetaMarkup += "\n<meta property=\"og:description\" content=\"" + basePage.MetaDescription + "\" />";
            }

            basePage.AdditionalMetaMarkup += "\n<meta property=\"og:url\" content=\"" + NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID) + "\" />";
            basePage.AdditionalMetaMarkup += "\n<meta property=\"og:site_name\" content=\"" + basePage.SiteInfo.SiteName + "\" />";
            basePage.AdditionalMetaMarkup += "\n<meta property=\"og:type\" content=\"article\" />";

            if (title.Length > 0)
            {
                basePage.AdditionalMetaMarkup += "\n<meta itemprop=\"name\" content=\"" + title + "\" />";
            }
            if (basePage.MetaDescription.Length > 0)
            {
                basePage.AdditionalMetaMarkup += "\n<meta itemprop=\"description\" content=\"" + basePage.MetaDescription + "\" />";
            }

            ZoneSettings currentZone = CacheHelper.GetCurrentZone();

            if (basePage.SiteInfo.MetaAdditional.Length > 0)
            {
                basePage.AdditionalMetaMarkup = basePage.SiteInfo.MetaAdditional;
            }
            if (currentZone.AdditionalMetaTags.Length > 0)
            {
                basePage.AdditionalMetaMarkup += currentZone.AdditionalMetaTags;
            }
            if (news.AdditionalMetaTags.Length > 0)
            {
                basePage.AdditionalMetaMarkup += news.AdditionalMetaTags;
            }
        }