|  | @@ -1,193 +0,0 @@
 | 
	
		
			
				|  |  | -package fetdata
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// import (
 | 
	
		
			
				|  |  | -// 	"math"
 | 
	
		
			
				|  |  | -// 	"strconv"
 | 
	
		
			
				|  |  | -// 	"strings"
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 	"golang-fave/engine/sqlw"
 | 
	
		
			
				|  |  | -// 	"golang-fave/utils"
 | 
	
		
			
				|  |  | -// )
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// func (this *FERData) postsGetCount(buf string, cat int) (int, int) {
 | 
	
		
			
				|  |  | -// 	if cat == 0 {
 | 
	
		
			
				|  |  | -// 		var num int
 | 
	
		
			
				|  |  | -// 		if err := this.wrap.DB.QueryRow(`
 | 
	
		
			
				|  |  | -// 			SELECT
 | 
	
		
			
				|  |  | -// 				COUNT(*)
 | 
	
		
			
				|  |  | -// 			FROM
 | 
	
		
			
				|  |  | -// 				blog_posts
 | 
	
		
			
				|  |  | -// 			WHERE
 | 
	
		
			
				|  |  | -// 				active = 1
 | 
	
		
			
				|  |  | -// 			;
 | 
	
		
			
				|  |  | -// 		`).Scan(&num); err == nil {
 | 
	
		
			
				|  |  | -// 			pear_page := 2
 | 
	
		
			
				|  |  | -// 			max_pages := int(math.Ceil(float64(num) / float64(pear_page)))
 | 
	
		
			
				|  |  | -// 			curr_page := 1
 | 
	
		
			
				|  |  | -// 			p := this.wrap.R.URL.Query().Get("p")
 | 
	
		
			
				|  |  | -// 			if p != "" {
 | 
	
		
			
				|  |  | -// 				pi, err := strconv.Atoi(p)
 | 
	
		
			
				|  |  | -// 				if err != nil {
 | 
	
		
			
				|  |  | -// 					curr_page = 1
 | 
	
		
			
				|  |  | -// 				} else {
 | 
	
		
			
				|  |  | -// 					if pi < 1 {
 | 
	
		
			
				|  |  | -// 						curr_page = 1
 | 
	
		
			
				|  |  | -// 					} else if pi > max_pages {
 | 
	
		
			
				|  |  | -// 						curr_page = max_pages
 | 
	
		
			
				|  |  | -// 					} else {
 | 
	
		
			
				|  |  | -// 						curr_page = pi
 | 
	
		
			
				|  |  | -// 					}
 | 
	
		
			
				|  |  | -// 				}
 | 
	
		
			
				|  |  | -// 			}
 | 
	
		
			
				|  |  | -// 			limit_offset := curr_page*pear_page - pear_page
 | 
	
		
			
				|  |  | -// 			return limit_offset, pear_page
 | 
	
		
			
				|  |  | -// 		}
 | 
	
		
			
				|  |  | -// 	} else {
 | 
	
		
			
				|  |  | -// 		var num int
 | 
	
		
			
				|  |  | -// 		if err := this.wrap.DB.QueryRow(`
 | 
	
		
			
				|  |  | -// 			SELECT
 | 
	
		
			
				|  |  | -// 				COUNT(blog_posts.id)
 | 
	
		
			
				|  |  | -// 			FROM
 | 
	
		
			
				|  |  | -// 				blog_posts
 | 
	
		
			
				|  |  | -// 				LEFT JOIN blog_cat_post_rel ON blog_cat_post_rel.post_id = blog_posts.id
 | 
	
		
			
				|  |  | -// 			WHERE
 | 
	
		
			
				|  |  | -// 				blog_posts.active = 1 AND
 | 
	
		
			
				|  |  | -// 				blog_cat_post_rel.category_id = ?
 | 
	
		
			
				|  |  | -// 			;
 | 
	
		
			
				|  |  | -// 		`, cat).Scan(&num); err == nil {
 | 
	
		
			
				|  |  | -// 			pear_page := 2
 | 
	
		
			
				|  |  | -// 			max_pages := int(math.Ceil(float64(num) / float64(pear_page)))
 | 
	
		
			
				|  |  | -// 			curr_page := 1
 | 
	
		
			
				|  |  | -// 			p := this.wrap.R.URL.Query().Get("p")
 | 
	
		
			
				|  |  | -// 			if p != "" {
 | 
	
		
			
				|  |  | -// 				pi, err := strconv.Atoi(p)
 | 
	
		
			
				|  |  | -// 				if err != nil {
 | 
	
		
			
				|  |  | -// 					curr_page = 1
 | 
	
		
			
				|  |  | -// 				} else {
 | 
	
		
			
				|  |  | -// 					if pi < 1 {
 | 
	
		
			
				|  |  | -// 						curr_page = 1
 | 
	
		
			
				|  |  | -// 					} else if pi > max_pages {
 | 
	
		
			
				|  |  | -// 						curr_page = max_pages
 | 
	
		
			
				|  |  | -// 					} else {
 | 
	
		
			
				|  |  | -// 						curr_page = pi
 | 
	
		
			
				|  |  | -// 					}
 | 
	
		
			
				|  |  | -// 				}
 | 
	
		
			
				|  |  | -// 			}
 | 
	
		
			
				|  |  | -// 			limit_offset := curr_page*pear_page - pear_page
 | 
	
		
			
				|  |  | -// 			return limit_offset, pear_page
 | 
	
		
			
				|  |  | -// 		}
 | 
	
		
			
				|  |  | -// 	}
 | 
	
		
			
				|  |  | -// 	return 0, 0
 | 
	
		
			
				|  |  | -// }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// func (this *FERData) postsToBuffer(buf string, cat int, order string) {
 | 
	
		
			
				|  |  | -// 	if this.bufferPosts == nil {
 | 
	
		
			
				|  |  | -// 		this.bufferPosts = map[string][]*BlogPost{}
 | 
	
		
			
				|  |  | -// 	}
 | 
	
		
			
				|  |  | -// 	if _, ok := this.bufferPosts[buf]; !ok {
 | 
	
		
			
				|  |  | -// 		var posts []*BlogPost
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 		limit_offset, pear_page := this.postsGetCount(buf, cat)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 		var rows *sqlw.Rows
 | 
	
		
			
				|  |  | -// 		var err error
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 		if cat == 0 {
 | 
	
		
			
				|  |  | -// 			rows, err = this.wrap.DB.Query(`
 | 
	
		
			
				|  |  | -// 				SELECT
 | 
	
		
			
				|  |  | -// 					blog_posts.id,
 | 
	
		
			
				|  |  | -// 					blog_posts.user,
 | 
	
		
			
				|  |  | -// 					blog_posts.name,
 | 
	
		
			
				|  |  | -// 					blog_posts.alias,
 | 
	
		
			
				|  |  | -// 					blog_posts.content,
 | 
	
		
			
				|  |  | -// 					UNIX_TIMESTAMP(blog_posts.datetime) AS datetime,
 | 
	
		
			
				|  |  | -// 					blog_posts.active
 | 
	
		
			
				|  |  | -// 				FROM
 | 
	
		
			
				|  |  | -// 					blog_posts
 | 
	
		
			
				|  |  | -// 				WHERE
 | 
	
		
			
				|  |  | -// 					blog_posts.active = 1
 | 
	
		
			
				|  |  | -// 				ORDER BY
 | 
	
		
			
				|  |  | -// 					blog_posts.id `+order+`
 | 
	
		
			
				|  |  | -// 				LIMIT ?, ?;
 | 
	
		
			
				|  |  | -// 			`, limit_offset, pear_page)
 | 
	
		
			
				|  |  | -// 		} else {
 | 
	
		
			
				|  |  | -// 			rows, err = this.wrap.DB.Query(`
 | 
	
		
			
				|  |  | -// 				SELECT
 | 
	
		
			
				|  |  | -// 					blog_posts.id,
 | 
	
		
			
				|  |  | -// 					blog_posts.user,
 | 
	
		
			
				|  |  | -// 					blog_posts.name,
 | 
	
		
			
				|  |  | -// 					blog_posts.alias,
 | 
	
		
			
				|  |  | -// 					blog_posts.content,
 | 
	
		
			
				|  |  | -// 					UNIX_TIMESTAMP(blog_posts.datetime) AS datetime,
 | 
	
		
			
				|  |  | -// 					blog_posts.active
 | 
	
		
			
				|  |  | -// 				FROM
 | 
	
		
			
				|  |  | -// 					blog_posts
 | 
	
		
			
				|  |  | -// 					LEFT JOIN blog_cat_post_rel ON blog_cat_post_rel.post_id = blog_posts.id
 | 
	
		
			
				|  |  | -// 				WHERE
 | 
	
		
			
				|  |  | -// 					blog_posts.active = 1 AND
 | 
	
		
			
				|  |  | -// 					blog_cat_post_rel.category_id = ?
 | 
	
		
			
				|  |  | -// 				ORDER BY
 | 
	
		
			
				|  |  | -// 					blog_posts.id `+order+`
 | 
	
		
			
				|  |  | -// 				LIMIT ?, ?;
 | 
	
		
			
				|  |  | -// 			`, cat, limit_offset, pear_page)
 | 
	
		
			
				|  |  | -// 		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 		if err == nil {
 | 
	
		
			
				|  |  | -// 			var f_id int
 | 
	
		
			
				|  |  | -// 			var f_user int
 | 
	
		
			
				|  |  | -// 			var f_name string
 | 
	
		
			
				|  |  | -// 			var f_alias string
 | 
	
		
			
				|  |  | -// 			var f_content string
 | 
	
		
			
				|  |  | -// 			var f_datetime int
 | 
	
		
			
				|  |  | -// 			var f_active int
 | 
	
		
			
				|  |  | -// 			for rows.Next() {
 | 
	
		
			
				|  |  | -// 				err = rows.Scan(&f_id, &f_user, &f_name, &f_alias, &f_content, &f_datetime, &f_active)
 | 
	
		
			
				|  |  | -// 				if err == nil {
 | 
	
		
			
				|  |  | -// 					posts = append(posts, &BlogPost{
 | 
	
		
			
				|  |  | -// 						id:       f_id,
 | 
	
		
			
				|  |  | -// 						user:     f_user,
 | 
	
		
			
				|  |  | -// 						name:     f_name,
 | 
	
		
			
				|  |  | -// 						alias:    f_alias,
 | 
	
		
			
				|  |  | -// 						content:  f_content,
 | 
	
		
			
				|  |  | -// 						datetime: f_datetime,
 | 
	
		
			
				|  |  | -// 						active:   f_active,
 | 
	
		
			
				|  |  | -// 					})
 | 
	
		
			
				|  |  | -// 				}
 | 
	
		
			
				|  |  | -// 			}
 | 
	
		
			
				|  |  | -// 			rows.Close()
 | 
	
		
			
				|  |  | -// 		}
 | 
	
		
			
				|  |  | -// 		this.bufferPosts[buf] = posts
 | 
	
		
			
				|  |  | -// 	}
 | 
	
		
			
				|  |  | -// }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// func (this *FERData) BlogPosts() []*BlogPost {
 | 
	
		
			
				|  |  | -// 	return this.BlogPostsOrder("DESC")
 | 
	
		
			
				|  |  | -// }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// func (this *FERData) BlogPostsOrder(order string) []*BlogPost {
 | 
	
		
			
				|  |  | -// 	posts_order := "DESC"
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 	if strings.ToLower(order) == "asc" {
 | 
	
		
			
				|  |  | -// 		posts_order = "ASC"
 | 
	
		
			
				|  |  | -// 	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 	buf := "posts_" + posts_order
 | 
	
		
			
				|  |  | -// 	this.postsToBuffer(buf, 0, posts_order)
 | 
	
		
			
				|  |  | -// 	return this.bufferPosts[buf]
 | 
	
		
			
				|  |  | -// }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// func (this *FERData) BlogPostsOfCat(cat int) []*BlogPost {
 | 
	
		
			
				|  |  | -// 	return this.BlogPostsOfCatOrder(cat, "DESC")
 | 
	
		
			
				|  |  | -// }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// func (this *FERData) BlogPostsOfCatOrder(cat int, order string) []*BlogPost {
 | 
	
		
			
				|  |  | -// 	posts_order := "DESC"
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 	if strings.ToLower(order) == "asc" {
 | 
	
		
			
				|  |  | -// 		posts_order = "ASC"
 | 
	
		
			
				|  |  | -// 	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// 	buf := "posts_" + posts_order + "_" + utils.IntToStr(cat)
 | 
	
		
			
				|  |  | -// 	this.postsToBuffer(buf, cat, posts_order)
 | 
	
		
			
				|  |  | -// 	return this.bufferPosts[buf]
 | 
	
		
			
				|  |  | -// }
 |