<?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/"
	>

<channel>
	<title>sb0y[AT]home</title>
	<atom:link href="http://www.bagrincev.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bagrincev.ru</link>
	<description>Уютный бложик девелопера.</description>
	<pubDate>Wed, 10 Feb 2010 17:06:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP-&gt;Webasyst: программирование под популярный движок виртуального магазина</title>
		<link>http://www.bagrincev.ru/webasyst-programming/</link>
		<comments>http://www.bagrincev.ru/webasyst-programming/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:21:48 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[smarty]]></category>

		<category><![CDATA[webasyst]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=786</guid>
		<description><![CDATA[Webasyst - движок, использующий Smarty в качестве шаблонизатора. Тег, {php} не работает, но свои функции всё равно можно писать, через интерфейс плагинов Smarty. Плюсы этого способа - простота освоения и лёгкая инсталляция. Минусы - из таких плагинов не работают множество полезных и удобных функций движка, которые при написании плагина сэкономили бы вам кучу времени, а ]]></description>
			<content:encoded><![CDATA[<p><strong>Webasyst</strong> - движок, использующий Smarty в качестве шаблонизатора. Тег, {php} не работает, но свои функции всё равно можно писать, через интерфейс плагинов Smarty. Плюсы этого способа - простота освоения и лёгкая инсталляция. Минусы - из таких плагинов не работают множество полезных и удобных функций движка, которые при написании плагина сэкономили бы вам кучу времени, а так же, не оправданно сложная развёртка сложных структур.<br />
В этом мануале, я так же рассмотрю интерфейс самого движка, в котором работают все функции, используются классы и объекты, а установка сложнее.</p>
<p>Я использовал при написании этого материала Webasyst версии <strong>285</strong>.</p>
<p>Для того, чтобы создать свой плагин, используя интерфейс Smarty, достаточно создать файл <strong>function.имяПлагина.php</strong> в директории <strong>/kernel/includes/smarty/plugins</strong> с таким содержанием:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> smarty_function_имяПлагина<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$params</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$smarty</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Hello World!'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>После этого в шаблон можно вставить тег {имяПлагина}, при выводе, он будет заменён на &#8220;Hello World!&#8221;.<br />
Если нужно передать функции параметр, можно использовать массив $params. </p>
<p>В коде шаблона:<br />
{имяПлагина var=&#8221;Hello World!&#8221;}</p>
<p>В коде плагина:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> smarty_function_имяПлагина<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$params</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$smarty</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'var'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Впринципе, не возбраняется использование классов и объектов</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> smarty_function_имяПлагина<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$params</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$smarty</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">require_once</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'register_form.class.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$frm</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> frm_reg <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$frm</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>require_once здесь используется не случайно. Бывают случаи, когда смарти из-за кеша пытается загрузить файл повторно, что приводит к ошибке.</p>
<p>Но главный недостаток остаётся всё равно - из этого интерфейса многие функции движка остаются недоступны. (например <strong>db_fetch_row()</strong>), поэтому переходим к интерфейсу движка.</p>
<p>Создадим папку нашего модуля. Делается это по адресу <strong>$app_root/html/scripts/modules</strong>, где <strong>$app_root</strong> - путь до установленного приложения на платформу Webasyst (например у shop-script полный путь будет выглядеть так <strong>/published/SC/</strong>html/scripts/modules/). Назовём её новыйМодуль.</p>
<p>Теперь необходимо создать XML файл с именем <strong>connector.новыйМодуль.xml</strong>, с содержанием:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Connector<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>новыйМодуль<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;File<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>class.новыйМодуль.php<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/File<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Любое название<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Любое описание<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SingleInstallation<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SingleInstallation<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Class<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Connector<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Как уже, наверняка стало понятно, в той же папке создаём класс модуля. <strong>class.новыйМодуль.php</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #000000; font-weight: bold;">class</span> Modulename <span style="color: #000000; font-weight: bold;">extends</span> ComponentModule  <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> initInterfaces<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>__registerComponent<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'modulename'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Любое название'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'general_layout'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'home_page'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'methodFShowModule'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> methodFShowModule<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$Register</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span>Register<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>
		<span style="color: #000088;">$smarty</span> <span style="color: #339933;">=</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$Register</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span>VAR_SMARTY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #666666; font-style: italic;">//передаём переменные в шаблон. может быть массивом</span>
		<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assign</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;vars&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Hello World!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
               <span style="color: #666666; font-style: italic;">//грузим файл шаблона</span>
		<span style="color: #000088;">$smarty</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'новыйМодуль.tpl.html'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">exec</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">//любые действия...</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Hello World!'</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Опять же, создаём шаблон Smarty, в директории templates, с названием файла <strong>новыйМодуль.tpl.html</strong>.</p>
<p>Остаётся только зарегистрировать новый модуль в базе.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`SC_modules`</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #ff0000;">`ModuleVersion`</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`ModuleClassName`</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'новыйМодуль'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`ModuleClassFile`</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'/новыйМодуль/class.modulename.php'</span></pre></div></div>

<p>Поскольку идентификатор добавленной позиции добавляется autoincrement&#8217;ом, нужно его узнать.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #ff0000;">`ModuleID`</span> <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`SC_modules`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #ff0000;">`ModuleClassName`</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'новыйМодуль'</span>;</pre></div></div>

<p>Полученное число подставляем в следующий запрос.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`SC_module_configs`</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #ff0000;">`ModuleID`</span><span style="color: #66cc66;">=</span>полученное_ранее_число<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`ConfigKey`</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'новыйМодуль'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`ConfigInit`</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1002</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`ConfigEnabled`</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">1</span>;</pre></div></div>

<p>Опять узаём ID. На это раз, для удобства понимания назовём полученное число ID.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #ff0000;">`ModuleConfigID`</span> <span style="color: #993333; font-weight: bold;">FROM</span> <span style="color: #ff0000;">`SC_module_configs`</span> <span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #ff0000;">`ModuleID`</span><span style="color: #66cc66;">=</span>полученное_ранее_число;</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`SC_interface_interfaces`</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #ff0000;">`xInterfaceCaller`</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'51_cpt_connector'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`xInterfaceCalled`</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'ID_новыйМодуль'</span>;</pre></div></div>

<p>Если всё сделано правильно, в шаблон можно будет вставить тег {cpt_новыйМодуль}.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/webasyst-programming/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu: детальная настройка пакетов используя утилиты дебиана</title>
		<link>http://www.bagrincev.ru/ubuntu-hard-conf/</link>
		<comments>http://www.bagrincev.ru/ubuntu-hard-conf/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 21:11:12 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[debconf]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[dpkg-reconfigure]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[настройка]]></category>

		<category><![CDATA[система]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=778</guid>
		<description><![CDATA[Все настройки, при установки пакетов в Debian (а следственно и в Ubuntu) делаются через утилиту debconf, у которой тоже есть настройки. О ней и будет данная заметка.
Чтобы добраться до настроек debconf - выполните в вашем терминале команду:

sudo dpkg-reconfigure debconf


Очень важно выбрать метод вывода диалоговых окон на экран пользователя. Рекомендуемый - &#8220;Диалоговый&#8221;. В этом режиме программа ]]></description>
			<content:encoded><![CDATA[<p>Все настройки, при установки пакетов в Debian (а следственно и в Ubuntu) делаются через утилиту debconf, у которой тоже есть настройки. О ней и будет данная заметка.</p>
<p>Чтобы добраться до настроек debconf - выполните в вашем терминале команду:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> dpkg-reconfigure debconf</pre></div></div>

<p><a href="http://www.bagrincev.ru/uploads/screenshot_0032.png"><img src="http://www.bagrincev.ru/uploads/screenshot_0032-150x150.png" alt="screenshot_0032" title="screenshot_0032" width="150" height="150" class="aligncenter size-thumbnail wp-image-779" /></a></p>
<p>Очень важно выбрать метод вывода диалоговых окон на экран пользователя. Рекомендуемый - &#8220;Диалоговый&#8221;. В этом режиме программа будет использовать интерфейс, показанный на скриншоте выше. Рекомендуемый он, потому что не зависит ни от одной графической среды и поэтому является самым надёжным режимом из всех перечисленных.</p>
<p><a href="http://www.bagrincev.ru/uploads/screenshot_0041.png"><img src="http://www.bagrincev.ru/uploads/screenshot_0041-150x150.png" alt="screenshot_0041" title="screenshot_0041" width="150" height="150" class="aligncenter size-thumbnail wp-image-780" /></a></p>
<p>Дальше нужно выбрать &#8220;уровень важности&#8221; задаваемых вопросов. Нас интересует &#8220;низкий&#8221;. В этом режиме будут задаваться все возможные вопросы.</p>
<p>После этих манипуляций, можете выполнить:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> dpkg-reconfigure <span style="color: #660033;">-a</span></pre></div></div>

<p>Это перенастроит ВСЕ пакеты в вашей системе, но на этот раз, у вас будет больше вариантов и возможностей <img src='http://www.bagrincev.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>P.S.<br />
В принципе, всё описанное, должно работать в Debian и любой ОС, на её базе.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/ubuntu-hard-conf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP: Построение древовидных данных в PHP</title>
		<link>http://www.bagrincev.ru/php-tree-data/</link>
		<comments>http://www.bagrincev.ru/php-tree-data/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 05:27:34 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[tree]]></category>

		<category><![CDATA[древо]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=771</guid>
		<description><![CDATA[Недавно, возникла потребность сделать древовидный, порядковый список категорий, в одном из проектов.
2 главных условий, которые преследовал: 1) в html должны наглядно показываться родительские элементы и их &#8220;дети&#8221;; 2) для всей операции 1 SQL запрос.
SQL-структура была такая:

+------------+--------------+------+-----+---------+----------------+
&#124; FIELD          &#124; Type        ]]></description>
			<content:encoded><![CDATA[<p>Недавно, возникла потребность сделать древовидный, порядковый список категорий, в одном из проектов.</p>
<p>2 главных условий, которые преследовал: 1) в html должны наглядно показываться родительские элементы и их &#8220;дети&#8221;; 2) для всей операции 1 SQL запрос.</p>
<p>SQL-структура была такая:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">------------+--------------+------+-----+---------+----------------+</span>
<span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">FIELD</span>          <span style="color: #66cc66;">|</span> Type             <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span>   <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span>   <span style="color: #66cc66;">|</span> Extra 
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">------------+--------------+------+-----+---------+----------------+</span>
<span style="color: #66cc66;">|</span> categoryID <span style="color: #66cc66;">|</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>            <span style="color: #66cc66;">|</span> NO    <span style="color: #66cc66;">|</span> PRI   <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span>     <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span>  <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span> parent       <span style="color: #66cc66;">|</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>            <span style="color: #66cc66;">|</span> NO    <span style="color: #66cc66;">|</span>        <span style="color: #66cc66;">|</span> <span style="color: #cc66cc;">0</span>          <span style="color: #66cc66;">|</span>                        <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span> name        <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>   <span style="color: #66cc66;">|</span> NO    <span style="color: #66cc66;">|</span>        <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span>     <span style="color: #66cc66;">|</span>                        <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span> slug          <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>   <span style="color: #66cc66;">|</span> NO    <span style="color: #66cc66;">|</span>        <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span>     <span style="color: #66cc66;">|</span>                        <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span> pic           <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span>   <span style="color: #66cc66;">|</span> YES   <span style="color: #66cc66;">|</span>        <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span>     <span style="color: #66cc66;">|</span>                        <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">------------+--------------+------+-----+---------+----------------+</span>
<span style="color: #cc66cc;">5</span> rows <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.03</span> sec<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>После запроса в БД массив получился такой.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">Array</span>
<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span>categoryID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
            <span style="color: #009900;">&#91;</span>parent<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span>
            <span style="color: #009900;">&#91;</span>name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Фильмы
            <span style="color: #009900;">&#91;</span>slug<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> films
            <span style="color: #009900;">&#91;</span>pic<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span>categoryID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span>
            <span style="color: #009900;">&#91;</span>parent<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span>
            <span style="color: #009900;">&#91;</span>name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Музыка
            <span style="color: #009900;">&#91;</span>slug<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> music
            <span style="color: #009900;">&#91;</span>pic<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
        <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#91;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Для удобной работы я сгруппировал массив по <strong>categoryID</strong>, заменив его ключи на этот идентификатор.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span>
<span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'categoryID'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$v</span><span style="color: #339933;">;</span></pre></div></div>

<p>А вот и сама функция, которая пишет в глобальный массив $g_data результат своей рекурсивной работы.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> tree<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$data</span><span style="color: #339933;">,</span> <span style="color: #000088;">$node_id</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lvl</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$lvl</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
      <span style="color: #666666; font-style: italic;">// для каждой категории может быть действие (напр. присвоить id)</span>
	<span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
	<span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;option style=&quot;font-weight:bolder;&quot; disabled&gt;- КОРЕНЬ -&lt;/strong&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
        <span style="color: #666666; font-style: italic;">// str_repeat делает отступ слева, в зависимости от уровня кат-ии. Это наглядно показывает юзеру родителя категории и его дочерний элемент. А если кат-я самая &quot;верхняя&quot;, она выделяется стилем font-weight:bold</span>
	<span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;option '</span><span style="color: #339933;">.</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$node_id</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span>?<span style="color: #0000ff;">'style=&quot;font-weight:bold;'</span><span style="color: #339933;">:</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' value=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$node_id</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'categoryID'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #990000;">str_repeat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&amp;nbsp;&amp;nbsp;&amp;nbsp;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lvl</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$node_id</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/option&gt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">g_data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tree'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$html</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">// рекурсия</span>
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$node_id</span><span style="color: #009900;">&#41;</span>
         <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tree</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #339933;">,</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'categoryID'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lvl</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Остаётся только запустить процесс.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">tree<span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/php-tree-data/feed/</wfw:commentRss>
		</item>
		<item>
		<title>1С: PHPXML</title>
		<link>http://www.bagrincev.ru/1c-php-xml/</link>
		<comments>http://www.bagrincev.ru/1c-php-xml/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 12:22:12 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[1C]]></category>

		<category><![CDATA[1С]]></category>

		<category><![CDATA[autofs]]></category>

		<category><![CDATA[gentoo]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[simplexml]]></category>

		<category><![CDATA[smb]]></category>

		<category><![CDATA[smbfs]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=757</guid>
		<description><![CDATA[Предположим, есть задание выгружать данные из 1С и использовать их в своих WEB-проектах (интернет-магазин с реальным ассортиментом и балансом).
Очень удобно, в этом случае получить от 1С данные в XML, файле, а потом распарсить их и разнести по SQL таблицам.
У нас получилась вот такая вот выгрузка:

&#60;Vitrina Элементов=&#34;10&#34;&#62;
&#60;Элемент ID=&#34;8362217666&#34; ParentID=&#34;83014&#34; Товар=&#34;100 человек, которые изменили ход истории&#34; Номер=&#34;95/2009&#34; ]]></description>
			<content:encoded><![CDATA[<p>Предположим, есть задание выгружать данные из 1С и использовать их в своих WEB-проектах (интернет-магазин с реальным ассортиментом и балансом).</p>
<p>Очень удобно, в этом случае получить от 1С данные в XML, файле, а потом распарсить их и разнести по SQL таблицам.</p>
<p>У нас получилась вот такая вот выгрузка:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Vitrina</span> Элементов=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;8362217666&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;83014&quot;</span> Товар=<span style="color: #ff0000;">&quot;100 человек, которые изменили ход истории&quot;</span> Номер=<span style="color: #ff0000;">&quot;95/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;&quot;</span> Витрина=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;8362211581&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;6636&quot;</span> Товар=<span style="color: #ff0000;">&quot;Mens Health mini&quot;</span> Номер=<span style="color: #ff0000;">&quot;12/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;Y:\Company\Общие файлы 1с\Фото\8362211581.jpg&quot;</span> Витрина=<span style="color: #ff0000;">&quot;2&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;8362201090&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;938&quot;</span> Товар=<span style="color: #ff0000;">&quot;Newsweek&quot;</span> Номер=<span style="color: #ff0000;">&quot;47/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;&quot;</span> Витрина=<span style="color: #ff0000;">&quot;3&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;92000054&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;920&quot;</span> Товар=<span style="color: #ff0000;">&quot;Rolling Stone&quot;</span> Номер=<span style="color: #ff0000;">&quot;11/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;Y:\Company\Общие файлы 1с\Фото\92000054.jpg&quot;</span> Витрина=<span style="color: #ff0000;">&quot;4&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;8285200104&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;82852&quot;</span> Товар=<span style="color: #ff0000;">&quot;StarHit&quot;</span> Номер=<span style="color: #ff0000;">&quot;46/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;Y:\Company\Общие файлы 1с\Фото\8285200104.bmp&quot;</span> Витрина=<span style="color: #ff0000;">&quot;5&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;648900054&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;6489&quot;</span> Товар=<span style="color: #ff0000;">&quot;Total DVD&quot;</span> Номер=<span style="color: #ff0000;">&quot;11/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;Y:\Company\Общие файлы 1с\Фото\648900054.bmp&quot;</span> Витрина=<span style="color: #ff0000;">&quot;6&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;687800218&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;6878&quot;</span> Товар=<span style="color: #ff0000;">&quot;Антенна-Телесемь&quot;</span> Номер=<span style="color: #ff0000;">&quot;48/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;&quot;</span> Витрина=<span style="color: #ff0000;">&quot;7&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;8362219837&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;83587&quot;</span> Товар=<span style="color: #ff0000;">&quot;Веселый художник&quot;</span> Номер=<span style="color: #ff0000;">&quot;23/2009 - 2360&quot;</span> Фото=<span style="color: #ff0000;">&quot;&quot;</span> Витрина=<span style="color: #ff0000;">&quot;8&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;8362203118&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;82838&quot;</span> Товар=<span style="color: #ff0000;">&quot;Empire&quot;</span> Номер=<span style="color: #ff0000;">&quot;11/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;Y:\Company\Общие файлы 1с\Фото\8362203118.jpg&quot;</span> Витрина=<span style="color: #ff0000;">&quot;9&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;">&lt;Элемент <span style="color: #000066;">ID</span>=<span style="color: #ff0000;">&quot;682300047&quot;</span> <span style="color: #000066;">ParentID</span>=<span style="color: #ff0000;">&quot;6823&quot;</span> Товар=<span style="color: #ff0000;">&quot;In Style&quot;</span> Номер=<span style="color: #ff0000;">&quot;12/2009&quot;</span> Фото=<span style="color: #ff0000;">&quot;Y:\Company\Общие файлы 1с\Фото\682300047.jpg&quot;</span> Витрина=<span style="color: #ff0000;">&quot;10&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Vitrina<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Если вы думаете, что работа с  XML в PHP нудна и не целесообразна, спешу разочаровать <img src='http://www.bagrincev.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Весь парсинг сводится к элементарной конструкции:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#загрузим XML файл
</span><span style="color: #000088;">$xml</span> <span style="color: #339933;">=</span> <span style="color: #990000;">simplexml_load_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'XML/Выгрузка/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">#данные получаются в виде объектов, представляющие собой массивы
</span><span style="color: #000088;">$val</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</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: #0000ff;">'Номер'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">#на экран!
</span><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$val</span><span style="color: #339933;">;</span></pre></div></div>

<p>Просто, не правда ли? <img src='http://www.bagrincev.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Кстати, <strong>print_r($xml)</strong> выглядит примерно так:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>Элементов<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">10</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span>Элемент<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8362217666</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">83014</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">100</span> человек<span style="color: #339933;">,</span> которые изменили ход истории <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">95</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8362211581</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">6636</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Mens Health mini <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Y<span style="color: #339933;">:</span>\Company\Общие файлы <span style="color: #cc66cc;">1</span>с\Фото\8362211581<span style="color: #339933;">.</span>jpg <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8362201090</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">938</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Newsweek <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">47</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">3</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">92000054</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">920</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Rolling Stone <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">11</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Y<span style="color: #339933;">:</span>\Company\Общие файлы <span style="color: #cc66cc;">1</span>с\Фото\92000054<span style="color: #339933;">.</span>jpg <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">4</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8285200104</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">82852</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> StarHit <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">46</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Y<span style="color: #339933;">:</span>\Company\Общие файлы <span style="color: #cc66cc;">1</span>с\Фото\8285200104<span style="color: #339933;">.</span>bmp <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">648900054</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">6489</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Total DVD <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">11</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Y<span style="color: #339933;">:</span>\Company\Общие файлы <span style="color: #cc66cc;">1</span>с\Фото\648900054<span style="color: #339933;">.</span>bmp <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">6</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">687800218</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">6878</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Антенна<span style="color: #339933;">-</span>Телесемь <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">48</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">7</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8362219837</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">83587</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Веселый художник <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">23</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">2360</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">8362203118</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">82838</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Empire <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">11</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Y<span style="color: #339933;">:</span>\Company\Общие файлы <span style="color: #cc66cc;">1</span>с\Фото\8362203118<span style="color: #339933;">.</span>jpg <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">9</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">9</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> SimpleXMLElement Object <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">@</span>attributes<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>ID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">682300047</span> <span style="color: #009900;">&#91;</span>ParentID<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">6823</span> <span style="color: #009900;">&#91;</span>Товар<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> In Style <span style="color: #009900;">&#91;</span>Номер<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">12</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2009</span> <span style="color: #009900;">&#91;</span>Фото<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Y<span style="color: #339933;">:</span>\Company\Общие файлы <span style="color: #cc66cc;">1</span>с\Фото\682300047<span style="color: #339933;">.</span>jpg <span style="color: #009900;">&#91;</span>Витрина<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">10</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span></pre></div></div>

<p>Что на само по себе, на деле довольно удобно.</p>
<p>Чтобы примонтировать сетевую шару с 1С-выгрузками, лучше всего использовать <strong>autofs</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">site sb0y # emerge -av autofs
&nbsp;
These are the packages that would be merged, in order:
&nbsp;
Calculating dependencies... done!
[ebuild   R   ] net-fs/autofs-5.0.3-r6  USE=&quot;-ldap -sasl&quot; 0 kB
&nbsp;
Total: 1 package (1 reinstall), Size of downloads: 0 kB
&nbsp;
Would you like to merge these packages? [Yes/No]</pre></div></div>

<p>Она корректно примонтирует шару, отключится, если она (шара) вдруг исчезнет из сети или долго не будет использоваться, подключиться назад, если шара появится или понадобится какому-то процессу (например нашему парсеру).</p>
<p>Создадим новую область работы autofs:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'/mnt/net /etc/auto.auto  --ghost'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>auto.master</pre></div></div>

<p>Настроим эту область</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>auto.auto 
&nbsp;
smb <span style="color: #660033;">-fstype</span>=smbfs,<span style="color: #007800;">credentials</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>smb.auth,<span style="color: #007800;">iocharset</span>=utf8	 :<span style="color: #000000; font-weight: bold;">//</span>server<span style="color: #000000; font-weight: bold;">/</span>share</pre></div></div>

<p>Где <strong>credentials</strong> указывает на файл, в котором содержатся данные для авторизации:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>smb.auth
&nbsp;
<span style="color: #007800;">username</span>=<span style="color: #c20cb9; font-weight: bold;">login</span>
<span style="color: #007800;">password</span>=secretPassword</pre></div></div>

<p>Ну и в завершение - симлинк, в WWW-ROOT сервера, указывающий на папку с выгрузкой.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>magazine<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>net<span style="color: #000000; font-weight: bold;">/</span>smb<span style="color: #000000; font-weight: bold;">/</span>Общие\ файлы\ <span style="color: #000000;">1</span>с<span style="color: #000000; font-weight: bold;">/</span>Интернет_магазин<span style="color: #000000; font-weight: bold;">/</span> XML</pre></div></div>

<p>Теперь XML-файлы доступны по адресу <strong>http://ваш-сайт/XML/file.xml</strong>. Лучше конечно ограничить к ним доступ, используя <strong>.htaccess</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/1c-php-xml/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Музыкальный будильник</title>
		<link>http://www.bagrincev.ru/%d0%bc%d1%83%d0%b7%d1%8b%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%b1%d1%83%d0%b4%d0%b8%d0%bb%d1%8c%d0%bd%d0%b8%d0%ba/</link>
		<comments>http://www.bagrincev.ru/%d0%bc%d1%83%d0%b7%d1%8b%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%b1%d1%83%d0%b4%d0%b8%d0%bb%d1%8c%d0%bd%d0%b8%d0%ba/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 13:41:57 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[Программирование]]></category>

		<category><![CDATA[Самопись]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[mpd]]></category>

		<category><![CDATA[sh]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[будильник]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=753</guid>
		<description><![CDATA[Решил сделать так, чтобы каждое утро меня будила моя Ubuntu Linux.
В биусе была включена функция Alarm, и был написан такой скриптик:

#!/bin/sh
&#160;
#получаем время, конкретнее часы без минут и секунд
time=`date \+\%H`
&#160;
#выставляем громкость и включаем каналы на звуковых картах
amixer sset Master 90%
amixer -c 1 sset PCM 100% unmute
amixer -c 1 sset Mic 100%
&#160;
# Если полученное время ровняется числу ]]></description>
			<content:encoded><![CDATA[<p>Решил сделать так, чтобы каждое утро меня будила моя Ubuntu Linux.</p>
<p>В биусе была включена функция Alarm, и был написан такой скриптик:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#получаем время, конкретнее часы без минут и секунд</span>
<span style="color: #007800;"><span style="color: #000000; font-weight: bold;">time</span></span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> \+\<span style="color: #000000; font-weight: bold;">%</span>H<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#выставляем громкость и включаем каналы на звуковых картах</span>
amixer sset Master <span style="color: #000000;">90</span><span style="color: #000000; font-weight: bold;">%</span>
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">1</span> sset PCM <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span> unmute
amixer <span style="color: #660033;">-c</span> <span style="color: #000000;">1</span> sset Mic <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">%</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Если полученное время ровняется числу 8, говорим mpd начать играть.</span>
<span style="color: #666666; font-style: italic;"># Делается, чтобы музыка начинала играть в 8 часов, а не каждый запуск.</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$time</span>&quot;</span> <span style="color: #660033;">-eq</span> <span style="color: #ff0000;">&quot;8&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span> mpc play ; <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span></pre></div></div>

<p>Скрипт можно вызвать из <strong>/etc/rc.local</strong>, но он выполняется от имени root&#8217;а, поэтому, делать это лучше вот так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #660033;">-c</span> <span style="color: #ff0000;">'/usr/bin/wakeup'</span> sb0y</pre></div></div>

<p>где <strong>sb0y</strong> - имя пользователя, от имени, которого будет запускаться скрипт.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/%d0%bc%d1%83%d0%b7%d1%8b%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%b1%d1%83%d0%b4%d0%b8%d0%bb%d1%8c%d0%bd%d0%b8%d0%ba/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pidgin: Смайлы из QIP</title>
		<link>http://www.bagrincev.ru/pidgin-qip-smiles/</link>
		<comments>http://www.bagrincev.ru/pidgin-qip-smiles/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 17:52:48 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[Самопись]]></category>

		<category><![CDATA[pidgin]]></category>

		<category><![CDATA[qip]]></category>

		<category><![CDATA[qip smiles]]></category>

		<category><![CDATA[smiles]]></category>

		<category><![CDATA[смайлы]]></category>

		<category><![CDATA[смайлы qip для pidgin]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=746</guid>
		<description><![CDATA[
Смайлы для Pidgin из QIP. Ранее лежало на ЛиРу, а файл хостился на nm.ru.
По неизвестным причинам файл был удалён да ещё и ошибку 404 выдаёт поиск search.qip.ru   Ильхам негодует  
Поэтому, я вынужден захостить файл на своём сервере.
Инструкция по применению.
Всё очень просто. Нажимайте: Инструменты -&#62; Настройки -&#62; Темы Смайликов. Потом, &#8220;Добавить&#8221; и выбирайте ]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bagrincev.ru/uploads/screenshot_0031.png"><img class="size-thumbnail wp-image-747 alignleft" title="screenshot_0031" src="http://www.bagrincev.ru/uploads/screenshot_0031-150x150.png" alt="screenshot_0031" width="150" height="150" /></a></p>
<p>Смайлы для Pidgin из QIP. Ранее лежало на ЛиРу, а файл хостился на nm.ru.</p>
<p>По неизвестным причинам файл был удалён да ещё и ошибку 404 выдаёт поиск search.<strong>qip.ru </strong> <img src='http://www.bagrincev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Ильхам негодует <img src='http://www.bagrincev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Поэтому, я вынужден захостить файл на своём сервере.</p>
<p><strong>Инструкция по применению.</strong></p>
<p>Всё очень просто. Нажимайте: Инструменты -&gt; Настройки -&gt; Темы Смайликов. Потом, &#8220;Добавить&#8221; и выбирайте файл, который скачаете ниже.</p>
<p>Если по каким-то причинам установить смайлы не получилось, существует альтернативный способ. В Linux распакуйте содержимое архива в папку <strong>~/.purple/smileys/QIP-pidgin</strong>. В Windows <strong>&lt;папка с программой Pidgin&gt;\pixmaps\pidgin\emotes</strong>.</p>
<p>Change log:</p>
<blockquote><p>1 - first release<br />
2 - a small bug fixing<br />
//change for 10.7.2009<br />
3 - update regular.png on real QIP smile<br />
4 - add protect symbols<br />
5 - add new smiles symbols - &#8220;:[&#8221;, &#8220;:O&#8221;, &#8220;=O&#8221;, &#8220;:!&#8221;<br />
6 - add smile &#8220;*WALL*&#8221;<br />
7 - added a lot of new smile from Puzan pack</p></blockquote>
<h2><a href="http://www.bagrincev.ru/my/QIP-pidgin-smiles/QIP-pidgin.tar.gz">Pidgin Smiles from QIP</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/pidgin-qip-smiles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jabber: полезное</title>
		<link>http://www.bagrincev.ru/jabber-%d0%bf%d0%be%d0%bb%d0%b5%d0%b7%d0%bd%d0%be%d0%b5/</link>
		<comments>http://www.bagrincev.ru/jabber-%d0%bf%d0%be%d0%bb%d0%b5%d0%b7%d0%bd%d0%be%d0%b5/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 18:42:11 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[bot]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[jabber]]></category>

		<category><![CDATA[translate]]></category>

		<category><![CDATA[xmpp]]></category>

		<category><![CDATA[перевод]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=744</guid>
		<description><![CDATA[Существуют два очень полезных XMPP бота от гугла. Они занимаются переводом. Достаточно добавить их к себе в ростер и написать слово и тут же получите ответ с его переводом.
Русско-английский словарь:
ru2en@bot.talk.google.com 
Англо-русский словарь:
en2ru@bot.talk.google.com
]]></description>
			<content:encoded><![CDATA[<p>Существуют два очень полезных XMPP бота от гугла. Они занимаются переводом. Достаточно добавить их к себе в ростер и написать слово и тут же получите ответ с его переводом.</p>
<p>Русско-английский словарь:</p>
<p><strong><a href="xmpp:ru2en@bot.talk.google.com">ru2en@bot.talk.google.com </a></strong></p>
<p>Англо-русский словарь:</p>
<p><strong><a href="xmpp:en2ru@bot.talk.google.com">en2ru@bot.talk.google.com</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/jabber-%d0%bf%d0%be%d0%bb%d0%b5%d0%b7%d0%bd%d0%be%d0%b5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu Server: USB ключ 1С для сервера предприятия</title>
		<link>http://www.bagrincev.ru/ubuntu-server-1c-hasp/</link>
		<comments>http://www.bagrincev.ru/ubuntu-server-1c-hasp/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 02:08:32 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[1C]]></category>

		<category><![CDATA[aksusbd]]></category>

		<category><![CDATA[Hasp]]></category>

		<category><![CDATA[Server]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=740</guid>
		<description><![CDATA[Исходя из информации:
Драйвер ключей защиты HASP для GNU/Linux состоит из нескольких взаимодействующих компонент:
aksparlnx (версия 1.6) — модуль ядра, обеспечивающий низкоуровневый доступ к LPT-ключу;
askusbd (версия 1.8.1) — универсальный драйвер для USB- и LPT-ключей (системная служба);
winehasp (версия 1.00) — часть драйвера, предоставляющая доступ к ключу HASP win-приложениям, исполняющимся в среде WINE (системная служба);
hasplm (версия 8.30) — сетевой ]]></description>
			<content:encoded><![CDATA[<p>Исходя из информации:</p>
<blockquote><p>Драйвер ключей защиты HASP для GNU/Linux состоит из нескольких взаимодействующих компонент:</p>
<p>aksparlnx (версия 1.6) — модуль ядра, обеспечивающий низкоуровневый доступ к LPT-ключу;<br />
askusbd (версия 1.8.1) — универсальный драйвер для USB- и LPT-ключей (системная служба);<br />
winehasp (версия 1.00) — часть драйвера, предоставляющая доступ к ключу HASP win-приложениям, исполняющимся в среде WINE (системная служба);<br />
hasplm (версия 8.30) — сетевой менеджер лицензий (системная служба).</p></blockquote>
<p>Качаем архив: <a href="ftp://ftp.aladdin.com/pub/hasp/srm/Linux/HASP_SRM_LINUX_3.50_Run-time_Installer_script.tar.gz">ftp://ftp.aladdin.com/pub/hasp/srm/Linux/HASP_SRM_LINUX_3.50_Run-time_Installer_script.tar.gz</a><br />
Потом:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>hasp
<span style="color: #c20cb9; font-weight: bold;">mv</span> HASP_SRM_LINUX_3.50_Run-time_Installer_script.tar.gz <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>hasp
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>hasp
<span style="color: #c20cb9; font-weight: bold;">tar</span> xvpf HASP_SRM_LINUX_3.50_Run-time_Installer_script.tar.gz
<span style="color: #7a0874; font-weight: bold;">cd</span> HASP_SRM_LINUX_3.50_Run-time_Installer_script
.<span style="color: #000000; font-weight: bold;">/</span>dinst <span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">pwd</span><span style="color: #000000; font-weight: bold;">`</span></pre></div></div>

<p>После нужно добавить в /etc/fstab строчку:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">none <span style="color: #000000; font-weight: bold;">/</span>proc<span style="color: #000000; font-weight: bold;">/</span>bus<span style="color: #000000; font-weight: bold;">/</span>usb usbfs defaults <span style="color: #000000;">0</span> <span style="color: #000000;">0</span></pre></div></div>

<p>Не забываем сделать mount -a, чтобы всё подхватилось.</p>
<p>Чтобы проверить готовность демона, можно зайти через браузер links на порт 1947:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">links http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">1947</span></pre></div></div>

<p>Если нужно управлять демоном с другой машины, удалённо - в каталоге <span class="forumbodytext">/etc/hasplm создайте файл </span><strong><span class="forumbodytext">hasplm.ini</span></strong><span class="forumbodytext"> и в нём напишете:</span></p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>SERVER<span style="">&#93;</span></span>
<span style="color: #000099;">ACCremote</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 1</span></pre></div></div>

<p>Ну и потом:<br />
<strong>/etc/init.d/aksusbd restart</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/ubuntu-server-1c-hasp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu: Сглаживание шрифтов с хинтингом на системном уровне</title>
		<link>http://www.bagrincev.ru/ubuntu-%d1%81%d0%b3%d0%bb%d0%b0%d0%b6%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%88%d1%80%d0%b8%d1%84%d1%82%d0%be%d0%b2-%d1%81-%d1%85%d0%b8%d0%bd%d1%82%d0%b8%d0%bd%d0%b3%d0%be%d0%bc-%d0%bd%d0%b0-%d1%81/</link>
		<comments>http://www.bagrincev.ru/ubuntu-%d1%81%d0%b3%d0%bb%d0%b0%d0%b6%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%88%d1%80%d0%b8%d1%84%d1%82%d0%be%d0%b2-%d1%81-%d1%85%d0%b8%d0%bd%d1%82%d0%b8%d0%bd%d0%b3%d0%be%d0%bc-%d0%bd%d0%b0-%d1%81/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 23:51:58 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<category><![CDATA[hinting]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[шрифты]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=728</guid>
		<description><![CDATA[В Linux сейчас много способов добиться гладких, не размытых шрифтов, не прибегая к запатентованным технологиям.
К счастью, уже не нужно пересобирать freetype. Но мы так же знаем, что графических сред очень много и уже не редки те случаи, когда на одном PC, используется несколько сред. При этом, так же, не стоит забывать что каждая среда со ]]></description>
			<content:encoded><![CDATA[<p>В Linux сейчас много способов добиться гладких, не размытых шрифтов, не прибегая к запатентованным технологиям.</p>
<p>К счастью, уже не нужно пересобирать freetype. Но мы так же знаем, что графических сред очень много и уже не редки те случаи, когда на одном PC, используется несколько сред. При этом, так же, не стоит забывать что каждая среда со шрифтами работает по-разному.</p>
<p>Поэтому, я предлагаю настроить сглаживание шрифтов в Ubuntu на системного уровне. Вот так выглядит шрифт Liberations у меня:</p>
<p><a href="http://www.bagrincev.ru/uploads/screenshot_002.png"><img class="size-thumbnail wp-image-730 alignleft" style="margin-top: 4px; margin-bottom: 4px;" title="screenshot_002" src="http://www.bagrincev.ru/uploads/screenshot_002-150x150.png" alt="screenshot_002" width="150" height="150" /></a> <a href="http://www.bagrincev.ru/uploads/screenshot_0011.png"><img class="size-thumbnail wp-image-729 alignnone" style="margin: 4px 3px;" title="screenshot_0011" src="http://www.bagrincev.ru/uploads/screenshot_0011-150x150.png" alt="screenshot_0011" width="150" height="150" /></a></p>
<p>Чтобы добиться того же у себя, в файле <strong>/etc/fonts/local.conf</strong> пишем:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #00bbdd;">&lt;!DOCTYPE fontconfig SYSTEM &quot;fonts.dtd&quot;&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fontconfig<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;match</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;font&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;edit</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;autohint&quot;</span> <span style="color: #000066;">mode</span>=<span style="color: #ff0000;">&quot;assign&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;bool<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/bool<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/edit<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/match<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fontconfig<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>И перезапускам все приложения, что работали до изменений.<br />
В настройках среды можно выставить антилязинг по вкусу (обычно включается по умолчанию).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/ubuntu-%d1%81%d0%b3%d0%bb%d0%b0%d0%b6%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%88%d1%80%d0%b8%d1%84%d1%82%d0%be%d0%b2-%d1%81-%d1%85%d0%b8%d0%bd%d1%82%d0%b8%d0%bd%d0%b3%d0%be%d0%bc-%d0%bd%d0%b0-%d1%81/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Apache2: кодировка сайтов по-умолчанию</title>
		<link>http://www.bagrincev.ru/apache2-%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%be%d0%b2-%d0%bf%d0%be-%d1%83%d0%bc%d0%be%d0%bb%d1%87%d0%b0%d0%bd%d0%b8%d1%8e/</link>
		<comments>http://www.bagrincev.ru/apache2-%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%be%d0%b2-%d0%bf%d0%be-%d1%83%d0%bc%d0%be%d0%bb%d1%87%d0%b0%d0%bd%d0%b8%d1%8e/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 08:21:54 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
		
		<category><![CDATA[how-to]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/apache2-%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%be%d0%b2-%d0%bf%d0%be-%d1%83%d0%bc%d0%be%d0%bb%d1%87%d0%b0%d0%bd%d0%b8%d1%8e/</guid>
		<description><![CDATA[Если нужно быстро задать кодировку статики для Apache2, например в Gentoo, cделать это можно в файле /etc/apache2/httpd.conf,  добавив 2 строчки:

IndexOptions Charset=UTF-8
AddDefaultCharset UTF-8

]]></description>
			<content:encoded><![CDATA[<p>Если нужно быстро задать кодировку статики для <strong>Apache2</strong>, например в Gentoo, cделать это можно в файле <strong>/etc/apache2/httpd.conf</strong>,  добавив 2 строчки:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">IndexOptions <span style="color: #007800;">Charset</span>=UTF-<span style="color: #000000;">8</span>
AddDefaultCharset UTF-<span style="color: #000000;">8</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/apache2-%d0%ba%d0%be%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d1%81%d0%b0%d0%b9%d1%82%d0%be%d0%b2-%d0%bf%d0%be-%d1%83%d0%bc%d0%be%d0%bb%d1%87%d0%b0%d0%bd%d0%b8%d1%8e/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 6.532 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-12 23:02:46 -->
