Информация

"4admins.ru" Рекомендует

style-selector beta

Список модификаций, которые вы можете установить себе на форумы.
  • Автор 
    Сообщение
Аватара пользователя
Сообщения: 686
Зарегистрирован: 24 июн 2010, 13:42
Благодарил (а): 122
Поблагодарили: 312 раз в 210 сообщениях
Город: Москва
Пол: Женский
Адрес форума: http://foxlodge.fatbb.ru
Баллы репутации: 39

style-selector beta

Сообщение Добавлено: 23 май 2011, 22:34

Это моя маленькая модификация для форумов в системе 4админс (потянет также для форумов в системе гетбб), на которых используется несколько стилей.
На порталах наших форумов предусмотрены селектор демонстрации установленных и активированных стилей. Однако, код этого селектора работает только на портале, потому что используемые в нем переменные не передаются в другие шаблоны.
Моя модификация заключается в том, что позволяет сделать такой селектор в шапке форума или в футере форума. Установив такую игрушку, Вы сможете менять стиль, находясь на любой страничке Вашего форума при этом после выбора стиля Вы останетесь на той же странице.
Вот демо-форум, показывающий, как работает игрушка: http://styleselector.fatbb.ru
В принципе, код уже выкладывался в другой теме. Но там всю тему надо читать, чтобы все правильно сделать.

Итак, как сделать такой селектор.
1. Выпишите номера стилей, активированных на вашем форуме.
2. Отредактируйте следующий код:

Если Ваш форум не имеет своего домена:
Код: Выделить всё
<div> <script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst

if (window.location.hostname=='адрес вашего форума в системе 4админс без http://www') window.location.href='http://адрес вашего форума в системе 4админс без http://www'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='адрес вашего форума в системе 4админс c www, но без http://')
window.location.href='http://www.адрес вашего форума в системе 4админс без http://www'+window.location.pathname+ttt+window.location.hash

}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выберите стиль</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля  &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
</select>
</div>




Если Ваш форум имеет свой домен:
Код: Выделить всё
<div> <script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst


if (window.location.hostname=='адрес вашего форума в системе 4админс без http://www'||window.location.hostname=='адрес вашего домена без http://') window.location.href='адрес вашего домена с http://'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='адрес вашего форума в системе 4админс с www, но без http://'||window.location.hostname=='адрес вашего домена второго уровня без http://')
window.location.href='адрес вашего домена второго уровня с http://'+window.location.pathname+ttt+window.location.hash

}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выберите стиль</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля  &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
</select>

</div>


Номера стилей, названия стилей, адрес форума замените на свои.
Если надо убрать пункт в селекторе:
удалите в теге селект лишний <option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option> ,
а также в теге скрипт удалите лишние условия:
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
Чтобы добавить пункт в селекторе:
1. Добавьте перед </select> очередной <option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
2. Допишите перед else if (ttt=='') ttt='?'+nst; очередное условие else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);

ВАЖНО! Если Вы включаете в селектор стили, содержащие как однозначные, так и двух-, трех- значные номера, то номера стилей в коде скрипта следует расположить в порядке убывания. Как номера стилей будут располагаться в теге селект - значения не имеет.


3. Получившийся код включите в шаблон overall_heder каждого стиля, который будет в селекторе.
Втыкать код надо, естес-но, в пространство между тегами <body></body>, а там уж насколько фантазии и умения хватит. :)


Пример кода для форума, не имеющего своего домена.

На демо-форуме с адресом http://styleselector.fatbb.ru установлены и активированы стили:

prosilver номер 1
subsilver2 номер 5
eTech номер 11
RedSilver3 номер 12.

Код, установленный в овералл_хедер каждого стиля:
Код: Выделить всё
<div><script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=12') != -1) ttt=ttt.replace('style=12', nst);
else if (ttt.indexOf('style=11') != -1) ttt=ttt.replace('style=11', nst);
else if (ttt.indexOf('style=5') != -1) ttt=ttt.replace('style=5', nst);
else if (ttt.indexOf('style=1') != -1) ttt=ttt.replace('style=1', nst);

else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst



if (window.location.hostname=='styleselector.fatbb.ru') window.location.href='http://styleselector.fatbb.ru'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='www.styleselector.fatbb.ru')
window.location.href='http://www.styleselector.fatbb.ru'+window.location.pathname+ttt+window.location.hash


}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выберите стиль</option>
<option value="style=1">&nbsp; prosilver &nbsp;</option>
<option value="style=5">&nbsp; subsilver2 &nbsp;</option>
<option value="style=11">&nbsp; eTech &nbsp;</option>
<option value="style=12">&nbsp; RedSilver3 &nbsp;</option>

