|
Revision 3168, 1.4 kB
(checked in by trapanator, 1 year ago)
|
First version
|
| Line | |
|---|
| 1 |
# |
|---|
| 2 |
# BackLinksMenu plugin for Trac 1.0 |
|---|
| 3 |
# |
|---|
| 4 |
# Author: Trapanator trap@trapanator.com |
|---|
| 5 |
# Website: http://www.trapanator.com/blog/archives/category/trac |
|---|
| 6 |
# |
|---|
| 7 |
# |
|---|
| 8 |
from StringIO import StringIO |
|---|
| 9 |
import string |
|---|
| 10 |
|
|---|
| 11 |
def execute(hdf, args, env): |
|---|
| 12 |
db = env.get_db_cnx() |
|---|
| 13 |
cursor = db.cursor() |
|---|
| 14 |
|
|---|
| 15 |
thispage = None |
|---|
| 16 |
|
|---|
| 17 |
if args: |
|---|
| 18 |
thispage = args.replace('\'', '\'\'') |
|---|
| 19 |
else: |
|---|
| 20 |
thispage = hdf.getValue('wiki.page_name', '') |
|---|
| 21 |
|
|---|
| 22 |
sql = 'SELECT w1.name FROM wiki w1, ' + \ |
|---|
| 23 |
'(SELECT name, MAX(version) AS VERSION FROM WIKI GROUP BY NAME) w2 ' + \ |
|---|
| 24 |
'WHERE w1.version = w2.version AND w1.name = w2.name ' |
|---|
| 25 |
|
|---|
| 26 |
if thispage: |
|---|
| 27 |
sql += 'AND (w1.text LIKE \'%%[wiki:%s %%\' ' % (unicode(thispage, "utf-8").encode ("utf-8")) |
|---|
| 28 |
sql += 'OR w1.text LIKE \'%%[wiki:%s]%%\')' % (unicode (thispage, "utf-8").encode ("utf-8")) |
|---|
| 29 |
#sql += 'AND w1.text LIKE \'%%[wiki:%s %%\' ' % thispage |
|---|
| 30 |
|
|---|
| 31 |
cursor.execute(sql) |
|---|
| 32 |
|
|---|
| 33 |
buf = StringIO() |
|---|
| 34 |
buf.write('<div class="wiki-toc">') |
|---|
| 35 |
buf.write('Pages linking to %s:<br />\n' % (unicode (thispage, "utf-8"))) |
|---|
| 36 |
|
|---|
| 37 |
while 1: |
|---|
| 38 |
row = cursor.fetchone() |
|---|
| 39 |
if row == None: |
|---|
| 40 |
break |
|---|
| 41 |
s2 = unicode (thispage, "utf-8") |
|---|
| 42 |
if row[0] == s2: |
|---|
| 43 |
pass |
|---|
| 44 |
else: |
|---|
| 45 |
buf.write('<a href="%s">' % env.href.wiki(row[0])) |
|---|
| 46 |
buf.write(row[0]) |
|---|
| 47 |
buf.write('</a><br />\n') |
|---|
| 48 |
|
|---|
| 49 |
|
|---|
| 50 |
buf.write('</div>') |
|---|
| 51 |
|
|---|
| 52 |
return buf.getvalue() |
|---|