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

<channel>
	<title>Windows CE Programming &#187; php</title>
	<atom:link href="http://www.hjgode.de/wp/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hjgode.de/wp</link>
	<description>Windows Mobile Development and usage</description>
	<lastBuildDate>Fri, 03 Feb 2012 08:53:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<!--CodeProjectFeeder channel--><category>CodeProject</category><generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Develop an OpenCart vqmod to alter the confirm eMail</title>
		<link>http://www.hjgode.de/wp/2011/12/13/develop-an-opencart-vqmod-to-alter-the-confirm-email/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=develop-an-opencart-vqmod-to-alter-the-confirm-email</link>
		<comments>http://www.hjgode.de/wp/2011/12/13/develop-an-opencart-vqmod-to-alter-the-confirm-email/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 05:21:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[OpenCart]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abmahnung]]></category>
		<category><![CDATA[impressum]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[opencart]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[vqmod]]></category>
		<category><![CDATA[wiederrufsbelehrung]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=1249</guid>
		<description><![CDATA[Hello [updated 21. dec 2011, see code change] I had the need to alter the OpenCart (1.5.1.3) order confirmation eMail to include some legal text (german Impressum (company contact) and Wiederrufsbelehrung, Stichwort Abmahnung) and to remove the display of the IP. To be able to watch and debug my code additions, I had to setup [...]]]></description>
			<content:encoded><![CDATA[<p>Hello</p>
<p>[updated 21. dec 2011, see code change]</p>
<p>I had the need to alter the OpenCart (1.5.1.3) order confirmation eMail to include some legal text (german Impressum (company contact) and Wiederrufsbelehrung, Stichwort Abmahnung) and to remove the display of the IP.</p>
<p>To be able to watch and debug my code additions, I had to setup a development system for the OpenCart shop instance:</p>
<p><strong><span id="more-1249"></span>Development system Windows 7 (x64)<br />
opencart 1.5.1.3 + german language extension and vqmod</strong></p>
<ul>
<li>Installed xampp17</li>
<li>copied online opencart dir to xampp/htdocs/opencart</li>
<li>edited opencart/config.php and opencart/admin/config.php</li>
<li>did a mysql export of the online database (phpMyAdmin)</li>
<li>imported mysql backup to development xampp mysql</li>
<li>installed netbeans</li>
<li>installed xdebug (xampp/php/php.ini changes and xampp/php/ext/xdebug_php)</li>
<li>removed opencart/vqmod xml files that alter the opencart URLs</li>
<li><del>installed smtp4dev by copying the exe to xampp/smtp4dev </del></li>
<li><del>started smtp4dev</del></li>
</ul>
<p>changed to papercut as smtp4dev is not UTF-8 compatible</p>
<ul>
<li>downloaded and installed papercut (http://papercut.codeplex.com/releases/view/41337)</li>
<li>started papercut</li>
<li>start xampp apache and mysql</li>
<li>check if localhost ports (80, 25, 9000) are in use (tcpmon by sysinternals), possibly kill or disable processes or change port for xdebug</li>
<li>check if browser can load http://localhost/opencart</li>
<li>start netbeans, create new project and import existing php code</li>
<li>check, if you can debug: start a debug of the netbeans php project, debugger will stop at first line</li>
<li>change netbeans setting PHP-debug stop at first line</li>
<li>place a break point in confirm function of opencart\catalog\model\checkout\order.php</li>
<li>test if debugger breaks when you place an order and press (Confirm Order)</li>
<li>possibly disable opencart SEO friendly URL setting</li>
<li>if URLs are changed (ie using vqmod beop_all_clean_urls_v1.0.4.xml), netbeans will have problems following the code (breakpoints will never been hit)<br />
+ready to debug+</li>
<li>Enable Charge-on-delivery payment option, testing with a paypal payment in plcae does not make sense</li>
</ul>
<p>The Confirm eMail will be generated by the confirm function inside<br />
catalog/model/checkout/order.php</p>
<p>The file<br />
catalog/language/_xy_/checkout/checkout.php<br />
has the fixed texts for the confirm eMail</p>
<p>catalog\view\_xy_\default\template\checkout\checkout.tpl</p>
<p>In order.php you can see the construction of the the main html order confirmation email template variables and also those for the plain text version. The final template can then be found in catalog/view/theme/default/mail/order_confirm.tpl.</p>
<p>First I did a direct change of order.php for testing<br />
As everything works as desired, I moved the added lines into a vqmod file which I already had ready for IP replacing.<br />
I will use two external files which hold the fixed text for the legal information:</p>
<p>opencart\catalog\view\theme\wiederruf_bottom.html<br />
opencart\catalog\view\theme\wiederruf_top.html</p>
<p>Here is my direct test code addition inside opencart\catalog\model\checkout\order.php just before<br />
if ($comment &amp;&amp; $notify) {<br />
in the confirm function:</p>
<pre lang="PHP"></pre>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Source code</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//replace footer text by impressum if german session</span></div></li><li class="li1"><div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">session</span><span class="sy0">-&gt;</span><span class="me1">data</span><span class="br0">&#91;</span><span class="st_h">'language'</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st_h">'de'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="co1">//$language-&gt;data[code]==&quot;de&quot;</span></div></li><li class="li1"><div class="de1">	<span class="co1">// files in opencart/catalog/view/theme/'</span></div></li><li class="li1"><div class="de1">	<span class="co1">//read top html part of wiederrufsbelehrung</span></div></li><li class="li1"><div class="de1">	<span class="re0">$wiederruf_top</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="re0">$wiederruf_top</span> <span class="sy0">=</span> <a href="http://www.php.net/file_get_contents"><span class="kw3">file_get_contents</span></a><span class="br0">&#40;</span><span class="re0">$filename</span><span class="sy0">=</span> DIR_TEMPLATE <span class="sy0">.</span> <span class="st_h">'wiederruf_top.html'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="co1">//read bottom html part of wiederrufsbelehrung</span></div></li><li class="li1"><div class="de1">	<span class="re0">$wiederruf_bottom</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="re0">$wiederruf_bottom</span> <span class="sy0">=</span> <a href="http://www.php.net/file_get_contents"><span class="kw3">file_get_contents</span></a><span class="br0">&#40;</span>DIR_TEMPLATE <span class="sy0">.</span> <span class="st_h">'wiederruf_bottom.html'</span><span class="br0">&#41;</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="co1">//build the company address</span></div></li><li class="li1"><div class="de1">	<span class="re0">$firmen_addresse</span> <span class="sy0">=</span></div></li><li class="li1"><div class="de1">	    <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_name'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	    <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_owner'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	    <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\r</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="st0">&quot;<span class="es1">\r</span>&quot;</span><span class="sy0">,</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="st_h">'&lt;br /&gt;'</span><span class="sy0">,</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_address'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	    <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_email'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	    <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_telephone'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	    <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_fax'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="co1">//combile top part, company address and bottom part in a new string</span></div></li><li class="li1"><div class="de1">	<span class="re0">$wiederruf</span> <span class="sy0">=</span> <span class="re0">$wiederruf_top</span> <span class="sy0">.</span> <span class="re0">$firmen_addresse</span> <span class="sy0">.</span> <span class="re0">$wiederruf_bottom</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="co1">//build the impressum (company address and contact info)</span></div></li><li class="li1"><div class="de1">	<span class="re0">$impressum</span> <span class="sy0">=</span> <span class="st_h">'Impressum:&lt;br&gt;'</span> <span class="sy0">.</span> <span class="re0">$firmen_addresse</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_name'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_owner'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	<a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\r</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="st0">&quot;<span class="es1">\r</span>&quot;</span><span class="sy0">,</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="st_h">'&lt;br /&gt;'</span><span class="sy0">,</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_address'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_email'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_telephone'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span> <span class="sy0">.</span></div></li><li class="li1"><div class="de1">	<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">config</span><span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'config_fax'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'&lt;br&gt;'</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1">	<span class="co1">//$this-&gt;config-&gt;get('config_title') . '&lt;br&gt;';</span></div></li><li class="li1"><div class="de1">	<span class="co1">//replace footer in confirm eMail by our impressum and wiederrufsbelehrung</span></div></li><li class="li1"><div class="de1">	<span class="re0">$template</span><span class="sy0">-&gt;</span><span class="me1">data</span><span class="br0">&#91;</span><span class="st_h">'text_footer'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$impressum</span> <span class="sy0">.</span> <span class="re0">$wiederruf</span><span class="sy0">;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div></div>
<p>For hiding the IP address in the order confirmation eMail I had to change several lines, please see the full vqmod file:</p>
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Source code</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.hjgode.de/wp/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><ol><li class="li1"><div class="de1"><span class="sy1">&lt;?</span>xml version<span class="sy0">=</span><span class="st0">&quot;1.0&quot;</span> encoding<span class="sy0">=</span><span class="st0">&quot;UTF-8&quot;</span><span class="sy1">?&gt;</span></div></li><li class="li1"><div class="de1">&lt;modification&gt;</div></li><li class="li1"><div class="de1">        &lt;id&gt;Replace IP and footer text in confirm eMail&lt;/id&gt;</div></li><li class="li1"><div class="de1">        &lt;version&gt;1.0.1&lt;/version&gt;</div></li><li class="li1"><div class="de1">        &lt;vqmver&gt;1.0.9&lt;/vqmver&gt;</div></li><li class="li1"><div class="de1">        &lt;author&gt;hjgode&lt;/author&gt;</div></li><li class="li1"><div class="de1">        &lt;!--</div></li><li class="li1"><div class="de1">        &lt;file name=&quot;catalog/view/theme/*/template/mail/order.tpl&quot;&gt;</div></li><li class="li1"><div class="de1">                &lt;operation&gt;</div></li><li class="li1"><div class="de1">                    &lt;search position=&quot;replace&quot;&gt;</div></li><li class="li1"><div class="de1">                         &lt;![CDATA[&lt;b&gt;<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$text_ip</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;/b&gt; <span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="re0">$ip</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;br /&gt;]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/search&gt;</div></li><li class="li1"><div class="de1">                &lt;/operation&gt;</div></li><li class="li1"><div class="de1">                &lt;operation&gt;</div></li><li class="li1"><div class="de1">                    &lt;add&gt;</div></li><li class="li1"><div class="de1">                          &lt;![CDATA[<span class="kw2">&lt;?php</span> <span class="kw1">echo</span> <span class="st_h">'-'</span><span class="sy0">;</span> <span class="sy1">?&gt;</span>&lt;br /&gt;]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/add&gt;</div></li><li class="li1"><div class="de1">                &lt;/operation&gt;</div></li><li class="li1"><div class="de1">        &lt;/file&gt;</div></li><li class="li1"><div class="de1">        --&gt;</div></li><li class="li1"><div class="de1">        &lt;file name=&quot;catalog/model/checkout/order.php&quot;&gt;</div></li><li class="li1"><div class="de1">                 &lt;operation&gt;</div></li><li class="li1"><div class="de1">                    &lt;search position=&quot;replace&quot;&gt;</div></li><li class="li1"><div class="de1">                        &lt;![CDATA[$template-&gt;data['text_ip'] = $language-&gt;get('text_new_ip');]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/search&gt;</div></li><li class="li1"><div class="de1">                    &lt;add&gt;</div></li><li class="li1"><div class="de1">                        &lt;![CDATA[$template-&gt;data['text_ip'] ='';</div></li><li class="li1"><div class="de1">                        ]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/add&gt;</div></li><li class="li1"><div class="de1">                &lt;/operation&gt;</div></li><li class="li1"><div class="de1">                &lt;operation&gt;</div></li><li class="li1"><div class="de1">                    &lt;search position=&quot;replace&quot;&gt;</div></li><li class="li1"><div class="de1">                        &lt;![CDATA[$template-&gt;data['ip'] = $order_info['ip'];]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/search&gt;</div></li><li class="li1"><div class="de1">                    &lt;add&gt;</div></li><li class="li1"><div class="de1">                        &lt;![CDATA[$template-&gt;data['ip'] = '';</div></li><li class="li1"><div class="de1">                        ]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/add&gt;</div></li><li class="li1"><div class="de1">                &lt;/operation&gt;</div></li><li class="li1"><div class="de1">                &lt;operation&gt;</div></li><li class="li1"><div class="de1">                    &lt;search position=&quot;before&quot;&gt;</div></li><li class="li1"><div class="de1">                         &lt;![CDATA[if ($comment &amp;&amp; $notify) {]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/search&gt;</div></li><li class="li1"><div class="de1">                    &lt;add&gt;</div></li><li class="li1"><div class="de1">                          &lt;![CDATA[        </div></li><li class="li1"><div class="de1">                    //replace footer text by impressum if german session</div></li><li class="li1"><div class="de1">                    if($this-&gt;session-&gt;data['language'] == 'de'){ //$language-&gt;data[code]==&quot;de&quot;</div></li><li class="li1"><div class="de1">                        // files in opencart/catalog/view/theme/'</div></li><li class="li1"><div class="de1">                        //read top html part of wiederrufsbelehrung</div></li><li class="li1"><div class="de1">                        $wiederruf_top=&quot;&quot;;  </div></li><li class="li1"><div class="de1">                        $wiederruf_top = file_get_contents($filename= DIR_TEMPLATE . 'wiederruf_top.html');</div></li><li class="li1"><div class="de1">                        //read bottom html part of wiederrufsbelehrung</div></li><li class="li1"><div class="de1">                        $wiederruf_bottom=&quot;&quot;;  </div></li><li class="li1"><div class="de1">                        $wiederruf_bottom = file_get_contents(DIR_TEMPLATE . 'wiederruf_bottom.html');</div></li><li class="li1"><div class="de1">                        //build the company address</div></li><li class="li1"><div class="de1">                        $firmen_addresse =  </div></li><li class="li1"><div class="de1">                            $this-&gt;config-&gt;get('config_name') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                            $this-&gt;config-&gt;get('config_owner') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                            str_replace(array(&quot;\r\n&quot;, &quot;\r&quot;, &quot;\n&quot;), '&lt;br /&gt;', $this-&gt;config-&gt;get('config_address')) . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                            $this-&gt;config-&gt;get('config_email') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                            $this-&gt;config-&gt;get('config_telephone') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                            $this-&gt;config-&gt;get('config_fax') . '&lt;br&gt;';</div></li><li class="li1"><div class="de1">                        //combile top part, company address and bottom part in a new string</div></li><li class="li1"><div class="de1">                        $wiederruf = $wiederruf_top . $firmen_addresse . $wiederruf_bottom;</div></li><li class="li1"><div class="de1">                        //build the impressum (company address and contact info)</div></li><li class="li1"><div class="de1">                        $impressum = 'Impressum:&lt;br&gt;' . $firmen_addresse;</div></li><li class="li1"><div class="de1">                        $this-&gt;config-&gt;get('config_name') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                        $this-&gt;config-&gt;get('config_owner') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                        str_replace(array(&quot;\r\n&quot;, &quot;\r&quot;, &quot;\n&quot;), '&lt;br /&gt;', $this-&gt;config-&gt;get('config_address')) . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                        $this-&gt;config-&gt;get('config_email') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                        $this-&gt;config-&gt;get('config_telephone') . '&lt;br&gt;' .</div></li><li class="li1"><div class="de1">                        $this-&gt;config-&gt;get('config_fax') . '&lt;br&gt;';</div></li><li class="li1"><div class="de1">                        //$this-&gt;config-&gt;get('config_title') . '&lt;br&gt;';</div></li><li class="li1"><div class="de1">                        //replace footer in confirm eMail by our impressum and wiederrufsbelehrung</div></li><li class="li1"><div class="de1">                        $template-&gt;data['text_footer'] = $impressum . $wiederruf;</div></li><li class="li1"><div class="de1">                    }]]&gt;</div></li><li class="li1"><div class="de1">                    &lt;/add&gt;</div></li><li class="li1"><div class="de1">                &lt;/operation&gt;</div></li><li class="li1"><div class="de1">         &lt;/file&gt;</div></li><li class="li1"><div class="de1">&lt;/modification&gt;</div></li></ol></pre></div></div>
<pre></pre>
<pre></pre>
<p>For this vqmod you need the two htm files wiederruf_bottom.html and wiederruf_top.html in place.</p>
<p>The legal address is read from the opencart store settings using $this-&gt;config-&gt;get('foo'). The names for foo are found in the opencart database itself inside the setting table. The address is then merged in between the top and bottom legal text. The top and bottom legal text files are just html files.</p>
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=147" title="Downloaded 21 times">vqmod file and top and bottom html</a> - vqmod file set um Abmahnungen wegen fehlendem Impressum, fehlender Wiederrufsbelehrung und Anzeige der IP-Adresse zu vermeiden. (Hits: 21, size: 4.22 kB)
<p>updated vqmod file: <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=148" title="Downloaded 14 times">updated </a> -  (Hits: 14, size: 1.04 kB)</p>
<p>&amp;nbsp;</p>
<p>&nbsp;</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F12%2F13%2Fdevelop-an-opencart-vqmod-to-alter-the-confirm-email%2F&amp;title=Develop+an+OpenCart+vqmod+to+alter+the+confirm+eMail" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F12%2F13%2Fdevelop-an-opencart-vqmod-to-alter-the-confirm-email%2F&amp;title=Develop+an+OpenCart+vqmod+to+alter+the+confirm+eMail" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F12%2F13%2Fdevelop-an-opencart-vqmod-to-alter-the-confirm-email%2F&amp;title=Develop+an+OpenCart+vqmod+to+alter+the+confirm+eMail" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F12%2F13%2Fdevelop-an-opencart-vqmod-to-alter-the-confirm-email%2F&amp;T=Develop+an+OpenCart+vqmod+to+alter+the+confirm+eMail" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F12%2F13%2Fdevelop-an-opencart-vqmod-to-alter-the-confirm-email%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F12%2F13%2Fdevelop-an-opencart-vqmod-to-alter-the-confirm-email%2F&amp;t=Develop+an+OpenCart+vqmod+to+alter+the+confirm+eMail" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.hjgode.de/wp/2011/12/13/develop-an-opencart-vqmod-to-alter-the-confirm-email/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin to feed CodeProject Technical Blogs</title>
		<link>http://www.hjgode.de/wp/2010/03/01/wordpress-plugin-to-feed-codeproject-technical-blogs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-plugin-to-feed-codeproject-technical-blogs</link>
		<comments>http://www.hjgode.de/wp/2010/03/01/wordpress-plugin-to-feed-codeproject-technical-blogs/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 14:01:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[CodeProject Technical Blogs]]></category>
		<category><![CDATA[codeprojectfeeder]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=366</guid>
		<description><![CDATA[A WordPress plugin for CodeProject Technical Blogs feeding.]]></description>
			<content:encoded><![CDATA[<h1><strong>CodeProjectFeeder</strong></h1>
<p>Update 3. sept. 2011:<br />
Fixed a bug according to WeBiscuit&#8217;s post at the <a title="Codeproject CodeprojectFeederPlugin" href="http://www.codeproject.com/Articles/62235/Wordpress-Plugin-to-feed-CodeProject-Technical-Blo" target="_blank">CodeProject Technical Blog Article</a>. See download of version 1.11.</p>
<p>In the beginning, <a href="http://www.codeproject.com/Messages/3326349/Re-Any-HowTo-for-Add-your-technical-blog-from-Word.aspx" target="_blank">everything was done manually</a>.</p>
<p>After the third time I had to edit feed-rss2.php of wordpress to fulfill CodeProjects Technical Blogs requirements I now wrote my first (and last?) wordpress plugin.</p>
<p>As you may know, CodeProject allows you to publish articles through your current blog. See here for the <a href="http://www.codeproject.com/script/Articles/BlogFAQ.aspx" target="_blank">FAQ</a>.</p>
<p>As I am using wordpress, I started some time ago to submit blog entries into CodeProject. I had to find out myself, where to change which file.</p>
<h3>Limit published articles</h3>
<p>To limit the range of blog entries that are published at CodeProject Technical Blogs I use a <a href="http://wordpress-as-cms.com/permalinks/hidden-feeds-categories-tags-authors-search-terms-links/" target="_blank">&#8216;hidden&#8217; feature</a> and created a category named &#8216;CodeProject&#8217; in my WordPress blog. On <a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=1522794" target="_blank">my Technical Blogs</a> site in CodeProject I then used <a class="linkification-ext" title="Linkification: http://www.hjgode.de/wp/category/codeproject/feed/" href="http://www.hjgode.de/wp/category/codeproject/feed/">http://www.hjgode.de/wp/category/codeproject/feed/</a> for the feed input. Now only the articles marked with WordPress category &#8216;codepoject&#8217; are feed to CodeProject.</p>
<h3>Manually changes required in WordPress for CodeProject Technical Blogs</h3>
<p>In feed-rss2.php I always had to add a &lt;category&gt;CodeProject&lt;/category&gt; line below &lt;channel&gt;. Further I had to change the footer.php of the wordpress theme Win7blog that I use. There I added a rel=&#8221;tag&#8221; line as recommended by CodeProject.</p>
<h3>The pain of doing it again and again</h3>
<p>Now, the first manual change has to be done everytime you update your wordpress release. I had to to this at least three times before I start now with a plugin to I avoid changing the file again manually.</p>
<h3>The idea of a WordPress plugin</h3>
<p>I never wrote a WordPress plugin before, but I did some html, php and mysql coding before (ie the calendar on <a href="http://fewo-britta.de/kalender/index.php" target="_blank">www.fewo-britta.de</a> or the static pages at <a href="www.derbiedermann.de" target="_blank">www.derbiedermann.de</a>, which are generated from a db). But the learning curve was hard and it took me several hours to get the plugin working. I started with the plugin described at DevLounge in there &#8220;<a href="http://www.devlounge.net/extras/how-to-write-a-wordpress-plugin" target="_blank">How to write a WordPress plugin</a>&#8221; series. The article was the <strong>only </strong>one I could find that describes wordpress plugin development from scratch with a <strong>working</strong> example.</p>
<p>As I had problems adopting the code to my needs, especially the AdminPage, I had to rewrite the code a little bit.</p>
<p><span id="more-366"></span></p>
<h3>My first WordPress plugin</h3>
<p>OK, what does the plugin do?</p>
<p><a href="http://www.hjgode.de/wp/2010/03/01/wordpress-plugin-to-feed-codeproject-technical-blogs/codeprojectfeeder_02/" rel="attachment wp-att-367"><img class="alignnone size-full wp-image-367" title="codeprojectfeeder_02" src="http://www.hjgode.de/wp/wp-content/uploads/2010/03/codeprojectfeeder_02.gif" alt="" width="692" height="406" /></a></p>
<p>The plugin inserts a rel=&#8221;tag&#8221; in your blogs page footer. This may look more or less good, depending on the theme you use. The footer always appears outside the themes footer. I could not find a way to let it appear inside the themes footer, if the theme uses the action hook wp_footer() ouside there footer block (here after the &lt;/div&gt;:</p>
<pre>&lt;div id="footer"&gt;
 &lt;p&gt;&lt;?php bloginfo('name'); ?&gt;@&lt;?php echo date('Y'); ?&gt;
 &lt;br&gt;
 &lt;a href="&lt;?php bloginfo('home') ?&gt;/"&gt;&lt;?php bloginfo('home'); ?&gt;&lt;/a&gt;
 &lt;br&gt;
 Designed by &lt;a href="<a class="linkification-ext" title="Linkification: http://www.kamiyeye.com/" href="http://www.kamiyeye.com/">http://www.kamiyeye.com/</a>"&gt;kamiyeye&lt;/a&gt;
 &lt;br&gt;
 &lt;?php StatPress_Print("%totalvisits% Hits."); ?&gt;
 &lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;&lt;!-- #wrapper .hfeed --&gt;

&lt;?php wp_footer(); ?&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>The plugin provides some checkbox options, so you can a) hide the rel=&#8221;tag&#8221; or b) dont use it at all.<br />
To feed your publications to CodeProject technical blogs, you are recommended to add a category tag with the contents CodeProject in your RSS2 feed. To get this done by the plugin it installs two action hooks: the channel one: rss2_head and the &#8216;item&#8217; one called rss2_item.</p>
<p>Here are the hooks I use in the plugin:</p>
<pre>//Actions and Filters
if (isset($hgo_codeprojectfeeder)) {
 //Actions
 add_action('admin_menu', 'CodeProjectFeeder_ap');
 add_action('wp_footer', array(&amp;$hgo_codeprojectfeeder, 'addFooterCode'), 1);
 add_action('activate_codeprojectfeeder/codeprojectfeeder.php', array(&amp;$hgo_codeprojectfeeder, 'init'));
 add_action('rss2_head', array(&amp;$hgo_codeprojectfeeder, 'addChannelCode'), 1);
 add_action('rss2_item', array(&amp;$hgo_codeprojectfeeder, 'addItemCode'), 1);
 //Filters
}</pre>
<p>The first hook is for the &#8216;Admin&#8217; settings page.<br />
The second one for the blog footer page.<br />
The &#8216;activate_&#8230;&#8217; hook is for initializing the plugin.<br />
The rss2_head and rss2_item hooks are used to insert &lt;category&gt;codeproject&lt;/category&gt; into the RSS2 header (&lt;channel&gt;) or &lt;item&gt; code.</p>
<h3>Formatting of the rel=&#8221;tag&#8221; link</h3>
<p>If you dont like the formatting of the rel=&#8221;tag&#8221; link, you can edit the plugin file codeprojectfeeder.php from inside WordPress, just click &#8220;Edit&#8221; below the &#8220;CodeProject Feeder Plugin&#8221; on the Manage Plugins page in your WordPress installation:</p>
<p><a href="http://www.hjgode.de/wp/2010/03/01/wordpress-plugin-to-feed-codeproject-technical-blogs/codeprojectfeeder_01/" rel="attachment wp-att-368"><img class="alignnone size-full wp-image-368" title="codeprojectfeeder_01" src="http://www.hjgode.de/wp/wp-content/uploads/2010/03/codeprojectfeeder_01.gif" alt="" width="727" height="423" /></a></p>
<p><a href="http://www.hjgode.de/wp/2010/03/01/wordpress-plugin-to-feed-codeproject-technical-blogs/codeprojectfeeder_04/" rel="attachment wp-att-371"><img class="alignnone size-full wp-image-371" title="codeprojectfeeder_04" src="http://www.hjgode.de/wp/wp-content/uploads/2010/03/codeprojectfeeder_04.gif" alt="" width="723" height="478" /></a></p>
<pre>/*
 Adds the rel TAG to the footer
 */
 function addFooterCode() {
   $content = '';
   //debug
   //echo '&lt;!-- addFooterCode was called --&gt;';
   $devOptions = $this-&gt;getAdminOptions();
   if ($devOptions['use_reltag'] == "true") {
     if($devOptions['hide_reltag'] == "true"){
       //using the style option you can adjust the link appearance
       $content = '&lt;a <strong>style="display:none; text-align:center; font-size:x-small; "</strong> href="'.stripslashes($devOptions['reltag_content']).'" rel="tag"&gt;CodeProject&lt;/a&gt;';
       echo $content;
     }
     else{
       $content = '&lt;a <strong>style=" text-align:center; font-size:x-small; "</strong> href="'.stripslashes($devOptions['reltag_content']).'" rel="tag"&gt;CodeProject&lt;/a&gt;';
       echo $content;
     }
   }
 }</pre>
<p>You can change the appearance of the footer text with the css inline style statements, as there are already &#8220;text-align:center; font-size:x-small;&#8221;</p>
<p>With the other options of the plugins admin settings page you specify, if you like to have the category tag within channel for all pubilcations or inside every item. You should not use both, it does not make sense.</p>
<h3>Plugin uses checkboxes instead of options</h3>
<p>As you can see from the codeprojectfeeder.php code, I have changed the way yes/no options are used in the settings admin form. Instead of the very long, hard to manage lines, I use the shorter form and checkboxes:</p>
<pre>&lt;p&gt;&lt;INPUT TYPE="CHECKBOX" id="codeprojectfeederUseRelTag" name="codeprojectfeederUseRelTag" value="true" &lt;?php if ($devOptions['use_reltag'] == "true") { echo 'CHECKED'; }?&gt;&gt;Use rel tag in footer&lt;/p&gt;</pre>
<p>instead of</p>
<pre>&lt;p&gt;&lt;label for="devloungeHeader_yes"&gt;&lt;input type="radio" id="devloungeHeader_yes" name="devloungeHeader" value="true" &lt;?php if ($devOptions['show_header'] == "true") { _e('checked="checked"', "DevloungePluginSeries"); }?&gt; /&gt; Yes&lt;/label&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;label for="devloungeHeader_no"&gt;&lt;input type="radio" id="devloungeHeader_no" name="devloungeHeader" value="false" &lt;?php if ($devOptions['show_header'] == "false") { _e('checked="checked"', "DevloungePluginSeries"); }?&gt;/&gt; No&lt;/label&gt;&lt;/p&gt;</pre>
<p>You can download the codeprojectfeeder plugin as zip: <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=81" title="Downloaded 195 times">CodeProjectFeeder</a> - A Wordpress plugin (Hits: 195, size: 3.38 kB)</p>
<p>Version 1.11: <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=141" title="Downloaded 19 times">CodeprojectFeeder 1.11</a> - A wordpress plugin (Hits: 19, size: 3.53 kB)</p>
<h3>Development and debugging</h3>
<p>As you can see in codeprojectfeeder.php, there are some comment lines with a //debug line before. I used these during development to find my typos and bugs.</p>
<p>The plugin was tested on a lampp system (an Acer Aspire One A150 netbook), a windows xampp system and finally in my blog. Just be warned that due to caches or whatever of the testing lampp/xampp systems, sometimes the output was not altered and nothing changed, although source code was changed. I had to restart apache/mysql to get correct results. The RSS2 feed was sometimes cached by firefox/ie and was hard to debug, as the contents did not change although the source code was changed.</p>
<h2>Installation</h2>
<p>Just unzip the files into a dir called codeprojectfeeder below your wordpress wp-content/plugins dir or unzip the directory codeprojectfeeder into your wordpress plugins dir. Then Activate the plugin and select the CodeProjectFeeder settings you like.</p>
<h3>Finally</h3>
<p>Now, you and me dont need to change the feed-rss2.php file manually any more for CodeProject Technical Blogs.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F03%2F01%2Fwordpress-plugin-to-feed-codeproject-technical-blogs%2F&amp;title=WordPress+Plugin+to+feed+CodeProject+Technical+Blogs" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F03%2F01%2Fwordpress-plugin-to-feed-codeproject-technical-blogs%2F&amp;title=WordPress+Plugin+to+feed+CodeProject+Technical+Blogs" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F03%2F01%2Fwordpress-plugin-to-feed-codeproject-technical-blogs%2F&amp;title=WordPress+Plugin+to+feed+CodeProject+Technical+Blogs" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F03%2F01%2Fwordpress-plugin-to-feed-codeproject-technical-blogs%2F&amp;T=WordPress+Plugin+to+feed+CodeProject+Technical+Blogs" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F03%2F01%2Fwordpress-plugin-to-feed-codeproject-technical-blogs%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F03%2F01%2Fwordpress-plugin-to-feed-codeproject-technical-blogs%2F&amp;t=WordPress+Plugin+to+feed+CodeProject+Technical+Blogs" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.hjgode.de/wp/2010/03/01/wordpress-plugin-to-feed-codeproject-technical-blogs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