</select>
</div>



Пример кода для форума, имеющего свой домен:

Код: Выделить всё
<div class="style_change"> <script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=42') != -1) ttt=ttt.replace('style=42', nst);
else if (ttt.indexOf('style=11') != -1) ttt=ttt.replace('style=11', nst);
else if (ttt.indexOf('style=33') != -1) ttt=ttt.replace('style=33', nst);
else if (ttt.indexOf('style=28') != -1) ttt=ttt.replace('style=28', nst);
else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst


if (window.location.hostname=='foxlodge.fatbb.ru'||window.location.hostname=='foxlodge.info') window.location.href='http://foxlodge.info'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='www.foxlodge.fatbb.ru'||window.location.hostname=='www.foxlodge.info')
window.location.href='http://www.foxlodge.info'+window.location.pathname+ttt+window.location.hash
}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выбор стиля</option>
<option value="style=42">&nbsp; subsilver2 &nbsp;</option>
<option value="style=11">&nbsp; Black Pearl &nbsp;</option>
<option value="style=33">&nbsp; RedSilver3 &nbsp;</option>
<option value="style=28">&nbsp; 610nm_azul &nbsp;</option>

</select>
</div>

За это сообщение пользователя Alice поблагодарили:
Shans

Аватара пользователя
Сообщения: 686
Зарегистрирован: 24 июн 2010, 13:42
Благодарил (а): 122
Поблагодарили: 312 раз в 210 сообщениях
Город: Москва
Пол: Женский
Адрес форума: http://foxlodge.fatbb.ru
Баллы репутации: 39

Re: style-selector beta

Сообщение Добавлено: 24 май 2011, 22:56

Alice писал(а):Если найдете ошибки в работе - пишите. :)

Все-таки нашлась ситуация, в которой выбиралка работать корректно не захотела. На то оно и было названо Вeta. *pardon* Подправила код. Отредактировать первое сообщение уже не могу. :(
Модераторы :privet:, пожалуйста, замените текст в первом сообщении на текст под спойлером, а спойлер в этом посте снесите.


Это моя маленькая модификация для форумов в системе 4админс (потянет также для форумов в системе гетбб), на которых используется несколько стилей.
На порталах наших форумов предусмотрены селектор демонстрации установленных и активированных стилей. Однако, код этого селектора работает только на портале, потому что используемые в нем переменные не передаются в другие шаблоны.
Моя модификация заключается в том, что позволяет сделать такой селектор в шапке форума или в футере форума. Установив такую игрушку, Вы сможете менять стиль, находясь на любой страничке Вашего форума при этом после выбора стиля Вы останетесь на той же странице.
Вот демо-форум, показывающий, как работает игрушка: http://styleselector.fatbb.ru
В принципе, код уже выкладывался в другой теме. Но там всю тему надо читать, чтобы все правильно сделать.

Итак, как сделать такой селектор.
1. Выпишите номера стилей, активированных на вашем форуме.
2. Отредактируйте следующий код:

Если Ваш форум не имеет своего домена:
Код: Выделить всё
<div> <script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst

if (window.location.hostname=='адрес вашего форума в системе 4админс без http://www') window.location.href='http://адрес вашего форума в системе 4админс без http://www'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='адрес вашего форума в системе 4админс c www, но без http://')
window.location.href='http://www.адрес вашего форума в системе 4админс без http://www'+window.location.pathname+ttt+window.location.hash

}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выберите стиль</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля  &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
</select>
</div>




Если Ваш форум имеет свой домен:
Код: Выделить всё
<div> <script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst


if (window.location.hostname=='адрес вашего форума в системе 4админс без http://www'||window.location.hostname=='адрес вашего домена без http://') window.location.href='адрес вашего домена с http://'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='адрес вашего форума в системе 4админс с www, но без http://'||window.location.hostname=='адрес вашего домена второго уровня без http://')
window.location.href='адрес вашего домена второго уровня с http://'+window.location.pathname+ttt+window.location.hash

}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выберите стиль</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля  &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
<option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
</select>

</div>


Номера стилей, названия стилей, адрес форума замените на свои.
Если надо убрать пункт в селекторе:
удалите в теге селект лишний <option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option> ,
а также в теге скрипт удалите лишние условия:
else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);
Чтобы добавить пункт в селекторе:
1. Добавьте перед </select> очередной <option value="style=номер стиля">&nbsp; Название стиля &nbsp;</option>
2. Допишите перед else if (ttt=='') ttt='?'+nst; очередное условие else if (ttt.indexOf('style=номер стиля') != -1) ttt=ttt.replace('style=номер стиля', nst);

