From 6409543f7e00898b5a5f1764063487bc3af0a830 Mon Sep 17 00:00:00 2001 From: Ctibor Date: Thu, 23 Mar 2017 11:55:42 +0100 Subject: Add pagination to index page --- cgi-bin/config.py | 1 + cgi-bin/display.py | 37 +++++++++++++++++++++++++++++-------- 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 ("vše") print ("") - 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 ("
") + 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 ("
") print ("

Hnízdo - Index

") print ("
") + print ("") print ("") + f = f + 1 + print ("") 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 ("") print ("") @@ -20,12 +21,17 @@ print ("" print ("") print ("") -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() -- cgit v1.2.3