コード例 #1
0
ファイル: PageWidget.cs プロジェクト: niemyjski/GraffitiCMS
        public override string RenderData()
        {
            if (PostIds == null || PostIds.Length == 0)
            {
                return(string.Empty);
            }

            PostCollection pc = ZCache.Get <PostCollection>(DataCacheKey);

            if (pc == null)
            {
                pc = new PostCollection();
                foreach (int i in PostIds)
                {
                    Post p = new Post(i);
                    if (!p.IsNew && !p.IsDeleted && p.IsPublished)
                    {
                        pc.Add(p);
                    }
                }

                ZCache.InsertCache(DataCacheKey, pc, 180);
            }

            StringBuilder sb = new StringBuilder("<ul>");

            foreach (Post p in pc)
            {
                sb.AppendFormat("<li><a href=\"{0}\">{1}</a></li>", p.Url, p.Title);
            }

            sb.Append("</ul>");

            return(sb.ToString());
        }
コード例 #2
0
ファイル: Data.cs プロジェクト: harder/GraffitiCMS
        /// <summary>
        /// Gets all posts by the specified tag in the specified category with a max number of results
        /// </summary>
        /// <param name="tagName"></param>
        /// <param name="category"></param>
        /// <param name="numberOfPosts"></param>
        /// <returns></returns>
        public PostCollection PostsByTagAndCategory(string tagName, Category category, int numberOfPosts)
        {
            if (category == null)
            {
                return(null);
            }

            if (String.IsNullOrEmpty(tagName))
            {
                return(PostsByCategory(category, numberOfPosts));
            }
            else
            {
                PostCollection temp = Post.FetchPostsByTagAndCategory(tagName, category.Id);

                PostCollection pc = new PostCollection();

                int tempCount = 0;
                foreach (Post p in temp)
                {
                    tempCount++;
                    if (tempCount > numberOfPosts)
                    {
                        break;
                    }

                    pc.Add(p);
                }

                return(pc);
            }
        }
コード例 #3
0
ファイル: RSS.cs プロジェクト: niemyjski/GraffitiCMS
        protected PostCollection GetTaggedPosts(string tagName)
        {
            PostCollection pc = ZCache.Get <PostCollection>("Tags-ForRSS-" + tagName);

            if (pc == null)
            {
                pc = Post.FetchPostsByTag(TagName);

                PostCollection permissionsFiltered = new PostCollection();
                foreach (Post post in pc)
                {
                    permissionsFiltered.Add(post);
                }
                permissionsFiltered.AddRange(pc);
                foreach (Post p in pc)
                {
                    if (!RolePermissionManager.GetPermissions(p.Category.Id, GraffitiUsers.Current).Read)
                    {
                        permissionsFiltered.Remove(p);
                    }
                }
                pc.Clear();
                int ctr = 0;
                foreach (Post post in permissionsFiltered)
                {
                    if (ctr < Util.PageSize)
                    {
                        pc.Add(post);
                        ctr++;
                    }
                }
                ZCache.InsertCache("Tags-ForRSS-" + tagName, pc, 120);
            }
            return(pc);
        }
コード例 #4
0
ファイル: RSS.cs プロジェクト: chartek/graffiticms
        protected PostCollection GetTaggedPosts(string tagName)
        {
            PostCollection pc = ZCache.Get<PostCollection>("Tags-ForRSS-" + tagName);
            if (pc == null)
            {
                pc = Post.FetchPostsByTag(TagName);

                PostCollection permissionsFiltered = new PostCollection();
                foreach (Post post in pc)
                {
                    permissionsFiltered.Add(post);
                }
                permissionsFiltered.AddRange(pc);
                foreach (Post p in pc) {
                    if (!RolePermissionManager.GetPermissions(p.Category.Id, GraffitiUsers.Current).Read)
                        permissionsFiltered.Remove(p);
                }
                pc.Clear();
                int ctr = 0;
                foreach (Post post in permissionsFiltered)
                {
                    if (ctr < Util.PageSize)
                    {
                        pc.Add(post);
                        ctr++;
                    }
                }
                ZCache.InsertCache("Tags-ForRSS-" + tagName, pc, 120);
            }
            return pc;
        }
