def render(self, *args): ysearch = YunSearch() tag_slug = args[0] current = int(args[1]) res_all = ysearch.get_all_num(tag_slug) page_num = int(res_all / config.CMS_CFG['list_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/search_pager.html', kwd=kwd, cat_slug=tag_slug, pager_num=page_num, page_current=current)
def render(self, *args, **kwargs): ysearch = YunSearch() catid = args[0] tag_slug = args[1] current = int(args[2]) res_all = ysearch.get_all_num(tag_slug, catid=catid) pager_count = int(res_all / config.CMS_CFG['list_num']) page_num = (pager_count if abs(pager_count - res_all / config.CMS_CFG['list_num']) < 0.1 else pager_count + 1) 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/search_pager.html', kwd=kwd, cat_slug=tag_slug, pager_num=page_num, page_current=current)
class SearchHandler(BaseHandler): ''' For full text searching. ''' def initialize(self, **kwargs): super(SearchHandler, self).initialize() self.ysearch = YunSearch() def get(self, *args, **kwargs): url_str = args[0] url_arr = self.parse_url(url_str) if url_str == '': self.index() elif len(url_arr) == 2: self.search(url_arr[0], url_arr[1]) elif len(url_arr) == 3: self.search_cat(url_arr[0], url_arr[1], int(url_arr[2])) else: kwd = { 'info': '页面未找到', } self.render('misc/html/404.html', kwd=kwd, userinfo=self.userinfo) def index(self): tag_enum = MCategory.query_pcat() self.render('misc/search/search_index.html', userinfo=self.userinfo, cat_enum=tag_enum, tag_enum=tag_enum, kwd={}) def post(self, *args, **kwargs): post_data = self.get_post_data() catid = post_data['searchcat'] if 'searchcat' in post_data else '' keyword = post_data['keyword'] logger.info('Searching ... ') logger.info(' catid: {uid}'.format(uid=catid)) logger.info(' keyowrds: {kw}'.format(kw=keyword)) if catid == '': self.redirect('/search/{0}/1'.format(keyword)) else: self.redirect('/search/{0}/{1}/1'.format(catid, keyword)) def search(self, keyword, p_index=''): ''' perform searching. ''' if p_index == '' or p_index == '-1': current_page_number = 1 else: current_page_number = int(p_index) res_all = self.ysearch.get_all_num(keyword) results = self.ysearch.search_pager(keyword, page_index=current_page_number, doc_per_page=CMS_CFG['list_num']) page_num = int(res_all / CMS_CFG['list_num']) kwd = { 'title': '查找结果', 'pager': '', 'count': res_all, 'keyword': keyword, 'catid': '', 'current_page': current_page_number } self.render('misc/search/search_list.html', kwd=kwd, srecs=results, pager=gen_pager_bootstrap_url( '/search/{0}'.format(keyword), page_num, current_page_number), userinfo=self.userinfo, cfg=CMS_CFG) def search_cat(self, catid, keyword, p_index=1): ''' Searching according the kind. ''' catid = 'sid' + catid logger.info('-' * 20) logger.info('search cat') logger.info('catid: {0}'.format(catid)) logger.info('keyword: {0}'.format(keyword)) # catid = '' if p_index == '' or p_index == '-1': current_page_number = 1 else: current_page_number = int(p_index) res_all = self.ysearch.get_all_num(keyword, catid=catid) results = self.ysearch.search_pager(keyword, catid=catid, page_index=current_page_number, doc_per_page=CMS_CFG['list_num']) page_num = int(res_all / CMS_CFG['list_num']) kwd = { 'title': '查找结果', 'pager': '', 'count': res_all, 'current_page': current_page_number, 'catid': catid, 'keyword': keyword } self.render('misc/search/search_list.html', kwd=kwd, srecs=results, pager=gen_pager_bootstrap_url( '/search/{0}/{1}'.format(catid, keyword), page_num, current_page_number), userinfo=self.userinfo, cfg=CMS_CFG)
def initialize(self, **kwargs): super(SearchHandler, self).initialize() self.ysearch = YunSearch()
def initialize(self, **kwargs): super().initialize() self.ysearch = YunSearch()