Установка скрипта «Опросы и голосования в материалах (2.04)»

Введение

Благодарим за покупку скрипта! Установка скриптового решения займет некоторое время. Пожалуйста, внимательно читайте инструкции и старайтесь следовать всем рекомендациям.

Этот скрипт поможет вам организовать систему опросов и голосований на сайте в каждом материале. Ведь теперь прикрепить опрос или голосование можно непосредственно при добавлении или редактировании статьи.
Добавление опроса к материалу происходит одним щелчком мыши. После чего вам остается только ввести вопрос и задать для него до 10 вариантов ответов. Вы так же можете установить срок действия каждого опроса. Будет ли этот опрос/голосование для всех пользователей сайта или только для зарегистрированных - решать вам! Можно ли будет выбирать один вариант ответа или несколько - решать опять вам!
Вы можете легко создавать и модифицировать ваши опросы. Для этого нужно просто перейти в редактирование статьи. Результаты голосования отображаются графически. Вы можете также выбирать цвет для отображения результатов. В век динамических ip адресов, для защиты опроса от повторного голосования, было принято решение отказаться от проверки ip. Для защиты от накруток используются cookies.

    Скрипт написан для модулей:
  • новости сайта;
  • блог;
  • каталог статей;
  • каталог сайтов;
  • доска объявлений;
  • каталог файлов;
  • онлайн игры.

    Особенности скрипта:
  • легкая настройка и эксплуатация;
  • создание неограниченного количества опросов;
  • до 10 вариантов ответов на вопрос;
  • защита от накрутки;
  • выбор цвета (10 цветов) для графика;
  • архив опросов с возможностью просмотра результатов;
  • возможность удалять и редактировать опросы (в т.ч. кол-во проголосовавших).

    Требования к установке:
  • активированное PHP;

Перед установкой, сделайте полный бэкап шаблонов на случай, если вы в какой-то момент решите вернуть прежний вид сайту или отдельным его элементам. Сделать это можно в Панели управления » Управление дизайном » Backup шаблонов.

Первый шаг: активация uAPI и PHP


Этап 1. Активация uAPI для нужного модуля

Для активации uAPI в том модуле, где нужна работоспособность скрипта, перейдите в настройки этого модуля и напротив пункта «Включить uAPI для модуля» установите галочку, затем прокрутите страницу вниз и сохраните изменения.


Этап 2. Получение токен-доступов для uAPI

Перейдите на страницу http://uapi.ucoz.com/uapi_panel, авторизуйтесь под своим uID-профилем.

После авторизации, вы увидите интерфейс управления uAPI-приложений. Нам нужно создать приложение. Нажмите на «Создать» и введите все те данные, которые запросит форма.
  • В пункте «Название приложения» можно написать свое название (абсолютное любое);
  • В пункте «Consumer key» введите любой набор латинских букв, как например: hFFSJjknfsdgF87T, рекомендуем сгенерировать;
  • В пункте «Consumer secret» оставляем всё как есть;
  • В пункте «Redirect URL» введите ссылку на свой сайт (куда собираетесь подключить скрипт);
  • Нажмите на Сохранить.


Этап 3. Создание токенов

Перейдите на страницу http://api.ucoz.net/ru/join/reg, выберите «Полуавтоматом». Далее вам предложат ввести данные – их вы можете взять со страницы http://uapi.ucoz.com/uapi_panel. Заполните поля, продолжайте следовать инструкциям системы. В результате вы должны получить токены. Пошаговая иллюстрация:








Полученные данные необходимо прописать в конфигурационном файле скрипта config.php
Данный файл расположен в папке polls » config

Активация PHP

Убедитесь, что на вашем сайте активна услуга PHP. Для этого перейдите на главную страницу панели управления и обратите внимание на правую часть страницы. В случае наличия активной услуги вы увидите текст "PHP детали".
– перейдите к следующему шагу установки, PHP-услуга у вас активна. Если такой текст отсутствует, значит услуга PHP отключена или просрочена. Для подключения PHP необходимо оплатить премиум пакет, включающий возможность использования PHP-скриптов, либо заказать данную услугу отдельно.

Второй шаг: загрузка скриптов на FTP PHP


Этап 1. Установка пароля

Если у вас задан пароль к FTP PHP, сразу же переходите к следующему этапу.

