<?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>Дневник НЕ всегда жизнерадостного придурка &#187; код</title>
	<atom:link href="http://0lj.ru/category/it/kod/feed/" rel="self" type="application/rss+xml" />
	<link>http://0lj.ru</link>
	<description>Пишу - значит есть потребность</description>
	<lastBuildDate>Sat, 02 Apr 2011 13:02:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Про формы в PHP и переменные $_SERVER</title>
		<link>http://0lj.ru/2009/09/23/pro-formy-v-php/</link>
		<comments>http://0lj.ru/2009/09/23/pro-formy-v-php/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 13:19:46 +0000</pubDate>
		<dc:creator>resperat0r</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[безопасность]]></category>
		<category><![CDATA[код]]></category>

		<guid isPermaLink="false">http://0lj.ru/?p=452</guid>
		<description><![CDATA[Сегодня хотел бы рассказать про одну брешь в безопасности, которая довольно часто встречается с исходных кодах многих проектов. Это перевод в моей вольной интерпретации и с комментариями статьи Mark Jaquith. Статья написана главным образом для разработчиков плагинов к WordPress, но может быть полезна и для остальных разработчиков на PHP. Речь пойдет про опасность использования переменных [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня хотел бы рассказать про одну брешь в безопасности, которая довольно часто встречается с исходных кодах многих проектов. Это перевод в моей вольной интерпретации и с комментариями <a target="_blank" rel="nofollow" href="http://0lj.ru//goto/http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/" >статьи</a> Mark Jaquith. Статья написана главным образом для разработчиков плагинов к WordPress, но может быть полезна и для остальных разработчиков на PHP. Речь пойдет про опасность использования переменных <strong>$_SERVER['PHP_SELF'] и $_SERVER['REQUEST_URI']</strong>. Самый простой пример их использования &#8211; атрибут <strong>action</strong> в формах:</p>
<pre class="brush: php">
&lt;form action=&quot;&lt;?php echo $_SERVER[&#039;PHP_SELF&#039;]; ?&gt;&quot;&gt;
</pre>
<p>Впрочем, часто переменную используют и в ссылках:</p>
<pre class="brush: php">
&lt;a href=&quot;&lt;?php echo $_SERVER[&#039;PHP_SELF&#039;]&#039; ?&gt;?id=2&quot;&gt;link&lt;/a&gt;
</pre>
<p><script type="text/javascript"><!--
google_ad_client = "pub-8597238638150459";
google_ad_slot = "9218554048";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<span id="more-452"></span><br />
Марк пишет, что использовать такого рода конструкции небезопасно и ведет к возможности выполнение <strong>XSS</strong> (cross-site scripting) атаки.<br />
Далее предлагаются такие варианты выхода из ситуации: в случае с формой можно оставить атрибут <strong>action</strong> просто пустым. По умолчанию, скрипт будет ссылаться сам на себя.</p>
<pre class="brush: html">
&lt;form action=&quot;&quot;&gt;
</pre>
<p>Если же переменная $_SERVER используется в качестве ссылки,то следует пропустить ее через функцию <strong>esc_url()</strong> (справедливо для WordPress) или жестко зафиксировать адрес скрипта в другой переменной (это уже для всех разработчиков PHP)</p>
<pre class="brush: php">
&lt;a href=&quot;&lt;?php echo esc_url( $_SERVER[&#039;PHP_SELF&#039;] . &#039;?id=1&#039; ); ?&gt;&quot;&gt;link&lt;/a&gt;
</pre>
<p>или</p>
<pre class="brush: php">
$script_path = &quot;link&quot;l
&lt;a href=&quot;&lt;?php echo esc_url( $script_path . &#039;?id=1&#039; ); ?&gt;&quot;&gt;link&lt;/a&gt;
</pre>
<p>Таким образом вы обезопаситесь от XSS атак. Каких? А, например, вот таких: имеем скрипт с параметром <strong>$_SERVER['PHP_SELF']</strong> в теге <strong>action</strong> далее переходим по адресу script.php/&#8221;%20onmouseclick=&#8217;alert(document.cookie)&#8217; и смотрим результат. Думаю пояснять, что будет в результате не нужно. Пример так же работает и с одинарными кавычками. Кроме того, использование функции <strong>htmlentities()</strong> в качестве фильтра http заголовка <strong>не поможет</strong>!</p>
<p><strong>Вывод:</strong><br />
1) Оставляем пустым значение атрибута <strong>action</strong> в формах<br />
2) По возможности не используем переменные <strong>$_SERVER['PHP_SELF'] и $_SERVER['REQUEST_URI']</strong><br />
3) Если используем, то прогоняем через функцию <strong>esc_url()</strong></p>
<p>Легкого и безопасного вам программирования!</p>
]]></content:encoded>
			<wfw:commentRss>http://0lj.ru/2009/09/23/pro-formy-v-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery и просмотр изображений</title>
		<link>http://0lj.ru/2009/03/25/jquery-i-prosmotr-izobrazhenij/</link>
		<comments>http://0lj.ru/2009/03/25/jquery-i-prosmotr-izobrazhenij/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 11:36:13 +0000</pubDate>
		<dc:creator>resperat0r</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[код]]></category>
		<category><![CDATA[FancyBox]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[всплывающие картинки]]></category>
		<category><![CDATA[изображение]]></category>
		<category><![CDATA[картинки]]></category>
		<category><![CDATA[пример]]></category>
		<category><![CDATA[просмотр]]></category>
		<category><![CDATA[слайд шоу]]></category>

		<guid isPermaLink="false">http://0lj.ru/?p=345</guid>
		<description><![CDATA[Продолжаем изучать jQuery. Сегодня речь пойдет больше не про него самого, а про возможности, которые дает этот фреймворк и как его используют для создания различный эффектов. Я предлагаю изучить плагин, который позволяет создавать просмотр картинок на сайте (увеличение) и создавать галереи. Думаю, вы не раз сталкивались с ним на различных сайтах. Перейдем к описанию.
FancyBox
Плагин к [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжаем изучать jQuery. Сегодня речь пойдет больше не про него самого, а про возможности, которые дает этот фреймворк и как его используют для создания различный эффектов. Я предлагаю изучить плагин, который позволяет создавать просмотр картинок на сайте (увеличение) и создавать галереи. Думаю, вы не раз сталкивались с ним на различных сайтах. Перейдем к описанию.<span id="more-345"></span></p>
<h2><a target="_blank" rel="nofollow" href="http://0lj.ru//goto/http://fancy.klade.lv/home" >FancyBox</a></h2>
<p>Плагин к фреймворку jQuery. Позволяет организовывать на своем сайте просмотр изображений в стиле мак ос &#8211; &#8220;lightbox&#8221;, а так же организовывать галереи из изображений. Для начала нужно скачать архив с сайта <a target="_blank" rel="nofollow" href="http://0lj.ru//goto/http://code.google.com/p/fancybox/downloads/detail?name=jquery.fancybox-1.2.1.zip" >GoogleCode</a>. В архиве можно посмотреть уже готовый пример. Нас же интересует папка <strong>jquery.fancybox</strong>. В ней находятся файлы ресурсов, несколько скриптов:  сам FancyBox и библиотека jQuery. То есть, вам даже не придется отдельно скачивать jQuery и наоборот, если на странице он уже подключен, этот файл можно удалить. Теперь заливаем папку на свой сайт и подключаем библиотеки к странице следующим образом:</p>
<pre class="brush: javascript">

&lt;script type=&quot;text/javascript&quot; src=&quot;../jquery.fancybox/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;../jquery.fancybox/jquery.easing.1.3.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;../jquery.fancybox/jquery.fancybox-1.2.1.pack.js&quot;&gt;&lt;/script&gt;
</pre>
<p><script type="text/javascript"><!--
google_ad_client = "pub-8597238638150459";
google_ad_slot = "9218554048";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Не забываем так же подключить <strong>css</strong> файл стилей FancyBox.<br />
<strong>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;../jquery.fancybox/jquery.fancybox.css&#8221; media=&#8221;screen&#8221; /&gt;</strong></p>
<p>Дальше, пишем скрипт, указывая jQuery, что элементы типа <strong>&lt;a&gt;</strong> будет обрабатывать FancyBox.</p>
<pre class="brush: javascript">
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function() {
$(&quot;a&quot;).fancybox();
});
&lt;/script&gt;
</pre>
<p>Ждем, когда загрузятся все DOM элементы и назначаем обработчик.</p>
<p>Теперь перейдем непосредственно к изображениям. Вставляем одиночное маленькое изображение с ссылкой на изображение большего размера.</p>
<pre class="brush: html">
&lt;a title=&quot;Название изображения&quot; href=&quot;1_b.jpg&quot;&gt;&lt;img src=&quot;1_s.jpg&quot; /&gt;&lt;/a&gt;
</pre>
<p>Обратите внимание на <strong>title</strong>, то что вы здесь напишите, позже будет изображено внизу изображения большего размера. В стандартном примере это выглядит так:</p>
<p><img class="aligncenter size-full wp-image-354" title="d181d0bdd0b8d0bcd0bed0ba11" src="http://0lj.ru/wp-content/uploads/2009/03/d181d0bdd0b8d0bcd0bed0ba11.jpg" alt="d181d0bdd0b8d0bcd0bed0ba11" width="600" height="436" /></p>
<p>Теперь организуем галерею и последовательный просмотр для нее. Добавляем группу изображений:</p>
<pre class="brush: html">

&lt;a rel=&quot;group&quot; title=&quot;Групповое изображение #1&quot; href=&quot;2_b.jpg&quot;&gt;&lt;img src=&quot;2_s.jpg&quot; /&gt;&lt;/a&gt;
&lt;a rel=&quot;group&quot; title=&quot;Групповое изображение #2&quot; href=&quot;3_b.jpg&quot;&gt;&lt;img src=&quot;3_s.jpg&quot; /&gt;&lt;/a&gt;
&lt;a rel=&quot;group&quot; href=&quot;4_b.jpg&quot;&gt;&lt;img src=&quot;4_s.jpg&quot; /&gt;&lt;/a&gt;</pre>
<p>Как вы наверное заметили, чтобы FancyBox понял, что изображения составляют галерею и позволял переключаться между ними, достаточно добавить к ссылке атрибут <strong>rel</strong> со значением <strong>group</strong>. В приведенном выше примере два изображения будут с подписью, а третье соответственно нет.</p>
<p>Ну и несколько дополнений &#8211; в файле <strong>jquery.fancybox.css</strong> можно настроить параметры отображения плагина, например цвет фона, когда показывается большая картинка или сделать отображение не на весь экран.</p>
<p><strong>Пример можно посмотреть <a href="http://0lj.ru/examples/fancybox/index.html" >здесь</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://0lj.ru/2009/03/25/jquery-i-prosmotr-izobrazhenij/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Выезжающий блок на jQuery</title>
		<link>http://0lj.ru/2009/03/17/vyezzhayushhij-blok-na-jquery/</link>
		<comments>http://0lj.ru/2009/03/17/vyezzhayushhij-blok-na-jquery/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 13:52:16 +0000</pubDate>
		<dc:creator>resperat0r</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[код]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[slide]]></category>
		<category><![CDATA[выезжающий блок]]></category>
		<category><![CDATA[пример]]></category>

		<guid isPermaLink="false">http://0lj.ru/?p=305</guid>
		<description><![CDATA[Как и обещал, выкладываю реализацию выезжающего блока (slide), сделанного с помощью библиотеки jQuery. Но для начала &#8211; пара слов о самой библиотеке.
Что такое jQuery?
jQuery &#8211; это фреймворк, специализирующийся на взаимодействии HTML и JavaScript. jQuery помогает легко получать доступ к любому элементу (набору элементов) объектной модели документа (DOM), обращаться к атрибутам и содержимому элементов DOM и, [...]]]></description>
			<content:encoded><![CDATA[<p>Как и <a href="http://0lj.ru/2009/03/10/poyavlyayushhijsya-blok/" >обещал</a>, выкладываю реализацию выезжающего блока (slide), сделанного с помощью библиотеки jQuery. Но для начала &#8211; пара слов о самой библиотеке.</p>
<h2>Что такое jQuery?</h2>
<p>jQuery &#8211; это фреймворк, специализирующийся на взаимодействии HTML и JavaScript. jQuery помогает легко получать доступ к любому элементу (набору элементов) объектной модели документа (DOM), обращаться к атрибутам и содержимому элементов DOM и, конечно, манипулировать ими.</p>
<h2>Как работает jQuery?</h2>
<p>После подключения библиотеки к вашей страницы, jQuery позволяет обращаться к к DOM объектам и их элементам.<br />
Существует два вида вызова методов jQuery:</p>
<li>через функции <strong>$</strong>, являющиеся методами объекта jQuery. Их можно объединять в цепочку, поскольку каждая из них возвращает этот объект;</li>
<li>через функции <strong>$.</strong>, не связанные с объектом jQuery.</li>
<p>Например:</p>
<ol><strong>$(”#header”)</strong> &#8211; получение элемента с id=”header”</ol>
<ol><strong>$(”h1″)</strong> &#8211; получить все элементы &lt;h1&gt;</ol>
<ol><strong>$(”div#post .data”)</strong> &#8211; получить все элементы с классом =”data” которые находятся в элементе div с id=”post”</ol>
<ol><strong>$(”ul li:first”)</strong> &#8211; получить только первый элемент&lt;li&gt; из списка &lt;ul&gt;</ol>
<p><span id="more-305"></span><br />
Теперь, когда базовые навыки получены, можно перейти к реализации выезжающего блока.</p>
<h2>Реализация</h2>
<p>Сначала нужно скачать фреймфорк. Сделать это можно с <a target="_blank" rel="nofollow" href="http://0lj.ru//goto/http://jquery.com/" >официального сайта проекта</a>. Или <a href="http://0lj.ru/wp-content/uploads/2009/03/jquery-126min.rar" >скачать</a> с моего блога, уже сжатый в gzip готовый дистрибутив (размер около 50 кБ). Подключаем библиотеку:</p>
<pre class="brush: javascript">
&lt;script src=&quot;jquery-1.2.6.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Теперь сам блок:</p>
<pre class="brush: html">
&lt;input type=&quot;button&quot; class=&quot;button&quot; value=&quot;Показать все что скрыто!&quot; /&gt;
&lt;div id=&quot;div_id&quot;  style=&#039;display:none;&#039;&gt;Тут скрытая информация&lt;/div&gt;</pre>
<p>И, наконец, очередь кода jQuery. Общая логика такова: по клику на кнопку, ее класс будет меняться с active на button и обратно, а блок с id = div_id будет выезжать/задвигаться. Сам код:</p>
<pre class="brush: javascript">

&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
$(&quot;.button&quot;).click(function(){
$(&quot;#div_id&quot;).slideToggle(&quot;slow&quot;);
$(this).toggleClass(&quot;active&quot;);
});
});
&lt;/script&gt;
</pre>
<p>Строчка <strong>$(document).ready(function() </strong>говорит о том, что функция будет выполнена, когда будет готов DOM. Далее, навешиваем событие на нажатие на кнопку. И для элемента <strong>div_id </strong>(наш блок) используем функцию <strong>slideToggle</strong>, которая в jQuery и отвечает за &#8220;выезд&#8221;. В качестве аргумента передаем ей скорость ( в нашем случае это <strong>slow</strong>, можете попробовать написать <strong>fast</strong> в качестве эксперимента. И, наконец, присваиваем кнопки класс <strong>active</strong>. Вот и все. Минимум кода, зато какой эффект. Примером может служить кнопка &#8220;Комментарии для пользователей li.ru&#8221; внизу страницы.<br />
Я и дальше планирую написание статей про jQuery, по мере изучения его мною. Оставайтесь на линии. смайлик.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-8597238638150459";
google_ad_slot = "9218554048";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://0lj.ru/2009/03/17/vyezzhayushhij-blok-na-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Система комментариев от li.ru</title>
		<link>http://0lj.ru/2009/03/16/sistema-kommentariev-ot-liru/</link>
		<comments>http://0lj.ru/2009/03/16/sistema-kommentariev-ot-liru/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 09:50:19 +0000</pubDate>
		<dc:creator>resperat0r</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[код]]></category>
		<category><![CDATA[li.ru]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[комментарии]]></category>
		<category><![CDATA[персональный блог]]></category>
		<category><![CDATA[установка]]></category>

		<guid isPermaLink="false">http://0lj.ru/?p=303</guid>
		<description><![CDATA[Основная проблема stand alone блогов &#8211; маленькая посещаемость. В отличие от крупных блог-площадок, на подобие livejournal или li.ru, где все &#8220;варятся в своем соку&#8221;, добавляют друг друга в друзья и читает чужие ленты новостей, stand alone блог одинок, как парусник в океане. Немного изменить сложившуюся ситуацию может возможность комментирования вашего блога пользователями других блог-систем, перерегистарции. [...]]]></description>
			<content:encoded><![CDATA[<p>Основная проблема stand alone блогов &#8211; маленькая посещаемость. В отличие от крупных блог-площадок, на подобие livejournal или li.ru, где все &#8220;варятся в своем соку&#8221;, добавляют друг друга в друзья и читает чужие ленты новостей, stand alone блог одинок, как парусник в океане. Немного изменить сложившуюся ситуацию может возможность комментирования вашего блога пользователями других блог-систем, перерегистарции. Сегодня я расскажу об оной из таких возможностей, а точнее про систему комментариев от li.ru. <span id="more-303"></span><br />
Волею случая я недавно наткнулся на новый сервис LiveInternet &#8211; комментарии. &#8220;Ajax комментарии на вашем сайте&#8221; &#8211; так звучал заголовок. Мне стало интересно и я зарегистрировался.<br />
Итак, сервис предоставляет возможность комментирования на вашем сайте. Причем сделать это могут как пользователи li.ru, так и ЖЖ юзеры и вообще все, у кого есть OpenID. Сами комментарии хранятся на сайте <a target="_blank" rel="nofollow" href="http://0lj.ru//goto/http://comments.li.ru" >comments.li.ru</a>, где их можно модерировать и удалять. Выглядит это примерно так:<br />
<img src="http://pic.ipicture.ru/uploads/090316/80CnB5wAxX.jpg" alt="image" /><br />
Соответственно, для установки у себя этой системы нужно <a target="_blank" rel="nofollow" href="http://0lj.ru//goto/http://comments.li.ru" >зарегистрироваться</a>, добавить свой сайт и получить код. Добавляете код на свой блог и получаете вот такую форму для комментариев (чтобы формы не дублировались, я спрятал все за кнопку &#8220;Комментарии для пользователей Li.ru&#8221;). Ниже показана форма, которая определила меня как пользователя li.ru:<br />
<img src="http://pic.ipicture.ru/uploads/090316/2yDvk6U4ci.jpg" alt="image" /><br />
А так это выглядит, для всех остальных:<br />
<img src="http://pic.ipicture.ru/uploads/090316/4VuKaoY1p9.jpg" alt="image" /></p>
<p>Система позволяет настроить размеры формы, цветовое оформление и даже установить счетчик на количество комментариев. Все работает на Ajax, так что никаких перезагрузок страниц не будет. Ниже пример,  с оставленным комментарием:<br />
<img src="http://pic.ipicture.ru/uploads/090316/PhRyzGt2xs.jpg" alt="image" /></p>
<p><strong>Резюме</strong><br />
Система достаточно удобна и позволяет охватить большой круг пользователей (li.ru, lj, openid). Что поможет привлечению новых пользователей на ваш stand alone блог (это особенно удобно, если у вас есть трансляция в одной их этих систем). Но, к сожалению, не лишена минусов. Вот основные:</p>
<li><strong>Дублируемость форм</strong> &#8211; если у вас блог, то формы для отправки комментариев будут дублироваться. Я решил эту проблемы, просто убрав все под кнопку &#8220;Комментарии для пользователей li.ru&#8221; (<a href="http://0lj.ru/2009/03/10/poyavlyayushhijsya-blok/" >подробнее</a>). Тут же появляется и вторая проблема: Коммментарии от li.ru будут идти отдельной ветвью и не будут совмещаться с внутриблоговыми. Решением может служить наверное регистрации в том же li.ru. Тогда отвечать придется в той же самой ветке комментов.</li>
<li><strong>Невозможность уведомлений</strong> &#8211; в панели управления комментариями я так и не нашел ничего об уведомлении о них. То есть придется переодически захожить в систему, чтобы посмотреть не появились ли новые комментарии, что не есть гуд</li>
<li><strong>Слабые мощности</strong> &#8211; наверное, основной недостаток. Порой я не мог попасть в систему целый день, соответственно комментировать в блоге в это время тоже не представлялось возможным. Не знаю, связано ли это с новизной системы или с какими-то работами внутри нее, но на данный момент, эта проблема является основной, из-за которой я подумываю об отказе от системы. Поживем &#8211; увидим.<br />
На этом, пожалуй, все. Пример работы комментариев можно увидеть внизу страницы.</li>
]]></content:encoded>
			<wfw:commentRss>http://0lj.ru/2009/03/16/sistema-kommentariev-ot-liru/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Появляющийся div блок</title>
		<link>http://0lj.ru/2009/03/10/poyavlyayushhijsya-blok/</link>
		<comments>http://0lj.ru/2009/03/10/poyavlyayushhijsya-blok/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 13:23:13 +0000</pubDate>
		<dc:creator>resperat0r</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[код]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[блок]]></category>
		<category><![CDATA[скрыть]]></category>

		<guid isPermaLink="false">http://0lj.ru/?p=246</guid>
		<description><![CDATA[Сегодня я расскажу про свою реализацию появляющегося div блока. В последнее время он становится все популярнее. И это понятно, информация не перегружает страницу и поваляется только по запросу пользователя. Примером могут служить комментарии внизу этой страницы. После нажатия кнопки &#8220;Комментарии для пользователей li.ru&#8221;  появляется сама форма для комментария. Итак, приступим к реализации.
Все будет сделано [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня я расскажу про свою реализацию появляющегося div блока. В последнее время он становится все популярнее. И это понятно, информация не перегружает страницу и поваляется только по запросу пользователя. Примером могут служить комментарии внизу этой страницы. После нажатия кнопки &#8220;Комментарии для пользователей li.ru&#8221;  появляется сама форма для комментария. Итак, приступим к реализации.<span id="more-246"></span><br />
Все будет сделано с помощью JavaScript и CSS. Для начала пишем такой javascript код и сохраняем его в отдельном файле, скажем, <strong>show.js</strong>.</p>
<pre class="brush: javascript">
function show(nodeId)
{
var node = document.getElementById(nodeId);
if (node)
{
if (node.style.display==&#039;none&#039;)
{  node.style.display = &#039;block&#039;; }
else
{  node.style.display = &#039;none&#039;;  }
}
}</pre>
<p>Как можно заметить, код состоит из одной функции Show. Далее мы инициализируем новую переменную node. Потом проверяем было ли получено значение node. После чего стоит проверка, если у элемента в css было прописано значение display = none (то есть, блок не показывается), то меняем его на block (соответственно делаем видимым). Ну и наоборот. Теперь немного про node. Это есть id нужного нам div&#8217;a. Далее вы поймете о чем идет речь. Самое приятное, что такой скрипт не привязан к определенному блоку, то есть на страницы таких блоков будет несколько.<br />
Теперь в самом html документе подключаем наш js скрипт. Для этого перед тегом  добавляем строчку:</p>
<pre class="brush: javascript">
&lt;script src=&quot;show.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Ну и остается сам div блок, а так же элемент, на который будет срабатывать javascript: кнопка, ссылка, изображение. Просто событием onClick передаем в функцию Show параметром id нашего div&#8217;a (тот самый node). Ниже пример с кнопкой:</p>
<pre class="brush: html">&lt;input onclick=&quot;show(&#039;div_id&#039;)&quot; type=&quot;button&quot; value=&quot;Показать
все что скрыто!&quot; /&gt;
&lt;div id=&quot;div_id&quot; style=&quot;display:none&quot;&gt;Тут скрытая информация&lt;/div&gt;</pre>
<p>Вот собственно и все. Как видите, все достаточно банально, а пользы много. В планах есть сделать не просто появляющийся, но выезжающий блок, типа таких, которые есть вконтакте. Как я уже говорил, примером данного кода может служить кнопка внизу страницы &#8220;Комментарии для пользователей li.ru&#8221;. Кстати, об этих самых комментариях и пойдет речь в моем следующем <a href="http://0lj.ru/2009/03/17/vyezzhayushhij-blok-na-jquery/" >посте</a>.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-8597238638150459";
google_ad_slot = "9218554048";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://0lj.ru/2009/03/10/poyavlyayushhijsya-blok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

