Finar.ru
web.finar.ru
video.finar.ru
Темы для BootstrapNew!

Баг-фикс компонента Голосования: опросы

Автор: Филипп Казаков, дата: 2010-02-24, просмотров 1586
Тэги

Версия NetCat: Netcat 3.5.5
Статус: стабильный
Скачать: Netcat_VotingComponent_PhPh_2010-02-24.tpl (скачиваний: 395)
Стоимость внедрения 1300 руб.

Этот рецепт можно установить и на ваш сайт. Внедрение производится после 100% предоплаты. Указана стоимость без учета работ по дизайну, каких-либо индивидуальных доработок и при оплате электронными деньгами. Работоспособность гарантирована. Если по каким-либо причинам рецепт не удается установить на ваш сайт, мы возвращаем все деньги.

Быстрее всего заказать внедрение, отправив нам на web@finar.ru письмо с указанием данных произведенного по реквизитам платежа, адреса целевого сайта и доступов в админку и на FTP. Более медленные способы начинаются с письма в свободной форме или с телефонного звонка.

Welcome!

Дата обновления 2010-02-24

Внимание: описание и код рецепта на этой странице могут быть актуальнее архива для скачивания!

К сожалению, пока мы не имеем возможности поддерживать актуальные версии готовых к установке архивов рецептов. Архивы обновляются "при случае", т.е. при существенных доработках, дата обновления прописана в имени архива.

Внедрения

Лицензия и политика использования

Разработчикам сайтов:

Рецепт распространяется под лицензией Creative Commons Share Alike (BY-SA) .

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

Мы не даем гарантий работоспособности рецепта и не несем ответственности за возможный ущерб от его применения. Сторонние разработки, использованные в рецепте, могут распространяются под другими лицензиями. Смотрите сайты источников.

Если вам понравился наш рецепт и вы хотите поблагодарить нас, вы можете сделать это следующими способами:

  1. доработать и улучшить рецепт и выслать нам обновление;
  2. прислать нам на web@finar.ru ссылку на внедрение (возможно, она появится в списке внедрений);
  3. на странице вашего сайта поставить ссылку на эту страницу;
  4. поблагодарить нас рублем, переслав любую сумму на наши электронные счета.

Есть идеи по сотрудничеству? Пишите: web@finar.ru

Владельцам сайтов:

Этот рецепт можно установить и на ваш сайт. Внедрение производится после 100% предоплаты. Указана стоимость без учета работ по дизайну, каких-либо индивидуальных доработок и при оплате электронными деньгами. Работоспособность гарантирована. Если по каким-либо причинам рецепт не удается установить на ваш сайт, мы возвращаем все деньги.

Быстрее всего заказать внедрение, отправив нам на web@finar.ru письмо с указанием данных произведенного по реквизитам платежа, адреса целевого сайта и доступов в админку и на FTP. Более медленные способы начинаются с письма в свободной форме или с телефонного звонка.

Welcome!


Внимание: описание и код рецепта на этой странице могут быть актуальнее архива для скачивания!

К сожалению, пока мы не имеем возможности поддерживать актуальные версии готовых к установке архивов рецептов. Архивы обновляются "при случае", т.е. при существенных доработках, дата обновления прописана в имени архива.

В компоненте "Голосования: опросы" для NetCat 3.5.5 (и, возможно, близких версий) допущена ошибка определения переменной в цикле, проявляющаяся при активации опции "альтернативный ответ". В результате в отчете не визуализируется подсчет "альтернативных" ответов. Несмотря на то, что компонент является частью платного модуля, с любезного разрешения NetCat мы выкладываем рецепт исправления.

Использование:

Для исправления бага можно в 64-й строчке "Объекта в списке" заменить $$tCount на $f_Count11. Если техподдержка вашей копии NetCat активна, вы можете обратиться за помощью в NetCat .

Кроме того, можно скачать и импортировать нашу версию компонента из приложения. Наша версия компонента:

  • подсчитывает "альтернативные" голоса и строит график;
  • поджата по дизайну;
  • выводит список альтернативных ответов внутри админки. Вывод списка альтернативных ответов в компоненте по умолчанию не реализован, в случае реализации необходимо активировать "перенос строки - <BR>" в поле AltAnswer.

