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

<channel>
	<title>Блог Вована &#187; Разработка</title>
	<atom:link href="http://blog.vovana.com/cat/dev-god/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vovana.com</link>
	<description></description>
	<lastBuildDate>Mon, 22 Nov 2010 10:31:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Бекап всех баз mysql, shell скрипт</title>
		<link>http://blog.vovana.com/telezka-s/bekap-vsex-baz-mysql-shell-skript/</link>
		<comments>http://blog.vovana.com/telezka-s/bekap-vsex-baz-mysql-shell-skript/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 08:58:44 +0000</pubDate>
		<dc:creator>vovan</dc:creator>
				<category><![CDATA[Дележка опытом]]></category>
		<category><![CDATA[Разработка]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[бекап]]></category>

		<guid isPermaLink="false">http://blog.vovana.com/?p=156</guid>
		<description><![CDATA[Накатал мего скрипт из двух строк для бекапа всех баз данных сервера в архив. Скрипт нужно ложить под cron, но можно и в ручную запускать. #!/bin/bash find /var/db/backup/ -mtime +15 -exec rm {} \; mysqldump -u USER -pPASSWORD &#8211;all-databases &#124; gzip -9 &#62; /var/db/backup/$(date &#8216;+%F-%H-%M-%S&#8217;).sql.gz Все бекапы хранятся в /var/db/backup/. Первым делом скрипт удаляет все [...]]]></description>
			<content:encoded><![CDATA[<p>Накатал мего скрипт из двух строк для бекапа всех баз данных сервера в архив. Скрипт нужно ложить под cron, но можно и в ручную запускать.</p>
<p>#!/bin/bash</p>
<p>find /var/db/backup/ -mtime +15 -exec rm {} \;<br />
mysqldump -u USER -pPASSWORD &#8211;all-databases | gzip -9 &gt; /var/db/backup/$(date &#8216;+%F-%H-%M-%S&#8217;).sql.gz</p>
<p>Все бекапы хранятся в /var/db/backup/.<br />
Первым делом скрипт удаляет все бекапы старее 15 дней (+15 в скрипте, можно поменять на своё).<br />
Ну и следующей строкой делает дамп всех баз и сразу архивирует и сохраняет в файл с именем &#8211; текущей датой.</p>
<p>Ну и, естественно, нужны права рута для всего этого.</p>
<p>Можно <a href="http://blog.vovana.com/wp-content/uploads/2009/12/dbackup.sh">скачать</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vovana.com/telezka-s/bekap-vsex-baz-mysql-shell-skript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Загрузка произвольного количества файлов на сервер</title>
		<link>http://blog.vovana.com/telezka-s/zagruzka-proizvolnogo-kolichesva-fajlov-na-server/</link>
		<comments>http://blog.vovana.com/telezka-s/zagruzka-proizvolnogo-kolichesva-fajlov-na-server/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 12:05:48 +0000</pubDate>
		<dc:creator>vovan</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Дележка опытом]]></category>
		<category><![CDATA[Разработка]]></category>
		<category><![CDATA[выбор файлов]]></category>
		<category><![CDATA[загрузка файлов]]></category>
		<category><![CDATA[пхп]]></category>
		<category><![CDATA[разрабока]]></category>
		<category><![CDATA[форма]]></category>

		<guid isPermaLink="false">http://blog.vovana.com/2008/02/06/100</guid>
		<description><![CDATA[Что я подразумеваю под загрузкой произвольного количества: пользователь выбирает сколько угодно файлов, нажимает кнопку &#8220;загрузить&#8221; и файлы загружаются на сервер и обрабатываются. Новые поля для выбора файлов создаются динамически. Шаг 1: Создаём форму &#60;form method=&#8221;POST&#8221; id=&#8221;upform&#8221; name=&#8221;upform&#8221; enctype=&#8221;multipart/form-data&#8221;&#62; &#60;input type=&#8221;file&#8221; size=&#8221;50&#8243; onchange=&#8221;addElement()&#8221; name=&#8221;first&#8221;&#62; &#60;/form&#62; &#60;input type=&#8221;button&#8221; value=&#8221;Загрузить&#8221; onclick=&#8221;upform.submit()&#8221;&#62; На форме у нас всего один элемент [...]]]></description>
			<content:encoded><![CDATA[<p>Что я подразумеваю под загрузкой произвольного количества: пользователь выбирает сколько угодно файлов, нажимает кнопку &#8220;загрузить&#8221; и файлы загружаются на сервер и обрабатываются. Новые поля для выбора файлов создаются динамически.</p>
<p><strong>Шаг 1: Создаём форму</strong></p>
<blockquote><p>&lt;form method=&#8221;POST&#8221; id=&#8221;upform&#8221; name=&#8221;upform&#8221; enctype=&#8221;multipart/form-data&#8221;&gt;<br />
&lt;input type=&#8221;file&#8221; size=&#8221;50&#8243; onchange=&#8221;addElement()&#8221; name=&#8221;first&#8221;&gt;<br />
&lt;/form&gt;</p>
<p>&lt;input type=&#8221;button&#8221; value=&#8221;Загрузить&#8221; onclick=&#8221;upform.submit()&#8221;&gt;</p></blockquote>
<blockquote></blockquote>
<p>На форме у нас всего один элемент для загрузки файлов под именем <em>first</em> и назначено событие на изменение(выбор) файла &#8211; <em>addElement()</em>. Кнопка загрузить стоит отдельно от формы, почему сделано именно так будет объяснено далее.</p>
<p><strong>Шаг 2: Создаем javascript функцию динамического добавления нового поля для файла </strong></p>
<blockquote><p>&lt;script&gt;<br />
function addElement() {<br />
var uf = document.getElementById(&#8216;upform&#8217;);</p>
<p>// Создаём новое поле для выбора файла<br />
var newFile = document.createElement(&#8216;input&#8217;);</p>
<p>var fileIdName = &#8216;myFile&#8217;+Math.random(); //Случайное имя</p>
<p>newFile.setAttribute(&#8216;id&#8217;,fileIdName);<br />
newFile.setAttribute(&#8216;name&#8217;,fileIdName);<br />
newFile.setAttribute(&#8216;type&#8217;,'file&#8217;);<br />
newFile.setAttribute(&#8216;size&#8217;,&#8217;50&#8242;);</p>
<p>// при выборе файла данное поле тоже должно добавлять еще одно поле<br />
newFile.setAttribute(&#8216;onChange&#8217;,'addElement()&#8217;);<br />
newFile.onchange = addElement;</p>
<p>uf.appendChild(newFile); // добавляем поле к форме, поле добавится в конец формы, потому мы ранее<br />
// и вынесли кнопку &#8220;загрузить&#8221; за форму &#8211; логичнее она будет смотреться в конце<br />
}<br />
&lt;/script&gt;</p></blockquote>
<p><strong> Шаг 3: Обработка загруженных файлов на сервере</strong></p>
<p>Для обработки файлов на сервере вставляем следующий код:</p>
<blockquote><p>foreach ($_FILES as $file) {</p>
<p>// здесь стандартная обработка загруженных файлов, примеров в интернете полно<br />
// также здесь можно проверять, например, что это динамически добавлненное поле (у нас оно начинается с &#8220;myFile&#8221;)</p>
<p>}</p></blockquote>
<p>Рабочий пример можно посмотреть <a href="http://blog.vovana.com/scripts/multiselect_for_upload.html" target="_blank">здесь</a> (в примере опущено enctype=&#8221;multipart/form-data&#8221;).</p>
<p>Код написан для админки одного из сайтов фирмы Бош, он не идеален (например если два раза выбрать файл в первом поле, то будет два пустых поля), но это не сложно добавить самим <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Гарантированно работает в <em>Firefox</em>, <em>IE</em>, <em>Opera</em>. Удачного кодинга!</p>
<p><strong>UPDATE:</strong> по просьбе выкладываю серверную часть загрузки файлов<span id="more-100"></span></p>
<p><strong>Шаг 3.1: </strong><strong>Обработка загруженных файлов на сервере (код)</strong></p>
<p>Вот приблизительный код(урезанный), который я использую. Имейте в виду что код используется строго в админке, по этому в паблик доступе с безопасностью могут быть проблемы <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<blockquote><p> $upload_path         = $_SERVER['DOCUMENT_ROOT'].&#8221;/uploads&#8221;;<br />
$valid_types         = array(<br />
&#8220;pdf&#8221;, &#8216;doc&#8217;, &#8216;txt&#8217;, &#8216;jpg&#8217;,'xls&#8217;,'gif&#8217;,'png&#8217;,'zip&#8217;,'rar&#8217;<br />
);<br />
$max_file_size        = &#8220;10000000&#8243;;</p>
<p>if (sizeof($_FILES)&gt;0) {<br />
$errors = array();</p>
<p>foreach ($_FILES as $file) {<br />
if (strlen($file["name"])&lt;=0)<br />
continue;<br />
if (is_uploaded_file($file['tmp_name'])) {<br />
$filename = $file['tmp_name'];<br />
$ext = substr($file['name'], 1 + strrpos($file['name'], &#8220;.&#8221;));<br />
$ext = strtolower($ext);<br />
$name = $file['name'];<br />
if (file_exists($upload_path.$name)) {<br />
$errors[$name] = &#8220;\nТакой файл уже существует&#8221;;<br />
} elseif (filesize($filename) &gt; $max_file_size) {<br />
$errors[$name] = &#8220;\nРазмер файла больше 10 мегабайт&#8221;;<br />
} elseif (!in_array($ext, $valid_types)) {<br />
$errors[$name] = &#8220;\nНе верный тип файла. &#8220;;<br />
} else {<br />
$size =$file['size'];<br />
if (@move_uploaded_file($filename, $upload_path.$name)) {<br />
// Здесь запись в базу, если необходимо<br />
} else {<br />
$errors[$name] = &#8220;\nОшибка перемещения файла. &#8220;;<br />
}</p>
<p>}<br />
} else {<br />
$errors[$name] = &#8220;\nНеобходимо выбрать правильный файл.&#8221;;<br />
}<br />
}<br />
}</p></blockquote>
<p>Небольшие комментарии:</p>
<ul>
<li>в  $errors падают ошибки загрузки файлов</li>
<li>в коде проверяются ТОЛЬКО расширения по списку ($valid_types), но не реальныйтип файла</li>
<li>и да &#8211; 10 мегабайт, не 10000000 байт, я в курсе <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.vovana.com/telezka-s/zagruzka-proizvolnogo-kolichesva-fajlov-na-server/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Накрутка счетчика Feedburner: Попытка №2</title>
		<link>http://blog.vovana.com/telezka-s/nakrutka-schetchika-feedburner-popytka-2/</link>
		<comments>http://blog.vovana.com/telezka-s/nakrutka-schetchika-feedburner-popytka-2/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 10:27:00 +0000</pubDate>
		<dc:creator>vovan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Дележка опытом]]></category>
		<category><![CDATA[Идеи]]></category>
		<category><![CDATA[Разработка]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[накрутка]]></category>
		<category><![CDATA[счетчик]]></category>

		<guid isPermaLink="false">http://blog.vovana.com/2008/01/09/78</guid>
		<description><![CDATA[Не так давно я писал про свой эксперимент по накрутке счетчика Feedburner. Первая попытка провалилась с треском. Я почему-то наивно решил что feedburner можно &#8220;сделать&#8221; в тупую, в лоб. Не тут-то было. Раскрою секрет первой попытки(фактически это не секрет ): я взял список бесплатных анонимных и не анонимных proxy-серверов, и через сокеты, тунелем через прокси [...]]]></description>
			<content:encoded><![CDATA[<p>Не так давно я писал про свой <a href="http://blog.vovana.com/2007/12/19/69" target="_blank">эксперимент по накрутке счетчика Feedburner</a>. Первая попытка провалилась с треском. Я почему-то наивно решил что <strong>feedburner</strong> можно &#8220;сделать&#8221; в тупую, в лоб. Не тут-то было.</p>
<p>Раскрою секрет первой попытки(фактически это не секрет <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ): я взял список бесплатных анонимных и не анонимных proxy-серверов, и через сокеты, тунелем через прокси тянул rss-фиды. Еще один нюанс был там, но до этого вы можете додуматься и сами <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Так вот &#8211; позавчера мной был проведен второй, улучшенный эксперимент. За основу была взята идея <a href="http://blog.vovana.com/2007/12/19/69" target="_blank">первой попытки</a>, но код полностью переписан (начитался в инете статей + свои мысли реализовал).</p>
<p>В качестве &#8220;жертв&#8221; эксперимента были взяты блоги-новички, у которых на счетчике 1-5 подписчиков.</p>
<p>Тянуть резину не буду &#8211; результат нулевой. Точнее на одном из блогов счетчик прыгнул с 2 до 8-ми, но по моим расчетам он должен был подняться до 30-50.</p>
<p>Получается что я пытался &#8220;сделать&#8221; фидбернер, а он вывернулся и сам пристроился сзади <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Есть, конечно, еще идеи (и свои и чужие), но что-то мне подсказывает что через прокси сделать это непросто &#8211; гугл тоже не дурак и в любом случае мониторит бесплатные прокси для своего Adsense и скорее всего система там единая уже с Feedburner и Analytics.</p>
<p>Толи еще будет&#8230;</p>
<p>&#8211;</p>
<p>Между прочим:<span id="more-78"></span></p>
<p>приобрел себе на работу вот такие вот гламурные наушники <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blog.vovana.com/wp-content/uploads/2008/01/naushniki.jpg" title="Меховые наушники A4Tech HS-60"><img src="http://blog.vovana.com/wp-content/uploads/2008/01/naushniki.jpg" alt="Меховые наушники A4Tech HS-60" /></a></p>
<p>Эти &#8220;меховые&#8221; подкладки можно сменить на классические, &#8220;кожанные&#8221;. Очень удобно лежат на ушах и голове, вон та кожанная штука под железной дугой &#8211; очень мягко лежит на голове. Т.е. наушники не чувствуются и не жмут.</p>
<p>Единственно что какаха в этих наушниках &#8211; это микрофон. Он не жесткий, а на мягкой проволоке, постоянно гнуть приходится.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vovana.com/telezka-s/nakrutka-schetchika-feedburner-popytka-2/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>PDT &#8211; Редактор PHP</title>
		<link>http://blog.vovana.com/soft/pdt-redaktor-php/</link>
		<comments>http://blog.vovana.com/soft/pdt-redaktor-php/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 14:03:26 +0000</pubDate>
		<dc:creator>vovan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Программы]]></category>
		<category><![CDATA[Разработка]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[кодинг]]></category>
		<category><![CDATA[программа]]></category>
		<category><![CDATA[редактор]]></category>

		<guid isPermaLink="false">http://blog.vovana.com/2007/12/27/74</guid>
		<description><![CDATA[Давным давно я пытался настроить Eclipse под свои пхп-шные нужды. Накачал плагинов, начал лепить &#8211; с ходу не получилось, а надо было срочно работать. Взял Zend(ZDE) и все время писал в нем. Ну и основной гемор был в том что редактировать-то мне нравилось в Zend, а поливать и синхронизить под CVS &#8211; в Eclipse. Но [...]]]></description>
			<content:encoded><![CDATA[<p>Давным давно я пытался настроить <strong>Eclipse </strong>под свои пхп-шные нужды. Накачал плагинов, начал лепить &#8211; с ходу не получилось, а надо было срочно работать. Взял <strong>Zend(ZDE)</strong> и все время писал в нем.</p>
<p>Ну и основной гемор был в том что редактировать-то мне нравилось в Zend, а поливать и синхронизить под CVS &#8211; в Eclipse.</p>
<p>Но вчера я открыл для себя маленькую америку <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  С прошлого года комманда Eclipse начала выпускать сборку, уже заточенную под пхп кодеров. Назвали все это дело <strong>&#8220;PDT</strong>&#8221; в сборке уже установленые все плагины, которые необходимы для разработки: подсветка синтаксиса, автодополнение (по контрол+пробелу), навороченный редактор SQL, XML и т.д. и т.п.</p>
<p>Я думаю штука достойна внимания, попробую пользовать &#8211; там увидим!</p>
<p><a href="http://download.eclipse.org/tools/pdt/downloads/">http://download.eclipse.org/tools/pdt/downloads/</a> (120 mb)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vovana.com/soft/pdt-redaktor-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Накрутка счетчика Feedburner: Попытка №1</title>
		<link>http://blog.vovana.com/dev-god/avtomatic_nakrutka_feebburner/</link>
		<comments>http://blog.vovana.com/dev-god/avtomatic_nakrutka_feebburner/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 10:28:12 +0000</pubDate>
		<dc:creator>vovan</dc:creator>
				<category><![CDATA[Идеи]]></category>
		<category><![CDATA[Разработка]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[накрутка]]></category>
		<category><![CDATA[счетчик]]></category>
		<category><![CDATA[счетчики]]></category>

		<guid isPermaLink="false">http://blog.vovana.com/2007/12/19/69</guid>
		<description><![CDATA[Вчера под вечер мне пришла идея как можно накрутить счетчик Feedburner. Придя домой и не откладывая в долгий ящик я приступил к реализации. За не полный час программа была готова. В качестве &#8220;жертв&#8221; для испытания были выбраны 3 блога: мой Real Russian Life, CKDev и Блог Ромы. Незначительная накрутка, порядка +20, должна была произойти. С [...]]]></description>
			<content:encoded><![CDATA[<p>Вчера под вечер мне пришла идея как можно <strong>накрутить счетчик Feedburner</strong>.</p>
<p>Придя домой и не откладывая в долгий ящик я приступил к реализации. За не полный час программа была готова.</p>
<p>В качестве &#8220;жертв&#8221; для испытания были выбраны 3 блога: мой <a href="http://www.realrussianlife.com" target="_blank">Real Russian Life</a>, <a href="http://ckdev.org.ua/" target="_blank">CKDev</a> и <a href="http://blog.movchan.net/" target="_blank">Блог Ромы</a>. Незначительная <strong>накрутка</strong>, порядка +20, должна была произойти.</p>
<p>С утра посмотрел &#8211; вроди как счетчики на других моих сайтах, ключая этот блог, изменились, но на тех трех что пытался накрутить &#8211; изменения либо не произошли, либо были незначительными (и не в плюс <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). Стоит, конечно, учитывать, что Feedburder &#8211; тот еще тормоз и, возможно, еще переварит мои старания к вечеру.</p>
<p>Если изменений не произойдет &#8211; у меня уже есть с пяток идей почему не сработало,  как это исправить и + еще несколько улучшений к программе. (Так же придумал еще два альтернативных способа <strong>накрутки</strong>, которые, возможно, сработают).</p>
<p>Кто-то конечно же возразит:<br />
<span id="more-69"></span></p>
<p>&#8220;Да нафига это надо, это чушь! От этого посетителей и читателей нисколько не прибавится, тупая иллюзия и самообман&#8221;.</p>
<p>С чем я соглашусь, но! Кто в теме тот понимает в чем может быть плюс всего этого движения <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vovana.com/dev-god/avtomatic_nakrutka_feebburner/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Греббер с bash.org.ru + плагин для WordPress</title>
		<link>http://blog.vovana.com/dev-god/grebber-s-bashorgru-plagin-dlya-wordpress/</link>
		<comments>http://blog.vovana.com/dev-god/grebber-s-bashorgru-plagin-dlya-wordpress/#comments</comments>
		<pubDate>Sat, 03 Nov 2007 15:18:40 +0000</pubDate>
		<dc:creator>vovan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Разработка]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[плагин]]></category>

		<guid isPermaLink="false">http://blog.vovana.com/2007/11/03/40</guid>
		<description><![CDATA[От нечего делать и практики ради &#8211; решил написать небольшой скрипт который грабит записи с БОРа и пихает их в базу. Скрипт был написан где-то за пол часа и представляет из себя следующую штуку: берется контент с главной страницы выбираются все записи (обычно их там 95 на странице) каждая запись проверяется есть ли она в [...]]]></description>
			<content:encoded><![CDATA[<p>От нечего делать и практики ради &#8211; решил написать небольшой скрипт который <strong>грабит записи</strong> с БОРа и пихает их в базу. Скрипт был написан где-то за пол часа и представляет из себя следующую штуку:</p>
<ul>
<li>берется контент с главной страницы</li>
<li>выбираются все записи (обычно их там 95 на странице)</li>
<li>каждая запись проверяется есть ли она в базе по айди, который указан там на сайте</li>
<li>если записи нет, то добавляем её</li>
</ul>
<p>Данный скрипт нужно вешать на cron с интервалом &#8211; 2-3 раза в день, при этом с каждым днем ваша собственная база цитат будет автоматически наращиваться;)</p>
<p>Структура теблицы БД, её нужно создать вручную:<span id="more-40"></span></p>
<p>CREATE TABLE `bash_quotes` (<br />
`id` int(11) unsigned NOT NULL auto_increment,<br />
`bash_id` int(11) NOT NULL,<br />
`text` longtext NOT NULL,<br />
PRIMARY KEY  (`id`)<br />
) ENGINE=MyISAM AUTO_INCREMENT=96 ;</p>
<p>Таблица должна быть с кодировкой UTF8, иначе причется патчить скрипт.</p>
<p>Можно скачать <a href="http://blog.vovana.com/scripts/bash_quotes.sql.zip">дамп базки</a>  в которой уже есть немного цитат.</p>
<p>Так как скрипт сам по себе никакой особой пользы не несет, то в нагрузку к нему был разработан <strong>плагин для WordPress</strong>, который доабвляет случайные цитаты в тело сообщения, либо в указанное в темплейте месте.</p>
<p>Для того чтобы вывести запись в теле сообщения, нужно добавить в любом месте поста код [ BASH.QUOTE], этот код будет автоматически заменен случайной записью из БОРа. Пример использования вы можете посмотреть в конце этого поста &#8211; при обновлении страницы прикол будет меняться.</p>
<p>Есть три момента:</p>
<ol>
<li> [ BASH.QUOTE] заменяется только одной записью при загрузке страницы, т.е. если вы поставите 5 штук [ BASH.QUOTE] на странице, то все они будут заменены одним и тем же приколом;</li>
<li>Выдача может повторяться &#8211; так как это рандом, а не шаффл;</li>
<li>Ну и последнее -между [ и BASH.QUOTE] пробел не нужен (если бы я написал без пробела &#8211; везде в тексте торчали бы приколы <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</li>
</ol>
<p>Второй способ встроить цитату, это добавить код &lt;?php bash_rand_quote() ?&gt; в любое месте шаблона. Здесь ситуация иная &#8211; каждый такой кусок кода будет заменен своей случайной записью из базки. Пример этого можно посмотреть на этом же блоге, в правом нижнем углу заголовок &#8220;bash.live&#8221;, для этого редактировался файл footer.php в папке шаблона.</p>
<p>Исходники обоих скриптов можно скачать одним архивом: <a href="http://blog.vovana.com/scripts/bash.zip">bash.zip</a>.</p>
<p>В архиве два файла:</p>
<p>bash_grabber.php &#8211; граббер который вешаем на крон, в нем нужно настроить доступ к БД</p>
<p>bash_org_ru.php &#8211; <strong>плагин для WordPress</strong> &#8211; небходимо скопировать в папку plugins и активировать в админке.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Прошел популярный сейчас тест (слабо, думал будет больше):</p>
<p><a href="http://www.corp.mamba.ru/test/promo.phtml"><img src="http://www.corp.mamba.ru/test/widget.phtml?id=1998" border="0" /></a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Случайная цитата с <a href="http://bash.org.ru" target="_blank">bash.org.ru</a>:</p>
<p>~RoXy &lt;3 ~: и ко мне он крутт относится.. сказал что будем бегать вместе.. летом будет меня на роликах учить кататься )<br>TUSL2-c: молодцы<br>TUSL2-c: не забывай о защите<br>~RoXy &lt;3 ~: КОЛЯ!!!!!!!!<br>~RoXy &lt;3 ~: он не такой)<br>~RoXy &lt;3 ~: он хороший)<br>TUSL2-c: БЛЯТЬ НА РОЛИКИ ЗАЩИТА!!!!!!!!!!<br>TUSL2-c: ты озабоченная!!!!!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vovana.com/dev-god/grebber-s-bashorgru-plagin-dlya-wordpress/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Сравнение и анализ поисковой выдачи</title>
		<link>http://blog.vovana.com/dev-god/%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%be%d0%b2%d0%be%d0%b9-%d0%b2%d1%8b%d0%b4%d0%b0%d1%87%d0%b8/</link>
		<comments>http://blog.vovana.com/dev-god/%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%be%d0%b2%d0%be%d0%b9-%d0%b2%d1%8b%d0%b4%d0%b0%d1%87%d0%b8/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 04:46:18 +0000</pubDate>
		<dc:creator>vovan</dc:creator>
				<category><![CDATA[Разработка]]></category>

		<guid isPermaLink="false">http://blog.vovana.com/2007/10/18/13/</guid>
		<description><![CDATA[Написал на досуге прототип онлайн тулзы под названием &#8220;Сравнение и анализ поисковой выдачи&#8221;. Программу хотел написать давно, но решился начать только вчера. Что представляет из себя программа: человек вводит поисковый запрос и получает результат в удобном виде сразу из 3-х наиболее популярных в ру-нете поисковиков: Yandex, Google и Rambler. На текущей стадии(версия 0.01) программа не [...]]]></description>
			<content:encoded><![CDATA[<p>Написал на досуге прототип онлайн тулзы под названием &#8220;Сравнение и анализ поисковой выдачи&#8221;. Программу хотел написать давно, но решился начать только вчера.</p>
<p>Что представляет из себя программа: человек вводит поисковый запрос и получает результат в удобном виде сразу из 3-х наиболее популярных в ру-нете поисковиков: Yandex, Google и Rambler.</p>
<p>На текущей стадии(версия 0.01) программа не более чем забавная тулзень, прошу не судить строго.</p>
<p>Что сделано:</p>
<ul>
<li>раскраска одинаковых сайтов одним цветом в трех выдачах</li>
</ul>
<p>Что будет сделано в ближайшее время для версии 0.02:</p>
<p><span id="more-13"></span></p>
<ul>
<li>сейчас разными считаются ссылки вида http://www.site.com и http://site.com &#8211; сделать &#8220;умное&#8221; сравнение</li>
<li>разобраться с заумным гуглом, который в поисковую выдачу пихает всякое говно типа новостей, чем рубит выдачу в моей программе (увидеть пример можно введя запрос &#8220;москва&#8221;)</li>
<li>иногда возникают проблемы с кодировкой у гугла и яндекса</li>
<li>нужен более дружелюбный интерфейс, а не текущий, экспериментальный</li>
<li>урезать слишком длинные урлы до определенной длины и добавлять &#8220;&#8230;&#8221; чтобы не рвало таблицу</li>
</ul>
<p>Что на будущее (версия 0.03-0.04)</p>
<ul>
<li>возможность выбора необходимых поисковиков</li>
<li>добавить еще несколько не столь известных поисковиков (<a href="http://www.webalta.ru/" target="_blank">вебальта</a>, <a href="http://www.aport.ru/" target="_blank">апорт</a>)</li>
<li><strong>извлечение и анализ ключевых слов</strong>, формирования облака ключевых слов для каждого поисковика и общего для всех</li>
<li>анализ &#8220;вглубь&#8221;, на N страниц поисковой выдачи</li>
</ul>
<p>Ах да, ну и ссылка на саму программу <a href="http://seo.vovana.com/compare.php" title="Анализ поисковой выдачи" target="_blank">Сравнения и анализа поисковой выдачи</a> <img src='http://blog.vovana.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Замечания и пожелания приветствуются.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vovana.com/dev-god/%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%be%d0%b2%d0%be%d0%b9-%d0%b2%d1%8b%d0%b4%d0%b0%d1%87%d0%b8/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