Перейдите на главную страницу панели управления вашим сайтом, в правой верхней части нажмите на ссылку «PHP детали».
В открывшемся окне кликните на ссылку: «Пароль не установлен.
Мы попадем на страницу установки пароля на FTP PHP. Заполните поля, продолжайте следовать инструкциям системы.

Этап 2. Подключение к PHP FTP серверу

После установки пароля, скачайте FTP-клиент, рекомендуем бесплатный FTP клиент FileZilla. После установки программы, в верхней части вводим параметры подключения:

  • Сервер: s2000.ucoz.net
  • Логин (FTP login): введите свой логин, который указан в меню "PHP детали"
  • Пароль: пароль который вы ввели ранее в специальном разделе

После заполнения полей нажмите на кнопку «Быстрое соединение».


Этап 3. Загрузка скриптов на PHP FTP сервер

После успешного подключения вы увидите каталог под именем «scripts» в правой части окна программы. Обязательно переходим в этот каталог двойным кликом по нему.

Теперь загрузите в этот каталог папку из архива со скриптом «polls». Загрузить легко, просто перетащите эту папку в правый диалог (где отображаются каталоги и файлы хранящиеся на сервере).
Узнать статус передачи файлов вы можете в окне статуса, которое находится в нижней части программы, там отображаются файлы которые ожидают передачи и те, которые не удалось передать, в частности которые были успешно переданы.

Третий шаг: загрузка файлов на сайт


Перейдите в Панель управления » Файловый менеджер.
В правом верхнем углу кликните на кнопку "Создать папку", введите название папки js.


Теперь зайдите в папку js и загрузите в эту папку файл "addPoll.min.js" из архива со скриптом (папка "скрипты").

Четвёртый шаг: установка CSS стилей