コード例 #5
0
ファイル: PageWidget.cs プロジェクト: chartek/graffiticms
        public override string RenderData()
        {
            if (PostIds == null || PostIds.Length == 0)
                return string.Empty;

            PostCollection pc = ZCache.Get<PostCollection>(DataCacheKey);
            if (pc == null)
            {

                pc = new PostCollection();
                foreach(int i in PostIds)
                {
                    Post p = new Post(i);
                    if(!p.IsNew && !p.IsDeleted && p.IsPublished )
                        pc.Add(p);
                }

                ZCache.InsertCache(DataCacheKey, pc, 180);
            }

            StringBuilder sb = new StringBuilder("<ul>");
            foreach(Post p in pc)
            {
                sb.AppendFormat("<li><a href=\"{0}\">{1}</a></li>", p.Url, p.Title);
            }

            sb.Append("</ul>");

            return sb.ToString();
        }
コード例 #6
0
		protected override void Establish_context()
		{
			_posts = new PostCollection();
			_originalPosts = new PostCollection();

			for (int i = 0; i < PostSetsToGenerate; i++)
			{
				// Create set of four posts on a given date (CreatedOn), two with the same event data, two without event dates at all.
				_posts.Add(CreatePost(String.Format("A (Has date) {0}", i),
				                      DateTime.Now.Date.Add(TimeSpan.FromDays(i)),
				                      DateTime.Now.Date.Add(TimeSpan.FromDays(i))));
				_posts.Add(CreatePost(String.Format("B (Has date) {0}", i),
				                      DateTime.Now.Date.Add(TimeSpan.FromDays(i)),
				                      DateTime.Now.Date.Add(TimeSpan.FromDays(i))));
				_posts.Add(CreatePost(String.Format("A (No date) {0}", i), DateTime.Now.Date.Add(TimeSpan.FromDays(i)), null));
				_posts.Add(CreatePost(String.Format("B (No date) {0}", i), DateTime.Now.Date.Add(TimeSpan.FromDays(i)), null));
			}

			_originalPosts.AddRange(_posts);
		}
コード例 #7
0
    private void BindData(PageWidget widget)
    {
        txtTitle.Text = widget.Title;

        Query q = Post.CreateQuery();
        q.AndWhere(Post.Columns.CategoryId, CategoryController.UnCategorizedId);
        q.AndWhere(Post.Columns.IsDeleted, false);
        q.AndWhere(Post.Columns.Status, 1);

        PostCollection pc = new PostCollection();
        pc.LoadAndCloseReader(q.ExecuteReader());

        PostCollection pcInUse = new PostCollection();
        PostCollection pcNotInUse = new PostCollection();

        foreach(int i in widget.PostIds)
        {
            bool found = false;
            foreach(Post p in pc)
            {
                if(i == p.Id)
                {
                    pcInUse.Add(p);
                    found = true;
                }
            }

            if(found)
            {
                pc.Remove(pcInUse[pcInUse.Count - 1]);
            }
        }

        the_Posts.DataSource = pc;
        the_Posts.DataBind();

        existing_items.Items.Clear();
        foreach (Post p in pcInUse)
        {
            existing_items.Items.Add(new Telligent.Glow.OrderedListItem(string.Format(this.ItemFormat, p.Name, p.Id), p.Name, p.Id.ToString()));
        }
    }
コード例 #8
0
ファイル: Data.cs プロジェクト: chartek/graffiticms
        /// <summary>
        /// Gets all posts by the specified tag in the specified category with a max number of results
        /// </summary>
        /// <param name="tagName"></param>
        /// <param name="category"></param>
        /// <param name="numberOfPosts"></param>
        /// <returns></returns>
        public PostCollection PostsByTagAndCategory(string tagName, Category category, int numberOfPosts)
        {
            if (category == null)
                return null;

            if (String.IsNullOrEmpty(tagName))
                return PostsByCategory(category, numberOfPosts);
            else
            {
                PostCollection temp = Post.FetchPostsByTagAndCategory(tagName, category.Id);

                PostCollection pc = new PostCollection();

                int tempCount = 0;
                foreach (Post p in temp)
                {
                    tempCount++;
                    if (tempCount > numberOfPosts)
                        break;

                    pc.Add(p);
                }

                return pc;
            }
        }