<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Создание блога на WordPress</title><link>http://mblogm.ru</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mblogm/ru" /><description>Создание блога на WordPress. Что, как и почему.</description><language>en</language><lastBuildDate>Sun, 07 Mar 2010 09:44:00 PST</lastBuildDate><generator>http://wordpress.org/?v=2.8.6</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mblogm/ru" /><feedburner:info uri="mblogm/ru" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>mblogm/ru</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmblogm%2Fru" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fmblogm%2Fru" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fmblogm%2Fru" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fmblogm%2Fru" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item><title>Создание плагина: запись в базу данных</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/bNcWdH7SyJA/</link><category>Создание плагина</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Sun, 07 Mar 2010 06:23:50 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=775</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>В предыдущих статьях</p>
<ul>
<li> <a href="http://mblogm.ru/2009/12/create-plugin/" target="_blank">Создание простейшего плагина</a> с сокращенным кодом (Shortcode), который вставляет в запись блога ссылку на внешний сайт с тегом  <tt>&lt;noindex&gt;</tt> и атрибутом <tt>rel="nofollow"</tt>.</li>
<li><a href="http://mblogm.ru/2010/01/wordpress-plugin-add_action/" target="_blank">Создание плагина с использованием функции WordPress <tt>add_action</tt></a>, который добавляет в заданное место на странице случайно выбранную фразу.</li>
</ul>
<p>рассматриваются базовые понятия и приемы, используемые при создании плагинов WordPress. <span id="more-775"></span>Следующий шаг &#8211; это сделать так, чтобы плагин хранил все необходимые текстовые данные не внутри php-файла, а в базе данных. Это позволит добавлять новые данные, не изменяя файл(ы) плагина.</p>
<h2>Хранение данных плагина в базе данных WordPress</h2>
<p>Плагин может записывать в базу данных:</p>
<ul>
<li> <strong>Настройки</strong>- то, что выбирает пользователь, когда устанавливает плагин. Такие данные обычно сохраняют с использованием механизма опций <noindex><a href="http://codex.wordpress.org/Writing_a_Plugin#Saving_Plugin_Data_to_the_Database" rel="nofollow">WordPress options mechanism</a></noindex>.</li>
<li> <strong>Данные </strong>- информация, добавляемая в процессе работы плагина, которая обычно связана с  отдельными записями, категориями и т.д.. Данные можно хранить в отдельной таблице базы данных MySQL, которую нужно для этого создать. Также можно хранить данные как метаданные записей, так называемые  пользовательские поля (Custom Fields) (<noindex><a href="http://codex.wordpress.org/Writing_a_Plugin#Saving_Plugin_Data_to_the_Database" rel="nofollow">WordPress' Post Meta</a></noindex>).</li>
</ul>
<p>Обычно плагин автоматически создает таблицу в базе данных MySQL для хранения данных (это должно происходить  во время установки плагина, или пользователь может выполнить соответствующий SQL-запрос в <noindex><a href="http://codex.wordpress.org/phpMyAdmin" rel="nofollow">phpMyAdmin</a></noindex>).<br />
Для того чтобы автоматически создавать и обновлять таблицу базы данных:</p>
<ul>
<li> Нужна PHP-функция, которая создает таблицу базы данных.</li>
<li> Нужна PHP-функция обновления на случай, если для новой версии плагина потребуется таблица базы данных с другой структурой.</li>
<li> WordPress должен вызывать эти функции при активации/обновлении плагина.</li>
</ul>
<h2>Создание таблицы базы данных</h2>
<p>Итак, пишем функцию с именем <em> <tt>tbl_install</tt></em>, которая создает таблицу базы данных.<br />
<strong>Префикс таблицы базы данных</strong><br />
В файле <tt>wp-config.php</tt> владелец сайта WordPress может определить префикс базы данных WordPress  (по умолчанию это <tt>wp_</tt>). Применяемое значение префикса хранится в переменной <tt>$wpdb-&gt;prefix</tt>. (В WordPress до версии 2.1 это значение хранилось в переменной <tt>$table_prefix</tt>).<br />
Сначала задаем имя таблицы базы данных с именем <tt>tblname</tt>:</p>
<pre>function tbl_install () {
global $wpdb;
$table_name = $wpdb-&gt;prefix . "tblname";</pre>
<p>Попытка найти таблицу с именем <tt>$table_name</tt> с помощью SQL-запроса <tt>SHOW TABLES</tt> (проверяем существование такой таблицы):</p>
<pre>if($wpdb-&gt;get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {</pre>
<p>Если этой таблицы еще нет, ее нужно создать.<br />
Создать таблицу можно с помощью прямого SQL-запроса или с помощью функции <tt>dbDelta</tt><br />
из файла <tt>wp-admin/includes/upgrade.php</tt> (этот файл нужно загрузить, т.к. по умолчанию он не загружается). Функция  <tt>dbDelta</tt> сравнивает текущую структуру таблицы с требуемой структурой и добавляет или изменяет эту структуру, поэтому она используется для обновлений.  (Примеры<br />
использования функции <tt>dbDelta</tt> можно посмотреть в файле <tt>wp-admin/upgrade-schema.php</tt>).<br />
При использовании функции <tt>dbDelta</tt> имейте в виду, что</p>
<ul>
<li>Каждое поле  в SQL-выражении должно располагаться на отдельной строке.</li>
<li>Между словами PRIMARY KEY и определением первичного ключа должно быть два пробела</li>
<li>Нужно использовать ключевое слово KEY, а не его синоним INDEX, и должен быть задан, по крайней мере, один ключ KEY.</li>
</ul>
<p>Итак, создание или обновление таблицы:</p>
<pre>$sql = "CREATE TABLE " . $table_name . " (
             id mediumint(9) NOT NULL AUTO_INCREMENT,
             time bigint(11) DEFAULT '0' NOT NULL,
             name tinytext NOT NULL COLLATE utf8_general_ci,
             text text NOT NULL COLLATE utf8_general_ci,
             url VARCHAR(55) NOT NULL COLLATE utf8_general_ci,
             UNIQUE KEY id (id)
          );";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);</pre>
<p>Будет создана такая таблица:</p>
<div id="attachment_823" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-823" title="Таблица базы данных" src="http://mblogm.ru/wp-content/uploads/2010/03/таблица-базы-данных.jpg" alt="Таблица базы данных" width="600" height="162" /><p class="wp-caption-text">Таблица базы данных</p></div>
<p>В этой таблице для <a href="http://mblogm.ru/2010/01/wordpress-plugin-add_action/" target="_blank">плагина</a>, который добавляет в заданное место на странице случайно выбранную фразу, можно хранить фразы (<tt>text</tt>), а также время добавления и имена пользователей, которые добавили фразы.<br />
<strong>Типы данных:</strong><br />
MEDIUMINT &#8211; целые числа от -8 388 608 до 8 388 607<br />
BIGINT &#8211; целые числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807<br />
TINYTEXT 	- не более 255 символов<br />
TEXT &#8211;  не более 65 535 символов<br />
VARCHAR 	- не более 255 символов.<br />
(в скобках указывается заявленное максимальное количество символов)</p>
<p><strong>Модификаторы:</strong><br />
NOT NULL &#8211; поле должно быть явно инициализировано, т.е. не может содержать неопределенное значение<br />
AUTO_INCREMENT &#8211; при добавлении в таблицу новой записи значение этого поля будет автоматически увеличиваться на 1<br />
DEFAULT &#8211; задает значение, используемое по умолчанию, когда значение явно не задано<br />
COLLATE utf8_general_ci &#8211; задает сравнение (или сопоставление, collation)<br />
UNIQUE KEY &#8211; уникальный ключ<br />
***<br />
Продолжение скоро последует &#8230;</p>
]]></content:encoded><description>В предыдущих статьях

 Создание простейшего плагина с сокращенным кодом (Shortcode), который вставляет в запись блога ссылку на внешний сайт с тегом  &amp;#60;noindex&amp;#62; и атрибутом rel="nofollow".
Создание плагина с использованием функции WordPress add_action, который добавляет в заданное место на странице случайно выбранную фразу.

рассматриваются базовые понятия и приемы, используемые при создании плагинов WordPress. Следующий шаг &amp;#8211; это [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2010/03/wordpress-plugin-data-base-1/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2010/03/wordpress-plugin-data-base-1/</feedburner:origLink></item><item><title>FeedBurner: настройка страницы подписки на RSS-поток</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/9gO_irOGiZM/</link><category>Подписка на блог</category><category>FeedBurner</category><category>RSS</category><category>фид</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Sat, 27 Feb 2010 09:03:27 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=761</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>RSS-потоки и Feedburner</h2>
<p><a rel="attachment wp-att-771" href="http://mblogm.ru/2010/02/feedburner-setting/feed-icon-28x28/"><img class="alignleft size-full wp-image-771" style="margin-left: 10px; margin-right: 10px;" title="feed-icon-28x28" src="http://mblogm.ru/wp-content/uploads/2010/02/feed-icon-28x28.png" alt="feed-icon-28x28" width="28" height="28" /></a> Wordpress формирует два RSS-потока: поток записей и поток комментариев. Практически во всех темах Wordpress вы видите характерный значок, щелкнув на котором, посетители могут подписаться на ваш блог, чтобы узнавать о появлении новых записей с помощью одного из RSS-агрегаторов.<br />
<span id="more-761"></span><a rel="attachment wp-att-766" href="http://mblogm.ru/2010/02/feedburner-setting/feedburner/"><img class="alignright size-full wp-image-766" title="feedburner" src="http://mblogm.ru/wp-content/uploads/2010/02/feedburner.jpg" alt="feedburner" width="236" height="48" /></a>RSS-потоки можно направлять через <noindex><a href="http://feedburner.google.com" rel="nofollow">Feedburner</a></noindex>, чтобы отслеживать количество подписчиков. Feedburner также поддерживает подписку на блог по email и всякие полезности, например, Аниматор заголовков, который создает рекламный баннер, поочередно показывающий заголовки пяти последних записей из фида. Вот такой баннер  получился у моего сайта для изучающих английский язык:</p>
<p style="margin-top: 10px; margin-bottom: 0pt; padding-bottom: 0pt; text-align: center; line-height: 0pt;"><a href="http://feeds.feedburner.com/%7Er/studyenglishnow/ru/%7E6/1" target="_blank"><img style="border: 0pt none ;" src="http://feeds.feedburner.com/studyenglishnow/ru.1.gif" alt="Study English Now" /></a></p>
<p style="margin-top: 5px; padding-top: 0pt; font-size: x-small; text-align: center;"><a onclick="window.open(this.href, 'haHowto', 'width=520,height=600,toolbar=no,address=no,resizable=yes,scrollbars'); return false" href="http://feedburner.google.com/fb/a/headlineanimator/install?id=bq3ilp88bpinp4vsiknlksej98&amp;w=1" target="_blank">↑ Получить этот Аниматор заголовков</a></p>
<h2>Фид FeedBurner и его настройка</h2>
<p>После регистрации можно выбрать русский язык (в <span style="text-decoration: underline;">Languages</span>)</p>
<blockquote><p>| Мои фиды | Моя учетная запись | Languages | Help | Выйти</p></blockquote>
<p>На странице фидов введите адрес своего блога (Feedburner найдет фиды блога) и идите  дальше (Next).</p>
<p>Для любого из доступных на вашем блоге  фидов вы можете создать фид Feedburner. Вы получите его адрес вида <tt>http://feeds.feedburner.com/имя-фида</tt>. Это адрес страницы, через которую посетители должны подписываться на ваш блог, чтобы их можно было посчитать.<br />
Эту страницу надо настроить для русской аудитории, поэтому переходите <span style="text-decoration: underline;">к управлению фидом</span> <tt>Оптимизируй-&gt;BrowserFriendly</tt> и выберите русскую <span style="text-decoration: underline;">Тему</span>:</p>
<div id="attachment_762" class="wp-caption alignnone" style="width: 492px"><a rel="attachment wp-att-762" href="http://mblogm.ru/2010/02/feedburner-setting/feed-theme/"><img class="size-full wp-image-762" title="feed-theme" src="http://mblogm.ru/wp-content/uploads/2010/02/feed-theme.jpg" alt="Тема фида" width="482" height="290" /></a><p class="wp-caption-text">Тема фида</p></div>
<p>Выбирайте остальные настройки и не забудте их сохранить!</p>
<h3>Подписка по email</h3>
<p>Зайдите в <tt>Публикуй-&gt;Подписки по электронной почте</tt>. Дальше по инструкции (на русском языке).</p>
<h3>Счетчик</h3>
<p>Зайдите в <tt>Публикуй-&gt;FeedCount</tt>.<br />
Счетчик FeedCount динамически отображает количество подписчиков на фид и является ссылкой на страницу подписки на фид. Активируйте счетчик, выберите для него цвет и вставьте HTML-код счетчика в блог.</p>
]]></content:encoded><description>RSS-потоки и Feedburner
 Wordpress формирует два RSS-потока: поток записей и поток комментариев. Практически во всех темах Wordpress вы видите характерный значок, щелкнув на котором, посетители могут подписаться на ваш блог, чтобы узнавать о появлении новых записей с помощью одного из RSS-агрегаторов.
