示例#1
0
class info_label_pager(tornado.web.UIModule):
    def render(self, *args, **kwargs):

        self.minfo = MInfor()
        tag_slug = args[0]
        current = int(args[1])
        # cat_slug 分类
        # current 当前页面

        cat_rec =  self.minfo.query_by_tagname(tag_slug)

        page_num = int(cat_rec.count() / config.page_num)

        kwd = {
            'page_home': False if current <= 1 else True,
            'page_end': False if current >= page_num else True,
            'page_pre': False if current <= 1 else True,
            'page_next': False if current >= page_num else True,
        }

        return self.render_string('modules/post/info_label_pager.html',
                                  kwd=kwd,
                                  cat_slug=tag_slug,
                                  pager_num=page_num,
                                  page_current=current,
                                  )
示例#2
0
class InfoTagHandler(BaseHandler):
    def initialize(self, hinfo=''):
        self.init()
        self.template_dir_name = 'infor'
        self.minfo = MInfor()
        self.mcat = MCategory()

    def get(self, url_str=''):
        print('tag:', url_str)
        url_arr = self.parse_url(url_str)

        if len(url_arr) == 1:
            self.list(url_str)
        elif len(url_arr) == 2:
            if url_arr[0] == 'remove':
                self.remove_redis_keyword(url_arr[1])
            else:
                self.list(url_arr[0], url_arr[1])

    @tornado.web.authenticated
    def remove_redis_keyword(self, kw):
        redisvr.srem(config.redis_kw + self.userinfo.user_name, kw)
        return json.dump({}, self)

    def list(self, tag_slug, cur_p=''):
        # 下面用来使用关键字过滤信息,如果网站信息量不是很大不要开启
        # Todo:
        # if self.get_current_user():
        #     redisvr.sadd(config.redis_kw + self.userinfo.user_name, tag_slug)

        if cur_p == '':
            current_page_num = 1
        else:
            current_page_num = int(cur_p)

        tag_name = 'fd'
        kwd = {
            'tag_name': tag_name,
            'tag_slug': tag_slug,
            'title': tag_name,
            'current_page': current_page_num
        }

        info = self.minfo.query_by_tagname(tag_slug)

        page_num = int(info.count() / config.page_num) + 1

        print('tag tmpl:',
              '{0}/label/list.html'.format(self.template_dir_name))

        self.render(
            '{0}/label/list.html'.format(self.template_dir_name),
            kwd=kwd,
            userinfo=self.userinfo,
            infos=self.minfo.query_pager_by_tag(tag_slug, current_page_num),
            pager=self.gen_pager(tag_slug, page_num, current_page_num),
        )

    def gen_pager(self, cat_slug, page_num, current):
        '''
        cat_slug 分类
        page_num 页面总数
        current 当前页面
        '''

        if page_num == 1:
            return ''

        pager_shouye = '''
        <li class="{0}">
        <a  href="/info_tag/{1}">&lt;&lt; 首页</a>
                    </li>'''.format('' if current <= 1 else '', cat_slug)

        pager_pre = '''
                    <li class=" previous {0}">
                    <a  href="/info_tag/{1}/{2}">&lt; 前页</a>
                    </li>
                    '''.format('' if current <= 1 else '', cat_slug,
                               current - 1)
        pager_mid = ''
        for ind in range(0, page_num):
            tmp_mid = '''
                    <li class=" page {0}">
                    <a  href="/info_tag/{1}/{2}">{2}</a></li>
                    '''.format('active' if ind + 1 == current else '',
                               cat_slug, ind + 1)
            pager_mid += tmp_mid
        pager_next = '''
                    <li class=" next {0}">
                    <a  href="/info_tag/{1}/{2}">后页 &gt;</a>
                    </li>
                    '''.format('' if current >= page_num else '', cat_slug,
                               current + 1)
        pager_last = '''
                    <li class=" last {0}">
                    <a href="/info_tag/{1}/{2}">末页
                        &gt;&gt;</a>
                    </li>
                    '''.format('' if current >= page_num else '', cat_slug,
                               page_num)
        pager = pager_shouye + pager_pre + pager_mid + pager_next + pager_last
        return (pager)