Вход Регистрация
Файл: usr/plugins/poll.plugin.php
Строк: 51
<?php

/**
* @name        JMY CMS
* @link        http://jmy.su/
* @copyright   Copyright (C) 2012-2014 JMY LTD
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      Komarov Ivan
*/

if (!defined('ACCESS')) {
    
header('Location: /');
    exit;
}

function 
show_poll($type false$pollId false)
{
global 
$db$core$list$core;

    
$query $db->query('SELECT p.id as poll_id, p.title, p.votes, p.max, GROUP_CONCAT(q.id) as var_ids, GROUP_CONCAT(q.variant) as variants, GROUP_CONCAT(q.vote) as var_votes, v.uid, v.ip FROM ' DB_PREFIX '_polls AS p INNER JOIN  ' DB_PREFIX '_poll_questions AS q ON (p.id = q.pid) LEFT JOIN ' DB_PREFIX '_poll_voting as v ON (' . ($core->auth->isUser 'v.uid = ' $core->auth->user_id 'v.ip = '' . getRealIpAddr() . ''') . ' and v.pid = p.id) ' . ($pollId 'WHERE p.id = '' . $pollId . '' GROUP BY q.pid' 'GROUP BY q.pid ORDER BY p.title'));
    if(
$db->numRows($query) > 0)
    {
        
$poll $db->getRow($query);
        
$var_ids explode(','$poll['var_ids']);
        
$variants explode(','$poll['variants']);
        
$var_votes explode(','$poll['var_votes']);
        
$vars = array();
        
        foreach (
$var_ids AS $key => $val)
        {
            
$vars[$val] = str_replace('||'','$variants[$key]);
            
$var_vote[$val] = $var_votes[$key];
        }

        unset (
$var_ids$variants$var_votes);

        
$core->tpl->loadFile('poll');
        
preg_match("#\[viewList\](.*?)\[/viewList\]#si"$core->tpl->sources$matches);
        
$viewList $matches[1];
        
$core->tpl->sources preg_replace("#\[viewList\](.*?)\[/viewList\]#si"''$core->tpl->sources);
        
$core->tpl->setVar('TITLE'$poll['title']);
        
$core->tpl->setVar('ID'$poll['poll_id']);
        
$core->tpl->setVar('VOTES'$poll['votes']);
        
        
$result false;
        
ksort($vars);

        switch(
$type)
        {
            default:
                if((
$core->auth->isUser && $poll['uid'] == $core->auth->user_id) OR $poll['ip'] == getRealIpAddr())
                {
                    
$voted true;
                    
$nvoted false;
                }
                else
                {
                    
$voted false;
                    
$nvoted true;
                }
                
                
$i 0;
                
                foreach(
$vars as $id => $variant)
                {    
                    
$i++;
                    
                    if((
$core->auth->isUser && $poll['uid'] == $core->auth->user_id) OR $poll['ip'] == getRealIpAddr())
                    {
                        if(
$poll['votes'] > 0)
                        {
                            
$percent[$id] = round(($var_vote[$id]/$poll['votes'])*100);
                        }
                        else
                        {
                            
$percent[$id] = 0;
                        }
                        
                        
$list .= str_replace(array('{%VARIANT%}''{%VARVOTE%}''{%PERCENT%}''{%NUMB%}''{%PERCENTWIDTH%}'), array($variant$var_vote[$id], $percent[$id], $i, ($percent[$id] == : ($percent[$id]-5))), $viewList);
                    }
                    else
                    {
                        if(
$poll['max'] > 1)
                        {
                            
$list .= '<div class="poll_check"><input type="checkbox" name="check[]" value="' $id '"  onclick="check(this, '' . $poll['max'] . '');" /> ' $variant ' </div>';
                        }
                        else
                        {
                            
$list .= '<div class="poll_check"><input type="radio" name="check[]" value="' $id '" /> ' $variant ' </div>';
                        }
                    }

                    if(
$i == 5)
                    {
                        
$i 0;
                    }
                }
                break;
            
            case 
'results':
                
$result true;
                
            case 
'voted':
                
$voted true;
                
$nvoted false;
                
                
$i 0;
                foreach(
$vars as $id => $variant)
                {    
                    
$i++;
                    
                    if(
$poll['votes'] > 0)
                    {
                        
$percent[$id] = round(($var_vote[$id]/$poll['votes'])*100);
                    }
                    else
                    {
                        
$percent[$id] = 0;
                    }

                    
$list .= str_replace(array('{%VARIANT%}''{%VARVOTE%}''{%PERCENT%}''{%NUMB%}''{%PERCENTWIDTH%}'), array($variant$var_vote[$id], $percent[$id], $i, ($percent[$id] == : ($percent[$id]-5))), $viewList);
                    
                    if(
$i == 5)
                    {
                        
$i 0;
                    }
                }
                break;
        }

        
$core->tpl->setVar('LIST'$list);
        
$core->tpl->sources preg_replace"#\[voted\](.*?)\[/voted\]#ies","if_set('".$voted."', '\1')"$core->tpl->sources);
        
$core->tpl->sources preg_replace"#\[novoted\](.*?)\[/novoted\]#ies","if_set('".$nvoted."', '\1')"$core->tpl->sources);
        
$core->tpl->sources preg_replace"#\[result\](.*?)\[/result\]#ies","if_set('".$result."', '\1')"$core->tpl->sources);
        
$core->tpl->end();
    }
    else
    {
        echo 
_BLOCK_POLL_EMPTY;
    }
}
Онлайн: 2
Реклама