RSS-потоки можно направлять через чтобы отслеживать количество подписчиков. Feedburner также поддерживает подписку на блог по [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2010/02/feedburner-setting/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2010/02/feedburner-setting/</feedburner:origLink></item><item><title>Настройка нового блога WordPress</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/HDw3HWq3Eko/</link><category>Новости</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Mon, 22 Feb 2010 10:08:55 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=758</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>В &#8220;<a href="http://mblogm.ru/wordpress-guide/">Справочнике WordPress</a>&#8221; появилась новая страница:<br />
<a href="http://mblogm.ru/wordpress-guide/customizing-wordpress/">Настройка нового блога WordPress</a></p>
]]></content:encoded><description>В &amp;#8220;Справочнике WordPress&amp;#8221; появилась новая страница:
Настройка нового блога WordPress</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2010/02/about-new-page/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2010/02/about-new-page/</feedburner:origLink></item><item><title>PHP: примеры регулярных выражений</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/u0XJRKjTsfQ/</link><category>PHP</category><category>замена</category><category>поиск</category><category>регулярные выражения</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Mon, 25 Jan 2010 02:41:57 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=668</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Регулярные выражения позволяют выполнять более сложный поиск и замену в строке<br />
<span id="more-668"></span><br />
1. Если нужно обрабатывать в цикле только файлы с заданными расширениями, в данном случае это файлы изображений:</p>
<pre>if (!ereg("^(.*)\\.(gif|jpg|jpeg|png)$", $item, $p)) continue;</pre>
<p>*** Здесь <tt>$p</tt>- это массив найденных совпадений<br />
*** <tt>continue</tt> &#8211; значит перейти к следующей итерации цикла<br />
2. Замена расширения <tt>.ad</tt> или <tt>.tmx</tt> на расширение <tt>.txt</tt></p>
<pre>$item="._AAABBBCC.3ER_453.34.df.ad"
echo ereg_replace (".ad|.tmx", ".txt", $item);</pre>
<p>Получаем</p>
<pre>._AAABBBCC.3ER_453.34.df.txt</pre>
<p>3. &#8220;Стираем&#8221; символы <tt>._</tt> или <tt>_</tt></p>
<pre>$temp=ereg_replace ("(\._|_)", "", $temp);</pre>
<p>Получаем</p>
<pre>AAABBBCC.3ER453.34.df.txt</pre>
<p>4. &#8220;Стираем&#8221; все символы между (. цифра или цифры)  и любым количеством цифр</p>
<pre>$pattern = "((\.[0-9]+).+[0-9]+)";
$replacement ="";
$temp=preg_replace($pattern, $replacement, $temp);</pre>
<p>Получаем</p>
<pre>AAABBBCC.txt</pre>
<p>5. Переставляем местами</p>
<pre>$string = "May 10, 2009";
$pattern = "/(\w+) (\d+), (\d+)/i";
preg_replace($pattern, $replacement, $string);</pre>
<p>*** Здесь <tt>(\w+)</tt> обозначает любое количество (но не ноль) букв англ. алфавита, а <tt>(\d+)</tt> &#8211; любое количество цифр.<br />
Для <tt>$replacement = "\$3, \$2, \$1"; </tt>получаем:</p>
<pre>2009, 10, May</pre>
<p>Для <tt>$replacement = "\${1} 1,\$3"; </tt>(вместо <tt>$2</tt>жестко заданное значение <tt>1</tt>) получаем:</p>
<pre>May 1,2009</pre>
]]></content:encoded><description>Поиск и замена в строке</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2010/01/php-reg-ex-examples/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2010/01/php-reg-ex-examples/</feedburner:origLink></item><item><title>Голосование, просмотры, рейтинг</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/akbDNxLAKY8/</link><category>Плагины WordPress</category><category>голосование</category><category>количество страниц</category><category>опрос</category><category>плагин</category><category>рейтинг</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Wed, 20 Jan 2010 03:39:56 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=613</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h1><noindex><a href="http://lesterchan.net/portfolio/programming/php/" rel="nofollow">Плагины для WordPress 2.8</a></noindex></h1>
<p><span id="more-613"></span><br />
***</p>
<h2><strong>Голосование (опрос) &#8211;  плагин WP-Polls 2.50</strong></h2>
<p>Код для добавления на веб-страницу (для опроса номер <tt>1</tt>):</p>
<pre>[poll id="1"]</pre>
<p>Загрузка плагина: <a title="Прямая загрузка" href="http://downloads.wordpress.org/plugin/wp-polls.2.50.zip"> wp-polls.2.50.zip</a></p>
<h3>Скриншоты:</h3>
<div id="attachment_633" class="wp-caption alignleft" style="width: 217px"><img class="size-full wp-image-633" title="wp-polls" src="http://mblogm.ru/wp-content/uploads/2010/01/wp-polls.jpg" alt="Форма голосования" width="207" height="153" /><p class="wp-caption-text">Форма голосования</p></div>
<div id="attachment_632" class="wp-caption alignleft" style="width: 234px"><img class="size-full wp-image-632" title="wp-polls-results" src="http://mblogm.ru/wp-content/uploads/2010/01/wp-polls1.jpg" alt="Результаты голосования" width="224" height="141" /><p class="wp-caption-text">Результаты голосования</p></div>
<div style="clear:both">
<p>***</p>
<h2><strong>Количество просмотров страницы &#8211; плагин WP-PostViews 1.50</strong></h2>
<p>Код для добавления в php-файл:</p>
<pre>&lt;?php if(function_exists('the_views')) { the_views(); } ?&gt;&lt;/div&gt;</pre>
<p>Плагин выводит на страницу запись <tt>"Просмотров: 5</tt>&#8221;<br />
Текст этой записи задает шаблон <tt>Views Template</tt>, который можно редактировать в разделе настроек для плагина: <em>http://mysite.ru/wp-admin/options-general.php?page=wp-postviews/postviews-options.php</em></p>
<h3>Добавление стиля</h3>
<p>Добавьте стиль для записи о количестве просмотров в файл <em>style.css</em> вашей темы (<em>view.png</em> &#8211; это значок):</p>
<pre>.view {
	float:  left;
	text-align: left;
	padding: 0px 0px 0px 25px;
	background: url(images/view.png) 10px 0px no-repeat;
}</pre>
<p>Загрузка плагина: <a title="Прямая загрузка" href="http://downloads.wordpress.org/plugin/wp-postviews.1.50.zip"> wp-postviews.1.50.zip</a></p>
<hr /></div>
<p>***</p>
<h2>Голосование &#8211; рейтинг &#8211; плагин WP-PostRatings</h2>
<p>Рейтинг &#8211; это голосование &#8220;звездочками&#8221; и т.п.. Код для добавления в php-файл, т.е. в <em>index.php</em> или <em>single.php</em> (если этот код добавлен внутри цикла WordPress,  рейтинг появляется <strong>для каждой записи блога</strong>):</p>
<pre>&lt;?php if(function_exists('the_ratings')) { the_ratings(); } ?&gt;</pre>
<p>Иначе можно добавлять рейтинг <strong>на отдельные страницы</strong>:</p>
<pre>[ratings]</pre>
<p>или для записи номер 1:</p>
<pre>[ratings id="1"]</pre>
<p>Загрузка плагина: <a title="Прямая загрузка" href="http://downloads.wordpress.org/plugin/wp-postratings.1.40.zip"> wp-postratings.1.40.zip</a></p>
<h3>Скриншоты:</h3>
<div id="attachment_659" class="wp-caption alignnone" style="width: 409px"><img src="http://mblogm.ru/wp-content/uploads/2010/01/wp-rating.jpg" alt="Пример рейтинга записи" title="wp-rating" width="399" height="50" class="size-full wp-image-659" /><p class="wp-caption-text">Пример рейтинга записи</p></div><br />
<div id="attachment_660" class="wp-caption alignnone" style="width: 302px"><img src="http://mblogm.ru/wp-content/uploads/2010/01/wp-rating1.jpg" alt="Еще один пример рейтинга записи" title="wp-rating1" width="292" height="49" class="size-full wp-image-660" /><p class="wp-caption-text">Пример рейтинга</p></div>
<hr />
]]></content:encoded><description>Плагины для WordPress 2.8</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2010/01/polls-views-postratings/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2010/01/polls-views-postratings/</feedburner:origLink></item><item><title>Создание плагина с использованием функции WordPress add_action</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/5UcSDC0s2uA/</link><category>Плагины WordPress</category><category>add_action</category><category>плагин</category><category>функции WordPress</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Mon, 18 Jan 2010 02:49:36 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=581</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h1>Внутри плагина &#8220;Hello_Dolly&#8221;</h1>
<p>Я хочу написать плагин, который добавляет в определенное место на странице случайно выбранную фразу и/или изображение.<br />
В программировании, особенно новичку, часто полезно изучить готовый код, написанный опытным разработчиком, да и не очень-то рационально было бы каждый раз &#8220;изобретать велосипед&#8221;. Для начала рассмотрим, как работает очень простой плагин &#8220;Hello_Dolly&#8221;, поставляемый в составе WordPress в качестве примера плагина. (Этот плагин добавляет случайно выбранную фразу на страницу администрирования WordPress.)</p>
<h2>Во-первых,</h2>
<p>интересно, зачем в начале файла плагина перед</p>
<pre> /*
 Plugin Name: ...
 Plugin URI: ...
 Description: ...
 Author: ...
 Version: ...
 Author URI: ...
 */</pre>