ВАЖНО! Если Вы включаете в селектор стили, содержащие как однозначные, так и двух-, трех- значные номера, то номера стилей в коде скрипта следует расположить в порядке убывания. Как номера стилей будут располагаться в теге селект - значения не имеет.


3. Получившийся код включите в шаблон overall_heder каждого стиля, который будет в селекторе.
Втыкать код надо, естес-но, в пространство между тегами <body></body>, а там уж насколько фантазии и умения хватит. :)


Пример кода для форума, не имеющего своего домена.

На демо-форуме с адресом http://styleselector.fatbb.ru установлены и активированы стили:

prosilver номер 1
subsilver2 номер 5
eTech номер 11
RedSilver3 номер 12.

Код, установленный в овералл_хедер каждого стиля:
Код: Выделить всё
<div><script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=12') != -1) ttt=ttt.replace('style=12', nst);
else if (ttt.indexOf('style=11') != -1) ttt=ttt.replace('style=11', nst);
else if (ttt.indexOf('style=5') != -1) ttt=ttt.replace('style=5', nst);
else if (ttt.indexOf('style=1') != -1) ttt=ttt.replace('style=1', nst);

else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst



if (window.location.hostname=='styleselector.fatbb.ru') window.location.href='http://styleselector.fatbb.ru'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='www.styleselector.fatbb.ru')
window.location.href='http://www.styleselector.fatbb.ru'+window.location.pathname+ttt+window.location.hash


}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выберите стиль</option>
<option value="style=1">&nbsp; prosilver &nbsp;</option>
<option value="style=5">&nbsp; subsilver2 &nbsp;</option>
<option value="style=11">&nbsp; eTech &nbsp;</option>
<option value="style=12">&nbsp; RedSilver3 &nbsp;</option>

</select>
</div>



Пример кода для форума, имеющего свой домен:

Код: Выделить всё
<div class="style_change"> <script type="text/javascript">// <![CDATA[

function jumpStyle(selObj)
{
nst=selObj.options[selObj.selectedIndex].value
ttt=window.location.search;
if (ttt.indexOf('style=42') != -1) ttt=ttt.replace('style=42', nst);
else if (ttt.indexOf('style=11') != -1) ttt=ttt.replace('style=11', nst);
else if (ttt.indexOf('style=33') != -1) ttt=ttt.replace('style=33', nst);
else if (ttt.indexOf('style=28') != -1) ttt=ttt.replace('style=28', nst);
else if (ttt=='') ttt='?'+nst;
else ttt=ttt+'&'+nst


if (window.location.hostname=='foxlodge.fatbb.ru'||window.location.hostname=='foxlodge.info') window.location.href='http://foxlodge.info'+window.location.pathname+ttt+window.location.hash

if (window.location.hostname=='www.foxlodge.fatbb.ru'||window.location.hostname=='www.foxlodge.info')
window.location.href='http://www.foxlodge.info'+window.location.pathname+ttt+window.location.hash
}
// ]]>
</script>
<select onchange="jumpStyle(this)">
<option>Выбор стиля</option>
<option value="style=42">&nbsp; subsilver2 &nbsp;</option>
<option value="style=11">&nbsp; Black Pearl &nbsp;</option>
<option value="style=33">&nbsp; RedSilver3 &nbsp;</option>
<option value="style=28">&nbsp; 610nm_azul &nbsp;</option>

</select>
</div>

Сообщение Администратора GoDFaTHeR A
Поправлен первый пост

Аватара пользователя
Сообщения: 7022
Зарегистрирован: 11 авг 2009, 16:58
Благодарил (а): 655
Поблагодарили: 2342 раз в 1742 сообщениях
Город: Москва
Пол: Мужской
Адрес форума: http://help.4admins.ru
Баллы репутации: 167

Re: style-selector beta

Сообщение Добавлено: 26 май 2011, 01:56

Alice
не много поковырял портальный скрипт смены стиля.... получилось по моему менее объемно
ставится сразу после </head>

Код: Выделить всё
      <script type="text/javascript">
         <!--
         // borrowed from forumimages.com !!
         function jumpMenu(targ, selObj, restore)
         {
            eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
            if (restore) selObj.selectedIndex = 0;
         }
         //-->
         </script>
      <form method="get" action="./index.php" onsubmit="if(document.jumpbox.f.value == -1){return false;}">
      <fieldset class="style_change">

         <select name="demo" id="demo" onchange="jumpMenu('parent',this,0)">