Полезные куски кода (раскладка компонента):

Объект в списке

$f_AdminButtons";
if($cc_settings['PollStyle']=="open") {

    if(!poll_alreadyAnswered($classID, $f_RowID, $f_ProtectIP, $f_ProtectUsers) && $f_Active && !$admin_mode) {

        if($f_MultyAnswer) $InputType="checkbox"; else $InputType="radio";

        $result.="
        <form action='/netcat/modules/poll/' method='post'>
        <input type='hidden' name='catalogue' value='$catalogue'>
        <input type='hidden' name='sub' value='$sub'>
        <input type='hidden' name='cc' value='$cc'>
        <input type='hidden' name='PollID' value='$f_RowID'>
        <H2>Голосование</H2>
        <table border='0' cellpadding='1' cellspacing='0'>
        <tr valign='top'>
         <td colspan='2'><H3>$f_Question</H3><br></td>
        </tr>";

        //вывод списка вопросов
        $icounter=1; while($icounter<11) {
        $tAnswer="f_Answer$icounter";
            if($$tAnswer) {
            $result.="
            <tr valign='top'>

                <td><input type='$InputType' id='r${f_RowID}n$icounter' name='Answer"; if($f_MultyAnswer) $result.="$icounter"; $result.="' value='"; if($f_MultyAnswer) $result.="1"; else $result.="$icounter"; $result.="'".($icounter==1 ? " checked" : "")."></td>
                <td width='100%'><label for='r${f_RowID}n$icounter'>".$$tAnswer."</label></td>
            </tr>";
            }
        ++$icounter;
        }

        $result.="
        ".opt($f_Answer11,"
        <tr valign='top'>
            <td><input type='$InputType' id='r${f_RowID}n11' name='Answer'".opt($f_MultyAnswer, "11")." value='".opt_case($f_MultyAnswer, "1", "11")."'></td>
            <td width='100%'><label for='r${f_RowID}n11'>Другой  </label><input name='AltAnswer' type='text' onfocus='r${f_RowID}n11.checked=\"checked\"'></td>
        </tr>")."
        <tr>
        <td colspan='2'><br><input type='submit' name='poll' value='".opt_case($f_SubmitValue, $f_SubmitValue, "Голосовать")."'> &nbsp; Проголосовало: $f_TotalCount<br><br></td>
        </tr>
        </table>
        </form><br>";

    }
    else {

        if(!$f_Active) $ActiveText=" (закрыт)"; else $ActiveText="";
        $result.="
            <H2>Голосование</H2>
        <H3>$f_Question</H3>$ActiveText<br>";

        //вывод списка ответов
        $icounter=1; while($icounter<11) {
        $tAnswer="f_Answer$icounter";
        $tCount="f_Count$icounter";
            if($$tAnswer) {
            $result.=$$tAnswer.poll_percentLine($classID, $f_RowID, $$tCount, 100, " (%PERCENT%)<br><img src='/images/line.gif' width='%WIDTH' height='10' border='0' alt='".$$tAnswer."'>")."<br>";
            }
        ++$icounter;
        }

        $result.="
        ".opt($f_Answer11,"Другой".poll_percentLine($classID, $f_RowID, $f_Count11, 100, " (%PERCENT%)<br><img src='/images/line.gif' width='%WIDTH' height='10' border='0' alt='Другой'>")."<br>".opt($admin_mode, "$f_AltAnswer<br>")."<br>")."
        Проголосовало: $f_TotalCount<br><br>";
        $result.= "<br>";

        if($f_Active && $f_ProtectUsers==1 && !Authorize()) $result.="<br>* Для голосования необходимо авторизоваться<br><br><hr size='1' color='#CCCCCC'><br><b>Архив опросов</b><br>";
    }
}
else {
    if(!$f_Active) $ActiveText=" (закрыт)"; else $ActiveText="";
    $result.="&bull; <a href='$fullLink'>$f_Question</a>$ActiveText<br>";
}
$result.="



Оставить комментарий 


Ваше имя:
->