Here's how you can serve the frontpager of your blog via WAP (I
would love to be able to server _any_ blog entry as WML, too, but
I have yet to find out how):
(1) Create a sub-folder called e.g. /wap/ in your blog root
(2) Create a DTML-document called index_html with these contents:
=== snip ===
<dtml-comment>
# -*- mode: HTML; TAB: 2; WRAP: 1024 -*-
##############################################################################
index_wml.dtml
WML ver 1.0
Copyright (C) 2004 Klaus Alexander Seistrup, Magnetic Ink, Copenhagen, DK
##############################################################################
</dtml-comment>
<dtml-var standard_wml_header>
<card id="index" title="<dtml-var title>">
<p>
<dtml-in "rev_day_entry_items(count=top_days)">
<a href="#entry<dtml-var id>" title="<dtml-var
"wapify(title)">"><dtml-var "wapify(title)"></a><br />
</dtml-in>
</p>
</card>
<dtml-in "rev_day_entry_items(count=top_days)">
<card id="entry<dtml-var id>" title="<dtml-var "wapify(title)">">
<dtml-if "_.len(subtitle)>0"> <p><dtml-var "wapify(subtitle)"></p>
</dtml-if>
<p><dtml-var "wapify(excerpt)"></p>
<p>Posted by <dtml-var "wapify(author)"> on <dtml-var
"ZopeTime(created).toZone('UTC').strftime('%Y-%m-%dT%H:%M')">Z</p>
</card>
</dtml-in>
<dtml-var standard_wml_footer>
=== snap ===
and give it an appropriate title. Also, in the Properties tab set
"content_type" "text/vnd.wap.wml; charset=utf-8"
(or whatever your blogging charset is).
(3) Create a DTML-method called standard_wml_header:
=== snip ===
<dtml-call "RESPONSE.setHeader('Content-Type', 'text/vnd.wap.wml; charset=utf-8')">
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=2048" forua="true" />
</head>
=== snap ===
Again: Adjust to your blogging charset. I have put the WML header and
footer in my Zope root, next to the standard HTML ditto, so I can't
pull the charset from the blog setup. You might want to do it in your
own way.
(4) Create a DTML-method called standard_wml_footer:
=== snip ===
</wml>
=== snap ===
(5) Create a Python script called wapify:
=== snip ===
## Script (Python) "wapify"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=s
##title=
##
from string import strip, replace
s = strip(s)
if s:
#s = replace(s, '&', '&')
#s = replace(s, '<', '<')
#s = replace(s, '>', '>')
s = replace(s, '$', '$$')
s = replace(s, "'", ''')
s = replace(s, '"', '"')
s = replace(s, '\n', '<br />')
# end if
return s
# eof
=== snap ===
And you're all set. Now visit http://www.example.com/path/to/blog/wap/ :-)
If you want to see a live example, please visit
<http://www.magnetic-ink.dk/wap/>
Enjoy,
// Klaus
--
Klaus Alexander Seistrup � Copenhagen � Denmark
http://www.magnetic-ink.dk/ � http://www.pnx.dk/
_______________________________________________
COREblog-en mailing list
[EMAIL PROTECTED]
http://munin.nbi.dk/cgi-bin/mailman/listinfo/coreblog-en