<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AJAX Planet &#187; script.aculo.us</title>
	<atom:link href="http://www.ajaxplanet.ru/tag/scriptaculous/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxplanet.ru</link>
	<description></description>
	<lastBuildDate>Thu, 13 Oct 2011 13:00:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>It&#8217;s time to make things Ajax или Ajax используя symfony</title>
		<link>http://www.ajaxplanet.ru/its-time-to-make-things-ajax-ili-ajax-ispolzuya-symfony/</link>
		<comments>http://www.ajaxplanet.ru/its-time-to-make-things-ajax-ili-ajax-ispolzuya-symfony/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 06:00:22 +0000</pubDate>
		<dc:creator>TermiT</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[script.aculo.us]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[перевод]]></category>
		<category><![CDATA[фреймворк]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/its-time-to-make-things-ajax-ili-ajax-ispolzuya-symfony/</guid>
		<description><![CDATA[Symfony Symfony – это мощный опен-сорсный PHP фреймворк. На сайте проекта можно найти множество статей (перевод одной, вы сейчас читаете), видео-примеры, обширную документацию и достаточно объемную книгу, доступную on-line. Одна особенность статьи, что пример разработки, ведется на unix-like системе, думаю, это никого не испугает, а наоборот привлечет внимание. Обзор В symfony есть Ajax хелпер, который [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Symfony</strong><br />
<noindex><a href="http://www.symfony-project.com/">Symfony</a></noindex> – это мощный опен-сорсный PHP фреймворк. На сайте проекта можно найти множество статей (перевод одной, вы сейчас читаете), видео-примеры, обширную документацию и достаточно объемную книгу, доступную on-line. Одна особенность статьи, что пример разработки, ведется на unix-like системе, думаю, это никого не испугает, а наоборот привлечет внимание.</p>
<p><strong>Обзор</strong><br />
В symfony есть Ajax хелпер, который позволяет очень быстро и просто создавать продуманные пользовательские интерфейсы. Это руководство покажет, как шаг за шагом создать Ajax-powered приложение, используя symfony, всего за 10 минут. </p>
<p><strong>Вступление</strong><br />
Для лентяев, которых утомляет чтение, есть <noindex><a href="http://downloads.symfony-project.com/demo/cart/cart.mov">видео-пример</a></noindex>, который показывает ниже изложенные действия. </p>
<p>Добавление позиции в корзину покупок в электронной торговли не очень близка к фактическому добавлению в корзину, поскольку требуется нажать на ссылку &#8220;добавить в корзину&#8221;, просмотреть открывшуюся страницу (“корзина”), а после вернуться на страницу с товаром.</p>
<p>Ajax позволяет приблизить метафорическое добавление товара в корзину в Интернет магазине к фактическому (как например вы это делаете в супермаркете). Подобный эффект достигается добавлением drag&amp;drop возможности и моментальной перерисовки вышей корзины.</p>
<p>Описываемы в статье пример является портом <noindex><a href="http://script.aculo.us/demos/shop">примера корзины</a></noindex> на сайте <noindex><a href="http://script.aculo.us/">script.aculo.us</a></noindex>. В примере используется JavaScript фреймворк <noindex><a href="http://prototype.conio.net/">prototype</a></noindex> (который входит в состав symfony) и несколько скриптов из библиотеки  <noindex><a href="http://script.aculo.us/">script.aculo.us</a></noindex>, которые входят в состав JavaScript хелпера.</p>
<p><strong>Настройка</strong><br />
Для начала, создайте проект <em>sfdemo</em>, приложение <em>app</em> и модуль <em>card</em>:</p>
<p><code>$ cd /home/steve<br />
$ mkdir sfdemo<br />
$ cd sfdemo<br />
$ symfony init-project sfdemo<br />
$ symfony init-app app<br />
$ symfony init-module app cart</code></p>
<p>Настройте ваш веб-сервер, чтобы был доступ к вашему новому приложению (неважно как вы этого добьётесь используя виртуальный хост или alias’ы (в unix-like системах с помощью этой команды создается псевдоним какого-либо скрипта или приложения), как описано в главе <noindex><a href="http://www.symfony-project.com/content/book/page/web_server.html">настройки веб-сервера</a></noindex> в документации). Давайте предположим, что модуль <em>card</em> доступен отсюда:</p>
<p><code><noindex><a href="http://localhost/cart/">http://localhost/cart/</a></noindex></code></p>
<p>Ваше приложение должно иметь доступ к symfony JavaScript библиотекам. Если приложение не работает, проверти доступ к библиотекам через браузер (зайдите на http://localhost/sf/js/prototype.js, например). Если страница не загрузилась, есть три способа решения этой проблемы: </p>
<li>настроить Apache используя следующий alias:
<p><code>Alias /sf /$data_dir/symfony/web/sf</code></li>
<li>сделать символическую ссылку <em>sf</em>  в вашем веб-катологе
<p><code>$ cd /home/steve/sfdemo/web<br />
$ ln -sf /$data_dir/symfony/web/sf sf</code></li>
<li>скопировать JavaScript файлы в
<p><code>$ cd /home/steve/sfdemo/web<br />
$ mkdir -p sf/js<br />
$ cp /$data_dir/symfony/web/sf/js/*.js sf/js/</code></li>
<p><strong>Главная страница</strong><br />
Сначала нужно создать список продуктов, выставленных на продажу. Доступ к этому списку будет осуществляться через метод <em>getProducts()</em> action класса <em>card</em>. Корзина будет является полем объекта <em>sfUser</em>, устанавливаемый через <noindex><a href="http://www.symfony-project.com/content/book/page/parameter_holder.html">Attribute parameter holder</a></noindex>. Измените <em>sfdemo/app/modules/cart/actions/actions.class.php на:</em></p>
<p><code lang="php"><br />
class cartActions extends sfActions<br />
  {<br />
  public function executeIndex()<br />
  {<br />
  $this->getUser()->setAttribute('cart', array());<br />
  $this->products = $this->getProducts();<br />
  }<br />
  private function getProducts()<br />
  {<br />
  return array('iPod black', 'iMac', 'iMac RC', 'iPod');<br />
  }<br />
  }<br />
</code></p>
<p>Главная страница модуля <em>card</em> будет содержать список товаров и место, куда они будут перетаскиваться (drop zone). Это место и будет корзиной. Итак, откройте шаблон <em>sfdemo/app/modules/cart/templates/indexSuccess.php</em> и впишите туда следующие:</p>
<p><code lang="php"><br />
<h1>symfony Apple store demo</h1>
<div id="shopping_cart">
<h2>Products:</h2>
<div id="product_list">
< ?php foreach($products as $id => $title): ?><br />
< ?php echo image_tag(’product’.$id, array(<br />
‘id’    => ‘product_’.$id,<br />
‘class’ => ‘products’<br />
)) ?><br />
< ?php endforeach ?>
</div>
<h2>Cart:</h2>
<div id="cart" class="cart">
</div>
</div>
<p></code></p>
<p>Теперь товары будут отображаться в виде картинок. Эти картинки можно скачать в этом архиве, их следует положить в <em>sfdemo/web/images/</em>. Часть стилей уже сделаны, так что стоит их просто забрать <noindex><a href="http://www.symfony-project.com/downloads/demo/cart/cart.css">отсюда</a></noindex>, и положить в <em>sfdemo/web/css/</em> также нужно добавить файл <em>view.yml</em> в <em>sfdemo/app/modules/cart/config/</em>  со следующим содержанием:</p>
<p><code>all:<br />
  stylesheets:  [cart]</code></p>
<p>(Обратитесь к <noindex><a href="http://www.symfony-project.com/book/trunk/07-Inside-the-View-Layer">документации</a></noindex>, если вас смущают *.yml)</p>
<p>Смотрим результат:</p>
<p><code><noindex><a href="http://localhost/cart/">http://localhost/cart/</a></noindex></code></p>
<p><strong>Фокусируемся на корзине.</strong><br />
Содержание корзины будет меняться, как только вы перенесете туда товар. Это значит что содержание корзины будет вынесено в отдельный файл шаблона. Для этого используем хелпер <em>include_partial()</em>. Товары в корзине будут «сохраняться» в div’ы со стилем <em>float:left</em>, а дальше после корзины нужно не забыть добавить стиль <em>clear:both</em>. (для тех, кто не понял зачем это смотрим <noindex><a href="http://www.w3.org/TR/REC-CSS2/visuren.html#flow-control">спецификации</a></noindex>) Измените конец шаблона <em>indexSuccess.php</em> на:</p>
<p><code lang="php"><br />
<h2>Cart:</h2>
<div id="cart" class="cart">
<div id="items">
      < ?php include_partial(’cart’) ?>
    </div>
<div style="clear:both"></div>
</p></div>
<p></code></p>
<p>Хелпер <em>include_partial()</em> заинклудит файл <em>sfdemo/app/modules/cart/templates/_cart.php</em>, который должен содержать следующее:</p>
<p><code lang="php">< ?php foreach($sf_user->getAttribute(’cart’) as $product_id => $quantity): ?></p>
<div>
  < ?php for($i = 1; $i <= $quantity; $i++): ?><br />
    < ?php echo image_tag(’product’.$product_id, array(<br />
      ‘class’ => ‘cart-items’,<br />
      ‘id’    => ‘item_’.$product_id.’_’.$i,<br />
      ’style’ => ‘position:relative’<br />
    )) ?><br />
  < ?php endfor ?><br />
  (< ?php echo $quantity ?> < ?php echo $products[$product_id] ?>)
</div>
<p>< ?php endforeach ?></p>
<p>< ?php if (!$sf_user->getAttribute(’cart’)): ?><br />
  nothing yet in your shopping cart.<br />
< ?php endif ?> </code></p>
<p>Если в корзине есть товар, то он отображается в виде картинок столько раз, сколько он туда добавлен. После группы товаров будет отображаться счетчик (переменная <em>$quantity</em>).<br />
Можно опять посмотреть на нашу корзину:</p>
<p><code><noindex><a href="http://localhost/cart/">http://localhost/cart/</a></noindex></code></p>
<p>На самом деле изменений не много, выглядит по-прежнему пусто… Настало время AJAX’a. (в оригинале <strong>«It&#8217;s time to make things AJAX»</strong>.)</p>
<p><strong>Добавляем JavaScript’овые события.</strong><br />
Добавьте в <em>indexSuccess.php</em> загрузку JavaScript хелпера:</p>
<p><code lang="php">< ?php use_helper(’Javascript’) ?></code></p>
<p>Теперь нужно сделать картинки перетаскиваемыми (draggable), для этого нужно добавить вызов <em>draggable_element</em>:</p>
<p><code lang="php">< ?php foreach($products as $id => $title): ?><br />
  < ?php echo image_tag(’product’.$id, array(<br />
    ‘id’    => ‘product_’.$id,<br />
    ‘class’ => ‘products’<br />
  )) ?><br />
  < ?php echo draggable_element(’product_’.$id, array(’revert’ => true)) ?><br />
< ?php endforeach ?></code></p>
<p>Этим мы добавим ко всем картинкам возможность перетаскивания. Опция <em>revert</em> добавляет возврат картинки на старую позицию, как только ее отпустят. </p>
<p>Теперь нужно определить, что будет происходить, как только пользователь бросит (перетащит) иконку товара в нашу корзину. Для этого укажем, какая часть шаблона должна обновится, какой action за это событие будет отвечать, и какие из перетаскиваемых элементов можно будет перетащить в корзину. Воспользуйтесь <em>drop_receiving_elements</em> хелпером для этого:</p>
<p><code lang="php">< ?php echo drop_receiving_element(’cart’, array(<br />
  ‘update’     => ‘items’,<br />
  ‘url’        => ‘cart/add’,<br />
  ‘accept’     => ‘products’,<br />
)) ?></code></p>
<p>Снова можно проверить результат, попробуйте перетащить иконку товара в корзину, должно работать. Как только иконка перетаскивается в корзину, XMLHTTPRequest отправляет запрос <em>add</em> action’у, и результат отображается в div’е <em>items</em>. Только дело в том, что action <em>add</em> модуля <em>card</em> мы еще не создали…</p>
<p><strong>Создаем action обновления.</strong><br />
Добавьте add action в <em>sfdemo/app/modules/cart/actions/actions.class.php</em>:</p>
<p><code lang="php">public function executeAdd()<br />
{<br />
  $tmp = split('_', $this->getRequestParameter(’id’, ”));<br />
  $product_id = $tmp[1];</p>
<p>  $cart = $this->getUser()->getAttribute(’cart’);<br />
  if (!isset($cart[$product_id]))<br />
  {<br />
    $cart[$product_id] = 1;<br />
  }<br />
  else<br />
  {<br />
    ++$cart[$product_id];<br />
  }<br />
  $this->getUser()->setAttribute(’cart’, $cart);<br />
  $this->products = $this->getProducts();<br />
}</code></p>
<p>Action разбирает присланные параметры (id товара) и добавляет этот товар в корзину. </p>
<p>Результатом работы action’а add будет шаблон addSuccess.php. Здесь простой инклуд (используя  include_partial) _cart.php, только в этот раз необходимо передавать список товаров в параметрах:</p>
<p><code lang="php">< ?php include_partial(’cart’, array(’products’ => $products)) ?></code></p>
<p>Шаблон не должен использовать глобальное расположение, чтобы изменить это отредактируйте <em>sfdemo/app/modules/cart/config/view.yml</em>, вписав следующие: </p>
<p><code>addSuccess:<br />
  has_layout:   off</p>
<p>all:<br />
  has_layout:   on<br />
  stylesheets:  [cart]</code></p>
<p>Посмотрите результат: теперь элементы должны добавляться в корзину без проблем.</p>
<p><strong>Фокусируемся на юзабилити.</strong><br />
Можно остановиться на этом, но есть один большой недостаток: пока корзина обновляется, интерфейс не меняется и это может смутить пользователя. Выход из этой ситуации – добавление индикатора, который показывает, что запрос в процессе обработки. И еще, пользователь может не понять, что перетаскиваемые элементы будут приняты «корзиной», поэтому стоит добавить стиль <em>hover</em> к слою <em>cart</em>.</p>
<p>Отредактируйте шаблон <em>indexSuccess.php</em>:</p>
<p><code lang="php">
<div style="height:20px">
<p id="indicator" style="display:none">
< ?php echo image_tag(’indicator.gif’) ?> updating cart…
</p>
</div>
<p></code></p>
<p> Сохраните <noindex><a href="http://www.symfony-project.com/downloads/demo/cart/indicator.gif">картинку</a></noindex> в файл <em>sfdemo/web/images/indicator.gif </em></p>
<p>Теперь, нужно изменить в этом же шаблоне вызов хелпера <em>drop_receiving_element()</em>: добавить отображение индикатора и <em>hover</em> стиль:</p>
<p><code lang="php">< ?php echo drop_receiving_element(’cart’, array(<br />
  ‘update’     => ‘items’,<br />
  ‘url’        => ‘cart/add’,<br />
  ‘accept’     => ‘products’,<br />
  ’script’     => ‘true’,<br />
  ‘hoverclass’ => ‘cart-active’,<br />
  ‘loading’    => "Element.show(’indicator’)",<br />
  ‘complete’   => "Element.hide(’indicator’)"<br />
)) ?></code></p>
<p><strong>Заключение.</strong><br />
Полный код статьи можно скачать <noindex><a href="http://www.symfony-project.com/downloads/demo/cart/project.tgz">отсюда</a></noindex>, также доступен рабочий <noindex><a href="http://www.symfony-project.com/demo/cart.html">пример он-лайн</a></noindex>. </p>
<p>Пока полная документация по JavaScript хелперу не дописана, можно воспользоваться <noindex><a href="http://wiki.script.aculo.us/scriptaculous/list?category=Controls">документацией script.aculo.us</a></noindex>.</p>
<p><noindex><a href="http://www.symfony-project.com/tutorial/symfony_ajax.html">Оригинальная статья.</a></noindex></p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2007. |
	  <a href="http://www.ajaxplanet.ru/its-time-to-make-things-ajax-ili-ajax-ispolzuya-symfony/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/its-time-to-make-things-ajax-ili-ajax-ispolzuya-symfony/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/its-time-to-make-things-ajax-ili-ajax-ispolzuya-symfony/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://downloads.symfony-project.com/demo/cart/cart.mov" length="15190805" type="video/quicktime" />
		</item>
		<item>
		<title>Выпущен Script.aculo.us 1.6.4</title>
		<link>http://www.ajaxplanet.ru/vyipuschen-scriptaculous-164/</link>
		<comments>http://www.ajaxplanet.ru/vyipuschen-scriptaculous-164/#comments</comments>
		<pubDate>Wed, 06 Sep 2006 13:41:46 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Библиотеки и фреймворки]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[script.aculo.us]]></category>
		<category><![CDATA[фреймворк]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/vyipuschen-scriptaculous-164/</guid>
		<description><![CDATA[В последнее время Prototype и script.aculo.us обновляются с удивительной скоростью. Но этот релиз мы отметим. Среди множества обновлений изменена базовая версия Prototype до V1.5.0_rc1. Целиком список изменений занимает 3 экрана. &#169; AJAX Planet, 2006. &#124; Постоянная ссылка &#124; Комментарии Интересна эта тема? Посмотрите архив сообщений по теме AJAX, Библиотеки и фреймворки.]]></description>
			<content:encoded><![CDATA[<p>В последнее время Prototype и <noindex><a href="http://script.aculo.us/downloads">script.aculo.us</a></noindex> обновляются с удивительной скоростью. Но этот релиз мы отметим. Среди множества обновлений изменена базовая версия Prototype до V1.5.0_rc1. Целиком список изменений занимает 3 экрана.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/vyipuschen-scriptaculous-164/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/vyipuschen-scriptaculous-164/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/libraries-and-frameworks/" title="Просмотреть все записи в рубрике &laquo;Библиотеки и фреймворки&raquo;" rel="category tag">Библиотеки и фреймворки</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/vyipuschen-scriptaculous-164/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обновление Ruby on Rails</title>
		<link>http://www.ajaxplanet.ru/obnovlenie-ruby-on-rails/</link>
		<comments>http://www.ajaxplanet.ru/obnovlenie-ruby-on-rails/#comments</comments>
		<pubDate>Tue, 28 Mar 2006 13:51:16 +0000</pubDate>
		<dc:creator>Boris Bogdanov</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Технологии]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[script.aculo.us]]></category>
		<category><![CDATA[фреймворк]]></category>

		<guid isPermaLink="false">http://www.ajaxplanet.ru/obnovlenie-ruby-on-rails/</guid>
		<description><![CDATA[Вышела новая версия Rails. Как пишут разрабочики, это &#8220;величайшее обновление в истории Rails&#8221;. В Rails 1.1 внесено более 500 исправлений, дополнений и обновлений, поступивших более чем из 100 источников. Особый акцент сдеалан, что вполне естественно и ожидаемо, на Ajax и веб-службах. RJS: Ajax has never been easier Скачать Ruby on Rails 1.1 Официальный пресс-релиз с [...]]]></description>
			<content:encoded><![CDATA[<p>Вышела новая версия Rails.  Как пишут  разрабочики, это &#8220;величайшее обновление в истории Rails&#8221;.  В  Rails 1.1 внесено более 500  исправлений, дополнений и обновлений, поступивших более чем из 100 источников.</p>
<p>Особый акцент сдеалан, что вполне естественно и ожидаемо, на Ajax и веб-службах.</p>
<blockquote><p>RJS: Ajax has never been easier</p></blockquote>
<p><img alt="Rails 1.1" id="image83" src="http://www.ajaxplanet.ru/wp-content/uploads/2006/04/rails11.jpg" /></p>
<p><a class="no_link_hover" href="http://www.rubyonrails.org/down"><img width="144" height="153" alt="Download" src="http://www.rubyonrails.org/images/slivers/download.gif" /></a></noindex></p>
<p><a title="Download Скачать последнюю версию Ruby on Rails 1.1" href="http://www.rubyonrails.org/down"> </a></noindex><a title="Download Скачать последнюю версию Ruby on Rails 1.1" href="http://www.rubyonrails.org/">Скачать Ruby on Rails 1.1</a></noindex></p>
<p><noindex><a href="http://weblog.rubyonrails.com/articles/2006/03/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things">Официальный пресс-релиз с подробной информацией об апдейте</a></noindex>.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<p>&copy; <a href="http://www.ajaxplanet.ru">AJAX Planet</a>, 2006. |
	  <a href="http://www.ajaxplanet.ru/obnovlenie-ruby-on-rails/">Постоянная ссылка</a> |
	  <a href="http://www.ajaxplanet.ru/obnovlenie-ruby-on-rails/#comments">Комментарии</a></p>
	
	<p>Интересна эта тема? Посмотрите архив сообщений по теме <a href="http://www.ajaxplanet.ru/category/ajax/" title="Просмотреть все записи в рубрике &laquo;AJAX&raquo;" rel="category tag">AJAX</a>, <a href="http://www.ajaxplanet.ru/category/ruby-on-rails/" title="Просмотреть все записи в рубрике &laquo;Ruby on Rails&raquo;" rel="category tag">Ruby on Rails</a>, <a href="http://www.ajaxplanet.ru/category/technology/" title="Просмотреть все записи в рубрике &laquo;Технологии&raquo;" rel="category tag">Технологии</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ajaxplanet.ru/obnovlenie-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