<p>добавлено</p>
<pre>/**
* @package Hello_Dolly
* @author Matt Mullenweg
* @version 1.5.1
*/</pre>
<p>Это теги PHPDoc, <strong>генератора документации</strong> для php-кода. (Они используются, при генерации документации плагина, и их добавлять в код плагина, конечно же, необязательно.)<br />
PHPDoc-комментарий начинается с <tt>/**</tt>. Каждая следующая строка должна начинаться с <tt>*</tt>. Закрывает PHPDoc-комментарий <tt>*/</tt>.</p>
<p>Кстати, по поводу <strong>использования тегов встроенной документации</strong> в Кодексе WordPress (<a href="http://codex.wordpress.org/Inline_Documentation">Inline Documentation</a>) написано:</p>
<p>Для PHPdoc-блоков добавляется информация @since (когда был добавлен) (даже если эта информация пока недоступна), а в качестве информации @package всегда следует указывать &#8220;WordPress&#8221;, если это не внешняя библиотека:</p>
<pre>/**
 * ... Описание
 *
 * @package WordPress
 * @since 2.1 или {{@internal Unknown}}}
 *
 * ... Другая информация
 */</pre>
<p>Блоки PHPdoc-комментариев не используются внутри блоков функций и методов за исключением <tt>@todo</tt> (что нужно сделать).</p>
<pre>/**
 * @todo ... Описание
 */</pre>
