<?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>Diz blog &#187; Ajax</title>
	<atom:link href="http://diz-blog.com.ua/category/programming/ajax/feed" rel="self" type="application/rss+xml" />
	<link>http://diz-blog.com.ua</link>
	<description>Web-программирование, php скрипты, блоггинг, заработок в сети, WordPress, SEO, SMO.</description>
	<lastBuildDate>Thu, 02 Jun 2011 20:04:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Массовый отбор сайтов на основе пузомерок</title>
		<link>http://diz-blog.com.ua/mass_selection_sites_tcy_pr.html</link>
		<comments>http://diz-blog.com.ua/mass_selection_sites_tcy_pr.html#comments</comments>
		<pubDate>Tue, 27 Apr 2010 10:36:41 +0000</pubDate>
		<dc:creator>Diz</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pr]]></category>
		<category><![CDATA[тиц]]></category>

		<guid isPermaLink="false">http://diz-blog.com.ua/?p=1205</guid>
		<description><![CDATA[Есть список сайтов, необходимо отобрать из него те сайты, которые имеют определенный тиц ИЛИ pr (к примеру, условие отбора: 10]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img src="http://diz-blog.com.ua/wp-content/uploads/2010/04/bellies.jpg" alt="Пузомерки" title="Пузомерки" width="88" height="113" align="left" class="size-full wp-image-1228" />Есть список сайтов, необходимо отобрать из него те сайты, которые имеют определенный тиц <strong>ИЛИ</strong> pr (к примеру, условие отбора: 10<=тиц<=500 или 3<=pr<=5). Решению этой задачи посвящена статья, а в конце приведена ссылка на рабочий скрипт.</p>
<p style="text-align: justify;">За основу взята утилита <a href="http://diz-blog.com.ua/multi_tcy_pr_check.html" title="Массовая проверка ТИЦ и PR">массовой проверки ТИЦ и PR реализованная на php и фреймворке jquery</a>. Логика работы изменена, теперь отображаются значения ТИЦ и PR только тех сайтов, которые имеют <strong>пузомерки</strong>, удовлетворяющие критериям отбора (см. скриншот):</p>
<p><span id="more-1205"></span></p>
<p><img src="http://diz-blog.com.ua/wp-content/uploads/2010/04/criteria_tcy_pr.gif" alt="Отбор сайтов по значениям ТИЦ и PR" title="Отбор сайтов по значениям ТИЦ и PR" width="177" height="88" align="center" class="size-full wp-image-1208 aligncenter" /></p>
<p style="text-align: justify;">
В асинхронном режиме фронт-офисной частью отправляется куча POST запросов на определение тиц и pr, получая которые php скрипт либо возвращает значение <strong>пузомерок</strong>, если они попадают в указанные диапазоны, либо &#8220;-1&#8243;, если не в диапазоне или значения определить не удалось. Основной минус, из-за которого я не хочу приводить код, является способ передачи параметров. Как можно наблюдать из скриншота дополнительных параметров аж пять штук &#8211; это минимальный тиц (<em>min_tcy</em>) и pr (<em>min_pr</em>), максимальные тиц (<em>max_tcy</em>) и pr (<em>max_pr</em>), а также параметр &#8220;и/или&#8221; (<em>and_or</em>). Они передаются в скрипт при каждом запросе!!! Конечно это не есть хорошо. Оптимально было бы передать эти параметры один раз, для чего на первый взгляд подошел бы механизм сессий в php. Т.е. при отображении формы мы стартуем сессию, затем при нажатии на кнопку &#8220;Отобрать сайты&#8221; отсылаем один POST запрос, который установит на сервере четыре сессионные переменные. В функции <em>callback</em>&#8216;е обработке результата этого запроса при успешной установке параметров мы стартуем цикл асинхронного определения <strong>пузомерок</strong>. Все красиво и на первый взгляд экономит трафик и время, но не стоит забывать, что для идентификации в сессиях используется переменная <em>PHPSESSID</em> (так она называется по умолчанию) длиной 128 бит. Ее обязан возвращать браузер через куки либо дописывая к формам чтобы идентифицировать себя. Вот и получается, что в случае задействования сессий экономии трафика особой то и нет, проще передавать эти параметры с каждым запросом. Я не прав? У кого есть идеи на этот счет &#8211; прошу отписаться. Рад буду выслушать любую критику.</p>
<p style="text-align: center;"><a href="http://diz-blog.com.ua/soft/mass_selection_sites_tcy_pr/" title="Утилита массового отбора сайтов на основе пузомерок в действии" target="_blank"><strong>Утилита массового отбора сайтов на основе пузомерок в действии</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://diz-blog.com.ua/mass_selection_sites_tcy_pr.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Массовая проверка ТИЦ и PR</title>
		<link>http://diz-blog.com.ua/multi_tcy_pr_check.html</link>
		<comments>http://diz-blog.com.ua/multi_tcy_pr_check.html#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:08:39 +0000</pubDate>
		<dc:creator>Diz</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pr]]></category>
		<category><![CDATA[тиц]]></category>

		<guid isPermaLink="false">http://diz-blog.com.ua/?p=989</guid>
		<description><![CDATA[Размышляя о том в каких белых каталогах зарегистрироваться, на каких площадках покупать ссылки, какие блоги комментировать или анализируя сайты конкурентов, Вы сталкиваетесь с необходимостью узнать тиц и pr не одного, а целого списка сайтов. Для таких целей существуют скрипты массового определения пузомерок. Как же они создаются и по каким принципам работают? Это будет темой сегодняшнего [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img src="http://diz-blog.com.ua/wp-content/uploads/2010/03/multi_tcy_pr_check.jpg" alt="pr и тиц сайта" title="pr и тиц сайта" width="219" height="156" class="size-full wp-image-1015 alignleft" />Размышляя о том в каких белых каталогах зарегистрироваться, на каких площадках покупать ссылки, какие блоги комментировать или анализируя сайты конкурентов, Вы сталкиваетесь с необходимостью <strong>узнать тиц и pr</strong> не одного, а целого списка сайтов. Для таких целей существуют скрипты массового определения пузомерок. Как же они создаются и по каким принципам работают? Это будет темой сегодняшнего поста.</p>
<p><span id="more-989"></span></p>
<p style="text-align: justify;">Признаюсь, в сети существует немало реализаций этой задачи, я решил для создать утилиту для личного пользования и поделиться с Вами нюансами ее реализации.</p>
<p><strong>Цель:</strong> </p>
<p style="text-align: justify;">Реализовать утилиту на php позволяющую <strong>определить тиц и pr</strong> списка сайтов, работающую в асинхронном режиме, т.е. запрос на получение тиц и pr очередного сайта отсылается не дожидаясь получения ответа от проверки предыдущего.</p>
<p><img src="http://diz-blog.com.ua/wp-content/uploads/2010/03/checking_tcy_pr.gif" alt="Проверка ТИЦ и PR" title="Проверка ТИЦ и PR" width="332" height="320" class="size-full wp-image-1012 aligncenter" /></p>
<p><strong>Детали реализации:</strong></p>
<p style="text-align: justify;">Утилита состоит из четырех файлов:<br />
<strong>index.php</strong> &#8211; так называемый фронт-офис, содержит элемент &lt;textarea&gt; (id=&#8221;sites_list&#8221;) куда вводятся url адреса проверяемых сайтов. После нажатия кнопки <strong>&#8220;Узнать ТИЦ и PR&#8221;</strong> (id=&#8221;process&#8221;) выполняется множество ajax запросов к бэк-офисной части и результат отображается в слое ниже (id=&#8221;display_results_div&#8221;).<br />
<strong>tcy_pr.php</strong> &#8211; бэк-офис, принимает поступающие запросы и возвращает пузомерки.<br />
<strong>tcy_pr.class.php</strong> &#8211; класс, взятый с <a href="http://php-developer.ru" title="Блог php программиста">http://php-developer.ru/</a> , для получения тиц и pr, его использует tcy_pr.php. Для работы необходима библиотека CURL, которая должна входить в дистрибутив php на хостинге.<br />
<strong>styles.css</strong> &#8211; файл стилей, в нем описаны свойства слоев, используется фронт-офисом index.php
</p>
<p style="text-align: justify;">Рассмотрим реализацию фронт-офисной части поподробнее, а точнее той части, которая занимается взаимодействием с сервером по технологии ajax. Вот она:</p>

<div class="wp_codebox"><table><tr id="p9893"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code" id="p989code3"><pre class="jquery" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #000066;">$</span><span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #000066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">//Создадим функцию-обработчик, которая вызовется при нажатии на ссылку &quot;Узнать ТИЦ и PR&quot; (у нее id=&quot;process&quot;)</span>
<span style="color: #000066;">$</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#process'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//очистим слой, в который будет выводится результат</span>
	<span style="color: #000066;">$</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#display_results_div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//считаем все строки элемента textarea (его id=&quot;sites_list&quot;) в массив sites</span>
	<span style="color: #003366; font-weight: bold;">var</span> sites <span style="color: #339933;">=</span> <span style="color: #000066;">$</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#sites_list'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/\n/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//длину массива в sites_count</span>
	<span style="color: #003366; font-weight: bold;">var</span> sites_count <span style="color: #339933;">=</span> sites.<span style="color: #000066;">length</span><span style="color: #339933;">;</span>
	<span style="color: #006600; font-style: italic;">//вспомогательная итерационная переменная</span>
	<span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>sites_count<span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">//заносим в слой (его id=&quot;display_results_div&quot;) отображения результатов слои с именами сайтов и слои для их ТИЦ и PR (пока там размещаем анимированную картинку, сигнализирующую о начале процесса)</span>
		<span style="color: #000066;">$</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#display_results_div&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;div class='site_name'&gt;&quot;</span><span style="color: #339933;">+</span>sites<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;&lt;/div&gt; &lt;div class='pr' id='l_pr_&quot;</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;'&gt;&lt;img src='ajax_loading.gif'&gt;&lt;/div&gt; &lt;div class='tcy' id='l_tcy_&quot;</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;'&gt;&lt;img src='ajax_loading.gif'&gt;&lt;/div&gt;&lt;div class='clear'&gt;&lt;/div&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>sites_count<span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">//в каждом ajax-запросе отсылает две переменные site - имя сайта и его порядковый номер i </span>
		<span style="color: #000066;">$</span>.<span style="color: #000066;">post</span><span style="color: #009900;">&#40;</span>
			<span style="color: #3366CC;">&quot;tcy_pr.php&quot;</span><span style="color: #339933;">,</span> 
			<span style="color: #009900;">&#123;</span><span style="color: #3366CC;">'site'</span><span style="color: #339933;">:</span> sites<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'i'</span><span style="color: #339933;">:</span> i<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> 
			<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">data</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
				<span style="color: #006600; font-style: italic;">//выводим полученные от сервера ТИЦ и PR в соответствующих слоях. Внимание - переданная ранее на сервер переменная i помогает идентифицировать сайт и соответствующий ему слой.</span>
				<span style="color: #003366; font-weight: bold;">var</span> res <span style="color: #339933;">=</span> <span style="color: #000066;">data</span>.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066;">$</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#l_pr_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>res<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">html</span><span style="color: #009900;">&#40;</span>res<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066;">$</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#l_tcy_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>res<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">html</span><span style="color: #009900;">&#40;</span>res<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
		       <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p style="text-align: justify;">Скрипт, обрабатывающий запросы на сервере и возвращающий пузомерки, будет примерно следующим:</p>

<div class="wp_codebox"><table><tr id="p9894"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code" id="p989code4"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">//подключаем класс для определения тиц и pr</span>
<span style="color: #b1b100;">include</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tcy_pr.class.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//создаем экземпляр класса</span>
<span style="color: #000088;">$tcy_pr</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TCY_PR<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> 	<span style="color: #009900;">&#123;</span> <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//проверки на корректность данных... кстати можно добавить и свои</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;http://&quot;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">stripslashes</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//вызов методов непосредственно определения тиц и pr</span>
<span style="color: #000088;">$pr</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tcy_pr</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">check_pr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tcy</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tcy_pr</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">check_tcy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;site&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$pr</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$pr</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;0&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tcy</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$tcy</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;0&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//выводим результат</span>
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;i&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$pr</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$tcy</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p style="text-align: justify;">Описание самого класса (tcy_pr.class.php) приводить не буду, с ним вы можете ознакомиться, скачав скрипт по ссылке в конце поста. Отмечу, что работу утилиты можно сделать &#8220;еще более асинхронной&#8221; <img src='http://diz-blog.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  , ведь на данный момент при выполнении каждого запроса к серверу по каждому сайту определяются последовательно ТИЦ и PR, а можно отправлять по каждой пузомерке отдельный запрос! Это я оставляю для домашнего задания. <img src='http://diz-blog.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: center;">
<a title="Скачать утилиту массовой проверки ТИЦ и PR" href="http://diz-blog.com.ua/files/multi_tcy_pr_check.rar" target="_blank"><strong>Скачать утилиту массовой проверки ТИЦ и PR</strong></a><br />
<a title="Утилита массовой проверки ТИЦ и PR в действии" href="http://diz-blog.com.ua/soft/multi_tcy_pr_check" target="_blank"><strong>Утилита массовой проверки ТИЦ и PR в действии</strong></a>
</p>
<p style="text-align: justify;">P.S. Как видите оказалось не так сложно было реализовать асинхронное взаимодействие, ведь на самом деле библиотека JQuery работает по-умолчанию в этом режиме. Для лучшего понимания этих процессов советую ознакомиться со статьей <a href="http://www.linkexchanger.su/2008/34.html">jQuery и Ajax: запросы</a>. У меня на сегодня все.</p>
]]></content:encoded>
			<wfw:commentRss>http://diz-blog.com.ua/multi_tcy_pr_check.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Еще один способ отображения архива постов</title>
		<link>http://diz-blog.com.ua/another-way-2-display-the-archive-of-posts.html</link>
		<comments>http://diz-blog.com.ua/another-way-2-display-the-archive-of-posts.html#comments</comments>
		<pubDate>Wed, 24 Feb 2010 18:57:23 +0000</pubDate>
		<dc:creator>Diz</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Плагины]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://diz-blog.com.ua/?p=914</guid>
		<description><![CDATA[Прошло уже почти две недели как я ничего не писал в блог, могло показаться, что я забросил это дело, но нет&#8230; Все это время я изучал  мастерство &#8220;плагинописания&#8221;.   И вот результат &#8211; &#8220;сАвсЭм маленький, но очень гордый&#8221;   плагин wp-display-archives, использующий ajax.
Все прекрасно знают что такое архив постов и зачем он нужен. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img src="http://diz-blog.com.ua/wp-content/uploads/2010/02/archives.jpg" alt="Архивы постов Wordpress" title="Архивы постов Wordpress" width="150" height="186" class="size-full wp-image-919 alignleft" />Прошло уже почти две недели как я ничего не писал в блог, могло показаться, что я забросил это дело, но нет&#8230; Все это время я изучал  мастерство &#8220;плагинописания&#8221;. <img src='http://diz-blog.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  И вот результат &#8211; &#8220;сАвсЭм маленький, но очень гордый&#8221; <img src='http://diz-blog.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  плагин <strong>wp-display-archives</strong>, использующий ajax.</p>
<p style="text-align: justify;">Все прекрасно знают что такое <strong>архив постов</strong> и зачем он нужен. Мало кто из блоггеров не пользуется им. Архив обычно визуализируется либо как список ссылок (<em>&lt;ul&gt;</em>) с разбиением по месяцам и годам, либо в виде выпадающего меню (<em>&lt;select&gt;</em>), реже но встречаются еще и в виде дерева. Я хочу рассмотреть его реализацию в виде двух выпадающих списков (два <em>&lt;select&gt;</em>). Что бы дальше стало понятно, о чем идет речь &#8211; глянем на картинку, на которой продемонстрированы распространенные способы отображения архива и способ предложенный мною (<em>пункт 3</em>):</p>
<p><span id="more-914"></span><br />
<img src="http://diz-blog.com.ua/wp-content/uploads/2010/02/archive_list_evolution.gif" alt="Варианты отображения архива постов" title="Варианты отображения архива постов" width="564" height="100" class="size-full wp-image-918 aligncenter" /></p>
<p style="text-align: justify;">1-й способ реализуется вызовом функции:</p>

<div class="wp_codebox"><table><tr id="p9149"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p914code9"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> wp_get_archives<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p style="text-align: justify;"> без каких-либо параметров. Генерируется список, где каждая ссылка &#8211; архив за определенный месяц. Все красиво и очень наглядно. Минус &#8211; со временем количество ссылок увеличивается, приходится лимитировать вывод.</p>
<p style="text-align: justify;">2-й способ реализуется той же самой функцией, но только приправляется тэгами:</p>

<div class="wp_codebox"><table><tr id="p91410"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p914code10"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">select</span> <span style="color: #000066;">onChange</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'document.location.href=this.options[this.selectedIndex].value;'</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">option</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span>&gt;&lt;?php echo<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Выбрать месяц'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">option</span>&gt;</span>
<span style="color: #009900;">&lt;?php wp_get_archives<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'type=monthly&amp;format=option&amp;show_post_count=1'</span><span style="color: #66cc66;">&#41;</span>; ?&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">select</span>&gt;</span></pre></td></tr></table></div>

<p style="text-align: justify;">В этом случае передаются параметры: <em>type=monthly</em> &#8211; выводить по месяцам, <em>format=option</em> &#8211; указывается что архивы будут выводиться как <em>&lt;option&gt;</em> элементы тэга <em>&lt;select&gt;</em>, <em>show_post_count=1</em> &#8211; отображать количество постов в каждом месяце. При выборе нужного месяца и года во всплывающем списке происходит переход на страницу архива. Такое представление очень компактно, но присутствует дублирование по годам (т.е. рядом с каждым месяцем выводится и год, которому он относится).</p>
<p style="text-align: justify;">3-й способ, мой &#8211; два выпадающих списка: в одном годы, в другом месяцы, при выборе года динамически (без перезагрузки страницы) подгружаются месяца и количество постов в них.</p>
<p style="text-align: justify;"><strong>Цель:</strong> Реализуем 3-й способ с помощью библиотеки <strong>jquery</strong> и оформим его в виде плагина к <strong>WordPress</strong>.</p>
<p style="text-align: justify;"><strong>Детали реализации:</strong><br />
Как подключать <strong>jquery</strong> я уже рассказывал в статье о <a title="Оповещение о новых заявках в Sape" href="http://diz-blog.com.ua/insert-ajax-form-in-post.html" target="_blank">вставке ajax формы в любой пост (запись)</a>. Исходный код плагина:</p>

<div class="wp_codebox"><table><tr id="p91411"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
</pre></td><td class="code" id="p914code11"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">/*
Plugin Name: Display archives as two select
Description: Плагин отображает архив постов в виде 2-х раскрывающихся списков выбора
Version: 1.0
Author: Diz
Author URI: http://diz-blog.com.ua/
*/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> wp_display_archives_months_list<span style="color: #009900;">&#40;</span><span style="color: #000088;">$wp</span><span style="color: #009900;">&#41;</span> 	
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$months_list</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Январь'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Февраль'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Март'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Апрель'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Май'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">6</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Июнь'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Июль'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Август'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">9</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Сентябрь'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Октябрь'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">11</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Ноябрь'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">12</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Декабрь'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'year'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'year'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'year'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$months_of_archive</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT DISTINCT MONTH (<span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_date) as `month`, COUNT(*) as `count_of_posts`
		FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span> WHERE YEAR(<span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_date) = &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'year'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; AND <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_status = 'publish' AND <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_type = 'post' GROUP BY MONTH (<span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_date)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$months_of_archive</span><span style="color: #009900;">&#41;</span> 
	<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
	<span style="color: #339933;">&lt;</span>select name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;months&quot;</span> onChange<span style="color: #339933;">=</span><span style="color: #0000ff;">'document.location.href=this.options[this.selectedIndex].value;'</span><span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">&gt;</span>Выберите месяц<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$months_of_archive</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$m_o_a</span><span style="color: #009900;">&#41;</span> 
		<span style="color: #009900;">&#123;</span> 
<span style="color: #000000; font-weight: bold;">?&gt;</span>	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&lt;?php echo(get_month_link(<span style="color: #006699; font-weight: bold;">$_GET</span>['year'],<span style="color: #006699; font-weight: bold;">$m_o_a-&gt;month</span>));?&gt;&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?</span>php <span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$months_list</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$m_o_a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">month</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; (&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$m_o_a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">count_of_posts</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
		<span style="color: #009900;">&#125;</span> 
<span style="color: #000000; font-weight: bold;">?&gt;</span>
	<span style="color: #339933;">&lt;/</span>select<span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
    	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'wp_display_archives_months_list'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> wp_display_archives_years_list<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$years_of_archive</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wpdb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_results</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT DISTINCT YEAR(<span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_date) as `year` FROM <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span> WHERE <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_status = 'publish' AND <span style="color: #006699; font-weight: bold;">$wpdb-&gt;posts</span>.post_type = 'post'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$years_of_archive</span><span style="color: #009900;">&#41;</span> 
	<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #666666; font-style: italic;">// &lt;![CDATA[</span>
<span style="color: #000000; font-weight: bold;">function</span> get_months_list<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>  
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">var</span> str <span style="color: #339933;">=</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#display_archives&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">serialize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
jQuery<span style="color: #339933;">.</span>get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;?php echo(get_bloginfo('</span>wpurl<span style="color: #0000ff;">')); ?&gt;'</span><span style="color: #339933;">,</span> str<span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span>  <span style="color: #009900;">&#123;</span> jQuery<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#months_div&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span>html<span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #666666; font-style: italic;">//alert('&lt;?php echo(get_bloginfo('wpurl')); ?&gt;');</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">// ]]&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>form id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;display_archives&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;years_div&quot;</span> align<span style="color: #339933;">=</span><span style="color: #0000ff;">'center'</span><span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>select name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;year&quot;</span> onChange<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;if (this.options[this.selectedIndex].value != '') {get_months_list(); return false;}&quot;</span><span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">&gt;</span>Выберите год<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$years_of_archive</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$y_o_a</span><span style="color: #009900;">&#41;</span> 
		<span style="color: #009900;">&#123;</span> 
	<span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&lt;?php echo (<span style="color: #006699; font-weight: bold;">$y_o_a-&gt;year</span>);?&gt;&quot;</span><span style="color: #339933;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?</span>php <span style="color: #b1b100;">echo</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$y_o_a</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">year</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
		<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
	<span style="color: #339933;">&lt;/</span>select<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;months_div&quot;</span> align<span style="color: #339933;">=</span><span style="color: #0000ff;">'center'</span><span style="color: #339933;">&gt;&lt;</span>br<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p style="text-align: justify;">
Разберем некоторые нюансы реализации. Плагин состоит их двух функций: <strong><em>wp_display_archives_months_list()</em></strong> &#8211; отображает список месяцев, <br /><strong><em>wp_display_archives_years_list()</em></strong> &#8211; отображает список годов.<br />
После того как посетитель выбрал год, выполняется ajax-запрос методом <em>GET</em> к серверу и управление получает первая функция, которая производит выборку месяцев из базы, согласно указанному году, возвращая их в виде <em>&lt;select&gt;</em>. Браузер получив эти данные, генерирует html-код.
</p>
<p style="text-align: center;"><a title="скачать WP-DISPLAY-ARCHIVES" href="http://diz-blog.com.ua/files/wp-display-archives.rar" target="_blank"><strong>Скачать плагин WP-DISPLAY-ARCHIVES</strong></a>
</p>
<p style="text-align: justify;"><strong>Инсталляция плагина:</strong> Сохраняем архив себе на диск, распаковываем и как обычно &#8211; кладем в папку <strong>\plugins\</strong>, в админке активируем плагин и в шаблоне в нужном месте (я вставил в <strong>sidebar.php</strong>) помещаем код:</p>

<div class="wp_codebox"><table><tr id="p91412"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p914code12"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> 
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'wp_display_archives_years_list'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> 
               <span style="color: #009900;">&#123;</span>wp_display_archives_years_list<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> 
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p style="text-align: justify;"><strong>Ссылки:</strong></p>
<ul>
<li><a title="AJAX_in_Plugins" href="http://codex.wordpress.org/AJAX_in_Plugins" target="_blank">AJAX_in_Plugins</a></li>
<li><a title="Wordpress Quick Tricks #01. AJAX и не только" href="http://anton.shevchuk.name/wordpress/wordpress-quick-tricks-01-ajax-and-more">Wordpress Quick Tricks #01. AJAX и не только</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://diz-blog.com.ua/another-way-2-display-the-archive-of-posts.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

