<?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>iЛаборатория</title>
	<atom:link href="http://ilabsblog.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://ilabsblog.ru</link>
	<description>Блог посвящен программированию, верстке, дизайну, интернету, работе и просто моим мыслям</description>
	<lastBuildDate>Sat, 26 Jun 2010 15:31:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Заметка по CMS Joomla</title>
		<link>http://ilabsblog.ru/2010/06/26/zametka-po-cms-joomla/</link>
		<comments>http://ilabsblog.ru/2010/06/26/zametka-po-cms-joomla/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 15:31:07 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[CMS Joomla]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=410</guid>
		<description><![CDATA[
			
				
			
		
Добрый вечер!
Совсем не давно по работе столкнулся с такой проблемой: необходимо в CMS Joomla сделать возможность редактирования TITLE тега, так как данная CMS изначально не дает такой возможности.
Писать сложные компоненты или еще что либо подобное было лень, так как не было такой необходимости. В общем был нужен любой способ решения, как Вы наверное понимаете, необходимо [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F06%2F26%2Fzametka-po-cms-joomla%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F06%2F26%2Fzametka-po-cms-joomla%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый вечер!</p>
<p><a href="http://ilabsblog.ru/wp-content/uploads/2010/06/joomla.png"><img src="http://ilabsblog.ru/wp-content/uploads/2010/06/joomla-300x190.png" alt="" title="CMS Joomla" width="300" height="190" class="alignleft size-medium wp-image-411" /></a>Совсем не давно по работе столкнулся с такой проблемой: необходимо в CMS Joomla сделать возможность редактирования TITLE тега, так как данная CMS изначально не дает такой возможности.</p>
<p>Писать сложные компоненты или еще что либо подобное было лень, так как не было такой необходимости. В общем был нужен любой способ решения, как Вы наверное понимаете, необходимо это было для оптимизации страниц под поисковые системы.</p>
<p>Сразу хочу сказать, что полно готовых модулей для этих целей, но опять таки они мне не подходили по ряду причин и поэтому было принято решение редактировать функции Joomla.</p>
<p>Для решения данной задачи, необходимо открыть вот этот файл:</p>
<blockquote><p>\libraries\joomla\document\html\renderer\head.php</p></blockquote>
<p>Находим 53 строку, в которой объявляется функция <em>fetchHead().</em> Далее в 77 строку вставляем вот такой вот нехитрый код:<br />
<span id="more-410"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>77
78
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;title&quot;</span><span style="color: #009900;">&#41;</span> 
<span style="color: #000088;">$TITLE</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>И потом 87 строка, преобразуется вот в такую:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>87
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$strHtml</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$tab</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;title&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$TITLE</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/title&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$lnEnd</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Все, после таких не сложных манипуляций при редактировании материала (поле &#8220;Заголовок&#8221;), заголовок будет выводиться в теге title.</p>
<p>С уважением, Главный Лаборант.<br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/01/11/rabota-trabl-ili-xitryj-bitriks/" title="Работа -> трабл() или хитрый Битрикс&#8221;>Работа -> трабл() или хитрый Битрикс (1)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/05/vvedenie-v-komponenty-2-0-1s-bitriks-chast-1/" title="Введение в Компоненты 2.0 1С-Битрикс. Часть 1">Введение в Компоненты 2.0 1С-Битрикс. Часть 1 (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/17/interesnyj-vopros-po-php/" title="Интересный вопрос по PHP">Интересный вопрос по PHP (20)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/05/interesnye-resheniya-na-php/" title="Интересные решения на PHP">Интересные решения на PHP (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/19/rabota-rabota-i-eshhe-raz-rabota/" title="Работа, работа и еще раз работа">Работа, работа и еще раз работа (4)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/06/26/zametka-po-cms-joomla/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Выпускная работа бакалавра</title>
		<link>http://ilabsblog.ru/2010/06/21/vypusknaya-rabota-bakalavra/</link>
		<comments>http://ilabsblog.ru/2010/06/21/vypusknaya-rabota-bakalavra/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 10:29:30 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Бакалавр]]></category>
		<category><![CDATA[Учеба]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=408</guid>
		<description><![CDATA[
			
				
			
		
Всем привет!
Вот уже около 2-х месяцев не писал ничего в блоге   Вы не подумайте, что не было о чем написать или, что я решил закинуть блог &#8211; нет, я просто сдавал сессию и писал выпускную работу бакалавра.
Тема моей выпускной работы &#8220;Оптимальное компаундирование дизельных топлив&#8221;, данная задача решается при помощи симплекс метода. Времени я [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F06%2F21%2Fvypusknaya-rabota-bakalavra%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F06%2F21%2Fvypusknaya-rabota-bakalavra%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Всем привет!</p>
<p>Вот уже около 2-х месяцев не писал ничего в блоге <img src='http://ilabsblog.ru/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  Вы не подумайте, что не было о чем написать или, что я решил закинуть блог &#8211; нет, я просто сдавал сессию и писал выпускную работу бакалавра.</p>
<p>Тема моей выпускной работы &#8220;Оптимальное компаундирование дизельных топлив&#8221;, данная задача решается при помощи симплекс метода. Времени я убил на эту работу очень даже достаточно &#8211; около 2-х месяцев. Само собой что по-началу я не много времени уделял работе, но под конец я сидел просто сутками. Основная трудность, которая возникла при выполнении работы &#8211; это ошибка в первоначальной реализации симплекс метода и, как потом уже выяснилось, ошибка в условии задачи.</p>
<p><span id="more-408"></span></p>
<p>В итоге решил не изобретать велосипед, а найти нормальную библиотеку с данным методом. Один очень хороший знакомый посоветовал LPSolve версии 5.5 &#8211; отличная библиотека. В общем за ночь прикрутил данную библиотеку к своему проекту, дописал записку и совсем не давно (в прошлую пятницу) сдал работу на проверку.</p>
<p>Можете за меня порадоваться &#8211; рекомендуемая оценка за работу отлично <img src='http://ilabsblog.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Теперь осталось только 28 числа защитить степень бакалавра и все, можно будет смело отдыхать и работать <img src='http://ilabsblog.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>С уважением, Главный Лаборант.<br />
<h3>Случайные записи</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/01/04/google-kreativ/" title="Google креатив ">Google креатив  (9)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/06/vvedenie-v-java/" title="Введение в язык программирования Java">Введение в язык программирования Java (9)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/03/ya-sejchas-rabotayu-nad/" title="Я сейчас работаю над&#8230;">Я сейчас работаю над&#8230; (10)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/22/obnovlenie-bloga/" title="Обновление блога">Обновление блога (16)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/05/plagin-wp-todolist-dlya-wordpress/" title="Плагин WP ToDoList для WordPress!">Плагин WP ToDoList для WordPress! (13)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/06/21/vypusknaya-rabota-bakalavra/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Усовершенствованный компонент 1С-Битрикс bitrix:menu</title>
		<link>http://ilabsblog.ru/2010/04/25/komponent-bitrix-menu/</link>
		<comments>http://ilabsblog.ru/2010/04/25/komponent-bitrix-menu/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 11:08:59 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[1С-Битрикс]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Работа]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Компонент 2.0]]></category>
		<category><![CDATA[Пример]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=401</guid>
		<description><![CDATA[
			
				
			
		
Добрый день, дорогие читатели!
Если Вы следите за моим  twitter&#8216;ом, то наверное, читали твит анонс, в котором я говорил про пост о 1С-Битрикс и jQuery меню. В данный момент, решил не много отдохнуть от работы и диплома, поэтому выкладываю пост.
Как видно из названия, в данном посте пойдет речь о стандартном компоненте 2.0 CMS 1С-Битрикс, который я [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F25%2Fkomponent-bitrix-menu%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F25%2Fkomponent-bitrix-menu%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый день, дорогие читатели!</p>
<p><a href="http://ilabsblog.ru/wp-content/uploads/2010/04/box_business.jpg"><img src="http://ilabsblog.ru/wp-content/uploads/2010/04/box_business-290x300.jpg" alt="" title="1С-Битрикс" width="290" height="300" class="alignleft size-medium wp-image-405" /></a>Если Вы следите за моим  <a title="iLabs2010 twitter" href="http://twitter.com/iLabs2010" target="_blank">twitter</a>&#8216;ом, то наверное, читали твит анонс, в котором я говорил про пост о 1С-Битрикс и jQuery меню. В данный момент, решил не много отдохнуть от работы и диплома, поэтому выкладываю пост.</p>
<p>Как видно из названия, в данном посте пойдет речь о стандартном компоненте 2.0 CMS 1С-Битрикс, который я немного усовершенствовал под свои нужды. Начну из далека, по работе дали задание, в котором требуется реализовать раскрывающиеся меню с сохранением раскрытых пунктов при переходе и реализовать все это на файлах меню (<em>.left.menu.php</em>). Как только я получил данное задание, задумался о том, как же реализовать меню на файлах? До этого я сталкивался только с меню строящимся из информационных блоков. Сразу бросается в глаза, что можно использовать стандартный компонент bitrix:menu, в котором есть все необходимые настройки, кроме одной: вывод полного меню на любой странице, даже после перехода.</p>
<p><strong>Формулировка задачи</strong></p>
<p>Во-первых, необходимо доработать компонент bitrix:menu и научить его всегда выводить выбранное меню (left) от корня сайта. Во-вторых, привязать меню на jQuery с плагином jQuery.cookie. Со вторым пунктом все намного проще, так как наработки в данном направлении уже имеются и о них я писал на блоге (пост &#8220;<a title="Меню на jQuery" href="http://ilabsblog.ru/2010/03/10/menyu-na-jquery/" target="_blank">Меню на jQuery</a>&#8220;). С первым в общем-то тоже проблем не было, нужно было только придумать как все красиво подправить, чтобы это работало, было удобно и можно было использовать в других проектах. С постановкой задачи мы определились, пора приступать к реализации.<br />
<span id="more-401"></span><br />
<strong>Реализация</strong></p>
<p>Перед реализацией, необходимо провести подготовительную работу, т.е. скопировать компонент bitrix:menu в папку components/ИМЯ_НАШЕГО_NAMESPACE/, так же стоит поменять название, например на left.menu.</p>
<p>Теперь у нас все готово для правки кода. Открываем основной файл компонента component.php и ищем вот такую строчку (в районе 28):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>28
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$curDir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$APPLICATION</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetCurDir</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Именно этот кусок кода нам и надо отредактировать, функция GetCurDir() &#8211; возвращает рабочий каталог, именно эта функция заставляет наш компонент искать файлы меню в отличных от &#8220;/&#8221; каталогах, после перехода, нам же надо заставить искать файлы всегда, начиная с корня.</p>
<p>Самое простое было бы просто убрать эту функцию и поставить &#8220;/&#8221;, но тогда данный компонент будет, узкоспециализированным, а нам бы все таки хотелось универсальный инструмент, поэтому мы пойдем немного другим путем. Заменяем данную строку, на такой код:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>28
29
30
31
32
33
34
35
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
Расширение компонента, если параметр $arParams[&quot;PATH_MENU&quot;] == &quot;&quot;, то меню выводиться
свое для каждого уровня, если имеет параметр /, то всегда полное меню 
*/</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$arParams</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;PATH_MENU&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #000088;">$curDir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$APPLICATION</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetCurDir</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">else</span>
	<span style="color: #000088;">$curDir</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$arParams</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;PATH_MENU&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>После этого добавления, нам нужно поправить файл .parameters.php и внести следующие строчки кода:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #0000ff;">&quot;PATH_MENU&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span>
			<span style="color: #0000ff;">&quot;NAME&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;Выводить все уровни, начиная с&quot;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">&quot;TYPE&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;TEXTBOX&quot;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">&quot;DEFAULT&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">&quot;PARENT&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;BASE&quot;</span>
		        <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></pre></td></tr></table></div>

<p>Тут особо комментировать нечего, так что воздержусь. Подведем итоги первой части работы: мы выполнили первую часть задания, при этом сохранили стандартный функционал, что, по-моему мнению, является правильным. Теперь для работы нам просто, необходимо поменять компонент и в настройках поставить &#8220;/&#8221; для нашей опции (параметра).</p>
<p><strong>Вторая часть задания &#8211; привязка jQuery меню</strong></p>
<p>Копируем шаблон и начинаем редактировать его, проще сразу все удалить и вставить следующий код:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;B_PROLOG_INCLUDED&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> B_PROLOG_INCLUDED<span style="color: #339933;">!==</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;script src=&quot;<span style="color: #000000; font-weight: bold;">&lt;?=</span>SITE_TEMPLATE_PATH<span style="color: #000000; font-weight: bold;">?&gt;</span>/components/bitrix/menu/LMenu/script.js&quot;&gt;&lt;/script&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #000000; font-weight: bold;">function</span> Img<span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #339933;">,</span> <span style="color: #000088;">$lvl</span><span style="color: #339933;">,</span> <span style="color: #000088;">$j</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$j</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$j</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;DEPTH_LEVEL&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$lvl</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$img</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;img style=&quot;padding-top: 6px;&quot; id=&quot;plus'</span><span style="color: #339933;">.</span><span style="color: #000088;">$j</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; name=&quot;plus'</span><span style="color: #339933;">.</span><span style="color: #000088;">$j</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;/&gt;'</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$img</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arResult</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;ul id=&quot;menuLeft&quot; class=&quot;padding1&quot;&gt;		
	<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #000088;">$realLevel</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$idParent</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
		<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arResult</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$i</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$arItem</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
			<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arItem</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;DEPTH_LEVEL&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$realLevel</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
				<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #000088;">$realLevel</span><span style="color: #339933;">++;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
				&lt;ul id=&quot;splus<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$idParent</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; style=&quot;padding-left: 10px; display: none;&quot;&gt;
&nbsp;
			<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
			<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arItem</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;DEPTH_LEVEL&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$realLevel</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
				<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #000088;">$realLevel</span><span style="color: #339933;">--;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
				&lt;/ul&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
			<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arItem</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;DEPTH_LEVEL&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$realLevel</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
					&lt;li style=&quot;background-image: none;&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span>Img<span style="color: #009900;">&#40;</span><span style="color: #000088;">$arResult</span><span style="color: #339933;">,</span> <span style="color: #000088;">$realLevel</span><span style="color: #339933;">,</span> <span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$arItem</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;LINK&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$arItem</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;TEXT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&lt;/a&gt;&lt;/li&gt;
			<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
			<span style="color: #000000; font-weight: bold;">&lt;?</span>
				<span style="color: #666666; font-style: italic;">//устанавливаем нового Папу :-)</span>
				<span style="color: #000088;">$idParent</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$i</span><span style="color: #339933;">;</span>
				<span style="color: #666666; font-style: italic;">//echo $idParent.&quot;-&quot;.$i.&quot;&lt;br/&gt;&quot;;</span>
			<span style="color: #000000; font-weight: bold;">?&gt;</span>
		<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">endforeach</span><span style="color: #000000; font-weight: bold;">?&gt;</span>
	&lt;/ul&gt;
<span style="color: #000000; font-weight: bold;">&lt;?</span><span style="color: #b1b100;">endif</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Во-второй, строке я сознательно &#8220;жестко&#8221; подключил файл JS, для наглядности.<br />
Листинг JS файла:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#menuLeft img&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">cookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'submenuM-'</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			document.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/bitrix/templates/binran/images/list-marker1.gif'</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#s&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</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: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			document.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/bitrix/templates/binran/images/list-marker.gif'</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#s&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</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: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#menuLeft img&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#s&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'display'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'none'</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				cookieSet<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#s&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				document.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/bitrix/templates/binran/images/list-marker1.gif'</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#s&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'display'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				cookieDel<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;ul#s&quot;</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				document.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/bitrix/templates/binran/images/list-marker.gif'</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> cookieSet<span style="color: #009900;">&#40;</span>index<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$.<span style="color: #660066;">cookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'submenuM-'</span> <span style="color: #339933;">+</span> index<span style="color: #339933;">,</span> <span style="color: #3366CC;">'opened'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>expires<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Set mark to cookie (submenu is shown):</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #003366; font-weight: bold;">function</span> cookieDel<span style="color: #009900;">&#40;</span>index<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	$.<span style="color: #660066;">cookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'submenuM-'</span> <span style="color: #339933;">+</span> index<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>expires<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> path<span style="color: #339933;">:</span> <span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Delete mark from cookie (submenu is hidden):</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Тут код, должен быть понятен, если Вы читали прошлый пост про меню на jQuery, поэтому опять таки комментировать не буду, если возникнут вопросы, то задавайте в комментариях.</p>
<p>Все. Вроде все задания выполнены, есть результат и что самое важное все работает как часы <img src='http://ilabsblog.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<p>Подписывайтесь на <a href="http://feeds.feedburner.com/iLabsBlog" target=_blank>RSS</a> и <a title="iLabs2010 twitter" href="http://twitter.com/iLabs2010" target="_blank">Twitter</a>, чтобы не пропустить интересные посты!</p>
<p>С уважением, Главный Лаборант.<br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/03/10/menyu-na-jquery/" title="Меню на jQuery">Меню на jQuery (14)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/07/vvedenie-v-komponenty-2-0-1s-bitriks-chast-2/" title="Введение в Компоненты 2.0 1С-Битрикс. Часть 2">Введение в Компоненты 2.0 1С-Битрикс. Часть 2 (3)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/05/vvedenie-v-komponenty-2-0-1s-bitriks-chast-1/" title="Введение в Компоненты 2.0 1С-Битрикс. Часть 1">Введение в Компоненты 2.0 1С-Битрикс. Часть 1 (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/17/rsa-shifrovanie-java/" title="Проба пера -> RSA шифрование на Java&#8221;>Проба пера -> RSA шифрование на Java (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/24/svoya-forma-dobavleniya-elementa-v-1s-bitriks/" title="Своя форма добавления элемента в 1С-Битрикс">Своя форма добавления элемента в 1С-Битрикс (2)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/04/25/komponent-bitrix-menu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>О качестве материала</title>
		<link>http://ilabsblog.ru/2010/04/23/o-kachestve-materiala/</link>
		<comments>http://ilabsblog.ru/2010/04/23/o-kachestve-materiala/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 07:42:29 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[Блог]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Опрос]]></category>
		<category><![CDATA[новости]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=389</guid>
		<description><![CDATA[
			
				
			
		
Добрый день, читатели!
Сегодня решил добавить новую рубрику &#8220;Опросы&#8221;, в данной рубрике будут, как понятно из названия, посты &#8211; опросы. Первым важным опросом, я считаю, качество материала на данном блоге. Ваше мнение для очень важно, поэтому, пожалуйста, найдите минутку на голосование.
Тема первого опроса, очень широкая, поэтому желательно пояснять выбор ответа в комментариях, чтобы я мог понять, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F23%2Fo-kachestve-materiala%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F23%2Fo-kachestve-materiala%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый день, читатели!</p>
<p><a href="http://ilabsblog.ru/wp-content/uploads/2010/04/survey.jpg"><img class="alignleft size-thumbnail wp-image-393" title="Опрос" src="http://ilabsblog.ru/wp-content/uploads/2010/04/survey-150x150.jpg" alt="" width="150" height="150" /></a>Сегодня решил добавить новую рубрику &#8220;Опросы&#8221;, в данной рубрике будут, как понятно из названия, посты &#8211; опросы. Первым важным опросом, я считаю, качество материала на данном блоге. Ваше мнение для очень важно, поэтому, пожалуйста, найдите минутку на голосование.</p>
<p>Тема первого опроса, очень широкая, поэтому желательно пояснять выбор ответа в комментариях, чтобы я мог понять, что стоит исправить / добавить / изменить.</p>
<p><span id="more-389"></span></p>
<h2><strong>Опрос</strong></h2>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p>Всем заранее большое спасибо за Ваши ответы.</p>
<p>С уважением, Главный Лаборант.<br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/02/24/novyj-domen-ilabsblog-ru/" title="Новый домен iLabsBlog.ru">Новый домен iLabsBlog.ru (17)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/22/obnovlenie-bloga/" title="Обновление блога">Обновление блога (16)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/07/obnovleniya-v-dizajne-bloga/" title="Обновления в дизайне блога">Обновления в дизайне блога (10)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/17/html-5-otlichnaya-prezentaciya/" title="HTML 5 отличная презентация">HTML 5 отличная презентация (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/04/novyj-dizajn-bloga/" title="Новый дизайн блога">Новый дизайн блога (6)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/04/23/o-kachestve-materiala/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Шаблон проектирования Singleton</title>
		<link>http://ilabsblog.ru/2010/04/20/shablon-proektirovaniya-singleton/</link>
		<comments>http://ilabsblog.ru/2010/04/20/shablon-proektirovaniya-singleton/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 08:26:29 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[Singleton]]></category>
		<category><![CDATA[ООП]]></category>
		<category><![CDATA[Паттерн]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[Проектирование]]></category>
		<category><![CDATA[Шаблон проектирования]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=381</guid>
		<description><![CDATA[
			
				
			
		
Добрый вечер!
Сегодня хотелось бы &#8220;пролить свет&#8221; на такую особенность создания  крупных приложений, как Web направленности, так и оффлайн программ &#8211; как проектирование. Под проектированием системы понимается создание проекта программного обеспечения, на выходе мы должны иметь технический проект. Грамотное проектирование позволяет избежать многих проблем в будущем, связанных с расширением программы и доработками.
При проектировании программного обеспечения используют [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F20%2Fshablon-proektirovaniya-singleton%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F20%2Fshablon-proektirovaniya-singleton%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый вечер!</p>
<p><a href="http://ilabsblog.ru/wp-content/uploads/2010/04/Singleton_UML.png"><img src="http://ilabsblog.ru/wp-content/uploads/2010/04/Singleton_UML-300x180.png" alt="" title="Шаблон проектирования Singleton (UML)" width="300" height="180" class="alignleft size-medium wp-image-384" /></a>Сегодня хотелось бы &#8220;пролить свет&#8221; на такую особенность создания  крупных приложений, как Web направленности, так и оффлайн программ &#8211; как проектирование. Под проектированием системы понимается создание проекта программного обеспечения, на выходе мы должны иметь технический проект. Грамотное проектирование позволяет избежать многих проблем в будущем, связанных с расширением программы и доработками.</p>
<p>При проектировании программного обеспечения используют паттерны. Паттерн &#8211; это шаблон, т.е. готовое решение какой-либо задачи разработки ПО. При правильном подходе к проектированию и использованию шаблонов проектирования, мы получим мощный, гибкий, легко расширяемый и изменяемый программный код или продукт. Согласитесь это очень полезно, особенно тогда, когда проект разрастается до внушительных размеров.</p>
<p>Сегодня я попытаюсь рассказать о шаблоне проектирования Singleton.</p>
<p><span id="more-381"></span></p>
<p><strong>Шаблон проектирования Singleton</strong></p>
<p>Singleton &#8211; в переводе с английского &#8211; <em>Одиночка</em>. Основная цель данного шаблона проектирования &#8211; это возможность создания единственного объекта класса, именно это шаблон гарантирует. Данный шаблон проектирования, наверное, самый распространенный, так как может помогать решать достаточно большое количество задач в программировании.</p>
<p>Основными преимуществами использования данного шаблона, являются:</p>
<ul>
<li>контролируемый доступ к экземпляру класса;</li>
<li>уменьшение числа глобальных переменных;</li>
<li>возможность переменного числа экземпляров класса.</li>
</ul>
<p><strong>Реализация шаблона проектирования Singleton</strong></p>
<p><em>Одиночка </em>реализуется при помощи статической переменной класса, которую мы проверяем на существование, посмотрим на пример на языке программирования PHP 5:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td 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;">class</span> Singleton <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// object instance</span>
  <span style="color: #000000; font-weight: bold;">private</span> static <span style="color: #000088;">$instance</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> __clone<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> static <span style="color: #000000; font-weight: bold;">function</span> getInstance<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$instance</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$instance</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #000088;">$instance</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> doAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #339933;">...</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//Использование</span>
Singleton<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;">-&gt;</span><span style="color: #004000;">doAction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>В данном примере, мы имеем закрытую статическую переменную <strong>instance</strong>, которая, либо равна значению Null, либо содержит наш объект. Почему именно статическая переменная? Мы используем именно статическую переменную, так как она для всех порожденных объектов будет равна.</p>
<p>Принцип действия прост мы вызываем статический метод <strong>getInstance()</strong>, в котором проверяем существует или нет объект класса <strong>self</strong>, если существует, то возвращаем его и производим над ним какие-либо действия (метод <strong>doAction()</strong>), либо создаем новый объект.</p>
<p>Для примера, приведу реализацию на языке программирования C++:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="c" style="font-family:monospace;">template<span style="color: #339933;">&lt;</span>typename T<span style="color: #339933;">&gt;</span> class Singleton
 <span style="color: #009900;">&#123;</span>
&nbsp;
   public<span style="color: #339933;">:</span>
     <span style="color: #993333;">static</span> T<span style="color: #339933;">&amp;</span> Instance<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
         <span style="color: #993333;">static</span> T theSingleInstance<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// у класса T есть конструктор по умолчанию</span>
         <span style="color: #b1b100;">return</span> theSingleInstance<span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
 class OnlyOne <span style="color: #339933;">:</span> public Singleton<span style="color: #339933;">&lt;</span>OnlyOne<span style="color: #339933;">&gt;</span>
 <span style="color: #009900;">&#123;</span>
     <span style="color: #666666; font-style: italic;">//.. интерфейс класса</span>
 <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>В общем все тоже самое, только в синтаксисе языка C++.</p>
<p><strong>Реальное применение шаблона проектирования Singleton</strong></p>
<p>Реальное применение данного шаблона проектирования мы рассмотрим на примере задачи в области Web программирования, на языке PHP 5. При написании любых сайтов с применением PHP и баз данных, например MySQL, <del datetime="2010-04-19T17:31:14+00:00">зачастую</del> всегда необходимо следить за количеством подключений к той самой базе данных, чтобы сберечь ресурсы сервера. Именно для таких целей мы можем использовать данный шаблон. </p>
<p>Задача: позволить только одно подключение к базе данных. Реализация, как вы уже догадываетесь, на шаблоне проектирования Одиночка.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> MySQLConnect
<span style="color: #009900;">&#123;</span>
  static <span style="color: #000088;">$instances</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$connection</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$select</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$hostname</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Конструктор класса</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>MySQLConnect<span style="color: #339933;">::</span><span style="color: #000088;">$instances</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: #666666; font-style: italic;"># Соединение
</span>	    <span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">connection</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">hostname</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">password</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_error</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;Ошибка #: &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">mysql_errno</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #666666; font-style: italic;"># Выбираем таблицу
</span>	    <span style="color: #339933;">@</span><span style="color: #990000;">mysql_select_db</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">select</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #666666; font-style: italic;">#Делаем так чтобы MySQL 4 и выше принимал русские буквы
</span>	    <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET NAMES utf8_bin&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #666666; font-style: italic;"># Показываем что соединение установлено
</span>	    MySQLConnect<span style="color: #339933;">::</span><span style="color: #000088;">$instances</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
	  <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
	     <span style="color: #000088;">$msg</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Соединение уже установленно!&quot;</span><span style="color: #339933;">;</span>
	     <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	  <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>  
  <span style="color: #666666; font-style: italic;">// Закрыть соединение</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> close<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
  	  MySQLConnect<span style="color: #339933;">::</span><span style="color: #000088;">$instances</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">connection</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	  <span style="color: #009900;">&#123;</span>
	    <span style="color: #339933;">@</span><span style="color: #990000;">mysql_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">connection</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">connection</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
	  <span style="color: #009900;">&#125;</span>	  
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>При использовании данного класса, мы сможем создать только один экземпляр класса MySQLConnect на странице, в случае попытки создать второй экземпляр, будет выведено сообщение &#8220;Соединение уже установленно!&#8221;.</p>
<p>Для того, чтобы и самому не следить сколько этих соединений уже создано на странице, достаточно переписать парочку строк:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//if(MySQLConnect::$instances == 0) - меняем на:</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>MySQLConnect<span style="color: #339933;">::</span><span style="color: #000088;">$instances</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//$this -&gt; connection = @mysql_connect($this -&gt; hostname, $this -&gt; username, $this -&gt; password) or //die(mysql_error().&quot;Ошибка #: &quot;.mysql_errno()); - меняем на:</span>
MySQLConnect<span style="color: #339933;">::</span><span style="color: #000088;">$instances</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">mysql_connect</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">hostname</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">password</span><span style="color: #009900;">&#41;</span> or <span style="color: #666666; font-style: italic;">//die(mysql_error().&quot;Ошибка #: &quot;.mysql_errno());</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//$msg = &quot;Соединение уже установленно!&quot;;</span>
<span style="color: #666666; font-style: italic;">//die($msg); - меняем на:</span>
<span style="color: #b1b100;">return</span> MySQLConnect<span style="color: #339933;">::</span><span style="color: #000088;">$instances</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Думаю принцип применения понятен. В WEB программировании случаи применения шаблона Singleton не ограничиваются только &#8220;слежкой&#8221; за соединением к базе данных. Надеюсь данная статья помогла разобраться с основами данного шаблона проектирования.</p>
<p>С уважением, Главный Лаборант.</p>
<p>_______________________________________________________________________________________<br />
Интересный проект <a href="http://gailimov.info/cms-for-a-blog-what-has-been-done.html">CMS для блога. Что уже сделано</a>.<br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/04/06/vvedenie-v-java/" title="Введение в язык программирования Java">Введение в язык программирования Java (9)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/11/rabota-trabl-ili-xitryj-bitriks/" title="Работа -> трабл() или хитрый Битрикс&#8221;>Работа -> трабл() или хитрый Битрикс (1)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/25/komponent-bitrix-menu/" title="Усовершенствованный компонент 1С-Битрикс bitrix:menu">Усовершенствованный компонент 1С-Битрикс bitrix:menu (7)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/17/rsa-shifrovanie-java/" title="Проба пера -> RSA шифрование на Java&#8221;>Проба пера -> RSA шифрование на Java (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/24/svoya-forma-dobavleniya-elementa-v-1s-bitriks/" title="Своя форма добавления элемента в 1С-Битрикс">Своя форма добавления элемента в 1С-Битрикс (2)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/04/20/shablon-proektirovaniya-singleton/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Проба пера -&gt; RSA шифрование на Java</title>
		<link>http://ilabsblog.ru/2010/04/17/rsa-shifrovanie-java/</link>
		<comments>http://ilabsblog.ru/2010/04/17/rsa-shifrovanie-java/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 12:20:17 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[Пример]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=377</guid>
		<description><![CDATA[
			
				
			
		
Добрый день!
Как Вы, наверное, помните я в данный момент пытаюсь разобраться и вникнуть в язык программирования Java. В данный момент читаю одну замечательную книгу в которой все доступно объясняется и вот вчера, читая ее,  подумал, что пора что-нибудь написать, хотя бы кривое и не оптимизированное, но мало мальски рабочее. По бродил по интернету и в [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F17%2Frsa-shifrovanie-java%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F17%2Frsa-shifrovanie-java%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый день!</p>
<p><a href="http://ilabsblog.ru/wp-content/uploads/2010/03/logo_java.jpg"><img class="alignleft size-full wp-image-324" title="Язык программирования Java" src="http://ilabsblog.ru/wp-content/uploads/2010/03/logo_java.jpg" alt="" width="300" height="300" /></a>Как Вы, наверное, помните я в данный момент пытаюсь разобраться и вникнуть в язык программирования Java. В данный момент читаю одну замечательную книгу в которой все доступно объясняется и вот вчера, читая ее,  подумал, что пора что-нибудь написать, хотя бы кривое и не оптимизированное, но мало мальски рабочее. По бродил по интернету и в который раз вышел на статью о криптографии и в частности методе RSA. Раньше у меня как то не очень получалось разобраться в данной теме, но вчера решил, что пора наконец-то хотя бы эти азы понять.</p>
<p>В итоге потратив пару часов на чтение Wiki, реализовал данный вид шифрования информации. В данный момент он не совсем рабочий, т.е. иногда почему-то дешифрует не правильно &#8211; с этим буду еще конечно разбираться, но &#8220;проба пера&#8221;, я считаю, успешна.</p>
<p><span id="more-377"></span>Прошу строго не судить мой код, так как это моя первая программа на Java. Вот и код:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Random</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RSA
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> RInteger<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">Random</span> rand <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> intRand <span style="color: #339933;">=</span> rand.<span style="color: #006633;">nextInt</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">987</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> R2 <span style="color: #339933;">=</span> intRand<span style="color: #339933;">%</span>2<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> R3 <span style="color: #339933;">=</span> intRand<span style="color: #339933;">%</span>3<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> R5 <span style="color: #339933;">=</span> intRand<span style="color: #339933;">%</span>5<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> R7 <span style="color: #339933;">=</span> intRand<span style="color: #339933;">%</span>7<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>R2 <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>R3 <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>R5 <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>R7 <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">return</span> intRand<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> FEler<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> N<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span> ret <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>, p<span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>p <span style="color: #339933;">=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> p <span style="color: #339933;">&lt;=</span> N<span style="color: #339933;">;</span> <span style="color: #339933;">++</span>p<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>N<span style="color: #339933;">%</span>p <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				N <span style="color: #339933;">/=</span> p<span style="color: #339933;">;</span>
				<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>N<span style="color: #339933;">%</span>p <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
				    N <span style="color: #339933;">/=</span> p<span style="color: #339933;">;</span>
					ret <span style="color: #339933;">*=</span> p<span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
      			ret <span style="color: #339933;">*=</span> p <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> N <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">?</span> ret <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>N <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> ret<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> Evklid<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> a, <span style="color: #000066; font-weight: bold;">int</span> b<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>b <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: #000066; font-weight: bold;">int</span> tmp <span style="color: #339933;">=</span> a<span style="color: #339933;">%</span>b<span style="color: #339933;">;</span>
			a <span style="color: #339933;">=</span> b<span style="color: #339933;">;</span>
			b <span style="color: #339933;">=</span> tmp<span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> a<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> Simple<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">boolean</span> varCheck <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> ret <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>varCheck<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>ret <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">RInteger</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
				varCheck <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">return</span> ret<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> args<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		RSA r <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RSA<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> Q <span style="color: #339933;">=</span> r.<span style="color: #006633;">Simple</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> P <span style="color: #339933;">=</span> r.<span style="color: #006633;">Simple</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> N <span style="color: #339933;">=</span> P<span style="color: #339933;">*</span>Q<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> fN <span style="color: #339933;">=</span> r.<span style="color: #006633;">FEler</span><span style="color: #009900;">&#40;</span>N<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> E <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> D <span style="color: #339933;">=</span> r.<span style="color: #006633;">Evklid</span><span style="color: #009900;">&#40;</span>E, fN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> message <span style="color: #339933;">=</span> <span style="color: #cc66cc;">11111</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> shifr <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>message<span style="color: #339933;">^</span>E <span style="color: #339933;">%</span> N<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> deShifr <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>shifr<span style="color: #339933;">^</span>D <span style="color: #339933;">%</span> N<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Number Q: &quot;</span> <span style="color: #339933;">+</span> Q<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Number P: &quot;</span> <span style="color: #339933;">+</span> P<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Module N: &quot;</span> <span style="color: #339933;">+</span> N<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Eler Function fN: &quot;</span> <span style="color: #339933;">+</span> fN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;D: &quot;</span> <span style="color: #339933;">+</span> D<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RSA go: &quot;</span> <span style="color: #339933;">+</span> shifr<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;deRSA go: &quot;</span> <span style="color: #339933;">+</span> deShifr<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>Алгоритм</strong></p>
<p>С алгоритмом RSA можно более подробно ознакомиться на все той же, всеми любимой Wiki. А тут я приведу короткий алгоритм:</p>
<ol>
<li>Выбираем 2 случайных простых числа P и Q</li>
<li>Вычисляем их произведение N (N = P*Q)</li>
<li>Вычисляем значение функции Эйлера от N</li>
<li>Выбираем целое число E, взаимно простое со значением из пункта 3 (<strong>открытая экспонента</strong>)</li>
<li>Вычисляем число D, которое мультипликативно обратное к числу E по модулю из пункта 3 (<strong>секретная экспонента</strong>)</li>
<li>Открытый ключ (E,N)</li>
<li>Закрытый ключ (D,N)</li>
</ol>
<p>Проблемы в моей реализации скорее всего связанны с 5 пунктом &#8211; буду разбираться.</p>
<p>Вот результат работы:</p>
<p><center><a href="http://ilabsblog.ru/wp-content/uploads/2010/04/RSA.jpg"><img class="aligncenter size-medium wp-image-378" title="RSA" src="http://ilabsblog.ru/wp-content/uploads/2010/04/RSA-300x151.jpg" alt="" width="300" height="151" /></a></center>При условии что: шифруем число int равное: 11111. E = 3 &#8211; простое число Ферма.</p>
<p>Комментарии приветствуются <img src='http://ilabsblog.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>С уважением, Главный Лаборант!<br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/04/25/komponent-bitrix-menu/" title="Усовершенствованный компонент 1С-Битрикс bitrix:menu">Усовершенствованный компонент 1С-Битрикс bitrix:menu (7)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/06/vvedenie-v-java/" title="Введение в язык программирования Java">Введение в язык программирования Java (9)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/22/o-programmirovanii-i-yazyke-java/" title="О программировании и языке Java">О программировании и языке Java (22)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/10/menyu-na-jquery/" title="Меню на jQuery">Меню на jQuery (14)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/20/shablon-proektirovaniya-singleton/" title="Шаблон проектирования Singleton">Шаблон проектирования Singleton (6)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/04/17/rsa-shifrovanie-java/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML 5 отличная презентация</title>
		<link>http://ilabsblog.ru/2010/04/17/html-5-otlichnaya-prezentaciya/</link>
		<comments>http://ilabsblog.ru/2010/04/17/html-5-otlichnaya-prezentaciya/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 09:21:22 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[Интересности]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[В интернете]]></category>
		<category><![CDATA[новости]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=369</guid>
		<description><![CDATA[
			
				
			
		
Добрый день, читатели!
В данном посте, я просто хочу поделиться интересной ссылкой на презентацию HTML 5. Данный топик подсмотрен на Хабре.
Ссылка на презентацию: HTML5 presentation
С уважением, Главный Лаборант.
Советуем почитать:

О качестве материала (6)
Новый домен iLabsBlog.ru (17)
Обновление блога (16)
Обновления в дизайне блога (10)

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F17%2Fhtml-5-otlichnaya-prezentaciya%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F17%2Fhtml-5-otlichnaya-prezentaciya%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый день, читатели!</p>
<p>В данном посте, я просто хочу поделиться интересной ссылкой на презентацию HTML 5. Данный топик подсмотрен на Хабре.</p>
<p>Ссылка на презентацию: <a title="HTML5 presentation" href="http://apirocks.com/html5/html5.html#slide1" target="_blank">HTML5 presentation</a></p>
<p>С уважением, Главный Лаборант.<br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/04/23/o-kachestve-materiala/" title="О качестве материала">О качестве материала (6)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/24/novyj-domen-ilabsblog-ru/" title="Новый домен iLabsBlog.ru">Новый домен iLabsBlog.ru (17)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/22/obnovlenie-bloga/" title="Обновление блога">Обновление блога (16)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/07/obnovleniya-v-dizajne-bloga/" title="Обновления в дизайне блога">Обновления в дизайне блога (10)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/04/17/html-5-otlichnaya-prezentaciya/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Организация приема платежей</title>
		<link>http://ilabsblog.ru/2010/04/13/organizaciya-priema-platezhej/</link>
		<comments>http://ilabsblog.ru/2010/04/13/organizaciya-priema-platezhej/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 07:19:44 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Moneta.RU]]></category>
		<category><![CDATA[Интернет платежи]]></category>
		<category><![CDATA[Обзор]]></category>
		<category><![CDATA[Электронные платежи]]></category>
		<category><![CDATA[Яндекс.Деньги]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=365</guid>
		<description><![CDATA[
			
				
			
		
Добрый день, уважаемые читатели!
Относительно недавно я задумался об предоставлении некоторых услуг, через интернет и прием оплаты данных услуг, опять таки через интернет.  Поэтому в данной статье, я расскажу об одной системе приема платежей на которую совсем не давно вышел. А говорить мы будем сегодня о системе электронных платежей Moneta.RU.
Для начала хотелось бы немного объяснить, что [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F13%2Forganizaciya-priema-platezhej%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F13%2Forganizaciya-priema-platezhej%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый день, уважаемые читатели!</p>
<p><a href="http://ilabsblog.ru/wp-content/uploads/2010/04/f_48b0eed7d733d.jpg"><img class="alignleft size-medium wp-image-366" title="Организация приема платежей" src="http://ilabsblog.ru/wp-content/uploads/2010/04/f_48b0eed7d733d-300x300.jpg" alt="" width="300" height="300" /></a>Относительно недавно я задумался об предоставлении некоторых услуг, через интернет и прием оплаты данных услуг, опять таки через интернет.  Поэтому в данной статье, я расскажу об одной системе приема платежей на которую совсем не давно вышел. А говорить мы будем сегодня о системе электронных платежей Moneta.RU.</p>
<p>Для начала хотелось бы немного объяснить, что же мне хочется получить в конечном итоге. В первую очередь, не хочется работать с WebMoney, так как данная система мне совсем не нравиться своей мудренностью. Во-вторых, хотелось бы все таки чтобы и пользователю удобно было оплачивать услуги через интернет. К этому пункту я приписываю, такие вещи: широкий спектр оплаты (множество систем, а не зацикливание на какой-нибудь одной), простота использования. В-третьих, хотелось бы легко превращать заработанные Е-деньги в наличный cash.</p>
<p>Почему же я остановился на данной системе? Ответ прост &#8211; данная система полностью удовлетворяет моим критериям. Расскажу подробнее. Во-первых, счет на Moneta.RU легко пополнить через любые системы, такие как Яндекс.Деньги, WebMoney, Платёж.RU и другие, с полным списком можно ознакомиться на сайте. Вторым пунктом &#8220;крутости&#8221; этой системы будет, то что данная система может быть интегрирована в проекты, т.е. существует три вида работы с системой: MONETA.Assistant, MONETA.MerchantAPI и подключение к интерфейсу сервиса. Физические лица могут использовать интерфейс MONETA.Assistant, который предоставляет полный набор функций для оплаты товара/услуг, для использования полноценного API (интерфейс MONETA.MerchantAPI), необходимо заключить договор с администрацией Moneta.RU и зарегистрироваться как юр.лицо. Так же стоит отметить, что к данной системе подключены следующие системы: Яндекс.Деньги, WebMoney, ОСМП, HandyBank &#8211; таким образом Ваш покупатель может оплатить товар или услуги через любую из этих систем и что самое главное Вам необязательно быть зарегистрированным в каждой из них! Согласитесь данный пункт очень важен, так как не создает Вам не удобств (держать кучу счетов в каждой системе) и дает широкий спектр способов оплаты для пользователя.</p>
<p>Система Moneta.RU позволяет оплачивать интернет игры, мобильные телефоны, коммунальные услуги и многое другое.</p>
<p><span id="more-365"></span></p>
<p>Надеюсь в ближайшее время более близко познакомиться с данной системой и попробую написать для WP плагин для реализации оплаты через данную систему, но это все пока что только в планах. В общем <a title="Подписаться на новости блога iЛаборатория" href="http://feeds.feedburner.com/iLabsBlog" target="_blank">подписывайтесь на блог по RSS</a>, чтобы не пропустить интересные статьи.</p>
<p>А Вы когда нибудь пробовали организовать прием платежей на сайте? Что использовали? Какие впечатления?</p>
<p>С уважением, Главный Лаборант!<br />
<h3>Случайные записи</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2009/12/31/dobro-pozhalovat-moj-novyj-blog-laboratoriya/" title="Добро пожаловать! Блог &#8220;Лаборатория&#8221;">Добро пожаловать! Блог &#8220;Лаборатория&#8221; (1)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/24/novyj-domen-ilabsblog-ru/" title="Новый домен iLabsBlog.ru">Новый домен iLabsBlog.ru (17)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/10/menyu-na-jquery/" title="Меню на jQuery">Меню на jQuery (14)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/31/moi-mysli-o-blogosfere/" title="Мои мысли о Блогосфере">Мои мысли о Блогосфере (10)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/01/kalendar-dlya-gikov/" title="Календарь для гиков">Календарь для гиков (4)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/04/13/organizaciya-priema-platezhej/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Введение в язык программирования Java</title>
		<link>http://ilabsblog.ru/2010/04/06/vvedenie-v-java/</link>
		<comments>http://ilabsblog.ru/2010/04/06/vvedenie-v-java/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 11:49:08 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[История]]></category>
		<category><![CDATA[ООП]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=354</guid>
		<description><![CDATA[
			
				
			
		
Добрый день!
Сегодня хотелось бы кратко рассказать о языке программирования Java. На данный момент я изучаю данный язык программирования и хотелось бы поделиться полученными знаниями с Вами, дорогие читатели. В данном посте я расскажу об истории Java, синтаксисе и об инструментах для разработки программ. Приступим.
История
Родителем языка Java, является компания Sun Microsystems, анонсировавшая язык в далеком 1995 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F06%2Fvvedenie-v-java%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F04%2F06%2Fvvedenie-v-java%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Добрый день!</p>
<p><a href="http://ilabsblog.ru/wp-content/uploads/2010/03/logo_java.jpg"><img src="http://ilabsblog.ru/wp-content/uploads/2010/03/logo_java.jpg" alt="" title="Язык программирования Java" width="300" height="300" class="alignleft size-full wp-image-324" /></a>Сегодня хотелось бы кратко рассказать о языке программирования Java. На данный момент я изучаю данный язык программирования и хотелось бы поделиться полученными знаниями с Вами, дорогие читатели. В данном посте я расскажу об истории Java, синтаксисе и об инструментах для разработки программ. Приступим.</p>
<p><strong>История</strong></p>
<p>Родителем языка <strong>Java</strong>, является компания Sun Microsystems, анонсировавшая язык в далеком 1995 году, а точнее 23 мая 1995 года. Изначально данный язык программирования был назван <strong>Oak</strong>, что в переводе означает &#8220;Дуб&#8221;, разрабатывался как язык программирования для бытовой техники, но со временем был переименован в Java. И со сменой названия поменялось использование &#8211; написание клиентских приложений и серверного программного обеспечения. Название Java происходит от кофе Java, которое любили многие программисты, именно по этому на эмблеме изображена дымящаяся чашка кофе. Стоит отметить, что данный язык является полностью объектно-ориентированным.</p>
<p><strong>Синтаксис</strong></p>
<p>Синтаксис языка программирования Java очень похож на синтаксис C++, все логические конструкции, такие как IF-ELSE, полностью схожи, а так же циклы FOR, WHILE и DO WHILE. Данный язык содержит 8 примитивных типов, опять таки все их знаем по C++, такие как: byte, short, int, long, float, double, char и boolean. Приведение типов, опять таки похоже на приведение типов в C++, например, чтобы привести переменную типа double к int типу, стоит воспользоваться такой конструкцией:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">double</span> speed <span style="color: #339933;">=</span> <span style="color: #cc66cc;">60.0</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> speedInt <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span>speed<span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>В более общем случае мы можем присвоить значение любого типа из следующего списка переменным любого типа, указанного в списке правее:</p>
<blockquote><p>byte -> short -> int -> long -> float -> double</p></blockquote>
<p>Так как язык программирования Java, является объектно-ориентированным, то все наши программы будут состоять из класса или классов.<br />
<span id="more-354"></span><br />
<strong>Подготовка к программированию на Java. И старт.</strong></p>
<p>Перед тем, как начинать кодить на языке Java, необходимо установить JDK 6.0, можно скачать с официального сайта компании Sun. После того, как у Вас будет установлен JDK (J2SE SDK), можно ставить ПО для разработки приложений. Для начала будет достаточно установить TextPad. В редакторе TextPad, сразу же можно компилировать и просматривать результат работы Java приложения.</p>
<blockquote><p>Важно! Имя файла, содержащего Java программу, должно совпадать с названием класса программы!</p></blockquote>
<p>Создаем новый документ и пишем следующий код:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Hello <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Hello World!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Сохраняем файл с именем <strong>Hello.java</strong>, теперь можем откомпилировать нашу программу, для этого необходимо проделать не хитрые действия: Tools -> External Tools -> Compile Java. Если все отлично, то мы должны увидеть такую строчку: Tool completed successfully. Теперь запускаем нашу программу: Tools -> External Tools -> Run Java Application. </p>
<p>Для более продвинутой разработки с GUI стоит посмотреть в сторону IDE NetBeans, данная IDE является бесплатной, имеет кучу полезных плагинов и многое другое.</p>
<p>На этом я заканчиваю введение в язык программирования Java, в ближайшее время надеюсь собраться и написать более углубленный пост по Java.</p>
<p>С уважением, Главный Лаборант.<br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/04/20/shablon-proektirovaniya-singleton/" title="Шаблон проектирования Singleton">Шаблон проектирования Singleton (6)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/17/rsa-shifrovanie-java/" title="Проба пера -> RSA шифрование на Java&#8221;>Проба пера -> RSA шифрование на Java (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/22/o-programmirovanii-i-yazyke-java/" title="О программировании и языке Java">О программировании и языке Java (22)</a></li>
<li><a href="http://ilabsblog.ru/2010/01/11/rabota-trabl-ili-xitryj-bitriks/" title="Работа -> трабл() или хитрый Битрикс&#8221;>Работа -> трабл() или хитрый Битрикс (1)</a></li>
<li><a href="http://ilabsblog.ru/2010/04/25/komponent-bitrix-menu/" title="Усовершенствованный компонент 1С-Битрикс bitrix:menu">Усовершенствованный компонент 1С-Битрикс bitrix:menu (7)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/04/06/vvedenie-v-java/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Демонстрация пользовательской формы 1С-Битрикс</title>
		<link>http://ilabsblog.ru/2010/03/24/demonstraciya-polzovatelskoj-formy-1s-bitriks/</link>
		<comments>http://ilabsblog.ru/2010/03/24/demonstraciya-polzovatelskoj-formy-1s-bitriks/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 10:18:05 +0000</pubDate>
		<dc:creator>Главный Лаборант</dc:creator>
				<category><![CDATA[1С-Битрикс]]></category>
		<category><![CDATA[Видео]]></category>
		<category><![CDATA[Демонстрация]]></category>

		<guid isPermaLink="false">http://ilabsblog.ru/?p=346</guid>
		<description><![CDATA[
			
				
			
		
Демонстрация пользовательской формы добавления элемента в информационный блок 1С-Битрикс.

	
	
		
			
			
			
			
			
		
	www.youtube.com/watch?v=8JvSFCUpTPg

Советуем почитать:

Усовершенствованный компонент 1С-Битрикс bitrix:menu (7)
Своя форма добавления элемента в 1С-Битрикс (2)
Прохождение курсов по 1С-Битриксу (4)
Работа, работа и еще раз работа (4)
Я сейчас работаю над&#8230; (10)

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Filabsblog.ru%2F2010%2F03%2F24%2Fdemonstraciya-polzovatelskoj-formy-1s-bitriks%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Filabsblog.ru%2F2010%2F03%2F24%2Fdemonstraciya-polzovatelskoj-formy-1s-bitriks%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Демонстрация пользовательской формы добавления элемента в информационный блок 1С-Битрикс.</p>
<p><center><br />
	<!-- Smart Youtube -->
	<span class="youtube">
		<object width="425" height="344">
			<param name="movie" value="http://www.youtube-nocookie.com/v/8JvSFCUpTPg&amp;rel=0&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" />
			<param name="allowFullScreen" value="true" />
			<embed wmode="transparent" 
				src="http://www.youtube-nocookie.com/v/8JvSFCUpTPg&amp;rel=0&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" 
				type="application/x-shockwave-flash" 
				allowfullscreen="true" 
				width="425" 
				height="344">
			</embed>
			<param name="wmode" value="transparent" />
		</object>
	</span><a href="http://www.youtube.com/watch?v=8JvSFCUpTPg">www.youtube.com/watch?v=8JvSFCUpTPg</a><br />
</center><br />
<h3>Советуем почитать:</h3>
<ul class="related_post">
<li><a href="http://ilabsblog.ru/2010/04/25/komponent-bitrix-menu/" title="Усовершенствованный компонент 1С-Битрикс bitrix:menu">Усовершенствованный компонент 1С-Битрикс bitrix:menu (7)</a></li>
<li><a href="http://ilabsblog.ru/2010/03/24/svoya-forma-dobavleniya-elementa-v-1s-bitriks/" title="Своя форма добавления элемента в 1С-Битрикс">Своя форма добавления элемента в 1С-Битрикс (2)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/25/proxozhdenie-kursov-po-1s-bitriksu/" title="Прохождение курсов по 1С-Битриксу">Прохождение курсов по 1С-Битриксу (4)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/19/rabota-rabota-i-eshhe-raz-rabota/" title="Работа, работа и еще раз работа">Работа, работа и еще раз работа (4)</a></li>
<li><a href="http://ilabsblog.ru/2010/02/03/ya-sejchas-rabotayu-nad/" title="Я сейчас работаю над&#8230;">Я сейчас работаю над&#8230; (10)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ilabsblog.ru/2010/03/24/demonstraciya-polzovatelskoj-formy-1s-bitriks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
