<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Prakash&#039;s Blog &#187; Zope</title>
	<atom:link href="http://www.jpkannoth.com/category/zope/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jpkannoth.com</link>
	<description>Innovation Explored</description>
	<lastBuildDate>Tue, 29 Sep 2009 16:27:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Build your Google News SiteMap using Python,Zope</title>
		<link>http://www.jpkannoth.com/2008/03/09/build-your-google-news-sitemap-using-pythonzope/</link>
		<comments>http://www.jpkannoth.com/2008/03/09/build-your-google-news-sitemap-using-pythonzope/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 15:46:02 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Zope]]></category>
		<category><![CDATA[zope python]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/2008/03/09/build-your-google-news-sitemap-using-pythonzope/</guid>
		<description><![CDATA[Here is a small piece of code in Python – Zope using MySQL as the database. This will help you build a Google News Sitemap in 2 minutes.
# Import a standard function, and get the HTML request and response objects.
from Products.PythonScripts.standard import html_quote
request = container.REQUEST
response =  request.RESPONSE
response.setHeader('Content-Type', 'text/xml')
print ''
print ''
for item in context.sql.getNewsForToday():
print ''
build_url [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 12pt; font-family: 'Times New Roman'">Here is a small piece of code in Python – Zope using MySQL as the database. This will help you build a <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=42738" target="_blank">Google News </a>Sitemap in 2 minutes.</span><span id="more-193"></span><br />
<code># Import a standard function, and get the HTML request and response objects.<br />
from Products.PythonScripts.standard import html_quote<br />
request = container.REQUEST<br />
response =  request.RESPONSE<br />
response.setHeader('Content-Type', 'text/xml')<br />
print ''<br />
print '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:tal="http://xml.zope.org/namespaces/tal">'</urlset><br />
for item in context.sql.getNewsForToday():<br />
print '<url>'<br />
build_url = "http://www.yoursite.com/news/"+str(item.news_id)+".html?google"<br />
print '<loc>%s</loc>'%build_url<br />
print '<news:news>'<br />
#date w3c format<br />
print '<news:publication_date>%s</news:publication_date>'%(DateTime(item.post_date).HTML4())<br />
print '<news:keywords>%s</news:keywords>' %(item.keywords)<br />
print '</news:news>'<br />
print '</url>'<br />
print ''<br />
return printed</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2008/03/09/build-your-google-news-sitemap-using-pythonzope/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zope Popularity in Technorati</title>
		<link>http://www.jpkannoth.com/2005/12/30/zope-popularity-in-technorati/</link>
		<comments>http://www.jpkannoth.com/2005/12/30/zope-popularity-in-technorati/#comments</comments>
		<pubDate>Fri, 30 Dec 2005 21:37:00 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=174</guid>
		<description><![CDATA[From today let me check the popularity of zope in web developer community ,how many are using in North and South American , I assume it is very popular in Europe,do a search in Technorati for Zope , please E-mail me if you use zope.
Tags: zope, lamp]]></description>
			<content:encoded><![CDATA[<p><a href="http://photos1.blogger.com/blogger/332/64/1600/TechnoratiZopeMentions.gif"><img border="0" src="http://photos1.blogger.com/blogger/332/64/320/TechnoratiZopeMentions.gif" /></a>From today let me check the popularity of zope in web developer community ,how many are using in North and South American , I assume it is very popular in Europe,do a search in <a href="http://technorati.com/search/Zope">Technorati for Zope </a>, please <a href="mailto:jp_nambiar@yahoo.com">E-mail</a> me if you use zope.</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a>, <a href="http://technorati.com/tag/lamp" title="See the Technorati tag page for 'lamp'." rel="tag">lamp</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2005/12/30/zope-popularity-in-technorati/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>6 Pitfalls</title>
		<link>http://www.jpkannoth.com/2005/12/30/6-pitfalls/</link>
		<comments>http://www.jpkannoth.com/2005/12/30/6-pitfalls/#comments</comments>
		<pubDate>Fri, 30 Dec 2005 18:24:00 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=173</guid>
		<description><![CDATA[My esteemed colleague invited me to participate in this blog, in the hopes that more new users don&#8217;t get burned by Zope.
I have been using Zope professionally for 3 years, and built a custom CMS on it for a technology publication (http://www.ebizq.net/). Zope allows you to rapidly (almost instantly) build a complex data-driven website, with [...]]]></description>
			<content:encoded><![CDATA[<p>My esteemed colleague invited me to participate in this blog, in the hopes that more new users don&#8217;t get burned by Zope.</p>
<p>I have been using Zope professionally for 3 years, and built a custom CMS on it for a technology publication (<a href="http://www.ebizq.net/">http://www.ebizq.net/</a>). Zope allows you to rapidly (almost instantly) build a complex data-driven website, with nothing more than a web browser.</p>
<p>Now, the problem with instant website development is a lot like going out with your buddies in college. You may think you&#8217;re the most eloquent genius on the planet, but when you look at photos 2 years later, you wonder why exactly you decided to sleep in the bathtub with the giant stuffed gorilla.</p>
<p>My point is, that if you&#8217;re not careful with Zope you <strong>will</strong> get burned. However, the only way to learn how to be careful, is to get burned along the way. Severely.</p>
<p>So below are a few gotchas that I ran into face first along my travels with Zope. May these hard leaned lessons ease yours.<br />
<strong /><br />
<strong>1) Ignore the Zope Book, don&#8217;t use DTML</strong><br />
All the examples are in DTML, which just stinks. Use Page Templates, they&#8217;re more understandable, and you can preview the basic idea in most WYSIWYG editors.</p>
<p><strong>2) Always specify parameters to ZSQL Methods</strong><br />
call ZSQL methods by using python (<em>tal:content=&#8221;python:context.mySQLmethod(user_id=request.get(&#8217;user_id&#8217;))&#8221; </em>for example in page templates). Will save you hours when trying figure out why a SQL method returns the entire database (don&#8217;t do this: tal:content=&#8221;context/mySQLmethod&#8221;). Granted when you feel like you know what you&#8217;re doing, you will be tempted to take that shortcut, but it&#8217;s impossible to tell that that method expects a <em>user_id, </em>and you <strong>will forget at some point</strong>.</p>
<p><strong>3) Pass objects to Page Templates via the options mechanism, don&#8217;t stuff everything into the REQUEST object</strong><br />
Prevent others from hunting through python scripts trying to find miscellaneous <em>request.set</em> methods. You will also forget at some point just what that page template expects.</p>
<p><strong>4) Don&#8217;t bother with METAL</strong><br />
It&#8217;s just a headache, filling slots and defining them, plus it&#8217;s so much harder to read. It&#8217;s easier to be creative with acquisition:<br />
/site index_html as a Page Template, use <em>tal:content=&#8221;context/body&#8221;</em><br />
/site/section body as either a Page Template or Python Script (but not DTML, see 1), then simply call <a href="http://www.site.com/section/">www.site.com/section/</a> and your body will be rendered in the template.</p>
<p><strong>5) Don&#8217;t put any site code in the root</strong><br />
It will only cause headaches as you will have a hard time trying to figure out why some goofball object is being acquired.</p>
<p><strong>6) Put each site in it&#8217;s own folder under the root</strong><br />
/sitea/<br />
/siteb/, etc&#8230; It will make things easier. If you have a few sites that share some common elements, make a folder and put both sites in there<br />
/sites/sitea/<br />
/sites/siteb/<br />
If you have a method like <em>showUsers</em>, put that in /sites/</p>
<p><strong>Guest Post by Jim </strong> <a href="http://www.kuttegroup.com">Kuttergroup.com</a></p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2005/12/30/6-pitfalls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zope Community Arise Awake and Advance</title>
		<link>http://www.jpkannoth.com/2005/08/21/zope-community-arise-awake-and-advance/</link>
		<comments>http://www.jpkannoth.com/2005/08/21/zope-community-arise-awake-and-advance/#comments</comments>
		<pubDate>Sun, 21 Aug 2005 17:13:00 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=172</guid>
		<description><![CDATA[I think my team has to write a open letter to Zope Community/Zope Corportaion, where is Zope is going to be in next  two years, will zope be a legacy application framework. We have already started moving our web applications from zope after working on zope more than a year now, these are the [...]]]></description>
			<content:encoded><![CDATA[<p>I think my team has to write a open letter to Zope Community/Zope Corportaion, where is Zope is going to be in next  two years, will zope be a legacy application framework. We have already started moving our web applications from zope after working on zope more than a year now, these are the things i feel zope corporation and zope community has to do.<br />
1.Have a consistency on Zope Release Release some more books, Docs..<br />
2.Zope corporation spend some money to advertise zope. No News or PR agecy speaks about Zope after 2003, oh don&#8217;t tell about CA.<br />
3.So decide you have to draw a line between Plone and Zope, don&#8217;t confuse everyone.<br />
4.Provide good Integration with other Versioning System .<br />
5.Provide Good IDE break away from Browser Management Sytsem.</p>
<p>Lot more buddies. I&#8217;m still new to zope.. don&#8217;t kill it.</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2005/08/21/zope-community-arise-awake-and-advance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Version Management &#8211; External  Methods</title>
		<link>http://www.jpkannoth.com/2005/06/30/version-management-external-methods/</link>
		<comments>http://www.jpkannoth.com/2005/06/30/version-management-external-methods/#comments</comments>
		<pubDate>Fri, 01 Jul 2005 03:09:00 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=171</guid>
		<description><![CDATA[How to use Version Management, how does it work and if i create a external method can version management can really work. I think the guru&#8217;s of zope can answer this. let me forward this post to our guru,  may he can help me out.
Tags: zope]]></description>
			<content:encoded><![CDATA[<p>How to use Version Management, how does it work and if i create a external method can version management can really work. I think the guru&#8217;s of zope can answer this. let me forward this post to our guru,  may he can help me out.</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2005/06/30/version-management-external-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Substring</title>
		<link>http://www.jpkannoth.com/2005/02/01/substring/</link>
		<comments>http://www.jpkannoth.com/2005/02/01/substring/#comments</comments>
		<pubDate>Tue, 01 Feb 2005 19:56:51 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=169</guid>
		<description><![CDATA[question= &#8220;Your string here&#8221;
print &#8220;&#8221; + question[1:150] +&#8221;&#8230;.&#8221;
return printed
write the above code in the script(python) in zope
Tags: zope]]></description>
			<content:encoded><![CDATA[<p>question= &#8220;Your string here&#8221;</p>
<p>print &#8220;&#8221; + question[1:150] +&#8221;&#8230;.&#8221;</p>
<p>return printed</p>
<p>write the above code in the script(python) in zope</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2005/02/01/substring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZPT] ZPT and ZSQL Methods</title>
		<link>http://www.jpkannoth.com/2004/07/15/zpt-zpt-and-zsql-methods/</link>
		<comments>http://www.jpkannoth.com/2004/07/15/zpt-zpt-and-zsql-methods/#comments</comments>
		<pubDate>Thu, 15 Jul 2004 20:49:18 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=168</guid>
		<description><![CDATA[This is easy,
create the following objects. You can fold them into two (one form and
one zsql method) but it is a bit easier to &#8220;see&#8221; what happens with 4:
- a ZSQL Method sqlGetNames (that *must* use dtml) with two parameters
firstname, lastname you use to construct  a query.
- a form getusers_form with two input fields [...]]]></description>
			<content:encoded><![CDATA[<p>This is easy,<br />
create the following objects. You can fold them into two (one form and<br />
one zsql method) but it is a bit easier to &#8220;see&#8221; what happens with 4:</p>
<p>- a ZSQL Method sqlGetNames (that *must* use dtml) with two parameters<br />
firstname, lastname you use to construct  a query.<br />
- a form getusers_form with two input fields named<br />
firstname, lastname and and action called getnames<br />
- a python script named getnames that gets two parameters firstname,<br />
lastname<br />
- an outputform named showusers that presents the result in a table</p>
<p>Here is a sketch of the four objects:</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
# sqlGetNames<br />
# parameters :<br />
#  firstname. lastname<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
select firstname. lastname from tblEmployee<br />
where firstname. like  +&#8217;%&#8217;<br />
and   lastname like  + &#8216;%&#8217;;</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
# getusers_form<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<form action="getnames"> </form>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
# getnames<br />
# parameters :<br />
#  firstname. lastname<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
users = context.sqlGetNames(firstname=firstname, lastname=lastname)<br />
return context.showusers(users=users)</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
# show_form<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<table>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<p>I have included ein &#8220;realworld&#8221; example where everyting is folded into a<br />
single form (input, call to ZSQL Method and Output)<br />
The used ZSQL Method and its parameters are paste in as comment.</p>
<p>Robert</p>
<p>Joao Paulo Liberato wrote:<br />
&gt; Hi everybody,<br />
&gt;<br />
&gt; I have a very basic question.  I&#8217;m starting with Zope, and I&#8217;d like to<br />
&gt; grab some data from a MySQL database.<br />
&gt; The DA for MySQL was installed without any problem, and I could connect<br />
&gt; to my database.<br />
&gt; I was reading the Zope Book, chapter 18 &#8211; Relational Database<br />
&gt; Connectivity, and all examples were given using DTML.<br />
&gt; But I don&#8217;t want to use dtml.  Hence, I&#8217;d like to know how can I use ZPT<br />
&gt; to call a ZSQL method, passing parameters to it, and how to process<br />
&gt; those parameters within the ZSQL Method.<br />
&gt; Can anyone provide me a basic example of how to do it?<br />
&gt;<br />
&gt; Thanks in advance,<br />
&gt;<br />
&gt; Joao Paulo.<br />
&gt; _______________________________________________<br />
&gt; ZPT mailing list<br />
&gt; ZPT@zope.org<br />
&gt; http://mail.zope.org/mailman/listinfo/zpt<br />
&gt;<br />
&gt;</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2004/07/15/zpt-zpt-and-zsql-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Misleading Users  with your URL</title>
		<link>http://www.jpkannoth.com/2004/07/09/misleading-users-with-your-url/</link>
		<comments>http://www.jpkannoth.com/2004/07/09/misleading-users-with-your-url/#comments</comments>
		<pubDate>Fri, 09 Jul 2004 19:46:45 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=167</guid>
		<description><![CDATA[Advantage of using a python script is the best advantage i have seen in python with zope. I can write a script to like users , so it will be something like http://yoursite.com/users/ users is a python script when called it can return a zpt page
do something like this
request = &#8221; &#8221;
do your processing..
return container.here.usershtml()
where [...]]]></description>
			<content:encoded><![CDATA[<p>Advantage of using a python script is the best advantage i have seen in python with zope. I can write a script to like users , so it will be something like http://yoursite.com/users/ users is a python script when called it can return a zpt page</p>
<p>do something like this</p>
<p>request = &#8221; &#8221;</p>
<p>do your processing..</p>
<p>return container.here.usershtml()</p>
<p>where usershtml is the zpt file  with html contents</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2004/07/09/misleading-users-with-your-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML FORMS : Error Handling Using ZPT and Python Scripting</title>
		<link>http://www.jpkannoth.com/2004/05/15/html-forms-error-handling-using-zpt-and-python-scripting/</link>
		<comments>http://www.jpkannoth.com/2004/05/15/html-forms-error-handling-using-zpt-and-python-scripting/#comments</comments>
		<pubDate>Sat, 15 May 2004 15:58:59 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=163</guid>
		<description><![CDATA[Here is the links
To catch erros from the form usign a script and giving back the error pages to the form back!!

ZPT Mailing ListMailing List
One More Link
Tags: zope]]></description>
			<content:encoded><![CDATA[<p>Here is the links<br />
To catch erros from the form usign a script and giving back the error pages to the form back!!</p>
<hr />
<a href="http://mail.zope.org/pipermail/zope-db/2003-July/002007.html">ZPT Mailing List</a><a href="http://mail.zope.org/pipermail/zpt/2003-November/005115.html">Mailing List</a></p>
<p><a href="http://zope.nipltd.com/public/lists/zope-archive.nsf/47ba74c812dbc5dd8025687f0024bb5f/7101db09695cbf4880256c84007a01e1?OpenDocument">One More Link</a></p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2004/05/15/html-forms-error-handling-using-zpt-and-python-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zope dope Blog</title>
		<link>http://www.jpkannoth.com/2004/05/15/zope-dope-blog/</link>
		<comments>http://www.jpkannoth.com/2004/05/15/zope-dope-blog/#comments</comments>
		<pubDate>Sat, 15 May 2004 15:45:54 +0000</pubDate>
		<dc:creator>Prakash</dc:creator>
				<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://www.jpkannoth.com/jpkannothblog/wordpress/?p=162</guid>
		<description><![CDATA[This  Zope Blog will have list of problems and solutions for newbie developers who are using Zope Application Server.
Tags: zope]]></description>
			<content:encoded><![CDATA[<p>This  Zope Blog will have list of problems and solutions for newbie developers who are using Zope Application Server.</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/zope" title="See the Technorati tag page for 'zope'." rel="tag">zope</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.jpkannoth.com/2004/05/15/zope-dope-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
