<?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>Łukasz Rodziewicz &#187; symfony</title>
	<atom:link href="http://blog.rodziewicz.com.pl/category/symfony/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rodziewicz.com.pl</link>
	<description>notes</description>
	<lastBuildDate>Fri, 18 Dec 2009 13:45:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[Symfony] Custom theme for propel:generate-module</title>
		<link>http://blog.rodziewicz.com.pl/2009/07/18/symfony-custom-theme-for-propelgenerate-module/</link>
		<comments>http://blog.rodziewicz.com.pl/2009/07/18/symfony-custom-theme-for-propelgenerate-module/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 21:12:55 +0000</pubDate>
		<dc:creator>Łukasz Rodziewicz</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://blog.rodziewicz.com.pl/?p=83</guid>
		<description><![CDATA[Propel generators are very useful tool, they automate creating of most common CRUD modules. However default theme have serial issues. Mostly, html forms are based on tables and list is not a sfPropelPager.
But there is an easy way to make your own theme based on symfony default. You can find it into sf_pear_dir/data/generator/sfPropelModule/default and add/modify [...]]]></description>
			<content:encoded><![CDATA[<p>Propel generators are very useful tool, they automate creating of most common CRUD modules. However default theme have serial issues. Mostly, html forms are based on tables and list is not a sfPropelPager.</p>
<p>But there is an easy way to make your own theme based on symfony default. You can find it into sf_pear_dir/data/generator/sfPropelModule/default and add/modify whatever you want. To use it in your app just putt it into sf_project_dir/data/geneator/sfPropelModule directory.</p>
<p>Then using symfony console script use &#8220;theme&#8221; argument:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">empathon<span style="color: #000000; font-weight: bold;">@</span>aden ~<span style="color: #000000; font-weight: bold;">/</span>workspace<span style="color: #000000; font-weight: bold;">/</span>example $ symfony propel:generate-module backend author Author <span style="color: #660033;">--with-show</span> <span style="color: #660033;">--theme</span>=clean</pre></div></div>

<p>I have create my own custom theme with forms on divs, pager, flash messege on delete and create/edit. You can download it <a href="http://blog.rodziewicz.com.pl/wp-content/uploads/2009/07/clean_theme_fixed.tar.gz">here</a>.</p>
<p><strong>Udpate:</strong> Few errors fixed.</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://blog.rodziewicz.com.pl/2009/07/18/symfony-custom-theme-for-propelgenerate-module/" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.rodziewicz.com.pl/2009/07/18/symfony-custom-theme-for-propelgenerate-module/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Symfony] Getting array of errors from sfForm</title>
		<link>http://blog.rodziewicz.com.pl/2009/07/13/symfony-getting-array-of-errors-from-sfform/</link>
		<comments>http://blog.rodziewicz.com.pl/2009/07/13/symfony-getting-array-of-errors-from-sfform/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 02:56:32 +0000</pubDate>
		<dc:creator>Łukasz Rodziewicz</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://blog.rodziewicz.com.pl/?p=67</guid>
		<description><![CDATA[That was tricky. I hope it will help somebody.

&#60;?php
class SomeForm extends sfForm
&#123;
	//..
&#160;
	/**
	 * Return array of current errors
	 *
	 * @return array
	 */
	public function getErrorsArray&#40;&#41;
	&#123;
		$errors = $embedded_forms_name = array&#40;&#41;;
		foreach&#40;$this-&#62;getEmbeddedForms&#40;&#41; as $embedded_form&#41;&#123;
			$embedded_forms_name&#91;&#93; = $embedded_form-&#62;getName&#40;&#41;;
		&#125;
		foreach&#40;$this as $field&#41;&#123;
			if&#40;$field-&#62;hasError&#40;&#41;&#41;
			&#123;
				if&#40;in_array&#40;$field-&#62;getName&#40;&#41;, $embedded_forms_name&#41;&#41;&#123;
					foreach&#40;$field as $field_embedded&#41;&#123;
						if&#40;$field_embedded-&#62;hasError&#40;&#41;&#41; $errors&#91;$field-&#62;getName&#40;&#41;.'_'.$field_embedded-&#62;getName&#40;&#41;&#93; = $field_embedded-&#62;getError&#40;&#41;-&#62;__toString&#40;&#41;;
					&#125;
				&#125; else &#123;
					$errors&#91;$field-&#62;getName&#40;&#41;&#93; = $field-&#62;getError&#40;&#41;-&#62;__toString&#40;&#41;;
				&#125;
			&#125;
		&#125;
		return $errors;
	&#125;
&#125;

For embedded forms it return embedded form name plus field [...]]]></description>
			<content:encoded><![CDATA[<p>That was tricky. I hope it will help somebody.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> SomeForm <span style="color: #000000; font-weight: bold;">extends</span> sfForm
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//..</span>
&nbsp;
	<span style="color: #009933; font-style: italic;">/**
	 * Return array of current errors
	 *
	 * @return array
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getErrorsArray<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$errors</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$embedded_forms_name</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getEmbeddedForms</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$embedded_form</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$embedded_forms_name</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$embedded_form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$field</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasError</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$embedded_forms_name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$field_embedded</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field_embedded</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasError</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$errors</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_'</span><span style="color: #339933;">.</span><span style="color: #000088;">$field_embedded</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$field_embedded</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getError</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span>__toString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$errors</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getError</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span>__toString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$errors</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>For embedded forms it return embedded form name plus field name as a key.<br />
You got an idea ;-) It should be standard feature IMHO.</p>
<p>Update:<br />
Of course there is a easier way if you don&#8217;t have embedded forms:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//...</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$field</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasError</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$errors</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$field</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getError</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>__toString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>or</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//...</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getErrorSchema</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getErrors</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$error</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$errors</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$error</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessageFormat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://blog.rodziewicz.com.pl/2009/07/13/symfony-getting-array-of-errors-from-sfform/" target="_blank" title="Share on Facebook">Share on Facebook</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.rodziewicz.com.pl/2009/07/13/symfony-getting-array-of-errors-from-sfform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
