old-www/LDP/LG/issue19/books_pages.html

183 lines
5.8 KiB
HTML

<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD> <title>Generate HTML book page </title> </HEAD>
<BODY BGCOLOR="#EEE1CC" TEXT="#000000" LINK="#0000FF" VLINK="#0020F0"
ALINK="#FF0000">
<pre>
from html_page import Html_Page
#
# Generate HTML book page indexed by author
#
class Authors_Page (Html_Page):
def __init__ (self):
Html_Page.__init__ (self, "Aviation Books: by Author",
"&lt;i&gt;Aviation Books: indexed by Author&lt;/i&gt;")
self.f = open ("books_by_author.html", "w")
print "Authors page in--&gt; " + self.f.name
def set_book_list (self, list):
self.book_list = list
def generate_body (self):
#
# Generate a table
#
self.f.write ("&lt;hr&gt;\n")
self.f.write ("&lt;center&gt;\n")
self.f.write ("&lt;table border=0 width=" + '"' + "80%" + '"' + "&gt;\n")
last_author = ""
for b in self.book_list:
if (b.last_name[0] == last_author):
line = "&lt;tr&gt;&lt;td&gt;&lt;/td&gt;"
else:
line = "&lt;tr&gt;&lt;td&gt;"
# Print authors names
i = 0
while i &lt; len (b.last_name):
if i &gt; 0:
line = line + " and "
line = line + b.last_name[i] + ", " + b.first_name[i]
i = i + 1
line = line +" &lt;/td&gt;\n"
last_author = b.last_name[0]
self.f.write (line)
line = "&lt;td&gt;"
if len(b.url) != 0:
line = line + "&lt;a href=" + b.url + "&gt;&lt;i&gt;" + '"' + b.title + '"' + "&lt;/i&gt;&lt;/a&gt;"
else:
line = line + "&lt;i&gt;" + '"' + b.title + '"' + "&lt;/i&gt;"
line = line + "&lt;/td&gt;&lt;/tr&gt;\n"
self.f.write (line)
self.f.write ("&lt;/table&gt;\n &lt;/center&gt;\n&lt;hr&gt;\n")
count = len (self.book_list)
self.f.write ("&lt;center&gt;There are " + ("%1d" % count) + " books in the list&lt;/center&gt;\n")
def generate_trailer (self):
self.f.write ("&lt;hr&gt;\n")
self.f.write ("&lt;center&gt;&lt;a href=books.html&gt;Back to Aviation Books Top Page&lt;/a&gt;&lt;/center&gt;\n")
self.f.write ("&lt;hr&gt;\n")
Html_Page.generate_trailer (self)
#
# Page index by Titles
#
class Titles_Page (Html_Page):
def __init__ (self):
Html_Page.__init__ (self, "Aviation Books: by Title",
"&lt;i&gt;Aviation Books: indexed by Title&lt;/i&gt;")
self.f = open ("books_by_title.html", "w")
print "Titles page in --&gt; " + self.f.name
def set_book_list (self, list):
self.book_list = list
def generate_body (self):
#
# Generate table
#
self.f.write ("&lt;hr&gt;\n")
self.f.write ("&lt;center&gt;\n")
self.f.write ("&lt;table border=0 width=" + '"' + "80%" + '"' + "&gt;\n")
for b in self.book_list:
line = "&lt;tr&gt;&lt;td&gt;&lt;i&gt;"
if len(b.url) != 0:
line = line + "&lt;a href=" + b.url + "&gt;&lt;i&gt;" + '"' + b.title + '"' + "&lt;/i&gt;&lt;/a&gt;"
else:
line = line + "&lt;i&gt;" + '"' + b.title + '"' + "&lt;/i&gt;"
line = line + "&lt;/td&gt;&lt;td&gt;"
# Print authors names
i = 0
while i &lt; len (b.last_name):
if i &gt; 0:
line = line + " and "
line = line + b.first_name[i] + " " + b.last_name[i]
i = i + 1
line = line + "&lt;/td&gt;&lt;/tr&gt;\n"
self.f.write (line)
self.f.write ("&lt;/table&gt;\n")
self.f.write ("&lt;/center&gt;\n")
self.f.write ("&lt;hr&gt;\n")
count = len (self.book_list)
self.f.write ("&lt;center&gt;There are " + ("%1d" % count) + " books in the list&lt;/center&gt;\n")
def generate_trailer (self):
self.f.write ("&lt;hr&gt;\n")
self.f.write ("&lt;center&gt;&lt;a href=books.html&gt;Back to Aviation Books Top Page&lt;/a&gt;&lt;/center&gt;\n")
self.f.write ("&lt;hr&gt;\n")
Html_Page.generate_trailer (self)
#
# Create a page indexed by subject
#
class Subjects_Page (Html_Page):
def __init__ (self):
Html_Page.__init__ (self, "Aviation Books: by Subject",
"&lt;i&gt;Aviation Books: indexed by Subject&lt;/i&gt;")
self.f = open ("books_by_subject.html", "w")
print "Subject page in --&gt; " + self.f.name
def set_book_list (self, list):
self.book_list = list
def generate_body (self):
#
# Generate table
#
self.f.write ("&lt;hr&gt;\n")
self.f.write ("&lt;center&gt;\n")
self.f.write ("&lt;table border=0 width=" + '"' + "100%" + '"' + "&gt;\n")
last_subject = "";
for b in self.book_list:
if (last_subject != b.subject):
line = "&lt;tr&gt;&lt;td&gt;&lt;b&gt;" + b.subject + "&lt;/b&gt;&lt;/td&gt;"
last_subject = b.subject
else:
line = "&lt;tr&gt;&lt;td&gt;&lt;/td&gt;"
line = line + "&lt;td&gt;&lt;i&gt;"
if len(b.url) != 0:
line = line + "&lt;a href=" + b.url + "&gt;&lt;i&gt;" + '"' + b.title + '"' + "&lt;/i&gt;&lt;/a&gt;"
else:
line = line + "&lt;i&gt;" + '"' + b.title + '"' + "&lt;/i&gt;"
line = line + "&lt;/td&gt;&lt;td&gt;"
# Authors
i = 0
while i &lt; len (b.last_name):
if i &gt; 0:
line = line + " and "
line = line + b.first_name[i] + " " + b.last_name[i]
i = i + 1
line = line + "&lt;/td&gt;&lt;/tr&gt;\n"
self.f.write (line)
self.f.write ("&lt;/table&gt;\n")
self.f.write ("&lt;/center&gt;\n")
self.f.write ("&lt;hr&gt;\n")
count = len (self.book_list)
self.f.write ("&lt;center&gt;There are " + ("%1d" % count) + " books in the list&lt;/center&gt;\n")
def generate_trailer (self):
self.f.write ("&lt;hr&gt;\n")
self.f.write ("&lt;center&gt;&lt;a href="http://www.netlabs.net/hp/richieb/books.html"&gt;Back to Aviation Books Top Page&lt;/a&gt;&lt;/center&gt;\n")
self.f.write ("&lt;hr&gt;\n")
Html_Page.generate_trailer (self)
</pre>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright &copy; 1997, Richie Bielak<BR>
Published in Issue 19 of the Linux Gazette, July 1997</H5></center>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->