<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>AASHQ Blog</title>
<description>Everything about Domino, PHP and other programming languages</description>
<link>https://blog.aashq.nl/blog/blog.nsf/</link>
<language>en-us</language>
<lastBuildDate>Mon, 28 Sep 2015 11:55:41 +0200</lastBuildDate>
<item>
<title>CMS MS: Newsletter Made Simple, export user status</title>
<pubDate>Mon, 28 Sep 2015 11:55:41 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/cms-ms-newsletter-made-simple-export-user-status</link>
<category>CMSMS</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/cms-ms-newsletter-made-simple-export-user-status?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/cms-ms-newsletter-made-simple-export-user-status</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">Following up a feature request from one of our customers in the Newletter Made Simple (NMS) module for CMS Made Simple. <br /> Our customer wanted to export the status of the newletter users, but by default, only the email and username fields are exported. <br /> We've found a similar request on </font><a href=http://dev.cmsmadesimple.org/feature_request/view/2990><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">http://dev.cmsmadesimple.org/feature_request/view/2990</span></font></a><font size=2 face="sans-serif">. <br /> <br /> Since we don't have the time to create another sponsorship for CMS MS and wait until calguy1000 has time to change the code, since he is very busy with CMS MS 2.0. Please look at the following: <br /> Change the following file: <br /> modules/NMS/action.export_user.php <br /> <br /> around line 56 add the green fields for the headers: </font> <br /><font size=2 face="sans-serif"><br /> </font><tt><font size=2>$cols = array('email','username',</font></tt><tt><font size=2 color=#008000>'disabled','confirmed'</font></tt><tt><font size=2>); </font></tt><font size=2 face="sans-serif"><br /> <br /> around line 131 add the green fields for the export: <br /> </font><tt><font size=2><br />  &nbsp;// export everything <br />  &nbsp;while( !$u_dbr-&gt;EOF ) { <br />  &nbsp; &nbsp;$row = $u_dbr-&gt;fields; <br />  &nbsp; &nbsp;$uid = $row&#91;'userid'&#93;; <br />  &nbsp; &nbsp;$fields = array(); <br />  &nbsp; &nbsp;$fields&#91;&#93; = $row&#91;'email'&#93;; <br />  &nbsp; &nbsp;$fields&#91;&#93; = $row&#91;'username'&#93;; </font></tt><tt><font size=2 color=#008000><br />  &nbsp; &nbsp;$fields&#91;&#93; = $row&#91;'disabled'&#93;;</font></tt><tt><font size=2> </font></tt><tt><font size=2 color=#008000><br />  &nbsp; &nbsp;$fields&#91;&#93; = $row&#91;'confirmed'&#93;;</font></tt><font size=2> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/cms-ms-newsletter-made-simple-export-user-status</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/cms-ms-newsletter-made-simple-export-user-status?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Removing files and subdirectories from filesystem with lotusscript</title>
<pubDate>Mon, 27 Oct 2014 12:09:26 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/removing-files-and-subdirectories-from-filesystem-with-lotusscript</link>
<category>php</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/removing-files-and-subdirectories-from-filesystem-with-lotusscript?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/removing-files-and-subdirectories-from-filesystem-with-lotusscript</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">We are working on a PHP / Domino hybrid mobile web application. We will post some more information about it in the near future. We need PHP since we are sending out POST commands via the HTML5 file API. A Notes Agent is not capable of understanding these requests (via the normal session.request_content for example), and therefor we need PHP. It would also be possible by xPages and JAVA I assume, but PHP easier for us.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> The PHP script is called asynchronous and uploads resized images to c:\php\files\&lt;UniqueID&gt;. A webQuerySave agent processes the newly saved NotesDocument and fetches all documents from this subfolder and attachs them to the RichTextItem.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> The cleanup of these files is done by a cleanup Agent, not in the WQS agent, to have some fallback in case of errors. We run this agent every weekend to remove all uploaded files. </font><font size=3><br /> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> Cleanup Agent code:</strong></font><font size=3> <br /> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Option</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Public</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Option</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Declare</strong></font><font size=3> <br /> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Dim</strong></font><font size=2 face="Courier New"> globalPath </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>string</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Sub</strong></font><font size=2 face="Courier New"> Initialize</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;globalPath = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;C:\php\files\&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Call</strong></font><font size=2 face="Courier New"> ScanDirs( globalPath )</font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Sub</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> ' ==========================================================</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> ' @FUNCTION: ScanDirs</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> ' @AUTHOR: f.verlaan@aashq.nl <br /> ' @DATE: 27-10-2014</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> '</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> ' Loops through the given path and removes all files</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> ' and subfolders.</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> ' based upon: </strong></font><a href="http://www-01.ibm.com/support/docview.wss?uid=swg21317698"><font size=2 color=blue face="Courier New"><strong><span style="text-decoration:underline">http://www-01.ibm.com/support/docview.wss?uid=swg21317698</span></strong></font></a><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> ' ==========================================================</strong></font><font size=3> <br /> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Sub</strong></font><font size=2 face="Courier New"> ScanDirs(path </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=2 face="Courier New">)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>On</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Error</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>GoTo</strong></font><font size=2 face="Courier New"> catch</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>On</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Error</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>5</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Resume</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>next</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> sess </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>New</strong></font><font size=2 face="Courier New"> NotesSession <br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> DirList </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Variant</strong></font><font size=2 face="Courier New"> <br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> filename </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=2 face="Courier New"> <br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> filepath </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=2 face="Courier New"> <br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> sep </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=2 face="Courier New"> <br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> path &lt;&gt; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;&quot;</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=2 face="Courier New"> </font><font size=3><br /> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>InStr</strong></font><font size=2 face="Courier New">(sess.Platform, </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;Windows&quot;</em></font><font size=2 face="Courier New">) &gt; </font><font size=2 color=#4100c2 face="Courier New"><em>0</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sep = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;\&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Else</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sep = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;/&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>ReDim</strong></font><font size=2 face="Courier New"> DirList(</font><font size=2 color=#4100c2 face="Courier New"><em>0</em></font><font size=2 face="Courier New">) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>InStr</strong></font><font size=2 face="Courier New">(path, sep) &gt; </font><font size=2 color=#4100c2 face="Courier New"><em>0</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;filepath = </font><font size=2 color=#0000e0 face="Courier New"><strong>StrLeftBack</strong></font><font size=2 face="Courier New">(path, sep)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;filename = </font><font size=2 color=#0000e0 face="Courier New"><strong>Dir</strong></font><font size=2 face="Courier New">(path &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;*&quot;</em></font><font size=2 face="Courier New">, </font><font size=2 color=#4100c2 face="Courier New"><em>16</em></font><font size=2 face="Courier New">) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>While</strong></font><font size=2 face="Courier New"> filename &lt;&gt; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> filename &lt;&gt; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;.&quot;</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>And</strong></font><font size=2 face="Courier New"> filename &lt;&gt; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;..&quot;</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> (</font><font size=2 color=#0000e0 face="Courier New"><strong>GetFileAttr</strong></font><font size=2 face="Courier New">(filepath &amp; sep &amp; filename)= </font><font size=2 color=#4100c2 face="Courier New"><em>16</em></font><font size=2 face="Courier New">) </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DirList = </font><font size=2 color=#0000e0 face="Courier New"><strong>ArrayAppend</strong></font><font size=2 face="Courier New">(DirList,filepath &amp; sep &amp; filename &amp; sep)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Else</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#00a000 face="Courier New"><strong>' remove file</strong></font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Kill</strong></font><font size=2 face="Courier New"> filepath &amp; sep &amp; filename</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;filename = </font><font size=2 color=#0000e0 face="Courier New"><strong>Dir</strong></font><font size=3> </font> <br /><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#00a000 face="Courier New"><strong>' if filename is empty and filepath is not the starting folder, delete subfolder </strong></font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> filename = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;&quot;</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> filepath &lt;&gt; </font><font size=2 color=#0000e0 face="Courier New"><strong>StrLeftBack</strong></font><font size=2 face="Courier New">(globalPath, sep) </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>RmDir</strong></font><font size=2 face="Courier New"> filepath &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Wend</strong></font><font size=2 face="Courier New"> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DirList = </font><font size=2 color=#0000e0 face="Courier New"><strong>FullTrim</strong></font><font size=2 face="Courier New">(DirList)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>ForAll</strong></font><font size=2 face="Courier New"> dirpath </font><font size=2 color=#0000e0 face="Courier New"><strong>In</strong></font><font size=2 face="Courier New"> DirList</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ScanDirs(dirpath)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>ForAll</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Exit</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>sub</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> catch:</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;Error &quot;</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>Err</strong></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot; in &quot;</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>GetThreadInfo</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#4100c2 face="Courier New"><em>1</em></font><font size=2 face="Courier New">) &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot; on line &quot;</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>Erl</strong></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot; - &quot;</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>Error</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Exit</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>sub</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Sub</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> </strong></font><font size=2 face="sans-serif"><br /> Make sure that the security setting for the agent is set to 3 to allow restricted operations.</font><font size=3> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/removing-files-and-subdirectories-from-filesystem-with-lotusscript</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/removing-files-and-subdirectories-from-filesystem-with-lotusscript?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>CMS Made Simple: get the Newsletter Made Simple (NMS) module to send out attachments</title>
<pubDate>Wed, 27 Aug 2014 18:15:38 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple-get-the-newsletter-made-simple-nms-module-to-send-out-attachments</link>
<category>CMSMS</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple-get-the-newsletter-made-simple-nms-module-to-send-out-attachments?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple-get-the-newsletter-made-simple-nms-module-to-send-out-attachments</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">We have a customer who sends out newsletters as an PDF attachment. NMS is capable of sending these attachments within the module itselve, but only from the root. In this case we would like to use the /uploads/pdf folder.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> My workaround for the attachment dir bug; <br /> <br /> Open /modules/CGExtensions/CGExtensions.module.php:<br /> <br /> locate the function 'CreateFileDropdown' and change the code to:</font><font size=2 color=#808080 face="sans-serif"><br />  /*<br />  &nbsp;* A convenience function to create a file dropdown<br />  &nbsp;*/<br /> function CreateFileDropdown($id,$name,$selectedfile='',$dir = '',$extensions =<br /> '',$allownone = '',$allowmultiple = false,$size = 3)<br />  {<br />  &nbsp; $config = cmsms()-&gt;GetConfig();<br /> <br />  &nbsp; if( startswith( $dir, '.' ) ) $dir = '';<br />  &nbsp; if( $dir == '' ) $dir = $config&#91;'image_uploads_path'&#93;;<br />  &nbsp; if( !is_dir($dir) ) $dir = cms_join_path($config&#91;'uploads_path'&#93;,$dir);<br /> <br /> if( $extensions == '' ) $extensions =<br /> $this-&gt;GetPreference('fileextensions','');<br /> <br />  &nbsp; $tmp = cge_dir::get_file_list($dir,$extensions);<br />  &nbsp; $tmp2 = array();<br />  &nbsp; if( !empty($allownone) ) $tmp2&#91;$this-&gt;Lang('none')&#93; = '';<br />  &nbsp; $filelist = array_merge($tmp2,$tmp);<br /> <br />  &nbsp; if( $allowmultiple ) {<br />  &nbsp; &nbsp; if( !endswith($name,'&#91;&#93;') ) $name .= '&#91;&#93;';<br />  &nbsp; &nbsp; return $this-&gt;CreateInputSelectList($id,$name,$filelist,array(),$size);<br />  &nbsp; }<br />  &nbsp; return $this-&gt;CreateInputDropdown($id,$name,$filelist,-1,$selectedfile);<br />  }</font><font size=2 face="sans-serif"><br /> <br /> In /modules/NMS/action.compose.message.php; locate the string 'case:<br /> 'attachment'' and replace complete section with:<br /> </font><font size=2 color=#808080 face="sans-serif"><br /> case 'attachment':<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // a file selector dropdown?<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $content = '';<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if( isset($blockvalues&#91;$safe_name&#93;) ) {<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $content = $blockvalues&#91;$safe_name&#93;;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if( isset($params&#91;$obj-&gt;name&#93;) ) {<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $content = trim($params&#91;$obj-&gt;name&#93;);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //$cgextensions = $this-&gt;GetModuleInstance('CGExtensions');<br /> //$obj-&gt;control =<br /> $cgextensions-&gt;CreateFileDropdown($id,$obj-&gt;name,$content,'','',1);<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir = '';<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if( isset($keyval&#91;'dir'&#93;) ) {<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$dir = $keyval&#91;'dir'&#93;;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$obj-&gt;dir = $dir;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cgextensions = $this-&gt;GetModuleInstance('CGExtensions');<br /> $obj-&gt;control =<br /> $cgextensions-&gt;CreateFileDropdown($id,$obj-&gt;name,$content,$dir,'',1);<br /> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;</font><font size=2 face="sans-serif"><br /> <br /> Now the dir function works, only relative to the /uploads folder, but works<br /> nevertheless. Make sure in the CGExtensions module that the extension is allowed<br /> to be uploaded/used.<br />  &nbsp; &nbsp; <br /> And to make it work with sending the newsletter don't forget the following in /modules/NMS/NMS.modules.php locate the code:<br /> </font><font size=2 color=#808080 face="sans-serif"><br />  &nbsp; foreach( $this-&gt;attached_files as $onefile ) {<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $onefile;<br />  &nbsp; &nbsp; &nbsp; $fn = cms_join_path($config&#91;'uploads_path'&#93;,$onefile);<br />  &nbsp; &nbsp; &nbsp; $mailer-&gt;AddAttachment($fn,$onefile);<br />  &nbsp; }</font><font size=2 face="sans-serif"><br /> <br /> I've just manually changed the path to the path i need, for example:<br /> </font><font size=2 color=#808080 face="sans-serif"><br />  &nbsp; foreach( $this-&gt;attached_files as $onefile ) {<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $onefile;<br />  &nbsp; &nbsp; &nbsp; $fn = cms_join_path($config&#91;'uploads_path'&#93;.'/PDF',$onefile);<br />  &nbsp; &nbsp; &nbsp; $mailer-&gt;AddAttachment($fn,$onefile);<br />  &nbsp; }</font><font size=3><br /> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/cms-made-simple-get-the-newsletter-made-simple-nms-module-to-send-out-attachments</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple-get-the-newsletter-made-simple-nms-module-to-send-out-attachments?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Import folders with files into your Domino webapplication with the Package Explorer</title>
<pubDate>Fri, 8 Aug 2014 12:40:18 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication</link>
<category>package explorer</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">If you are working with web/mobile frameworks like jQuery and jQuery Mobile, it would be great if you could just import the whole tree of files into the Domino Designer for your web application. Otherwise you will have to change the .css filepaths to images or fonts for example. There is a neat little trick in the Domino Designer for that: <br /> <br /> In your Domino go to Window &gt; Show Eclipse Views &gt; Package Explorer <br /> </font><img  alt="Image:Import folders with files into your Domino webapplication with the Package Explorer" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication/content/M2?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> You can see a tree-like overview of your database, goto the folder 'WebContent' and then right-click on the WebContent folder and select 'Import' <br /> </font><img  alt="Image:Import folders with files into your Domino webapplication with the Package Explorer" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication/content/M3?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> In the dialog select 'File System' and press 'Next' <br /> <br /> </font><img  alt="Image:Import folders with files into your Domino webapplication with the Package Explorer" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication/content/M4?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> Select the folder which you want to import, select 'Create selected folders only' and 'Press Finish' <br /> </font><img  alt="Image:Import folders with files into your Domino webapplication with the Package Explorer" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication/content/M5?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> You will now have a nice folder structure available for your Domino webapplication. <br /> <br /> </font><img  alt="Image:Import folders with files into your Domino webapplication with the Package Explorer" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication/content/M6?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/import-folders-with-files-into-your-domino-webapplication</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/import-folders-with-files-into-your-domino-webapplication?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>CMS Made Simple: append search body to results</title>
<pubDate>Wed, 16 Apr 2014 12:02:24 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple</link>
<category>CMSMS</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">Besides Domino work, we do </font><a href=http://www.aashq.nl/organisatie/expertise><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">a lot of other programming languages</span></font></a><font size=2 face="sans-serif">. One of them is creating websites with PHP, with CMS Made Simple. A very completed, yet easy to use, Content Management System. In this post we will explain how to display search results with the body of the page.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> We use the embedded 'Search' module of CMS Made Simple.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> 'Extensions &gt; Search -&gt; Result template'</font><font size=3> <br /> <br /> </font><img  alt="Image:CMS Made Simple: append search body to results" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple/content/M2?OpenElement" /><font size=3><br /> </font><font size=2 face="sans-serif"><br /> We change the code to:</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br /> &lt;h3&gt;Search results for &amp;quot;{$phrase}&amp;quot;&lt;/h3&gt;</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br /> {if $itemcount &gt; 0}</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp;{foreach from=$results item=entry}</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;&lt;p&gt;&lt;b&gt;{$entry-&gt;title} ({$entry-&gt;weight}%)&lt;/b&gt;</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;&lt;br/&gt;</font><font size=2 color=red face="sans-serif">{getSearchBody url=$entry-&gt;url length=50}</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;&lt;br/&gt;&lt;a href=&quot;{$entry-&gt;url}&quot;&gt;{$entry-&gt;urltxt}&lt;/a&gt;</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp;{/foreach}</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br /> &lt;/ul&gt;</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br /> &lt;p&gt;{$timetaken}: {$timetook}&lt;/p&gt;</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br /> {else}</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp;&lt;p&gt;&lt;strong&gt;{$noresultsfound}&lt;/strong&gt;&lt;/p&gt;</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br /> {/if}</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> the 'getSearchBody' is a UDT, a user defined tag. We create this at 'Extensions &gt; User Defined Tags'.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> Create a new one with the name 'getSearchBody' and put the following code in:</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br /> /** Get page ID from Page URL -Create Search Body</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  </font><font size=3>&nbsp;</font><font size=2 color=blue face="sans-serif"><br /> * @params string $params&#91;'url'&#93; <br /> * @params string $params&#91;'length'&#93; <br /> */ </font><font size=3><br /> </font><font size=2 color=blue face="sans-serif"><br /> $gCms = cmsms();</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br /> $contentops =&amp; $gCms-&gt;GetContentOperations();</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br /> $db = $gCms-&gt;GetDb();</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br /> foreach ($contentops-&gt;GetAllContent() as $page) { </font><font size=3><br /> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;if ($page-&gt;GetURL() == $params&#91;'url'&#93;) { <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$cid = $contentops-&gt;GetPageIDFromAlias( $page-&gt;Alias() );</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$rid = $db-&gt;GetOne('select content from '.cms_db_prefix().'content_props where content_id='.$cid.' and prop_name = &quot;page&quot;');</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($rid == &quot;&quot;) {</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$string = $db-&gt;GetOne('select content from '.cms_db_prefix().'content_props where content_id='.$cid.' and prop_name = &quot;content_en&quot;');</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$string = $db-&gt;GetOne('select content from '.cms_db_prefix().'content_props where content_id='.$rid.' and prop_name = &quot;content_en&quot;');</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($string == &quot;&lt;p&gt;&lt;br /&gt;&lt;!-- Add code here that should appear in the content block of all new pages --&gt;&lt;/p&gt;</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;p&gt; &lt;/p&gt;&quot;) {</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$string = $db-&gt;GetOne('select content from '.cms_db_prefix().'content_props where content_id='.$cid.' and prop_name = &quot;content_en&quot;');</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$string = strip_tags($string);</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$words = explode(' ', $string);</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($length =&quot;&quot;) {</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$length = 45;</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</font><font size=3> <br /> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (count($words) &gt; $length) {</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return implode(' ', array_slice($words, 0, $length)).&quot;...&quot;; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $string; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;};</font><font size=3> </font><font size=2 color=blue face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;} <br /> } </font><font size=3><br /> </font><font size=2 face="sans-serif"><br /> The end result is something similar like:</font><font size=3> <br /> </font><img  alt="Image:CMS Made Simple: append search body to results" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple/content/M3?OpenElement" /><font size=3><br /> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/cms-made-simple</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/cms-made-simple?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Set Current Font as Mail Default not working properly</title>
<pubDate>Wed, 12 Mar 2014 10:40:04 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/set-current-font-as-mail-default-not-working</link>
<category>lotus</category>
<dc:creator>Cor Eigenhuis</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/set-current-font-as-mail-default-not-working?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/set-current-font-as-mail-default-not-working</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">A new feature in Lotus Notes 8.5.2 and up, is to set the currently selected text as your default font.</font> <br /> <br /><img  alt="Image:Set Current Font as Mail Default not working properly" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/set-current-font-as-mail-default-not-working/content/M2?OpenElement" /> <br /> <br /><font size=2 face="sans-serif">On a system with a lot of fonts installed, this feature might not work. In one case, a user chose Trebuchet MS as his default, but every time a new e-mail was composed it changed to Default Serif. It turned out Lotus Notes cannot cope with too many fonts installed on a system. After removing about 30 fonts, the problem was resolved. </font> <br /> <br /><font size=2 face="sans-serif">It appears that Lotus Notes loads fonts alphabetically, and just stops at a certain point, probably due to a memory limit.</font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/set-current-font-as-mail-default-not-working</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/set-current-font-as-mail-default-not-working?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Error 404 HTTP Web Server: IBM Notes Exception - File does not exist</title>
<pubDate>Fri, 31 Jan 2014 11:44:58 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/error-404-http-web-srever-ibm-notes-exception-file-does-not-exist</link>
<category>error</category>
<dc:creator>Cor Eigenhuis</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/error-404-http-web-srever-ibm-notes-exception-file-does-not-exist?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/error-404-http-web-srever-ibm-notes-exception-file-does-not-exist</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">One of our customers randomly receives error 404 messages, when launching a Domino database in a browser. The URL is always the same, yet only occasionally this error is returned. This problem is solved (temporarily) when the database is also opened in the Notes client. After restarting the HTTP Server, the problem returns.</font><font size=3> </font><font size=2 face="sans-serif"><br /> <br /> Running the exact same database on another server, did not result in the same behaviour. The difference between these servers is the OS; the problem only occurs on a Unix based server. It turned out to be a problem with capitalization! <br /> <br /> Best practice, knowing this, could be to only use lowercases creating databases and URL's. </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/error-404-http-web-srever-ibm-notes-exception-file-does-not-exist</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/error-404-http-web-srever-ibm-notes-exception-file-does-not-exist?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Overflow in mailbox</title>
<pubDate>Thu, 17 Oct 2013 08:47:46 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/overflow-in-mailbox</link>
<category>design</category>
<dc:creator>Cor Eigenhuis</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/overflow-in-mailbox?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/overflow-in-mailbox</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">After upgrading one of our customers to Domino and Notes 9, some user were getting overflow errors in their mailbox. The first user reported an overflow error when trying to delete a memo. It turned out the error was returned when trying to determine the current version of Notes. In the code below, the error was returned on the line in bold. </font><font size=1 face="Tahoma"><em><br /> </em></font><font size=1 color=#008000 face="Arial"><br /> </font><font size=2 color=#008000 face="Arial">' Determine version number using @Version because it backwards compat to r3 </font><font size=2 face="Arial"><br /> v </font><font size=2 color=blue face="Arial">=</font><font size=2 face="Arial"> </font><font size=2 color=blue face="Arial">Evaluate(</font><font size=2 face="Arial"> |@Version| </font><font size=2 color=blue face="Arial">)</font><font size=2 face="Arial"> <strong><br /> versionNumber </strong></font><font size=2 color=blue face="Arial"><strong>=</strong></font><font size=2 face="Arial"><strong> </strong></font><font size=2 color=blue face="Arial"><strong>Format(</strong></font><font size=2 face="Arial"><strong>v</strong></font><font size=2 color=blue face="Arial"><strong>(</strong></font><font size=2 face="Arial"><strong>0</strong></font><font size=2 color=blue face="Arial"><strong>),</strong></font><font size=2 face="Arial"><strong> &quot;Fixed&quot;</strong></font><font size=2 color=blue face="Arial"><strong>)</strong></font><font size=2 face="Arial"><strong> </strong></font><font size=2><br /> </font><font size=2 color=blue face="Arial"><br /> If</font><font size=2 face="Arial"> </font><font size=2 color=blue face="Arial">(</font><font size=2 face="Arial"> versionNumber </font><font size=2 color=blue face="Arial">&lt;</font><font size=2 face="Arial"> 177 </font><font size=2 color=blue face="Arial">)</font><font size=2 face="Arial"> </font><font size=2 color=blue face="Arial">Then</font><font size=2 face="Arial"> <br />  &nbsp; &nbsp; &nbsp; </font><font size=2 color=blue face="Arial">Goto</font><font size=2 face="Arial"> preRNext &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#008000 face="Arial">' skip SD check </font><font size=2 color=blue face="Arial"><br /> End</font><font size=2 face="Arial"> </font><font size=2 color=blue face="Arial">If</font><font size=2> </font> <p><font size=2 face="sans-serif"><br /> Since nobody in the company uses R3 anymore, the code could be omitted, which fixed the error. <br /> <br /> However, soon other users reported the same overflow error, but on different occasions. Not everybody experienced this overflow error, only people who used the embedded browser (for previewing pdf in another database). The error was reproducible. All were traceable back to various lines with the Format function. In the mailtemplate these statements can easily be replaced by the Cint function. <br /> <br /> By replacing the versionNumber line, the error was resolved: <em><br /> </em></font><font size=1 face="Arial"><br /> </font><font size=2 face="Arial">versionNumber </font><font size=2 color=blue face="Arial">=</font><font size=2 face="Arial"> </font><font size=2 color=blue face="Arial">Cint(</font><font size=2 face="Arial">v</font><font size=2 color=blue face="Arial">(</font><font size=2 face="Arial">0</font><font size=2 color=blue face="Arial">))</font><font size=3><br /> <br /> </font><img  alt="Image:Overflow in mailbox" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/overflow-in-mailbox/content/M2?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/overflow-in-mailbox</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/overflow-in-mailbox?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>IBM Traveler &#8217;cannot connect to server&#8217;</title>
<pubDate>Thu, 17 Oct 2013 08:29:36 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/ibm-traveler-cannot-connect-to-server</link>
<category>iphone</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/ibm-traveler-cannot-connect-to-server?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/ibm-traveler-cannot-connect-to-server</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">A customer of ours had one user which suddenly couldn't sync his iPhone or iPad with IBM Traveler (version 9.0). We tried to reset and later to delete the configuration of the device. We did this with the commands:</font><font size=3> <br /> </font><font size=2 face="sans-serif"><em><br /> tell traveler reset * John Doe/HQ</em></font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> and</font><font size=3> <br /> </font><font size=2 face="sans-serif"><em><br /> tell traveler delete * John Doe/HQ</em></font><font size=3> <br /> </font> <br /><font size=2 face="sans-serif">Reset and delete were executed, but we still got the error message 'Cannot connect to server' on the iPhone and iPad screen. We then tried to remove and reinstall the profile, again without success. Other accounts were working fine, so it should be an error in the mailbox, but no errors were returned in the Domino log. We upgraded the Domino server to the latest Interim Fix (IF4) as well as the Traveler addon to 9.0.0.1 IF2. Still no difference but now we got the following error in the Domino Log:</font><font size=3> <br /> </font><font size=2 face="sans-serif"><em><br /> Parent </em></font><font size=2 face="Trebuchet MS"><em>ID 100 is not valid for folder with id 28244 and name 'SubFolder', so it will be made root folder.</em></font><font size=3><em> </em><br /> </font><font size=2 face="sans-serif"><br /> When we looked in the design of the mailbox there was a folder called '($Inbox)\SubFolder'. When we renamed it to 'Subfolder', everything started to sync again.</font><font size=3> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/ibm-traveler-cannot-connect-to-server</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/ibm-traveler-cannot-connect-to-server?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Fix full text search results within PDF and DocX documents</title>
<pubDate>Thu, 10 Feb 2011 14:56:31 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/fix-full-text-search-results-within-pdf-and-docx-documents</link>
<category>ft-index</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/fix-full-text-search-results-within-pdf-and-docx-documents?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/fix-full-text-search-results-within-pdf-and-docx-documents</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">We found that several installations of Lotus Domino 8.5.1 and 8.5.2 had issues when searching a full-text indexed database with attachment conversion filters turned on. When searching for content within the attachment, no results were displayed. </font> <br /><font size=3>&nbsp;</font> <br /><font size=2 face="sans-serif">This is due to a wrong characterset in the keyview settings. This can be fixed by adding the following notes.ini entries:</font><font size=3> <br /> </font><font size=2 face="sans-serif"><strong><br /> FT_BINARY_FILTER_OFF=0</strong></font><font size=3> </font><font size=2 face="sans-serif"><strong><br /> OS400_KEYVIEW_CSID=0052</strong></font><font size=3> </font><font size=2 face="sans-serif"><strong><br /> PLATFORM_CSID=052</strong></font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> Where 0052 stands for </font><a href="http://en.wikipedia.org/wiki/Windows-1252"><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">ISO 1252 West European Latin</span></font></a><font size=2 face="sans-serif">.</font><font size=3> </font><font size=2 face="sans-serif"><br /> For more information see </font><a href=http://wcsinfo.wilkes.k12.nc.us/help/readas4.nsf/1f573324685cf98d8525647c00605493/84b604a088de916186256cd3005e494b?OpenDocument><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">this page</span></font></a><font size=2 face="sans-serif">.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> After changing the ini-settings, restart the server and completely remove the FT-index and then re-create it. Attachments will be searchable again.</font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/fix-full-text-search-results-within-pdf-and-docx-documents</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/fix-full-text-search-results-within-pdf-and-docx-documents?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Google sitemap agent and update it to Google with a &#8217;ping&#8217; service</title>
<pubDate>Thu, 11 Nov 2010 15:41:46 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/google-sitemap-submission-and-update-it-with-a-ping-service</link>
<category>seo</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/google-sitemap-submission-and-update-it-with-a-ping-service?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/google-sitemap-submission-and-update-it-with-a-ping-service</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">Google has a cool little website called 'Google Webmaster tools' located at: https://www.google.com/webmasters/tools/</font><font size=3><br /> </font><font size=2 face="sans-serif"><br /> One of the features of Webmaster tools is the possibility to upload the sitemap of your site. This will improve the indexing of your website. A Google sitemap is a XML file which has the following structure:</font><font size=3> <br /> </font><tt><font size=2><br /> </font></tt><font size=2 color=blue face="Courier New">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;</font><font size=2 face="Courier New"> </font> <br /><a href="https://blog.aashq.nl/blog/blog.nsf/dx/file:///C:/Users/Ferdi/Downloads/web-GoogleSitemap%20(1).xml#"></a><font size=2 color=blue face="Courier New">&lt;</font><font size=2 color=#a00000 face="Courier New">urlset</font><font size=2 color=red face="Courier New"> xmlns</font><font size=2 color=blue face="Courier New">=&quot;</font><font size=2 color=red face="Courier New"><strong>http://www.google.com/schemas/sitemap/0.84</strong></font><font size=2 color=blue face="Courier New">&quot;</font><font size=2 color=red face="Courier New"> </font> <br /><font size=2 color=red face="Courier New">xmlns:xsi</font><font size=2 color=blue face="Courier New">=&quot;</font><font size=2 color=red face="Courier New"><strong>http://www.w3.org/2001/XMLSchema-instance</strong></font><font size=2 color=blue face="Courier New">&quot;</font><font size=2 color=#a00000 face="Courier New"> </font> <br /><font size=2 color=#a00000 face="Courier New">xsi:schemaLocation</font><font size=2 color=blue face="Courier New">=&quot;</font><font size=2 face="Courier New"><strong>http://www.google.com/schemas/sitemap/0.84 </strong></font> <br /><font size=2 face="Courier New"><strong>http://www.google.com/schemas/sitemap/0.84/sitemap.xsd</strong></font><font size=2 color=blue face="Courier New">&quot;&gt;</font> <br /><a href="https://blog.aashq.nl/blog/blog.nsf/dx/file:///C:/Users/Ferdi/Downloads/web-GoogleSitemap%20(1).xml#"></a><font size=2 color=blue face="Courier New">&lt;</font><font size=2 color=#a00000 face="Courier New">url</font><font size=2 color=blue face="Courier New">&gt;</font> <br /><font size=2 color=red face="Courier New"><strong>&nbsp;</strong></font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">&lt;</font><font size=2 color=#a00000 face="Courier New">loc</font><font size=2 color=blue face="Courier New">&gt;</font><font size=2 face="Courier New"><strong>http://www.domain.com/dir/page.html</strong></font><font size=2 color=blue face="Courier New">&lt;/</font><font size=2 color=#a00000 face="Courier New">loc</font><font size=2 color=blue face="Courier New">&gt;</font><font size=2 face="Courier New"> </font> <br /><font size=2 color=red face="Courier New"><strong>&nbsp;</strong></font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">&lt;</font><font size=2 color=#a00000 face="Courier New">lastmod</font><font size=2 color=blue face="Courier New">&gt;</font><font size=2 face="Courier New"><strong>2010-10-27</strong></font><font size=2 color=blue face="Courier New">&lt;/</font><font size=2 color=#a00000 face="Courier New">lastmod</font><font size=2 color=blue face="Courier New">&gt;</font><font size=2 face="Courier New"> </font> <br /><font size=2 color=red face="Courier New"><strong>&nbsp;</strong></font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">&lt;</font><font size=2 color=#a00000 face="Courier New">priority</font><font size=2 color=blue face="Courier New">&gt;</font><font size=2 face="Courier New"><strong>1</strong></font><font size=2 color=blue face="Courier New">&lt;/</font><font size=2 color=#a00000 face="Courier New">priority</font><font size=2 color=blue face="Courier New">&gt;</font><font size=2 face="Courier New"> </font> <br /><font size=2 color=red face="Courier New"><strong>&nbsp;</strong></font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">&lt;/</font><font size=2 color=#a00000 face="Courier New">url</font><font size=2 color=blue face="Courier New">&gt;</font> <br /><font size=2 color=blue face="Courier New">&lt;/</font><font size=2 color=#a00000 face="Courier New">urlset</font><font size=2 color=blue face="Courier New">&gt;</font> <br /><font size=2 face="sans-serif"><strong><br /> Dynamic sitemap</strong></font><font size=3> </font><font size=2 face="sans-serif"><br /> We want to update this sitemap automatically with a Lotusscript agent when we create or modify a page. We have created a view called 'vw-web-Sitemap' which has the structure of our content in it in hierachical format. It loops through the view, get the field 'urlkey_seo' and the last modified date and places them in the XML. The field 'urlkey_seo' contains the actual path of the page (ex: /products/coolproduct1/specs).</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> We created a small function to get the date in the correct format (yy-mm-dd). In our case we use three templates (forms), and we give a different priority to it, the homepage should be 1 (high), our products should have a priority of 0.8, and all other pages should have a priority of 0.5 (medium). </font><font size=3><br /> </font><font size=2 face="sans-serif"><br /> The agent has the following code:</font><font size=3> <br /> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %REM</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Agent web-GoogleSitemap</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Created Oct 27, 2010 by Ferdi Verlaan/Aas</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Description: Creates a google sitemap from the content of the sitemap view</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %END REM</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Option</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Public</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Option</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Declare</strong></font><font size=3> <br /> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Sub</strong></font><font size=2 face="Courier New"> Initialize</font><font size=3> <br /> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>On</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Error</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>GoTo</strong></font><font size=2 face="Courier New"> errh</font><font size=3> <br /> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> session </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>New</strong></font><font size=2 face="Courier New"> NotesSession</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> db </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> NotesDatabase</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> view </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> NotesView</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> doc </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> NotesDocument</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> rel </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=2 face="Courier New"> &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Set</strong></font><font size=2 face="Courier New"> db = session.Currentdatabase</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Set</strong></font><font size=2 face="Courier New"> view = db.Getview(</font><font size=2 color=#4100c2 face="Courier New"><em>&quot;vw-web-Sitemap&quot;</em></font><font size=2 face="Courier New">)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Set</strong></font><font size=2 face="Courier New"> doc = view.Getfirstdocument()</font><font size=3> <br /> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#00a000 face="Courier New"><strong>'header information for XML &nbsp; &nbsp; &nbsp; &nbsp;</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{Content-Type: application/xml&quot;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;urlset xmlns=&quot;http://www.google.com/schemas/sitemap/0.84&quot; </em></font> <br /><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; </font><font size=2 color=#4100c2 face="Courier New"><em>xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; </em></font> <br /><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; </font><font size=2 color=#4100c2 face="Courier New"><em>xsi:schemaLocation=&quot;http://www.google.com/schemas/sitemap/0.84 </em></font> <br /><font size=2 face="Courier New">&nbsp; &nbsp; &nbsp; &nbsp; </font><font size=2 color=#4100c2 face="Courier New"><em>http://www.google.com/schemas/sitemap/0.84/sitemap.xsd&quot;&gt;}</em></font><font size=3> <br /> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Do</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Until</strong></font><font size=2 face="Courier New"> doc </font><font size=2 color=#0000e0 face="Courier New"><strong>Is</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Nothing</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> doc.Form(</font><font size=2 color=#4100c2 face="Courier New"><em>0</em></font><font size=2 face="Courier New">) = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;cnt-Diensten&quot;</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rel = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;0.8&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>elseIf</strong></font><font size=2 face="Courier New"> doc.Form(</font><font size=2 color=#4100c2 face="Courier New"><em>0</em></font><font size=2 face="Courier New">) = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;cnt-Start&quot;</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rel = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;1&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Else</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rel = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;0.5&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;url&gt;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;loc&gt;http://www.aashq.nl}</em></font><font size=2 face="Courier New"> &amp; doc.urlkey_seo(</font><font size=2 color=#4100c2 face="Courier New"><em>0</em></font><font size=2 face="Courier New">) &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;/loc&gt;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;lastmod&gt;}</em></font><font size=2 face="Courier New"> &amp; genDate(doc) &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;/lastmod&gt;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;priority&gt;}</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(rel) &amp;</font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;/priority&gt;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;/url&gt;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Set</strong></font><font size=2 face="Courier New"> doc = view.Getnextdocument(doc)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Loop</strong></font><font size=2 face="Courier New"> &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>{&lt;/urlset&gt;}</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Exit</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Sub</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br /> errh:</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Print</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;Error on line &quot;</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>Erl</strong></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot; - &quot;</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>Err</strong></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot; - &quot;</em></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>Error</strong></font><font size=2 face="Courier New"> &amp; </font><font size=2 color=#4100c2 face="Courier New"><em>&quot; in &quot;</em></font><font size=2 face="Courier New">&amp; </font><font size=2 color=#0000e0 face="Courier New"><strong>GetThreadInfo</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#4100c2 face="Courier New"><em>1</em></font><font size=2 face="Courier New">) &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Exit</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Sub</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong><br /> End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Sub</strong></font><font size=3> <br /> <br /> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %REM</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Function lenDate</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Description: checks the length of the day or month value</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %END REM</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Function</strong></font><font size=2 face="Courier New"> lenDate(ndt </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=2 face="Courier New">) </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>string</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Len</strong></font><font size=2 face="Courier New">(ndt) = </font><font size=2 color=#4100c2 face="Courier New"><em>1</em></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Then</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lenDate = </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;0&quot;</em></font><font size=2 face="Courier New"> + ndt</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Else</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lenDate = ndt</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>If</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong><br /> End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Function</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %REM</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Sub genDate</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Description: Creates a yy-mm-dd date string</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %END REM</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Function</strong></font><font size=2 face="Courier New"> genDate(doc </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> NotesDocument) </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>string</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> ndt </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>New</strong></font><font size=2 face="Courier New"> NotesDateTime(</font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(doc.LastModified))</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> y </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> m </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> d </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>string</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;y = </font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#0000e0 face="Courier New"><strong>Year</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(ndt.Lslocaltime)))</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;m = lenDate(</font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#0000e0 face="Courier New"><strong>Month</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(ndt.Lslocaltime))))</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;d = lenDate(</font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#0000e0 face="Courier New"><strong>Day</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#0000e0 face="Courier New"><strong>CStr</strong></font><font size=2 face="Courier New">(ndt.Lslocaltime))))</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;genDate = y + </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;-&quot;</em></font><font size=2 face="Courier New"> + m + </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;-&quot;</em></font><font size=2 face="Courier New"> + d</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Exit</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Function</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong><br /> End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Function</strong></font><font size=3> <br /> <br /> </font><font size=2 face="sans-serif"><br /> This agent will create a nice XML output for Google Sitemaps. You can submit it to Google with Webmaster tools &gt; Siteconfiguration &gt; Sitemaps.</font><font size=3> <br /> <br /> </font><img  alt="Image:Google sitemap agent and update it to Google with a &#8217;ping&#8217; service" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/google-sitemap-submission-and-update-it-with-a-ping-service/content/M2?OpenElement" /><font size=3><br /> </font><font size=2 face="sans-serif"><strong><br /> Ping sitemap</strong></font><font size=3> </font><font size=2 face="sans-serif"><br /> After submission Google will index the sitemap periodically, but wouldn't it be great to let Google now that the sitemap has been updated? That is possible through a special PING website of Google. The url of this ping service is: </font><font size=2 color=#4100c2 face="Courier New"><em>http://www.google.com/webmasters/sitemaps/ping?</em></font><font size=2 face="sans-serif"> and then the url of your sitemap.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> We have created a ping agent for Lotus Notes which automatically runs after a modification or creating of a new document.</font><font size=3> </font><font size=2 face="sans-serif"><br /> The agent code is listed below (works only from Windows):</font><font size=3> <br /> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %REM</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Agent web-pingSitemap</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Created Nov 11, 2010 by Ferdi Verlaan/Aas</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br />  &nbsp; &nbsp; &nbsp; &nbsp;Description: Pings the sitemap to Google services</strong></font><font size=3> </font><font size=2 color=#00a000 face="Courier New"><strong><br /> %END REM</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Option</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Public</strong></font><font size=3> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Option</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Declare</strong></font><font size=3> <br /> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Sub</strong></font><font size=2 face="Courier New"> Initialize</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> result </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;result = pingSitemap(</font><font size=2 color=#4100c2 face="Courier New"><em>&quot;http://www.google.com/webmasters/sitemaps/ping?sitemap=http://www.domain.com/website.nsf/web-GoogleSitemap.xml&quot;</em></font><font size=2 face="Courier New">) </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Sub</strong></font><font size=3> <br /> </font><font size=2 color=#0000e0 face="Courier New"><strong><br /> Function</strong></font><font size=2 face="Courier New"> pingSitemap(strUrl </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=2 face="Courier New">) </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp; </font><font size=3>&nbsp;</font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> oHTTP </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Variant</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Dim</strong></font><font size=2 face="Courier New"> strReturn </font><font size=2 color=#0000e0 face="Courier New"><strong>As</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>String</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Set</strong></font><font size=2 face="Courier New"> oHTTP = CreateObject(</font><font size=2 color=#4100c2 face="Courier New"><em>&quot;Microsoft.XMLHTTP&quot;</em></font><font size=2 face="Courier New">)</font><font size=3> <br /> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;oHTTP.open </font><font size=2 color=#0000e0 face="Courier New"><strong>UCase$</strong></font><font size=2 face="Courier New">(</font><font size=2 color=#4100c2 face="Courier New"><em>&quot;POST&quot;</em></font><font size=2 face="Courier New">), strUrl, </font><font size=2 color=#0000e0 face="Courier New"><strong>False</strong></font><font size=2 face="Courier New">, </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;&quot;</em></font><font size=2 face="Courier New">, </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;oHTTP.setRequestHeader </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;Content-type&quot;</em></font><font size=2 face="Courier New">, </font><font size=2 color=#4100c2 face="Courier New"><em>&quot;application/x-www-form-urlencoded&quot;</em></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;oHTTP.send(</font><font size=2 color=#4100c2 face="Courier New"><em>&quot;&quot;</em></font><font size=2 face="Courier New">)</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp;pingSitemap = oHTTP.responseText</font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong>Set</strong></font><font size=2 face="Courier New"> oHTTP = </font><font size=2 color=#0000e0 face="Courier New"><strong>Nothing</strong></font><font size=3> </font><font size=2 face="Courier New"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=#0000e0 face="Courier New"><strong><br /> End</strong></font><font size=2 face="Courier New"> </font><font size=2 color=#0000e0 face="Courier New"><strong>Function</strong></font><font size=3> </font> <br /> <br /><font size=2 face="sans-serif">Good luck with implementing this on your own website.</font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/google-sitemap-submission-and-update-it-with-a-ping-service</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/google-sitemap-submission-and-update-it-with-a-ping-service?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Custom 404 errorpages with Lotus Domino</title>
<pubDate>Tue, 2 Nov 2010 12:10:14 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/custom-404-errorpages-with-lotus-domino</link>
<category>404</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/custom-404-errorpages-with-lotus-domino?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/custom-404-errorpages-with-lotus-domino</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">Although we try to prevent it, it is always possible to have deleted or moved content within your website. In Apache you can easily create custom 404 pages. In Lotus Domino it is just as easy!<br /> <br /> Create a new form within your website application (website.nsf) with the name and alias: &quot;<strong>$$ReturnGeneralError</strong>&quot;. </font> <br /> <br /><img  alt="Image:Custom 404 errorpages with Lotus Domino" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/custom-404-errorpages-with-lotus-domino/content/M2?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> Just place all your html code within this form to resemble your own website look &amp; feel. We also place a custom google javascript to ensure users can search within our site for the missing content. Just place the following code in your html:</font><font size=3> </font><font size=2 face="sans-serif"><br /> </font><font size=2 face="Courier New"><br /> &lt;script type=&quot;text/javascript&quot;&gt;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br />  var GOOG_FIXURL_LANG = 'en';</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br />  var GOOG_FIXURL_SITE = 'http://www.example.com'</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br /> &lt;/script&gt;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br /> &lt;script type=&quot;text/javascript&quot;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br />  src=&quot;http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js&quot;&gt;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br /> &lt;/script&gt;</font><font size=3 face="Courier New"> </font><font size=2 face="sans-serif"><br /> <br /> This widget automatically provides suggestions or alternatives for the missing content, based on the Google index of your website. Visitors can now find the missing information more easily. From our own experiments it seems that the sitemap and closest match functionality wasn't available. This is probably because of the fact that our website isn't indexed completely by Google at the moment.</font><font size=3> <br /> <br /> </font><img  alt="Image:Custom 404 errorpages with Lotus Domino" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/custom-404-errorpages-with-lotus-domino/content/M3?OpenElement" />  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/custom-404-errorpages-with-lotus-domino</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/custom-404-errorpages-with-lotus-domino?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>SEO optimization for Lotus Domino websites</title>
<pubDate>Thu, 28 Oct 2010 17:19:52 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/seo-optimization-for-lotus-domino-websites</link>
<category>seo</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/seo-optimization-for-lotus-domino-websites?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/seo-optimization-for-lotus-domino-websites</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif"><br /> We have launched our new website a few months ago, and had training by Alain Sadon, an </font><a href=http://www.seoguru.nl/><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">SEO Guru</span></font></a><font size=2 face="sans-serif">. After training my hands were itching to optimize our own website. Although the basic setup of our new website was good, there were a few optimalizations to be done. One of them was to implement a clean hierarchial path to the content. <strong><br /> <br /> Previous setup</strong></font><font size=3> </font> <p><font size=2 face="sans-serif">I&#8217;ve already set up the website in the following manner: <span style="text-decoration:underline">website.nsf/view/pagename</span></font><font size=3> </font><font size=2 face="sans-serif"><br /> The view contained all the documents sorted by key and pagename was the actual key. It delivered a construction where a hierarchy was only two elements deep, for example:</font><font size=3> </font> <p><font size=2 face="sans-serif"><span style="text-decoration:underline">website.nsf/products/coolproduct1</span></font><font size=3> </font> <p><font size=2 face="sans-serif"><span style="text-decoration:underline">website.nsf/services/coolservice1</span></font><font size=3> </font><font size=2 face="sans-serif"><br /> <br /> If I wanted to add specs to the cool product (ex: <span style="text-decoration:underline">website.nsf/products/coolproduct1/specs</span>), the hierarchy in Domino couldn't go deeper. At least, that was my initial assumption. After some reading and some testing I&#8217;ve come up with another construction.</font><font size=3> </font><font size=2 face="sans-serif"><strong><br /> <br /> New setup</strong></font><font size=3> </font> <p><font size=2 face="sans-serif">In the website form I already had a field &#8216;key&#8217;, which contains a userfriendly alias for the document, for example &nbsp;&#8216;coolproduct1&#8217;. I&#8217;ve also setup a button where the user can select which parent the current document has. After selecting the parent, a field parentunid is filled with a unique id. &nbsp;After that I&#8217;ve created a computed field called &#8216;urlkey_seo&#8217; which contains the following formula:</font><font size=3> </font> <p> <br /> <p> <br /><font size=2 face="Courier New">punid := parentunid;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br /> pkey := &quot;&quot;;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br /> <br /> @While(punid != &quot;&quot;;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br />  pkey := &nbsp;&quot;/&quot; + @GetDocField(punid;&quot;key&quot;) + pkey;</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br />  punid := @GetDocField(punid;&quot;parentunid&quot;)</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br /> );</font><font size=3 face="Courier New"> </font><font size=2 face="Courier New"><br /> <br /> @LowerCase(pkey + &quot;/&quot; + key)</font><font size=3 face="Courier New"> </font> <p><font size=2 face="sans-serif"><br /> In essence, the formula loops through all parents and gets the field &#8216;key&#8217; and separates the entries with a slash. Then I created the SEO template view &#8216;vw-tpl-SEO&#8217; with the alias &#8217;SEO&#8217; which is sorted on the first column, with the value of the field &#8216;urlkey_seo&#8217;. Below a subset of the hierarchy of our corporate website.</font><font size=3> <br /> <br /> </font><img  alt="Image:SEO optimization for Lotus Domino websites" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/seo-optimization-for-lotus-domino-websites/content/M2?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> To be able to open a document by key with a slash in it you have to add &#8216;<em>?OpenDocument</em>&#8217; after the key: <span style="text-decoration:underline">website.nsf/products/coolproduct1/specs?OpenDocument </span>where &#8216;products/coolproduct1/specs&#8217; is the key. But this isn&#8217;t the SEO way to go. We need to remove the '<em>?OpenDocument</em> ' and remove the .nsf in the path. For that issue we have the Domino subsitution rules on the server.</font><font size=3> </font><font size=2 face="sans-serif"><strong><br /> <br /> Substitution rules</strong></font><font size=3> </font> <p><font size=2 face="sans-serif">Launch your Domino Administrator, go to the tab &#8216;Configuration&#8217;, in the tree select &#8216;Web&#8217; \ &#8216;Internet sites&#8217;. In the middle you will see the website documents created for your websites. There we make three rules to keep our entire website working (our website.nsf &nbsp;is located in the root, but could be used with deeper directory paths as well). Create a new website rule from within your website document with &#8216;Web site&#8217; &gt; &#8216;Create rule&#8217;. </font><font size=3><br /> <br /> </font><img  alt="Image:SEO optimization for Lotus Domino websites" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/seo-optimization-for-lotus-domino-websites/content/M3?OpenElement" /><font size=2 face="sans-serif"><span style="text-decoration:underline"><br /> <br /> First rule:</span></font><font size=3> </font> <p><font size=2 face="sans-serif">Type: Substitution</font><font size=3> </font> <p><font size=2 face="sans-serif">Incoming URL pattern: &nbsp;/website.nsf/*</font><font size=3> </font> <p><font size=2 face="sans-serif">Replacement pattern: /website.nsf/*</font><font size=3> </font><font size=2 face="sans-serif"><span style="text-decoration:underline"><br /> <br /> Second rule:</span></font><font size=3> </font> <p><font size=2 face="sans-serif">Type: Substitution</font><font size=3> </font> <p><font size=2 face="sans-serif">Incoming URL pattern: &nbsp;/*</font><font size=3> </font> <p><font size=2 face="sans-serif">Replacement pattern: /website.nsf/*</font><font size=3> </font><font size=2 face="sans-serif"><span style="text-decoration:underline"><br /> <br /> Third rule:</span></font><font size=3> </font> <p><font size=2 face="sans-serif">Type: Substitution</font><font size=3> </font> <p><font size=2 face="sans-serif">Incoming URL pattern: &nbsp;/*/*</font><font size=3> </font> <p><font size=2 face="sans-serif">Replacement pattern: /website.nsf/SEO/*/*?OpenDocument</font><font size=3> </font><font size=2 face="sans-serif"><br /> <br /> The first rule is to ensure our old links, that we don&#8217;t get a lot of 404&#8217;s. The second rule is to redirect the homepage (/website.nsf), since the third rule will mess that up. The third rule is the most important, it will replace all incoming paths to the newly created SEO view and fills in the wildcards with our 'urlkey_seo' value. The need of the double /* is again for the homepage, Domino doesn&#8217;t see the difference for a / or a /* in the incoming url pattern, and you will get a exception error that<em> /website.nsf/SEO/?OpenDocument</em> is not valid.</font><font size=3> </font><font size=2 face="sans-serif"><br /> <br /> Screenshot of our substitution rules:</font><font size=3> </font> <p><img  alt="Image:SEO optimization for Lotus Domino websites" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/seo-optimization-for-lotus-domino-websites/content/M4?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> Restart the http task on the server and our new hierarchy </font><a href=http://www.domain.com/products/coolproduct1/specs><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">www.domain.com/products/coolproduct1/specs</span></font></a><font size=2 face="sans-serif"> is working. You can go as deep as you want because of the wildcard(s).</font><font size=3> </font><font size=2 face="sans-serif"><strong><br /> <br /> Images</strong></font><font size=3> </font> <p><font size=2 face="sans-serif">With the above rules in place a <em>/$FILE/attachmentname.jpg</em> will result in a error. Because of the substitution it will append <em>?OpenDocument</em>, and will result in an error. Therefor setup a new website document (ex: <span style="text-decoration:underline">images.domain.com</span>) and link to that path for your images. It will also give you an small improvement on your ratings, since Google appreciates cookie-less domains for images.</font><font size=3> </font><font size=2 face="sans-serif"><br /> <br /> To see the whole thing in action, take a look on our new corporate website (only Dutch at the moment) at </font><a href=http://www.aashq.nl/><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">www.aashq.nl</span></font></a><font size=2 face="sans-serif">. <br /> <br /> <br /> Next step is to optimize the default IBM blog for use with the above principle. We will post a new entry when we got that fixed.</font><font size=3> </font> <p><font size=2 face="sans-serif"><strong><br /> Interesting links</strong></font><font size=3> </font> <p><font size=2 face="sans-serif">Other interesting websites for SEO optimalization for Lotus Domino websites:</font><font size=3> </font> <p><font size=2 face="sans-serif">Codestore: </font><a href="http://www.codestore.net/store.nsf/unid/BLOG-20100617-0347"><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">http://www.codestore.net/store.nsf/unid/BLOG-20100617-0347</span></font></a><font size=3> </font> <p><font size=2 face="sans-serif">Domino Guru: </font><a href=http://www.dominoguru.com/pages/08112010083541.html><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline">http://www.dominoguru.com/pages/08112010083541.html</span></font></a><font size=3> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/seo-optimization-for-lotus-domino-websites</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/seo-optimization-for-lotus-domino-websites?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Enable Eclipse plugin installation in Lotus Designer 8.5.2</title>
<pubDate>Wed, 27 Oct 2010 11:00:14 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/enable-eclipse-plugin-installation</link>
<category>eclipse</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/enable-eclipse-plugin-installation?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/enable-eclipse-plugin-installation</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">After reading the excellent article by Rishi Singapore how to</font><a href="http://lotus-blogs.blogspot.com/2009/10/designer-851-goodies-i-version-control.html"><font size=2 color=blue face="sans-serif"><span style="text-decoration:underline"> Install Subclipse</span></font></a><font size=2 face="sans-serif"> for Domino. In his post he talked about that to enable this feature you need to add following line in plugin_customization.ini file which is located at \Notes\framework\rcp path.</font><font size=3> </font><font size=2 face="sans-serif"><strong><br /> <br /> com.ibm.notes.branding/enable.update.ui=true </strong><br /> <br /> After doing that and restarting the Lotus Notes client + designer, still no options under File &gt; Application &gt; Install.</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> This behaviour has changed in 8.5.2, for Domino designer 8.5.2 you have a nice little option in the preferences:</font><font size=3> <br /> <br /> </font><img  alt="Image:Enable Eclipse plugin installation in Lotus Designer 8.5.2" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/enable-eclipse-plugin-installation/content/M2?OpenElement" /><font size=2 face="sans-serif"><br /> <br /> Voila, Subsclipse can now be installed! SVN support in Lotus Domino Designer!</font><font size=3> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/enable-eclipse-plugin-installation</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/enable-eclipse-plugin-installation?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>How to get a handle to the updated backend document without re-opening the ui document</title>
<pubDate>Wed, 10 Mar 2010 11:07:23 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/how-to-get-a-handle-to-the-updated-backend-document-without-re-opening-the-ui-document-r8.5.1</link>
<category>design</category>
<dc:creator>Cor Eigenhuis</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/how-to-get-a-handle-to-the-updated-backend-document-without-re-opening-the-ui-document-r8.5.1?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/how-to-get-a-handle-to-the-updated-backend-document-without-re-opening-the-ui-document-r8.5.1</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">While working on a project for a customer we've encountered a strange behaviour when trying to get a handle to the backend version of an open document in de UI. Below is a small case example with our workaround.</font><font size=3 face="sans-serif"> </font><font size=2 face="sans-serif"><strong><br /> <br /> Workflow: </strong><br /> An ui document (not in edit-mode) is updated by code run from an inview-edit code on a response document (&quot;Grondstof&quot;) within the embedded view on the ui document (A). These response document are automatically created by action &quot;B&quot;. <br /> <br /> A. Remove response document and update the parent (current ui) document by removing the &quot;Grondstof&quot; number (unique number for the child) from an array. <br /> B. Runs a script which adds on or more new &quot;Grondstof&quot; responses. The array on the parent document is used for making sure no double response documents are created (the array has some other uses too). </font><font size=3 face="sans-serif"><br /> </font><font size=3><br /> </font><img  alt="Image:How to get a handle to the updated backend document without re-opening the ui document" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/how-to-get-a-handle-to-the-updated-backend-document-without-re-opening-the-ui-document-r8.5.1/content/M2?OpenElement" /><font size=2 face="sans-serif"><strong><br /> <br /> Problem: </strong><br /> When running the script for action &quot;B&quot;, getting the backend document by using uidoc.Document is not satisfactory. The backend document did not receive the updates by the inviewedit. On the screenshot below you can clearly see a difference, even though all code is referring to the same document. </font><font size=3 face="sans-serif"><br /> </font><font size=3><br /> </font><img  alt="Image:How to get a handle to the updated backend document without re-opening the ui document" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/how-to-get-a-handle-to-the-updated-backend-document-without-re-opening-the-ui-document-r8.5.1/content/M3?OpenElement" /><font size=2 face="sans-serif"><strong><br /> <br /> Solution: </strong><br /> So instead of getting the backend document by using uidoc.Document, try: <em><br /> Set doc = unidview.GetDocumentByKey(Cstr(uidoc.Document.UniversalID)) </em><br /> <br /> Make sure that the view 'unidview' is sorted on the UNID of the document(s) (with <em>@Text(@DocumentUniqueID)</em>). </font> <br /><font size=2 face="sans-serif">This will make sure that your document contains the correct data, and that a handle can be made.</font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/how-to-get-a-handle-to-the-updated-backend-document-without-re-opening-the-ui-document-r8.5.1</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/how-to-get-a-handle-to-the-updated-backend-document-without-re-opening-the-ui-document-r8.5.1?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Mimic multiple signature support with stationaries</title>
<pubDate>Tue, 2 Mar 2010 12:13:57 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/mimic-multiple-signature-support-with-stationaries</link>
<category>mail</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/mimic-multiple-signature-support-with-stationaries?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/mimic-multiple-signature-support-with-stationaries</guid>
<content:encoded><![CDATA[ Normally we would advise against changing the default mail template. It demands additional focus and testing when upgrading the Domino server. In this case we went against our own advice, and made changes to a mail template so that multiple people can work within it. A team-box if you like. <br /> <br /> Now there is an <a href=http://www.openntf.org/projects/pmt.nsf/3f2929edba6ef2808625724c00585215/5b861d801d0683b18625733a0078fda6!OpenDocument><span style="text-decoration:underline">excellent teambox template available on openntf.org</span></a>. But the design of that template is very oldschool, and the client wanted the new and improvement look of Lotus Notes 8.5. Altough we would like to contribute add upgrade the design of the openntf template, unfortunatly the time is not on our side at the moment. Therefor the client and AASHQ have decided to update the current 8.5.1 mailtemplate. <strong><br /> <br /> Multiple signatures</strong> <br /> The client wanted to work with multiple people in the team-mailboxes, but would like to keep their own identity in the signatures. The client is custom to using stationaries and work from there, but when replying and forwarding a message this option couldn't be used. We have created an additional view in template called '(StationaryLU)'. This is a copy of the standard view '(Stationary)'. We only removed the first three columns, as you can see in the image. We did this for a more simple lookup in the following code, you can also adjust the lookup-code to mimic the first three columns. <br /> <br /> <img  alt="Image:Mimic multiple signature support with stationaries" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/mimic-multiple-signature-support-with-stationaries/content/M2?OpenElement" /><br /> <br /> The users are creating their stationaries (signatures) and save them with a name in the format 'Handtekening&lt;space&gt;Full Name'. The word 'Handtekening' is Dutch for 'Signature'. We made the 'lookup-name' as user-friendly as possible as you can see. <br /> <br /> Then we altered the sub 'InsertSignature' in the script library 'CoreEmailClasses', to the code below: <br /> <br />  &nbsp; &nbsp; <strong>Const</strong> msgTxt = <em>&quot;This file contains one or more contacts. &nbsp;In Notes double-click the &quot;</em> &amp;_ <br />  &nbsp; &nbsp; &nbsp;<em>&quot;attachment to add to your Contacts. &nbsp;In other mail systems you may have to save the &quot;</em>&amp;_ &nbsp; <br />  &nbsp; &nbsp; &nbsp;<em>&quot;file to your desktop and then import it into your Contacts.&quot;</em> <br /> <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> s <strong>As</strong> <strong>New</strong> NotesSession <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> db <strong>As</strong> NotesDatabase <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> profileDoc <strong>As</strong> NotesDocument <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> wksp <strong>As</strong> <strong>New</strong> NotesUIWorkspace <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> uiDoc <strong>As</strong> NotesUIDocument <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> nam <strong>As</strong> Notesname <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> view <strong>as</strong> NotesView <br />  &nbsp; &nbsp; &nbsp;<strong>Dim</strong> stationarydoc <strong>as</strong> NotesDocument <br /> <br />  &nbsp; &nbsp; &nbsp;<strong>Set</strong> db = s.CurrentDatabase <br />  &nbsp; &nbsp; &nbsp;<strong>Set</strong> profileDoc = db.GetProfileDocument(<em>&quot;CalendarProfile&quot;</em>) <br />  &nbsp; &nbsp; &nbsp;<strong>Set</strong> view = db.GetView(<em>&quot;(StationeryLU)&quot;</em>) <br />  &nbsp; &nbsp; &nbsp;<strong>Set</strong> uiDoc = wksp.CurrentDocument <br />  &nbsp; &nbsp; &nbsp;<strong>Set</strong> nam = <strong>New</strong> NotesName(s.UserName) <br />  &nbsp; &nbsp; &nbsp;<strong>Set</strong> stationarydoc = view.GetDocumentByKey(<em>&quot;Handtekening &quot;</em> &amp; nam.Common,<strong>True</strong>) <br /> <br />  &nbsp; &nbsp; &nbsp;<strong>If</strong> <strong>Not</strong> stationarydoc <strong>Is</strong> <strong>Nothing</strong> <strong>Then</strong> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>Call</strong> uidoc.ImportItem(stationarydoc,<em>&quot;Body&quot;</em>) <br />  &nbsp; &nbsp; &nbsp;<strong>Else</strong> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>If</strong> profileDoc.HasItem(<em>&quot;Signature_Rich&quot;</em>) <strong>Then</strong> <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>If</strong> uidoc.Document.HasItem(<em>&quot;$VAttach&quot;</em>) <strong>Then</strong> &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>Call</strong> uidoc.FieldSetText(<em>&quot;body&quot;</em>, msgTxt + <strong>Chr</strong>(<em>10</em>) + <strong>Chr</strong>(<em>10</em>)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>End</strong> <strong>If</strong> &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>Call</strong> uiDoc.ImportItem(profileDoc, <em>&quot;Signature_Rich&quot;</em>) <br />  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<strong>End</strong> <strong>If</strong> &nbsp; &nbsp; &nbsp; &nbsp; <br />  &nbsp; &nbsp; &nbsp;<strong>End</strong> <strong>If</strong> &nbsp; &nbsp;<br /> <br /> You can find the code within a script variable, which will be 'Executed' later on in the code. <br /> <br /> <img  alt="Image:Mimic multiple signature support with stationaries" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/mimic-multiple-signature-support-with-stationaries/content/M3?OpenElement" /><br /> <br /> The code is a minimal adjustment to the original, and we only check the stationaryLU view for an entry with the name based upon the username. If this document is found we use the NotesUIDocument.ImportItem method to succesfully imported the Richtext Item. You can also update the (InsertSignature) agent with the above code. <br /> <br /> As you can see, if no stationary document has been found, the default signature is used (when available). A simple adjustment with great impact for our client's users.   ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/mimic-multiple-signature-support-with-stationaries</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/mimic-multiple-signature-support-with-stationaries?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>doc.Send versus doc.CopyToDatabase(serverOutbox) method</title>
<pubDate>Mon, 22 Feb 2010 10:40:23 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/doc.send-versus-doc.copytodatabaseserveroutbox-method</link>
<category>design</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/doc.send-versus-doc.copytodatabaseserveroutbox-method?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/doc.send-versus-doc.copytodatabaseserveroutbox-method</guid>
<content:encoded><![CDATA[ Normally documents are mailed by 'doc.Send' class and method.  <br />You can also use the doc.CopyToDatabase method. This method is very handy for scheduled or signed mail agents. In this way you always can alter the from and principal field. With the doc.Send method most of the time the current user will be replacing these values. With the mail.box method the principal and from fields remain the same. <br /> <br />This method works when the field note.Recipients is set to value X. Where "note" is the document to send and "X" is the e-mail address(es).  <br /> <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim serverOutbox As NotesDatabase <br />&nbsp; &nbsp; &nbsp; &nbsp; Set serverOutbox = New NotesDatabase( db.Server, "mail.box" ) <br /> <br />&nbsp; &nbsp; &nbsp; &nbsp; 'Build a document ... <br /> <br />&nbsp; &nbsp; &nbsp; &nbsp; 'Copy this document to the server's outgoing mailbox. <br />&nbsp; &nbsp; &nbsp; &nbsp; Call note.Save( True, True, True ) <br />&nbsp; &nbsp; &nbsp; &nbsp; Call note.CopyToDatabase(serverOutbox) <br />  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/doc.send-versus-doc.copytodatabaseserveroutbox-method</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/doc.send-versus-doc.copytodatabaseserveroutbox-method?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>DocType per form in a database</title>
<pubDate>Mon, 22 Feb 2010 09:51:29 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010095132FVECE8.htm</link>
<category>doctype</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010095132FVECE8.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010095132FVECE8.htm</guid>
<content:encoded><![CDATA[ As of Domino 7.0.2 there is a new field that allows you to set the doctype on a form basis. Just add a computed for display field called $$HTMLFrontMatter, with a doctype formula like: <br /> <br /> &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot; \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;&quot; + @NewLine  <p>Before this field it was necessary to configure your whole Lotus Domino server to one of the following settings: <br /> <br /> Set the DominoCompleteDoctype environment variable in notes.ini. It has 3 different values: <br /> 0 = &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;<br /> 1 = &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;<br /> 2 = &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;<br /> <br /> A value of zero is the default/old behavior, with all the problems that it creates. <br /> For more information about doctypes, see the article written by <a href=http://www.alistapart.com/articles/doctype/><span style="text-decoration:underline">Jeffrey Zeldman of A List Apart</span></a>.   ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/22-02-2010095132FVECE8.htm</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010095132FVECE8.htm?opendocument&amp;comments</wfw:comment>
</item>
<item>
<title>Refreshing an embedded view</title>
<pubDate>Mon, 22 Feb 2010 09:42:51 +0200</pubDate>
<link>https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010094254FVEC8V.htm</link>
<category>design</category>
<dc:creator>Ferdi Verlaan</dc:creator>
<comments>https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010094254FVEC8V.htm?opendocument&amp;comments</comments>
<guid isPermaLink="true">https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010094254FVEC8V.htm</guid>
<content:encoded><![CDATA[ <font size=2 face="sans-serif">If you want an embedded view to refresh then please add the following code to a button, action or other component that triggers the refresh:</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=blue face="sans-serif">Call </font><font size=2 face="sans-serif">ws.ViewRefresh</font><font size=3> </font><font size=2 face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=blue face="sans-serif">Call</font><font size=2 face="sans-serif"> uidoc.RefreshHideFormulas</font><font size=3> </font><font size=2 face="sans-serif"><br />  &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 color=blue face="sans-serif">Call</font><font size=2 face="sans-serif"> ws.ViewRefresh &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=3> <br /> </font><font size=2 face="sans-serif"><br /> On the embedded view itself, make sure there is a hide-when formula. If there isn't any, give the embedded view the formula: 1=0.</font><font size=3> <br /> <br /> </font><img  alt="Image:Refreshing an embedded view" border="0" src="https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010094254FVEC8V.htm/content/M2?OpenElement" /><font size=3><br /> </font><font size=2 face="sans-serif"><br /> Because this is never true, the embedded view will never be hidden, but it will be refreshed due to the &quot;RefreshHideFormulas&quot; command on the ui document.</font><font size=3> </font>  ]]></content:encoded>
<wfw:commentRss> https://blog.aashq.nl/blog/blog.nsf/dxcomments/22-02-2010094254FVEC8V.htm</wfw:commentRss>
<wfw:comment> https://blog.aashq.nl/blog/blog.nsf/dx/22-02-2010094254FVEC8V.htm?opendocument&amp;comments</wfw:comment>
</item>
</channel></rss>
