<?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>Krishna Sunuwar</title>
	<atom:link href="http://www.krishnasunuwar.com.np/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.krishnasunuwar.com.np</link>
	<description>PHP programmer bloging programming, open soruce technologies</description>
	<lastBuildDate>Mon, 02 Aug 2010 06:55:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Back to school</title>
		<link>http://www.krishnasunuwar.com.np/2010/08/back-to-school/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/08/back-to-school/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 14:10:12 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=365</guid>
		<description><![CDATA[After rest of four years, finally I am going back to school.  But this didn&#8217;t came easily: Started from not accepting &#8211; in 2006, I did not accepted Brain Korea Fund offered by a Korean university for Master of Engineering. After then, I keep applying for Erasmus Mundus fund and they keep on rejecting my [...]]]></description>
			<content:encoded><![CDATA[<p>After rest of four years, finally I am going back to school.  But this didn&#8217;t came easily:</p>
<ul>
<li>Started from not accepting &#8211; in 2006, I did not accepted Brain Korea Fund offered by a Korean university for Master of Engineering.</li>
<li>After then, I keep applying for Erasmus Mundus fund and they keep on rejecting my application.</li>
<li>In search of alternative universities, I exchange 200+ emails  corresponding. But still didn&#8217;t find best fit.</li>
<li>Evaluating MCA/MBA offering in some finest engineering colleges from Bangalore and changed mind not to go India.</li>
</ul>
<p>The best thing is that, I learnt so many things that no universities can teach in this period of four years &#8211; working with people from different background, culture, country and being pain in ass on the problem which I know no right solution.</p>
<p>Finally checking option in Nepalese colleges, <a href="http://www.aim.edu.np/" target="_blank">Ace</a> become my choice:</p>
<ul>
<li>Executive MBA, designed to best fit to working managers like me.</li>
<li>Evening shifts class, that still allow me work and earn a million box (haa).</li>
<li>Ranked best in country.</li>
</ul>
<p>And, I hope it will enhance managerial skill and help to acheive entrepreneurial desire.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/08/back-to-school/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0 and DISQUS</title>
		<link>http://www.krishnasunuwar.com.np/2010/07/wordpress-3-0-and-disqus/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/07/wordpress-3-0-and-disqus/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 14:24:09 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=358</guid>
		<description><![CDATA[Till date, I am still using WordPress 2.9. Today just got thought to upgrade to WordPress 3.0. It really surprise me that upgrade process amazingly easy, it just happened in one click and nothing is broken (Goto WordPress Admin -&#62; Click on update link -&#62; Select auto-update). There&#8217;s no doubt that WordPress 3.0 way better [...]]]></description>
			<content:encoded><![CDATA[<p>Till date, I am still using WordPress 2.9. Today just got thought to upgrade to WordPress 3.0. It really surprise me that upgrade process amazingly easy, it just happened in one click and nothing is broken (Goto WordPress Admin -&gt; Click on update link -&gt; Select auto-update). There&#8217;s no doubt that WordPress 3.0 way better then earlier version. Among lot of newly introduced features, I like:</p>
<ol>
<li>Menu Management</li>
<li>Multi-site</li>
<li>Taxnomy</li>
<li>Custom type post</li>
</ol>
<p>See complete guide <a href="http://bit.ly/9Glcuh">http://bit.ly/9Glcuh</a> <em>(Although none of above are really use of mine so far)</em></p>
<p>I always used to think way to aggregate comments (of post) which spread throughout different social network. Later, I found some nice tools like <a href="http://disqus.com">DISQUS</a>, <a href="http://aboutecho.com/">Echo</a>, <a href="http://intensedebate.com/">IntenseDebate </a>and <a href="http://livefyre.com/">Livefyre</a>. Two of them are realtime and not free, two of them are free (possibly not realtime). I just registered and integrate with <a href="http://disqus.com">DISQUS</a> (is not realtime, ops sorry, Ro Gupta say it&#8217;s real time but for VIP only). I am gonna see some days, how it goes. If it doesn&#8217;t go as I expect, I&#8217;ll write my own.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/07/wordpress-3-0-and-disqus/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Phapar dhido and nepali kukhurako masu</title>
		<link>http://www.krishnasunuwar.com.np/2010/06/phapar-dhido-and-nepali-kukhurako-masu/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/06/phapar-dhido-and-nepali-kukhurako-masu/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 16:41:50 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=352</guid>
		<description><![CDATA[As title speaks &#8211; one of my favorite Nepali food.]]></description>
			<content:encoded><![CDATA[<p>As title speaks &#8211; one of my favorite Nepali food.</p>
<p><img title="Dhido" src="http://i70.photobucket.com/albums/i88/s2krish/blog/6891723_n.jpg" alt="Dhido" width="550px" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/06/phapar-dhido-and-nepali-kukhurako-masu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chandi 2067 (Shyandar Sil, Sakela, Ubhauli)</title>
		<link>http://www.krishnasunuwar.com.np/2010/05/chandi-2067-shyandar-sil-sakela-ubhauli/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/05/chandi-2067-shyandar-sil-sakela-ubhauli/#comments</comments>
		<pubDate>Sun, 30 May 2010 01:49:39 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=350</guid>
		<description><![CDATA[Had a great time in Tudikhel, dancing Chandi. It&#8217;s also known as Shyandar Sil, Sakela, Ubhauli.]]></description>
			<content:encoded><![CDATA[<p>Had a great time in Tudikhel, dancing Chandi. It&#8217;s also known as Shyandar Sil, Sakela, Ubhauli.<br />
<img src="http://i70.photobucket.com/albums/i88/s2krish/blog/DSC_1870.jpg" alt="Chandi 2067" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/05/chandi-2067-shyandar-sil-sakela-ubhauli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iDEAL Advance PHP Integration</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/ideal-advance-php-integration/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/ideal-advance-php-integration/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 05:55:58 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Payment Gateway]]></category>
		<category><![CDATA[iDEAL]]></category>
		<category><![CDATA[ING]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=341</guid>
		<description><![CDATA[iDEAL Advance PHP integration is not that tough but it will be tough when you miss documentation. Before you begin to write code, read &#8220;iDEAL_General_EN_v2.1.pdf&#8221;, Topic 3.4. Below is summery diagram. You should be aware of general configuration part before you can begin this portion of code. Read Topic 3.3 in &#8220;iDEAL_Advanced_PHP_EN_V2.2.pdf&#8221;. In brief it [...]]]></description>
			<content:encoded><![CDATA[<p>iDEAL Advance PHP integration is not that tough but it will be tough when you miss documentation. Before you begin to write code, read &#8220;iDEAL_General_EN_v2.1.pdf&#8221;, Topic 3.4. Below is summery diagram.<br />
<img src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_advance_php.jpg" title="iDEAL Advance PHP Integration"></p>
<p>You should be aware of general configuration part before you can begin this portion of code. Read Topic 3.3 in &#8220;iDEAL_Advanced_PHP_EN_V2.2.pdf&#8221;.</p>
<p>In brief it works in following way:</p>
<ol>
<li>Make directory request (Get Bank list, Issuer list is what they called)</li>
<li>Make Transaction Request and redirected to iDEAL/bank)</li>
<li>Make Status Request (This is after iDEAL/bank redirect to webshop)</li>
</ol>
<p><strong>1) Directory Request</strong></p>
<p>Directory Request means you are fetching Issuer List (List of banks) from iDEAL. This is list of banks which are associated with iDEAL and making payment from these banks is possible. Below is code, how can you fetch Issuer List:</p>
<div class="geshi php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$ideal_connector</span> <span class="sy0">=</span> <span class="kw2">new</span> iDEALConnector<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> <span class="re1">$ideal_connector</span><span class="sy0">-&gt;</span><span class="me1">GetIssuerList</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">errorMessage</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorCode</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorCode</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorMsg</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$consumerMessage</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$IssuerList</span> <span class="sy0">=&amp;</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getIssuerFullList</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>If you see line number 3, I have made little bit changes. Original iDEAL document has </p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span> <span class="sy0">!</span> <span class="re1">$response</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="sy0">,</span></div>
</li>
</ol>
</div>
<p>There&#8217;s no way that $response is false on failure because $ideal_connector->GetIssuerList() returns ErrorRespose Object. So when error is returned by Get $ideal_connector->IssuerList(), you&#8217;ll encounter error in next line i.e. $response->getIssuerFullList() because ErrorResponse object do not have getIssuerFullList().</p>
<p>Once you fetch Issuer Lists (Banks), let end user select his/her bank. HTML code looks like below:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;form method=&quot;post&quot; action=&quot;&quot; id=&quot;form1&quot; name=&quot;form1&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;td valign=&quot;top&quot; class=&quot;form-label&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;&lt;select name=&quot;bank&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;option value=&quot;&quot;&gt;Select Your Bank&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;?php foreach($banks as $bank): ?&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;&lt;option value=&quot;&lt;?php echo $bank-&gt;issuerID ?&gt;&quot;&gt;&lt;?php echo $bank-&gt;issuerName ?&gt;&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;?php endforeach; ?&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;&lt;/select&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;&lt;/td&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;&lt;td&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;input class=&quot;btn&quot; type=&quot;submit&quot; name=&quot;submit2&quot; value=&quot;Make Your Payment&quot; id=&quot;submit2&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/td&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/form&gt;</div>
</li>
</ol>
</div>
<p>Note: It is suggested to save issuer list in local cache and run DirectoryRequest query once in 24 hour.</p>
<p><strong>Transaction Request</strong><br />
End user will select banks (issuer is what they called) and submit form. Now you have to make Transaction request and redirect issuer&#8217;s website. Code looks like below</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$ideal_connector</span> <span class="sy0">=</span> <span class="kw2">new</span> iDEALConnector<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> <span class="re1">$ideal_connector</span><span class="sy0">-&gt;</span><span class="me1">RequestTransaction</span><span class="br0">&#40;</span><span class="re1">$issuerId</span><span class="sy0">,</span><span class="re1">$purchaseId</span><span class="sy0">,</span><span class="re1">$amount</span><span class="sy0">,</span><span class="re1">$description</span><span class="sy0">,</span><span class="re1">$entranceCode</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">transactionID</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$url</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getIssuerAuthenticationURL</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">header</span><span class="br0">&#40;</span><span class="st0">&quot;Location:&quot;</span><span class="sy0">.</span><span class="re1">$url</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>After this, end user login to his bank and make payment. On successful, iDEAL/bank redirect customer to webshop again (you have to define redirect page in config, they call it MerchantReturnURL).</p>
<p>Parameters for RequestTransaction():<br />
IssuerId: the ID of the issuer the consumer has selected from the pick list<br />
PurchaseId: the purchase number according to the online shop’s system<br />
Amount: the amount in whole cents (no decimals; 1 Euro = 100)<br />
Description: the description of the product<br />
EntranceCode: a code determined by the online shop with which the purchase can be<br />
authenticated upon redirection to the online shop (see section 4.2.2 for details).<br />
(optional) ExpirationPeriod: if different from the configured value.<br />
(optional) MerchantReturnURL: if different from the configured value.</p>
<p><strong>Status Request</strong><br />
When iDEAL/bank redirect end user to webshop, it will automatically add two parameters entranceCode and TransactionId. entranceCode is hold by ec variable and TransectionId is hold by trxid variable. So, you have TransactionId (trxid) in landing page, you should make status request. If you do not make status request, payment will not be guaranteed. Following is code to make status request:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$connector</span> <span class="sy0">=</span> <span class="kw2">new</span> iDEALConnector<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$transactionId</span> <span class="sy0">=</span> <span class="re1">$_GET</span><span class="br0">&#91;</span><span class="st0">&#39;trxid&#39;</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> <span class="re1">$connector</span><span class="sy0">-&gt;</span><span class="me1">RequestTransactionStatus</span><span class="br0">&#40;</span><span class="re1">$transactionId</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">errorMessage</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorCode</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorCode</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorMsg</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$consumerMessage</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$status</span> <span class="sy0">=&amp;</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getStatus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re1">$status</span> <span class="sy0">===</span> IDEAL_TX_STATUS_SUCCESS <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$consumerName</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerName</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$consumerAccNumber</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerAccountNumber</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$consumerCity</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerCity</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>(Issue request can be made manually from iDEAL Dashboard as well).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/ideal-advance-php-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iDEAL Basic (ING Bank) Integration</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:55:02 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Payment Gateway]]></category>
		<category><![CDATA[iDEAL]]></category>
		<category><![CDATA[ING]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=328</guid>
		<description><![CDATA[iDEAL Basic integration method is different from iDEAL Advance. Sumit Bankskota has provided code for basic integration, thanks Sumit. Below is complete code, try on your own: &#60;html&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=iso-8859-1&#34;&#62; &#60;/head&#62; &#60;body&#62; &#60;FORM METHOD=&#34;post&#34; ACTION=&#34;https://idealtest.secure-ing.com&#34; name=&#34;frm1&#34; id=&#34;frm1&#34;&#62; &#60;INPUT type=&#34;hidden&#34; NAME=&#34;merchantID&#34; value=&#34;xxxxxxx&#34; /&#62; &#60;INPUT type=&#34;hidden&#34; NAME=&#34;subID&#34; value=&#34;0&#34; /&#62; &#60;INPUT type=&#34;hidden&#34; NAME=&#34;amount&#34; VALUE=&#34;xxxxx&#34; /&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>iDEAL Basic integration method is different from iDEAL Advance. <a href="http://www.ersumit.com/">Sumit Bankskota</a> has provided code for basic integration, thanks Sumit. Below is complete code, try on your own:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;html&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;head&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/head&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;body&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;FORM METHOD=&quot;post&quot; ACTION=&quot;https://idealtest.secure-ing.com&quot; name=&quot;frm1&quot; id=&quot;frm1&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;merchantID&quot; value=&quot;xxxxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;subID&quot; value=&quot;0&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;amount&quot; VALUE=&quot;xxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;purchaseID&quot; VALUE=&quot;xxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;language&quot; VALUE=&quot;nl&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;currency&quot; VALUE=&quot;EUR&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;description&quot; VALUE=&quot;iDEAL Basic purchase&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemNumber1&quot; VALUE=&quot;xxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemDescription1&quot; VALUE=&quot;xxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemQuantity1&quot; VALUE=&quot;xxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemPrice1&quot; VALUE=&quot;xxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;paymentType&quot; VALUE=&quot;ideal&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;validUntil&quot; VALUE=&quot; 2009-01-01T12:00:00:0000Z&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;PSPID&quot; value=&quot;PSP-id&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;accepturl&quot; value=&quot;http://www.hosturl.nl/path/accept_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;declineurl&quot; value=&quot;http://www.hosturl.nl/path/decline_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;exceptionurl&quot; value=&quot;http://www.hosturl.nl/path/exception_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;cancelurl&quot; value=&quot;http://www.hosturl.nl/path/cancel_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;homeurl&quot; value=&quot;http://www.hosturl.nl/home&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;submit&quot; value=&quot;Bevestig bestelling&quot; id=&quot;submit2&quot; name=&quot;submit2&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/form&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/body&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/html&gt;</div>
</li>
</ol>
</div>
<p>Parameter values in hidden control are hypothetical (dummy). So you need to replace with right values.</p>
<p>For iDEAL Advance, click this <a href="http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/">link</a>.</p>
<p>If you have done for any other Bank or other way, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TinyMCE editor &#8211; image upload plugin (Ajax File Manager)</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/tinymce-editor-image-upload-plugin-ajax-file-manager/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/tinymce-editor-image-upload-plugin-ajax-file-manager/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 11:18:38 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Ajax File Manager]]></category>
		<category><![CDATA[File Uploader]]></category>
		<category><![CDATA[TinyMCE]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=300</guid>
		<description><![CDATA[TinyMCE is very nice editor. But it lacks image upload functionality which drives crazy to lot of programmer as enabling image upload facility is tough. I have chance to play around with it and found actually integrating image upload facility is very easy. Among lot of plugin, I find Ajax File Manger is nice. You [...]]]></description>
			<content:encoded><![CDATA[<p>TinyMCE is very nice editor. But it lacks image upload functionality which drives crazy to lot of programmer as enabling image upload facility is tough. I have chance to play around with it and found actually integrating image upload facility is very easy. Among lot of plugin, I find Ajax File Manger is nice.</p>
<p>You can download tinyMCE with Ajax File Manager plugin from <a href="http://www.phpletter.com/DOWNLOAD/">http://www.phpletter.com/DOWNLOAD,</a> See under &#8220;Tinymce Ajax File and Image Manager&#8221;. Direct link <a href="http://www.phpletter.com/download_project_version.php?version_id=28">http://www.phpletter.com/download_project_version.php?version_id=28</a>.</p>
<p>A copy of demo TinyMCE with Ajax File Manager can be seen here <a href="http://demo.phpletter.com/tinymce_test.php">http://demo.phpletter.com/tinymce_test.php</a>. View Source and copy code.</p>
<p>Code snippet to enable Ajax File Manager in TinyMCE:</p>
<div class="geshi javascript">
<ol>
<li class="li1">
<div class="de1">tinyMCE.<span class="me1">init</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;mode : <span class="st0">&quot;exact&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;elements : <span class="st0">&quot;ajaxfilemanager&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme : <span class="st0">&quot;advanced&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;plugins : <span class="st0">&quot;table,advhr,advimage,advlink,flash,paste,fullscreen,noneditable,contextmenu&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons1_add_before : <span class="st0">&quot;newdocument,separator&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons1_add : <span class="st0">&quot;fontselect,fontsizeselect&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons2_add : <span class="st0">&quot;separator,forecolor,backcolor,liststyle&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons2_add_before: <span class="st0">&quot;cut,copy,paste,pastetext,pasteword,separator,&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons3_add_before : <span class="st0">&quot;tablecontrols,separator&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons3_add : <span class="st0">&quot;flash,advhr,separator,fullscreen&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_location : <span class="st0">&quot;top&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_align : <span class="st0">&quot;left&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;extended_valid_elements : <span class="st0">&quot;hr[class|width|size|noshade]&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;file_browser_callback : <span class="st0">&quot;ajaxfilemanager&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;paste_use_dialog : <span class="kw2">false</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_resizing : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_resize_horizontal : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;apply_source_formatting : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;force_br_newlines : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;force_p_newlines : <span class="kw2">false</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;relative_urls : <span class="kw2">true</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> ajaxfilemanager<span class="br0">&#40;</span>field_name, url, type, win<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">var</span> ajaxfilemanagerurl = <span class="st0">&quot;http://&lt;host&gt;/&lt;path_to_ajaxfilemanage&gt;/ajaxfilemanager/ajaxfilemanager.php?editor=tinymce&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">switch</span> <span class="br0">&#40;</span>type<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;image&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;media&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;flash&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;file&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">default</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">var</span> fileBrowserWindow = <span class="kw2">new</span> Array<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;file&quot;</span><span class="br0">&#93;</span> = ajaxfilemanagerurl;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;Ajax File Manager&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;width&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;782&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;height&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;440&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;close_previous&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;no&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;tinyMCE.<span class="me1">openWindow</span><span class="br0">&#40;</span>fileBrowserWindow, <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;window : win,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;input : field_name,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;resizable : <span class="st0">&quot;yes&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;inline : <span class="st0">&quot;yes&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;editor_id : tinyMCE.<span class="me1">getWindowArg</span><span class="br0">&#40;</span><span class="st0">&quot;editor_id&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Analysis of code</strong>:<br />
Line number 15:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1">file_browser_callback : <span class="st0">&quot;ajaxfilemanager&quot;</span></div>
</li>
</ol>
</div>
<p>The value &#8216;ajaxfilemanager&#8217; defines the name of the Javascript function which will be called every time a user clicks the browse button in one of the dialogue windows. You can see function definition start from line number 25 to 54. This function opens a new window calling a URL tailored (See line number 26).</p>
<p><strong>Important Points</strong><br />
Don&#8217;t forget to set upload directory path in tiny_mce/plugins/ajaxfilemanager/inc/config.base.php. It should be relative path.</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">define</span><span class="br0">&#40;</span><span class="st0">&#39;CONFIG_SYS_DEFAULT_PATH&#39;</span><span class="sy0">,</span> <span class="st0">&#39;../../../../../uploads/&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">define</span><span class="br0">&#40;</span><span class="st0">&#39;CONFIG_SYS_ROOT_PATH&#39;</span><span class="sy0">,</span> <span class="st0">&#39;../../../../../uploads/&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Above folder should have 777 permission. Also set 777 permission to session folder folder, tiny_mce/plugins/ajaxfilemanager/session.</p>
<p><strong>Alternatively you can try following uploader</strong></p>
<p>http://dustweb.ru/log/projects/tinymce_images/</p>
<p>Cofigure:</p>
<ol>
<li>Give class name to your editor e.g. class=&#8221;tiny&#8221;</li>
<li>Add following<br />
In list of plugins, add images<br />
add editor_selector : &#8220;tiny&#8221;,<br />
In list of button, add images</li>
<li> Change DIR_IMAGES and DIR_FILES path on tiny_mce/plugins/images/connector/php/config.php to suit your location. Upload folder should have 777 permission.
</ol>
<p>Actual configuration looks like (See images on line number 8 and 12):</p>
<div class="geshi javascript">
<ol>
<li class="li1">
<div class="de1">tinyMCE.<span class="me1">init</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// General options</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;mode : <span class="st0">&quot;textareas&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme : <span class="st0">&quot;advanced&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">//plugins : &quot;safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount&quot;,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;editor_selector : <span class="st0">&quot;tiny&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;plugins : <span class="st0">&quot;safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,images,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Theme options</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons1 : <span class="st0">&quot;save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons2 : <span class="st0">&quot;cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,images, cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons3 : <span class="st0">&quot;tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons4 : <span class="st0">&quot;insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_location : <span class="st0">&quot;top&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_align : <span class="st0">&quot;left&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_statusbar_location : <span class="st0">&quot;bottom&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_resizing : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Example content CSS (should be your site CSS)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;content_css : <span class="st0">&quot;css/content.css&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Drop lists for link/image/media/template dialogs</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;template_external_list_url : <span class="st0">&quot;lists/template_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;external_link_list_url : <span class="st0">&quot;lists/link_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;external_image_list_url : <span class="st0">&quot;lists/image_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;media_external_list_url : <span class="st0">&quot;lists/media_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Replace values for the template plugin</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;template_replace_values : <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; username : <span class="st0">&quot;Some User&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; staffid : <span class="st0">&quot;991234&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/tinymce-editor-image-upload-plugin-ajax-file-manager/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>iDEAL payment &#8211; ING Bank &#8211; iDEAL Advance Integration</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 10:13:27 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Payment Gateway]]></category>
		<category><![CDATA[iDEAL]]></category>
		<category><![CDATA[ING]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=302</guid>
		<description><![CDATA[It&#8217;s always not easy to work with payment gateway service as each gateway service has different of configuration options, parameters. Lastly, I found iDEAL as weired/tough. You will hardly find documentation in English. So, I thought share idea how I did configure iDEAL Advance using PHP (ING bank). In summery, it takes following steps to [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always not easy to work with payment gateway service as each gateway service has different of configuration options, parameters. Lastly, I found iDEAL as weired/tough. You will hardly find documentation in English. So, I thought share idea how I did configure iDEAL Advance using PHP (ING bank).</p>
<p>In summery, it takes following steps to setup iDEAL Advance:</p>
<ol>
<li>Registration</li>
<li>Integration</li>
<li>Run mandatory test cases in iDEAL test environment</li>
<li>iDEAL approve test cases and contract (you should sign up contract)</li>
<li>Live account has to be activated (See below Mandatory Test)</li>
<li>So, your live sale can be done in iDEAL.</li>
</ol>
<p>Follow details steps below:</p>
<ol>
<li>Login to iDEAL/ING Dashboard (Given below are URL for dashboard)<br />
Test environment: https://idealtest.secure-ing.com<br />
Production environment: https://ideal.secure-ing.com<br />
<strong>Note</strong>: Merchant ID and Login name is same for both test and live. But password is different for live and test.</li>
<li>Once you login, first thing you need to go to Document link. There you can download documentation and Advance integration code. Documentation is available in English and Dutch.<br />
Important Downloads:<br />
a) <a href="http://www.krishnasunuwar.com.np/downloads/iDEAL_General_EN_v2.1.pdf">iDEAL General – Introduction and procedure</a> (Click on link to get manual)<br />
b) <a href="http://www.krishnasunuwar.com.np/downloads/iDEAL_Advanced_PHP_EN_V2.2.pdf">iDEAL Advanced Integration Manual PHP</a> (Click on link to get manual)<br />
c) iDEAL Advanced Integration Code PHP (Sorry,  no links, ups!!)<br />
<strong>Note:</strong> You should be aware about registration process. Look &#8220;Registration process (2)&#8221; in iDEAL General – Introduction and procedure<br />
<img class="alignnone" title="iDEAL Dashboard (before account is activated)" src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_dashboard.jpg" alt="" width="500" height="244" /></li>
<li>To integrate Advance iDEAL in PHP, follow instruction in &#8220;iDEAL Advanced Integration Manual PHP&#8221;, there are lot of steps you should follow carefully. In summery:<br />
1) Generate private key using openSSL<br />
2) Generate certificate using private key.<br />
3) Upload certificate to configuration (Login to iDEAL dashboard -&gt; Go to sign up process -&gt; Click on Configuration tab)<br />
4) Change params value in config.conf which available in /includes/security.<br />
5) Also you should edit iDEALConnector_config.inc.php if you move security folder then then default.</li>
<li>Upload scripts (PHP Advanced Code)</li>
<li>Run 6 tests in iDEAL test environment. Wait for iDEAL response on your test.  (See below Mandatory Test)</li>
<li>iDEAL has to set live account activate. Now your gateway is ready!!</li>
</ol>
<p><strong>Mandatory Test</strong>:</p>
<p>You should run mandatory test before you can set iDEAL live. Look &#8220;Registration process (2)&#8221; in iDEAL General – Introduction and procedure. It&#8217;s not easy to setup online store to configure to meet test suite requirement. Hence, you can use iDEAL Tester, which you can download from <a href="http://www.ideal-simulator.nl/ideal-professional-tester.html">http://www.ideal-simulator.nl/ideal-professional-tester.html</a>.</p>
<p>Once you download scripts, make changes on idealprofessional.cfg.php file which is located inside library folder. Upload scripts to server and access it http://&lt;host&gt;/ideal-professional-tester/index.php<br />
<img class="alignnone" title="iDEAL tester screen" src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_tester-1.jpg" alt="" width="500" height="420" /></p>
<p>You can confirm tests status from iDEAL dashboard.</p>
<ol>
<li>Login to Dashboard (test and live has different dashboard)</li>
<li>Click on Sign up Process</li>
<li>Click on Status (You&#8217;ll see following screen if test successes).
<p><div class="wp-caption alignnone" style="width: 510px"><img src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_test_result.jpg" alt="iDEAL mandatory test results" width="500" height="218" /><p class="wp-caption-text">iDEAL mandatory test results</p></div></li>
<li>Once you finish test suits, iDEAL will activate live account. It may take several hours, so I suggest you to call their support dept. and ask them to activate (it speed up).</li>
<li>Once they activate your live account, your live dashboard looks different as given below.</li>
</ol>
<p><img src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_live_activate.jpg" alt="iDEAL live dashboard (after activated)" /><br />
<strong>Note</strong>: You should run this test on same domain where your online store will resides.</p>
<p>Note: this post describe process how to integrate iDEAL Adanced (ING Bank) using PHP APIs.</p>
<p>Configuring iDEAL basic is very easy which works with post method by redirecting URL to their gateway.</p>
<p>If you have done for any other Bank or other way, let me know.</p>
<p><strong>Update</strong>: for iDEAL Basic click this <a href="http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Perl beginner &#8211; install and run hello world, MySQL test</title>
		<link>http://www.krishnasunuwar.com.np/2010/02/perl-beginner-install-and-run-hello-world/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/02/perl-beginner-install-and-run-hello-world/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 13:10:35 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=266</guid>
		<description><![CDATA[I am seasoned PHP programmer, been around ten years I am coding on PHP. Although I learn and tried many different programming languages, I always scare to give a try to Perl. I was in impression that Perl is difficult language so never get confident to try it, or never can arrange time for it. [...]]]></description>
			<content:encoded><![CDATA[<p>I am seasoned PHP programmer, been around ten years I am coding on PHP. Although I learn and tried many different programming languages, I always scare to give a try to Perl. I was in impression that Perl is difficult language so never get confident to try it, or never can arrange time for it. But, today as I was working on Asterisk for VoIP system, there&#8217;s was no choice left, but Perl.</p>
<p>I gave first try today in Ubuntu. It wasn&#8217;t that bad as I heard. Actually I was wrong about Perl, it was proved.</p>
<p>Below is how, I tried first hello world and first database application
<p><strong>Install Perl</strong></p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">$ <span class="kw2">sudo</span> apt-get <span class="kw2">install</span> <span class="kw2">perl</span></div>
</li>
</ol>
</div>
<p>&nbsp;</p>
<p>Don&#8217;t worry, if Perl is already installed, it do nothing. If you have Ubuntu server edition, Perl is already there.</p>
<p>&nbsp;</p>
<p>Create directory called perl_test. Create perl_test.pl file and save following content.</p>
<div class="geshi no perl">
<ol>
<li class="li1">
<div class="de1"><span class="co1">#!/usr/bin/perl</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#simple perl program to print the user input</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">print</span> <span class="br0">&#40;</span><span class="st0">&quot;Hello world! test goes this<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$inputline</span>=<span class="re4">&lt;stdin&gt;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">print</span> <span class="br0">&#40;</span><span class="re0">$inputline</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>&nbsp;</p>
<p>
Save file named as perl_test.pl and run following command.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">$ <span class="kw2">sudo</span> <span class="kw2">chmod</span> +x perl_test.pl</div>
</li>
<li class="li1">
<div class="de1">$ .<span class="sy0">/</span>perl_test.pl</div>
</li>
</ol>
</div>
<p> &nbsp;</p>
<p>
<strong>Database Test:</strong><br />
Create perl_db.pl file and save following content.</p>
<div class="geshi no perl">
<ol>
<li class="li1">
<div class="de1"><span class="co1">#!/usr/bin/perl</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">use</span> strict;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">use</span> warnings;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">use</span> DBI;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$username</span>=<span class="st0">&#39;test&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$pass</span>=<span class="st0">&#39;test&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$db</span>=<span class="st0">&#39;test&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$dbh</span> = DBI-<span class="sy0">&gt;</span><span class="me1">connect</span><span class="br0">&#40;</span> <span class="st0">&quot;dbi:mysql:$db&quot;</span>, <span class="re0">$username</span>, <span class="re0">$pass</span>, <span class="br0">&#123;</span> <span class="st0">&#39;PrintError&#39;</span> =<span class="sy0">&gt;</span> <span class="nu0">1</span>, <span class="st0">&#39;RaiseError&#39;</span> =<span class="sy0">&gt;</span> <span class="nu0">1</span> <span class="br0">&#125;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$sql</span>=<span class="st0">&#39;select * from test&#39;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">$sql_handle</span>=<span class="re0">$dbh</span>-<span class="sy0">&gt;</span><span class="me1">prepare</span><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$sql_handle</span>-<span class="sy0">&gt;</span><span class="me1">execute</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">my</span> <span class="re0">@data</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">while</span> <span class="br0">&#40;</span><span class="re0">@data</span>=<span class="re0">$sql_handle</span>-<span class="sy0">&gt;</span><span class="me1">fetchrow_array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">print</span> <span class="kw3">join</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>&quot;</span>,<span class="re0">@data</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p> &nbsp; </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">$ <span class="kw2">sudo</span> <span class="kw2">chmod</span> +x perl_db.pl</div>
</li>
<li class="li1">
<div class="de1">$ <span class="kw2">sudo</span> .<span class="sy0">/</span>perl_db.pl</div>
</li>
</ol>
</div>
<p> &nbsp; </p>
<p>Make sure user test with password test and database test exits. And it has test table.</p>
<p> &nbsp; <br />
Haurry!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/02/perl-beginner-install-and-run-hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpBricks alpha preview</title>
		<link>http://www.krishnasunuwar.com.np/2010/01/phpbricks-alpha-preview/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/01/phpbricks-alpha-preview/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 05:26:59 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[phpBricks]]></category>
		<category><![CDATA[MVC framework]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=247</guid>
		<description><![CDATA[phpBricks is MVC framework for PHP programming language. It&#8217;s the framework so it may not be the way you want, but it&#8217;s the way I/we have found right. In early stage of my programming career, I see lot of resources and time was consuming to write same piece of validation code and I decide to save that [...]]]></description>
			<content:encoded><![CDATA[<p>phpBricks is MVC framework for PHP programming language. It&#8217;s the framework so it may not be the way you want, but it&#8217;s the way I/we have found right. In early stage of my programming career, I see lot of resources and time was consuming to write same piece of validation code and I decide to save that time by writing piece of code which can be reused. After then, I see series of such things one after another, like:</p>
<ol>
<li>Mix/Max of php and HTML code, which is pain in ASS to UI programmer, CSS guys.</li>
<li>Junk and vulnerable SQL statement, no way to make site secure.</li>
<li>Bunch of configuration variables and constants on config.php file.</li>
<li>Unmanaged structure of files, functions and classes.</li>
<li>Not proper modular structure which cause hard to maintenance application.</li>
<li>Personal interest of variable, function naming &#8211; lots of garbage and junk codes.</li>
<li>Writing and re-writing of code for same function within one projects and in multiple project.</li>
<li>No common standard and no central key. Different flow of each function/module, you never can say start and end when it comes to debugging.</li>
<li>And, I am seeing lot more others day by day&#8230;</li>
</ol>
<p>So, on process of eliminating those stuffs, I keep enhancing that piece of code with feedback and direct involvement of some handful colleague, phpBricks is made.</p>
<p>I understand it is same pain for all programmers until you know such framework exists (I bet hundreds of such framework exists, just google it). So here, it is my privileges to share that piece of code, now so called phpBricks. I have uploaded demo copy, naming alpha release at <a title="phpBricks" href="http://sourceforge.net/projects/phpbricks/">SourceForge</a>. I have been using it to build many commercial softwares. But I do not recommend you as this is alpha release and no sufficient resource will be found. If you want to use it, challenge the risk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/01/phpbricks-alpha-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
