<?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>vdGeijn.com &#187; PHP</title>
	<atom:link href="http://www.vdgeijn.com/category/websites-bouwen/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vdgeijn.com</link>
	<description>You must be bored to end up here...</description>
	<lastBuildDate>Tue, 09 Aug 2011 09:30:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Update alle MySQL collate en character sets met 1 SQL commando</title>
		<link>http://www.vdgeijn.com/81/websites-bouwen/php/update-alle-mysql-collate-en-character-sets-met-1-sql-commando/</link>
		<comments>http://www.vdgeijn.com/81/websites-bouwen/php/update-alle-mysql-collate-en-character-sets-met-1-sql-commando/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 09:28:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=81</guid>
		<description><![CDATA[Aan het begin bij het opzetten van wat nu een grote database is geworden, heb ik gekozen voor de standaard latin codering. Door allerlei veranderingen in de PHP code en de overstap naar Zend Framework moest de collcation overgezet worden naar utf8-unicode-ci. Met zo&#8217;n 80 tabellen met ieder gemiddeld zo&#8217;n 30 velden is dat een [...]]]></description>
			<content:encoded><![CDATA[<p>Aan het begin bij het opzetten van wat nu een grote database is geworden, heb ik gekozen voor de standaard latin codering. Door allerlei veranderingen in de PHP code en de overstap naar Zend Framework moest de collcation overgezet worden naar utf8-unicode-ci. Met zo&#8217;n 80 tabellen met ieder gemiddeld zo&#8217;n 30 velden is dat een hoop werk om handmatig te doen.</p>
<p>Dus google erbij gehaald en uiteindelijk het in enkele minuten voor elkaar gekregen met de volgende SQL:</p>
<p><code>select concat( 'alter table `', a.table_name, '` convert to character set utf8 collate utf8_unicode_ci;' )<br />
from information_schema.tables a<br />
where a.table_schema = "schema"</code></p>
<p>Vergeet niet om achter table_schema de juiste database in te vullen in plaats van schema wat er nu staat. De uitvoer van de bovenstaande SQL kan je weer kopieren en plakken via de SQL tab van je database in phpMyAdmin.</p>
<p>Om het ook meteen in Zend Framework goed te krijgen moest ik ook nog bij het aanmaken van het Zend_DB object een driver optie meegeven:</p>
<p><code>'driver_options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;'</code></p>
<p>Dit plaats je dus in de zelfde array als waar je ook de login, wachtwoord en database opgeeft voor de te openen database.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/81/websites-bouwen/php/update-alle-mysql-collate-en-character-sets-met-1-sql-commando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework class voor Twinfield SOAP API</title>
		<link>http://www.vdgeijn.com/66/websites-bouwen/php/zend-framework-class-voor-twinfield-soap-api/</link>
		<comments>http://www.vdgeijn.com/66/websites-bouwen/php/zend-framework-class-voor-twinfield-soap-api/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 06:39:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Twinfield]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=66</guid>
		<description><![CDATA[Tijdens de ontwikkeling van het nieuwe controle paneel moest er onder andere een Zend Framework class geschreven worden voor verbinding tussen ons eigen systeem en Twinfield. Hier heeft Twinfield een heel mooie API beschikbaar via SOAP. Hieronder de basis van de My_Soap_Client_Twinfield class. Zodra de class verder af is, zal ik nog een update plaatsen. [...]]]></description>
			<content:encoded><![CDATA[<p>Tijdens de ontwikkeling van het nieuwe controle paneel moest er onder andere een Zend Framework class geschreven worden voor verbinding tussen ons eigen systeem en Twinfield. Hier heeft Twinfield een heel mooie API beschikbaar via SOAP. Hieronder de basis van de My_Soap_Client_Twinfield class.</p>
<p>Zodra de class verder af is, zal ik nog een update plaatsen.</p>
<p><code>class My_Soap_Client_Twinfield extends Zend_Soap_Client<br />
{<br />
protected $cache = NULL;</p>
<p>protected $user = "********";<br />
protected $password = "********";<br />
protected $organisation = "********";<br />
protected $administration = "********";</p>
<p>protected $header = NULL;</p>
<p>protected $data = false;</p>
<p>private function getSession() {<br />
$ret = false;</p>
<p>$params = array( 'user' =&gt; $this-&gt;user,<br />
'password' =&gt; $this-&gt;password,<br />
'organisation' =&gt; $this-&gt;organisation<br />
);</p>
<p>$cache = Zend_Registry::get ( 'Cache' );</p>
<p>if( $this-&gt;data === false &amp;&amp; ( $this-&gt;data = $cache-&gt;load( md5("Twinfield_Session_And_Url") ) ) === false ) {<br />
$client = new Zend_Soap_Client( "https://login.twinfield.com/webservices/session.asmx?wsdl" );</p>
<p>$client-&gt;logon( $params );</p>
<p>$doc = new domDocument();<br />
$doc-&gt;loadXML( $client-&gt;getLastResponse() );</p>
<p>$this-&gt;data['SessionID'] = $doc-&gt;getElementsByTagName('SessionID')-&gt;item(0)-&gt;textContent;<br />
$cluster = $doc-&gt;getElementsByTagName('cluster')-&gt;item(0)-&gt;textContent;<br />
$this-&gt;data['cluster'] =  $cluster . '/webservices/processxml.asmx?wsdl';</p>
<p>$client = new Zend_Soap_Client( $cluster . '/webservices/session.asmx?wsdl' );<br />
$header = new SoapHeader( 'http://www.twinfield.com/', 'Header', array( 'SessionID' =&gt; $this-&gt;data['SessionID'] ) );<br />
$client-&gt;addSoapInputHeader( $header );<br />
$client-&gt;SelectCompany( array( 'company' =&gt; $this-&gt;administration ) );</p>
<p>$doc = new domDocument();<br />
$doc-&gt;loadXML( $client-&gt;getLastResponse() );<br />
$result = $doc-&gt;getElementsByTagName('SelectCompanyResult')-&gt;item(0)-&gt;textContent;</p>
<p># Alleen het resultaat bewaren als alles goed gegaan is<br />
if( strcmp( $result, "Ok" ) ) {<br />
$cache-&gt;save( $this-&gt;data );<br />
$ret = true;<br />
}<br />
}</p>
<p>return $ret;<br />
}</p>
<p>public function __construct( ) {<br />
if( $this-&gt;getSession() ) {<br />
parent::__construct( $this-&gt;data['cluster'] );</p>
<p>$this-&gt;header = new SoapHeader( 'http://www.twinfield.com/', 'Header', array( 'SessionID' =&gt; $this-&gt;data['SessionID'] ) );</p>
<p># Add permanent session header<br />
$this-&gt;addSoapInputHeader( $this-&gt;header, true );<br />
} else {<br />
throw new Exception( "Error creating Twinfield session" );<br />
}<br />
}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/66/websites-bouwen/php/zend-framework-class-voor-twinfield-soap-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iDeal gateway voor CMS Made Simple</title>
		<link>http://www.vdgeijn.com/46/websites-bouwen/php/ideal-gateway-voor-cms-made-simple/</link>
		<comments>http://www.vdgeijn.com/46/websites-bouwen/php/ideal-gateway-voor-cms-made-simple/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 08:00:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[CMS Made Simple]]></category>
		<category><![CDATA[iDeal]]></category>
		<category><![CDATA[Natastisch]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=46</guid>
		<description><![CDATA[Eerste release van CMS Made Simple iDeal gateway]]></description>
			<content:encoded><![CDATA[<p>Al enige tijd ben ik bezig met de webshop voor een <a href="http://www.natastisch.nl/">Sieraden webwinkel</a>. Hierbij heb ik gebruik gemaakt van CMS Made Simple. Hiervoor bestaat alleen een betaalde iDeal gateway. Daar hou ik niet zo van, dus vandaar dat ik eindelijk maar eens ga terug geven aan de open source community door een gratis iDeal gateway voor CMS Made Simple te schrijven.<br />
Na een paar keer uitgesteld te hebben, heb ik vandaag de eerste release gedaan: <a href="http://dev.cmsmadesimple.org/projects/idealgateway">CMS Made Simple iDeal gateway</a>, versie 0.1.0.<br />
Deze versie is getest tegen de <a href="http://www.ideal-simulator.nl/">iDeal simulator</a> en de Rabobank test en live omgeving. De code is gebaseerd op onder andere de code van de iDeal simulator website, en die code is ook getest tegen de ING en ABN Amro omgevingen. Dus ik ga er vanuit dat het allemaal probleemloos werkt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/46/websites-bouwen/php/ideal-gateway-voor-cms-made-simple/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Form met read-only veld</title>
		<link>http://www.vdgeijn.com/27/websites-bouwen/php/zend-framework/form-met-read-only-veld/</link>
		<comments>http://www.vdgeijn.com/27/websites-bouwen/php/zend-framework/form-met-read-only-veld/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 07:58:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=27</guid>
		<description><![CDATA[Het was niet duidelijk hoe er een veld getoond kan worden binnen een form, dat niet gewijzigd kan worden. Na wat zoekwerk kwam de volgende constructie naar boven: $form-&#62;addElement(&#8216;text&#8217;, &#8216;ip&#8217;, array(&#8216;label&#8217; =&#62; &#8216;IP adres&#8217;, &#8216;value&#8217; =&#62; $_SERVER['REMOTE_ADDR'] )); $form-&#62;getElement(&#8216;ip&#8217;)-&#62;helper = &#8216;formNote&#8217;;]]></description>
			<content:encoded><![CDATA[<p>Het was niet duidelijk hoe er een veld getoond kan worden binnen een form, dat niet gewijzigd kan worden. Na wat zoekwerk kwam de volgende constructie naar boven:</p>
<blockquote><p>$form-&gt;addElement(&#8216;text&#8217;, &#8216;ip&#8217;,<br />
                  array(&#8216;label&#8217; =&gt; &#8216;IP adres&#8217;, &#8216;value&#8217; =&gt; $_SERVER['REMOTE_ADDR'] ));<br />
$form-&gt;getElement(&#8216;ip&#8217;)-&gt;helper = &#8216;formNote&#8217;;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/27/websites-bouwen/php/zend-framework/form-met-read-only-veld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chaining routes with wildcard (*) does not work</title>
		<link>http://www.vdgeijn.com/19/websites-bouwen/php/zend-framework/chaining-routes-with-wildcard-does-not-work/</link>
		<comments>http://www.vdgeijn.com/19/websites-bouwen/php/zend-framework/chaining-routes-with-wildcard-does-not-work/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 21:25:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.vdgeijn.com/?p=19</guid>
		<description><![CDATA[Enkele maanden geleden al tegen een vervelend probleem gelopen in Zend Framework. Het heeft mij een dag gekost om er achter te komen dat Chaining routes met een wildcard niet goed werken. Al vanaf versie 1.8.x zit er een bug in dat de variabele $matchedPath niet goed geupdate wordt in Zend_Controller_Router_Route. Op deze variabele wordt [...]]]></description>
			<content:encoded><![CDATA[<p>Enkele maanden geleden al tegen een vervelend probleem gelopen in Zend Framework. Het heeft mij een dag gekost om er achter te komen dat Chaining routes met een wildcard niet goed werken. Al vanaf versie 1.8.x zit er een bug in dat de variabele $matchedPath niet goed geupdate wordt in Zend_Controller_Router_Route. Op deze variabele wordt later in de code weer gecontroleerd of het hele pad gematched is.</p>
<p>Zoals ook gepost in <a href="http://framework.zend.com/issues/browse/ZF-6654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel">de issue tracker van Zend Framework</a>, heb ik er een oplossing voor die ik iedere keer doorvoer als ik een upgrade uitvoer. Als ik het goed zie in de comments zal het probleem in de volgende release gefixt zijn. Ik hoop het.</p>
<p>Update: Hoewel het lang heeft geduurd, is dit probleem eind 2009 gefixt in versie 1.10.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vdgeijn.com/19/websites-bouwen/php/zend-framework/chaining-routes-with-wildcard-does-not-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

