diff options
author | Ctibor <ctibor@brancik.cz> | 2017-03-23 11:55:42 +0100 |
---|---|---|
committer | Ctibor <ctibor@brancik.cz> | 2017-03-23 11:55:42 +0100 |
commit | 6409543f7e00898b5a5f1764063487bc3af0a830 (patch) | |
tree | 5b9803046b136a5aca2243b00dd8c3ecc28b54ee /cgi-bin | |
parent | ee742fcf7e62655b792e661781a0e15ea1868e49 (diff) | |
download | hnizdo-6409543f7e00898b5a5f1764063487bc3af0a830.tar.gz hnizdo-6409543f7e00898b5a5f1764063487bc3af0a830.tar.bz2 |
Add pagination to index page
Diffstat (limited to 'cgi-bin')
-rw-r--r-- | cgi-bin/config.py | 1 | ||||
-rw-r--r-- | cgi-bin/display.py | 37 | ||||
-rwxr-xr-x | cgi-bin/index.py | 14 |
3 files changed, 40 insertions, 12 deletions
diff --git a/cgi-bin/config.py b/cgi-bin/config.py index 9c1426f..175979f 100644 --- a/cgi-bin/config.py +++ b/cgi-bin/config.py @@ -1,2 +1,3 @@ datadir='img/' special = ('index', 'latest') +pagination = 10 diff --git a/cgi-bin/display.py b/cgi-bin/display.py index 262a523..4a4602d 100644 --- a/cgi-bin/display.py +++ b/cgi-bin/display.py @@ -3,10 +3,11 @@ import link, os, config from datetime import datetime class Body: - def __init__(self, site): + def __init__(self, site, page): self.site=site self.a=link.Link(site) self.datadir=config.datadir + self.part=page def menu(self): print (self.a.link(self.a.delta('+w'), '-týden')) @@ -43,23 +44,43 @@ class Body: print ("<a href=\"?f=index\" title=\"všechny fotky\">vše</a>") print ("</footer>") - def index(self): + def index(self, page): index=os.listdir(os.path.realpath(self.datadir)) remove=['notfound.jpeg', 'latest.jpeg'] for r in remove: index.remove(r) - print ("<header>") + index.sort() + count=len(index) + pnum=count/config.pagination+1 + if int(page) > int(pnum): + page=pnum-1 + #print pnum + rngend=(int(page)+1)*config.pagination-1 + #print rngend + rngstart=rngend-(config.pagination-1) + #print rngstart + print ("<header>") print ("<h1>Hnízdo - Index</h1>") print ("</header>") + print ("<nav>") + a = 0 + while a < pnum: + print("<a href=\"?f=index&p="+str(a)+"\">"+str(a+1)+"</a>") + a = a + 1 + print ("</nav>") print ("<ul>") - for f in index: - print("<li>") - print(self.a.link(f, self.a.timestamp(f))) + f = rngstart + while f <= rngend and f <= count-1: + #print f + print("<li>") + print(self.a.imglink(index[f], "")) + print("<p>"+self.a.link(index[f], self.a.timestamp(index[f]))+"</p>") print("</li>") - print ("</ul>") + f = f + 1 + print ("</ul>") def page(self): if self.site == "index": - self.index() + self.index(self.part) else: self.articles() diff --git a/cgi-bin/index.py b/cgi-bin/index.py index 20480a4..a2080ee 100755 --- a/cgi-bin/index.py +++ b/cgi-bin/index.py @@ -10,6 +10,7 @@ cgitb.enable() query = cgi.FieldStorage() param = query.getvalue("f") +page = query.getvalue("p") print ("<!DOCTYPE html>") print ("<html>") @@ -20,12 +21,17 @@ print ("<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/style.css\">" print ("</head>") print ("<body>") -if param in config.special: - body=display.Body(param) +if param == "latest": + body=display.Body("latest", "") +if param == "index": + if re.match("^[0-9]+$", str(page)): + body=display.Body("index", str(page)) + else: + body=display.Body("index", "0") elif re.match("^20[0-9]{2}(0[0-9]|1[1-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])([0-5][0-9])$", str(param)): - body=display.Body(param) + body=display.Body(param, "") else: - body=display.Body("latest") + body=display.Body("latest", "") body.page() |