<p>или</p>
<pre>/** @todo ... Описание*/</pre>
<p>В общем, это интересная тема, но для другой статьи&#8230;</p>
<h2>Во-вторых,</h2>
<p><strong>в плагине используются функции </strong></p>
<pre><strong>wptexturize</strong>(...)
<strong>mt_rand</strong>(...) - функция PHP
<strong>add_action</strong>('admin_footer', 'hello_dolly');
<strong>add_action</strong>('admin_head', 'dolly_css');
<strong>get_bloginfo</strong>( 'text_direction' );</pre>
<p>и в <tt>function dolly_css()</tt> задается стиль:</p>
<pre>echo "
<strong>&lt;style type='text/css'&gt;
#dolly {
position: absolute;
top: 4.5em;
margin: 0;
padding: 0;
$x: 215px;
font-size: 11px;
}
&lt;/style&gt;</strong>
";
}</pre>
<p>С точки зрения создания плагина нас интересует функция WordPress <tt>add_action()</tt>. После изучения кода плагина понятно, что эта функция добавляет &#8220;в заданное место&#8221;, точнее в заданный момент (момент загрузки <tt>'admin_footer'</tt> и <tt>'admin_head'</tt>) <span lang="ru"> </span>результат заданной функции (<tt>'hello_dolly'</tt> и <tt>'dolly_css'</tt>).</p>
<h1>Когда (куда) еще можно добавлять свой php-код?</h1>
<p>Плагин может добавлять php-код с помощью хуков, в данном случае используется хук-действие (action hook).<br />
Вот <a href="http://codex.wordpress.org/Plugin_API/Action_Reference">некоторые другие хуки-действия </a>:</p>
<ul>
<li>init &#8211; WordPress загрузился, но заголовки еще не отправлены</li>
<li>loop_start &#8211; перед обработкой первого поста цикла WordPress</li>
<li>loop_end &#8211; после обработки последнего поста цикла WordPress</li>
<li>get_footer &#8211; перед загрузкой файла шаблона <tt>footer.php</tt></li>
<li>wp_footer &#8211; в конце тега <tt>&lt;body&gt;</tt>. Можно использовать для добавления контента.</li>
</ul>
<h3>Еще хуки</h3>
<p><noindex><a href="http://adambrown.info/p/wp_hooks/hook" rel="nofollow">List of all WordPress hooks</a></noindex>  (Список всех хуков WordPress )<br />
В Кодексе:<br />
<noindex><a href="http://codex.wordpress.org/Plugin_API/Hooks_2.0.x" rel="nofollow">Plugin API/Hooks 2.0.x</a></noindex>  (Хуки-действия)<br />
<noindex><a href="http://codex.wordpress.org/Plugin_API/Filter_Reference" rel="nofollow">Plugin API/Filter Reference</a></noindex>  (Хуки-фильтры)</p>
<h1>Добавление случайно выбранной фразы на страницу блога</h1>
<pre>&lt;?php
/*
Plugin Name: Random Items
Plugin URI: http://mblogm.ru/
Description: Adds a ramdom phrase on every page
Author: MBlogM
Version: 1
Author URI: http://mblogm.ru/
*/
function get_phrase() {
/** Список фраз */
$phrases = "В Интернете кто-то неправ!
Блин! Я целый день работаю. С ума сойти.
Понедельник - день тяжёлый!
Понедельник. Начнем новую жизнь!
Сидим, как в деревне! Ни радио, ни телевизора - один Интернет остался!
Решил собраться с мыслями...ни одна мысль на собрание не пришла...
Может показаться, что я ничего не делаю, но на клеточном уровне я очень занят.
";

// Выделение отдельных строк
$phrases = explode("\n", $phrases);

// Выбор случайной фразы
return wptexturize( $phrases[ mt_rand(0, count($phrases) - 1) ] );
}

