<?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>Tpoxa&#039;s blog &#187; Без рубрики</title>
	<atom:link href="http://tpoxa.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://tpoxa.com</link>
	<description></description>
	<lastBuildDate>Sun, 19 Jun 2011 21:11:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Bitcoin биржа Mt.Gox &#8212; взломана</title>
		<link>http://tpoxa.com/2011/06/20/bitcoin-birzha-mt-gox-vzlomana/</link>
		<comments>http://tpoxa.com/2011/06/20/bitcoin-birzha-mt-gox-vzlomana/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 21:11:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[bitcoin]]></category>

		<guid isPermaLink="false">http://tpoxa.com/?p=333</guid>
		<description><![CDATA[Японская биржа торгующая bitcoin была взломана. Как пишет администрация злоумышленники получили доступ ко всей базе в том числе к зашифрованным паролям. Всем пользователям рекомендовано сменить пароли (в случае если они используют одинаковые) в других сервисах. https://support.mtgox.com/entries/20208066-huge-bitcoin-sell-off-due-to-a-compromised-account-rollback]]></description>
			<content:encoded><![CDATA[<p>Японская биржа торгующая bitcoin была взломана. Как пишет администрация злоумышленники получили доступ ко всей базе в том числе к зашифрованным паролям.  Всем пользователям рекомендовано сменить пароли (в случае если они используют одинаковые) в других сервисах.</p>
<p>https://support.mtgox.com/entries/20208066-huge-bitcoin-sell-off-due-to-a-compromised-account-rollback</p>
]]></content:encoded>
			<wfw:commentRss>http://tpoxa.com/2011/06/20/bitcoin-birzha-mt-gox-vzlomana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fully ajax website with Yii &#8212; Part 1</title>
		<link>http://tpoxa.com/2011/04/19/fully-ajax-website-with-yii/</link>
		<comments>http://tpoxa.com/2011/04/19/fully-ajax-website-with-yii/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 11:07:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>
		<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[yii]]></category>

		<guid isPermaLink="false">http://tpoxa.com/?p=264</guid>
		<description><![CDATA[This article will be suitable for who made fully ajax site like  Gmail with best PHP Framework &#8212; Yii. Main requirements are: All pages should be loaded via ajax. All forms should be submitted via ajax. Pages should be reachable by search engines. History support. Window title support Minimal additional code. Here  is my solution. [...]]]></description>
			<content:encoded><![CDATA[<p>This article will be suitable for who made fully ajax site like  Gmail with best <a href="http://www.yiiframework.com/" target="_blank">PHP Framework &#8212; Yii.</a><br />
Main requirements are:</p>
<ol>
<li>All pages should be loaded via ajax.</li>
<li>All forms should be submitted via ajax.</li>
<li>Pages should be reachable by search engines.</li>
<li>History support.</li>
<li>Window title support</li>
<li>Minimal additional code.</li>
</ol>
<p>Here  is my solution.<br />
I get for example simple web application which you can made with help of <a title="Quick start first app" href="http://www.yiiframework.com/doc/guide/1.0/en/quickstart.first-app" target="_blank">yiic utility</a>.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="shell"><pre class="de1">cd /home/www/mywebsite
wget http://yii.googlecode.com/files/yii-1.1.7.r3135.tar.gz
gunzip yii-1.1.7.r3135.tar.gz
tar -xvf yii-1.1.7.r3135.tar
mv yii-1.1.7.r3135/framework/ ./
php framework/yiic.php webapp ./</pre></div></div></div></div></div></div></div>


<p>That is it your application has been created!</p>
<p>Add this code to the <strong>protected/views/layout/main.php</strong> file  before   &lt;/head&gt; tag.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">&nbsp;
<span class="kw2">&lt;?php</span> 
		<span class="re0">$cs</span> <span class="sy0">=</span> Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">getClientScript</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
  		<span class="re0">$cs</span><span class="sy0">-&gt;</span><span class="me1">registerCoreScript</span><span class="br0">&#40;</span><span class="st_h">'jquery'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  		<span class="re0">$cs</span><span class="sy0">-&gt;</span><span class="me1">registerCoreScript</span><span class="br0">&#40;</span><span class="st_h">'bbq'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span>
&nbsp;
  	<span class="kw2">&lt;?php</span> 
<span class="re0">$script</span><span class="sy0">=</span><span class="co3">&lt;&lt;&lt;HTML
			function applychanges(obj) {
					for(k in obj) {
						jQuery(k).html(obj[k]);
					}	
			}
HTML</span><span class="sy0">;</span>
<span class="re0">$cs</span><span class="sy0">-&gt;</span><span class="me1">registerScript</span><span class="br0">&#40;</span><span class="st_h">'applychanges'</span><span class="sy0">,</span> <span class="re0">$script</span><span class="sy0">,</span> CClientScript<span class="sy0">::</span><span class="me2">POS_HEAD</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span>	
&nbsp;
  	<span class="kw2">&lt;?php</span> 
<span class="re0">$script</span><span class="sy0">=</span><span class="co3">&lt;&lt;&lt;HTML
		var headline = $(&quot;#loading&quot;);
&nbsp;
		$(document).ajaxSend(function() {
    		headline
        	.attr(&quot;class&quot;, &quot;activity&quot;)
		});
&nbsp;
		$(document).ajaxStop(function() {
    		headline.removeAttr(&quot;class&quot;)
		 	});
HTML</span><span class="sy0">;</span>
<span class="re0">$cs</span><span class="sy0">-&gt;</span><span class="me1">registerScript</span><span class="br0">&#40;</span><span class="st_h">'loading-indicator'</span><span class="sy0">,</span> <span class="re0">$script</span><span class="sy0">,</span> CClientScript<span class="sy0">::</span><span class="me2">POS_READY</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span>
&nbsp;
&nbsp;
&nbsp;
<span class="kw2">&lt;?php</span> 
<span class="re0">$script</span><span class="sy0">=</span><span class="co3">&lt;&lt;&lt;HTML
&nbsp;
  // handling links and forms
&nbsp;
  $(&quot;a:not(.direct)&quot;).live(&quot;click&quot;, function(){		  	
		    var href = $(this).attr( &quot;href&quot; );		    
		    if(href==&quot;#&quot;)
		    	return false;	
&nbsp;
		    $.bbq.pushState({ url: href});  
		    return false;
		  });
&nbsp;
&nbsp;
&nbsp;
		  $(&quot;form:not(.direct)&quot;).live(&quot;submit&quot;, function(){
		  	var url = &quot;&quot;;
&nbsp;
			var type = jQuery(this).attr(&quot;method&quot;);
&nbsp;
			if(type==undefined)
		  		type = &quot;get&quot;;
&nbsp;
		  	if(type==&quot;get&quot;) {
&nbsp;
		  		var action = jQuery(this).attr(&quot;action&quot;);
		  		if(action.indexOf(&quot;?&quot;)==-1)
		  			url = action + &quot;?&quot; + jQuery(this).serialize();
		  		else 
		  			url = action + &quot;&amp;&quot;	+ jQuery(this).serialize();
&nbsp;
		  		$.bbq.pushState({ url: url});
&nbsp;
		  	} else {
		  		jQuery.ajax({
					type:&quot;post&quot;,
					data:$(this).serialize(),
					url:jQuery(this).attr(&quot;action&quot;),
						success:applychanges
					});
				}	
&nbsp;
&nbsp;
		  	return false;
		  })
&nbsp;
&nbsp;
		   $(window).bind( &quot;hashchange&quot;, function(e) {	    
    		var url = $.bbq.getState( &quot;url&quot; );    		
&nbsp;
    		if(!url)
    			return;
&nbsp;
		    $(&quot;a&quot;).each(function(){
		      var href = $(this).attr( &quot;href&quot; );
&nbsp;
		      if ( href === url ) {
		      	$(this).addClass( &quot;current&quot; ); $(this).parent(&quot;li&quot;).addClass( &quot;active&quot; );
&nbsp;
		      } else {
		        $(this).removeClass( &quot;current&quot; ); $(this).parent(&quot;li&quot;).removeClass( &quot;active&quot; );
		      }
		    });
&nbsp;
				jQuery.ajax({
					type:&quot;get&quot;,
					url:url,
					success:applychanges
				});
&nbsp;
		  });
&nbsp;
		  $(window).trigger( &quot;hashchange&quot; );
&nbsp;
HTML</span><span class="sy0">;</span>
<span class="re0">$cs</span><span class="sy0">-&gt;</span><span class="me1">registerScript</span><span class="br0">&#40;</span><span class="st_h">'ajaxlinks-and-forms'</span><span class="sy0">,</span> <span class="re0">$script</span><span class="sy0">,</span> CClientScript<span class="sy0">::</span><span class="me2">POS_READY</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>Next code should be added after &lt;body&gt; tag</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="html"><pre class="de1">&lt;div id=&quot;loading&quot;&gt;&lt;?php echo Yii::t('main','Loading');?&gt;&lt;/div&gt;</pre></div></div></div></div></div></div></div>


<p>We&#8217;ve jus added javascript code which will handle all client side job<br/> Then we extend Base controller class &#171;Controller&#187;.</p>
<p><strong>protected/componens/Controller.php</strong>; Add new methods below:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">public</span> <span class="kw2">function</span> ajaxRender<span class="br0">&#40;</span><span class="re0">$file</span><span class="sy0">,</span> <span class="re0">$data</span><span class="sy0">=</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
		<span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="sy0">=</span> CHtml<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">pageTitle</span><span class="br0">&#41;</span><span class="sy0">;</span>			
		<span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-type: text/x-json'</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="kw1">echo</span> CJSON<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span>
		Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="kw3">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw2">public</span> <span class="kw2">function</span> render<span class="br0">&#40;</span><span class="re0">$file</span><span class="sy0">,</span> <span class="re0">$params</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$data</span><span class="sy0">=</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
		<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">request</span><span class="sy0">-&gt;</span><span class="me1">isAjaxRequest</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
			<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">hasFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
				<span class="re0">$flashdata</span> <span class="sy0">=</span> Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">getFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="sy0">;</span>		
				<span class="re0">$data</span> <span class="sy0">=</span> <span class="re0">$data</span> <span class="sy0">+</span> <span class="re0">$flashdata</span><span class="sy0">;</span>	
			<span class="br0">&#125;</span>
&nbsp;
&nbsp;
			<span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">'#content'</span><span class="br0">&#93;</span> <span class="sy0">=</span> parent<span class="sy0">::</span><span class="me2">renderPartial</span><span class="br0">&#40;</span><span class="re0">$file</span><span class="sy0">,</span> <span class="re0">$params</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">'title'</span><span class="br0">&#93;</span> <span class="sy0">=</span> CHtml<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">pageTitle</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
			<span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-type: text/x-json'</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="kw1">echo</span> CJSON<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span>
			Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="kw3">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>			
			<span class="kw1">echo</span> parent<span class="sy0">::</span><span class="me2">render</span><span class="br0">&#40;</span><span class="re0">$file</span><span class="sy0">,</span> <span class="re0">$params</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>	
		<span class="br0">&#125;</span>	
&nbsp;
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw2">public</span> <span class="kw2">function</span> redirect<span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
		<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">is_array</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
			<span class="re0">$url</span> <span class="sy0">=</span> <span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
		<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">request</span><span class="sy0">-&gt;</span><span class="me1">isAjaxRequest</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
			<span class="re0">$data</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
			<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">hasFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
				<span class="re0">$flashdata</span> <span class="sy0">=</span> Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">getFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="sy0">;</span>		
				<span class="re0">$data</span> <span class="sy0">=</span> <span class="re0">$data</span> <span class="sy0">+</span> <span class="re0">$flashdata</span><span class="sy0">;</span>	
			<span class="br0">&#125;</span>
&nbsp;
			<span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">'#content'</span><span class="br0">&#93;</span><span class="sy0">=</span> <span class="st_h">'&lt;script type=&quot;text/javascript&quot;&gt;
&nbsp;
				jQuery.ajax({
					url:&quot;'</span><span class="sy0">.</span><span class="re0">$url</span><span class="sy0">.</span><span class="st_h">'&quot;,
					type:&quot;get&quot;,
					success:applychanges
				});
&nbsp;
			&lt;/script&gt;'</span><span class="sy0">;</span>
&nbsp;
&nbsp;
&nbsp;
			<span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-type: text/x-json'</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="kw1">echo</span> CJSON<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span>
			Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="kw3">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
			parent<span class="sy0">::</span><span class="me2">redirect</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw2">public</span> <span class="kw2">function</span> refresh<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">request</span><span class="sy0">-&gt;</span><span class="me1">isAjaxRequest</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
			<span class="re0">$data</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
			<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">hasFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
				<span class="re0">$flashdata</span> <span class="sy0">=</span> Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">getFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="sy0">;</span>		
				<span class="re0">$data</span> <span class="sy0">=</span> <span class="re0">$data</span> <span class="sy0">+</span> <span class="re0">$flashdata</span><span class="sy0">;</span>	
			<span class="br0">&#125;</span>
&nbsp;
&nbsp;
			<span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">'#content'</span><span class="br0">&#93;</span><span class="sy0">=</span> <span class="st_h">'&lt;script type=&quot;text/javascript&quot;&gt;
			var url = $.bbq.getState( &quot;url&quot; );
&nbsp;
			jQuery.ajax({
					url:url,
					type:&quot;get&quot;,
					success:applychanges
				});
&nbsp;
			&lt;/script&gt;'</span><span class="sy0">;</span>
&nbsp;
			<span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-type: text/x-json'</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="kw1">echo</span> CJSON<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span>
			Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="kw3">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
			parent<span class="sy0">::</span><span class="me2">refresh</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


<p> Then you have to override some Request methods to support CWebUser redirects:</p>
<p>Put content below to new file with name <strong>protected/components/EHttpRequest.php</strong></p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span> 
&nbsp;
<span class="kw2">class</span> EHttpRequest <span class="kw2">extends</span> CHttpRequest
<span class="br0">&#123;</span>
&nbsp;
	<span class="kw2">public</span> <span class="kw2">function</span> redirect<span class="br0">&#40;</span><span class="re0">$url</span><span class="sy0">,</span><span class="re0">$terminate</span><span class="sy0">=</span><span class="kw4">true</span><span class="sy0">,</span><span class="re0">$statusCode</span><span class="sy0">=</span><span class="nu0">302</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">is_array</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
			<span class="re0">$url</span> <span class="sy0">=</span> <span class="re0">$url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
		<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">request</span><span class="sy0">-&gt;</span><span class="me1">isAjaxRequest</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
			<span class="re0">$data</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
			<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">hasFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
				<span class="re0">$flashdata</span> <span class="sy0">=</span> Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">getFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="sy0">;</span>		
				<span class="re0">$data</span> <span class="sy0">=</span> <span class="re0">$data</span> <span class="sy0">+</span> <span class="re0">$flashdata</span><span class="sy0">;</span>	
			<span class="br0">&#125;</span>
&nbsp;
			<span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">'#content'</span><span class="br0">&#93;</span><span class="sy0">=</span> <span class="st_h">'&lt;script type=&quot;text/javascript&quot;&gt;
&nbsp;
				jQuery.ajax({
					url:&quot;'</span><span class="sy0">.</span><span class="re0">$url</span><span class="sy0">.</span><span class="st_h">'&quot;,
					type:&quot;get&quot;,
					success:applychanges
				});
&nbsp;
			&lt;/script&gt;'</span><span class="sy0">;</span>
&nbsp;
			<span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-type: text/x-json'</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="kw1">echo</span> CJSON<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
			Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="kw3">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>	
		<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
			parent<span class="sy0">::</span><span class="me2">redirect</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="kw2">public</span> <span class="kw2">function</span> refresh<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">request</span><span class="sy0">-&gt;</span><span class="me1">isAjaxRequest</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
			<span class="re0">$data</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
			<span class="kw1">if</span><span class="br0">&#40;</span>Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">hasFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
				<span class="re0">$flashdata</span> <span class="sy0">=</span> Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">user</span><span class="sy0">-&gt;</span><span class="me1">getFlash</span><span class="br0">&#40;</span><span class="st_h">'updatedata'</span><span class="br0">&#41;</span><span class="sy0">;</span>		
				<span class="re0">$data</span> <span class="sy0">=</span> <span class="re0">$data</span> <span class="sy0">+</span> <span class="re0">$flashdata</span><span class="sy0">;</span>	
			<span class="br0">&#125;</span>
&nbsp;
&nbsp;
			<span class="re0">$data</span><span class="br0">&#91;</span><span class="st_h">'#content'</span><span class="br0">&#93;</span><span class="sy0">=</span> <span class="st_h">'&lt;script type=&quot;text/javascript&quot;&gt;
			var url = $.bbq.getState( &quot;url&quot; );
&nbsp;
			jQuery.ajax({
					url:url,
					type:&quot;get&quot;,
					success:applychanges
				});
&nbsp;
			&lt;/script&gt;'</span><span class="sy0">;</span>
&nbsp;
			<span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-type: text/x-json'</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="kw1">echo</span> CJSON<span class="sy0">::</span><span class="me2">encode</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp;
			Yii<span class="sy0">::</span><span class="me2">app</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="kw3">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>	
		<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
			parent<span class="sy0">::</span><span class="me2">refresh</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


<p> Set new class name for request component in your main config <strong>protected/config/main.php</strong>
<p>It should looks like this</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">  <span class="sy0">....</span> 
  <span class="st_h">'components'</span><span class="sy0">=&gt;</span><span class="kw3">array</span><span class="br0">&#40;</span>
		<span class="st_h">'user'</span><span class="sy0">=&gt;</span><span class="kw3">array</span><span class="br0">&#40;</span>
			<span class="co1">// enable cookie-based authentication</span>
			<span class="st_h">'allowAutoLogin'</span><span class="sy0">=&gt;</span><span class="kw4">true</span><span class="sy0">,</span>
		<span class="br0">&#41;</span><span class="sy0">,</span>
&nbsp;
		<span class="st_h">'request'</span><span class="sy0">=&gt;</span><span class="kw3">array</span><span class="br0">&#40;</span>
                     <span class="st_h">'class'</span><span class="sy0">=&gt;</span><span class="st_h">'EHttpRequest'</span><span class="sy0">,</span>
               <span class="br0">&#41;</span><span class="sy0">,</span>
&nbsp;
   <span class="sy0">....</span></pre></div></div></div></div></div></div></div>


<p> That&#8217;s all. Now you have full ajax simple web application.<br/><br />
Offcourse it has some limitations and issues, further I&#8217;ll extend this article.</p>
<p>P.S. I have forgotten to say about styles.<br/> Just add these lines to your css file.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="css"><pre class="de1"><span class="re0">#loading</span> <span class="br0">&#123;</span>
	<span class="kw1">position</span><span class="sy0">:</span><span class="kw2">fixed</span><span class="sy0">;</span>
	<span class="kw1">padding</span><span class="sy0">:</span><span class="re3">3px</span><span class="sy0">;</span>
	<span class="kw1">background</span><span class="sy0">:</span><span class="re0">#80B646</span><span class="sy0">;</span>
	<span class="kw1">color</span><span class="sy0">:</span><span class="re0">#fff</span><span class="sy0">;</span>
	<span class="kw1">display</span><span class="sy0">:</span><span class="kw2">none</span><span class="sy0">;</span>
	<span class="kw1">z-index</span><span class="sy0">:</span><span class="nu0">999</span><span class="sy0">;</span>
	<span class="kw1">right</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span>
	<span class="kw1">top</span><span class="sy0">:</span><span class="nu0">0</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="re0">#loading</span><span class="re1">.activity</span> <span class="br0">&#123;</span>
	<span class="kw1">display</span><span class="sy0">:</span><span class="kw2">block</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://tpoxa.com/2011/04/19/fully-ajax-website-with-yii/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Magnetizer</title>
		<link>http://tpoxa.com/2011/02/05/magnetizer/</link>
		<comments>http://tpoxa.com/2011/02/05/magnetizer/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 12:15:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[magnet-link]]></category>
		<category><![CDATA[torrent]]></category>

		<guid isPermaLink="false">http://tpoxa.com/?p=228</guid>
		<description><![CDATA[Представляю вам сервис который позволяет получить магнет ссылку из торрент файла. Magnetizer.com.ua]]></description>
			<content:encoded><![CDATA[<p>Представляю вам сервис который позволяет получить магнет ссылку из торрент файла.<br />
<a href="http://magnetizer.com.ua/">Magnetizer.com.ua</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tpoxa.com/2011/02/05/magnetizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Привет Solr, Sphinx &#8212; пока, пока!</title>
		<link>http://tpoxa.com/2011/02/03/privet-solr-sphinx-poka-poka/</link>
		<comments>http://tpoxa.com/2011/02/03/privet-solr-sphinx-poka-poka/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 16:59:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[sphinx]]></category>

		<guid isPermaLink="false">http://tpoxa.com/?p=219</guid>
		<description><![CDATA[Недавно для одно из своих проектов понадобился полноценный поиск. В первую очередь я обратился к Sphinx но вскоре был вынужден от него отказаться в пользу поискового движка Solr от Apache Software Foundation Основные преимущества (для меня) Solr поставляется с более либеральной лицензией. (чтобы изменить функционал или использовать Sphinx как часть коммерческого приложения нужно покупать коммерческую [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно для одно из своих проектов понадобился полноценный поиск. В первую очередь я обратился к Sphinx но вскоре был вынужден от него отказаться в пользу поискового движка Solr от Apache Software Foundation</p>
<p>Основные преимущества (для меня)</p>
<ul>
<li> Solr поставляется с более либеральной лицензией. (чтобы изменить функционал или использовать Sphinx как часть коммерческого приложения нужно покупать коммерческую лицензию)</li>
<li> Solr не нуждается в предоставлении уникального идентификатора для документа. Для Sphinx нужен числовое уникальное значение.</li>
<li> В Solr тоже есть посдветка искомых слов.</li>
<li> В Solr также есть поддержка русской морфологии, подсветка искомого запроса в результатах поиска.</li>
<li> Для Solr не проблема удалить единичный или набор документов которые просто подходят определенному критерию поиска. Например можно все результаты поиска по определенному слову. В случае со Sphinx для этого нужно проводить переиндексацию. Также в единичном порядке можно добавить документы в индекс.</li>
<li> В Solr встроена поддержка проверки орфографии и утилита позволяющая не использовать дубликаты документов в поиске.</li>
<li> Solr может индексировать документы такие как Microsoft Word, PDF и другие</li>
<li> Solr   работает везде где есть Java</li>
<li> Для Solr есть отличное PHP extension под PHP http://www.php.net/manual/en/book.solr.php  Позволяющее проводить поиск, добавлять, удалять документы</li>
</ul>
<p>Думаю преимуществ достаточно чтобы выбрать Solr как поисковый движок для Вашего сайта.</p>
<p>Кратко о установке и использовании. На примере Freebsd.</p>
<p>Обновляем порты  (portsnap fetch, portsnap extract, portsnap update) или любым другим удобным для Вас способом</p>
<p>cd /usr/ports/textproc/apache-solr<br />
make install clean</p>
<p>В директории порта,  появится папка work в которой будет  готовый к работе дистрибутив. Переместим его в более удобное для работы место.</p>
<p>Далее.</p>
<p>cd apache-solr-1.4.1/example</p>
<p>java -jar start.jar</p>
<p>Все, Solr запускается.</p>
]]></content:encoded>
			<wfw:commentRss>http://tpoxa.com/2011/02/03/privet-solr-sphinx-poka-poka/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Не пользуйтесь Яндекс.Деньгами</title>
		<link>http://tpoxa.com/2010/11/07/do-not-use-yandex-money/</link>
		<comments>http://tpoxa.com/2010/11/07/do-not-use-yandex-money/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 07:33:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>

		<guid isPermaLink="false">http://tpoxa.com/?p=192</guid>
		<description><![CDATA[Вчера волей случая пришлось завести себе счет. Я и до этого был настроен против Яндекса, но это уже ни в какие рамки не лезит. В конце концов по большому счету Яндекс.Деньги абсолютно не предназначены для не граждан РФ. О чем можно догадаться только начав пользоваться этой системой. Чтобы вывести ЯД на вебмани через сам Яндекс [...]]]></description>
			<content:encoded><![CDATA[<p>Вчера волей случая пришлось завести себе счет. Я и до этого был настроен против Яндекса, но это уже ни в какие рамки не лезит. В конце концов по большому счету Яндекс.Деньги абсолютно не предназначены для не граждан РФ. О чем можно догадаться только начав пользоваться этой системой.</p>
<p>Чтобы вывести ЯД на вебмани через сам Яндекс нужно идентифицироват свой счет в ЯД а также иметь Атестат не ниже формального для Webmoney. Ваши данные (фамилия,имя) должны совпадать для обоих акаунтов. Комиссия 4.5%!</p>
<p>Пройти идентификацию оказывается не так уж и просто. Интересная информация по этому поводу <a href="http://www.klubok.net/reviews237.html">здесь</a></p>
<p>Также можно вывести с помощью сервисов http://yad.co.ua/ и http://www.yd.dp.ua/ что я и попытаюсь сделать, можете посмотреть с какими потерями я это сделаю. Но это все ничего. Ведь оказывается Вы вообще можете остаться без своих денег в любой момент. (см ссылку выше)</p>
<p>Вопрос, к чему этот пиар, рекламные кампании в Украине если полный спектр услуг и гарантий предоставляют только жителям РФ.</p>
<p>PS. БАГИ ЯНДЕКС.ДЕНЕГ</p>
<p>Проходил регистрацию, указал свой мобильный номер МТС УКРАИНА, СМС с кодом пришла почти сразу.</p>
<p>После регистрации захожу в настройки:</p>
<p><a href="http://tpoxa.com/wp-content/uploads/2010/11/Tv0wtPN5lUS4tCr24WSnRw.jpg"><img class="size-medium wp-image-194 alignnone" title="ЯндексГавно" src="http://tpoxa.com/wp-content/uploads/2010/11/Tv0wtPN5lUS4tCr24WSnRw-300x180.jpg" alt="" width="300" height="180" /></a></p>
<p>Мой совет &#8212; избегать использования Яндекс.Денег не гражданам России.</p>
]]></content:encoded>
			<wfw:commentRss>http://tpoxa.com/2010/11/07/do-not-use-yandex-money/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ненавижу Яндекс</title>
		<link>http://tpoxa.com/2010/09/24/i-hate-yandex/</link>
		<comments>http://tpoxa.com/2010/09/24/i-hate-yandex/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 20:08:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>

		<guid isPermaLink="false">http://tpoxa.com/?p=164</guid>
		<description><![CDATA[Меня просто бесит что везде в каждой софтине пытаются протулить яндекс бар и сделать его поиском по умолчанию.]]></description>
			<content:encoded><![CDATA[<p>Меня просто бесит что везде в каждой софтине пытаются протулить яндекс бар и сделать его поиском по умолчанию.</p>
]]></content:encoded>
			<wfw:commentRss>http://tpoxa.com/2010/09/24/i-hate-yandex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Iecollection</title>
		<link>http://tpoxa.com/2009/04/09/iecollection/</link>
		<comments>http://tpoxa.com/2009/04/09/iecollection/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 15:04:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Без рубрики]]></category>

		<guid isPermaLink="false">http://tpoxa.com/?p=68</guid>
		<description><![CDATA[Каждый кто верстал  знает как тяжело настроить одинаковое отображение в браузерах Internet Explorer До появления  IEcollection  я пользовался виртуальной машиной в которой была винда с IE6. Теперь же все намного проще. Любую версию от IE 1.5 до IE8 можно запустить на одной ОС всего одним кликом. Скачать можно здесь http://utilu.com/IECollection/]]></description>
			<content:encoded><![CDATA[<p>Каждый кто верстал  знает как тяжело настроить одинаковое отображение в браузерах Internet Explorer</p>
<p>До появления  IEcollection  я пользовался виртуальной машиной в которой была винда с IE6.</p>
<p>Теперь же все намного проще.</p>
<p>Любую версию от IE 1.5 до IE8 можно запустить на одной ОС всего одним кликом.</p>
<p>Скачать можно здесь <a href="http://utilu.com/IECollection/">http://utilu.com/IECollection/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tpoxa.com/2009/04/09/iecollection/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

