ADD HTML to the code

L

Little

Could someone tell me how to add some HTML tags to this program. I want
to be able to change the background color, add some headers, and put a
table below the map that will be displayed. Could someone please tell
me how to add this to the current program. Thanks in advance.

Red.py

""" Publisher example """

def query(req, building=""):
# NOTE: best way to understand this is to see the output,
# that is, to "view source" on the generated web page
# read common header for any google mapping
f = file('/home/ta/public_html/maplish/googleHead.html','r')
t = f.read()
f.close()
# define the two buildings we know (because no SQL is done here)
buildings = [ ("cb", "Cambus Office", "-91.552977", "41.659655")
]
buildings += [ ("va/hardlib", "VA/Hardin Library", "-91.549501",
"41.662348") ]
buildings += [ ("hancher", "Hancher Auditorium", "-91.538214",
"41.669529") ]
buildings += [ ("currier", "Currier Hall", "-91.534996",
"41.666163") ]
buildings += [ ("schaeffer", "Schaeffer Hall", "-91.535296",
"41.660969") ]
buildings += [ ("shospital", "South Hospital", "-91.548900",
"41.658885") ]
str = '' # in case no buildings match, use empty string
for x in buildings:
a,b,c,d = x # isolate all the tuple components into a,b,c,d
if building.lower() == a:
# construct javascript, using Python %s to substitute names
and data
# see http://docs.python.org/lib/typesseq-strings.html if
needed
str = 'var bldg%s = new GPoint( %s, %s);\n' % (a, c, d)
str += 'var mrk%s = new GMarker( bldg%s );\n' % (a, a)
str += 'var htm%s = "%s";\n' % (a, b)
str += 'GEvent.addListener(mrk%s,"click",function() {' % a
str += 'mrk%s.openInfoWindowHtml(htm%s); });\n' % (a, a)
str += 'map.addOverlay(mrk%s);\n' % a
# output markers, if any
t = t + str
# then add trailing html to finish page
trail = "//]]> </script> </body> </html>"
t = t + trail
return t

htaccess

SetHandler python-program
PythonHandler mod_python.publisher
PythonDebug On

googleHead.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<TITLE>University of Iowa Cambus</TITLE>
<script
src="http://maps.google.com/maps?file=ap...iHJ0W4XJYyDQ5hNnxQKi9AqI9J1B9uwt8TVJptjDwSqPA"
type="text/javascript"></script>
</head>
<body>
<form action="query" method="get">
Street Address in Iowa City:
<input type="text" name="address">
</form>
<p>
<div id="map" style="width: 800px; height: 600px"></div>
<script type="text/javascript">
//<![CDATA[

var map = new GMap(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.centerAndZoom(new GPoint(-91.527786,41.661114), 2);
 
F

Fredrik Lundh

Little said:
Could someone tell me how to add some HTML tags to this program. I want
to be able to change the background color, add some headers, and put a
table below the map that will be displayed. Could someone please tell
me how to add this to the current program.

the code reads the first part of the HTML from the googleHead.html file,
and the rest is added in the section that starts with the

# then add trailing html to finish page

comment.

assuming that you know how you want the HTML to look (styles and headers
should go into the googleHead file, the table into the "trailing html" part), a
text editor and the string chapters from the python tutorial should be enough
to get you going:

http://docs.python.org/tut/tut.html

</F>
 
S

Steve Holden

Fredrik said:
the code reads the first part of the HTML from the googleHead.html file,
and the rest is added in the section that starts with the

# then add trailing html to finish page

comment.

assuming that you know how you want the HTML to look (styles and headers
should go into the googleHead file, the table into the "trailing html" part), a
text editor and the string chapters from the python tutorial should be enough
to get you going:

http://docs.python.org/tut/tut.html

You might also want to think about the version below, which (though
untested) uses rather commoner ways of expressing the same ideas:

""" Publisher example """

def query(req, building=""):
# NOTE: best way to understand this is to see the output,
# that is, to "view source" on the generated web page
# read common header for any google mapping
f = file('/home/ta/public_html/maplish/googleHead.html','r')
t = f.read()
f.close()
# define the two buildings we know (because no SQL is done here)
# Did I say two? Obviously there are six now ...
# We just build the list as a single literal value
buildings = [
("cb", "Cambus Office", "-91.552977", "41.659655"),
("va/hardlib", "VA/Hardin Library", "-91.549501","41.662348"),
("hancher", "Hancher Auditorium", "-91.538214","41.669529"),
("currier", "Currier Hall", "-91.534996","41.666163"),
("schaeffer", "Schaeffer Hall", "-91.535296","41.660969"),
("shospital", "South Hospital", "-91.548900","41.658885")
]
st = [t] # in case no buildings match, use empty string
for a, b, c, d in buildings:
if building.lower() == a:
# construct javascript, using Python %s to substitute names
and data
# see http://docs.python.org/lib/typesseq-strings.html if needed
st.append('var bldg%s = new GPoint( %s, %s);\n' % (a, c, d)])
st.append('var mrk%s = new GMarker( bldg%s );\n' % (a, a))
st.append('var htm%s = "%s";\n' % (a, b))
st.append('GEvent.addListener(mrk%s,"click",function() {' % a)
st.append('mrk%s.openInfoWindowHtml(htm%s); });\n' % (a, a))
st.append('map.addOverlay(mrk%s);\n' % a)
# output markers, if any
# then add trailing html to finish page
trail = "//]]> </script> </body> </html>"
return "".join(st)+trail

Note that "str" is the name of a built-in data type, so I changed it to
"st".

regards
Steve
 
B

bruno at modulix

Little said:
Could someone tell me how to add some HTML tags to this program. I want
to be able to change the background color, add some headers, and put a
table below the map that will be displayed. Could someone please tell
me how to add this to the current program. Thanks in advance.
(snip)
Do yourself a favor : check the various templating tools available,
choose one that fits you taste, and stop embedding half-baked html in
your Python code.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top