<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><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" version="2.0">

<channel>
	<title>Блогово Зайсла</title>
	
	<link>http://www.zaisl.info</link>
	<description>Блог веб-разработчика</description>
	<pubDate>Sat, 05 Jul 2008 08:41:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/zaisl" type="application/rss+xml" /><item>
		<title>Создание нового поля для товара. VirtueMart.</title>
		<link>http://www.zaisl.info/2008/06/sozdanie-novogo-polya-dlya-tovara-virtuemart/</link>
		<comments>http://www.zaisl.info/2008/06/sozdanie-novogo-polya-dlya-tovara-virtuemart/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 06:42:08 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Joomla!]]></category>

		<category><![CDATA[VirtueMart]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=26</guid>
		<description><![CDATA[В данной заметке будет рассмотрен вопрос создания поля для дополнительного артикула товара (т.е. текстового поля) в компоненте интернет-магазина VirtueMart. Примерно таким же образом можно создать, например, поле-чекбокс или поле другого типа. В любом случае, алгоритм действий будет аналогичным. 
1. Открываем phpMyAdmin, щелкаем по имени талички #__vm_product. Под таблицей с перечнем полей есть область для добавления [...]]]></description>
			<content:encoded><![CDATA[<p>В данной заметке будет рассмотрен вопрос создания поля для дополнительного артикула товара (т.е. текстового поля) в компоненте интернет-магазина VirtueMart. Примерно таким же образом можно создать, например, поле-чекбокс или поле другого типа. В любом случае, алгоритм действий будет аналогичным. <span id="more-26"></span><br />
<strong>1.</strong> Открываем phpMyAdmin, щелкаем по имени талички <strong>#__vm_product</strong>. Под таблицей с перечнем полей есть область для добавления нового поля.<br />
<a href="http://www.zaisl.info/wp-content/uploads/2008/06/1.jpg" target="_blank" title="1"><img src="http://www.zaisl.info/wp-content/uploads/2008/06/1.thumbnail.jpg" alt="1" width="400" height="36" class="attachment wp-att-27 alignleft" /></a><br />
Создаем новое поле типа <strong>varchar</strong> с именем <strong>product_sku2 </strong>.<br />
<a href="http://www.zaisl.info/wp-content/uploads/2008/06/21.jpg" target="_blank" title="21"><img src="http://www.zaisl.info/wp-content/uploads/2008/06/21.thumbnail.jpg" alt="21" width="400" height="87" class="attachment wp-att-28 alignleft" /></a></p>
<p><strong>Новое поле появилось в списке полей данной таблицы.</strong><br />
<a href="http://www.zaisl.info/wp-content/uploads/2008/06/3.jpg" target="_blank" title="3"><img src="http://www.zaisl.info/wp-content/uploads/2008/06/3.thumbnail.jpg" alt="3" width="400" height="123" class="attachment wp-att-29 alignleft" /></a></p>
<p><strong>2. </strong>Переходим к редактированию файла <strong>administrator/com_virtuemart/html/product.product_form.php</strong>. Этот файл содержит форму добавления/редактирования товара. Сюда нам необходимо добавить новое поле ввода для ввода значения <strong>&#8220;product_sku2&#8243;</strong>.<br />
Находим строчку, где расположено поле для ввода артикула (product_sku). Вот такой участок кода:</p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">&lt;tr&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;td width=<span class="st0">&quot;21%&quot;</span> &gt;&lt;div style=<span class="st0">&quot;text-align:right;font-weight:bold;&quot;</span>&gt;&lt;?php <span class="kw3">echo</span> <span class="re0">$VM_LANG</span>-&gt;_PHPSHOP_PRODUCT_FORM_SKU <span class="kw2">?&gt;</span>:&lt;/div&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;/td&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;td width=<span class="st0">&quot;79%&quot;</span> height=<span class="st0">&quot;2&quot;</span>&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=<span class="st0">&quot;text&quot;</span> <span class="kw2">class</span>=<span class="st0">&quot;inputbox&quot;</span>&nbsp; name=<span class="st0">&quot;product_sku&quot;</span> value=<span class="st0">&quot;&lt;?php echo shopMakeHtmlSafe( $db-&gt;sf(&quot;</span>product_sku<span class="st0">&quot;) ); ?&gt;&quot;</span> size=<span class="st0">&quot;32&quot;</span> maxlength=<span class="st0">&quot;64&quot;</span> /&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;/td&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &lt;/tr&gt;</div></li></ol></div></div>
<p>Копируем код и вставляем ниже. Заменяем текстовую переменную на &#8220;Еще один артикул&#8221;, а имя текстового поля на product_sku2. Должно получиться примерно так:</p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">&lt;tr&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;td width=<span class="st0">&quot;21%&quot;</span> &gt;&lt;div style=<span class="st0">&quot;text-align:right;font-weight:bold;&quot;</span>&gt;&lt;?php <span class="kw3">echo</span> <span class="st0">'Еще один артикул'</span> <span class="kw2">?&gt;</span>:&lt;/div&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;/td&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;td width=<span class="st0">&quot;79%&quot;</span> height=<span class="st0">&quot;2&quot;</span>&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=<span class="st0">&quot;text&quot;</span> <span class="kw2">class</span>=<span class="st0">&quot;inputbox&quot;</span>&nbsp; name=<span class="st0">&quot;product_sku2&quot;</span> value=<span class="st0">&quot;&lt;?php echo shopMakeHtmlSafe( $db-&gt;sf(&quot;</span>product_sku2<span class="st0">&quot;) ); ?&gt;&quot;</span> size=<span class="st0">&quot;32&quot;</span> maxlength=<span class="st0">&quot;64&quot;</span> /&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &lt;/td&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &lt;/tr&gt;</div></li></ol></div></div>
<p>Сохраняем изменения. Открываем в админке VirueMart форму добавления товара. Любуемся на результат.<br />
<a href="http://www.zaisl.info/wp-content/uploads/2008/06/4.jpg" target="_blank" title="4"><img src="http://www.zaisl.info/wp-content/uploads/2008/06/4.thumbnail.jpg" alt="4" width="400" height="179" class="attachment wp-att-30 alignleft" /></a><br />
<strong>3. Открываем файл administrator/com_virtuemart/clases/ps_product.php</strong><br />
Здесь нас интересуют две функции. Первая - добавление нового товара.<br />
Ищем участок кода, содержащий &#8220;<strong>function add</strong>&#8220;. Недалеко от начала функции, после следующего участка кода:</p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$timestamp</span> = <span class="kw3">time</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$db</span> = <span class="kw2">new</span> ps_DB;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">empty</span><span class="br0">&#40;</span><span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_publish&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_publish&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;N&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li></ol></div></div>
<p>добавляем</p>
<div class="codecolorer-container php" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$product_sku2</span>=<span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;product_sku2&quot;</span><span class="br0">&#93;</span>;</div></li></ol></div></div>
<p>Теперь пишем значение в базу. Чуть ниже места, где мы добавили предыдущую строчку начинается большой блок вставки данных в таблицу. Добавляем <strong>product_sku2</strong> сразу после <strong>product_sku</strong>:</p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$q</span>&nbsp; = <span class="st0">&quot;INSERT INTO #__{vm}_product (vendor_id,product_parent_id,product_sku,product_sku2&quot;</span>; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="re0">$q</span> .= <span class="st0">&quot;product_name,product_desc,product_s_desc,&quot;</span>; </div></li>
<li class="li1"><div class="de1">..............................................</div></li>
<li class="li1"><div class="de1">..............................................</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="re0">$q</span> .= <span class="st0">&quot;VALUES ('&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="re0">$q</span> .= <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">'vendor_id'</span><span class="br0">&#93;</span> . <span class="st0">&quot;','&quot;</span> . <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_parent_id&quot;</span><span class="br0">&#93;</span> . <span class="st0">&quot;','&quot;</span>; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="re0">$q</span> .= <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_sku&quot;</span><span class="br0">&#93;</span> . <span class="st0">&quot;','&quot;</span> . <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_name&quot;</span><span class="br0">&#93;</span> . <span class="st0">&quot;','&quot;</span> . <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_name&quot;</span><span class="br0">&#93;</span> . <span class="st0">&quot;','&quot;</span>;&nbsp; &nbsp;</div></li>
<li class="li1"><div class="de1">..............................................</div></li>
<li class="li1"><div class="de1">..............................................</div></li></ol></div></div>
<p>Далее, переходим к функции, отвечающей за изменение данных о товарах: 	<strong>function update</strong>.<br />
Также добавлем</p>
<div class="codecolorer-container php" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$product_sku2</span>=<span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;product_sku2&quot;</span><span class="br0">&#93;</span>;</div></li></ol></div></div>
<p>и ниже, где происходит обращение к БД:</p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$q</span>&nbsp; = <span class="st0">&quot;UPDATE #__{vm}_product SET &quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="re0">$q</span> .= <span class="st0">&quot;product_sku='&quot;</span> . <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_sku&quot;</span><span class="br0">&#93;</span> . <span class="st0">&quot;',&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="re0">$q</span> .= <span class="st0">&quot;product_sku2='&quot;</span> . <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;product_sku2&quot;</span><span class="br0">&#93;</span> . <span class="st0">&quot;',&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="re0">$q</span> .= <span class="st0">&quot;vendor_id='&quot;</span> . <span class="re0">$d</span><span class="br0">&#91;</span><span class="st0">&quot;vendor_id&quot;</span><span class="br0">&#93;</span> . <span class="st0">&quot;',&quot;</span>;</div></li>
<li class="li1"><div class="de1">............................................................</div></li></ol></div></div>
<p><strong>4. </strong>Теперь попросим VirtueMart включить данные из нашего новорожденного поля в выборку при обращении к странице просмотра товаров в категории или при просмотре карточки товара. Для этого открываем файл  <strong>administrator/com_virtuemart/html/shop_browse_queries.php</strong>.<br />
Находим в перечсилении полей для выборки (то, что записано в <strong>$fieldnames = &#8220;&#8221;</strong>, в самом начале файла) <strong>`product_sku`</strong> и после запятой добавляем <strong>`product_sku2`</strong>.</p>
<p><strong>5. </strong>Сейчас самое время создать &#8220;заглушку&#8221; для шаблона категории. Для этого открываем файл <strong>administrator/com_virtuemart/html/shop_browse.php</strong> и ищем блок, начинающийся такими комментариями:</p>
<div class="codecolorer-container php" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="coMULTI">/*** Now fill the template</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li></ol></div></div>
<p>Находим:</p>
<div class="codecolorer-container php" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$product_cell</span> = <span class="kw3">str_replace</span><span class="br0">&#40;</span> <span class="st0">&quot;{product_sku}&quot;</span>, <span class="re0">$db_browse</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_sku&quot;</span><span class="br0">&#41;</span>, <span class="re0">$product_cell</span> <span class="br0">&#41;</span>;</div></li></ol></div></div>
<p>Этой строчкой формируется &#8220;заглушка&#8221; для отображения артикула товара, который мы <strong>используем в шаблоне в виде: <strong>{product_sku}</strong>.<br />
Добавляем заглушку для нашего нового поля:</strong></p>
<div class="codecolorer-container php" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$product_cell</span> = <span class="kw3">str_replace</span><span class="br0">&#40;</span> <span class="st0">&quot;{product_sku2}&quot;</span>, <span class="re0">$db_browse</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_sku2&quot;</span><span class="br0">&#41;</span>, <span class="re0">$product_cell</span> <span class="br0">&#41;</span>;</div></li></ol></div></div>
<p><strong>6. </strong>Открываем шаблон категории (по умолчанию browse_1.php) и добавляем {product_sku2} в нужное место.</p>
<p><strong>7. </strong>Для добавления &#8220;заглушки&#8221; в шаблон полного описания товара:<br />
- открываем файл <strong>administrator/com_virtuemart/html/shop.product_details.php</strong>, почти в самом конце файла после:</p>
<div class="codecolorer-container php" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$template</span> = <span class="kw3">str_replace</span><span class="br0">&#40;</span> <span class="st0">&quot;{product_sku}&quot;</span>, <span class="re0">$db_product</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_sku&quot;</span><span class="br0">&#41;</span>, <span class="re0">$template</span> <span class="br0">&#41;</span>;</div></li></ol></div></div>
<p>добавляем:</p>
<div class="codecolorer-container php" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="re0">$template</span> = <span class="kw3">str_replace</span><span class="br0">&#40;</span> <span class="st0">&quot;{product_sku2}&quot;</span>, <span class="re0">$db_product</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_sku2&quot;</span><span class="br0">&#41;</span>, <span class="re0">$template</span> <span class="br0">&#41;</span>;</div></li></ol></div></div>
<p>и используем <strong>{product_sku2} </strong>в своем шаблоне карточки товара. </p>
<p><strong>Мотор! Снято! Всем спасибо ))</strong></p>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/sozdanie-novogo-polya-dlya-tovara-virtuemart/","Создание нового поля для товара. VirtueMart.")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/320299440" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/sozdanie-novogo-polya-dlya-tovara-virtuemart/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Fsozdanie-novogo-polya-dlya-tovara-virtuemart%2F</feedburner:awareness></item>
		<item>
		<title>Делаем красиво. Всплывающие окна</title>
		<link>http://www.zaisl.info/2008/06/delaem-krasivo-vsplyvayushhie-okna/</link>
		<comments>http://www.zaisl.info/2008/06/delaem-krasivo-vsplyvayushhie-okna/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 16:00:33 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Web-development]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[lightbox]]></category>

		<category><![CDATA[popup]]></category>

		<category><![CDATA[всплывающие окна]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=25</guid>
		<description><![CDATA[Итак, перед нами очередная очень распространенная задача - по клику на эскиз изображения (который фактически является ссылкой) красиво развернуть оригинальную картинку. Красиво - это в нашем случае что-то отличное от target=&#8221;_blank&#8221; и с каким-нибудь &#8220;вау-эффектом&#8221;.
Все скрипты, выполняющие данную задачу принято называть лайтбоксами (lightbox). В поисках неплохих решений, мною были запытаны более двух десятков скриптов, но [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Итак, перед нами очередная очень распространенная задача</strong> - по клику на эскиз изображения (который фактически является ссылкой) красиво развернуть оригинальную картинку. Красиво - это в нашем случае что-то отличное от target=&#8221;_blank&#8221; и с каким-нибудь &#8220;вау-эффектом&#8221;.<img width='1' height='1' src='http://blogun.ru/it.000000.007511.i.gif'><br />
Все скрипты, выполняющие данную задачу принято называть <strong>лайтбоксами (lightbox)</strong>. В поисках неплохих решений, мною были запытаны более двух десятков скриптов, но в результате в копилку были включены только нижеследующие.<br />
<span id="more-25"></span></p>
<h3>1. <a href="http://fancy.klade.lv/" target="_blank">Fancy box</a></h3>
<p>Скрипт представляет собой плагин к jQuery.<br />
<strong>Возможности:</strong></p>
<ul>
<li> Подгоняет размеры изображений под разрешение монитора;</li>
<li> Пририсовывает тень к всплывающему окошку;</li>
<li> Поддерживает возможность группирования объектов и их просмотр в виде галереи в одном окне;</li>
<li> Выведет для вас не только изображения, но и inline-элементы, а также HTML-контен в iframe;</li>
<li> Конечно же, все это благолепие можно конфигурировать, а также экспериментировать с CSS.</li>
</ul>
<p><strong> Теперь о размерах, а точнее, весе скрипта (вопрос немаловажный):</strong></p>
<ul>
<li>непосредственно jquery.fancybox-1.0.0.js – 12 Кб</li>
<li>сам jQery (jquery-1.2.3.pack.js) – 29,1 Кб</li>
<li>дополнительный скриптик jquery.pngFix.pack.js – 2,52 Кб</li>
<li>CSS – около 4 Кб</li>
<li>изображения – 17 Кб</li>
</ul>
<p><strong> Подключение и использование скрипта не представляет никакой сложности:</strong><br />
<em> 1. Сначала подключаем скрипты и CSS:</em></p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">/* обязательно */ </div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span>=<span class="st0">&quot;js/jquery.js&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span> </div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span>=<span class="st0">&quot;js/jquery.fancybox.js&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span> </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">/* опционально */ </div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span>=<span class="st0">&quot;js/jquery.pngFix.js&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span> </div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span>=<span class="st0">&quot;js/jquery.metadata.js&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">/* цепляем CSS */</div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;link</span> <span class="kw3">rel</span>=<span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;css/fancybox.css&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span>=<span class="st0">&quot;screen&quot;</span><span class="kw2">&gt;</span></span></div></li></ol></div></div>
<p><em>2. Берем подопытную картинку:</em></p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">href</span>=<span class="st0">&quot;image_big.jpg&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span>=<span class="st0">&quot;image_small.jpg&quot;</span> <span class="kw3">alt</span>=<span class="st0">&quot;&quot;</span>/<span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p><strong>примечание:</strong> можете использовать атрибут <em>title</em> для отображения подписи к изображению, а также <em>rel</em> – для группировки обектов.<br />
Заключаем картинку в какое-нибудь оформление (p, div, span – без разницы) с определенным ID. Например, так:</p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;p</span> <span class="kw3">id</span>=<span class="st0">&quot;”test1”&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">href</span>=<span class="st0">&quot;image_big.jpg&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span>=<span class="st0">&quot;image_small.jpg&quot;</span> <span class="kw3">alt</span>=<span class="st0">&quot;&quot;</span> /<span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/a&gt;</span></span><span class="sc2"><span class="kw2">&lt;/p&gt;</span></span></div></li></ol></div></div>
<p><em>3. Инициализируем плагин:</em></p>
<div class="codecolorer-container text">$(document).ready(function() {
$("p#test1 a").fancybox();
});</div>
<p>Готово. В данном случае по щелчку на изображение появится всплывающее окошко с оригиналом изображения. Все параметры окна будут по умолчанию Но вы можете использовать дополнительные опции при вызове плагина, например:</p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">$(document).ready(function() {</div></li>
<li class="li1"><div class="de1">$(&quot;p#test2 a&quot;).fancybox({</div></li>
<li class="li1"><div class="de1">'hideOnContentClick': true</div></li>
<li class="li1"><div class="de1">});</div></li>
<li class="li1"><div class="de1">});</div></li></ol></div></div>
<p>Параметр <em>&#8216;hideOnContentClick&#8217;: true </em> - делает возможным закрытие всплывающего окна не только по нажатию на специальную кнопку, но и по щелчку на свободной области.<br />
Со всеми возможными настройками можете ознакомиться на официальном сайте плагина, где также можно скачать архив и полюбоваться на примеры работы скрипта .</p>
<p></p>
<p></p>
<h3>2. <a href="http://www.ibegin.com/labs/ibox/" target="_blank">iBox v2</a></h3>
<p>Самостоятельный скрипт, не являющийся чьим-либо плагином, и мало того, поддерживающий создание своих собственных плагинов.<br />
<strong> По умолчанию iBox поддерживает несколько типов объектов для вывода:</strong></p>
<ul>
<li> Изображения</li>
<li> Документы</li>
<li> Inline - контейнеры</li>
<li> YouTube - видео</li>
</ul>
<p>Если вам нужно что-то совсем необычное – можно написать свой собственный плагин к iBox, который будет реализовывать какой-нибудь оригинальный механизм обработки и вывода данных.<br />
<strong> Принцип подключения и инициализации iBox:</strong></p>
<ol>
<li>прописываем скрипты:</li>
<li>производим настройку глобальных параметров скрипта:</li>
<li>используем - для определения «своих» ссылок применяем не id или class элементов-контейнеров, а атрибут <em><strong>rel=«ibox»</strong></em> (или, например, ibox&amp;target=&#8217;index.php?page=&amp;my-js-document&#8217; – если нужны какие-то дополнительные параметры).</li>
</ol>
<p>В разделе «<a href="http://www.ibegin.com/labs/ibox/readme.php" target="_blank">Quick Start</a>» официального сайта приведен перечень глобальных и локальных (прописываемых непосреlственно в rel=«») опций, которые можно использовать при работе скрипта.<br />
<strong> Теперь про особо приятные моменты:</strong></p>
<ul>
<li> не смотря на богатую функциональность, скрипт весит порядка 27 Кб, что не может не радовать;</li>
<li> в архиве с iBox  вы найдете readme, demo-html, а также две «шкурки»;</li>
<li> существует реализация скрипта в виде плагина для Wordpress.</li>
</ul>
<p><a href="http://www.ibegin.com/labs/ibox/download.php" target="_blank"> Перейти на страницу скачивания</a>.</p>
<p></p>
<h3>3. <a href="http://www.huddletogether.com/projects/lightbox2/" target="_blank">Lightbox v2.0</a> и <a href="http://www.doknowevil.net/litebox/" target="_blank">Litebox</a></h3>
<p><strong> Lightbox v2.0 </strong>– работает при помощи <strong>Prototype Framework</strong> и <strong>Scriptaculous Effects Library</strong>.<br />
<strong> Работает только с изображениями</strong> - т.е. никаких inline-объектов, iframe и прочего. Но с поставленной задачей справляется великолепно.<br />
<strong></strong></p>
<p><strong> Использование:</strong><br />
<em> 1. Подключаем скрипты:</em></p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">src</span>=<span class="st0">&quot;js/prototype.js&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span> </div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">src</span>=<span class="st0">&quot;js/scriptaculous.js?load=effects,builder&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">src</span>=<span class="st0">&quot;js/lightbox.js&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div></li></ol></div></div>
<p><em> 2. Подключаем CSS</em></p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;link</span> <span class="kw3">rel</span>=<span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;css/lightbox.css&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span>=<span class="st0">&quot;screen&quot;</span> /<span class="kw2">&gt;</span></span></div></li></ol></div></div>
<p>3. <em>Добавляем атрибут <strong>rel=&#8221;lightbox&#8221; </strong>к ссылкам.</em></p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">title</span>=<span class="st0">&quot;my caption&quot;</span> <span class="kw3">rel</span>=<span class="st0">&quot;lightbox&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/image-1.jpg&quot;</span><span class="kw2">&gt;</span></span>image #1<span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p><em><strong>title</strong> </em>– используется для вывода подписи к изображению. Если вам необходимо вывести галерею изображений – включите в атрибут <strong>rel</strong> название группы в квадратных скобках. Вот так:</p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">rel</span>=<span class="st0">&quot;lightbox[roadtrip]&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/image-1.jpg&quot;</span><span class="kw2">&gt;</span></span>image #1<span class="sc2"><span class="kw2">&lt;/a&gt;</span></span> </div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">rel</span>=<span class="st0">&quot;lightbox[roadtrip]&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/image-2.jpg&quot;</span><span class="kw2">&gt;</span></span>image #2<span class="sc2"><span class="kw2">&lt;/a&gt;</span></span> </div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">rel</span>=<span class="st0">&quot;lightbox[roadtrip]&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/image-3.jpg&quot;</span><span class="kw2">&gt;</span></span>image #3<span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p>И будет вам счастье ). Единственным минусом использования данного решения является необходимость использования достаточно тяжелых библиотек Prototype и Scriptaculous. Но если в вашем проекте уже используется Prototype – не стоит даже задумываться ).</p>
<p><a href="http://www.huddletogether.com/projects/lightbox2/releases/lightbox2.04.zip" target="_blank">Скачать Lightbox</a></p>
<p><a href="http://www.doknowevil.net/litebox/" target="_blank"><strong>Litebox</strong></a> - маленькая, аккуратная <strong>модификация Lightbox v2.0</strong>, работающая с использованием <strong>облегченной версии Prototype (урезана  до 4 Кб) </strong>. Общий вес скриптов составляет всего <strong>24,2 Кб.</strong> Выглядит и работает не хуже своего старшего брата. )  Советую обратить внимание. <a href="http://www.doknowevil.net/litebox/download/litebox-1.0.zip" target="_blank">Скачать архив</a>.</p>
<h3>4. <a href="http://jquery.com/demo/thickbox/" target="_blank">ThickBox 3.1</a></h3>
<p><strong>Достаточно мощный скрипт, построенный на базе библиотеки jQuery. </strong>ThickBox можно использовать для:</p>
<ul>
<li>показа одиночного изображения или группы картинок;</li>
<li>отображения inline-объектов;</li>
<li>отображения контента в iframe;</li>
<li>создания модальных диалоговых окон и отображения результатов ajax-запросов внутри всплывающего окна.</li>
</ul>
<p><strong>Использование:</strong></p>
<p><em>1. подключаем скрипты:</em></p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">src</span>=<span class="st0">&quot;path-to-file/jquery.js&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">src</span>=<span class="st0">&quot;path-to-file/thickbox.js&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div></li></ol></div></div>
<p><em>2. подключаем CSS</em></p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;link</span> <span class="kw3">rel</span>=<span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;path-to-file/thickbox.css&quot;</span> <span class="kw3">type</span>=<span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span>=<span class="st0">&quot;screen&quot;</span> /<span class="kw2">&gt;</span></span></div></li></ol></div></div>
<p><em>3. в зависимости от типа выводимых объектов руководствуемся теми или иными правилами (которые подробно описаны на официальной страничке скрипта).</em></p>
<p><strong>Коротко о синтаксисе вывода изображений:</strong></p>
<p><em><strong>а. вывод одиночного изображени</strong><strong>я</strong></em></p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">class</span>=<span class="st0">&quot;thickbox&quot;</span> <span class="kw3">title</span>=<span class="st0">&quot;здесь_заголовок&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/single.jpg&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span>=<span class="st0">&quot;images/single_t.jpg&quot;</span> <span class="kw3">alt</span>=<span class="st0">&quot;Single Image&quot;</span> /<span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p><em><strong>b. галерея изображений:</strong></em></p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">class</span>=<span class="st0">&quot;thickbox&quot;</span> <span class="kw3">title</span>=<span class="st0">&quot; здесь_заголовок &quot;</span> <span class="kw3">rel</span>=<span class="st0">&quot;gallery-plants&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/plant1.jpg&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span>=<span class="st0">&quot;images/plant1_t.jpg&quot;</span> <span class="kw3">alt</span>=<span class="st0">&quot;Plant 1&quot;</span> /<span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">class</span>=<span class="st0">&quot;thickbox&quot;</span> <span class="kw3">title</span>=<span class="st0">&quot; здесь_заголовок &quot;</span> <span class="kw3">rel</span>=<span class="st0">&quot;gallery-plants&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/plant2.jpg&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span>=<span class="st0">&quot;images/plant2_t.jpg&quot;</span> <span class="kw3">alt</span>=<span class="st0">&quot;Plant 2&quot;</span> /<span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">class</span>=<span class="st0">&quot;thickbox&quot;</span> <span class="kw3">title</span>=<span class="st0">&quot; здесь_заголовок &quot;</span> <span class="kw3">rel</span>=<span class="st0">&quot;gallery-plants&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;images/plant3.jpg&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span>=<span class="st0">&quot;images/plant3_t.jpg&quot;</span> <span class="kw3">alt</span>=<span class="st0">&quot;Plant 3&quot;</span> /<span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p><strong> Для группировки изображений используется атрибут <em>rel=&#8221;gallery-plants&#8221;</em></strong></p>
<p><strong>Итак, нам потребуется:</strong></p>
<ol>
<li>библиотека jQuery (31 Кб)</li>
<li>thickbox.js (12 Кб) или thickbox-compressed.js (6 Кб)</li>
<li>ThickBox.css (4 Кб) и картинка-анимация loadingAnimation.gif (5,74 Кб)</li>
</ol>
<p>И всё.) Море удовольствия весом в 45 Кб.</p>
<h3>5.1 Плагины к Motools: <a href="http://digitarald.de/project/remooz/" target="_blank">ReMooz</a> и <a href="http://digitarald.de/project/squeezebox/" target="_blank">SqueezeBox</a></h3>
<p>Некоторая информация относительно SqueezeBox содержится <a href="http://www.zaisl.info/2008/06/ajax-zagruzka-polnojj-versii-novosti-vo-vsplyvayushhem-okne/" target="_blank">вот в этой статье</a>. В заметке рассмотрен пример реализации одной из возможностей плагина – осуществление ajax-запроса и вывод результата в iframe.<br />
<strong> Вцелом, ReMooz и  SqueezeBox очень похожи и являются детищами одного  и того же автора  (Harald Kirschner).</strong><br />
Разработчик позиционирует <strong><a href="http://digitarald.de/project/remooz/" target="_blank">ReMooz</a></strong> как скрипт, идеально подходящий для <strong>создания pop-up окошек с картинками</strong>,  а <strong><a href="http://digitarald.de/project/squeezebox/" target="_blank">SqueezeBox</a></strong> – <strong>инструмент более широкого профиля.</strong> В выше упомянутой статье вы найдете описание возможностей SqueezeBox и требований к его использованию, <strong>а сейчас рассмотрим   ReMooz.</strong><br />
Как вещает автор данного творения – <strong>этот плагин рекомендуется использовать при создании лайтбоксов с изображениями.</strong> Скрипт позволяет не просто выводить оригинал изображения, но и настраивать вывод: так, например,  мы можем определить, какой процент от размера экрана может занимать выводимая картинка (при необходимости ReMooz уменьшит ее размеры ), добавлять ли к ней прозрачность и нужно ли рисовать тень. За подробностями о настройках плагина – на офсайт, там же – примеры и интструкция к использованию. А если в двух словах, то <strong>для работы с ReMooz нам понадобиться:</strong><br />
1. <a href="http://mootools.net/core" target="_blank">MooTools JavaScript Framework</a> (<strong>обязательно 1.2 версии</strong>) со следующими включенными методами:</p>
<ul>
<li>Element.Dimensions</li>
<li>Fx.Tween</li>
<li>Fx.Morph</li>
<li>Selectors</li>
<li>DomReady (facultative)</li>
</ul>
<p>2. <a href="http://digitarald.de/project/remooz/1-0/source/ReMooz.js" target="_blank">ReMooz.js</a><br />
3. <a href="http://digitarald.de/project/remooz/1-0/assets/ReMooz.css" target="_blank">ReMooz.css</a><br />
4. несколько изображений, участвующих в оформлении всплывающего окошка (найдете на <a href="http://digitarald.de/project/remooz/" target="_blank">странице описания</a>)<br />
<strong> Итого: </strong>получаем примерно 55 Кб скриптов и чуть-чуть картинок.<br />
<em> Далее, нам нужно подцепить скрипты и CSS.</em><br />
После этого заключаем изображения в какой-нибудь подходящий элемент с заданным ID или CLASS:</p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">id</span>=<span class="st0">&quot;demo-photos&quot;</span><span class="kw2">&gt;</span></span><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">title</span>=<span class="st0">&quot;заголовок&quot;</span> <span class="kw3">href</span>=<span class="st0">&quot;оригинальное изображение.jpg&quot;</span><span class="kw2">&gt;</span></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;img</span> <span class="kw3">src</span>=<span class="st0">&quot;эскиз.jpg&quot;</span> <span class="kw3">alt</span>=<span class="st0">&quot;&quot;</span> /<span class="kw2">&gt;</span></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;/a&gt;</span></span><span class="sc2"><span class="kw2">&lt;/div&gt;</span></span></div></li></ol></div></div>
<p><em>Теперь прописываем примерно такой обработчик:</em></p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">window.addEvent('load', function() {</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">/**</div></li>
<li class="li1"><div class="de1">* Этот вариант является вариантом по умолчанию. Никаких дополнительных настроек</div></li>
<li class="li1"><div class="de1">*/</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">ReMooz.assign('#demo-photos a', {</div></li>
<li class="li1"><div class="de1">origin: 'img'</div></li>
<li class="li1"><div class="de1">});</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">});</div></li></ol></div></div>
<p>Или так:</p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">window.addEvent('load', function() {</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">/**</div></li>
<li class="li1"><div class="de1">* А это уже посложнее</div></li>
<li class="li1"><div class="de1">*/</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">ReMooz.assign('#demo-photos a', {</div></li>
<li class="li1"><div class="de1">'origin': 'img',</div></li>
<li class="li1"><div class="de1">'shadow': 'onOpenEnd', // когда у нас должна появляться тень – прорисовка может происходить одновременно с загрузкой или же после нее</div></li>
<li class="li1"><div class="de1">'resizeFactor': 0.8, // занять максимум 80% экрана</div></li>
<li class="li1"><div class="de1">'cutOut': false, // не скрывать эскиз изображения при просмотре оригинала</div></li>
<li class="li1"><div class="de1">'opacityResize': 0.4, // прозрачность</div></li>
<li class="li1"><div class="de1">'dragging': false, // запретить перетаскивание окошка</div></li>
<li class="li1"><div class="de1">'centered': true // окошко будет появляться в центре экрана, не зависимо от параметров элемента-конейнера&nbsp; });</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">});</div></li></ol></div></div>
<p>Плагин готов к употреблению ).</p>
<h3> 5.2 Плагины к Motools: <a href="http://www.phatfusion.net/multibox/" target="_blank">Multibox</a> и <a href="http://www.phatfusion.net/lightbox/" target="_blank">Lightbox</a>.</h3>
<p>Данные два решения также являются творением  одного автора. И опять-таки, одно из них (<strong>Lightbox</strong>) – «заточено» под вывод графической информации, а второе (<strong>Multibox</strong>) – призвано обеспечить работу с широким набором данных. <strong>Оба скрипта работают на базе  Motools 1.11.</strong></p>
<p><strong><a href="http://www.phatfusion.net/lightbox/" target="_blank">Lightbox</a></strong> не имеет каких-либо особенностей. Подхватывает картинки по <strong>rel=&#8221;lightbox&#8221;</strong>, а группы картинок по  <strong>rel=&#8221;lightbox[название_группы]&#8221;</strong>. Инициализируется заклинанием типа:<br />
<strong> Lightbox.init({descriptions: &#8216;.lightboxDesc&#8217;)</strong><br />
Имеет дополнительные настройки, с которыми можно ознакомиться на официальной страничке.</p>
<p><strong><a href="http://www.phatfusion.net/multibox/" target="_blank">Multibox</a></strong> – более функциональный скрипт, работающий не только с изображениями, но и с flash, видео, mp3, html.<br />
Механизм использования несколько отличается от Lightbox – ссылки для обработки определяются на основании CLASS-а контейнера, в котором они содержаться, а атрибут rel – используется для задания дополнительных параметров.</p>
<p>
<strong> МОРАЛЬ:</strong> каждое из рассмотренных решений имеет право на существование. Что именно использовать – зависит от предпочтений разработчика и от конкретной ситуации использования. Например, если в проекте уже используется какая-либо ajax-библиотека, то логично и целесообразно было бы для решения задачи со всплывающими окнами использовать плагин именно для этой библиотеки.<br />
Надеюсь, что данная статья поможет определиться с выбором подходящего решения.<br />
<strong><br />
Также жду ваших комментариев и сообщений (возможно, даже заметок) об интересных скриптах всплывающих окон.</strong></p>
<div class="dop_box">Я играю в <a href="http://blogowar.ru" rel="0cabb2af2eebee1cbc452eb75fcdb592">Blogowar.ru</a>, чего и вам советую.</div>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/delaem-krasivo-vsplyvayushhie-okna/","Делаем красиво. Всплывающие окна")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/316949963" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/delaem-krasivo-vsplyvayushhie-okna/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Fdelaem-krasivo-vsplyvayushhie-okna%2F</feedburner:awareness></item>
		<item>
		<title>Инструменты для создания и правки HTML/CSS/PHP - кода</title>
		<link>http://www.zaisl.info/2008/06/instrumenty-dlya-sozdaniya-i-pravki-htmlcssphp-koda/</link>
		<comments>http://www.zaisl.info/2008/06/instrumenty-dlya-sozdaniya-i-pravki-htmlcssphp-koda/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 06:45:23 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Инструментарий web-разработчика]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[инструментарий]]></category>

		<category><![CDATA[редакторы]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=20</guid>
		<description><![CDATA[Значимость подобного ПО трудно переоценить. На эту тему уже сказано и написано очень много букв, так что обойдемся без долгих вступлений). Итак, перечень программ, на которые, по моему скромному мнению, следует обратить внимание при выборе инструмента для разработки.

1. PHP Expert Editor

Долгое время данная софтинка являлась моим «дежурным» редактором. Очень приятная по своей функциональности программа. Основные [...]]]></description>
			<content:encoded><![CDATA[<p>Значимость подобного ПО трудно переоценить. На эту тему уже сказано и написано очень много букв, так что обойдемся без долгих вступлений). <strong>Итак, перечень программ, на которые, по моему скромному мнению, следует обратить внимание при выборе инструмента для разработки.</strong><br />
<span id="more-20"></span></p>
<p><strong>1. <a href="http://www.ankord.com/ru/phpxedit.html" target="_blank">PHP Expert Editor</a></strong></p>
<p><a title="PHP Expert Editor" target="_blank" href="http://www.zaisl.info/wp-content/uploads/2008/06/phped.jpg"><img class="attachment wp-att-21" src="http://www.zaisl.info/wp-content/uploads/2008/06/phped.thumbnail.jpg" alt="PHP Expert Editor" width="400" height="260" /></a></p>
<p>Долгое время данная софтинка являлась моим «дежурным» редактором. Очень приятная по своей функциональности программа. Основные достопримечательности:</p>
<ul>
<li>Инспектор кода (левая область окна, см. скрин). Позволяет осуществить переход к нужному месту документа (функция, переменная и т.п.);</li>
<li>Визуальное представление циклов и условий в коде + возможность «сворачивать» отдельные блоки в строку;</li>
<li>Встроенный FTP-клиент;</li>
<li> Возможность создавать «закладки» в документе, которые делают возможным переход к нужной строке по нажатию горячих клавиш;</li>
<li>Встроенное средство для создания и выполнения макросов;</li>
<li>Удобный механизм поиска и замены (может искать как в открытых файлах, так и по директории)</li>
<li>Не требователен к ресурсам компьютера, не грузит систему.</li>
<li>Отображение открытых документов в «табах». Мелочь, а приятно ).</li>
</ul>
<p><strong>2. <a href="http://www.blumentals.net/rapidphp/" target="_blank">Rapid PHP</a></strong><br />
<a title="Rapid PHP" href="http://www.zaisl.info/wp-content/uploads/2008/06/rapidphp.jpg" target="_blank"><img class="attachment wp-att-22" src="http://www.zaisl.info/wp-content/uploads/2008/06/rapidphp.thumbnail.jpg" alt="Rapid PHP" width="400" height="289" /></a><br />
Программа содержит в себе большое количество средств для работы с кодом любого типа. <strong>Достоинств достаточно много, но вот небольшой перечень самых привлекательных:</strong></p>
<ul>
<li> Расширенный менеджер кода, снабженный закладками (HTML, CSS, JavaScript, PHP) для доступа к дереву объектов определенного типа;</li>
<li> Подсветка парных скобок (очень помогает при определении начала и конца блока);</li>
<li> Библиотека сниппетов (см. рисунок 2). Существует возможность создавать собственные заготовки и назначать им горячие клавиши.</li>
<li> Очень удобная система автозавершения выражения. Автокомлит-список может содержать не только базовые операторы и функции для типа редактируемого документа, но и названия уже существующих в документе переменных и функций.</li>
<li> Средства проверки синтаксиса, а также валидности HTML/CSS;</li>
<li> FTP-клиент;</li>
<li> Возможность предварительного просмотра HTML и CSS кода (закладки в нижней части основного окна, см. скрин);</li>
<li> Возможность создания закладок на участки кода;</li>
<li> Не грузит систему и не подвисает при большом количестве открытых документов.</li>
</ul>
<p><a title="rapidphp2" href="http://www.zaisl.info/wp-content/uploads/2008/06/rapidphp2.jpg" target="_blank"><img class="attachment wp-att-23" src="http://www.zaisl.info/wp-content/uploads/2008/06/rapidphp2.thumbnail.jpg" alt="rapidphp2" width="400" height="289" /></a><br />
<strong> МОРАЛЬ: Более чем функциональный и удобный продукт. Идеально подходит для работы с PHP/HTML/CSS.</strong></p>
<p><strong>3. <a href="http://www.nusphere.com/" target="_blank">NuSphere PhpEd</a></strong><br />
<a title="NuSphere PhpEd" href="http://www.zaisl.info/wp-content/uploads/2008/06/nusph.jpg" target="_blank"><img class="attachment wp-att-24" src="http://www.zaisl.info/wp-content/uploads/2008/06/nusph.thumbnail.jpg" alt="NuSphere PhpEd" width="400" height="270" /></a><br />
Прекрасный инструмент для широкомасштабных разработок. Программа произвела очень хорошее впечатление и прочно закрепилась в моем арсенале веб-разработчика, заменив собою ZendStudio.<br />
NuSphere PhpED - это профессиональная интегрированная среда обработки, предназначенная главным образом для того, чтобы формировать приложения с использованием баз данных и PHP, HTML, XML, CSS.<br />
<strong> Все достоинста продукта перечислить не удастся, поэтому ключевые моменты:</strong></p>
<ul>
<li>мощный PHP отладчик и анализатор PHP-кода;</li>
<li>подсветка парных скобок, возможность сворачивать участки кода, закладки как само собой разумеющееся ));</li>
<li> включает интегрированную базу данных и клиенты CVS,</li>
<li> сервисы SOAP;</li>
<li> валидатор HTML и средства форматирования кода;</li>
<li> поддержка работы с Smarty;</li>
<li> многофункциональный FTP-клиент;</li>
<li> в наличии Telnet, SSH терминалы для удаленного администрирования,</li>
<li> возможность работы с MySQL, Oracle, MSSQL SQLite, Interbase;</li>
<li> очень приятен внешне )</li>
</ul>
<p><strong> МОРАЛЬ: Хорош для комплексных разработок или работе с кодом on-line. Для простой правки кода и работы с HTML/CSS рекомендуется использовать что-нибудь попроще ).</strong></p>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/instrumenty-dlya-sozdaniya-i-pravki-htmlcssphp-koda/","Инструменты для создания и правки HTML/CSS/PHP - кода")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/311007922" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/instrumenty-dlya-sozdaniya-i-pravki-htmlcssphp-koda/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Finstrumenty-dlya-sozdaniya-i-pravki-htmlcssphp-koda%2F</feedburner:awareness></item>
		<item>
		<title>Создание ThumbImage (эскизов изображений) средствами PHP</title>
		<link>http://www.zaisl.info/2008/06/sozdanie-thumbimage-ehskizov-sredstvami-php/</link>
		<comments>http://www.zaisl.info/2008/06/sozdanie-thumbimage-ehskizov-sredstvami-php/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 12:12:54 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Web-development]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[ресайз]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=18</guid>
		<description><![CDATA[Очень часто возникает необходимость создания превью изображений (так называем ThumbImage). В зависимости от специфики проекта, требуется:
1) осуществлять ресайз изображений &#8220;на лету&#8221;, непосредственно при загрузке страницы;
2) ресайзить изображения при загрузке, создавая одну или несколько тумбочек по заранее заданным параметрам;
3) массовый ребилд изображений. Бывает необходим в некоторых случаях, например: каталог товаров формируется с помощью CSV-файла, в котором [...]]]></description>
			<content:encoded><![CDATA[<p>Очень часто возникает необходимость создания превью изображений (так называем <strong>ThumbImage</strong>). В зависимости от специфики проекта, требуется:<br />
1) осуществлять ресайз изображений &#8220;на лету&#8221;, непосредственно при загрузке страницы;<br />
2) ресайзить изображения при загрузке, создавая одну или несколько тумбочек по заранее заданным параметрам;<br />
3) массовый ребилд изображений. Бывает необходим в некоторых случаях, например: каталог товаров формируется с помощью CSV-файла, в котором прописаны пути к оригинальным изображениям. Изображения загружены в специальную папку и от скрипта требуется создать уменьшенные копии оригиналов.<br />
Итак, обзор скриптов и решений.<br />
<span id="more-18"></span><br />
<strong>1.Smart Image Resizer</strong><br />
<strong>Автор:</strong> Joe Lencioni<br />
<strong>Текущая версия:</strong> v1.3.3 (Released April 28, 2008)<br />
<strong>Оф.сайт:</strong> <a href="http://shiftingpixel.com/2008/03/03/smart-image-resizer/" target="_blank">hiftingpixel.com</a></p>
<p><strong>Требования:</strong></p>
<ul>
<li><a href="http://php.net" target="_blank"> PHP</a></li>
<li><a href="http://php.net/gd" target="_blank"> GD</a></li>
</ul>
<p><strong>Описание:</strong><br />
Очень простой в использовании скрипт для ресайза изображений &#8220;на лету&#8221;.<br />
Работает со следующими графическими форматами: JPEG, GIF, PNG. Достаточно аккуратно обращается с внешним видом картинки - ясность, контраст и т.п. остаются на высоком уровне.  Резать старается &#8220;по-умному&#8221; - предварительно вычислив коэффициент &#8220;ширина/высота&#8221;. Может заполнять прозрачные области GIF, PNG-изображений заданным цветом. Заботливо складывает отресайзенные изображения в папочку кэша  и при наличии кэшированной картинки -выводит именно её, что, конечно же, благоприятно влияет на скорость работы.</p>
<p><strong>Установка:</strong><br />
Проста как пять копеек ). Скачиваем архив: http://shiftingpixel.com/downloads/image-1.3.3.zip. Извлекаем файл image.php.  В директории со скриптом создаем папку &#8220;imagecache&#8221;.<br />
Используя, например, вот такой вызов картинки, наслаждаемся полученным результатом:<br />
<strong> &lt;img alt=”my resized picture” src=”http://example.com/image.php?image=/images/picture.jpg&amp;width=100&amp;height=100? /&gt;</strong><br />
Название паки кэша можно поменять в самом скрипте. Путь к директории с картинками, как мы видим, задается непосредственно в URL (в &#8220;image=&#8221; прописан путь до картинки, начиная с корня сайта).</p>
<p><strong>Пример использования в php-скрипте.</strong></p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">/Название директории с изображениями</div></li>
<li class="li1"><div class="de1"><span class="re0">$dir</span>=<span class="st0">'product_photo'</span>; </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">//Задаем параметры ресайза, в нашем случае - ширина и высота</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$imageWidth</span>=<span class="st0">'150'</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$imageHeight</span>=<span class="st0">'150'</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">//&quot;$mosConfig_live_site&quot; - глобальная переменная в Joomla, содержит адрес сайта (например, &quot;http://www.example.com&quot;)</span></div></li>
<li class="li1"><div class="de1"><span class="co1">// &quot;$item_image&quot; - это имя файла, которое мы получили из БД</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$rgsdimg</span> = <span class="re0">$mosConfig_live_site</span> .<span class="st0">'/components/com_rgshopdirectory/js/img/image.php?image=/components/com_rgshopdirectory/images/'</span>.<span class="re0">$dir</span>.<span class="st0">'/'</span>. <span class="re0">$item_image</span> .<span class="st0">'&amp;width='</span>. <span class="re0">$imageWidth</span> .<span class="st0">'&amp;height='</span>. <span class="re0">$imageHeight</span>.<span class="st0">'&amp;cropratio=1:1'</span>; </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re0">$photo</span>=<span class="st0">'&lt;img&nbsp; src=&quot;'</span>. <span class="re0">$rgsdimg</span> .<span class="st0">'&quot; title=&quot;'</span>.<span class="re0">$item_name</span>.<span class="st0">'&quot; border=&quot;0&quot;&nbsp; /&gt;'</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">// А дальше можем использовать картинку в качестве ссылки, например:</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$pre_image</span>=<span class="st0">&quot;&lt;a&nbsp; href=<span class="es0">\&quot;</span>$href<span class="es0">\&quot;</span>&gt;$photo&lt;/a&gt;&quot;</span>;</div></li></ol></div></div>
<p><strong>ИМХО:</strong> простой в использовании  скрипт с минимумом  возможностей, которых, впрочем, бывает вполне достаточно.</p>
<p><strong>2. phpThumb()</strong><br />
<strong>Автор: </strong>James Heinrich<br />
<strong>Текущая версия: </strong>1.7.8 (updated: 28-May-2008 )<br />
<strong>Оффсайт:</strong> http://phpthumb.sourceforge.net</p>
<p><strong>Требования:</strong></p>
<ul>
<li><a href="http://php.net" target="_blank"> PHP</a></li>
<li><a href="http://php.net/gd" target="_blank"> GD</a></li>
<li><a href="http://imagemagick.org" target="_blank">ImageMagick</a> (желательно)</li>
</ul>
<p><strong>Описание:</strong><br />
<strong>Как и Smart Image Resizer</strong>, данный скрипт использует GD для создания превью &#8220;на лету&#8221;, но в отличие от предыдущего подопытного обладает огромным количеством возможностей и настроек. Фактически, это класс для работы с изображениями на все случаи жизни.<br />
<strong>Поддерживаемые графические форматы  входных файлов:</strong></p>
<ul>
<li> JPEG;</li>
<li> PNG;</li>
<li> GIF;</li>
<li> BMP;</li>
<li> при наличии ImageMagick - любой формат, который поддерживается данной библиотекой</li>
</ul>
<p><strong>Поддерживаемые графические форматы  выходных файлов:</strong></p>
<ul>
<li>JPEG;</li>
<li>PNG;</li>
<li>GIF;</li>
<li>BMP (при наличии ImageMagick или phpthumb.bmp.php в наборе скриптов);</li>
<li>ICO (при наличии ImageMagick или phpthumb.ico.php в наборе скриптов)</li>
</ul>
<p>Подробное описание возможностей скрипта, которых очень много, доступно на офсайте.<br />
<strong>Из особых приятностей:</strong> действительно &#8220;умная&#8221; обрезка изображений, большое количество фильтров для выходных изображений (наложение водяного знака, поворот, тень + множество других).</p>
<p><strong>Огромное количество примеров (демо):</strong><br />
http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php</p>
<p><strong>Установка: </strong>все также распаковываем архив в какую-либо директорию, папка кэша уже есть в архиве, так что отдельно ее создавать не нужно Возможно, потребуется произвести дополнительную настройку скрипта (например, поправить пути и т.п.) - все зависит от конкретной ситуации использования. Для начала, переименуйте файл &#8220;phpThumb.config.php.default&#8221; в &#8220;phpThumb.config.php&#8221; и смотрите уже по результатам отработки скрипта - если в процессе выполнения будут возникать неполадки, скрипт сообщит об этом, показав на месте вывода картинки изображение с текстом ошибки.</p>
<p><strong>Пример использования в php-скрипте.</strong><br />
Пример очень похож на предыдущий. Разница лишь в формировании URL-а изображения и наборе передаваемых параметров</p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="co1">//Название директории с изображениями</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$dir</span>=<span class="st0">'product_photo'</span>; </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">//Задаем параметры ресайза- - ширина, высота, необходимость подрезать изображение</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$imageWidth</span>=<span class="st0">'150'</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$imageHeight</span>=<span class="st0">'150'</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$Zoom_Crop</span>=<span class="st0">'1'</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">//&quot;$mosConfig_live_site&quot; - глобальная переменная в Joomla, содержит адрес сайта (например, &quot;http://www.example.com&quot;)</span></div></li>
<li class="li1"><div class="de1"><span class="co1">// &quot;$item_image&quot; - это имя файла, которое мы получили из БД</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$rgsdimg</span> = <span class="re0">$mosConfig_live_site</span> .<span class="st0">'/components/com_rgshopdirectory/js/img/phpThumb.php?src=../../images/'</span>.<span class="re0">$dir</span>.<span class="st0">'/'</span>. <span class="re0">$item_image</span> .<span class="st0">'&amp;w='</span>. <span class="re0">$imageWidth</span> .<span class="st0">'&amp;h='</span>. <span class="re0">$imageHeight</span> . <span class="re0">$zc</span> .<span class="st0">'&amp;q=100'</span>;&nbsp; &nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re0">$photo</span>=<span class="st0">'&lt;img&nbsp; src=&quot;'</span>. <span class="re0">$rgsdimg</span> .<span class="st0">'&quot; title=&quot;'</span>.<span class="re0">$item_name</span>.<span class="st0">'&quot; border=&quot;0&quot;&nbsp; /&gt;'</span>;</div></li></ol></div></div>
<p><strong>ИМХО: </strong>мощный инструмент для работы с изображениями. Работает с максимальным соотношением &#8220;возможности/качество/скорость&#8221;. Большим плюсом является достаточно полная документация и хороший набор демо-данных (как на оффсайте, так и в архиве со скриптом).</p>
<p>Мы рассмотрели примеры &#8220;умных&#8221; (в случае phpThumb() - МегаУмных) скриптов, предоставляющих большое число возможностей при работе с изображениями.<br />
<strong>Теперь рассмотрим пример &#8220;простого&#8221; создания превью</strong>, но с сохранением результатов ресайза в виде отдельных файлов и организацией набора функций по ресайзу в виде отдельного класса. При необходимости, конечно же, существует возможность использовать те самые &#8220;умные&#8221; скрипты в составе библиотеки. Но это тема для отдельной беседы).</p>
<p><strong>3. Простой скрипт ресайза изображений.</strong><br />
<strong>Постановка задачи:</strong><br />
В таблице с описанием товаров существует поле `product_full_image`, в нем содержаться названия графических файлов.<br />
Сами файлы лежат по адресу &#8220;/components/com_virtuemart/shop_image/product/&#8221;.<br />
<strong>Необходимо: </strong>пробежаться по всем записям таблицы и для каждого из существующих изображений создать средний и маленький эскизы.<br />
<strong>Нам потребуется: </strong>форма с полями ввода размеров эскизов (для простоты будем задавать только ширину требуемого эскиза), функция для первичной обработки данных и сам класс с функциями обработки изображений.</p>
<p><strong>1. Рисуем форму (мне было удобно сделать это внутри отдельной функции):</strong></p>
<div class="codecolorer-container php"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">function</span> ya_kartinko<span class="br0">&#40;</span> <span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1"><span class="kw3">global</span> <span class="re0">$mosConfig_absolute_path</span>, <span class="re0">$mosConfig_live_site</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw3">echo</span> <span class="st0">'</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &lt;form&nbsp; action=&quot;index.php?option=com_virtuemart&amp;page=shop.browse&quot;&nbsp; method=&quot;post&quot;&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &nbsp; &nbsp; Ширина мини-эскиза: &lt;br /&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;text&quot; class=&quot;inputbox&quot; name=&quot;small_x&quot; value=&quot;100&quot;&gt;&lt;br /&gt;&lt;br /&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &nbsp; &nbsp; Ширина среднего эскиза:&lt;br /&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;text&quot; class=&quot;inputbox&quot; name=&quot;middle_x&quot; value=&quot;150&quot;&gt;&lt;br /&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &nbsp; &nbsp; &lt;input&nbsp; type=&quot;hidden&quot; name=&quot;resize_pic&quot; value=&quot;1&quot;&gt; &lt;br /&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &nbsp; &nbsp; &lt;input class=&quot;but&quot;&nbsp; type=&quot;submit&quot; value=&quot;Поехали!&quot;&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &lt;/form&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="st0"> '</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></div></div>
<p>После сабмита основной скрипт shop.browse.php отлавливает параметры формы и передает в нижеописанную функцию значения $small_x и $middle_x</p>
<p><strong>2. Функция, в которую приходят выловленные параметры:</strong></p>
<div class="codecolorer-container php" style="height:420px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="kw2">function</span> resize_kartinko<span class="br0">&#40;</span><span class="re0">$small_x</span>, <span class="re0">$middle_x</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1"><span class="kw3">global</span> <span class="re0">$mosConfig_absolute_path</span>, <span class="re0">$mosConfig_live_site</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">//Подключаем класс обработки изображения</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">include</span><span class="br0">&#40;</span> CLASSPATH . <span class="st0">&quot;class.img2thumb.php&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">//Коннект с БД</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$db</span> = <span class="kw2">new</span> ps_DB; </div></li>
<li class="li1"><div class="de1"><span class="re0">$q</span>&nbsp; = <span class="st0">&quot;SELECT product_sku, product_full_image &quot;</span> ;</div></li>
<li class="li1"><div class="de1"><span class="re0">$q</span>&nbsp; .= <span class="st0">&quot;FROM #__{vm}_product &quot;</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$db</span>-&gt;<span class="me1">query</span><span class="br0">&#40;</span><span class="re0">$q</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">while</span> <span class="br0">&#40;</span> <span class="re0">$db</span>-&gt;<span class="me1">next_record</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">//Начинаем перебор</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$db</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_full_image&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$filename</span> = <span class="re0">$mosConfig_live_site</span>.<span class="st0">&quot;/components/com_virtuemart/shop_image/product/&quot;</span>.<span class="re0">$db</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_full_image&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">file_exists</span><span class="br0">&#40;</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">'DOCUMENT_ROOT'</span><span class="br0">&#93;</span>.<span class="st0">'/components/com_virtuemart/shop_image/product/'</span>.<span class="re0">$db</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_full_image&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">//если файл существует</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$fileinfo</span> = <span class="kw3">pathinfo</span><span class="br0">&#40;</span> <span class="re0">$filename</span> <span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$file</span> = <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot;.&quot;</span>.<span class="re0">$fileinfo</span><span class="br0">&#91;</span><span class="st0">'extension'</span><span class="br0">&#93;</span>, <span class="st0">&quot;&quot;</span>, <span class="re0">$fileinfo</span><span class="br0">&#91;</span><span class="st0">'basename'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$ext</span> = <span class="st0">&quot;.jpg&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">//Формируем имена выходных файлов, путем добавления к имени исходного файла сууфикса &quot;_small&quot; или &quot;_middle&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$fileout_small</span> = <span class="re0">$mosConfig_absolute_path</span>.<span class="st0">&quot;/components/com_virtuemart/shop_image/product/resized/&quot;</span>.<span class="re0">$file</span>.<span class="st0">&quot;_small&quot;</span>.<span class="re0">$ext</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$fileout_middle</span> = <span class="re0">$mosConfig_absolute_path</span>.<span class="st0">&quot;/components/com_virtuemart/shop_image/product/resized/&quot;</span>.<span class="re0">$file</span>.<span class="st0">&quot;_middle&quot;</span>.<span class="re0">$ext</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$maxsize</span> = <span class="kw2">false</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$bgred</span> = <span class="nu0">255</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$bggreen</span> = <span class="nu0">255</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$bgblue</span> = <span class="nu0">255</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="co1">// создаем экземпляры класса. По сути - передаем все необходимые данные для создания эскизов</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_image_small</span> = <span class="kw2">new</span> Img2Thumb<span class="br0">&#40;</span><span class="re0">$filename</span>,<span class="re0">$small_x</span>,<span class="re0">$newysize</span>,<span class="re0">$fileout_small</span>,<span class="re0">$maxsize</span>,<span class="re0">$bgred</span>,<span class="re0">$bggreen</span>,<span class="re0">$bgblue</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_image_middle</span> = <span class="kw2">new</span> Img2Thumb<span class="br0">&#40;</span><span class="re0">$filename</span>,<span class="re0">$middle_x</span>,<span class="re0">$newysize</span>,<span class="re0">$fileout_middle</span>,<span class="re0">$maxsize</span>,<span class="re0">$bgred</span>,<span class="re0">$bggreen</span>,<span class="re0">$bgblue</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">'Обработка файла &amp;nbsp;'</span>.<span class="re0">$db</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_full_image&quot;</span><span class="br0">&#41;</span>.<span class="st0">'&amp;nbsp;завершена.&lt;br /&gt;'</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="co1">//имя файла есть в БД, но физически он отсутствует</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">'&lt;span class=&quot;alarm&quot;&gt;Ошибка. &amp;nbsp;'</span>.<span class="re0">$db</span>-&gt;<span class="me1">f</span><span class="br0">&#40;</span><span class="st0">&quot;product_full_image&quot;</span><span class="br0">&#41;</span>.<span class="st0">'&amp;nbsp;не существует.&lt;/span&gt;&lt;br /&gt;'</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="co1">//Закончился перебор по БД</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></div></div>
<p><a href="http://www.zaisl.info/wp-content/uploads/raznoe/class.img2thumb.zip">Файл class.img2thumb.php.</a></p>
<p>В состав функции дополнительно можно включить, например, запись в БД названий полученных эскизов. Также без труда можно использовать приведенный в пример принцип для создания эскизов одного изображения, загружаемого через форму.</p>
<p>И в заключении, <a href="http://debugger.ru/articles/thumbnails">еще один пример библиотечки для создания эскизов</a>, а заодно и увлекательное чтиво по теории создания миниатюрных изображений. Читайте на здоровье.</p>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/sozdanie-thumbimage-ehskizov-sredstvami-php/","Создание ThumbImage (эскизов изображений) средствами PHP")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/311007923" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/sozdanie-thumbimage-ehskizov-sredstvami-php/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Fsozdanie-thumbimage-ehskizov-sredstvami-php%2F</feedburner:awareness></item>
		<item>
		<title>AJAX-загрузка полной версии новости во всплывающем окне</title>
		<link>http://www.zaisl.info/2008/06/ajax-zagruzka-polnojj-versii-novosti-vo-vsplyvayushhem-okne/</link>
		<comments>http://www.zaisl.info/2008/06/ajax-zagruzka-polnojj-versii-novosti-vo-vsplyvayushhem-okne/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 12:17:10 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Joomla!]]></category>

		<category><![CDATA[Web-development]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=17</guid>
		<description><![CDATA[Постановка задачи: существует модуль вывода анонса новостей. По клику на &#8220;подробнее&#8221; (или, например, на заголовок новости) необходимо осуществить вывод полного текста  во всплывающем окне. Причем, желательно, чтобы загрузка текста осуществлялась при помощи AJAX. И со спецэффектами ).
Итак, MooTools нам в помощь).
В качестве примера будем рассматривать стандартный модуль в сборке Joomla! CMS - mod_latestnews.php (Последние [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Постановка задачи: </strong>существует модуль вывода анонса новостей. По клику на &#8220;подробнее&#8221; (или, например, на заголовок новости) необходимо осуществить вывод полного текста  во всплывающем окне. Причем, желательно, чтобы загрузка текста осуществлялась при помощи <strong>AJAX</strong>. И со спецэффектами ).<br />
Итак, <strong>MooTools</strong> нам в помощь).<br />
В качестве примера будем рассматривать стандартный модуль в сборке <strong>Joomla! CMS</strong> - mod_latestnews.php (Последние новости).<br />
<span id="more-17"></span><br />
<strong>Что нам потребуется: </strong><br />
1) непосредственно<strong> <a href="http://www.mootools.net/" target="_blank">MooTools</a></strong>. В сборке библиотеки должны присутствовать следующие модули:</p>
<ul>
<li>Element.Dimensions</li>
<li>Fx.Tween</li>
<li>Fx.Morph</li>
<li>Selectors</li>
<li>DomReady</li>
</ul>
<p>2) плагин к MooTools - <a href="http://digitarald.de/project/squeezebox/" target="_blank"><strong>SqueezeBox - Expandable Lightbox (v1.1)</strong></a> (<a href="http://digitarald.de/project/squeezebox/1-1/source/SqueezeBox.js" target="_blank">скачать</a>)<br />
3) CSS к плагину<br />
4) небольшие картинки spinner.gif и closebox.png, участвующие в оформлении всплывающего окна.</p>
<p>Для особо ленивых - <a href="http://www.zaisl.info/wp-content/uploads/raznoe/SqueezeBox - Expandable Lightbox (v1.1).zip">архив со всем вышеперечисленным добром</a>. Но mootools рекомендую обновить (в архиве  1.2beta, сейчас уже принявшая статус стабильной).</p>
<p><strong>Пара слов о самом плагине. Он умеет:</strong></p>
<ul>
<li>Осуществлять AJAX-запросы и выводить результат. Красиво выводить )</li>
<li>Клонировать текстовые эелементы страницы .</li>
<li>Подгружать контента с других сайтов в IFrame.</li>
<li>Показывать оригинальные изображения во всплывающем окне.</li>
<li>И даже подгружать видео с Youtube все в том же симпатичном всплывающем окошке.</li>
</ul>
<p>Все эти красивости вы можете потестировать на офсайте плагина. А мы займемся все-таки новостями.)</p>
<p>Итак, <strong>подключаем скрипты и CSS</strong>. Удобнее всего это сделать в файле шаблона. Первоначально в папке шаблона создаем папку js, куда складываем файлы .js, .css и две картинки.<br />
<strong>Перед закрывающим &lt;/head&gt; добавляем:</strong></p>
<div class="codecolorer-container html"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;script</span> <span class="kw3">type</span>=<span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span>=<span class="st0">&quot;&lt;?php echo $mosConfig_live_site;?&gt;</span>/templates/<span class="sc2">&lt;?php echo $mainframe-&gt;</span>getTemplate(); ?&gt;/js/mootools-trunk.js&quot;&gt;<span class="sc2">&lt;/script&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sc2">&lt;script type=&quot;</span><span class="kw3">text</span>/javascript<span class="st0">&quot; src=&quot;</span><span class="kw2">&lt;</span>?php echo $mosConfig_live_site;?<span class="kw2">&gt;</span></span>/templates/<span class="sc2"><span class="kw2">&lt;</span>?php echo $mainframe-<span class="kw2">&gt;</span></span>getTemplate(); ?&gt;/js/SqueezeBox.js&quot;&gt;<span class="sc2"><span class="kw2">&lt;/script&gt;</span></span></div></li>
<li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;link</span> <span class="kw3">href</span>=<span class="st0">&quot;&lt;?php echo $mosConfig_live_site;?&gt;</span>/templates/<span class="sc2">&lt;?php echo $mainframe-&gt;</span>getTemplate(); ?&gt;/js/SqueezeBox.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;</span></div></li></ol></div></div>
<p><strong>Далее, добавляем такой обработчик:</strong></p>
<div class="codecolorer-container javascript"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1">&lt;script type=<span class="st0">&quot;text/javascript&quot;</span>&gt;</div></li>
<li class="li1"><div class="de1">window.<span class="me1">addEvent</span><span class="br0">&#40;</span><span class="st0">'domready'</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; SqueezeBox.<span class="me1">assign</span><span class="br0">&#40;</span>$$<span class="br0">&#40;</span><span class="st0">'a[rel=boxed]'</span><span class="br0">&#41;</span>, <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; size: <span class="br0">&#123;</span>x: <span class="nu0">400</span>, y: <span class="nu0">400</span><span class="br0">&#125;</span>,</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ajaxOptions: <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; method: <span class="st0">'get'</span> </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&lt;/script&gt;</div></li></ol></div></div>
<p>Данный скрипт, как мы видим, ищет на странице ссылки с аттрибутом <strong>rel=&#8221;boxed&#8221;</strong>, по нажатию на которые  и  будет происходить отработка плагина - вывод контента во всплывающем окне.<br />
Непосредственно ссылка в коде страницы должна строиться по следующему принципу:</p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">href</span>=<span class="st0">&quot;здесь_адрес_того_что_должно_выводится_во_всплывающем_окне&quot;</span> <span class="kw3">rel</span>=<span class="st0">&quot;boxed&quot;</span><span class="kw2">&gt;</span></span>Покажись!<span class="sc2"><span class="kw2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p>Теперь, когда подготовительный этап завершен, перейдем к коду модуля mod_latestnews.php. Как мы знаем, данный скрипт выбирает из БД заголовки новостей/статей и выводит их в виде ссылок на полную версию новости.<br />
<img src="http://www.zaisl.info/wp-content/uploads/raznoe/123.png" alt="" /></p>
<p><strong>Примерно в 182 строке файла mod_latestnews.php находим следующую строчку:</strong></p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span> <span class="kw3">href</span>=<span class="st0">&quot;&lt;?php echo $link; ?&gt;</span>&quot; class=&quot;latestnews<span class="sc2">&lt;?php echo $moduleclass_sfx; ?&gt;</span>&quot;&gt;<span class="sc2">&lt;?php echo $row-&gt;</span>title; ?&gt;<span class="sc2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p>Это и есть тот самый заголовок новости. <strong>Добавляем к тэгу <a> аттрибут rel=&#8221;boxed&#8221;.</strong> Получаем:<br />
<strong></p>
<div class="codecolorer-container html" style="height:35px;"><div class="codecolorer" style="font-family: monospace;"><ol><li class="li1"><div class="de1"><span class="sc2"><span class="kw2">&lt;a</span>&nbsp; <span class="kw3">href</span>=<span class="st0">&quot;&lt;?php echo $link; ?&gt;</span>&quot; rel=&quot;boxed&quot; class=&quot;latestnews<span class="sc2">&lt;?php echo $moduleclass_sfx; ? &gt;</span>&quot;&gt;<span class="sc2">&lt;?php echo $row-&gt;</span>title; ?&gt;<span class="sc2">&lt;/a&gt;</span></span></div></li></ol></div></div>
<p></strong></p>
<p><strong>Чуть выше находим:</strong><br />
	$link = sefRelToAbs( &#8216;index.php?option=com_content&amp;task=view&amp;id=&#8217;. $row->id . $Itemid );<br />
и меняем <strong>&#8220;index.php&#8221; </strong>на <strong>&#8220;index2.php&#8221;</strong>.</p>
<p><strong>Готово.</strong></p>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/ajax-zagruzka-polnojj-versii-novosti-vo-vsplyvayushhem-okne/","AJAX-загрузка полной версии новости во всплывающем окне")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/311007924" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/ajax-zagruzka-polnojj-versii-novosti-vo-vsplyvayushhem-okne/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Fajax-zagruzka-polnojj-versii-novosti-vo-vsplyvayushhem-okne%2F</feedburner:awareness></item>
		<item>
		<title>Mootools 1.2 увидел свет</title>
		<link>http://www.zaisl.info/2008/06/mootools-12-uvidel-svet/</link>
		<comments>http://www.zaisl.info/2008/06/mootools-12-uvidel-svet/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 17:11:30 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Новости]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=15</guid>
		<description><![CDATA[
Разработчики популярной AJAX-библиотеки MooTools объявили о релизе новой версии  - MooTools 1.2.
Вместе с фреймворком обновился и сам сайт www.mootools.net - теперь преобладающими стали светлые тона.  Поздравляю всех почитателей этого, несомненно, достойного творения со знаменательным событием). Всем немедленно тестить.
okbm("http://www.zaisl.info/2008/06/mootools-12-uvidel-svet/","Mootools 1.2 увидел свет") fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; 
]]></description>
			<content:encoded><![CDATA[<p><img class="attachment wp-att-16 alignleft" src="http://www.zaisl.info/wp-content/uploads/2008/06/mootools.jpg" alt="mootools" width="388" height="210" /></p>
<p>Разработчики популярной AJAX-библиотеки <a href="http://www.mootools.net/" target="_blank">MooTools</a> объявили о релизе новой версии  - MooTools 1.2.</p>
<p>Вместе с фреймворком обновился и сам сайт <a href="http://www.mootools.net/" target="_blank">www.mootools.net</a> - теперь преобладающими стали светлые тона.  Поздравляю всех почитателей этого, несомненно, достойного творения со знаменательным событием). Всем немедленно тестить.</p>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/mootools-12-uvidel-svet/","Mootools 1.2 увидел свет")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/311007925" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/mootools-12-uvidel-svet/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Fmootools-12-uvidel-svet%2F</feedburner:awareness></item>
		<item>
		<title>Инструменты web-разработчика. Введение.</title>
		<link>http://www.zaisl.info/2008/06/webdev-1/</link>
		<comments>http://www.zaisl.info/2008/06/webdev-1/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 14:13:49 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Инструментарий web-разработчика]]></category>

		<category><![CDATA[web-разработка]]></category>

		<category><![CDATA[инструментарий]]></category>

		<guid isPermaLink="false">http://zaisl.info/?p=5</guid>
		<description><![CDATA[Данной заметкой я начинаю цикл публикаций, посвященных инструментам, применяемым различными категориями web-разработчиков в их профессиональной деятельности. Многие из упоминаемых программ, конечно же, достойны более подробного описания и изучения, что мы, по возможности, и будем делать.
Итак, начнемс.
1. Персональный органайзер.
Очень полезная программа, в случае, конечно, если разработчик ценит свое время и желает увеличить производительность труда. Лично мне [...]]]></description>
			<content:encoded><![CDATA[<p>Данной заметкой я начинаю цикл публикаций, посвященных инструментам, применяемым различными категориями web-разработчиков в их профессиональной деятельности. Многие из упоминаемых программ, конечно же, достойны более подробного описания и изучения, что мы, по возможности, и будем делать.<br />
Итак, начнемс.<span id="more-5"></span></p>
<p><strong>1. Персональный органайзер.</strong></p>
<p>Очень полезная программа, в случае, конечно, если разработчик ценит свое время и желает увеличить производительность труда. Лично мне органайзер помогает систематизировать информацию по проектам: хранить технические задания, брифы, контактные данные, а также документировать какие-либо решения, применяемые при разработке (описания структуры, фрагменты кода, хаки и т.д.). Все вышеперечисленное в значительной мере способствует наработке собственной Базы Знаний и помогает оптимизировать процесс разработки последующих проектов.</p>
<p>Моим настольным органайзером является <a href="http://www.tgslabs.com/ru/winorganizer/" target="_blank">WinOrganizer</a> от компании <a href="http://www.tgslabs.com/" target="_blank">The Golden Section Labs</a>.</p>
<p>Ознакомиться с основными возможностями программы Вы можете на <a href="http://www.tgslabs.com/" target="_blank">официальном сайте</a>.  От себя добавлю: функциональный, удобный, ничего лишнего. В доказательство прикладываю скриншот.</p>
<p style="text-align: center;"><a title="WinOrganizer" href="http://zaisl.info/wp-content/uploads/2008/06/11.jpg" target="_blank"><img class="attachment wp-att-7 centered" src="http://zaisl.info/wp-content/uploads/2008/06/11.thumbnail.jpg" alt="WinOrganizer" width="300" height="190" /></a></p>
<p><strong>2. Программа для «захвата» цвета определенной области.</strong></p>
<p>Незаменимая в хозяйстве вещь. Особенно острую необходимость в подобном ПО испытывают верстальщики, далее я приведу пару примеров использования этого мега-инструмента. Очень удобной утилитой является <a href="http://www.tigercolor.com/ColorImpact.asp" target="_blank">ColorImpact</a>. Весит мало, делает много. В зависимости от пожеланий пользователя, может выхватывать цвет из области или попиксельно, заботливо конвертируя оттенок в HEX. Остается только скопировать значение из окошка и использовать его по назначению.<br />
<strong>Примеры использования.</strong></p>
<p><strong>1. Корректировка цветовых значений элементов веб-страницы.</strong></p>
<p>В процессе создания шаблона под Joomla приходится настраивать цвета огромного количества элементов: одним из способов, конечно, является захват цвета непосредственно из PhotoShop, в случае, если у нас под рукой есть «разобранный» psd-макет. Но этот способ достаточно неудобен тем, что требует значительных затрат времени. Гораздо удобнее «доводить» шаблон по jpg-версии, открытой в каком-нибудь просмотрщике, периодически захватывая цвета «пипеткой» ColorImpact-а.</p>
<p><strong>2. Поиск элементов по HEX-формуле.</strong></p>
<p>Например, нам стало очень интересно, в каком месте CSS-файла прописался какой-либо элемент.</p>
<p>Чтобы удовлетворить свое любопытство,  мы можем «захватить» цвет элемента и осуществить поиск по стилям.<br />
Внешний вид приложения:</p>
<p style="text-align: center;"><a title="ColorImpact" href="http://zaisl.info/wp-content/uploads/2008/06/2.jpg" target="_blank"><img class="attachment wp-att-8 centered" src="http://zaisl.info/wp-content/uploads/2008/06/2.thumbnail.jpg" alt="ColorImpact" width="400" height="277" /></a></p>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/webdev-1/","Инструменты web-разработчика. Введение.")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/311007926" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/webdev-1/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Fwebdev-1%2F</feedburner:awareness></item>
		<item>
		<title>Сайт компании “Эко1″</title>
		<link>http://www.zaisl.info/2008/06/sajjt-kompanii-ehko1/</link>
		<comments>http://www.zaisl.info/2008/06/sajjt-kompanii-ehko1/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 15:17:25 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Портфолио]]></category>

		<category><![CDATA[VirtueMart]]></category>

		<category><![CDATA[дизайн]]></category>

		<category><![CDATA[интернет-магазин]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=11</guid>
		<description><![CDATA[


Перечень основных проделанных работ:
1. Разработка дизайна
2. Создание шаблона
3. Разработка модуля для VirtueMart - весь ассортимент отображается на главной странице в разворачивающихся областях.
4. Реализована возможность получения скидки путем прохождения опроса ).
5. Реализация возможности присвоения товарам признаков &#8220;Новинка&#8221;, &#8220;Спецпредложение&#8221;
6. Возможность отметки &#8220;доставка&#8221; и возможность задавать срок гарантии
7. Реализация возможности вывода описания категории на странице товара
8. Реализация возможности [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a class="alignleft" title="Эко1" href="http://www.zaisl.info/wp-content/uploads/2008/06/untitled-2.jpg" target="_blank"><img class="attachment wp-att-12 alignleft" src="http://www.zaisl.info/wp-content/uploads/2008/06/untitled-2.thumbnail.jpg" alt="Эко1" width="322" height="400" /></a>
</p>
<p><span id="more-11"></span></p>
<p style="text-align: left;"><strong>Перечень основных проделанных работ:</strong><br />
1. Разработка дизайна<br />
2. Создание шаблона<br />
3. Разработка модуля для VirtueMart - весь ассортимент отображается на главной странице в разворачивающихся областях.<br />
4. Реализована возможность получения скидки путем прохождения опроса ).<br />
5. Реализация возможности присвоения товарам признаков &#8220;Новинка&#8221;, &#8220;Спецпредложение&#8221;<br />
6. Возможность отметки &#8220;доставка&#8221; и возможность задавать срок гарантии<br />
7. Реализация возможности вывода описания категории на странице товара<br />
8. Реализация возможности отображения дополнительных изображений товаров превьюшками, а не ссылкой &#8220;Больше изображений&#8221;<br />
9. Вывод новости во всплывающем окне, с AJAX-подгрузкой текста</p>
<p style="text-align: left;">Ну и мелочи всяческие. <a href="http://www.eko1.ru" target="_blank">Посмотреть сайт</a>.</p>
<div><script type="text/javascript" src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script type="text/javascript">okbm("http://www.zaisl.info/2008/06/sajjt-kompanii-ehko1/","Сайт компании &amp;#8220;Эко1&amp;#8243;")</script></div><script type="text/javascript"> fmates_member="FMC002590-01227"; fmates_c="999999"; fmates_bc="ffffff"; fmates_fc="555555"; fmates_ac="003366"; </script>
<script type="text/javascript" src="http://fmates.ru/announce.js"></script><img src="http://feeds.feedburner.com/~r/zaisl/~4/311007927" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.zaisl.info/2008/06/sajjt-kompanii-ehko1/feed/</wfw:commentRss>
		<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetItemData?uri=zaisl&amp;itemurl=http%3A%2F%2Fwww.zaisl.info%2F2008%2F06%2Fsajjt-kompanii-ehko1%2F</feedburner:awareness></item>
		<item>
		<title>Сайт компании “Премьер”</title>
		<link>http://www.zaisl.info/2008/06/sajjt-kompanii-premer/</link>
		<comments>http://www.zaisl.info/2008/06/sajjt-kompanii-premer/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 15:55:28 +0000</pubDate>
		<dc:creator>ZaiSL</dc:creator>
		
		<category><![CDATA[Портфолио]]></category>

		<category><![CDATA[VirtueMart]]></category>

		<category><![CDATA[дизайн]]></category>

		<category><![CDATA[интернет-магазин]]></category>

		<guid isPermaLink="false">http://www.zaisl.info/?p=13</guid>
		<description><![CDATA[

 Перечень работ:
- разработка дизайна;
- создание шаблона для Joomla CMS;
- установка и настройка Joomla CMS;
- значительная доработка компонента Virtuemart (добавлены возможности: переключение типов отображения, выбор количества отображаемых товаров, настраиваемые фильтры, графическая интерпретация количества товара на складе, аякс-добавление товара в корзину, сравнение товаров, заказ без регистрации, переработана форма заказа и форматы email-оповещений);
- написание модуля &#8220;Спецпредложения&#8221;;
- переработка [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Премьер" target="_blank" href="http://www.zaisl.info/wp-content/uploads/2008/06/banner.jpg"><img class="attachment wp-att-14" src="http://www.zaisl.info/wp-content/uploads/2008/06/banner.thumbnail.jpg" alt="Премьер" width="357" height="400" /></a><br />
<span id="more-13"></span><br />
<strong> Перечень работ:</strong><br />
- разработка дизайна;<br />
- создание шаблона для Joomla CMS;<br />
- установка и настройка Joomla CMS;<br />
- значительная доработка компонента Virtuemart (добавлены возможности: переключение типов отображения, выбор количества отображаемых товаров, настраиваемые фильтры, графическая интерпретация количества товара на складе, аякс-добавление товара в корзину, сравнение товаров, заказ без регистрации, переработана форма заказа и форматы email-оповещений);<br />
- написание модуля &#8220;Спецпредложения