<?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>Записки профессора</title>
	<atom:link href="http://n-professor.ru/feed" rel="self" type="application/rss+xml" />
	<link>http://n-professor.ru</link>
	<description>или записки сумасшедшего =)</description>
	<lastBuildDate>Sat, 14 Jan 2012 07:20:59 +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>UMI перенос новостей, со старого сайта.</title>
		<link>http://n-professor.ru/umi-perenos-novostej-so-starogo-sajta.html</link>
		<comments>http://n-professor.ru/umi-perenos-novostej-so-starogo-sajta.html#comments</comments>
		<pubDate>Tue, 10 Jan 2012 19:34:16 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[UMI.CMS]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=480</guid>
		<description><![CDATA[Задача, перенести около 300 новостей с сайта, созданного на HTML в UMI.CMS. В umi я пока новичок так что жду от более опытных в этой сфере комментариев. Я пишу свой макрос в модуле импорта данных. Это ж все-таки импорт. В папке classes\modules\exchange лежит файл __custom.php примерно такого содержания abstract class __custom_exchange &#123;&#125; Добавляем туда метод public [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://n-professor.ru/wp-content/uploads/carry_books.jpg" rel="thumbnail"><img src="http://n-professor.ru/wp-content/uploads/carry_books.jpg" alt="" title="carry_books" width="224" height="370" class="alignleft size-full wp-image-483" /></a>Задача, перенести около 300 новостей с сайта, созданного на HTML в UMI.CMS. В umi я пока новичок так что жду от более опытных в этой сфере комментариев. Я пишу свой макрос в модуле импорта данных. Это ж все-таки импорт.</p>
<p>В папке classes\modules\exchange лежит файл __custom.php примерно такого содержания</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">abstract <span style="color: #000000; font-weight: bold;">class</span> __custom_exchange <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span></div></div>
<p>Добавляем туда метод</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> import_news<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span></div></div>
<p>Первое что нужно сделать, это распарсить HTML. У меня есть список страниц новостей и пара страниц со списком новостей, картинкой анонса и анонсом.<br />
<span id="more-480"></span><br />
Поэтому я руками из 10 файлов собираю 1 (лень было написать скрипт =)), который состоит только из анонсов. И собираю всю информацию в массив. Потом пробегаюсь по всем файлам новостей(тут их  более 300, ручками не катит) и сразу же запихиваю их в UMI не забыв при этом найти нужный анонс и запихнуть его тудаже.</p>
<p>Вроде все просто, вот код:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> import_news<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">set_time_limit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Получаем страницу со всеми анонсами</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$anonsAll</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;anons/all.html&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Вытягиваем 1 регуляркой сразу все анонсы с отделенными картинками, описанием и названием</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#&lt;img.*?src=&quot;(.*?)&quot;.*?&lt;a.*?&gt;(.*?)&lt;/a&gt;.*?(&lt;p&gt;.*?&lt;/p&gt;)#is'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$anonsAll</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arrayAnons</span><span style="color: #339933;">,</span> PREG_SET_ORDER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//сканируем дирректорию и получаем все новости</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$files1</span> <span style="color: #339933;">=</span> <span style="color: #990000;">scandir</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'news_text'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//здесь мы получаем ID типа объекта новости.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$typesCollection</span> <span style="color: #339933;">=</span> umiObjectTypesCollection<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$typeId</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$typesCollection</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getBaseType</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'news'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'subject'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$files1</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;.&quot;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$var</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;windows-1251&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Здесь я не стал заморачиваться 1 регуляркой, все равно код на 5 минут.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#&lt;h1&gt;(.*?)&lt;/h1&gt;#is&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arrayItem</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$h1</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$arrayItem</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#&lt;p&gt;.*&lt;/p&gt;#is&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arrayItem</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$arrayItem</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#&lt;img.*?src=&quot;(.*?)&quot;.*?&gt;#is'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arrayItem</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$img</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/images/news/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;files/news/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arrayItem</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</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: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Находим нужный анонс</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$arrayAnons</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$an</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$an</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</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><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$anons</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$an</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$imgAnons</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/images/news/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;files/news/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$an</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: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Создаем новый пустой элемент (новую новость)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> umiHierarchy<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element_id</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">37</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">36</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h1</span><span style="color: #339933;">,</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.html&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$typeId</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Ставим права.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$p</span> <span style="color: #339933;">=</span> permissionsCollection<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$users_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">298</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//298 - это ID объекта &quot;Гость&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$users_array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$p</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setElementPermissions</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$v</span><span style="color: #339933;">,</span> <span style="color: #000088;">$element_id</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Получаем только что созданный элемент</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getElement</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$element_id</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Задаем ему все параметры</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setIsActive</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'content'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'anons'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$anons</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'h1'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$h1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'anons_pic'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$imgAnons</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setValue</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'publish_pic'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$img</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$element</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">commit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></div>
<p>Какие у меня проблемы возникли кроме поиска информации обо всем, об этом.<br />
1)	Что такое 36 в addElement? В документации написано что это id иерархического типа (umiHierarchyType). Что это за зверь такой я не понял, но по моему это не ID шаблона данных.<br />
2)	ID группы пользователей “Все” я тоже не знал где найти, сделал ID пользователя “Гость”</p>
<p>Остальное вроде все понятно. Удачи.</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/umi-perenos-novostej-so-starogo-sajta.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Архитектура CMS на фреймворке Yii.</title>
		<link>http://n-professor.ru/arxitektura-cms-na-frajmvorke-yii.html</link>
		<comments>http://n-professor.ru/arxitektura-cms-na-frajmvorke-yii.html#comments</comments>
		<pubDate>Wed, 23 Nov 2011 10:43:27 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>
		<category><![CDATA[Yii framework]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=467</guid>
		<description><![CDATA[Я написал на Yii один крупный проект, несколько мелких, и сейчас заканчиваю еще один крупный проект. Познакомился я с Yii год назад. Не сказал бы что я досконально с ним разобрался, но все же опыт какой то появился. Вот хотел бы поделиться тем, как я организую приложение на Yii. И так, архитектура папок у меня [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://n-professor.ru/wp-content/uploads/qkz39yuj.jpg" rel="thumbnail"><img class="alignleft size-full wp-image-474" style="margin-left: 10px; margin-right: 10px;" title="qkz39yuj" src="http://n-professor.ru/wp-content/uploads/qkz39yuj.jpg" alt="" width="155" height="113" /></a>Я написал на Yii один крупный проект, несколько мелких, и сейчас заканчиваю еще один крупный проект. Познакомился я с Yii год назад. Не сказал бы что я досконально с ним разобрался, но все же опыт какой то появился.</p>
<p>Вот хотел бы поделиться тем, как я организую приложение на Yii.</p>
<p>И так, архитектура папок у меня такая<span id="more-467"></span></p>
<pre>assets
libs
protected
        components/
        config/
        controllers/
        data/
        extensions/
        messages/
        models/
        modules/
        runtime/
        tests/
public
themes</pre>
<p>Ну во, вроде ничего лишнего нет.</p>
<p>Теперь к сути. Не пойму, зачем по умолчанию в Yii в корневом каталоге есть папки css, js и images. Ведь есть же папка для тем themes, пусть там и лежат. Ведь все это относится только к темам. Да, я согласен, что иногда, JS тоже выполняет операции не только визуального оформления, но в основном такие скрипты принадлежат конкретному модулю и находятся в папке assets данного модуля, либо мы выносим этот файл(ы) в библиотеку.</p>
<p>Папка assets, всем понятно для чего, там хранятся временные файлы.</p>
<p>В папке libs я собираю JS библиотеки и JS скрипты которые требуются в разных частях приложения, такие как<strong> uploadify, lightbox, jquery.bxSlider</strong> и другие. В основном это сторонние разработки. Почему меня не устроило название папки JS и я его переименовал в libs спросите вы. Дело в том, что в этой папке хранится целиком и полностью вся библиотека со стилями и картинками для нее. А дает это нам то, что при добавлении новой библиотеки не придется ее расчленять(стили в 1 папку, скрипты в другую, картинку в третью) и потом в стилях, и не дай бог в JS, менять пути к картинкам.</p>
<p>В папке <strong>public</strong> у меня для каждого модуля создается папка(если необходимо) и там лежат все публичные файлы. Картинки товаров для интернет-магазина,  файл загруженные пользователем и т.д.</p>
<p>В папке components у меня тоже не все стандартно, там лежат 2 класса</p>
<p><strong>MasterBackEndController</strong></p>
<p><strong>MasterFrontEndController</strong></p>
<p>Оба они унаследованы от основного класса Controller. В каждом модуле есть папка components и там 2 класса. Как вы правильно догадались BackEndController и FrontEndController. Они унаследованы от MasterBackEndController и MasterFrontEndController соответственно. Таким образом для Админки мы можем задавать общие функции и переменные для всех модулей, и для каждого модуля в отдельности, что по моему очень хорошо. Вот у меня в MasterBackEndController и MasterFrontEndController сразу стоят разные layout. И в MasterBackEndController стоит фильтр по правам доступа.</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> filters<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'rights'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Честно признаюсь, что я еще не думал как реализовать разные темы для back и front режимов, но это необходимо сделать. Просто руки не доходят.</p>
<p>Таким образом, получается, что все мое приложение состоит из модулей  в которых контроллеры, отвечающие за back функционал унаследованы от BackEndController а контроллеры, отвечающие за front, унаследованы от FrontEndController.</p>
<p>Да я делаю разделение. Весь контроллер отвечает либо за back, либо за front.</p>
<blockquote class="info"><p><strong>Суть:</strong> админка у каждого модуля своя!</p></blockquote>
<p>Как жеж так спросите вы. А все очень просто. У меня есть модуль Admin. Его задача формировать меню панели администратора.</p>
<p>Мы создаем меню, допустим такого вида:</p>
<pre>-Контент

---Статьи <em>// модуль article</em>

---Новости<em> // модуль news</em>

---Информ. Страницы <em>// модуль page</em></pre>
<p>У каждого такого пункта меню есть поля:</p>
<p>1) Права (Тут мы назначаем видимость данного пункта конкретной роли. Допустим так Manager, или  так Article.Admin.*. Формат модуля Rights )</p>
<p>2) Корневому пункту меню(в данном случае “Контент”) мы еще списком присваиваем названия модулей на которых это меню отображается. Допустим мы присвоили такую строку “article, news”.</p>
<p>Это означает, что если мы в данный момент находимся в БэкЕнде модуля news то нам отображаются все дети меню “Контент” с учетом прав доступа.</p>
<p>Да, тут есть свои ограничения. По сути, мы просто группируем модули в логические разделы.</p>
<blockquote class="info"><p><strong>Подытожим:</strong></p>
<p>У меня всю приложение состоит из модулей. В каждом модуле есть FrontEnd и BackEnd контроллеры унаследованные от соответствующих контроллеров.</p>
<p>Один модуль администрирования, который управляет пунктами меню в панели администрирования. Все сторонние JS библиотеки лежат в папке libs, все что касается визуального оформления лежит в темах.</p></blockquote>
<p>Есть какие-нибдь мысли по этому поводу? Делитесь в комментариях.<br /></p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/arxitektura-cms-na-frajmvorke-yii.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sphinx на Windows 7</title>
		<link>http://n-professor.ru/sphinx-na-windows-7.html</link>
		<comments>http://n-professor.ru/sphinx-na-windows-7.html#comments</comments>
		<pubDate>Wed, 02 Nov 2011 12:38:36 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sphinx]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=451</guid>
		<description><![CDATA[Появилась задача установить и настроить поисковый движок Sphinx. Много слышал об этой системе, но никогда не пользовался и если честно, боялся. Думал что все там сложно и долго. Оказалось все не так уж и страшно. Устанавливал я Sphinx на Windows 7. Я нагуглил несколько статей по установке Sphinx-а. Очень хорошая статья попалась. И так, какие [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://n-professor.ru/wp-content/uploads/xg8106sq.jpg" rel="thumbnail"><img class="size-full wp-image-458 alignleft" style="margin-left: 10px; margin-right: 10px;" title="xg8106sq" src="http://n-professor.ru/wp-content/uploads/xg8106sq.jpg" alt="Sphinx" width="313" height="236" /></a></p>
<p>Появилась задача установить и настроить поисковый движок Sphinx. Много слышал об этой системе, но никогда не пользовался и если честно, боялся. Думал что все там сложно и долго. Оказалось все не так уж и страшно. Устанавливал я Sphinx на Windows 7.</p>
<p>Я нагуглил несколько статей по установке Sphinx-а. <a href="http://habrahabr.ru/blogs/sphinx/104690/" target="_blank">Очень хорошая статья попалась</a>.</p>
<p>И так, какие проблемы у меня возникли, не смотря на подробно описанный материал.</p>
<ol>
<li>Я не поменял в конфигах пути. Там стоит что то типа @CONFIGDIR@, нужно поставить реальные пути.<span id="more-451"></span></li>
<li>Все вроде заработало, но при запуске из PHP выдавал вот такую ошибку</li>
</ol>
<blockquote><p>Query failed: failed to read searchd response (status=2613, ver=11825, len=775172397, read=74).</p></blockquote>
<p>Гуглил, гуглил и прочитал что ДЕМОН не включен(Проблема была не в этом, но демон тоже был не включен).</p>
<blockquote class="info"><p><strong>Включение демона :</strong> Панель управления -&gt; Администрирование -&gt; Службы. И там включаем Демона Sphinx. У меня он называется SphinxSearch, а вообще по умолчанию searchd.</p></blockquote>
<p>В общем если видите такую ошибку, знайте что вы обращаетесь не к тому порту. В конфиге у вас указан порт <strong>listen = 9312</strong>, вот к нему и нужно обращаться.</p>
<p>Выглядит это примерно так:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// Создадим объект - клиент сфинкса и подключимся к нашей службе</span><br />
<span style="color: #000088;">$cl</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SphinxClient<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$cl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetServer</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;localhost&quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">9312</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>А я чет подумал что сюда порт MySql нужен, он же <strong>3306</strong>.</p>
<p>И так, все установили, и теперь выводить результаты нужно, а выводится только ID. Где то прочитал, что это нормально(ну хз, я в данный момент еще разбираюсь.).</p>
<p>Получаю список ID и вывожу товары. Все отлично! Ура!<br />
Теперь самую малость о режимах:<br />
Существуют следующие соответствия режима:</p>
<ul>
<li><strong>SPH_MATCH_ALL</strong>, будут искаться все слова запроса (режим по умолчанию);</li>
<li><strong>SPH_MATCH_ANY</strong>, будет искаться любое из слов запроса;</li>
<li><strong>SPH_MATCH_PHRASE</strong>, будет искаться как фраза, требующая идеального соответствия;</li>
<li><strong>SPH_MATCH_BOOLEAN</strong>, Будет искаться по выражению учитывая операторы AND(и), OR(|), NOT(! или -) и скобки для группировки;</li>
<li><strong>SPH_MATCH_EXTENDED</strong>, поиск по сложной формуле;</li>
<li><strong>SPH_MATCH_FULLSCAN</strong>, Ничего по тексту не ищем, но фильтры и группировки будут применяться.</li>
</ul>
<p>Ну пока мне этого достаточно. Дальше мне нужно будет глубже изучить Sphinx, вот тогда напишу еще заметочку, может 2 =)<br />
Удачи!</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/sphinx-na-windows-7.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как стать бизнесменом. Олег Тиньков.</title>
		<link>http://n-professor.ru/kak-stat-biznesmenom-oleg-tinkov.html</link>
		<comments>http://n-professor.ru/kak-stat-biznesmenom-oleg-tinkov.html#comments</comments>
		<pubDate>Mon, 03 Oct 2011 16:15:37 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[Бизнес книги]]></category>
		<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[ИП]]></category>
		<category><![CDATA[книги]]></category>
		<category><![CDATA[маркетинг]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=440</guid>
		<description><![CDATA[От производителя Цитата &#8220;Инвестировав первые деньги в банковский проект, я не знал толком ни одного термина, не понимал требований Центрального банка. Ничего страшного. Если у вас есть воля, желание, фантазия &#8211; идите в бизнес, кажущийся вам лично прибыльным и интересным. Необязательно про него все досконально знать&#8221;. О чем книга О том, как создать успешный бизнес [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><a href="http://n-professor.ru/wp-content/uploads/1003202165.jpg" rel="thumbnail"><img class="alignleft size-full wp-image-441" style="margin-left: 10px; margin-right: 10px;" title="1003202165" src="http://n-professor.ru/wp-content/uploads/1003202165.jpg" alt="" width="245" height="371" /></a><br />
<strong>От производителя</strong></p>
<p><strong>Цитата</strong><br />
<em>&#8220;Инвестировав первые деньги в банковский проект, я не знал толком ни одного термина, не понимал требований Центрального банка. Ничего страшного. Если у вас есть воля, желание, фантазия &#8211; идите в бизнес, кажущийся вам лично прибыльным и интересным. Необязательно про него все досконально знать&#8221;.</em></p>
<p><strong>О чем книга</strong><br />
О том, как создать успешный бизнес и честно заработать свой первый миллион. В новой книге предприниматель Олег Тиньков лаконично и конструктивно &#8220;раскладывает по полочкам&#8221; накопленные знания и опыт &#8211; от выбора идеи для бизнеса до подготовки его к продаже.</p>
<p><strong>Для кого эта книга</strong><br />
Для всех, кто хочет стать успешным предпринимателем, достичь независимости и заработать внушительный капитал.</p></blockquote>
<p><span id="more-440"></span><br />
<strong>От меня: </strong></p>
<p>Книги в соседних постах я описал не очень подробно, это связанно с тем что их я прочитал около полугода назад(к сожалению не было времени опубликовать свое мнение по ним раньше). А книгу &#8220;Как стать бизнесменом&#8221; прочитал только что, и эмоциональный эффект еще не стерся.</p>
<p>Честно сказать, книга не оправдала моих ожиданий. Я был введен в заблуждение заявлением &#8220;<em>Не спрашивайте меня как открывать бизнес, в книге все написано</em>&#8220;.  И собственно я ожидал от нее примерно того же что получил от книги Левитаса &#8220;<a title="Больше денег от вашего бизнеса. Скрытые методы увеличения прибыли." href="http://n-professor.ru/bolshe-deneg-ot-vashego-biznesa-skrytye-metody-uvelicheniya-pribyli.html" target="_blank">Больше денег от вашего бизнеса</a>&#8220;. Хотелось бы более четких советов. Но наверное мало кто может их дать, ведь предпринимательство заложено на подсознательном уровне. Это наверно как в музыке, любого можно научить, но кто-то будет чувствовать ее интуитивно, а кто-то нет.</p>
<p>Тем не менее ее стоит прочитать, лишний точно не будет. Это так же интересно как и книги про основание Озона или любой другой успешной компании. В каждой успешной истории есть чему поучиться.</p>
<p>Олег Тиньков (Между прочим мой тёзка) ведет передачу &#8220;Бизнес-секреты с Олегом Тиньковым&#8221;. Я смотрю ее в vkontakte.ru. Всем советую! Очень интересные люди приходят на передачу и рассказывают про свой бизнес. Касперский, Лебедев, Ашманов, и еще много очень известных людей. Особенно мне интересны те, которые заработали деньги создавая программный продукт, или раскручиваю и продвигая свой товар через интернет.</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/kak-stat-biznesmenom-oleg-tinkov.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Психология рекламы. Ценев.</title>
		<link>http://n-professor.ru/psixologiya-reklamy-cenev.html</link>
		<comments>http://n-professor.ru/psixologiya-reklamy-cenev.html#comments</comments>
		<pubDate>Mon, 03 Oct 2011 14:02:39 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[Бизнес книги]]></category>
		<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[ИП]]></category>
		<category><![CDATA[книги]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=433</guid>
		<description><![CDATA[От издателя: &#8220;Слава богу, что, наконец-то, появилась вменяемая книга по почти отсутствующему в природе вопросу &#8220;психологии рекламы&#8221;. Я подписываюсь под словами автора: &#8220;Это книга не о психологии рекламы, как таковой, а о практической психологии для рекламистов, пропитанная здравым смыслом, прагматизмом и циничным взглядом на вещи&#8221;. От меня: Хорошая книга. Прослушал ее в аудио формате. Слушал [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><a href="http://n-professor.ru/wp-content/uploads/mard2721big.jpg" rel="thumbnail"><img class="alignleft size-full wp-image-434" style="margin-left: 10px; margin-right: 10px;" title="mard2721big" src="http://n-professor.ru/wp-content/uploads/mard2721big.jpg" alt="" width="229" height="229" /></a><br />
<strong>От издателя:</strong><br />
&#8220;Слава богу, что, наконец-то, появилась вменяемая книга по почти отсутствующему в природе вопросу &#8220;психологии рекламы&#8221;. Я подписываюсь под словами автора: &#8220;Это книга не о психологии рекламы, как таковой, а о практической психологии для рекламистов, пропитанная здравым смыслом, прагматизмом и циничным взглядом на вещи&#8221;.</p></blockquote>
<p><span id="more-433"></span><br />
<strong>От меня:</strong><br />
Хорошая книга. Прослушал ее в аудио формате. Слушал несколько раз, каждый раз узнавая что то новое, потому что каждый раз что то щелкало в подсознании и взгляд на мир немного менялся.<br />
В книге содержатся примеры неправильных и правильных рекламных кампаний. После прочтения начинаешь задумываться над каждой рекламой которую увидишь =) Рекомендую.</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/psixologiya-reklamy-cenev.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Больше денег от вашего бизнеса. Скрытые методы увеличения прибыли.</title>
		<link>http://n-professor.ru/bolshe-deneg-ot-vashego-biznesa-skrytye-metody-uvelicheniya-pribyli.html</link>
		<comments>http://n-professor.ru/bolshe-deneg-ot-vashego-biznesa-skrytye-metody-uvelicheniya-pribyli.html#comments</comments>
		<pubDate>Mon, 03 Oct 2011 13:41:59 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[Бизнес книги]]></category>
		<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[ИП]]></category>
		<category><![CDATA[книги]]></category>
		<category><![CDATA[маркетинг]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=424</guid>
		<description><![CDATA[От издателя: Задача этой книги &#8211; заставить Ваш бизнес приносить больше денег. Вы узнаете, как увеличить прибыль, не вкладывая денег: - как сделать рекламу более эффективной; - как заключать больше сделок; - как увеличить доход с каждого покупателя; - как продавать те же товары и услуги дороже; - как создать круг постоянных клиентов; - как [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
<a href="http://n-professor.ru/wp-content/uploads/1001275169.jpg" rel="thumbnail"><img class="alignleft size-full wp-image-425" style="margin-left: 10px; margin-right: 10px;" title="1001275169" src="http://n-professor.ru/wp-content/uploads/1001275169.jpg" alt="" width="200" height="269" /></a></p>
<p><strong>От издателя:</strong><br />
Задача этой книги &#8211; заставить Ваш бизнес приносить больше денег.<br />
Вы узнаете, как увеличить прибыль, не вкладывая денег:<br />
- как сделать рекламу более эффективной;<br />
- как заключать больше сделок;<br />
- как увеличить доход с каждого покупателя;<br />
- как продавать те же товары и услуги дороже;<br />
- как создать круг постоянных клиентов;<br />
- как сократить расходы.</p>
<p>&nbsp;</p>
<p>&nbsp;</p></blockquote>
<p><span id="more-424"></span><br />
<strong>От меня:</strong><br />
Офигительная книга!!! Перечитал 4 раза. Действительно толковые советы. Многие советы могут показаться банальными и очевидными, но, тем не менее, мало кто к ним прибегает в реальной жизни. А это как раз на руку, нам, начинающим предпринимателям ) Мы можем придерживаясь этих правил улучшить сервис и заработать больше денег. И при этом и клиенты будут довольны и вы будете довольны. Я даже подумываю записаться на курсы Левитаса. В общем всем советую для общего развития.</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/bolshe-deneg-ot-vashego-biznesa-skrytye-metody-uvelicheniya-pribyli.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вот такие вот заказчики! Вот так и работаем.</title>
		<link>http://n-professor.ru/vot-takie-vot-zakazchiki-vot-tak-i-rabotaem.html</link>
		<comments>http://n-professor.ru/vot-takie-vot-zakazchiki-vot-tak-i-rabotaem.html#comments</comments>
		<pubDate>Thu, 10 Mar 2011 12:23:38 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[Флейм]]></category>
		<category><![CDATA[Бизнес]]></category>
		<category><![CDATA[заказчики]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=402</guid>
		<description><![CDATA[Те кто не работал в фриилансе, ну или вообще напрямую с заказчиками, наверно и не поймут нижеприведенного видео. Но остальные, мы то с вами настрадались уже, и можем подтвердить не верящим своим глазам, что все это чистая правда! Видео уже старое и многие скажут что &#8220;баян&#8221;, но тем не менее я его размещу, так как [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://n-professor.ru/wp-content/uploads/t_436780_1085375927_184.jpeg" rel="thumbnail"><img class="alignleft size-full wp-image-409" style="margin: 10px;" title="t_436780_1085375927_184" src="http://n-professor.ru/wp-content/uploads/t_436780_1085375927_184.jpeg" alt="" width="182" height="136" /></a>Те кто не работал в фриилансе, ну или вообще напрямую с заказчиками, наверно и не поймут нижеприведенного видео. Но остальные, мы то с вами настрадались уже, и можем подтвердить не верящим своим глазам, что все это чистая правда!<br />
Видео уже старое и многие скажут что &#8220;баян&#8221;, но тем не менее я его размещу, так как тема и на сей день достаточно актуальна. Вдруг некоторые из моих заказчиков увидят его и главное увидят и узнают в нем себя, и поймут на сколько нелепо смотрится их манера поведения в других, более обыденных сферах жизни.<br />
<span id="more-402"></span><br />
<img src="http://n-professor.ru/wp-content/plugins/flash-video-player/default_video_player.gif" /></p>
<p>Ну вот как то так. Повторюсь, все что там показано это чистая правда и встречается очень часто в нашей сфере.</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/vot-takie-vot-zakazchiki-vot-tak-i-rabotaem.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://n-professor.ru/wp-content/uploads/17dccefd3576-136038656.vk_1.flv" length="4951399" type="video/x-flv" />
		</item>
		<item>
		<title>Как я выбирал CMS и почему выбрал UMI.CMS</title>
		<link>http://n-professor.ru/umi-cms.html</link>
		<comments>http://n-professor.ru/umi-cms.html#comments</comments>
		<pubDate>Sun, 20 Feb 2011 15:51:51 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[UMI.CMS]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=391</guid>
		<description><![CDATA[Приветствую вас! Последнее время становится все больше и больше желающих заказывать у меня услуги (тфу тфу тфу, чтоб не сглазить). И вот однажды звонят мне и просят сделать интернет магазин. Ну конечно же я соглашаюсь. Но так как наработок у меня нет(достойных нет), а продукт хочется продать навороченный и дешевый, то решил обратиться к готовым [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://n-professor.ru/wp-content/uploads/umicms.jpg" rel="thumbnail"><img class="alignleft size-full wp-image-393" style="margin: 10px;" title="umicms" src="http://n-professor.ru/wp-content/uploads/umicms.jpg" alt="umicms" width="281" height="281" /></a>Приветствую вас!<br />
Последнее время становится все больше и больше желающих заказывать у меня услуги (тфу тфу тфу, чтоб не сглазить). И вот однажды звонят мне и просят сделать интернет магазин. Ну конечно же я соглашаюсь. Но так как наработок у меня нет(достойных нет), а продукт хочется продать навороченный и дешевый,  то решил обратиться к готовым системам управления контентом(CMS).<br />
Бесплатные я отмел сразу. Почему?<br />
Ну, во-первых, когда заказчик узнает что его сайт на бесплатной системе сделан, он спросит, куда ушло столько денег? =)<br />
Во-вторых. Бесплатные системы легче взломать, так ка их код открыт, и они массово заполонили интернет. А это значит что “хаккерам” (назовем их так) выгодней и увлекательней ломать такие системы.<br />
В третьих, нет тех. поддержки.<span id="more-391"></span><br />
В четвертых, ну в четвертых я не пользовался бесплатными системами, и мне все равно что было изучать.</p>
<p>И так постановка задачи: Найти CMS из которой можно сделать приличный + удобно настраиваемый + расширяемый + простой для пользователя + не ресурсоемкий.<br />
Скажу сразу, такого я не нашел. У всех свои минусы и плюсы. Просмотрев кучу вариантов, я остановился на UMI.CMS. Почему именно на ней? Жадность. Вот ответ. Если стать партнером то существует 50% скидка, а я еще попал на бонус в 50 000рублей. То есть мне подарили депозит на эту сумму, и я могу на нее покупать лицензии, и еще один приятный момент. Подарили мне и лицензию на UMI.CMS Business. И так, я получил бесплатную лицензию для своего сайта, бесплатно депозит на 50000, 10 из которых я потратил на лицензию для интернет-магазина, и появился  каталоге партнеров  UMI.CMS откуда за неделю  уже поступило около 10 заявок на разработку сайта или функционала.</p>
<p>На тот момент все казалось радостным и простым. Ха! Наивность! Как говорится бесплатный сыр только в мышеловке. Оказывается XSL технология которую они используют не  так проста как кажется. Без пол литра точно не разобраться. А шаблонный интернет магазин сделан именно на этой технологии.<br />
Но вот прошла уже неделя как я занимаюсь, интернет магазином, и я начинаю понимать плюсы использования UMI.CMS. На ней можно сделать практически любой интернет-магазин не дописав ни единой строчки кода. Шаблоны данных, словари все это очень хорошо! Я еще не до конца освоился, но я вижу потенциал. Так что я намерен и дальше разбираться в данной системе.<br />
Из минусов на мой взгляд стоит выделить не слишком большую скорость работы относительно сам описных систем(но есть же кеширование) не очень понятный простому обывателю интерфейс, и не всегда удобный. Сложность верстки! Здесь, по сути, верстка это сбор проекта по кускам.<br />
Подытожим.<br />
Мне очень понравилась система, но могло быть еще лучше. Готов развиваться  и углублять знания в сторону UMI.CMS.</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/umi-cms.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Класс для загрузки файлов на сервер</title>
		<link>http://n-professor.ru/klass-dlya-zagruzki-fajlov-na-server.html</link>
		<comments>http://n-professor.ru/klass-dlya-zagruzki-fajlov-na-server.html#comments</comments>
		<pubDate>Sun, 13 Feb 2011 08:36:56 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[загрузка файлов]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=378</guid>
		<description><![CDATA[Здравствуйте. Часто просят поделиться классом загружающим файлы. Конечно такой класс легко найти на просторах интернета. Но для практики лучше написать самому чем искать. Писался класс примерно год назад, когда я еще смутно представлял, как правильно использовать ООП. Пожалуйста, все кто увидит что можно переделать в моем классе что бы было лучше, логичней, красивей, пишите в [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://n-professor.ru/wp-content/uploads/script.gif" rel="thumbnail"><img class="alignleft size-full wp-image-381" style="margin: 5px 10px;" title="phpcode" src="http://n-professor.ru/wp-content/uploads/script.gif" alt="phpcode" width="276" height="206" /></a>Здравствуйте. Часто просят поделиться классом загружающим файлы. Конечно такой класс легко найти на просторах интернета. Но для практики лучше написать самому чем искать.<br />
Писался класс примерно год назад, когда я еще смутно представлял, как правильно использовать ООП. Пожалуйста, все кто увидит что можно переделать в моем классе что бы было лучше, логичней, красивей, пишите в комментариях, обязательно поправим.<br />
<span id="more-378"></span><br />
Теперь немного расскажу про возможности класса.<br />
Служит он для загрузки файлов, ищет в категории загрузки файлы с таким же именем и добавляет цифры, в конец названия, перед этим не забыв перевести название файла в транслит.</p>
<p>Умеет загружать как 1 так и много файлов сразу.(на самом деле после создания класса я никогда не использовал его для загрузки множества файлов, так что функционал не проверен =) )</p>
<p>Пример как использовать :</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><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;">$_FILES</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$tempFile</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Filedata'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$targetPath</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/public/galery/'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$upload</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Upload<span style="color: #009900;">&#40;</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'//'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$targetPath</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$upload</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">uploads</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Filedata'</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><br />
<span style="color: #000088;">$fileInfo</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$upload</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getFilesInfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$fileInfo</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;nameTranslit&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">// новое имя файла, можно записать в БД</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Ну и собственно сам класс</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">class</span> Upload <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$name</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$FILES</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$allowedType</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;jpg&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;gif&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;bmp&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;jpeg&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;png&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;pps&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;doc&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;docx&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;xls&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;pdf&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;txt&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;rar&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;zip&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$errors</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$errorsMessage</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Размер загружаемого файла превышает допустимый размер.&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #cc66cc;">2</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Размер загружаемого файла превышает допустимый размер.&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #cc66cc;">3</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Файл был загружен лишь частично.&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #cc66cc;">4</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Файл не был загружен.&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #cc66cc;">6</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Файл не был загружен.&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #cc66cc;">7</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Файл не был загружен.&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #cc66cc;">8</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Файл не был загружен.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">dir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* устанавливаем дирректорию загрузки файла<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> setDir<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">dir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* Устанавлиаем доступные расширения<br />
&nbsp; &nbsp; &nbsp;* @param &lt;type&gt; $type<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> setAllowedType<span style="color: #009900;">&#40;</span><span style="color: #000088;">$type</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$type</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">allowedType</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$type</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">allowedType</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$type</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* загрузка файла<br />
&nbsp; &nbsp; &nbsp;* @param $tmpName<br />
&nbsp; &nbsp; &nbsp;* @param $name<br />
&nbsp; &nbsp; &nbsp;* @param $replacement<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> upload<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmpName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">substitute</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">translit</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">typeChecking</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmpName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">dir</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$name</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> uploads<span style="color: #009900;">&#40;</span><span style="color: #000088;">$FILES</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$FILES</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</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><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">uploadsOneFile</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">uploadsManyFiles</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* загрузка одного файла<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> uploadsOneFile<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errors</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errorsMessage</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">upload</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span> <span style="color: #339933;">!=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nameTranslit'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* загрузка нескольких файлов<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> uploadsManyFiles<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$coutFiles</span> <span style="color: #339933;">=</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$coutFiles</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">upload</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span> <span style="color: #339933;">!=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nameTranslit'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errors</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errors</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errorsMessage</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* проверяем, разрешен ли данный файл к загрузке<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> typeChecking<span style="color: #009900;">&#40;</span><span style="color: #000088;">$fileName</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#([\w()-_]+)\.([\w]{1,4})$#i&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fileName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arrayNameFiles</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$nameEnd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arrayNameFiles</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$nameEnd</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">allowedType</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errors</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Файлы с расширением (&lt;b&gt;<span style="color: #006699; font-weight: bold;">{$fileName}</span>&lt;/b&gt;) не разрешенны к загрузке.&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* ищет в каталоге файлы с таким же названием дописывает номер(равный количеству файлов с таким названием) в конец<br />
&nbsp; &nbsp; &nbsp;* @param $name<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> substitute<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">scandir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</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: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</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: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$newName</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$name</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#([\w()-_]+)\.([\w]{1,4})#i&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arrayNameFiles</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$nameStart</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$arrayNameFiles</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$nameEnd</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$arrayNameFiles</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newName</span><span style="color: #339933;">,</span> <span style="color: #000088;">$files</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$newName</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">{$nameStart}</span>(<span style="color: #006699; font-weight: bold;">{$i}</span>).<span style="color: #006699; font-weight: bold;">{$nameEnd}</span>&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$i</span><span style="color: #339933;">++;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$newName</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* возвращаем информацию о файле<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">function</span> getFilesInfo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">FILES</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* возвращаем ошибки<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> errors<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errors</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009933; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* переводим текст в транслит<br />
&nbsp; &nbsp; &nbsp;* @param $text<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> translit<span style="color: #009900;">&#40;</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$rus</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;а&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;б&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;в&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;г&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ґ&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;д&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;е&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ё&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ж&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;з&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;и&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;й&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;к&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;л&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;м&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;н&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;о&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;п&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;р&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;с&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;т&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;у&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ф&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;х&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ц&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ч&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ш&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;щ&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ы&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;э&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ю&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;я&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ь&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;ъ&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;і&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ї&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;є&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;А&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Б&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;В&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Г&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ґ&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Д&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Е&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ё&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;Ж&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;З&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;И&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Й&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;К&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Л&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;М&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Н&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;О&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;П&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Р&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;С&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;Т&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;У&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ф&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Х&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ц&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ч&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;Ш&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Щ&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ы&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Э&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ю&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Я&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;Ь&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ъ&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;І&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Ї&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Є&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$lat</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;a&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;b&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;v&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;g&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;g&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;d&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;e&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;e&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;zh&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;z&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;i&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;j&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;k&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;l&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;m&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;o&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;p&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;r&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;s&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;t&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;u&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;f&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;h&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;c&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ch&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;sh&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;sh'&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;y&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;e&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;yu&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ya&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;i&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;i&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;e&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;A&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;B&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;V&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;G&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;G&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;D&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;E&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;E&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ZH&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Z&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;I&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;J&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;K&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;L&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;M&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;N&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;O&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;P&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;R&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;S&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;T&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;U&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;F&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;H&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;C&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;CH&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;SH&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;SH'&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Y&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;E&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;YU&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;YA&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;I&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;I&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;E&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$rus</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lat</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#[^a-z0-9._-]#i&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Ну вот собственно и все, не судите строго =)</p>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/klass-dlya-zagruzki-fajlov-na-server.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создаем анимированный gif используя php и ImageMagick</title>
		<link>http://n-professor.ru/sozdaem-animirovannyj-gif-ispolzuyu-php-i-imagemagick.html</link>
		<comments>http://n-professor.ru/sozdaem-animirovannyj-gif-ispolzuyu-php-i-imagemagick.html#comments</comments>
		<pubDate>Sat, 08 Jan 2011 15:34:32 +0000</pubDate>
		<dc:creator>professor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[мануал]]></category>

		<guid isPermaLink="false">http://n-professor.ru/?p=368</guid>
		<description><![CDATA[Методы ImageMagick до сих пор плохо документированы, а про перевод я вообще молчу. Возникла необходимость делать презентации к галерее. Изначально задача ставилась делать презентацию в формате avi или mpeg, но после более детального рассмотрения задачи было решено делать ее в формате GIF (так и проще, и дешевле, и быстрей, и презентация меньше весит). Искал в [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://n-professor.ru/wp-content/uploads/0_1a49a_d5293a56_XL.jpeg" rel="thumbnail"><img class="alignleft size-full wp-image-370" title="0_1a49a_d5293a56_XL" src="http://n-professor.ru/wp-content/uploads/0_1a49a_d5293a56_XL.jpeg" alt="0_1a49a_d5293a56_XL" width="198" height="140" /></a>Методы ImageMagick до сих пор плохо документированы, а про перевод я вообще молчу.</p>
<p>Возникла необходимость делать презентации к галерее. Изначально задача ставилась делать презентацию в формате avi или mpeg, но после более детального рассмотрения задачи было решено делать ее в формате GIF (так и проще, и дешевле, и быстрей, и презентация меньше весит).<span id="more-368"></span><br />
Искал в гугле по данному вопросу попадаются форумы где люди спрашивают как сделать, но внятного ответа я там не нашел. В основном там затрагиваются вопросы ресайза анимированных картинок. Но это немного другое.</p>
<p>Ответ я нашел… не поверите…в мануале =) да, кто бы мог подумать? (сарказм)<br />
Знаете основное правило любого хорошего продавца? “Показывать товар там где его ищет покупатель”<br />
Так вот решение своей проблемы я искал совершенно не там где, вероятно должен был бы искать, по мнению “продавцов”. А нашел чисто случайно статью, где использовалась функция addImage. Вроде все понятно по названию как она работает, но что-то у меня с ней не заладилось, и я полез в мануал.  Она, как и многое не документирована, но есть всего 1 пример, который полностью реализует нужный мне функционал. И так я его здесь и приведу с небольшими своими поправками.<br />
Вот весь код:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">/*<br />
* Создаем анимированый gif из списка картинок<br />
*/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$filelist</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'images_1.jpg'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'images_2.jpg'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'images_3.jpg'</span><span style="color: #339933;">,</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$aniGif</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Imagick<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$aniGif</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFormat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;gif&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$filelist</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$frameitem</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$frame</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Imagick<span style="color: #009900;">&#40;</span><span style="color: #000088;">$frameitem</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$frame</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setImageDelay</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">300</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$aniGif</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addImage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$frame</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$aniGif</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">writeImages</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;aniGif.gif&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Ну вроде все понятно и просто. Будут вопросы, задавайте, возможно я даже смогу на них ответить =)</p>
<blockquote class="info"><p><strong>Лирическое отступление :</strong><br />
<em>Если у Вас с английским все в порядке,  есть немного свободного  времени, и желание внести свой вклад перевод той документации которая  есть на данный момент, то это можно сделать <a title="IMagick" href="http://pyha.ru/wiki/index.php?title=IMagick">здесь</a>. </em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://n-professor.ru/sozdaem-animirovannyj-gif-ispolzuyu-php-i-imagemagick.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