Перейдите в Панель управления » Дизайн » Управление дизайном (CSS) и в самом конце пропишите следующий код:
 .add_poll_inp {width:80%}
 .add_poll_inp_vote {width:14%; margin-left:1% !important}
 .poll-block {width:100%; padding:10px; clear:both;}
 .poll-qa {font-size:13px; font-weight:bold}
 .poll-form {margin:8px 15px; width:100%}
 .poll-answer {display:inline-block;width:100%;vertical-align:middle;line-height:1; font-size:13px}
 .poll-answer-radio {display:inline-block;vertical-align:middle;margin:1px 2px 2px 2px;}
 .poll-answer-check {display:inline-block;vertical-align:middle;margin-top:2px;}
 .num-votes {text-align:center;margin-top:0px;}
 .num_votes_int {font-weight:bold}
 .poll-button {margin-top:3px;}
 .poll-result {margin:7px 0 0 2px;}
 .poll-result-answer {margin:0 0 2px 0px;display:inline-block;width:100%;vertical-align:middle;font-size:13px}
 .poll-background {display:inline-block;vertical-align:middle;background:#ebeced;width:85%;height:11px;margin-bottom:3px;margin-top:1px;border-radius:2px;}
 .poll-result-back {width:0%;height:11px;background:#A1B6CC;border-radius:2px;}
 .poll-result-percent {font-size:11px; font-weight: bold;padding-left:5px;}
 ul.poll-search-opt {margin: 10px 0px 30px 0px; padding:0px; display: block;}
 ul.poll-search-opt li {list-style: none; width: 49%; margin: .5%;float: left; }
 ul.poll-search-opt li.clear {width: 100%; clear: both}
 .count-poll-all {float: right}
 #count-poll-page {font-weight: bold}
 
    Информация о классах:
  • add_poll_inp – поле ввода ответа на странице добавления материала;
  • add_poll_inp_vote – поле ввода количества ответов на странице добавления материала;
  • poll-block – весь блок с опросом;
    • poll-qa – название опроса (вопрос);
    • poll-form – форма, в которой размещаются варианты ответов;
      • poll-answer – варианты ответов;
      • poll-answer-radio – radio кнопка;
      • poll-answer-check – checkbox;
      • num-votes – строка "Всего ответов";
        • num_votes_int – количество ответов в строке "Всего ответов";
      • poll-button – блок с кнопкой кнопкой "Ответить" и "Результаты";
    • poll-result – блок с результатами опроса;
    • poll-result-answer – вариант ответа в результатах опроса;
    • poll-background – графическая "полоса" варианта ответа в результатах опроса (бэкграунд);
    • poll-result-back – графическая "полоса" варианта ответа в результатах опроса (основной цвет);
    • poll-result-percent – кол-во проголосовавших за ответ в результатах опроса;
    • color1...color10 – класс задает индивидуальный цвет графической "полосы" варианта ответа в результатах опроса.
      Например, .color5 {background: red} задаст красный цвет для 5 ответа в результатах опроса.

Пятый шаг: размещение кода на страницах сайта


Перейдите в Панель управления » Дизайн » Управление дизайном (шаблоны).

Этап 1. Страница материалов и комментариев к нему

Откройте шаблон "Страница материалов и комментариев к нему" того модуля, в котором планируется установка скрипта (из поддерживаемых). В нужном месте этого шаблона (там где вы хотите выводить опросы) вставляем следующий код:
<div class="poll-block" style="display:none"></div>
<script type="text/javascript">
  $(function () {
    $.ajax({
      type: 'POST',
      url: '/php/polls/result_poll.php',
      data: 'poll_id=$MODULE_ID$-$ID$',
      cache: false,
      success: function(msg){
        if ( msg.length != 0 ) $('.poll-block').html(msg).show();
      }
    });
  });
</script> 

Этап 2. Форма добавления/редактирования материала

Откройте шаблон "Форма добавления/редактирования материала" того модуля, в котором планируется установка скрипта (из поддерживаемых). В зависимости от того, какая форма у вас используется (старая на таблицах или новая на ненумерованном списке в нужном месте страницы добавьте код.

Для новой:

<li><label for="poll">Опции опросов / голосований:</label>
<li id="polltd2">
<label><input id="pollActive" name="pollActive" onclick="$('#pollTable').toggle()" type="checkbox">Прикрепить опрос к сообщению</label><table id="pollTable" data-page="$PAGE_ID$,$MODULE_ID$" style="width:100%; display:none; margin-top:5px"><tr><td colspan="2">Название опроса:</td></tr><tr><td colspan="2"><input id="pollName" name="pollName" type="text" style="width: 100%" /></td></tr><tr><td colspan="2">Варианты ответов:<span id="count_vote" style="float:right;">Голоса:  </span></td></tr><tr id="answer0"><td style="width:40px"><input class="button" style="width:24px;" type="button" value=" + " onclick="addPoll()" title="Добавить ответ"></td><td><input id="pollId0" name="answer[]" type="text" class="add_poll_inp" /><input id="point_poll0" name="count[]" min="0" type="number" class="add_poll_inp_vote" value="0"></td></tr><tr><td colspan="2"><label><input id="pollMuch" name="pollMuch" type="checkbox">Множественный выбор</label></td></tr><tr><td colspan="2"><label><input id="regOnly" type="checkbox" name="regOnly">Только для зарегистрированных пользователей</label></td></tr><tr><td colspan="2"><label><input id="datePoll" onclick="change();" type="checkbox">Cрок действия до </label><select size="1" id="pollYear" name="pollYear" disabled="disabled"><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option><option value="2020">2020</option></select>-<select size="1" id="pollMonth" name="pollMonth" disabled="disabled"><option value="1">Январь</option><option value="2">Февраль</option><option value="3">Март</option><option value="4">Апрель</option><option value="5">Май</option><option value="6">Июнь</option><option value="7">Июль</option><option value="8">Август</option><option value="9">Сентябрь</option><option value="10">Октябрь</option><option value="11">Ноябрь</option><option value="12">Декабрь</option></select>-<select size="1" id="pollDay" name="pollDay" disabled="disabled"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select> <select size="1" id="pollHours" name="pollHours" disabled="disabled"><option value="00">00</option><option value="01">01</option><option value="2">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option selected="selected" value="23">23</option></select>:<select size="1" id="pollMin" name="pollMin"  disabled="disabled"><option value="00">00</option><option value="01">01</option><option value="2">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option><option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option><option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option><option value="40">40</option><option value="41">41</option><option value="42">42</option><option value="43">43</option><option value="44">44</option><option value="45">45</option><option value="46">46</option><option value="47">47</option><option value="48">48</option><option value="49">49</option><option value="50">50</option><option value="51">51</option><option value="52">52</option><option value="53">53</option><option value="54">54</option><option value="55">55</option><option value="56">56</option><option value="57">57</option><option value="58">58</option><option selected="selected" value="59">59</option></select></td></tr><tr><td colspan="2">Надпись на кнопке: <input type="text" id="butAnswPoll" name="butAnswPoll" value="Ответить"></td></tr></table>
</li>

Для старой:

<tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr"></td></tr><tr id="polltr"><td class="manTd1" id="polltd">Опции опросов / голосований:</td><td class="manTd2" id="polltd2"><label><input id="pollActive" name="pollActive" onclick="$('#pollTable').toggle()" type="checkbox">Прикрепить опрос к сообщению</label><table id="pollTable" data-page="$PAGE_ID$,$MODULE_ID$" style="width:100%; display:none; margin-top:5px"><tr><td colspan="2">Название опроса:</td></tr><tr><td colspan="2"><input id="pollName" name="pollName" type="text" style="width: 100%" /></td></tr><tr><td colspan="2">Варианты ответов:<span id="count_vote" style="float:right;">Голоса:  </span></td></tr><tr id="answer0"><td style="width:40px"><input class="button" style="width:24px;" type="button" value=" + " onclick="addPoll()" title="Добавить ответ"></td><td><input id="pollId0" name="answer[]" type="text" class="add_poll_inp" /><input id="point_poll0" name="count[]" min="0" type="number" class="add_poll_inp_vote" value="0"></td></tr><tr><td colspan="2"><label><input id="pollMuch" name="pollMuch" type="checkbox">Множественный выбор</label></td></tr><tr><td colspan="2"><label><input id="regOnly" type="checkbox" name="regOnly">Только для зарегистрированных пользователей</label></td></tr><tr><td colspan="2"><label><input id="datePoll" onclick="change();" type="checkbox">Cрок действия до </label><select size="1" id="pollYear" name="pollYear" disabled="disabled"><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option><option value="2020">2020</option></select>-<select size="1" id="pollMonth" name="pollMonth" disabled="disabled"><option value="1">Январь</option><option value="2">Февраль</option><option value="3">Март</option><option value="4">Апрель</option><option value="5">Май</option><option value="6">Июнь</option><option value="7">Июль</option><option value="8">Август</option><option value="9">Сентябрь</option><option value="10">Октябрь</option><option value="11">Ноябрь</option><option value="12">Декабрь</option></select>-<select size="1" id="pollDay" name="pollDay" disabled="disabled"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select> <select size="1" id="pollHours" name="pollHours" disabled="disabled"><option value="00">00</option><option value="01">01</option><option value="2">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option selected="selected" value="23">23</option></select>:<select size="1" id="pollMin" name="pollMin"  disabled="disabled"><option value="00">00</option><option value="01">01</option><option value="2">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option><option value="07">07</option><option value="08">08</option><option value="09">09</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option><option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option><option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option><option value="40">40</option><option value="41">41</option><option value="42">42</option><option value="43">43</option><option value="44">44</option><option value="45">45</option><option value="46">46</option><option value="47">47</option><option value="48">48</option><option value="49">49</option><option value="50">50</option><option value="51">51</option><option value="52">52</option><option value="53">53</option><option value="54">54</option><option value="55">55</option><option value="56">56</option><option value="57">57</option><option value="58">58</option><option selected="selected" value="59">59</option></select></td></tr><tr><td colspan="2">Надпись на кнопке: <input type="text" id="butAnswPoll" name="butAnswPoll" value="Ответить"></td></tr></table></td></tr>

Этап 3. Страница добавления/редактирования материалов

Откройте шаблон "Страница добавления/редактирования материалов" того модуля, в котором планируется установка скрипта (из поддерживаемых).
В модулях "Новости сайта" и "Блог" необходимо открыть шаблон "Страница архива материалов".
Перед закрывающим тегом </body> вставляем следующий код:
<?if($PAGE_ID$ == 'add') or ($PAGE_ID$ == 'edit')?>
  <script type="text/javascript">
    $(function () {
      $.getScript("/js/addPoll.min.js", function(){
        addNewPoll ($YEAR$, $MONTH$, $DAY$, '$PAGE_ID$', '$MODULE_ID$', '$REQUEST_URI$');
      });
    });
  </script>
<?endif?>

Этап 3. Страница со всеми опросами

Создайте страницу через Редактор страниц. Для этого перейдите в Панель управления » Редактор страниц и нажмите на ссылку Добавить страницу. В открывшемся окне перейдите в Панель HTML кодов (ссылка справа). Придумайте название для страницы, например "Архив опросов". В поле "Содержимое страницы" вставьте следующий код и сохраните:
<h1>Все опросы</h1>
<hr>
<form id="all_polls" onsubmit="return false">

  Сортировать по 
  <select name="sort">
    <option value="date-desc">дате, новые вверху</option>
    <option value="date-asc">дате, новые внизу</option>
    <option value="all_point-desc">количеству голосов (по убыванию)</option>
    <option value="all_point-asc">количеству голосов (по возрастанию)</option>
  </select>
  
  <ul class="poll-search-opt">
    <li><label><input type="checkbox" name="p1">Скрыть опросы, в которых я голосовал(а)</label></li>
    <li><label><input type="checkbox" name="p2">Скрыть опросы, в которых я не голосовал(а)</label></li>
    <li><label><input type="checkbox" name="p3">Скрыть завершенные опросы</label></li>
    <li><label><input type="checkbox" name="p4">Скрыть незавершенные опросы</label></li>
    <li><label><input type="checkbox" name="p5">Скрыть опросы для зарегистрированных</label></li>
    <li><label><input type="checkbox" name="p6">Скрыть опросы для незарегистрированных</label></li>
    <li class="clear"></li>
  </ul>

  <button type="button" id="goSort">Показать</button>
  
  <hr>
  
</form>
  
  <div id="all_polls_results"></div>
  
<script type="text/javascript">
  $(function () {
    $.fancybox.showLoading();
    $.ajax({
      type: 'GET',
      url: '/php/polls/all_polls.php?poll_id=all',
      cache: false,
      success: function(msg){
        if ( msg.length != 0 ) $('#all_polls_results').html(msg).show();
        else $('#all_polls_results').html('Нет опросов').show();
      },
      error: function (xhr, textStatus, error) {
        $('#all_polls_results').html(textStatus + ', ' + error);
      },
      complete: function () {
        $.fancybox.hideLoading();
      }
    });
 
    $('#goSort').on('click', function() {
      $.fancybox.showLoading();
      var str = $("#all_polls").serialize();
      $(this).attr('disabled', true);
      $.ajax({
        type: 'POST',
        url: '/php/polls/all_polls.php',
        data: str,
        cache: false,
        success: function(msg){
        if ( msg.length != 0 ) $('#all_polls_results').html(msg).show();
          else $('#all_polls_results').html('Нет опросов').show();
        },
        error: function (xhr, textStatus, error) {
          $('#all_polls_results').html(textStatus + ', ' + error);
        },
        complete: function () {
          $.fancybox.hideLoading();
          $('#goSort').removeAttr('disabled');
        }
      });
    });
 
    $('body').delegate('#load_polls', 'click', function() {
      $.fancybox.showLoading();
      var page = $(this).attr('alt'),
      str = $("#all_polls").serialize();
      $(this).remove();
      $.ajax({
        type: 'POST',
        url: '/php/polls/all_polls.php?page='+page,
        data: str,
        cache: false,
        success: function(msg){
          if ( msg.length != 0 ) $('#all_polls_results').append(msg);
        },
        error: function (xhr, textStatus, error) {
          $('#all_polls_results').append(textStatus + ', ' + error);
        },
        complete: function () {
          $.fancybox.hideLoading();
        }
      });
    });
  });
</script>

Шестой шаг: дополнительные настройки

В архиве со скриптом находится папка «config», в которой вы найдете файл «config.php». В этом файле вы можете задать дополнительные настройки скрипта. Открыть этот файл для редактирования можно обычным текстовым блокнотом.

В массиве $error вы можете указать свои тексты возможных ошибок при голосовании.
В переменной $archive указывается отобрать ли ссылку на все опросы ( 0 - нет, 1 - да )
В переменной $archive_text указывается текст ссылки на все опросы
В переменной $url_archive указывается ссылка на страницу со всеми опросами (Вы ее создавали в 5 шаге на 3 этапе).
В массиве $history задается интервал времени, через которое пользователь сможет повторно проголосовать. По умолчанию этот интервал равен 30 дням.
$consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret - данные для работы uAPI uCoz
Установка завершена. Если у вас возникли вопросы, которые не затрагивались в документации, спрашивайте в комментариях к товару.