<option selected="selected" disabled="disabled">Выберите стиль</option>
<option value="/index.php?style=13">&nbsp; 610nm &nbsp;</option>
<option value="/index.php?style=12">&nbsp; Black Pearl &nbsp;</option>
<option value="/index.php?style=11">&nbsp; bo2Soft &nbsp;</option>
<option value="./index.php?style=1">&nbsp; prosilver &nbsp;</option>
<option value="./index.php?style=5">&nbsp; subsilver2 &nbsp;</option>      
   </select>
         </fieldset>

      </form>
      

Достаточно прописать номера стилей и их названия

<option value="/index.php?style=13">&nbsp; 610nm &nbsp;</option>
<option value="/index.php?style=12">&nbsp; Black Pearl &nbsp;</option>
<option value="/index.php?style=11">&nbsp; bo2Soft &nbsp;</option>
<option value="./index.php?style=1">&nbsp; prosilver &nbsp;</option>
<option value="./index.php?style=5">&nbsp; subsilver2 &nbsp;</option>
На этом сервисе можно cоздать форум бесплатно

Аватара пользователя
Сообщения: 686
Зарегистрирован: 24 июн 2010, 13:42
Благодарил (а): 122
Поблагодарили: 312 раз в 210 сообщениях
Город: Москва
Пол: Женский
Адрес форума: http://foxlodge.fatbb.ru
Баллы репутации: 39

Re: style-selector beta

Сообщение Добавлено: 26 май 2011, 02:10

GoDFaTHeR писал(а):не много поковырял портальный скрипт смены стиля.... получилось по моему менее объемно
ставится сразу после </head>


Я с этого начинала... Но в таком варианте пользователь не будет оставаться после выбора стиля на той же странице, что и был... Его выбросит на индекс, в список форумов. А в моем варианте он останется там же, где находился... Кроме того, если он задержится на индексе и будет играть с селектором, у него получится очень некрасивая ссылка, в которой будет куча указаний стилей.

У меня пока мысли насчет улучшения селектора мысли такие. Надо скриптом в ссылке вообще все указания на стили снести. И к получившейся в итоге ссылке дописывать выбранный стиль.

Аватара пользователя
Сообщения: 262
Зарегистрирован: 23 май 2012, 18:56
Откуда: Краснодарский Край
Благодарил (а): 12
Поблагодарили: 13 раз в 12 сообщениях
Город: Краснодар
Пол: Мужской
Адрес форума: http://wi-so.ru
Баллы репутации: 0

Re: style-selector beta

Сообщение Добавлено: 08 авг 2012, 15:50

а возможно сделать 2 стиля например артодиа и Ps3 ?

Сообщения: 42
Зарегистрирован: 20 июл 2012, 21:15
Благодарил (а): 2
Поблагодарили: 12 раз в 12 сообщениях
Город: Германия
Пол: Мужской
Адрес форума: http://vwforum.4admins.ru/
Баллы репутации: 3

Re: style-selector beta

Сообщение Добавлено: 08 авг 2012, 15:53

"Alex123" писал(а):
а возможно сделать 2 стиля например артодиа и Ps3 ?

тут же всё написано http://help.4admins.ru/viewtopic.php?p=13534#p13534

делайте хоть на два, хоть больше

Аватара пользователя
Сообщения: 262
Зарегистрирован: 23 май 2012, 18:56
Откуда: Краснодарский Край
Благодарил (а): 12
Поблагодарили: 13 раз в 12 сообщениях
Город: Краснодар
Пол: Мужской
Адрес форума: http://wi-so.ru
Баллы репутации: 0

Re: style-selector beta

Сообщение Добавлено: 08 авг 2012, 16:42

я имею ввиду ведь 2 кастума стиля нельзя ... Поэтому у меня вопросы...

Аватара пользователя
Сообщения: 7022
Зарегистрирован: 11 авг 2009, 16:58
Благодарил (а): 655
Поблагодарили: 2342 раз в 1742 сообщениях
Город: Москва
Пол: Мужской
Адрес форума: http://help.4admins.ru
Баллы репутации: 167

Re: style-selector beta

Сообщение Добавлено: 08 авг 2012, 18:00

Alex123

все стили, это клоны сабсилвера и просилвера
на сервисе установлено 13 стилей которые вы можете модифицировать

скачиваете стиль псп, устанавливаете его как кастом.
скачивает любой другой стиль и распаковываете его на компе,
загружаете все картинки через менеджер картинок на форум
далее меняете все ссылки на картинки в сss
потом открываете допустим сабсилвер и начинаете копировать содержимое шаблонов с компа на аналогичные шаблоны в админке
копируете тему стиля
в результате получаете вместо сабсилвера любой другой стиль

примерно час работы для переноса всего руками
На этом сервисе можно cоздать форум бесплатно


Вернуться в Модификации

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1