Ejemplo n.º 1
0
 def _format_term(self, formatter, ns, target, label):
     wiki = WikiSystem(self.env)
     page = self._wiki_prefix + target
     href = formatter.href.wiki(page)
     link_label = label
     if wiki.has_page(page):
         if not link_label:
             link_label = self._term_desc(target)
         return html.A(wiki.format_page_name(link_label), href=href)
     else:
         if not link_label:
             link_label = self._term_ns + ":" + target
         return html.A(wiki.format_page_name(link_label) + "?",
                         href=href, class_="missing wiki", rel="nofollow")
Ejemplo n.º 2
0
 def _format_term(self, formatter, ns, target, label):
     wiki = WikiSystem(self.env)
     page = self._wiki_prefix + target
     href = formatter.href.wiki(page)
     link_label = label
     if wiki.has_page(page):
         if not link_label:
             link_label = self._term_desc(target)
         return html.A(wiki.format_page_name(link_label), href=href)
     else:
         if not link_label:
             link_label = self._term_ns + ":" + target
         return html.A(wiki.format_page_name(link_label) + "?",
                       href=href,
                       class_="missing wiki",
                       rel="nofollow")
Ejemplo n.º 3
0
    def render_macro(self, req, name, content):
        search = prefix = limit = skips = None
        if not content:
            return html.H2('Need to specify a search')

        if content:
            argv = [arg.strip() for arg in content.split(',')]
            if len(argv) < 1:
                return html.H2('Need to specify a search')
            search = argv[0]
            if len(argv) > 1:
                prefix = argv[1]
                if len(argv) > 2:
                    limit = argv[2]
                    if len(argv) > 3:
                        skips = argv[3]

        db = self.env.get_db_cnx()
        cursor = db.cursor()

        sql = 'SELECT name, max_version FROM (' \
              'SELECT name as name, text as text, ' \
              '  max(version) AS max_version, ' \
              '  max(time) AS max_time ' \
              'FROM wiki '
        args = []
        if prefix:
            sql += 'WHERE name LIKE %s'
            args.append(prefix + '%')
        if skips:
            if prefix:
                sql += ' AND '
            sql += 'name != %s'
            args.append(skips)
        sql += ' GROUP BY name ORDER BY max_time ASC'
        if limit:
            sql += ' LIMIT %s'
            args.append(limit)
        sql += ') AS temptable WHERE text LIKE %s'
        args.append('%' + search + '%')
        cursor.execute(sql, args)

        wiki = WikiSystem(self.env)
        return html.DIV(
            html.UL([
                html.LI(
                    html.A(wiki.format_page_name(name),
                           href=req.href.wiki(name)))
                for name, version in cursor
            ]))
Ejemplo n.º 4
0
    def render_macro(self, req, name, content):
        search = prefix = limit = skips = None
        if not content:
            return html.H2('Need to specify a search')

        if content:
            argv = [arg.strip() for arg in content.split(',')]
            if len(argv) < 1:
                return html.H2('Need to specify a search')
            search = argv[0]
            if len(argv) > 1:
                prefix = argv[1]
                if len(argv) > 2:
                    limit = argv[2]
                    if len(argv) > 3:
                        skips = argv[3]

        db = self.env.get_db_cnx()
        cursor = db.cursor()

        sql = 'SELECT name, max_version FROM (' \
              'SELECT name as name, text as text, ' \
              '  max(version) AS max_version, ' \
              '  max(time) AS max_time ' \
              'FROM wiki '
        args = []
        if prefix:
            sql += 'WHERE name LIKE %s'
            args.append(prefix + '%')
        if skips:
            if prefix:
                sql += ' AND ';
            sql += 'name != %s'
            args.append(skips)
        sql += ' GROUP BY name ORDER BY max_time ASC'
        if limit:
            sql += ' LIMIT %s'
            args.append(limit)
        sql += ') WHERE text LIKE %s'
        args.append('%' + search + '%')
	print sql
	print args
        cursor.execute(sql, args)

        wiki = WikiSystem(self.env)
        return html.DIV(
            html.UL([html.LI(
                html.A(wiki.format_page_name(name), href=req.href.wiki(name)))
                      for name, version in cursor]))