<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum CakePHP.org.pl - Validation message]]></title>
	<link rel="self" href="http://forum.cakephp.org.pl/feed/atom/topic/76/"/>
	<updated>2009-07-06T08:47:32Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.cakephp.org.pl/topic/76/validation-message/</id>
		<entry>
			<title type="html"><![CDATA[Odp: Validation message]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/370/#p370"/>
			<content type="html"><![CDATA[<p>.editUsersWindow input {<br />&nbsp; &nbsp; display:block;<br />&nbsp; &nbsp; float:left;<br />&nbsp; &nbsp; width: 170px;<br />&nbsp; &nbsp; font-size:11px;<br />&nbsp; &nbsp; margin: 5px;<br />}</p><p>.editUsersWindow .clear {<br />&nbsp; &nbsp; clear:both;<br />}<br />.editUsersWindow .error-message {<br />&nbsp; &nbsp; font-size:9px;<br />&nbsp; &nbsp; color:#00FF66;<br />}</p><p>html wyglada tak: &lt;clear&gt;&lt;input&gt;&lt;/input&gt;&lt;error&gt;tu sie pojawia error&lt;/error&gt;&lt;/clear&gt;</p><p>w ten sposob mam inputy jeden pod drugim a po pojawieniu sie bledu blad pokazuje sie obok inputa, po jego prawej stronie.</p>]]></content>
			<author>
				<name><![CDATA[duke_piotr]]></name>
				<uri>http://forum.cakephp.org.pl/user/31/</uri>
			</author>
			<updated>2009-07-06T08:47:32Z</updated>
			<id>http://forum.cakephp.org.pl/post/370/#p370</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Validation message]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/361/#p361"/>
			<content type="html"><![CDATA[<p>Witam!!!<br />Można jeszcze w inny sposób bardziej łatwy to zrobić. Wystarczy edytować plik form.php scieżla do niego to cake/libs/view/helpers/form.php oczywiscie mowa o cake 1.2.*. U mnie to jest linia 824 i tak to powinno wyglądać:<br /></p><div class="codebox"><pre><code>if ($type != &#039;hidden&#039;) {
            $out .= $after;
            if ($error !== false) {
                $errMsg = $this-&gt;error($fieldName, $error);
                if ($errMsg) {
                    //TODO zęby bylo na gorze 
                    $out = $errMsg.$out;
                    $divOptions = $this-&gt;addClass($divOptions, &#039;error&#039;);
                }
            }
            
        }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[rocichy]]></name>
				<uri>http://forum.cakephp.org.pl/user/222/</uri>
			</author>
			<updated>2009-07-02T11:34:57Z</updated>
			<id>http://forum.cakephp.org.pl/post/361/#p361</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Validation message]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/346/#p346"/>
			<content type="html"><![CDATA[<p>Tak jeszcze trochę offtopowo ale co tam, skoro już jesteśmy w temacie error mesgów to ... <br />Ja miałem taki problem więc ostrzegam innych. Pamiętajcie, że funkcja read() czyści tablice z błędami walidacji.<br />Wtedy nie zobaczysz błędów choćbyś nawet chciał. Rozwiązanie bardzo proste: find() zamiast read().</p>]]></content>
			<author>
				<name><![CDATA[alfabeta]]></name>
				<uri>http://forum.cakephp.org.pl/user/140/</uri>
			</author>
			<updated>2009-06-10T09:14:45Z</updated>
			<id>http://forum.cakephp.org.pl/post/346/#p346</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Validation message]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/345/#p345"/>
			<content type="html"><![CDATA[<p>Dzieki za odpowiedzi. alfabeta zrobilem podobnie do Ciebie tzn. na szybciora dalem tylko</p><p>div.error-message {<br />&nbsp; &nbsp; margin-left: 450px;<br />&nbsp; &nbsp; color: red;<br />}</p><p>czyli przesunalem tekst bledu na prawo (wczesniej tekst byl schowany pod nizszym formularzem). Na razie takie cos mi wystarcza.</p>]]></content>
			<author>
				<name><![CDATA[carlin]]></name>
				<uri>http://forum.cakephp.org.pl/user/170/</uri>
			</author>
			<updated>2009-06-07T11:04:40Z</updated>
			<id>http://forum.cakephp.org.pl/post/345/#p345</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Validation message]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/344/#p344"/>
			<content type="html"><![CDATA[<p>Maiłem ten sam problem. Jak pod polem input wyskakiwal error to chrzanił mi się wygląd formularza.<br />Ja chciałem error mesgs wyświetlać na górze formularza. Zrobiłem to za pomocą css i javascript.<br />Robiłem to na szybciora i nie chciało mi się zastanawiać ani szukać jak to zrobić w CakePHP.<br />Jeśli komuś nie będzie działało to od razu odpowiem standardową odpowiedzią informatyczną #3: &quot;U mnie działa&quot;. A potem #2: &quot;Dziwne&quot;.<br />Wiem, wiem kod jest brzydki, rozwiązanie głupie i wogóle JavaScript jest be i fu, a prawdziwi mężczyźni nie robią backupów itp itd.<br />Jeśli ktoś ma lepsze rozwiązanie tego problemu (na 200% istnieje takie) bardzo proszę o podzielenie się nim. </p><p>CSS<br /></p><div class="codebox"><pre><code>div.error-message {
    display:none;
}
#flashBledy {
    background-color: #FFCCCC;
    text-align: center;
    width: 40em;
    margin:0;
    padding-bottom:1em;
    font-size:70%;
    border: 1px black solid;
}</code></pre></div><p>JavaScript ( funkcję getElementsByClassName() wygooglujcie i dodajcie do tego samego pliku )<br /></p><div class="codebox"><pre><code>function bledy() {
    if(document.getElementById(&quot;flashMessage&quot;)!=null) {
        var elms = getElementsByClassName(&#039;error-message&#039;);
        var inputy = [];
        var error_msg = &#039;&#039;;
        error_msg += &#039;&lt;div id=&quot;flashBledy&quot;&gt;&#039;;
        for(var i=0,j=elms.length; i&lt;j; i++) {
            inputy.push(elms[i].parentNode.getElementsByTagName(&#039;input&#039;)[0]);
            error_msg += &#039;&lt;br/&gt;&lt;p&gt;&#039;+elms[i].innerHTML+&#039;&lt;/p&gt;&#039;;
        }
        for(var i=0,j=inputy.length; i&lt;j; i++) inputy[i].style.background=&quot;#FFCCCC&quot;;
        error_msg += &#039;&lt;/div&gt;&#039;;
    
        document.getElementById(&quot;flashMessage&quot;).innerHTML += error_msg;
        
    }
       
}</code></pre></div><p>Musicie umieścić plik z js w&nbsp; app/webroot/js , dołączyć plik z js np. w layoucie default.ctp <br />Pamiętajcie o dodaniu helpera JavaScript np w AppController.</p><p>default.ctp<br /></p><div class="codebox"><pre><code>echo $javascript-&gt;link(&#039;nazwa_pliku_bez_rozszerzenia&#039;);</code></pre></div><p>app_controller.php<br /></p><div class="codebox"><pre><code>var $helpers = array(&#039;Javascript&#039;, ...............);</code></pre></div><p>Na koniec dodamy wywołanie funkcji bledy() do pliku z widokiem zawierającym formularz.<br />Dodajcie gdzieś na końcu pliku.</p><p>widok_akcji_z_formularzem.ctp<br /></p><div class="codebox"><pre><code>$script = &#039;bledy();&#039;;
echo $javascript-&gt;codeBlock($script);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alfabeta]]></name>
				<uri>http://forum.cakephp.org.pl/user/140/</uri>
			</author>
			<updated>2009-06-07T09:41:59Z</updated>
			<id>http://forum.cakephp.org.pl/post/344/#p344</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Validation message]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/343/#p343"/>
			<content type="html"><![CDATA[<p>Do tego służy najprawdopodobniej metoda error klasy FormHelper. Nie używałem tego akurat nigdy osobiście, ale myślę że o to Ci chodzi.</p><p><a href="http://api.cakephp.org/class/form-helper#method-FormHelpererror">http://api.cakephp.org/class/form-helpe &#133; elpererror</a></p>]]></content>
			<author>
				<name><![CDATA[Cookie]]></name>
				<uri>http://forum.cakephp.org.pl/user/214/</uri>
			</author>
			<updated>2009-06-06T07:46:50Z</updated>
			<id>http://forum.cakephp.org.pl/post/343/#p343</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Validation message]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/342/#p342"/>
			<content type="html"><![CDATA[<p>Czy ktos wie gdzie mozna ustawic wyswietlanie sie message przy walidacji? Mam na mysli miejsce na ekranie zeby moc ustawic np obok pola ktore waliduje a nie pod.</p>]]></content>
			<author>
				<name><![CDATA[carlin]]></name>
				<uri>http://forum.cakephp.org.pl/user/170/</uri>
			</author>
			<updated>2009-06-05T16:49:24Z</updated>
			<id>http://forum.cakephp.org.pl/post/342/#p342</id>
		</entry>
</feed>
