<?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>Статьи про web-разработку, PHP, CakePHP. &#187; cakephp</title>
	<atom:link href="http://blog.michas.ru/tag/cakephp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.michas.ru</link>
	<description>php, mysql, javascript, cakephp, jquery</description>
	<lastBuildDate>Wed, 24 Aug 2011 15:04:54 +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>CakePHP. Перенос на хостинг</title>
		<link>http://blog.michas.ru/2011/08/24/cakephp-move-to-hosting/</link>
		<comments>http://blog.michas.ru/2011/08/24/cakephp-move-to-hosting/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 15:04:54 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[cakephp для начинающих]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=161</guid>
		<description><![CDATA[На различных форумах часто вижу что люди спрашивают как перенести проект на CakePHP с одного хостинга на другой, или с локальной машины на хостинг. Чтобы без проблем перенести сайт достаточно всего нескольких простых действий: Задаем права 777 для каталога /app/tmp и всех его подкаталогов Удаляем все файлы(только файлы, каталоги оставляем) из каталога /app/tmp/cache В файле [...]]]></description>
			<content:encoded><![CDATA[<p>На различных форумах часто вижу что люди спрашивают как перенести проект на CakePHP с одного хостинга на другой, или с локальной машины на хостинг.<br />
Чтобы без проблем перенести сайт достаточно всего нескольких простых действий:</p>
<ol>
<li>Задаем права 777 для каталога /app/tmp и всех его подкаталогов</li>
<li>Удаляем все файлы(только файлы, каталоги оставляем) из каталога /app/tmp/cache</li>
<li>В файле /app/config/core.php находим строчку &laquo;Configure::write(&#8216;debug&#8217;, 2)&raquo; и проверяем чтобы на месте цифры 2 был ноль</li>
<li>В файле /app/config/database.php меняем имя базы данных и информацию для доступа к ней.(если на новом хостинге эта информация отличается от старой)</li>
</ol>
<p>В большинстве случаев этих простых шагов будет достаточно и ваш сайт заработает.<br />
Если этого не произошло то можно попробовать сделать следующее:</p>
<ol>
<li>В файле /app/config/core.php находим строчку &laquo;Configure::write(&#8216;debug&#8217;, 0)&raquo; и вставляем вместо 0 число 2. Это включит вывод ошибок на сайте</li>
<li>Смотрим логи которые пишет фреймворк в каталоге /app/tmp/logs/</li>
<li>Смотрим лог ошибок вебсервера. Его расположение зависит от используемого вебсервера и его настроек</li>
</ol>
<p>Эти действия позволят вам найти и исправить возможные ошибки.</p>
<p>Так же следует обратить внимание на используемую версию php. В некоторых случаях(к примеру при использовании сторонних классов и библиотек) ваш проект может содержать код который не может быть выполнен установленной версией php.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2011/08/24/cakephp-move-to-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP и относительные пути url в JavaScript</title>
		<link>http://blog.michas.ru/2011/04/04/cakephp-and-relative-url-in-javascript/</link>
		<comments>http://blog.michas.ru/2011/04/04/cakephp-and-relative-url-in-javascript/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 09:07:48 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[решения проблем]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[relative]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=150</guid>
		<description><![CDATA[Способность web-приложения работать не только в корневом каталоге сайта, но и в любом подкаталоге делает его более привлекательным для использования. Если при использовании CakePHP соблюдать стандарты и для формирования url использовать $html->link() и Router::url() то ссылки в приложении всегда будут с учетом того из какого каталога оно запущенно. Но, как всегда есть &#171;но&#187;. JavaScript ничего [...]]]></description>
			<content:encoded><![CDATA[<p>Способность web-приложения работать не только в корневом каталоге сайта, но и в любом подкаталоге делает его более привлекательным для использования. </p>
<p>Если при использовании CakePHP соблюдать стандарты и для формирования url использовать $html->link() и Router::url() то ссылки в приложении всегда будут с учетом того из какого каталога оно запущенно.</p>
<p>Но, как всегда есть &laquo;но&raquo;. JavaScript ничего не подозревает о том из какого каталога запущено приложение. Из-за этого возникает проблема с url для AJAX запросов. Ниже я приведу один из способов решения этой проблемы.</p>
<p>Первым делом добавим во все layout&#8217;ы строчку в секцию head:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;base href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> Router<span style="color: #339933;">::</span><span style="color: #004000;">url</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;</pre></div></div>

<p><span id="more-150"></span></p>
<p>Теперь добавим JavaScript функцию в js файл который доступен для всего приложения:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">url</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">return</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'base'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>url.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Все. Теперь осталось только использовать решение.<br />
Пример получения данных:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#foo'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">url</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/posts/index));</span></pre></div></div>

<p>*В статье приведены примеры с использованием jQuery.<br />
**Были использованы материалы с сайта <a href="http://debuggable.com">http://debuggable.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2011/04/04/cakephp-and-relative-url-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обновление CakePHP. Версия 1.3.5</title>
		<link>http://blog.michas.ru/2010/10/26/cakephp-1-3-5-released/</link>
		<comments>http://blog.michas.ru/2010/10/26/cakephp-1-3-5-released/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 09:20:40 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=125</guid>
		<description><![CDATA[С прошлого обновления прошло полтора месяца. За это время разработчики успели сделать больше 50-ти комитов в репозиторий и закрыть 40 тикетов. Список самых значительных изменений: На главную (по умолчанию) страницу добавлено уведомление о возможно неправильно работающих библиотеках PCRE; RequestHandlerComponent теперь автоматически отправляет загаловки content-type и encoding; Названия таблиц содержащие пробелы теперь работают корректно; Улучшена совестимость с Postgres 9.0; MemcacheEngine [...]]]></description>
			<content:encoded><![CDATA[<p>С <a href="http://blog.michas.ru/2010/09/12/cakephp-1-3-4-released/">прошлого</a> обновления прошло полтора месяца. За это время разработчики успели сделать больше 50-ти комитов в репозиторий и закрыть 40 тикетов.</p>
<p>Список самых значительных изменений:</p>
<ul>
<li>На главную (по умолчанию) страницу добавлено уведомление о возможно неправильно работающих библиотеках PCRE;</li>
<li>RequestHandlerComponent теперь автоматически отправляет загаловки content-type и encoding;</li>
<li>Названия таблиц содержащие пробелы теперь работают корректно;</li>
<li>Улучшена совестимость с Postgres 9.0;</li>
<li>MemcacheEngine теперь корректно работает с IPv6 адресами;</li>
<li>Тэг &lt;cake:nocache&gt; теперь удаляется даже если CacheHelper не загружен;</li>
<li>SecurityComponent теперь корректно работает с иенами пользователей которые состоят из e-mail адресов;</li>
<li>Роутер теперь правильно обрабатывает выражения для параметра :action.</li>
</ul>
<p>Скачать новую версию можно <a href="http://github.com/cakephp/cakephp/downloads">здесь</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2010/10/26/cakephp-1-3-5-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Использование UUID в качестве первичного ключа</title>
		<link>http://blog.michas.ru/2010/10/15/using-uuid-as-primary-key/</link>
		<comments>http://blog.michas.ru/2010/10/15/using-uuid-as-primary-key/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 14:09:56 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp для начинающих]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[primary key]]></category>
		<category><![CDATA[uuid]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=120</guid>
		<description><![CDATA[Первичные ключи в таблицах обычно имеют целочисленный тип и обычно автоинкрементные. При добавлении новой записи СУБД автоматически подставляет значение этого поля которое на единицу больше чем предыдущее. В CakePHP существует возможность вместо числа использовать UUID. Для этого всего лишь необходимо для вашего первичного ключа указать тип CHAR(36) или  BINARY(36), все остальное CakePHP сделает сам.]]></description>
			<content:encoded><![CDATA[<p>Первичные ключи в таблицах обычно имеют целочисленный тип и обычно автоинкрементные. При добавлении новой записи СУБД автоматически подставляет значение этого поля которое на единицу больше чем предыдущее.</p>
<p>В CakePHP существует возможность вместо числа использовать <a href="http://ru.wikipedia.org/wiki/UUID">UUID</a>. Для этого всего лишь необходимо для вашего первичного ключа указать тип CHAR(36) или  BINARY(36), все остальное CakePHP сделает сам.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2010/10/15/using-uuid-as-primary-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Используем шаблонизатор Twig в CakePHP</title>
		<link>http://blog.michas.ru/2010/10/11/using-twig-in-cakephp/</link>
		<comments>http://blog.michas.ru/2010/10/11/using-twig-in-cakephp/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:27:42 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[cakephp-plugins]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[twig]]></category>
		<category><![CDATA[шаблонизатор]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=105</guid>
		<description><![CDATA[Есть такой замечательный php-шаблонизатор Twig которым с недавнего времени занимается автор фреймворка Symfony &#8211; Fabien Potencier. По заверениям авторов этот шаблонизатор один из самых быстрых. Сторонние разработчики тоже подтверждают это. Но речь в посте пойдет не о прелестях Twig, а о том как его можно &#171;прикрутить&#187; к CakePHP. Порядок действий: Скачаем плагин cakephp-twig-view с помощью Git или архивом; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.michas.ru/wp-content/uploads/2010/10/twig_logo.jpg"><img class="alignleft size-full wp-image-106" style="margin: 5px;" title="Логотип Twig" src="http://blog.michas.ru/wp-content/uploads/2010/10/twig_logo.jpg" alt="" width="250" height="100" /></a>Есть такой замечательный php-шаблонизатор <a href="http://www.twig-project.org/">Twig</a> которым с недавнего времени занимается автор фреймворка <a href="http://www.symfony-project.org/">Symfony</a> &#8211; Fabien Potencier.</p>
<p>По заверениям авторов этот шаблонизатор один из самых быстрых. Сторонние разработчики тоже подтверждают это.</p>
<p>Но речь в посте пойдет не о прелестях Twig, а о том как его можно &laquo;прикрутить&raquo; к CakePHP.<br />
<span id="more-105"></span><br />
Порядок действий:</p>
<ol>
<li>Скачаем плагин <a href="http://github.com/m3nt0r/cakephp-twig-view">cakephp-twig-view</a> с помощью Git или <a href="http://github.com/m3nt0r/cakephp-twig-view/zipball/master">архивом</a>;</li>
<li>Скопируем плагин в каталог /app/plugins/twig_view;</li>
<li>Скачаем сам <a href="http://github.com/fabpot/Twig">Twig</a> Git&#8217;ом или <a href="http://github.com/fabpot/Twig/zipball/master">архивом</a>;</li>
<li>Скачанный Twig необходимо разместить в каталоге /app/plugins/twig_view/vendors;</li>
<li>В AppController&#8217;е вашего приложения добавим переменную var $view = &#8216;TwigView.Twig&#8217;;</li>
<li>Установка завершена.</li>
</ol>
<p>По умолчанию скомпилированные шаблоны сохраняются в каталоге APP/plugins/twig_view/tmp/views (не забыть проверить что каталог доступен для записи), но этот путь можно изменить :</p>
<p style="padding-left: 30px;">- в bootstrap.php добавим define(&#8216;TWIG_VIEW_CACHE&#8217;, &#8216;/your/cache/path&#8217;);</p>
<p>Плагин работает с файлами шаблона имеющими расширение &laquo;.tpl&raquo;, таким образом можно совмещать использование стандартного шаблонизатора (файлы с расширением &laquo;.ctp&raquo;) и Twig.</p>
<p>Пример как может выглядеть ваш default.tpl:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;!</span>DOCTYPE HTML <span style="color: #000000; font-weight: bold;">PUBLIC</span> <span style="color: #0000ff;">&quot;-//W3C//DTD HTML 4.01//EN&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>html<span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;</span>head<span style="color: #339933;">&gt;</span>
	<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> html<span style="color: #339933;">.</span>charset<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span>
	<span style="color: #339933;">&lt;</span>title<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">'CakePHP: the rapid development php framework'</span><span style="color: #339933;">|</span>trans <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> title_for_layout <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;/</span>title<span style="color: #339933;">&gt;</span>
	<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> html<span style="color: #339933;">.</span>meta<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'icon'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> html<span style="color: #339933;">.</span>css<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cake.generic'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> scripts_for_layout <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span>
  <span style="color: #339933;">&lt;/</span>head<span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;</span>body<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;container&quot;</span><span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;header&quot;</span><span style="color: #339933;">&gt;</span>
			<span style="color: #339933;">&lt;</span>h1<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>
				html<span style="color: #339933;">.</span><span style="color: #990000;">link</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'CakePHP: the rapid development php framework'</span><span style="color: #339933;">|</span>trans<span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://cakephp.org'</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">&lt;/</span>h1<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;content&quot;</span><span style="color: #339933;">&gt;</span>
			<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> session<span style="color: #339933;">.</span>flash<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> content_for_layout <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span>
		<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;footer&quot;</span><span style="color: #339933;">&gt;</span>
		<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>
			html<span style="color: #339933;">.</span>image<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cake.power.gif'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span>
				<span style="color: #0000ff;">'alt'</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">'Powered by CakePHP'</span><span style="color: #339933;">|</span>trans<span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'url'</span><span style="color: #339933;">:</span> <span style="color: #0000ff;">'http://cakephp.org'</span>
			<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span>
		<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
  <span style="color: #339933;">&lt;/</span>body<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2010/10/11/using-twig-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Новый релиз CakePHP. Версия 1.3.4</title>
		<link>http://blog.michas.ru/2010/09/12/cakephp-1-3-4-released/</link>
		<comments>http://blog.michas.ru/2010/09/12/cakephp-1-3-4-released/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 15:36:11 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=97</guid>
		<description><![CDATA[Новая версия включает 77 коммитов в репозиторий и 54 закрытых тикета. Вот несколько изменений которые могут повлиять на работу вашего приложения: Файл схемы БД для плагинов теперь имеет переменную имени класса $PluginSchema, вместо AppSchema; Параметры роутинга содержащие внутри &#171;-&#187; теперь работают как ожидается; Исправленна ошибка при которой метод SessionComponent::destroy() не всегда удалял данные; Улучшенна работа [...]]]></description>
			<content:encoded><![CDATA[<p>Новая версия включает 77 коммитов в репозиторий и 54 закрытых тикета.</p>
<p>Вот несколько изменений которые могут повлиять на работу вашего приложения:</p>
<ul>
<li>Файл схемы БД для плагинов теперь имеет переменную имени класса $PluginSchema, вместо AppSchema;</li>
<li>Параметры роутинга содержащие внутри &laquo;-&raquo; теперь работают как ожидается;</li>
<li>Исправленна ошибка при которой метод SessionComponent::destroy() не всегда удалял данные;</li>
<li>Улучшенна работа &laquo;<a href="http://book.cakephp.org/view/1103/Scaffolding">Scaffold&#8217;инга</a>&raquo; при работе с темами;</li>
<li>Метод String::insert() теперь работает лучше с ключами в начале которых содержатся другие ключи;</li>
<li>DboMysql теперь корректно работает с получением столбцов и параметров таблицы;</li>
<li>Исправленна ошибка функции setlocale(), связанная с использованием символа &laquo;,&raquo; ;</li>
<li>EmailComponent теперь более корректно обрабатывает адреса электронной почты имеющие алиасы.</li>
</ul>
<p>Скачать новую версию можно из <a href="http://github.com/cakephp/cakephp/downloads">оффициального репозитория</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2010/09/12/cakephp-1-3-4-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Плагин для создания многоязычного сайта</title>
		<link>http://blog.michas.ru/2010/09/07/plugin-for-multilanguage-site/</link>
		<comments>http://blog.michas.ru/2010/09/07/plugin-for-multilanguage-site/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 07:24:32 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[cakephp-plugins]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=70</guid>
		<description><![CDATA[Разработчики CakePHP выпустили плагин для упрощения создания многоязычного сайта. Скачать можно на github’е.]]></description>
			<content:encoded><![CDATA[<div><a id="internal-source-marker_0.07636680896393955" href="http://cakedc.com/">Разработчики</a> <a href="http://cakephp.org/">CakePHP</a> выпустили плагин для упрощения создания многоязычного сайта.<br />
Скачать можно на <a href="http://github.com/CakeDC/i18n">github’е</a>.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2010/09/07/plugin-for-multilanguage-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Статические и динамические страницы в одном контроллере</title>
		<link>http://blog.michas.ru/2010/02/11/static-and-dynamic-pages-in-a-single-controller/</link>
		<comments>http://blog.michas.ru/2010/02/11/static-and-dynamic-pages-in-a-single-controller/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 08:41:35 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[pages]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=51</guid>
		<description><![CDATA[В CakePHP есть замечательный стандартный контроллер pages который позволяет нам отображать статические страницы просто создав новый файл. Но очень часто нам требуется иметь как статические страницы так и динамические, содержание которых хранится в БД. Ниже я приведу пример как это можно реализовать используя один контроллер. Предположим у вас есть метод в контроллере pages с именем [...]]]></description>
			<content:encoded><![CDATA[<p>В CakePHP есть замечательный стандартный контроллер pages который позволяет нам отображать статические страницы просто создав новый файл.</p>
<p>Но очень часто нам требуется иметь как статические страницы так и динамические, содержание которых хранится в БД. Ниже я приведу пример как это можно реализовать используя один контроллер.<br />
<span id="more-51"></span><br />
Предположим у вас есть метод в контроллере pages с именем view:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> view<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</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: #339933;">!</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Session</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFlash</span><span style="color: #009900;">&#40;</span>__<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Invalid Page.'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">redirect</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Page</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'first'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'conditions'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Этот метод выводит содержание динамической страницы.</p>
<p>Теперь сделаем так, чтобы данный метод мог выводить и статические и динамические страницы.<br />
Прежде всего добавим в контроллер pages новый метод display. Он находится в стандартном контроллере pages и имеет вид:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> display<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #990000;">func_get_args</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$count</span> <span style="color: #339933;">=</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$count</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">redirect</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$subpage</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$subpage</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$count</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$title</span> <span style="color: #339933;">=</span> Inflector<span style="color: #339933;">::</span><span style="color: #004000;">humanize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$count</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">compact</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'subpage'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">render</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">join</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>После того как мы добавили новый метод, нам необходимо модифицировать метод view для достижения поставленной цели:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> view<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</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: #339933;">!</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Session</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFlash</span><span style="color: #009900;">&#40;</span>__<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Invalid Page.'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">redirect</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Page</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'first'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'conditions'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'page'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Рассмотрим подробнее проделанные изменения. Вначале мы попробуем найти страницу с заданным именем в БД, если она там найденна то выведем ее, если нет, то, вызываем новый метод display, который ищет в &laquo;/app/views/pages/&raquo; файл с названием которое передается в параметре метода и выводит его.</p>
<p>Готово! Теперь чтобы вывести статичную страницу достаточно создать файл с расширением &laquo;ctp&raquo; в каталоге &laquo;/app/views/pages/&raquo;, а чтобы вывести динамическую страницу, достаточно добавить ее в БД.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2010/02/11/static-and-dynamic-pages-in-a-single-controller/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Агрегатные SQL функции в CakePHP</title>
		<link>http://blog.michas.ru/2009/09/14/aggregation-sql-functions-with-cakephp/</link>
		<comments>http://blog.michas.ru/2009/09/14/aggregation-sql-functions-with-cakephp/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 08:27:56 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp для начинающих]]></category>
		<category><![CDATA[aggregation sql functions]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=43</guid>
		<description><![CDATA[Для начинающих CakePHP программистов часто становится проблемой использовать агрегатные SQL функции такие как MAX, MIN или AVG. В этом посте я расскажу как легко с этим справиться. Допустим вы хотите отобразить среднее количество просмотров поста в блоге или новости. SQL запрос должен выглядеть примерно так: SELECT AVG&#40;views&#41; FROM posts Чтобы не использовать функцию query() вы [...]]]></description>
			<content:encoded><![CDATA[<p>Для начинающих CakePHP программистов часто становится проблемой использовать агрегатные SQL функции такие как MAX, MIN или AVG. В этом посте я расскажу как легко с этим справиться.</p>
<p><span id="more-43"></span> Допустим вы хотите отобразить среднее количество просмотров поста в блоге или новости.</p>
<p>SQL запрос должен выглядеть примерно так:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> AVG<span style="color: #66cc66;">&#40;</span>views<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">FROM</span> posts</pre></div></div>

<p>Чтобы не использовать функцию query() вы можете использовать следующий синтаксис в CakePHP:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'first'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'fields'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'AVG(views) as avg_views'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Как видите ничего сложного нет <img src='http://blog.michas.ru/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2009/09/14/aggregation-sql-functions-with-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хелперы. Полезные манипуляции со строками[перевод]</title>
		<link>http://blog.michas.ru/2009/05/12/xelpery-poleznye-manipulyacii-so-strokamiperevod/</link>
		<comments>http://blog.michas.ru/2009/05/12/xelpery-poleznye-manipulyacii-so-strokamiperevod/#comments</comments>
		<pubDate>Tue, 12 May 2009 10:42:47 +0000</pubDate>
		<dc:creator>michas</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[helpers]]></category>
		<category><![CDATA[translate]]></category>

		<guid isPermaLink="false">http://blog.michas.ru/?p=15</guid>
		<description><![CDATA[CakePHP поставляется с кучей полезных хелперов и компонентов, которые обеспечивают удобные инструменты для обработки и манипулирования данными. Эти хелперы значимы не только для пользователя фреймворка, но и могут оказать большую помощь кому-нибудь кто пишет PHP приложения не используя CakePHP. Вот несколько примеров: NumberHelper Number хелпер содержит мощные функции для манипуляции с цифрами. precision() precision() возвращает [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP поставляется с кучей полезных хелперов и компонентов, которые обеспечивают удобные инструменты для обработки и манипулирования данными. Эти хелперы значимы не только для пользователя фреймворка, но и могут оказать большую помощь кому-нибудь  кто пишет PHP приложения не используя CakePHP.<br />
<span id="more-15"></span>Вот несколько примеров:</p>
<h2>NumberHelper</h2>
<p>Number хелпер содержит мощные функции для манипуляции с цифрами.</p>
<p><strong>precision()</strong></p>
<p>precision() возвращает число форматированное с уровнем точности. Например:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$number</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">precision</span><span style="color: #009900;">&#40;</span><span style="color:#800080;">25.02558</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//выведет</span>
<span style="color:#800080;">25.026</span></pre></div></div>

<p><strong>toReadableSize()</strong></p>
<p>Эта функция принимает параметром размер файла и возвращает хорошо отформатированную строку с указанием размера в байтах, Кб, Мб, Гб и Тб. Например:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$number</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">toReadableSize</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2502558</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//выведет</span>
<span style="color:#800080;">2.39</span> MB</pre></div></div>

<p>Другие функции хелпера Numer:<br />
<strong>toPercentage()</strong>: Форматирует число в проценты.<br />
<strong>format()</strong>:Форматирует число в денежный формат.<br />
<strong>currency()</strong>:Форматирует число в денежный формат подписанные знаком валюты.</p>
<p>Смотрите файл <strong>cake/libs/view/helpers/number.php</strong> чтобы ознакомится с полным списком функций Number хелпера и их применением.</p>
<h2>TextHelper</h2>
<p>Text хелпер содержит полезные функции для манипуляции с текстовыми строками.</p>
<p><strong>highlight()</strong></p>
<p>Подсвечивает заданную фразу в текстк. Например:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$text</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">highlight</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Word example will be highlighted&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;example&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//выведет</span></pre></div></div>

<p>This is the string in which word <span style="background: #ffff00;">example</span> will be highlighted</p>
<p>Примечание: вы должны определить стиля для класса “highlight” в вашем CSS. Например:<br />
.highlight{background:#FFFF00;}</p>
<p><strong>stripLinks()</strong></p>
<p>Уберет все ссылки(&lt;a href=….) из заданного текста. Пример:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$text</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">stripLinks</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Dont show the clickable link on &lt;a href=&quot;http://www.givebackindia.com&quot;&gt;Online Charity Mall&lt;/a&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//выведет</span>
Dont show the clickable <span style="color: #990000;">link</span> on Online Charity Mall</pre></div></div>

<p><strong>autoLinkUrls()</strong></p>
<p>Добавляет ссылки (&lt;a href=….) в заданном тексте в котором строки начинаются с http:// и ftp://.</p>
<p><strong>autoLinkEmails()</strong></p>
<p>Добавляет email ссылки(&lt;a href=”mailto:….) в заданном тексте.</p>
<p><strong>truncate()</strong></p>
<p>Обрезает строку до длины указанной во втором параметре и заменяет последние символы. Заботится о HTML тэгах и кодировке.</p>
<p>Например:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$text</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">truncate</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Cuts a string to the length of given second argument and replaces the last characters. Takes care of HTML tags and encoding.&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//outputs</span>
Cuts a string to the length of given second arg<span style="color: #339933;">...</span></pre></div></div>

<p><strong>excerpt()</strong></p>
<p>Создает выдержку из текста вокруг искомой фразы длиной определенной радиусом и добавляет окончание.</p>
<p><strong>toList()</strong></p>
<p>Создает список разделенный запятыми где два последних элемента соеденены ‘and’.</p>
<p>Смотрите файл <strong>cake/libs/view/helpers/text.php</strong> чтобы ознакомится с полным списком функций и их использованием.</p>
<h2>Time Helper</h2>
<p><strong>convert()</strong></p>
<p>Конвертирует данное время(во временной зоне сервера) в пользовательское локальное время со сдвигом от GMT.</p>
<p><strong>nice()</strong></p>
<p>Возвращает хорошо форматированную строку для данной Datetime строки.</p>
<p><strong>niceShort()</strong></p>
<p>Возвращает форматированную строку даты в виде описания.</p>
<p><strong>isToday()</strong></p>
<p>Возвращает true если данная datetime строка равна текущей дате.</p>
<p><strong>isThisWeek()</strong></p>
<p>Возвращает true если данная дата на текущей неделе.</p>
<p><strong>isThisMonth()</strong></p>
<p>Возвращает true если данная дата в текущем месяце.</p>
<p><strong>isThisYear()</strong></p>
<p>Возвращает true если данная дата в текущем году.</p>
<p><strong>wasYesterday()</strong></p>
<p>Возвращает true если данная дата была вчера.</p>
<p><strong>isTomorrow()</strong></p>
<p>Возвращает true если данная дата будет завтра.</p>
<p><strong>timeAgoInWords()</strong></p>
<p>Возвращает относительную дата или форматированную в зависимости от разницы между текущей датой и данной.</p>
<p><strong>format()</strong></p>
<p>Возвращает UNIX timestamp, данный либо в UNIX timestamp или правильной strtotime() строке.</p>
<p>Смотрите файл <strong>cake/libs/view/helpers/time.php</strong> чтобы ознакомится с полным списком функций и их использованием.</p>
<p>Также есть и другие хелперы, некоторые из них(например html, form, javascript, ajax) каркас отображений в CakePHP. Вам необходимо посмотреть на них в <strong>cake/libs/view/helpers</strong> для лучшего применения.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.michas.ru/2009/05/12/xelpery-poleznye-manipulyacii-so-strokamiperevod/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

