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

Тема в разделе "DLE", создана пользователем cosmos, 30 сен 2007.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. cosmos

    cosmos Постоялец

    Регистр.:
    27 ноя 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($proc0);
         
    $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&$[L]
    Все мод готов проверить как он работает вы можете проверить так: http://domen/index.php?do=votelist или http://domen/votelist
     
  2. h0ttab[sun]

    h0ttab[sun]

    Регистр.:
    30 авг 2007
    Сообщения:
    319
    Симпатии:
    43
    ммм.. он выводит список опрсоов или опросы?...
    Можно поподробней.
     
  3. cosmos

    cosmos Постоялец

    Регистр.:
    27 ноя 2006
    Сообщения:
    129
    Симпатии:
    38
    Я пока его не ставил! Времени небыло!
     
  4. gruppastimul

    gruppastimul Ваш

    Регистр.:
    22 окт 2006
    Сообщения:
    802
    Симпатии:
    130
    Он выводит уже список опросов с голосами - как бы прошедшие опросы. я скрипт поставил в скрипте есть неточности : вот так должен выглядеть 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($proc0); 
         
    $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
    дальше всё по инструкции со второго пункта
     
    cosmos нравится это.
  5. Denkin

    Denkin Постоялец

    Регистр.:
    14 апр 2007
    Сообщения:
    95
    Симпатии:
    16
    Сделать бы ещё комментарии к опросам. :) Я Целософта просил давно, так он и не сделал.
     
  6. gruppastimul

    gruppastimul Ваш

    Регистр.:
    22 окт 2006
    Сообщения:
    802
    Симпатии:
    130
    попробуй прикрутить к движку клас комментариев и тогда поставишь их к опросам.
    ссылка на клас комментариев
    PHP:
    http://4dle.ru/2007/09/22/klass_kommentariev.html
     
  7. TyT

    TyT Ня!

    Регистр.:
    19 июн 2006
    Сообщения:
    491
    Симпатии:
    201
    Как я понял результаты выводятся "не активными" :( а существует ли способ вывести список или блоки опросов которые открыты для голосования в "активном" режиме? (с возможностью отдать голос)
     
Статус темы:
Закрыта.