// Добавление фразы на страницу
function add_phrase() {

$chosen = get_phrase();
echo "&lt;p id='myphrase'&gt;$chosen&lt;/p&gt;";
}

// Привязка функции к действию wp_footer
add_action('wp_footer', 'add_phrase');

?&gt;</pre>
<p>Если все оставить так, как есть, фраза появляется в самом низу страницы, поэтому добавим позиционирование:</p>
<pre>// Задание положения на странице
function phrase_css() {
echo "
&lt;style type='text/css'&gt;
#myphrase {
position: absolute;
top: 7.5em;
margin: 10;
padding: 10;
right: 70px;
font-size: 12px;
font-color: white;
}
&lt;/style&gt;
";
}

add_action('wp_head', 'phrase_css');</pre>
<p>Теперь случайно выбранная фраза находится справа в шапке страницы.<br />
Конечно, такой плагин мало интересен. Фразы желательно хранить в базе данных или, хотя бы, в отдельном файле, чтобы можно было добавлять новые фразы, не открывая код плагина.<br />
В общем, следующие шаги &#8211; это<br />
(1) запись и извлечение фраз из базы данных и<br />
(2) написание формы для добавления фраз и изменения опций плагина на панели администрирования.</p>
]]></content:encoded><description>Цель- написать плагин, который добавляет в определенное место на странице случайно выбранную фразу и/или изображение</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2010/01/wordpress-plugin-add_action/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2010/01/wordpress-plugin-add_action/</feedburner:origLink></item><item><title>Если не загружаются файлы в Wordpress</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/XxsxMZZPrEs/</link><category>WordPress</category><category>uploads</category><category>загрузка файлов</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Thu, 14 Jan 2010 02:50:27 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=563</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>кЕсли при попытке загрузить файл в админке Wordpress появляется сообщение об ошибке <span id="more-563"></span></p>
<blockquote><p>Не могу создать директорию /home/&#8230;/public_html/&#8230;/wp-content/uploads/&#8230; Проверьте, доступна ли родительская директория для записи (Права доступа должны быть 755, 775 либо 777 в зависимости от настроек вашего сервера).</p></blockquote>
<p>Это значит, что у вас не выставлены <strong>права доступа</strong> на запись в папку для загрузки файлов или задан неверный <strong>путь</strong> к этой папке</p>
<h2>Права доступа</h2>
<p>Для того чтобы изменить права доступа к папке <em>uploads</em>, можно, например, зайти на CPanel в Диспетчер файлов и выбрать команду Изменить разрешения или в Total Commander в меню Файлы команду Изменить артибуты.</p>
<h2>Путь к папке</h2>
<p>После переноса блога WordPress на новое место в нем может сохраняться старый путь к папке <em>uploads</em>. В этом случае из сообщения об ошибке понятно, что WordPress пытается создать директорию не там, где нужно. Для того чтобы задать правильный путь, зайдите в админке в Настройки, Разное.<br />
<img class="alignnone size-full wp-image-572" title="Задание пути к загрузкам" src="http://mblogm.ru/wp-content/uploads/2010/01/uploads-path1.png" alt="Задание пути к загрузкам" width="440" height="137" /><br />
Интересно, что в админке WordPress (подсказал Igor@Netovich) нет ссылки на страницу со всеми опциями, на которой также можно все изменять, в том числе и  <strong>upload_path</strong>. Это страница вида</p>
<pre>http://mysite.ru/wp-admin/options.php</pre>
<p>Если в этих настройках у вас все правильно, обращайтесь  к администратору хостинга.</p>
]]></content:encoded><description>Если при попытке загрузить файл в админке Wordpress появляется сообщение об ошибке</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2010/01/uploads-problem/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2010/01/uploads-problem/</feedburner:origLink></item><item><title>Создание плагина</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/2maGI3vFWTI/</link><category>PHP</category><category>Плагины WordPress</category><category>hooks</category><category>plugin</category><category>shortcodes</category><category>плагин</category><category>создание плагина</category><category>хуки</category><category>шоткоды</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Tue, 29 Dec 2009 13:04:14 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=538</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Рассмотрим пример создания очень простого  плагина, который позволяет вставлять в запись ссылку на внешний сайт.</p>
<p>Прежде чем создавать плагин стоит проверить, может быть подобный плагин уже существует. Если необходимая функциональность еще не реализована в доступных плагинах, можно создать новый плагин.</p>
<p>1. <strong>Выбор имени плагина</strong><br />
Имя плагина должно быть уникальным, поэтому следует попробовать найти плагин с выбранным именем  <noindex><a href=" http://wordpress.org/extend/plugins/" rel="nofollow">на сайте WordPress</a></noindex> и в Интернет (например, в поисковой системе google).<br />
WordPress ищет плагины в папке <em>/wp-content/plugins</em>, поэтому для того, чтобы установить плагин, его нужно поместить в эту папку. Потом его можно будет активировать на панели администрирования.</p>
<p>2. <strong>Создание папки плагина и его php-файла</strong> с выбранным (уникальным) именем: <em>myref</em> и <em>myref.php</em>. (Если плагин будет состоять из одного php-файла, для него можно не создавать отдельную папку)<br />
В начале php-файла плагина должно находиться его описание и лицензия:</p>
<pre>&lt;?php
/*
Plugin Name: myref
Plugin URI: http://mblogm.ru
Description: Inserts site's url
Version: 1.0.0
Author: fmblogm
Author URI: http://mblogm.ru

Copyright 2009  fmblogm (email : fmblogm {at} gmail.com)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
?&gt;</pre>
<p>Формально этого уже достаточно для создания плагина. Хотя этот плагин ничего не делает, он появится в списке плагинов, и его можно активировать.</p>
<p>Плагин может просто содержать функции, которые нужно вызывать в шаблоне, а также может реагировать на заданные события (при загрузке плагин сообщает WordPress, на какие события он будет реагировать, и как их обрабатывать.). Более сложные плагины управляются через панель администрирования.</p>
<h1>Хуки (hooks)</h1>
<p>Хуки обеспечивают привязку плагина к WordPress.</p>
<ul>
<li><strong>Действия (Actions)</strong> &#8211; это хуки, которые WordPress запускает в определенные моменты исполнения или при наступлении определенных событий. В эти моменты в плагине можно задать вызов некоторых PHP-функций с использованием Action API.</li>
<li><strong>Фильтры (Filters) </strong>- это хуки, которые WordPress запускает для того, чтобы изменять значения разных типов перед добавлением их в базу данных или перед отображением в браузере. В эти моменты в плагине можно задать вызов некоторых PHP-функций с использованием Filter API.</li>
<li><strong>Сокращенный код (Shortcodes) </strong>- это хуки, позволяющие добавлять в записи WordPress результат выполнения PHP-функций с использованием Shortcode API (начиная с WordPress 2.5) .</li>
</ul>
<h2>Сокращенный код (Shortcodes)</h2>
<p>Поддерживаются шоткоды вида</p>
<pre>[shortcode_name attr_1="value_1" ... attr_n="value_n"]</pre>
<p>и</p>
<pre>[shortcode_name attr_1="value_1" ... attr_n="value_n"]content[/shortcode_name]</pre>
<p>Функция-обработчик сокращенного кода может принимать следующие параметры</p>
<ul>
<li><strong>$atts</strong> &#8211; массив атрибутов</li>
<li><strong>$content</strong> &#8211; содержимое (когда используется форма с закрывающим тегом)</li>
<li><strong>$code -</strong> имя шоткода (когда оно соответствует имени обратного вызова )</li>
</ul>
<pre>function my_shortcode_handler($atts, $content=null, $code="") {
   // $atts    ::= array of attributes
   // $content ::= text within enclosing form of shortcode element
   // $code    ::= the shortcode found, when == callback name
   // examples: [my-shortcode]
   //           [my-shortcode/]
   //           [my-shortcode foo='bar']
   //           [my-shortcode foo='bar'/]
   //           [my-shortcode]content[/my-shortcode]
   //           [my-shortcode foo='bar']content[/my-shortcode]
}</pre>
<p><strong>Регистрация обработчика:</strong></p>
<pre>add_shortcode('my-shortcode', 'my_shortcode_handler');</pre>
<p>Например, сокращенный код <tt>[ref]</tt> с поддержкой двух атрибутов <tt>text</tt> и <tt>url</tt>. Оба атрибута являются необязательными, и когда они не заданы, применяются их дефолтные значения:</p>
<pre>// [ref text="Текст ссылки" url="url ссылки"]
function ref_func($atts) {
extract(shortcode_atts(array(
'text' =&gt; 'Study English Now',
'url' =&gt; 'http://studyenglishnow.ru/'
), $atts));
return '&lt;noindex&gt;&lt;a href="'. $url .'" rel="nofollow"&gt;'.$text.'&lt;/a&gt;&lt;/noindex&gt;';
}
add_shortcode('ref', 'ref_func');</pre>
<p>Когда вызывается тег шаблона <tt>the_content</tt> (и отображается  содержимое записи), shortcode API анализирует зарегистрированные шоткоды, выделяет их атрибуты и содержимое и  передает их обработчику данного шоткода. В тело записи вместо тега (тегов) шоткода добавляется строка, возвращаемая обработчиком.</p>
<h3>Еще один пример</h3>
<p>Следующий плагин <tt>[enti]</tt> с атрибутом <tt>text</tt> вставляет HTML-сущности заданных символов (по умолчанию плагин вставляет &#8220;]&#8221;; он используется вместо простой квадратной скобки, чтобы показывать на странице текст вызова плагина, например, &#8220;[ref]&#8220;, а не результат работы этого плагина):</p>
<pre>function enti_func($atts) {
extract(shortcode_atts(array(
'text' =&gt; ']'
), $atts));
return htmlentities($text);
}
add_shortcode('enti', 'enti_func');</pre>
<p>Этот плагин просто позволяет использовать в записи php-функцию htmlentities().<br />
Шоткод <tt>[enti text="&amp;"]</tt> выведет <tt>&amp;amp;</tt> (&amp;).</p>
]]></content:encoded><description>Рассмотрим создание простого плагина с шоткодами (Shortcodes)</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2009/12/create-plugin/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2009/12/create-plugin/</feedburner:origLink></item><item><title>Задания Cron на выполнение php-скриптов</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/VRhWxBl1FbM/</link><category>PHP</category><category>cron</category><category>автоматизация</category><category>скрипт</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Sun, 20 Dec 2009 05:59:59 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=529</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>Задания Cron</h2>
<p><strong>Cron </strong>- это демон (программа, которая постоянно работает в системе в фоновом режиме), представляющий собой планировщик задач в UNIX-подобных операционных системах (включая сервер Apache), который в определенное время автоматически выполняет задания. Пример задания &#8211; копирование базы данных MySQL в определенное место на сайте (создание резервной копии).</p>
<p>Каждый пользователь системы может добавлять свои задания, указывая, в какое время и какие скрипты нужно выполнять от его имени. Задания могут выполняться, например, раз в день, раз в месяц, раз в год.. На вашем хостинге могут действовать ограничения на общее количество заданий и на то, как часто может выполняться задание (Например, не чаще 1 раза в 10 минут и не более 10 cron-заданий).</p>
<p>Задание (таблица crontab) включает 6 разделов, разделяемых пробелами или табуляцией.</p>
<pre>минуты   часы   день_месяца   месяц   день_недели   команда</pre>
<p>Первые пять разделов задают время выполнения скрипта:<br />
минуты: 0-59<br />
часы: 0-23<br />
день месяца: 1-31<br />
месяц: 1-12<br />
день недели: 0-7 (0 и 7 &#8211; воскресенье)<br />
* &#8211; диапазон с первого до последнего.</p>
<p><tt>команда </tt>задает скрипт, который нужно выполнять, например, скрипт на Perl или на php. Если команда передает текст в стандартный вывод, этот текст отправляется на e-mail пользователя, но стандартный вывод можно перенаправить в <tt>/dev/null</tt>:</p>
<pre>команда &gt;/dev/null 2&gt;&amp;1</pre>
<p>Примеры задания времени выполнения скрипта:<br />
0 22 * * * &#8211; каждый день в 22:00<br />
0 0 1 * * &#8211; раз в месяц<br />
0,30 10-22 * * * - каждые полчаса между 10:00 и 22:00<br />
0/10 * * * * - каждые 10 минут</p>
<h2>Права доступа</h2>
<p>На скрипт рекомендуется выставить права доступа 755 (права на исполнение).</p>
<h2>Добавление задания Cron в cPanel</h2>
<p>В cPanel добавить задание довольно просто. Войдите в &#8220;Дополнительно&#8221;, &#8220;Задания Cron&#8221; и заполните форму добавления задания. Но имейте в виду, что выполнение php-скрипта имеет свои особенности.</p>
<h2>Выполнение php-скрипта в задании Cron</h2>
<p>В выполняемом php-скрипте не должны использоваться переменные окружения. Например, адреса следует прописывать явно. Дело в том, что при выполнении cron-задания в php-скрипте недоступны серверные переменные (например, $_SERVER, $_GET), т.к. веб-сервер Apache не участвует в работе демона cron и не заполняет переменные окружения.</p>
<p>В команде необходимо указать путь к php (может отличаться для разных хостингов), например, <tt>/usr/bin/php</tt>, затем пробел и полный путь к файлу скрипта:</p>
<pre>/usr/bin/php /home/логин/public_html/myscript.php</pre>
<p>Пример Cron-задания для выполнения php-скрипта один раз в день (0 0 * * * &#8211; задает периодичность)</p>
<pre>0 0 * * * /usr/bin/php /home/логин/public_html/myscript.php</pre>
]]></content:encoded><description>Имейте в виду, что выполнение php-скрипта в задании Cron имеет свои особенности.</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2009/12/cron-for-php-scripts/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2009/12/cron-for-php-scripts/</feedburner:origLink></item><item><title>Управление обтеканием</title><link>http://feedproxy.google.com/~r/mblogm/ru/~3/M_WuCxMG6Bc/</link><category>CSS</category><category>обтекание</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MBlogM</dc:creator><pubDate>Sat, 12 Dec 2009 01:49:01 PST</pubDate><guid isPermaLink="false">http://mblogm.ru/?p=514</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h1>float</h1>
<p><strong>Задает обтекание</strong><span id="more-514"></span><br />
Не наследуется<br />
Применяется ко всем элементам кроме позиционированных</p>
<h3>Может принимать значения</h3>
<p><strong>left </strong>-  Выравнивает элемент по левому краю, последующие элементы огибают его справа.<br />
<strong>right </strong>-  Выравнивает элемент по правому краю, последующие элементы огибают его слева.<br />
<strong>none </strong>- Обтекание элемента не задано.</p>
<h1>clear</h1>
<p><strong>Отменяет обтекание </strong><br />
Не наследуется<br />
Применяется к блочным и плавающим элементам<br />
Если установлено обтекание с помощью <em>float</em>, отменяет его действие.</p>
<h3>Может принимать значения</h3>
<p><strong>both </strong>- Отменяет обтекание элемента одновременно с правого и левого края.<br />
<strong>left </strong>- Отменяет обтекание с левого края. Последующие элементы будут располагаться под текущим элементом.<br />
<strong>right </strong>- Отменяет обтекание с правой стороны.<br />
<strong>none </strong>(применяется по умолчанию) &#8211; Отменяет действие clear, и обтекание выполняется так, как задано с помощью <em>float </em>или других настроек.</p>
<p>Если в посте WordPress используются теги <tt>&lt;div></tt>, для того чтобы остальные элементы страницы &#8220;не перекосило&#8221;, в конце поста может потребоваться отменить применяемое обтекание, например, добавив пустой тег (без содержимого) </p>
<pre>&lt;div style="clear:both">&lt;/div>
</pre>
<p>или</p>
<pre>&lt;div class="lastcol">&lt;/div>
</pre>
<p> а класс &#8220;lastcol&#8221; определяется в файле <tt>style.css </tt>так:</p>
<pre>
div.lastcol{clear: both}
</pre>
]]></content:encoded><description>float
Задает обтекание
Не наследуется
Применяется ко всем элементам кроме позиционированных
Может принимать значения
left -  Выравнивает элемент по левому краю, последующие элементы огибают его справа.
right -  Выравнивает элемент по правому краю, последующие элементы огибают его слева.
none - Обтекание элемента не задано.
clear
Отменяет обтекание 
Не наследуется
Применяется к блочным и плавающим элементам
Если установлено обтекание с помощью float, отменяет его действие.
Может [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mblogm.ru/2009/12/upravlenie-obtekaniem/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mblogm.ru/2009/12/upravlenie-obtekaniem/</feedburner:origLink></item></channel></rss>
