summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCtibor <ctibor@brancik.cz>2017-03-23 11:55:42 +0100
committerCtibor <ctibor@brancik.cz>2017-03-23 11:55:42 +0100
commit6409543f7e00898b5a5f1764063487bc3af0a830 (patch)
tree5b9803046b136a5aca2243b00dd8c3ecc28b54ee
parentee742fcf7e62655b792e661781a0e15ea1868e49 (diff)
downloadhnizdo-6409543f7e00898b5a5f1764063487bc3af0a830.tar.gz
hnizdo-6409543f7e00898b5a5f1764063487bc3af0a830.tar.bz2
Add pagination to index page
-rw-r--r--cgi-bin/config.py1
-rw-r--r--cgi-bin/display.py37
-rwxr-xr-xcgi-bin/index.py14
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()