<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>tommyred в RSS</title>
<link>http://bigstreet.ru/blog/user/tommyred/</link>
<atom:link href="http://bigstreet.ru/blog/rss/user/tommyred/" rel="self" type="application/rss+xml" />
<language>ru</language>
<description>Блог пользователя tommyred в RSS.</description>
<managingEditor>telegraph@bigstreet.ru (http://bigstreet.ru)</managingEditor>
<webMaster>telegraph@bigstreet.ru (http://bigstreet.ru)</webMaster>
<copyright>http://bigstreet.ru/blog/user/tommyred/</copyright>
<lastBuildDate>Wed, 25 Feb 2009 21:35:06 +0700</lastBuildDate>
<generator>tommyred</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<item>
<title>А нам чужого не надо, у нас свое класть некуда</title>
<link>http://bigstreet.ru/blog/topic/929/</link>
<description><![CDATA[<style type="text/css">/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.php.php .de1, .php.php .de2 {font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;color: #000020;}
.php.php  {color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;}
.php.php a:link {color: #000060;}
.php.php a:hover {background-color: #f0f000;}
.php.php .imp {font-weight: bold; color: red;}
.php.php li, .php.php .li1 {font-weight: normal;color: #003030;}
.php.php .ln {width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;}
.php.php .kw1 {color: #b1b100;}
.php.php .kw2 {color: #000000; font-weight: bold;}
.php.php .kw3 {color: #990000;}
.php.php .co1 {color: #666666; font-style: italic;}
.php.php .co2 {color: #666666; font-style: italic;}
.php.php .co3 {color: #0000cc; font-style: italic;}
.php.php .co4 {color: #0000ff; font-style: italic;}
.php.php .coMULTI {color: #666666; font-style: italic;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .br0 {color: #009900;}
.php.php .sy0 {color: #339933;}
.php.php .st0 {color: #0000ff;}
.php.php .st_h {color: #0000ff;}
.php.php .nu0 {color: #cc66cc;}
.php.php .nu8 {color: #208080;}
.php.php .nu12 {color: #208080;}
.php.php .nu19 {color:#800080;}
.php.php .me1 {color: #004000;}
.php.php .me2 {color: #004000;}
.php.php .re0 {color: #000088;}
.php.php span.xtra { display:block; }
</style>
Я сперва не понял что произошло. Вроде бы в паблик не выкладывал измененные файлы своей сборки BS. А тут, смотрю на неком «сайде» ну прям копия «свежепроапгрейженного» мной модуля <b>photos</b>. Кхе. Блоки, подписи в месагах системных, даже иконки и те — с art-blog.ru ))) Оказалось, <a href="http://bigstreet.ru/profile/bond1211/">некто</a> полазал, где нельзя, и спи***л чужие <b>tpl</b> файлы без разрешения. Вот так вот без изысков.<br><cut/><br>А вот и кусочек логов:<br><blockquote>Логи и IP-адреса убраны по просьбе Alphard`a</blockquote><br><br>Что ж теперь сделаешь, сам виноват, прошляпил дырку… понадеялся на порядочность человеческую (это я ступииил), т.к на сайт мой ходит пока что узкий круг знакомых мне людей only =) ну ладно, впредь умнее буду.<br><br>Теперь о хорошем: товарищу Бонду — «питёрка» за сообразительность. Знаю — не первый его копипаст, верю — не последний. Так держать! <br>Для всех остальных — вперед наука: будтье осторожны с новыми сборками BS (возможно администрация сочтет нужным закрыть эту лазейку для лентяев). <br>Всем, у кого есть сайты на BS, и есть нажитое (созданное) «непосильным» трудом =), рекомендую использовать в <b>.htaccess</b> — <b>Deny from all</b>, как минимум для файлов с расширением <b>*.tpl</b><br><br>Для тех, кто в танке:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>Files <span class="st0">&quot;<span class="es0">\.</span>tpl$&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">order allow<span class="sy0">,</span>deny</div></li>
<li class="li1"><div class="de1">deny from all</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>Files<span class="sy0">&gt;</span></div></li>
</ol></div><br><br>А товарищу Бонду рекомендую все же не заниматься херней, т.к. к примеру, немалая часть изменений в мои файлах затрагивает не только <b>.tpl</b>, но и <b>.php</b> исходники в разных каталогах (и сам-то все уже не упомню).]]></description>
<pubDate>Thu, 17 Dec 2009 03:36:22 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/929/</guid>
</item>
<item>
<title>Спамеры атакуют сайты на основе bigstreet</title>
<link>http://bigstreet.ru/blog/topic/775/</link>
<description><![CDATA[Не знаю как вы, а я лично обратил внимание на то, что вот уже в течение 3-х дней сайты на основе <b>bigstreet</b> подвергаются спам-атаке. Заметил это на примере своего сайта, а также на других сайтах с открытой регистрацией — bigstreet.ru, flatlands.ru, lakefishing.ru и еще многих из тех, которые представлены в сообществе <b>Powered by BigStreet</b>. Я не знаю что это — спланированная акция или случайная брешь в коде, но проблема есть.<br><cut><br>На всех сайтах т.н. пользователи (такие как <b>ciyoquhi, litoxusi, lixodumi, juyeleyo, wadiquno, yunicamu, sayohana, munefeko, zodayofa, xoreleja, yoyusata, rofecefe, mizetone</b>...) без труда проходят стандартную процедуру регистрации. Не думаю что это делается вручную — интервал между регистрациями примерно 1 час, время везде совпадает.<br><br>Скрипт (а скорее всего это скрипт) действует по схеме: регистрация &gt; активация &gt; редактировать профиль &gt; оставить в поле 'адрес сайта' ссылку на сателлит.<br><br>Кто-то возможно посмеется и назовет меня параноиком, кто-то просто не обратит внимания на странные ники регистрирующихся и какие-то жалкие 10-20 ссылок...<br><br>У того, кому не приятно наблюдать, как его сайт превращают в линкопомойку есть несколько вариантов на выбор:<br><br>Решение закрытый сайт системой инвайтов не рассматриваем (хотя это, бесспорно, тоже выход.)<br><br><b>1.</b> Самый простой вариант — закрыть от гостей поле 'адрес_сайта', чтобы поисковики не индексировали ссылки спамера (что видимо и сделано здесь, на bigstreet.ru). Правда, в этом случае никто не гарантирует, что в следующий раз ссылку не запостят в какое-нибудь другое поле.<br><br><b>2.</b> Поставить <a href="http://bigstreet.ru/blog/topic/630/">плагин к Smarty</a>, который все внешние ссылки будет фильтровать и выдавать через редирект. Будут проблемы, если на страницах есть оплаченные ссылки (в этом случае придется плагин немного подкрутить).<br><br><b>3.</b> Добавить дополнительную проверку при регистрации — например вопрос без ответа на который регистрация будет невозможна.<br><br><b>4.</b> Найти в Интернете любое другое решение (благо информации на тему защиты от спам-ботов достаточно).<br><br>Если это по какой-то причине сделать проблематично, то хотя бы измените стандартные настройки <b>kcaptcha</b> в файле vendors/kcaptcha/kcaptcha_config.php (длина и амплитуда).<br><br>Кстати говоря, на <a href="http://captcha.ru">captcha.ru</a> уже можно взять новую версию <b>kcaptcha 1.2.6</b> (обращаю внимание, т.к. в версии альфа 0.2.1 — kcaptcha 1.2.5)<br><br>В идеале, конечно, использовать комплексные меры.<br> <br>Еще можно закрыть доступ с засвеченного ботом-спамером IP адреса, сделав соответствующую запись в htaccess, но это не избавит от проблемы в будущем.<br>Впрочем, от проблем в будущем ничто не избавит =), но это не значит, что нам не нужно решать проблемы в настоящем.<br><br><b>P.S.</b> Да, еще момент. В стандартном модуле blog можно оказывается запостить неприлично большое кол-во тегов при добавлении поста. Я об этом не знал, пока не поимел счастье выгребать больше нескольких сотен спамерских тегов из базы после пары сообщений, скажем так, рекламного характера. Хозяин-барин конечно, но я после этого случая поставил ограничение в данном поле по <b>maxlength</b> в разумных пределах, чего и вам советую.]]></description>
<pubDate>Mon, 27 Jul 2009 23:40:30 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/775/</guid>
</item>
<item>
<title>RSS для комментариев в топиках и прямом эфире</title>
<link>http://bigstreet.ru/blog/topic/768/</link>
<description><![CDATA[<style type="text/css">/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.php.php .de1, .php.php .de2 {font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;color: #000020;}
.php.php  {color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;}
.php.php a:link {color: #000060;}
.php.php a:hover {background-color: #f0f000;}
.php.php .imp {font-weight: bold; color: red;}
.php.php li, .php.php .li1 {font-weight: normal;color: #003030;}
.php.php .ln {width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;}
.php.php .kw1 {color: #b1b100;}
.php.php .kw2 {color: #000000; font-weight: bold;}
.php.php .kw3 {color: #990000;}
.php.php .co1 {color: #666666; font-style: italic;}
.php.php .co2 {color: #666666; font-style: italic;}
.php.php .co3 {color: #0000cc; font-style: italic;}
.php.php .co4 {color: #0000ff; font-style: italic;}
.php.php .coMULTI {color: #666666; font-style: italic;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .br0 {color: #009900;}
.php.php .sy0 {color: #339933;}
.php.php .st0 {color: #0000ff;}
.php.php .st_h {color: #0000ff;}
.php.php .nu0 {color: #cc66cc;}
.php.php .nu8 {color: #208080;}
.php.php .nu12 {color: #208080;}
.php.php .nu19 {color:#800080;}
.php.php .me1 {color: #004000;}
.php.php .me2 {color: #004000;}
.php.php .re0 {color: #000088;}
.php.php span.xtra { display:block; }
</style>
Долгое время досадовал я на то, что никто на Большой улице пока еще не прицепил <b>RSS на комментарии</b>. <br>Хотелось такую штуку достаточно давно, причем, как для модуля Эфир, так и для комментариев в топиках.<br>Недавно припекло и решил взяться за дело сам… <br>Пришлось немного поднапрячься (т.к. php вообще-то не мой конёк), но лишь немного, благодаря тому, что в исходниках модуля <b>BLOG</b> уже есть пример реализации <b>RSS</b>. Нужно было просто дописать кое-что по аналогии с существующим вариантом. Результат не расстроил. Потому, не смотря на то, что времени на постописательство сейчас совершенно нет, решил запостить план действий для того, кто захочет сделать подобное на своем сайте.<br>Надеюсь, пост окажется полезным. <br><cut><br><br><b>RSS для модуля Эфир</b><br><br><b>1.</b> В папке modules/onair/ создаем файл <b>rss.action.php</b> следующего содержания: <br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;?php</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span><span class="st_h">'system/mappers/comments.mysql.mapper.php'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$oCommentsMapper</span> <span class="sy0">=</span> <span class="kw2">new</span> Comments_MySQLMapper<span class="br0">&#40;</span>System_Database<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="st_h">'site'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">System_Essences<span class="sy0">::</span><span class="me2">getEssence</span><span class="br0">&#40;</span><span class="st_h">'Comments'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re0">$rights</span> <span class="sy0">=</span> <span class="br0">&#40;</span>string<span class="br0">&#41;</span><span class="br0">&#40;</span><span class="br0">&#40;</span>int<span class="br0">&#41;</span><span class="re0">$oSession</span><span class="sy0">-&gt;</span><span class="me1">isModeratorStatus</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="br0">&#40;</span>int<span class="br0">&#41;</span><span class="re0">$oSession</span><span class="sy0">-&gt;</span><span class="me1">isAdministratorStatus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw2">false</span> <span class="sy0">===</span> <span class="br0">&#40;</span><span class="re0">$aCommentsRes</span> <span class="sy0">=</span> System_Cacher<span class="sy0">::</span><span class="me2">Get</span><span class="br0">&#40;</span><span class="st0">&quot;all_comments_rss_{$rights}&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$aCommentsRes</span> <span class="sy0">=</span> <span class="re0">$oCommentsMapper</span><span class="sy0">-&gt;</span><span class="me1">getCollectionOnAir</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="nu0">15</span><span class="sy0">,</span> <span class="re0">$oSession</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System_Cacher<span class="sy0">::</span><span class="me2">Set</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="sy0">,</span> <span class="st0">&quot;all_comments_rss_{$rights}&quot;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu0">3600</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#41;</span> and <span class="sy0">!</span><span class="kw3">empty</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oLastComment</span> <span class="sy0">=</span> <span class="kw3">array_pop</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">array_push</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$oLastComment</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$lastmodified</span> <span class="sy0">=</span> <span class="re0">$oLastComment</span><span class="sy0">-&gt;</span><span class="me1">getAdded</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$aCollection</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span> <span class="kw1">AS</span> <span class="re0">$oComment</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">setAdded</span><span class="br0">&#40;</span><span class="kw3">date</span><span class="br0">&#40;</span><span class="st0">&quot;D, d M Y H:i:s&quot;</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">getAdded</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">' +0300'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$last_build_date</span> <span class="sy0">=</span> <span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">getAdded</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">array_push</span><span class="br0">&#40;</span><span class="re0">$aCollection</span><span class="sy0">,</span> <span class="re0">$oComment</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'aComments'</span><span class="sy0">,</span> <span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'last_build_date'</span><span class="sy0">,</span> <span class="re0">$last_build_date</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-Type: application/rss+xml; charset=UTF-8'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-Type: text/xml; charset=UTF-8'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">?&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div> <br><br><br><b>2.</b> В папке modules/onair/templates/ создаем файл <b>rss.tpl</b>: <br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>?xml version<span class="sy0">=</span><span class="st0">&quot;1.0&quot;</span> encoding<span class="sy0">=</span><span class="st0">&quot;UTF-8&quot;</span><span class="kw2">?&gt;</span></div></li>
<li class="li1"><div class="de1">&lt;rss version=&quot;2.0&quot; xmlns:atom=&quot;http://www.w3.org/2005/Atom&quot;&gt;</div></li>
<li class="li1"><div class="de1">&lt;channel&gt;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;title&gt;Эфир сайта {$oSettings-&gt;getMetaTitle()}&lt;/title&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;link&gt;{$oRouter-&gt;getPathWeb()}/onair/rss/&lt;/link&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;atom:link href=&quot;{$oRouter-&gt;getPathWeb()}/onair/rss/&quot; rel=&quot;self&quot; type=&quot;application/rss+xml&quot; /&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;language&gt;ru&lt;/language&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;description&gt;&lt;![CDATA[{$oSettings-&gt;getMetaDescription()}]]&gt;&lt;/description&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;managingEditor&gt;{$oSettings-&gt;getMailerFromEmail()} ({$oRouter-&gt;getPathWeb()})&lt;/managingEditor&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;webMaster&gt;{$oSettings-&gt;getMailerFromEmail()} ({$oRouter-&gt;getPathWeb()})&lt;/webMaster&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;copyright&gt;{$oRouter-&gt;getPathWeb()}&lt;/copyright&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;lastBuildDate&gt;{$last_build_date}&lt;/lastBuildDate&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;generator&gt;{$oRouter-&gt;getPathWeb()}&lt;/generator&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;docs&gt;http://blogs.law.harvard.edu/tech/rss&lt;/docs&gt;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; {foreach item=oComment from=$aComments}</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;item&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;title&gt;{$oComment-&gt;getEssenceTitle()}&lt;/title&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;link&gt;{$oRouter-&gt;getPathWeb()}/blog/topic/{$oComment-&gt;getEssenceId()}/#comment_{$oComment-&gt;getId()}&lt;/link&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;description&gt;&lt;![CDATA[&lt;b&gt;{$oComment-&gt;getAuthorLogin()}:&lt;/b&gt; {$oStringsTool-&gt;unparseText($oComment-&gt;getText())}]]&gt;&lt;/description&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;pubDate&gt;{$oComment-&gt;getAdded()}&lt;/pubDate&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;guid isPermaLink=&quot;true&quot;&gt;{$oRouter-&gt;getPathWeb()}/blog/topic/{$oComment-&gt;getEssenceId()}/#comment_{$oComment-&gt;getId()}&lt;/guid&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/item&gt;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; {/foreach}</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&lt;/channel&gt;</div></li>
<li class="li1"><div class="de1">&lt;/rss&gt;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>RSS поток эфира будет отдаваться по адресу:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">http<span class="sy0">:</span><span class="co1">//domain.ru/onair/rss</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br>Теперь пишем ссылку на канал в любом месте шаблона — и все готово.<br><br><br><b>RSS для комментариев в топиках</b><br><br>Очень полезная фича для тех, кто не зарегистрирован или не отвечал в топике, но, тем не менее, считает топик интересным и желает следить за комментариями конкретно этого топика.<br><br><b>1.</b> Редактируем <b>modules/blog/rss.action.php</b>:<br><br>После строк:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'oUser'</span><span class="sy0">,</span> <span class="re0">$oUser</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>и перед:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">default</span><span class="sy0">:</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw2">false</span> <span class="sy0">===</span> <span class="br0">&#40;</span><span class="re0">$aTopicsRes</span> <span class="sy0">=</span> System_Cacher<span class="sy0">::</span><span class="me2">Get</span><span class="br0">&#40;</span><span class="st0">&quot;approved_topics_rss_{$rights}&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$aTopicsRes</span> <span class="sy0">=</span> <span class="re0">$oTopicsMapper</span><span class="sy0">-&gt;</span><span class="me1">getCollectionLast</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="nu0">7</span><span class="sy0">,</span> <span class="re0">$oSession</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System_Cacher<span class="sy0">::</span><span class="me2">Set</span><span class="br0">&#40;</span><span class="re0">$aTopicsRes</span><span class="sy0">,</span> <span class="st0">&quot;approved_topics_rss_{$rights}&quot;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu0">1800</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>нужно вставить:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">// rss-комментарии к топику</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span><span class="br0">&#40;</span><span class="st_h">'topic'</span><span class="br0">&#41;</span><span class="sy0">:</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oTopic</span> <span class="sy0">=</span> <span class="kw2">null</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw2">false</span> <span class="sy0">===</span> <span class="br0">&#40;</span><span class="re0">$oTopic</span> <span class="sy0">=</span> System_Cacher<span class="sy0">::</span><span class="me2">Get</span><span class="br0">&#40;</span><span class="st0">&quot;topic_by_id_&quot;</span><span class="sy0">.</span>System_Router<span class="sy0">::</span><span class="me2">getParam</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$oTopic</span> <span class="sy0">=</span> <span class="re0">$oTopicsMapper</span><span class="sy0">-&gt;</span><span class="me1">findById</span><span class="br0">&#40;</span>System_Router<span class="sy0">::</span><span class="me2">getParam</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System_Cacher<span class="sy0">::</span><span class="me2">Set</span><span class="br0">&#40;</span><span class="re0">$oTopic</span><span class="sy0">,</span> <span class="st0">&quot;topic_by_id_&quot;</span><span class="sy0">.</span>System_Router<span class="sy0">::</span><span class="me2">getParam</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu0">3600</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'oTopic'</span><span class="sy0">,</span> <span class="re0">$oTopic</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$oTopic</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> System_Error<span class="br0">&#40;</span><span class="st_h">'Запрошенная страница не найдена.'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System_Router<span class="sy0">::</span><span class="me2">setCurrentModule</span><span class="br0">&#40;</span><span class="st_h">'errors'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System_Router<span class="sy0">::</span><span class="me2">setCurrentAction</span><span class="br0">&#40;</span><span class="st_h">'404'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">require_once</span> <span class="st_h">'system/essences/comments.essence.php'</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">require_once</span><span class="br0">&#40;</span><span class="st_h">'system/mappers/comments.mysql.mapper.php'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oCommentsMapper</span> <span class="sy0">=</span> <span class="kw2">new</span> Comments_MySQLMapper<span class="br0">&#40;</span>System_Database<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="st_h">'site'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw2">false</span> <span class="sy0">===</span> <span class="br0">&#40;</span><span class="re0">$aCommentsRes</span> <span class="sy0">=</span> System_Cacher<span class="sy0">::</span><span class="me2">Get</span><span class="br0">&#40;</span><span class="st0">&quot;topic_comments_rss_{$oTopic-&gt;getId()}_{$rights}&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$aCommentsRes</span> <span class="sy0">=</span> <span class="re0">$oCommentsMapper</span><span class="sy0">-&gt;</span><span class="me1">getCollectionByTopic</span><span class="br0">&#40;</span><span class="re0">$oTopic</span><span class="sy0">,</span> <span class="nu0">1</span><span class="sy0">,</span> <span class="nu0">10</span><span class="sy0">,</span> <span class="re0">$oSession</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System_Cacher<span class="sy0">::</span><span class="me2">Set</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="sy0">,</span> <span class="st0">&quot;topic_comments_rss_{$oTopic-&gt;getId()}_{$rights}&quot;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu0">3600</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'aComments'</span><span class="sy0">,</span> <span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">// rss-комментарии к топику</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Далее перед<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-Type: application/rss+xml; charset=UTF-8'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-Type: text/xml; charset=UTF-8'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>добавляем:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">// rss-комментарии к топику</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#41;</span> and <span class="sy0">!</span><span class="kw3">empty</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oLastComment</span> <span class="sy0">=</span> <span class="kw3">array_pop</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">array_push</span><span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$oLastComment</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$lastmodified</span> <span class="sy0">=</span> <span class="re0">$oLastComment</span><span class="sy0">-&gt;</span><span class="me1">getAdded</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$aCollection</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span> <span class="kw1">AS</span> <span class="re0">$oComment</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">setAdded</span><span class="br0">&#40;</span><span class="kw3">date</span><span class="br0">&#40;</span><span class="st0">&quot;D, d M Y H:i:s&quot;</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">getAdded</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">' +0300'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$last_build_date</span> <span class="sy0">=</span> <span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">getAdded</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">array_push</span><span class="br0">&#40;</span><span class="re0">$aCollection</span><span class="sy0">,</span> <span class="re0">$oComment</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'aComments'</span><span class="sy0">,</span> <span class="re0">$aCommentsRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'last_build_date'</span><span class="sy0">,</span> <span class="re0">$last_build_date</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co1">// rss-комментарии к топику</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><br><b>2.</b> Редактируем <b>modules/blog/templates/rss.tpl</b>:<br><br>Перед (примерно середина файла)<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="kw1">else</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>нужно добавить:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="kw1">elseif</span> <span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getParam</span><span class="br0">&#40;</span><span class="nu19">0</span><span class="br0">&#41;</span> <span class="sy0">==</span> topic<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>title<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oTopic</span><span class="sy0">-&gt;</span><span class="me1">getTitle</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span> <span class="sy0">-</span> лента комментариев<span class="sy0">&lt;/</span>title<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>link<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">/</span>blog<span class="sy0">/</span>topic<span class="sy0">/</span><span class="br0">&#123;</span><span class="re0">$oTopic</span><span class="sy0">-&gt;</span><span class="me1">getId</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">/&lt;/</span>link<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>atom<span class="sy0">:</span><span class="kw3">link</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/blog/rss/topic/{$oTopic-&gt;getId()}/&quot;</span> rel<span class="sy0">=</span><span class="st0">&quot;self&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;application/rss+xml&quot;</span> <span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>language<span class="sy0">&gt;</span>ru<span class="sy0">&lt;/</span>language<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>description<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oTopic</span><span class="sy0">-&gt;</span><span class="me1">getTitle</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span> на сайте <span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">,</span> комментарии темы в RSS<span class="sy0">&lt;/</span>description<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>managingEditor<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">getMailerFromEmail</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span> <span class="br0">&#40;</span><span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">&lt;/</span>managingEditor<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>webMaster<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">getMailerFromEmail</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span> <span class="br0">&#40;</span><span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">&lt;/</span>webMaster<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>copyright<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">&lt;/</span>copyright<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>lastBuildDate<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$last_build_date</span><span class="br0">&#125;</span><span class="sy0">&lt;/</span>lastBuildDate<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>generator<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">&lt;/</span>generator<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>docs<span class="sy0">&gt;</span>http<span class="sy0">:</span><span class="co1">//blogs.law.harvard.edu/tech/rss&lt;/docs&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">foreach</span> item<span class="sy0">=</span>oComment from<span class="sy0">=</span><span class="re0">$aComments</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>item<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>title<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">getAuthorLogin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">&lt;/</span>title<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>link<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">/</span>blog<span class="sy0">/</span>topic<span class="sy0">/</span><span class="br0">&#123;</span><span class="re0">$oTopic</span><span class="sy0">-&gt;</span><span class="me1">getId</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">/</span><span class="co2">#comment_{$oComment-&gt;getId()}&lt;/link&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>description<span class="sy0">&gt;&lt;!</span><span class="br0">&#91;</span>CDATA<span class="br0">&#91;</span> <span class="br0">&#123;</span><span class="re0">$oStringsTool</span><span class="sy0">-&gt;</span><span class="me1">unparseText</span><span class="br0">&#40;</span><span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">getText</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="sy0">&gt;&lt;/</span>description<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>pubDate<span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oComment</span><span class="sy0">-&gt;</span><span class="me1">getAdded</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">&lt;/</span>pubDate<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>guid isPermaLink<span class="sy0">=</span><span class="st0">&quot;true&quot;</span><span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">/</span>blog<span class="sy0">/</span>topic<span class="sy0">/</span><span class="br0">&#123;</span><span class="re0">$oTopic</span><span class="sy0">-&gt;</span><span class="me1">getId</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="sy0">/&lt;/</span>guid<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>item<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span><span class="kw1">foreach</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>RSS поток комментариев к топику будет отдаваться по адресу:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">http<span class="sy0">:</span><span class="co1">//domain.ru/blog/rss/topic/1</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br>Ссылку на канал можно указать в файле шаблона <b>sample.topic_comments.tpl</b><br><br>Кому сложно / лениво ковырять код самолично, можно скачать <a href="http://art-blog.ru/uploads/fixes/rss_4topics.rar">готовый вариант RSS для комментариев</a> отдельным файлом. Распакуйте и залейте файл <b>feed.action.php</b> в <b>modules/blog/</b>, а файл <b>feed.tpl</b> в <b>modules/blog/templates/</b>.<br><br>Соответственно, ссылка на поток будет во втором случае:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">http<span class="sy0">:</span><span class="co1">//domain.ru/blog/feed/topic/1</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>В полевых условиях тестировал только RSS для Эфира. Кто располагает временем, погоняйте пожалуйста RSS для комментариев в топиках… возможно я что-нибудь упустил.<br><br><b>UPDATE</b><br>В файл <b>sample.header.tpl</b> темы оформления добавляем после строки:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>link rel<span class="sy0">=</span><span class="st0">&quot;alternate&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;application/rss+xml&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/blog/rss/&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;RSS&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>следующие условия:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="kw1">if</span> <span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getCurrentModule</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st_h">'blog'</span> and <span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getCurrentAction</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st_h">'topic'</span> and <span class="re0">$oTopic</span><span class="br0">&#125;</span><span class="sy0">&lt;</span>link rel<span class="sy0">=</span><span class="st0">&quot;alternate&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;application/rss+xml&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/blog/rss/topic/{$oTopic-&gt;getId()}/&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;{$oTopic-&gt;getTitle()|htmlspecialchars} - комментарии в RSS&quot;</span><span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="sy0">/</span><span class="kw1">if</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="kw1">if</span> <span class="re0">$oRouter</span><span class="sy0">-&gt;</span><span class="me1">getCurrentModule</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="st_h">'onair'</span><span class="br0">&#125;</span><span class="sy0">&lt;</span>link rel<span class="sy0">=</span><span class="st0">&quot;alternate&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;application/rss+xml&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/onair/rss/&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()|htmlspecialchars} - эфир в RSS&quot;</span><span class="sy0">&gt;</span><span class="br0">&#123;</span><span class="sy0">/</span><span class="kw1">if</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div>]]></description>
<pubDate>Mon, 20 Jul 2009 20:58:20 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/768/</guid>
</item>
<item>
<title>Топ лучших пользователей</title>
<link>http://bigstreet.ru/blog/topic/748/</link>
<description><![CDATA[<style type="text/css">/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.php.php .de1, .php.php .de2 {font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;color: #000020;}
.php.php  {color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;}
.php.php a:link {color: #000060;}
.php.php a:hover {background-color: #f0f000;}
.php.php .imp {font-weight: bold; color: red;}
.php.php li, .php.php .li1 {font-weight: normal;color: #003030;}
.php.php .ln {width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;}
.php.php .kw1 {color: #b1b100;}
.php.php .kw2 {color: #000000; font-weight: bold;}
.php.php .kw3 {color: #990000;}
.php.php .co1 {color: #666666; font-style: italic;}
.php.php .co2 {color: #666666; font-style: italic;}
.php.php .co3 {color: #0000cc; font-style: italic;}
.php.php .co4 {color: #0000ff; font-style: italic;}
.php.php .coMULTI {color: #666666; font-style: italic;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .br0 {color: #009900;}
.php.php .sy0 {color: #339933;}
.php.php .st0 {color: #0000ff;}
.php.php .st_h {color: #0000ff;}
.php.php .nu0 {color: #cc66cc;}
.php.php .nu8 {color: #208080;}
.php.php .nu12 {color: #208080;}
.php.php .nu19 {color:#800080;}
.php.php .me1 {color: #004000;}
.php.php .me2 {color: #004000;}
.php.php .re0 {color: #000088;}
.php.php span.xtra { display:block; }
</style>
Чтобы не мешать в кучу с модификацией <b><a href="http://opensource.bigstreet.ru/topic/745/">кто онлайн</a></b>, решил оформить отдельным постом.<br>Кратенькое описание: Блок представляет собой аккуратную таблицу аватаров пользователей сайта, отсортированных по рейтингу.<br>Количество колонок в таблице и количество выводимых пользователей можно изменять.<br>Вся информация о пользователе (ник, имя, статус, рейтинг) выводится во всплывающем окне по наведению на аватар курсора.<br>Дальше код. <br><cut><br><br><b>1.</b> Первое (как и в прошлый раз) — добавляем в файл sample.header.tpl скрипт:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;script language</span><span class="sy0">=</span><span class="st0">&quot;JavaScript&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span>literal<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> simple_tooltip<span class="br0">&#40;</span>target_items<span class="sy0">,</span> name<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;$<span class="br0">&#40;</span>target_items<span class="br0">&#41;</span><span class="sy0">.</span><span class="kw3">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;$<span class="br0">&#40;</span><span class="st0">&quot;body&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>append<span class="br0">&#40;</span><span class="st0">&quot;&lt;div class='&quot;</span><span class="sy0">+</span>name<span class="sy0">+</span><span class="st0">&quot;' id='&quot;</span><span class="sy0">+</span>name<span class="sy0">+</span>i<span class="sy0">+</span><span class="st0">&quot;'&gt;&lt;div&gt;&quot;</span><span class="sy0">+</span>$<span class="br0">&#40;</span>this<span class="br0">&#41;</span><span class="sy0">.</span>attr<span class="br0">&#40;</span><span class="st_h">'title'</span><span class="br0">&#41;</span><span class="sy0">+</span><span class="st0">&quot;&lt;/div&gt;&lt;/div&gt;&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw2">var</span> my_tooltip <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span><span class="sy0">+</span>name<span class="sy0">+</span>i<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;$<span class="br0">&#40;</span>this<span class="br0">&#41;</span><span class="sy0">.</span>removeAttr<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>mouseover<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;my_tooltip<span class="sy0">.</span>css<span class="br0">&#40;</span><span class="br0">&#123;</span>opacity<span class="sy0">:</span><span class="nu19">0.8</span><span class="sy0">,</span> display<span class="sy0">:</span><span class="st0">&quot;none&quot;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">.</span>fadeIn<span class="br0">&#40;</span><span class="nu0">100</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">.</span>mousemove<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>kmouse<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;my_tooltip<span class="sy0">.</span>css<span class="br0">&#40;</span><span class="br0">&#123;</span>left<span class="sy0">:</span>kmouse<span class="sy0">.</span>pageX<span class="sy0">+</span><span class="nu0">15</span><span class="sy0">,</span> top<span class="sy0">:</span>kmouse<span class="sy0">.</span>pageY<span class="sy0">+</span><span class="nu0">15</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">.</span>mouseout<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;my_tooltip<span class="sy0">.</span>fadeOut<span class="br0">&#40;</span><span class="nu0">100</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span><span class="sy0">.</span>ready<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;simple_tooltip<span class="br0">&#40;</span><span class="st0">&quot;.title_img&quot;</span><span class="sy0">,</span><span class="st0">&quot;tooltip&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="sy0">/</span>literal<span class="br0">&#125;</span>&nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;/script&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><b>2.</b> В файл стиля вашей темы <b>base.css</b> добавляем:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>tooltip <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;position<span class="sy0">:</span>absolute;</div></li>
<li class="li1"><div class="de1">&nbsp;z<span class="sy0">-</span>index<span class="sy0">:</span><span class="nu0">999</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;left<span class="sy0">:-</span>9999px;</div></li>
<li class="li1"><div class="de1">&nbsp;background<span class="sy0">-</span>color<span class="sy0">:</span><span class="co2">#dedede;</span></div></li>
<li class="li1"><div class="de1">&nbsp;padding<span class="sy0">:</span>5px;</div></li>
<li class="li1"><div class="de1">&nbsp;border<span class="sy0">:</span>1px solid <span class="co2">#fff; </span></div></li>
<li class="li1"><div class="de1">&nbsp;width<span class="sy0">:</span>170px;</div></li>
<li class="li1"><div class="de1">&nbsp;height<span class="sy0">:</span>auto</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>tooltip div<span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;margin<span class="sy0">:</span><span class="nu19">0</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;padding<span class="sy0">:</span><span class="nu19">0</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;color<span class="sy0">:</span><span class="co2">#333;</span></div></li>
<li class="li1"><div class="de1">&nbsp;background<span class="sy0">-</span>color<span class="sy0">:</span><span class="co2">#fff;</span></div></li>
<li class="li1"><div class="de1">&nbsp;padding<span class="sy0">:</span>5px 7px 5px 10px;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><b>3.</b> Создаем в папке <b>samples/</b> файл с именем <b>user_raiting.php</b>:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;?php</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span><span class="st_h">'system/mappers/users.mysql.mapper.php'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$oUsersMapper</span> <span class="sy0">=</span> <span class="kw2">new</span> Users_MySQLMapper<span class="br0">&#40;</span>System_Database<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">setJs</span><span class="br0">&#40;</span><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'/js/users.js'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re0">$order</span> <span class="sy0">=</span> <span class="st_h">'up'</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$aCollectionRaitingRes</span> <span class="sy0">=</span> System_Cacher<span class="sy0">::</span><span class="me2">Get</span><span class="br0">&#40;</span><span class="st0">&quot;users_rating_&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$aCollectionRaitingRes</span> <span class="sy0">=</span> <span class="re0">$oUsersMapper</span><span class="sy0">-&gt;</span><span class="me1">getCollectionRaiting</span><span class="br0">&#40;</span><span class="nu19">0</span><span class="sy0">,</span> <span class="nu0">6</span><span class="sy0">,</span> <span class="re0">$order</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System_Cacher<span class="sy0">::</span><span class="me2">Set</span><span class="br0">&#40;</span><span class="re0">$aCollectionRaitingRes</span><span class="sy0">,</span> <span class="st0">&quot;users_rating_&quot;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu0">60</span><span class="sy0">*</span><span class="nu0">15</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$aCollectionRaitingRes</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'aCollectionRaiting'</span><span class="sy0">,</span> <span class="re0">$aCollectionRaitingRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">?&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><b>4.</b> Создаем файл <b>sample.user_raiting.tpl</b> в папке <b>themes/default/templates/</b>:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>div style<span class="sy0">=</span><span class="st0">&quot;padding: 5px 0 0 10px&quot;</span><span class="sy0">&gt;</span> </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>table cellspacing<span class="sy0">=</span><span class="st0">&quot;3px&quot;</span> cellpadding<span class="sy0">=</span><span class="st0">&quot;0&quot;</span> border<span class="sy0">=</span><span class="nu19">0</span> <span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>tr<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span>col value<span class="sy0">=</span><span class="nu0">3</span><span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>section name<span class="sy0">=</span>oUser loop<span class="sy0">=</span><span class="re0">$aCollectionRaiting</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">if</span> <span class="re0">$col</span> <span class="sy0">==</span> <span class="st0">&quot;3&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>tr<span class="sy0">&gt;&lt;</span>tr<span class="sy0">&gt;</span><span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span><span class="st0">&quot;col&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;0&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span><span class="kw1">if</span><span class="br0">&#125;</span> &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">if</span> <span class="re0">$aCollectionRaiting</span><span class="br0">&#91;</span>oUser<span class="br0">&#93;</span><span class="sy0">-&gt;</span><span class="me1">getAvatarExt</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>td align<span class="sy0">=</span><span class="st0">&quot;left&quot;</span> style<span class="sy0">=</span><span class="st0">&quot;padding: 0 0 7px 5px&quot;</span> width<span class="sy0">=</span><span class="st0">&quot;75px&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>a <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;gray&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/profile/{$aCollectionRaiting[oUser]-&gt;getLogin()}/&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/uploads/users/{$aCollectionRaiting[oUser]-&gt;getId()}/avatar_medium.{$aCollectionRaiting[oUser]-&gt;getAvatarExt()}&quot;</span> width<span class="sy0">=</span><span class="st0">&quot;64px&quot;</span> height<span class="sy0">=</span><span class="st0">&quot;64px&quot;</span> border<span class="sy0">=</span><span class="st0">&quot;0&quot;</span> <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;title_img&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&lt;small&gt;&lt;b&gt;{$aCollectionRaiting[oUser]-&gt;getLogin()}{if $aCollectionRaiting[oUser]-&gt;getName()} ({$aCollectionRaiting[oUser]-&gt;getName()}){/if}&lt;/b&gt;&lt;/small&gt; {if $aCollectionRaiting[oUser]-&gt;getUserStatus()} &lt;br/&gt;&lt;b&gt;Статус&lt;/b&gt;:&lt;br/&gt; {$aCollectionRaiting[oUser]-&gt;getUserStatus()} {/if} &lt;br/&gt; &lt;b&gt;Последний визит:&lt;/b&gt; &lt;br/&gt;{$aCollectionRaiting[oUser]-&gt;getLastTimeAsText()}</span></div></li>
<li class="li1"><div class="de1"><span class="st0">&nbsp; &nbsp; &nbsp; &nbsp; &lt;br/&gt;&lt;big&gt;Рейтинг: &lt;b&gt;{$aCollectionRaiting[oUser]-&gt;getPointsAsText()}&lt;/b&gt;&lt;br/&gt;Сила: &lt;b&gt;{$aCollectionRaiting[oUser]-&gt;getPowerAsText()}&lt;/b&gt;&lt;/big&gt;&quot;</span><span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>td<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span><span class="kw1">if</span><span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span><span class="st0">&quot;col&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;`$col+1`&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span>section<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span><span class="st0">&quot;remainder&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;`3-$col`&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span>section name<span class="sy0">=</span>emptyoUser loop<span class="sy0">=</span><span class="re0">$remainder</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>td<span class="sy0">&gt;</span> <span class="sy0">&lt;/</span>td<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span>section<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>tr<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>table<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><b>5.</b> В файл <b>index.php</b>, в строку:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">setSamples</span><span class="br0">&#40;</span><span class="st_h">'left'</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'small_cart'</span><span class="sy0">,</span> <span class="st_h">'hot_topics_comments'</span><span class="sy0">,</span> <span class="st_h">'tags_cloud'</span><span class="sy0">,</span> <span class="st_h">'new_topics'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
</ol></div> <br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="st_h">'user_raiting'</span></div></li>
</ol></div><br><br>Это все. Результат выглядит <a href="http://opensource.bigstreet.ru/topic/745/">аналогично</a>.]]></description>
<pubDate>Sun, 28 Jun 2009 17:59:12 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/748/</guid>
</item>
<item>
<title>Кто заходил на сайт - оформляем красиво, плюс делаем красивый title для картинок в постах</title>
<link>http://bigstreet.ru/blog/topic/745/</link>
<description><![CDATA[<style type="text/css">/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.php.php .de1, .php.php .de2 {font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;color: #000020;}
.php.php  {color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;}
.php.php a:link {color: #000060;}
.php.php a:hover {background-color: #f0f000;}
.php.php .imp {font-weight: bold; color: red;}
.php.php li, .php.php .li1 {font-weight: normal;color: #003030;}
.php.php .ln {width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;}
.php.php .kw1 {color: #b1b100;}
.php.php .kw2 {color: #000000; font-weight: bold;}
.php.php .kw3 {color: #990000;}
.php.php .co1 {color: #666666; font-style: italic;}
.php.php .co2 {color: #666666; font-style: italic;}
.php.php .co3 {color: #0000cc; font-style: italic;}
.php.php .co4 {color: #0000ff; font-style: italic;}
.php.php .coMULTI {color: #666666; font-style: italic;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .br0 {color: #009900;}
.php.php .sy0 {color: #339933;}
.php.php .st0 {color: #0000ff;}
.php.php .st_h {color: #0000ff;}
.php.php .nu0 {color: #cc66cc;}
.php.php .nu8 {color: #208080;}
.php.php .nu12 {color: #208080;}
.php.php .nu19 {color:#800080;}
.php.php .me1 {color: #004000;}
.php.php .me2 {color: #004000;}
.php.php .re0 {color: #000088;}
.php.php span.xtra { display:block; }
</style>
Долгое время собирался копнуть левый сайдбар движка на предмет «как оно вообще работает». <br>Хорошим мотивом в этом благом начинании послужила мне моя навязчивая идея улучшить дефолтный вариант вывода аватарок недавних посетителей и информации к ним. <br>Подумал, что как-то не эргономично… пропадает много места. Мне показалось будет более аккуратно, если выводить список аватаров не в одну колонку, как сейчас, а в три (четыре, пять… как угодно вобщем).<br><br><img src="http://bigstreet.ru/uploads/users/1060/1246124066.jpg" hspace="10px" vspace="10px"><br><br>При этом всю информацию (ник, имя, статус, время) можно выводить средствами <b>jQuery</b> в небольшом прозрачном окне (по событию — наведению курсора мыши). Наверное на этом можно ставить кат и дальше переходить непосредственно к коду.<br><cut><br><br>Посколько со Smarty я почти не был знаком до сегодняшнего дня, пришлось искать информацию (очень помог <a href="http://smarty.incutio.com">этот сайт</a>). <br>Получилось вроде интересно, потому спешу поделиться результатами своего эксперимента с вами.<br><br><b>План будет такой:</b><br>Нужно добавить скрипт, который будет обрабатывать тайтл картинки (аватары) и выводить информацию из него в виде всплывающего окошка. Можно для этой цели использовать такую штуку, которая называется <a href="http://interface.eyecon.ro/demos/tooltip.html">tooltip</a>, но я нашел в сети более простое решение для jQuery. Далее нужно осуществить вывод аватар в три колонки и добавить в тайтл каждой информацию (ник, имя, статус, время). Все просто. Итак.<br><br><b>1.</b> Первое что мы сделаем, это добавим в файл sample.header.tpl следующий скрипт:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;script language</span><span class="sy0">=</span><span class="st0">&quot;JavaScript&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span>literal<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> simple_tooltip<span class="br0">&#40;</span>target_items<span class="sy0">,</span> name<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;$<span class="br0">&#40;</span>target_items<span class="br0">&#41;</span><span class="sy0">.</span><span class="kw3">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;$<span class="br0">&#40;</span><span class="st0">&quot;body&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>append<span class="br0">&#40;</span><span class="st0">&quot;&lt;div class='&quot;</span><span class="sy0">+</span>name<span class="sy0">+</span><span class="st0">&quot;' id='&quot;</span><span class="sy0">+</span>name<span class="sy0">+</span>i<span class="sy0">+</span><span class="st0">&quot;'&gt;&lt;div&gt;&quot;</span><span class="sy0">+</span>$<span class="br0">&#40;</span>this<span class="br0">&#41;</span><span class="sy0">.</span>attr<span class="br0">&#40;</span><span class="st_h">'title'</span><span class="br0">&#41;</span><span class="sy0">+</span><span class="st0">&quot;&lt;/div&gt;&lt;/div&gt;&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw2">var</span> my_tooltip <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">&quot;#&quot;</span><span class="sy0">+</span>name<span class="sy0">+</span>i<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;$<span class="br0">&#40;</span>this<span class="br0">&#41;</span><span class="sy0">.</span>removeAttr<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>mouseover<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;my_tooltip<span class="sy0">.</span>css<span class="br0">&#40;</span><span class="br0">&#123;</span>opacity<span class="sy0">:</span><span class="nu19">0.8</span><span class="sy0">,</span> display<span class="sy0">:</span><span class="st0">&quot;none&quot;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">.</span>fadeIn<span class="br0">&#40;</span><span class="nu0">100</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">.</span>mousemove<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>kmouse<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;my_tooltip<span class="sy0">.</span>css<span class="br0">&#40;</span><span class="br0">&#123;</span>left<span class="sy0">:</span>kmouse<span class="sy0">.</span>pageX<span class="sy0">+</span><span class="nu0">15</span><span class="sy0">,</span> top<span class="sy0">:</span>kmouse<span class="sy0">.</span>pageY<span class="sy0">+</span><span class="nu0">15</span><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">.</span>mouseout<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;my_tooltip<span class="sy0">.</span>fadeOut<span class="br0">&#40;</span><span class="nu0">100</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span><span class="sy0">.</span>ready<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;simple_tooltip<span class="br0">&#40;</span><span class="st0">&quot;.title_img&quot;</span><span class="sy0">,</span><span class="st0">&quot;tooltip&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="sy0">/</span>literal<span class="br0">&#125;</span>&nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;/script&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Вот этот код<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">simple_tooltip<span class="br0">&#40;</span><span class="st0">&quot;img.title_img&quot;</span><span class="sy0">,</span><span class="st0">&quot;tooltip&quot;</span><span class="br0">&#41;</span>;</div></li>
</ol></div><br><br>в частности значение <b>img.title_img</b> — отвечает за то, какие именно картинки будут иметь на вашем сайте красивый всплывающий тайтл. Таким образом, добавив: <br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;title_img&quot;</span></div></li>
</ol></div><br><br>к нужному изображению, получим такое же окошко, как у аватаров… но это лирика, возвращаюсь к сабжу.<br><br><br><b>2.</b> Теперь нужно добавить в файл стиля вашей темы <b>base.css</b> следующий код:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>tooltip <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;position<span class="sy0">:</span>absolute;</div></li>
<li class="li1"><div class="de1">&nbsp;z<span class="sy0">-</span>index<span class="sy0">:</span><span class="nu0">999</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;left<span class="sy0">:-</span>9999px;</div></li>
<li class="li1"><div class="de1">&nbsp;background<span class="sy0">-</span>color<span class="sy0">:</span><span class="co2">#dedede;</span></div></li>
<li class="li1"><div class="de1">&nbsp;padding<span class="sy0">:</span>5px;</div></li>
<li class="li1"><div class="de1">&nbsp;border<span class="sy0">:</span>1px solid <span class="co2">#fff; </span></div></li>
<li class="li1"><div class="de1">&nbsp;width<span class="sy0">:</span>170px;</div></li>
<li class="li1"><div class="de1">&nbsp;display<span class="sy0">:</span>none</div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>tooltip div<span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;margin<span class="sy0">:</span><span class="nu19">0</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;padding<span class="sy0">:</span><span class="nu19">0</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;color<span class="sy0">:</span><span class="co2">#333;</span></div></li>
<li class="li1"><div class="de1">&nbsp;background<span class="sy0">-</span>color<span class="sy0">:</span><span class="co2">#fff;</span></div></li>
<li class="li1"><div class="de1">&nbsp;padding<span class="sy0">:</span>5px 7px 5px 10px;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><b>3.</b> Создаем файл (если у вас его еще нет) в папке <b>samples/</b> с именем <b>user_online.php</b>:<br><br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;?php</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span><span class="st_h">'system/mappers/users.mysql.mapper.php'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$oUsersMapper</span> <span class="sy0">=</span> <span class="kw2">new</span> Users_MySQLMapper<span class="br0">&#40;</span>System_Database<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="st_h">'site'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">setJs</span><span class="br0">&#40;</span><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'/js/users.js'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="re0">$aCollectionOnLineRes</span> <span class="sy0">=</span> <span class="re0">$oUsersMapper</span><span class="sy0">-&gt;</span><span class="me1">getCollectionOnLine</span><span class="br0">&#40;</span><span class="nu0">18</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">assign</span><span class="br0">&#40;</span><span class="st_h">'aCollectionOnLine'</span><span class="sy0">,</span> <span class="re0">$aCollectionOnLineRes</span><span class="br0">&#91;</span><span class="st_h">'aCollection'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">?&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Не трудно догадаться, что число 18 отвечает за кол-во выводимых аватаров.<br><br><b>4.</b> Создаем (если такового нет) файл <b>sample.user_online.tpl</b> в папке <b>themes/default/templates/</b>, или меняем код файла на следующий:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>div style<span class="sy0">=</span><span class="st0">&quot;padding: 10px 0 0 10px&quot;</span><span class="sy0">&gt;</span> </div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>table cellspacing<span class="sy0">=</span><span class="st0">&quot;3px&quot;</span> cellpadding<span class="sy0">=</span><span class="st0">&quot;0&quot;</span> border<span class="sy0">=</span><span class="nu19">0</span> <span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>tr<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span>col value<span class="sy0">=</span><span class="nu0">4</span><span class="br0">&#125;</span> <span class="br0">&#123;</span><span class="sy0">*</span>Количество колонок в таблице<span class="sy0">*</span><span class="br0">&#125;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>section name<span class="sy0">=</span>oUser loop<span class="sy0">=</span><span class="re0">$aCollectionOnLine</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">if</span> <span class="re0">$col</span> <span class="sy0">==</span> <span class="st0">&quot;4&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>tr<span class="sy0">&gt;&lt;</span>tr<span class="sy0">&gt;</span><span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span><span class="st0">&quot;col&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;0&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span><span class="kw1">if</span><span class="br0">&#125;</span> &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="kw1">if</span> <span class="re0">$aCollectionOnLine</span><span class="br0">&#91;</span>oUser<span class="br0">&#93;</span><span class="sy0">-&gt;</span><span class="me1">getAvatarExt</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#125;</span>&nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>td align<span class="sy0">=</span><span class="st0">&quot;left&quot;</span> style<span class="sy0">=</span><span class="st0">&quot;padding: 0 0 7px 5px&quot;</span> width<span class="sy0">=</span><span class="st0">&quot;55px&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>a <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;gray&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/profile/{$aCollectionOnLine[oUser]-&gt;getLogin()}/&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/uploads/users/{$aCollectionOnLine[oUser]-&gt;getId()}/avatar_medium.{$aCollectionOnLine[oUser]-&gt;getAvatarExt()}&quot;</span> width<span class="sy0">=</span><span class="st0">&quot;50px&quot;</span> height<span class="sy0">=</span><span class="st0">&quot;50px&quot;</span> border<span class="sy0">=</span><span class="st0">&quot;0&quot;</span> <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;title_img&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;&lt;b&gt;{$aCollectionOnLine[oUser]-&gt;getLogin()}{if $aCollectionOnLine[oUser]-&gt;getName()} ({$aCollectionOnLine[oUser]-&gt;getName()}){/if}&lt;/b&gt; &lt;small&gt;{if $aCollectionOnLine[oUser]-&gt;getUserStatus()}&lt;br/&gt;&lt;b&gt;Статус&lt;/b&gt;: {$aCollectionOnLine[oUser]-&gt;getUserStatus()} {/if}&lt;/small&gt; &lt;br/&gt;&lt;b&gt;Последний визит:&lt;/b&gt;&lt;br/&gt;&lt;big&gt;{$aCollectionOnLine[oUser]-&gt;getLastTimeAsText()}&lt;/big&gt;&quot;</span><span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>td<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span><span class="kw1">if</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span><span class="st0">&quot;col&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;`$col+1`&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span>section<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span>assign <span class="kw2">var</span><span class="sy0">=</span><span class="st0">&quot;remainder&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;`4-$col`&quot;</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span>section name<span class="sy0">=</span>emptyoUser loop<span class="sy0">=</span><span class="re0">$remainder</span><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>td<span class="sy0">&gt;</span> <span class="sy0">&lt;/</span>td<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span class="sy0">/</span>section<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>tr<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>table<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>div align<span class="sy0">=</span><span class="st0">&quot;right&quot;</span> style<span class="sy0">=</span><span class="st0">&quot;padding-right:10px;&quot;</span><span class="sy0">&gt;&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/users/&quot;</span> border<span class="sy0">=</span><span class="st0">&quot;0&quot;</span><span class="sy0">&gt;</span>Все пользователи<span class="sy0">&lt;/</span>a<span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Число 4 в данной конструкции отвечает за кол-во колонок (меняем по желанию).<br><br><b>5.</b> В файле <b>index.php</b>, в строке:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="re0">$oSmarty</span><span class="sy0">-&gt;</span><span class="me1">setSamples</span><span class="br0">&#40;</span><span class="st_h">'left'</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'small_cart'</span><span class="sy0">,</span> <span class="st_h">'hot_topics_comments'</span><span class="sy0">,</span> <span class="st_h">'tags_cloud'</span><span class="sy0">,</span> <span class="st_h">'new_topics'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
</ol></div> <br><br>добавляем (если нет) <br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="st_h">'user_online'</span></div></li>
</ol></div><br><br>Это все. Теперь мы имеем аккуратную табличку аватарок в четыре колонки, плюс, как бонус, красивый тайтл для всех изображений сайта, которые помечены классом <b>title_img</b>.<br><br><br>Еще момент. Если присмотреться к коду файла <b>samples/user_online.php</b>, станет понятно, что он представляет собой небольшой кусочек кода из <b>modules/users/index.action.php</b>, который, в свою очередь, отвечает за вывод списка пользователей на странице <b>сайт.ру/users/</b>… следовательно, если взять другой небольшой кусочек этого же файла (отвечающий за сортировку по рейтингу), то можно сделать блок, который будет выводить список самых «прокачаных» пользователей сайта, аналогично блоку <b>users_online</b>.<br><br>Что, собственно, я для себя и сделал — <b>топ лучших пользователей</b> в левый сайдбар. Это оказалось довольно просто. Наверняка многие подобную штуку уже сами делали для своих проектов...<br>Но, тем не менее, на сайте bigstreet информации я об этом не нашел, потому если кому-то вдруг будет интересно — пишите в комментариях, дополню пост блоком <b>топ лучших пользователей</b>.<br><br><b>UPDATE</b><br><b>Обнаружилась неприятная бага в IE</b> <br>Капризный IE помог найти ошибку в содержании <b>title</b> были незакрытые теги<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>big<span class="sy0">&gt;,</span> <span class="sy0">&lt;</span>small<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br>Код исправил.]]></description>
<pubDate>Sat, 27 Jun 2009 21:38:24 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/745/</guid>
</item>
<item>
<title>Переключение между стилями в пределах одного шаблона</title>
<link>http://bigstreet.ru/blog/topic/740/</link>
<description><![CDATA[<style type="text/css">/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.php.php .de1, .php.php .de2 {font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;color: #000020;}
.php.php  {color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;}
.php.php a:link {color: #000060;}
.php.php a:hover {background-color: #f0f000;}
.php.php .imp {font-weight: bold; color: red;}
.php.php li, .php.php .li1 {font-weight: normal;color: #003030;}
.php.php .ln {width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;}
.php.php .kw1 {color: #b1b100;}
.php.php .kw2 {color: #000000; font-weight: bold;}
.php.php .kw3 {color: #990000;}
.php.php .co1 {color: #666666; font-style: italic;}
.php.php .co2 {color: #666666; font-style: italic;}
.php.php .co3 {color: #0000cc; font-style: italic;}
.php.php .co4 {color: #0000ff; font-style: italic;}
.php.php .coMULTI {color: #666666; font-style: italic;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .br0 {color: #009900;}
.php.php .sy0 {color: #339933;}
.php.php .st0 {color: #0000ff;}
.php.php .st_h {color: #0000ff;}
.php.php .nu0 {color: #cc66cc;}
.php.php .nu8 {color: #208080;}
.php.php .nu12 {color: #208080;}
.php.php .nu19 {color:#800080;}
.php.php .me1 {color: #004000;}
.php.php .me2 {color: #004000;}
.php.php .re0 {color: #000088;}
.php.php span.xtra { display:block; }
</style>
Продолжая тему кастомизации внешнего вида одного отдельно взятого веб-проекта на движке bigstreet, хочу поделиться с вами способом, благодаря которому можно реализовать в пользовательской части <b>селектор стилей оформления</b> вашего сайта в пределах всего одного шаблона. <br>Это значит, что изменив всего десяток строк во вновь добавляемых стилях и используя всего одну(!) тему оформления, можно повысить привлекательность своего сайта если уж не частым обновлением контента (о, это как раз мой случай =) ), то, хотя бы расширенными возможностями в плане юзабилити для посетителей, которые, вместо скучного листинга в пределах трех страниц постов годовалой давности, смогут выбрать индивидуально подходящий цвет ссылок, кнопок, бэкграунда и прочие мелочи… помедитировать несколько минут, глядя на результат своих действий… или же просто тупо пощелкать разноцветными кнопочками.<br><cut><br>Идея возникла, когда увидел в очередном обновлении <b>bigstreet</b> несколько шаблонов, отличающихся лишь цветовой палитрой. Вот тогда и подумалось, что для смены цветовой гаммы не обязательно клонировать шаблон целиком. Гораздо проще использовать импорт нескольких <b>css</b> файлов в пределах одного единственного шаблона. И цветовых решений в этом случае может быть множество… <br><br>Это конечно не Бог весть что. Если изменять только цвет текста, ссылок и бэкграунда, то различия между вариантами оформления будут минимальны (пример для наглядности ниже).<br><br>Стиль 1 — красный<br><img src="http://bigstreet.ru/uploads/users/1060/1245852426.jpg" alt="Селектор стилей - вариант 1" hspace="10px" vspace="10px"><br><br>Стиль 2 — зеленый<br><img src="http://bigstreet.ru/uploads/users/1060/1245852449.jpg" alt="Селектор стилей - вариант 2" hspace="10px" vspace="10px"><br><br>Однако, используя подобный метод, можно сделать изменения при переходе от одного оформления к другому кардинальными, если вся графика и характеристики элементов верстки описаны у вас в css файле.<br><br>Вобщем схема реализации идеи следующая.<br>Нужно вынести в отдельные <b>css</b> файлы часть кода (основного <b>base.css</b>) который отвечает за оформление ссылок, кнопок, цвета фона, фоновых изображений и прочего.<br>Что для этого нужно сделать:<br><br><br><b>1.</b> Создать в каталоге вашей темы оформления (предположим, что используется шаблон <b>default</b>) дополнительный каталог (например <b>newcss</b>).<br><br><br><b>2.</b> Открыть в редакторе основной стилевой файл <b>base.css</b>, затем создать его копию, из которой удалить все, кроме следующих классов (набор лишь примерный, зависит от конкретного используемого файла стилей).<br>В моем случае в дополнительный <b>css</b> файл было вынесено:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">body <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">div<span class="co2">#page-body { }</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">body<span class="co2">#page { &nbsp;}</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>все подклассы<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co2">#user_menu</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>все подклассы<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="co2">#blogs_menu</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>а также, все классы для ссылок, облака тегов и пагинации<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">a<span class="sy0">:</span>hover <span class="br0">&#123;</span> <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">a<span class="sy0">:</span>active<span class="sy0">,</span> a<span class="sy0">.</span>active <span class="br0">&#123;</span> <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>red<span class="sy0">,</span> a<span class="sy0">.</span>red <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">a<span class="sy0">.</span>red<span class="sy0">:</span>hover &nbsp;<span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>blue<span class="sy0">,</span> a <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pale_blue <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>brown<span class="sy0">,</span> a<span class="sy0">.</span>brown <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">a<span class="sy0">.</span>brown<span class="sy0">:</span>hover <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pale<span class="sy0">,</span> a<span class="sy0">.</span>pale <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">a<span class="sy0">.</span>pale<span class="sy0">:</span>hover <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">div<span class="sy0">.</span>tags_cloud <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">div<span class="sy0">.</span>tags_cloud a<span class="sy0">.</span>tag <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">div<span class="sy0">.</span>tags_cloud a<span class="sy0">.</span>tag<span class="sy0">:</span>hover <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager span<span class="sy0">.</span>curr <span class="br0">&#123;</span> &nbsp;<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Из шаблона <b>default</b> достаточно будет вынести в новый файл цвет фона страницы, цвет ссылок, цвет ссылок в облаке тегов, оформление пагинации, цвет текста, заголовков… возможно еще что-нибудь на ваше усмотрение.<br>Так вот выносим все это добро в новый файл (назовем его <b>base2.css</b>, к примеру). <br>Меняем ту часть кода, которая отвечает за цвет и бэкграунд нужного элемента. <br>Это всего пара значений — <br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">background<span class="sy0">:</span> <span class="co2">#000000; color: #FFFFFF; </span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>если у вас к фону прицеплена картинка, то еще и<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">background<span class="sy0">:</span> <span class="co2">#000000 url('../images/моя картинка.gif') repeat; </span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><b>3.</b> Выбираем цветовую гамму для фона, ссылок, текста и сохраняем наш файл <b>base2.css</b> в недавно созданную папку <b>newcss</b>. Теперь у нас есть два стиля, и нужно сделать так, чтобы была возможность между ними переключаться.<br>Для этого в самое начало файла base2.css дописываем код:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">@</span>import url<span class="br0">&#40;</span><span class="st0">&quot;../base.css&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Таким образом происходит следующее: при переключении на новый стиль (<b>base2.css</b>), шаблон импортирует все содержимое файла <b>base.css</b> и сразу после этого все классы оформления фона, ссылок и кнопок заменяет на те, что присутствуют ниже, в самом файле <b>base2.css</b>. Таким образом, меняется лишь цвет фона, ссылок и кнопок.<br><br>Чтобы пользователь имел возможность вернуться к первоначальному стилю (вдруг то, что он увидит ему не понравится?) нужно создать все в той же папке newcss еще один файл — <b>base_back.css</b>. А в нем оставить лишь первую строчку<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">@</span>import url<span class="br0">&#40;</span><span class="st0">&quot;../base.css&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>и больше ничего.<br><br><br><b>4.</b> Теперь самое главное. Нужно сделать так, чтобы на стороне пользователя в кукисах хранилась информация о выбранном стиле оформления. Создаем в редакторе файл <b>cssswitch.js</b> следующего содержания (js код не мой — немного погуглил и нашел готовое решение):<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> setActiveStyleSheet<span class="br0">&#40;</span>title<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> i<span class="sy0">,</span> a<span class="sy0">,</span> main;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span>i<span class="sy0">=</span><span class="nu19">0</span>; <span class="br0">&#40;</span>a <span class="sy0">=</span> document<span class="sy0">.</span>getElementsByTagName<span class="br0">&#40;</span><span class="st0">&quot;link&quot;</span><span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;rel&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>indexOf<span class="br0">&#40;</span><span class="st0">&quot;style&quot;</span><span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="sy0">-</span><span class="nu0">1</span> <span class="sy0">&amp;&amp;</span> a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; a<span class="sy0">.</span>disabled <span class="sy0">=</span> <span class="kw2">true</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span> <span class="sy0">==</span> title<span class="br0">&#41;</span> a<span class="sy0">.</span>disabled <span class="sy0">=</span> <span class="kw2">false</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> getActiveStyleSheet<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> i<span class="sy0">,</span> a;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span>i<span class="sy0">=</span><span class="nu19">0</span>; <span class="br0">&#40;</span>a <span class="sy0">=</span> document<span class="sy0">.</span>getElementsByTagName<span class="br0">&#40;</span><span class="st0">&quot;link&quot;</span><span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;rel&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>indexOf<span class="br0">&#40;</span><span class="st0">&quot;style&quot;</span><span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="sy0">-</span><span class="nu0">1</span> <span class="sy0">&amp;&amp;</span> a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="sy0">!</span>a<span class="sy0">.</span>disabled<span class="br0">&#41;</span> <span class="kw1">return</span> a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">return</span> <span class="kw2">null</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> getPreferredStyleSheet<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> i<span class="sy0">,</span> a;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span>i<span class="sy0">=</span><span class="nu19">0</span>; <span class="br0">&#40;</span>a <span class="sy0">=</span> document<span class="sy0">.</span>getElementsByTagName<span class="br0">&#40;</span><span class="st0">&quot;link&quot;</span><span class="br0">&#41;</span><span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span>; i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;rel&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>indexOf<span class="br0">&#40;</span><span class="st0">&quot;style&quot;</span><span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="sy0">-</span><span class="nu0">1</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="sy0">&amp;&amp;</span> a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;rel&quot;</span><span class="br0">&#41;</span><span class="sy0">.</span>indexOf<span class="br0">&#40;</span><span class="st0">&quot;alt&quot;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="sy0">-</span><span class="nu0">1</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="sy0">&amp;&amp;</span> a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#41;</span> <span class="kw1">return</span> a<span class="sy0">.</span>getAttribute<span class="br0">&#40;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">return</span> <span class="kw2">null</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> createCookie<span class="br0">&#40;</span>name<span class="sy0">,</span>value<span class="sy0">,</span>days<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>days<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">date</span> <span class="sy0">=</span> <span class="kw2">new</span> <span class="kw3">Date</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw3">date</span><span class="sy0">.</span>setTime<span class="br0">&#40;</span><span class="kw3">date</span><span class="sy0">.</span>getTime<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">+</span><span class="br0">&#40;</span>days<span class="sy0">*</span><span class="nu0">24</span><span class="sy0">*</span><span class="nu0">60</span><span class="sy0">*</span><span class="nu0">60</span><span class="sy0">*</span><span class="nu0">1000</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> expires <span class="sy0">=</span> <span class="st0">&quot;; expires=&quot;</span><span class="sy0">+</span><span class="kw3">date</span><span class="sy0">.</span>toGMTString<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">else</span> expires <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; document<span class="sy0">.</span>cookie <span class="sy0">=</span> name<span class="sy0">+</span><span class="st0">&quot;=&quot;</span><span class="sy0">+</span>value<span class="sy0">+</span>expires<span class="sy0">+</span><span class="st0">&quot;; path=/&quot;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> readCookie<span class="br0">&#40;</span>name<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> nameEQ <span class="sy0">=</span> name <span class="sy0">+</span> <span class="st0">&quot;=&quot;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> ca <span class="sy0">=</span> document<span class="sy0">.</span>cookie<span class="sy0">.</span><span class="kw3">split</span><span class="br0">&#40;</span><span class="st_h">';'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="kw2">var</span> i<span class="sy0">=</span><span class="nu19">0</span>;i <span class="sy0">&lt;</span> ca<span class="sy0">.</span>length;i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> c <span class="sy0">=</span> ca<span class="br0">&#91;</span>i<span class="br0">&#93;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span>c<span class="sy0">.</span>charAt<span class="br0">&#40;</span><span class="nu19">0</span><span class="br0">&#41;</span><span class="sy0">==</span><span class="st_h">' '</span><span class="br0">&#41;</span> c <span class="sy0">=</span> c<span class="sy0">.</span>substring<span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span>c<span class="sy0">.</span>length<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>c<span class="sy0">.</span>indexOf<span class="br0">&#40;</span>nameEQ<span class="br0">&#41;</span> <span class="sy0">==</span> <span class="nu19">0</span><span class="br0">&#41;</span> <span class="kw1">return</span> c<span class="sy0">.</span>substring<span class="br0">&#40;</span>nameEQ<span class="sy0">.</span>length<span class="sy0">,</span>c<span class="sy0">.</span>length<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw1">return</span> <span class="kw2">null</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">window<span class="sy0">.</span>onload <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> cookie <span class="sy0">=</span> readCookie<span class="br0">&#40;</span><span class="st0">&quot;style&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> title <span class="sy0">=</span> cookie ? cookie <span class="sy0">:</span> getPreferredStyleSheet<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; setActiveStyleSheet<span class="br0">&#40;</span>title<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">window<span class="sy0">.</span>onunload <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw2">var</span> title <span class="sy0">=</span> getActiveStyleSheet<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; createCookie<span class="br0">&#40;</span><span class="st0">&quot;style&quot;</span><span class="sy0">,</span> title<span class="sy0">,</span> <span class="nu0">365</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="kw2">var</span> cookie <span class="sy0">=</span> readCookie<span class="br0">&#40;</span><span class="st0">&quot;style&quot;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="kw2">var</span> title <span class="sy0">=</span> cookie ? cookie <span class="sy0">:</span> getPreferredStyleSheet<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">setActiveStyleSheet<span class="br0">&#40;</span>title<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div> <br><br>и этот файл отправляем в папку, где хранятся все js скрипты Большой Улицы (js/)<br><br><b>5.</b> Чтобы js скрипт подключился и работал как нужно, необходимо прописать место его обитания в файл <b>config.php</b>, в то место, где прописаны все js-скрипты Большой Улицы<br>(это почти самый конец файла config.php)<br><br>Туда добавляем:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="coMULTI">/* смена стиля */</span></div></li>
<li class="li1"><div class="de1"><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">setJs</span><span class="br0">&#40;</span><span class="re0">$oSettings</span><span class="sy0">-&gt;</span><span class="me1">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'/js/cssswitch.js'</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="coMULTI">/* смена стиля */</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><b>6.</b> Осталось вывести наш cssswitch.js в самом шаблоне и добавить собственно кнопки переключения между стилями.<br>для этого в файл <b>sample.header.tpl</b> добавляем в место подключения стиля сразу после<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>link rel<span class="sy0">=</span><span class="st0">&quot;STYLESHEET&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/themes/{$oSettings-&gt;getSiteTheme()}/base.css&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>link rel<span class="sy0">=</span><span class="st0">&quot;ALTERNATE STYLESHEET&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/themes/{$oSettings-&gt;getSiteTheme()}/newcss/base2.css&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;base2&quot;</span> <span class="sy0">/&gt;</span> <span class="sy0">&lt;!--</span> к новому стилю <span class="sy0">--&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>link rel<span class="sy0">=</span><span class="st0">&quot;ALTERNATE STYLESHEET&quot;</span> type<span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/themes/{$oSettings-&gt;getSiteTheme()}/newcss/base_back.css&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;base_back&quot;</span> <span class="sy0">/&gt;</span> <span class="sy0">&lt;!--</span> обратно к старому стилю <span class="sy0">--&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Рисуем и закидываем в <b>themes/default/images/</b> <br>кнопки-картинки для переключения стилей — <b>base2.gif</b>, <b>base_back.gif</b>.<br><br>Затем в тот же файл <b>sample.header.tpl</b> (или в любое другое удобное место страницы), встраиваем код кнопок селектора:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;#&quot;</span> onClick<span class="sy0">=</span><span class="st0">&quot;setActiveStyleSheet('base2'); return false;&quot;</span><span class="sy0">&gt;&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/themes/{$oSettings-&gt;getSiteTheme()}/images/base2.gif&quot;</span> <span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;#&quot;</span> onClick<span class="sy0">=</span><span class="st0">&quot;setActiveStyleSheet('base_back'); return false;&quot;</span><span class="sy0">&gt;&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/themes/{$oSettings-&gt;getSiteTheme()}/images/base_back.gif&quot;</span> <span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>На этом собственно и все… Развить идею во что-то большее пока не получилось, нет свободного времени. Попробовать результат в действии и оценить полезность/бесполезность описанного безобразия можете самостоятельно.<br><br>P.S. Можно пойти дальше, и по аналогичной схеме реализовать в пользовательской части смену самих шаблонов… Такой вариант наверное будет даже интереснее.]]></description>
<pubDate>Wed, 24 Jun 2009 18:13:59 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/740/</guid>
</item>
<item>
<title>Наводим лоск - оформление профиля пользователя и пагинации страниц</title>
<link>http://bigstreet.ru/blog/topic/706/</link>
<description><![CDATA[<style type="text/css">/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.php.php .de1, .php.php .de2 {font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;color: #000020;}
.php.php  {color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;}
.php.php a:link {color: #000060;}
.php.php a:hover {background-color: #f0f000;}
.php.php .imp {font-weight: bold; color: red;}
.php.php li, .php.php .li1 {font-weight: normal;color: #003030;}
.php.php .ln {width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;}
.php.php .kw1 {color: #b1b100;}
.php.php .kw2 {color: #000000; font-weight: bold;}
.php.php .kw3 {color: #990000;}
.php.php .co1 {color: #666666; font-style: italic;}
.php.php .co2 {color: #666666; font-style: italic;}
.php.php .co3 {color: #0000cc; font-style: italic;}
.php.php .co4 {color: #0000ff; font-style: italic;}
.php.php .coMULTI {color: #666666; font-style: italic;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .br0 {color: #009900;}
.php.php .sy0 {color: #339933;}
.php.php .st0 {color: #0000ff;}
.php.php .st_h {color: #0000ff;}
.php.php .nu0 {color: #cc66cc;}
.php.php .nu8 {color: #208080;}
.php.php .nu12 {color: #208080;}
.php.php .nu19 {color:#800080;}
.php.php .me1 {color: #004000;}
.php.php .me2 {color: #004000;}
.php.php .re0 {color: #000088;}
.php.php span.xtra { display:block; }
</style>
Хочу поделиться легкими фиксами шаблона оформления, которые реализовал на своем проекте.<br>Возможно, для кого-то информация окажется полезной, т.к. все изменения можно без труда внести в шаблон default<br>Предупреждаю сразу, изменения чисто косметические и сделаны на мой вкус. Владея базовыми навыками CSS верстки, Вы без сомнения, сможете доработать дизайн своего проекта и без приведенной ниже информации. <br><u>Изменения касаются</u>: вывода <b>статуса</b> пользователя, <b>оформления профиля</b> кнопок (Ваш друг!, Считает вас другом., Считаете другом., Подружится), <b>оформления пагинации</b> страниц. Использую версию альфа — 2.0 с патчем Френдлента, имейте это в виду, если будете использовать приведенные фиксы.<br><br><b>Пост обновлен</b> — редактирование статуса в <b>PopUp</b> окне<br><cut><br><b>1. Первое</b>, на что обратил внимание, это оформление вывода информации о статусе пользователя. Сейчас в стандартном шаблоне наблюдаем следующее:<br><br><img src="http://bigstreet.ru/uploads/users/1060/1244491618.jpg" hspace="10px" vspace="10px"><br><br>Видно, что текст статуса пользователя не вписывается в общую картину (субъективно) и давит на чувство эстетического восприятия (имхо). <br>Хозяин, как говорится — барин… Мне показалось что изменения внести все же стоит.<br>Подредактировав немного файл ( sample.profile_head.tpl ) можно получить следующее:<br><br><img src="http://bigstreet.ru/uploads/users/1060/1244491704.jpg" hspace="10px" vspace="10px"><br><br>При этом кнопка-ссылка на страницу изменения статуса будет выводиться непосредственно рядом с информацией о статусе<br><br><img src="http://bigstreet.ru/uploads/users/1060/1244491760.jpg" hspace="10px" vspace="10px"><br><br>Заменив текстовые ссылки ( Ваш друг!, Считает вас другом., Считаете другом., Подружится ) картинками, делаем страничку более красивой и одновременно убираем возможное перепрыгивание строк из-за нехватки места.<br>Также добавляется кнопка редактирования профиля пользователя рядом с аватаром, вместо текста «Это ваш профиль, вы здесь хозяин, а здесь вы можете его отредактировать.». Мне кажется так удобнее. <br><br><img src="http://bigstreet.ru/uploads/users/1060/1244493651.jpg" hspace="10px" vspace="10px"><br><br>Что потребуется изменить:<br><br><br>а) открываем файл base.css и добавляем код:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">div<span class="sy0">.</span>blog_status <span class="br0">&#123;</span> width<span class="sy0">:</span> 250px; background<span class="sy0">:</span> <span class="co2">#eeeeee; padding: 0px 15px 10px 15px; }</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>status<span class="sy0">-</span>row <span class="br0">&#123;</span> width<span class="sy0">:</span> 20px; background<span class="sy0">:</span> url<span class="br0">&#40;</span><span class="st_h">'images/status-row.jpg'</span><span class="br0">&#41;</span> no<span class="sy0">-</span>repeat top right; <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>б) редактируем файл ( <b>themes/default/templates/sample.profile_head.tpl</b> ) <br><br>Подробную инструкцию по редактированию кода (картинки и уже измененные файлы) можно <a href="http://art-blog.ru/uploads/fixes/status_bigstreet.rar">скачать</a><br>Хотел было вставить прямо в пост, но устал бороться с парсером, т.ч. сори, как говорится, за неудобства.<br><br><br><b>2. Второе</b>, на что обратил внимание, на многих сайта используется стандартный шаблон default (ну возможно слегка доработанный) и как следствие — везде одинаковое оформление пагинации.<br>Некоторое время назад, я наткнулся на пост <a href="http://bigstreet.ru/blog/topic/392/">здесь на сайте</a>, в нем была инструкция как внедрить в шаблон ява-скрипт <b>paginator3000</b>, который бы отвечал за постраничную навигацию.<br>Я тогда помню удивился… как же поисковики будут индексировать страницы, если ссылки выводятся через ява-скрипт? Но внешнее оформление понравилось.<br>Поэтому сделал для себя почти то же самое, правда, без красивой прокрутки, исключительно на css. <br><br><img src="http://bigstreet.ru/uploads/users/1060/1244492131.jpg" hspace="10px" vspace="10px"><br><br>Править нужно будет файлы:<br> <br>ваша тема/base.css<br>modules/blog/templates/approved.tpl<br>modules/blog/templates/purgatory.tpl<br>modules/blog/templates/gap.tpl<br>modules/blog/templates/friendstape.tpl (если используется Френдлента)<br>modules/blog/templates/user.tpl<br><br>onair/templates/index.tpl<br><br>и вообще все файлы, где используется конструкция:<br><br><img src="http://bigstreet.ru/uploads/users/1060/1244492172.jpg" hspace="10px" vspace="10px"><br><br>во всех этих файлах нужно привести строку<br><br><img src="http://bigstreet.ru/uploads/users/1060/1244492204.jpg" hspace="10px" vspace="10px"><br><br>к виду<br><br><img src="http://bigstreet.ru/uploads/users/1060/1244492253.jpg" hspace="10px" vspace="10px"><br><br>У нас в base.css уже описан класс .pager, т.ч. дополнение в виде padding можно внести прямо туда.<br>А изменения намечаются такие:<br><br>вместо<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager <span class="br0">&#123;</span> line<span class="sy0">-</span>height<span class="sy0">:</span> 30px <span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager span<span class="sy0">.</span>curr <span class="br0">&#123;</span> padding<span class="sy0">:</span> 2px 7px 3px 7px; margin<span class="sy0">-</span>right<span class="sy0">:</span> 5px; background<span class="sy0">:</span> <span class="co2">#666; border: 1px solid #333; color: #FFF }</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>нужно вписать<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager <span class="br0">&#123;</span> line<span class="sy0">-</span>height<span class="sy0">:</span> 30px; border<span class="sy0">-</span>bottom<span class="sy0">:</span> 3px solid <span class="co2">#ccc; padding: 5px 0 10px 2px; }</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager span<span class="sy0">.</span>curr <span class="br0">&#123;</span> padding<span class="sy0">:</span>3px <span class="nu19">0</span>; color<span class="sy0">:</span><span class="co2">#fff; background:#cccccc url('images/bottom-pager.jpg') right bottom repeat-x; font-style:normal; font-weight:normal; padding: 2px 7px 28px 7px; margin-right: 5px; }</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>остальну часть класса .pager можно настроить по желанию, а можно использовать мой вариант<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager a <span class="br0">&#123;</span> padding<span class="sy0">:</span> 2px 7px 3px 7px; margin<span class="sy0">-</span>right<span class="sy0">:</span> 5px; text<span class="sy0">-</span>decoration<span class="sy0">:</span> none; color<span class="sy0">:</span> <span class="co2">#ACACAC; }</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager a<span class="sy0">:</span>hover <span class="br0">&#123;</span> background<span class="sy0">:</span> <span class="co2">#eeeeee; color: #ACACAC; }</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager a<span class="sy0">.</span><span class="kw3">prev</span><span class="sy0">,</span> <span class="sy0">.</span>pager a<span class="sy0">.</span><span class="kw3">next</span><span class="sy0">,</span> <span class="sy0">.</span>pager a<span class="sy0">.</span>first<span class="sy0">,</span> <span class="sy0">.</span>pager a<span class="sy0">.</span>last <span class="br0">&#123;</span> color<span class="sy0">:</span> <span class="co2">#ACACAC; }</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>pager a<span class="sy0">.</span><span class="kw3">prev</span><span class="sy0">:</span>hover<span class="sy0">,</span> <span class="sy0">.</span>pager a<span class="sy0">.</span><span class="kw3">next</span><span class="sy0">:</span>hover<span class="sy0">,</span> <span class="sy0">.</span>pager a<span class="sy0">.</span>first<span class="sy0">:</span>hover<span class="sy0">,</span> <span class="sy0">.</span>pager a<span class="sy0">.</span>last<span class="sy0">:</span>hover <span class="br0">&#123;</span> &nbsp;color<span class="sy0">:</span> <span class="co2">#ACACAC; background: #eeeeee; }</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>.pager span.curr — класс отвечает за оформление номера текущей страницы, и для его атрибута background цвет можно назначить в соответствии с цветовой гаммой вашего сайта.<br><br>После этого останется только добавить файл bottom-pager.jpg в папку images темы оформления.<br>Если рисовать свой маркер для активной страницы лень, то скачать готовый файл bottom-pager.jpg + инструкцию можно <a href="http://art-blog.ru/uploads/fixes/pagination_bigstreet.rar">тут</a><br><br><b>UPDATE</b><br><br>Развил <a href="http://opensource.bigstreet.ru/topic/711/">идею</a>, которую подал TuXoH ( чтобы пользователь не покидал страницу профиля, для смены своего статуса )<br>За основу взял его форму отправки данных:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>form method<span class="sy0">=</span><span class="st0">&quot;POST&quot;</span> action<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/profile/{$oProfile-&gt;getLogin()}/status/save/&quot;</span> enctype<span class="sy0">=</span><span class="st0">&quot;multipart/form-data&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;user_id&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;{$oProfile-&gt;getId()}&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> style<span class="sy0">=</span><span class="st0">&quot;width: 70%; height: 20px&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;user_status&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;{$oProfile-&gt;getUserStatus()|htmlspecialchars}&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> value<span class="sy0">=</span><span class="st0">&quot; Ок &quot;</span><span class="sy0">&gt;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;form_token&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;{$form_token}&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>form<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Также в файле ( <b>status.action.php</b> )<br><br>строку:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Location: '</span><span class="sy0">.</span>System_Router<span class="sy0">::</span><span class="me2">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'/profile/'</span><span class="sy0">.</span><span class="re0">$oSavedProfile</span><span class="sy0">-&gt;</span><span class="me1">getLogin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'/status/saved/'</span><span class="br0">&#41;</span>;</div></li>
</ol></div><br>изменил на строку:<br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Location: '</span><span class="sy0">.</span>System_Router<span class="sy0">::</span><span class="me2">getPathWeb</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">'/profile/'</span><span class="sy0">.</span><span class="re0">$oSavedProfile</span><span class="sy0">-&gt;</span><span class="me1">getLogin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st_h">''</span><span class="br0">&#41;</span>;</div></li>
</ol></div><br><br>в файл base.css<br>добавил класс для оформления всплывающего окна<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">.</span>popup_editstatus <span class="br0">&#123;</span> </div></li>
<li class="li1"><div class="de1">position<span class="sy0">:</span> absolute;</div></li>
<li class="li1"><div class="de1">visibility<span class="sy0">:</span> hidden;</div></li>
<li class="li1"><div class="de1">margin<span class="sy0">-</span>top<span class="sy0">:</span> <span class="sy0">-</span>20px;</div></li>
<li class="li1"><div class="de1">margin<span class="sy0">-</span>left<span class="sy0">:</span> <span class="sy0">-</span>110px;</div></li>
<li class="li1"><div class="de1">background<span class="sy0">:</span> <span class="co2">#F9F9F0; </span></div></li>
<li class="li1"><div class="de1">border<span class="sy0">:</span> 1px solid <span class="co2">#999999;</span></div></li>
<li class="li1"><div class="de1">width<span class="sy0">:</span> 180px; height<span class="sy0">:</span> 100px;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>В файл ( <b>themes/default/templates/sample.profile_head.tpl</b> )<br> <br>вместо строки:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>td rowspan<span class="sy0">=</span><span class="nu0">2</span> valign<span class="sy0">=</span><span class="st0">&quot;top&quot;</span><span class="sy0">&gt;&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/profile/{$oProfile-&gt;getLogin()}/status&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;Изменить статус&quot;</span><span class="sy0">&gt;&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/themes/{$oSettings-&gt;getSiteTheme()}/images/buttons/18/edit.gif&quot;</span> border<span class="sy0">=</span><span class="st0">&quot;0&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;Изменить статус&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;Изменить статус&quot;</span><span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;&lt;/</span>td<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>поставил следующий код:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span>literal<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;script language</span><span class="sy0">=</span><span class="st0">&quot;JavaScript&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;!--</span><span class="co1">//</span></div></li>
<li class="li1"><div class="de1"><span class="kw2">var</span> d<span class="sy0">=</span>document</div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> show <span class="br0">&#40;</span>n<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>n<span class="sy0">==</span><span class="nu0">1</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;d<span class="sy0">.</span>all<span class="br0">&#91;</span><span class="st0">&quot;l1&quot;</span><span class="br0">&#93;</span><span class="sy0">.</span>style<span class="sy0">.</span>visibility<span class="sy0">=</span><span class="st_h">'visible'</span></div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw1">else</span></div></li>
<li class="li1"><div class="de1">&nbsp;d<span class="sy0">.</span>all<span class="br0">&#91;</span><span class="st0">&quot;l1&quot;</span><span class="br0">&#93;</span><span class="sy0">.</span>style<span class="sy0">.</span>visibility<span class="sy0">=</span><span class="st_h">'hidden'</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="co1">//--&gt; </span></div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;/script&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="sy0">/</span>literal<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>td rowspan<span class="sy0">=</span><span class="nu0">2</span> valign<span class="sy0">=</span><span class="st0">&quot;top&quot;</span><span class="sy0">&gt;&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;javascript:void show(1)&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;Изменить статус&quot;</span><span class="sy0">&gt;&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/themes/{$oSettings-&gt;getSiteTheme()}/images/buttons/18/edit.gif&quot;</span> border<span class="sy0">=</span><span class="st0">&quot;0&quot;</span> alt<span class="sy0">=</span><span class="st0">&quot;Изменить статус&quot;</span> title<span class="sy0">=</span><span class="st0">&quot;Изменить статус&quot;</span><span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>div <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;popup_editstatus&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;l1&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;l1&quot;</span><span class="sy0">&gt;&lt;</span>div style<span class="sy0">=</span><span class="st0">&quot;text-align: right;&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>small style<span class="sy0">=</span><span class="st0">&quot;padding: 5px 7px 3px 7px; background: #800000&quot;</span><span class="sy0">&gt;&lt;</span>a style<span class="sy0">=</span><span class="st0">&quot;color: #FFF; text-decoration: none&quot;</span> href<span class="sy0">=</span><span class="st0">&quot;javascript:void show(0)&quot;</span><span class="sy0">&gt;</span>Закрыть<span class="sy0">&lt;/</span>a<span class="sy0">&gt;&lt;/</span>small<span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>div style<span class="sy0">=</span><span class="st0">&quot;width: 180; padding-bottom: 5px;&quot;</span> align<span class="sy0">=</span><span class="st0">&quot;center&quot;</span><span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>form method<span class="sy0">=</span><span class="st0">&quot;POST&quot;</span> action<span class="sy0">=</span><span class="st0">&quot;{$oRouter-&gt;getPathWeb()}/profile/{$oProfile-&gt;getLogin()}/status/save/&quot;</span> enctype<span class="sy0">=</span><span class="st0">&quot;multipart/form-data&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;user_id&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;{$oProfile-&gt;getId()}&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> style<span class="sy0">=</span><span class="st0">&quot;width: 70%; height: 20px&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;user_status&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;{$oProfile-&gt;getUserStatus()|htmlspecialchars}&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> value<span class="sy0">=</span><span class="st0">&quot; Ок &quot;</span><span class="sy0">&gt;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;hidden&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;form_token&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;{$form_token}&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>form<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;</span>small <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;pale&quot;</span><span class="sy0">&gt;</span>   <span class="sy0">*</span> html<span class="sy0">-</span>теги запрещены<span class="sy0">&lt;/</span>small<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;/</span>td<span class="sy0">&gt;</span> &nbsp; </div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br><br>Теперь при изменении статуса появляется такое вот безобразие:<br><br><img src="http://bigstreet.ru/uploads/users/1060/1244744966.jpg" hspace="10px" vspace="10px"><br><br><b>Уточнение:</b> следующий код<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span>literal<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;script language</span><span class="sy0">=</span><span class="st0">&quot;JavaScript&quot;</span><span class="sy0">&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">&lt;!--</span><span class="co1">//</span></div></li>
<li class="li1"><div class="de1"><span class="kw2">var</span> d<span class="sy0">=</span>document</div></li>
<li class="li1"><div class="de1"><span class="kw2">function</span> show <span class="br0">&#40;</span>n<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>n<span class="sy0">==</span><span class="nu0">1</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;d<span class="sy0">.</span>all<span class="br0">&#91;</span><span class="st0">&quot;l1&quot;</span><span class="br0">&#93;</span><span class="sy0">.</span>style<span class="sy0">.</span>visibility<span class="sy0">=</span><span class="st_h">'visible'</span></div></li>
<li class="li1"><div class="de1">&nbsp;<span class="kw1">else</span></div></li>
<li class="li1"><div class="de1">&nbsp;d<span class="sy0">.</span>all<span class="br0">&#91;</span><span class="st0">&quot;l1&quot;</span><span class="br0">&#93;</span><span class="sy0">.</span>style<span class="sy0">.</span>visibility<span class="sy0">=</span><span class="st_h">'hidden'</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="co1">//--&gt; </span></div></li>
<li class="li1"><div class="de1"><span class="kw2">&lt;/script&gt;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span><span class="sy0">/</span>literal<span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
</ol></div><br><br>Нужно вставить лишь один раз, <br>в самое начало файла <b>themes/default/templates/sample.profile_head.tpl</b><br><br>Вообще-то, догадываюсь, можно popup реализовать средствами встроенного jquery… так, наверное, правильнее будет. Не разбирался на эту тему, занят счас немного другим. Потому сделал быстренько, просто чтобы работало. Еще, пожалуй, нужно все используемые стили (как для div-ов так и для form) прописать в base.css для порядка.<br><br><br><b>P.S.</b><br><br>Я осознаю, что доработка оформления, не так важна, как работа над модулями и ядром в целом, поэтому прошу не относится к приведенной информации излишне серьезно. <br>Прекрасно понимая, что этот пост в свете текущих изменений на проекте (появление новых сборок), а также изменений грядущих в виде нового шаблона, может стать не актуальным,<br>я, все же, надеюсь что кому-то эти готовые решения будут полезны.]]></description>
<pubDate>Tue, 09 Jun 2009 00:23:02 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/706/</guid>
</item>
<item>
<title>Парсер убивает прикрепленные изображения</title>
<link>http://bigstreet.ru/blog/topic/579/</link>
<description><![CDATA[<style type="text/css">/**
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
*/
.php.php .de1, .php.php .de2 {font-family: monospace; font-weight: normal; font-style: normal; margin:0; padding:0; background:inherit;color: #000020;}
.php.php  {color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;}
.php.php a:link {color: #000060;}
.php.php a:hover {background-color: #f0f000;}
.php.php .imp {font-weight: bold; color: red;}
.php.php li, .php.php .li1 {font-weight: normal;color: #003030;}
.php.php .ln {width:1px;font-weight: normal;text-align:right;margin:0;padding:0 2px;}
.php.php .kw1 {color: #b1b100;}
.php.php .kw2 {color: #000000; font-weight: bold;}
.php.php .kw3 {color: #990000;}
.php.php .co1 {color: #666666; font-style: italic;}
.php.php .co2 {color: #666666; font-style: italic;}
.php.php .co3 {color: #0000cc; font-style: italic;}
.php.php .co4 {color: #0000ff; font-style: italic;}
.php.php .coMULTI {color: #666666; font-style: italic;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .es_h {color: #000099; font-weight: bold;}
.php.php .br0 {color: #009900;}
.php.php .sy0 {color: #339933;}
.php.php .st0 {color: #0000ff;}
.php.php .st_h {color: #0000ff;}
.php.php .nu0 {color: #cc66cc;}
.php.php .nu8 {color: #208080;}
.php.php .nu12 {color: #208080;}
.php.php .nu19 {color:#800080;}
.php.php .me1 {color: #004000;}
.php.php .me2 {color: #004000;}
.php.php .re0 {color: #000088;}
.php.php span.xtra { display:block; }
</style>
Я имею ввиду не обратный слеш при <b>magic_quotes_gpc on</b>, а именно странное поведение парсера в ответ на присутствие в редактируемом тексте уже существующего тега <b>IMG</b>. <br>При редактировании поста обычным пользователем происходит такая неприятная вещь — <br>парсер режет код уже прикрепленных к посту изображений, заменяя двойные кавычки на типографские и меняя картинку в посте на обычную ссылку следующего вида<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>img src<span class="sy0">=</span>«localhost<span class="sy0">.</span>ru<span class="sy0">/</span>uploads<span class="sy0">/</span>users<span class="sy0">/</span><span class="nu0">7</span><span class="sy0">/</span><span class="nu0">2009</span><span class="sy0">-</span><span class="nu8">02</span><span class="sy0">-</span><span class="nu0">15</span><span class="sy0">/</span>73<span class="sy0">.</span>jpg» <span class="sy0">/&gt;</span></div></li>
</ol></div><br><cut><br>При еще одном, повторном редактировании, такая ссылка опять режется парсером и в результате становится просто куском обычного текста. <br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="sy0">&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;http://«&lt;a&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;size-img&quot;</span><span class="sy0">/&gt;</span>localhost<span class="sy0">.</span>ru<span class="sy0">/</span>uploads<span class="sy0">/</span>users<span class="sy0">/</span><span class="nu0">7</span><span class="sy0">/</span><span class="nu0">2009</span><span class="sy0">-</span><span class="nu8">02</span><span class="sy0">-</span><span class="nu0">15</span><span class="sy0">/</span>73<span class="sy0">.</span>jpg»</div></li>
</ol></div><br><br>Таким образом, если пользователь решил при редактировании добавить в свой опубликованный пост новую картинку, то уже существующие картинки из поста исчезнут (ну, или каждую из них придется заливать сначала, что вообще не логично). <br>Если убрать из парсера замену кавычек, проблема все равно остается. Можно конечно сделать редактирование постов только админом (парсер в этом случае будет отключен), но это далеко не выход, т.к. серьезно ущемляет права пользователей на сайте.<br><br>Наверняка кто-нибудь уже сталкивался с данной проблемой и возможно даже решил ее. В таком случае очень прошу — пожалуйста поделитесь решением.<br><br><b>UPD</b><br><br>Нашел следующее решение:<br><br>При использовании полезнейшего хака от inetlover <a href="http://sollutions.bigstreet.ru/topic/352/">Публикация изображений. Часть вторая.</a> в strings.php <br><br>вместо:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="co4">/** &nbsp;</span></div></li>
<li class="li1"><div class="de1"><span class="co4">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*Make true layout from illustration, inputted by users</span></div></li>
<li class="li1"><div class="de1"><span class="co4">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> safeImages<span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$search</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'&quot;&lt;img (.*)&gt;&quot;Ui'</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$replace</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;&lt;img $1 id=<span class="es0">\&quot;</span>size-img<span class="es0">\&quot;</span>&gt;<span class="es0">\n</span>&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$text</span> <span class="sy0">=</span> <span class="kw3">preg_replace</span><span class="br0">&#40;</span><span class="re0">$search</span><span class="sy0">,</span> <span class="re0">$replace</span><span class="sy0">,</span> <span class="re0">$text</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$text</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
</ol></div><br><br>сделал:<br><br><div class="php php" style="color: #000066; border: 1px solid #CCCCCC; background-color: #F6F6F0; padding: 0 5px 0 15px; margin: 5px 0 5px 0;"><ol><li class="li1"><div class="de1"><span class="co4">/** &nbsp;</span></div></li>
<li class="li1"><div class="de1"><span class="co4">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*Make true layout from illustration, inputted by users</span></div></li>
<li class="li1"><div class="de1"><span class="co4">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> safeImages<span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$search</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'&quot;&lt;img (.*)&gt;&quot;Ui'</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$replace</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;&lt;img id='size-img' $1 &gt;<span class="es0">\n</span>&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$text</span> <span class="sy0">=</span> <span class="kw3">preg_replace</span><span class="br0">&#40;</span><span class="re0">$search</span><span class="sy0">,</span> <span class="re0">$replace</span><span class="sy0">,</span> <span class="re0">$text</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$text</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
</ol></div><br><br>Как ни странно, но после этой нехитрой перестановки пары символов (см. в 7-й строке), <br>парсер перестал бить изображения. На версии jevix-1.0 работает.]]></description>
<pubDate>Wed, 25 Feb 2009 23:06:08 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/579/</guid>
</item>
<item>
<title>Onair - не работает пагинация</title>
<link>http://bigstreet.ru/blog/topic/578/</link>
<description><![CDATA[В модуле <b>onair</b> отображается только одна (1-я) страница с последними коментами. При попытке перейти на стр. 2 (и далее) скрипт выдает 404-ю, с системным сообщением<br><br>«Ошибка: Запрошенное действие <b>2</b> модуля <b>onair</b> не обнаружено.»<br><br>Во всех остальных модулях пагинация работает исправно.<br>Подскажите пожалуйста, как решить проблему? Видел на многих проектах (также, как и на bigstreet.ru) Прямой Эфир функционирует как положено — все страницы доступны.<br>Дистр качался с SVN, правда уже давненько. Пробовал заменить файлы модуля onair, а также файлы, связанные с комментариями из папок system/mappers/ и system/essences на новейшие из SVN — результат тот же… <a href="http://мойсайт.ru/onair/">мойсайт.ru/onair/</a> — работает, <a href="http://мойсайт.ru/onair/2">мойсайт.ru/onair/2</a> (/3, /4 и так далее) — выскакивает 404-я. Наверняка проблема уже всплывала, если есть решение дайте пожалуйста ссылку.]]></description>
<pubDate>Wed, 25 Feb 2009 21:35:06 +0700</pubDate>
<guid isPermaLink="true">http://bigstreet.ru/blog/topic/578/</guid>
</item>
</channel>
</rss>