• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Модуль [мод] История опросов

Статус
В этой теме нельзя размещать новые ответы.

cosmos

Профессор
Регистрация
26 Ноя 2006
Сообщения
129
Реакции
38
Может кому-то и понадобится
Как устанавливать:
1. Создаем файл votelist.php и кидаем его в /engine/modules/
с таким кодом
PHP:
<?php
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}
$vote_info = get_vars ("vote");
      $vote_info = array ();
    $db->query("SELECT id, title, category, body, vote_num, approve FROM " . PREFIX . "_vote");  
    while($row = $db->get_row()){
        $vote_info[$row['id']] = array (
        'id'        => $row['id'],
        'title'     => $row['title'],
        'category'     => $row['category'],
        'body'         => $row['body'],
        'vote_num'  => $row['vote_num'],
        'approve'   => $row['approve'],
        );
    }
    $db->free();
    foreach ($vote_info as $votes) {
        $title = stripslashes($votes['title']);
        $body  = stripslashes($votes['body']);
        $body  = explode("<br />", $body);
        $max   = $votes['vote_num'];
        $rid   = $votes['id'];
        $db->query("SELECT answer, count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' GROUP BY answer");
        $flag = 1;
        $pn = 0;
        $answer = array ();
        while ($row = $db->get_row()) {
            $answer[$row['answer']]['count']  = $row['count'];
        }
        $db->free();
$entry = "";
    for ($i = 0; $i < sizeof($body); $i++) {
     ++$pn; if ($pn > 5) $pn = 1;
     $num = $answer[$i]['count'];
     if (!$num) $num = 0;
     if ($max != 0)
     $proc = (100 * $num) / $max;
     else $proc = 0;
     $proc = round($proc, 0);
     $entry .=
     "<div class="vote" align="left">$body[$i] - $num ($proc%)</div>
      <div class="vote" align="left">
        <img src="{$config['http_home_url']}templates/{$vote_skin}/dleimages/poll{$pn}.gif" height="10" width="$proc%" style="border:1px solid black">
      </div>n";
     }
     $entry = "<div id="dle-vote">$entry</div>";
     $tpl->load_template('votelist.tpl');
     $tpl->set('{list}', $entry);
     $tpl->set('{vote_id}', $rid);
     $tpl->set('{title}', $title);
     $tpl->set('{votes}', $max);
     $tpl->set('[voteresult]','');
     $tpl->set('[/voteresult]','');
    $tpl->compile('content');
    }
     $tpl->clear();
?>
2. Создаем файл votelist.tpl (в шаблоне) с кодом
PHP:
          <table width="100%" class="title"><tr><td>{title}</td></tr><tr><td height=5></td></tr></table>
          {list}
          <table width="100%" class="slink">
          <tr><td height=10></td></tr>
          <tr><td>Всего проголосовало: {votes}</td></tr></table><br><br>
Либо меняем на ваш.
3. в файле /engine/engine.php
после
PHP:
  case "pm" :
        include ENGINE_DIR.'/modules/pm.php';
        break;
вставляем
PHP:
case "votelist" :
        include ENGINE_DIR.'/modules/votelist.php';
        break;
4. если хотим то в .htaccess в корне пишем после RewriteEngine On
PHP:
RewriteRule ^votelist/(.*)$ index.php?do=votelist&$1 [L]
Все мод готов проверить как он работает вы можете проверить так: Для просмотра ссылки Войди или Зарегистрируйся или Для просмотра ссылки Войди или Зарегистрируйся
 
ммм.. он выводит список опрсоов или опросы?...
Можно поподробней.
 
Я пока его не ставил! Времени небыло!
 
Он выводит уже список опросов с голосами - как бы прошедшие опросы. я скрипт поставил в скрипте есть неточности : вот так должен выглядеть votelist.php
не забудьте поменять в строчке :
PHP:
$vote_skin = "Default";
на название вашей папки с темой сайта или оставьте Default если она Default :)
votelist.php
PHP:
<?php 
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
$vote_info = get_vars ("vote");
$vote_skin = "Default";
$vote_info = array (); 
    $db->query("SELECT id, title, category, body, vote_num, approve FROM " . PREFIX . "_vote");   
    while($row = $db->get_row()){ 
        $vote_info[$row['id']] = array ( 
        'id'        => $row['id'], 
        'title'     => $row['title'], 
        'category'     => $row['category'], 
        'body'         => $row['body'], 
        'vote_num'  => $row['vote_num'], 
        'approve'   => $row['approve'], 
        ); 
    } 
    $db->free(); 
    foreach ($vote_info as $votes) { 
        $title = stripslashes($votes['title']); 
        $body  = stripslashes($votes['body']); 
        $body  = explode("<br />", $body); 
        $max   = $votes['vote_num']; 
        $rid   = $votes['id']; 
        $db->query("SELECT answer, count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' GROUP BY answer"); 
        $flag = 1; 
        $pn = 0; 
        $answer = array (); 
        while ($row = $db->get_row()) { 
            $answer[$row['answer']]['count']  = $row['count']; 
        } 
        $db->free(); 
$entry = ""; 
    for ($i = 0; $i < sizeof($body); $i++) { 
     ++$pn; if ($pn > 5) $pn = 1; 
     $num = $answer[$i]['count']; 
     if (!$num) $num = 0; 
     if ($max != 0) 
     $proc = (100 * $num) / $max; 
     else $proc = 0; 
     $proc = round($proc, 0); 
     $entry .= "<div class=\"vote\" align=\"left\">$body[$i] - $num ($proc%)</div>
<div class=\"vote\" align=\"left\">
<img src=\"{$config['http_home_url']}templates/{$vote_skin}/dleimages/poll{$pn}.gif\" height=\"10\" width=\"$proc%\" style=\"border:1px solid black\">
</div>"; 
     } 
     $entry = "<div id=\"dle-vote\">$entry</div>"; 
     $tpl->load_template('votelist.tpl'); 
     $tpl->set('{list}', $entry); 
     $tpl->set('{vote_id}', $rid); 
     $tpl->set('{title}', $title); 
     $tpl->set('{votes}', $max); 
     $tpl->set('[voteresult]',''); 
     $tpl->set('[/voteresult]',''); 
    $tpl->compile('content'); 
    } 
     $tpl->clear(); 
?>
или вот готовый файл
Посмотреть вложение votelist.rar
дальше всё по инструкции со второго пункта
 
Сделать бы ещё комментарии к опросам. :) Я Целософта просил давно, так он и не сделал.
 
попробуй прикрутить к движку клас комментариев и тогда поставишь их к опросам.
ссылка на клас комментариев
 
Как я понял результаты выводятся "не активными" :( а существует ли способ вывести список или блоки опросов которые открыты для голосования в "активном" режиме? (с возможностью отдать голос)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху