5include_once(
"./Services/Block/classes/class.ilBlockGUI.php");
 
    6include_once(
"./Modules/Poll/classes/class.ilObjPoll.php");
 
   32                parent::__construct();
 
   34                $lng->loadLanguageModule(
"poll");               
 
   65                return "ilobjpollgui";
 
   82                $this->poll_block = $a_block;                           
 
   92                $next_class = 
$ilCtrl->getNextClass();
 
  109                $mess = $this->poll_block->getMessage(
$ilUser->getId());
 
  112                        $this->tpl->setVariable(
"TXT_QUESTION", $mess);
 
  122                        if($this->poll_block->mayVote(
$ilUser->getId()))
 
  124                                $this->tpl->setCurrentBlock(
"mode_info_bl");                    
 
  125                                if($this->poll_block->getPoll()->getNonAnonymous())
 
  127                                        $mode_info = 
$lng->txt(
"poll_non_anonymous_warning");                                   
 
  131                                        $mode_info = 
$lng->txt(
"poll_anonymous_warning");       
 
  133                                $this->tpl->setVariable(
"MODE_INFO", $mode_info);
 
  134                                $this->tpl->parseCurrentBlock();
 
  136                                $is_multi_answer = ($this->poll_block->getPoll()->getMaxNumberOfAnswers() > 1);
 
  138                                if(isset(
$_SESSION[
"last_poll_vote"][$this->poll_block->getPoll()->getId()]))
 
  140                                        $last_vote = 
$_SESSION[
"last_poll_vote"][$this->poll_block->getPoll()->getId()];                                
 
  141                                        unset(
$_SESSION[
"last_poll_vote"][$this->poll_block->getPoll()->getId()]);
 
  145                                                $error = sprintf(
$lng->txt(
"poll_vote_error_multi"),
 
  146                                                        $this->poll_block->getPoll()->getMaxNumberOfAnswers());                                         
 
  150                                                $error = 
$lng->txt(
"poll_vote_error_single");
 
  153                                        $this->tpl->setCurrentBlock(
"error_bl");                                
 
  154                                        $this->tpl->setVariable(
"FORM_ERROR", $error);
 
  155                                        $this->tpl->parseCurrentBlock();
 
  158                                $this->tpl->setCurrentBlock(
"answer");
 
  159                                foreach($a_poll->getAnswers() as $item)
 
  161                                        if(!$is_multi_answer)
 
  163                                                $this->tpl->setVariable(
"ANSWER_INPUT", 
"radio");
 
  164                                                $this->tpl->setVariable(
"ANSWER_NAME", 
"aw"); 
 
  168                                                $this->tpl->setVariable(
"ANSWER_INPUT", 
"checkbox");
 
  169                                                $this->tpl->setVariable(
"ANSWER_NAME", 
"aw[]"); 
 
  171                                                if(is_array($last_vote) && in_array($item[
"id"], $last_vote))
 
  173                                                        $this->tpl->setVariable(
"ANSWER_STATUS", 
'checked="checked"'); 
 
  176                                        $this->tpl->setVariable(
"VALUE_ANSWER", $item[
"id"]);
 
  177                                        $this->tpl->setVariable(
"TXT_ANSWER_VOTE", nl2br($item[
"answer"]));
 
  178                                        $this->tpl->parseCurrentBlock();
 
  187                                $url .= 
"#poll".$a_poll->getID();
 
  189                                $this->tpl->setVariable(
"URL_FORM", 
$url);
 
  190                                $this->tpl->setVariable(
"CMD_FORM", 
"vote");
 
  191                                $this->tpl->setVariable(
"TXT_SUBMIT", 
$lng->txt(
"poll_vote"));          
 
  193                                if($this->poll_block->getPoll()->getVotingPeriod())
 
  195                                        $this->tpl->setVariable(
"TXT_VOTING_PERIOD",
 
  196                                                sprintf(
$lng->txt(
"poll_voting_period_info"),
 
  203                        if ($this->poll_block->maySeeResults(
$ilUser->getId()))
 
  205                                if (!$this->poll_block->mayNotResultsYet(
$ilUser->getId()))
 
  208                                        foreach ($a_poll->getAnswers() as $item)
 
  210                                                $answers[$item[
"id"]] = $item[
"answer"];
 
  213                                        $perc = $this->poll_block->getPoll()->getVotePercentages();
 
  215                                        $perc = $perc[
"perc"];
 
  217                                        $this->tpl->setVariable(
"TOTAL_ANSWERS", sprintf(
$lng->txt(
"poll_population"), 
$total));
 
  222                                                if ($this->poll_block->getPoll()->getSortResultByVotes())
 
  226                                                        foreach (array_keys($answers) as $answer_id)
 
  228                                                                if (!in_array($answer_id, $order))
 
  230                                                                        $order[] = $answer_id;
 
  236                                                        $order = array_keys($answers);
 
  243                                                        include_once(
"./Services/Chart/classes/class.ilChart.php");
 
  246                                                        $chart->setSize(
"100%", 200); 
 
  247                                                        $chart->setAutoResize(
true);
 
  249                                                        $chart_data = $chart->getDataInstance();
 
  251                                                        foreach ($order as $answer_id)
 
  253                                                                $chart_data->addPoint(
 
  254                                                                        round($perc[$answer_id][
"perc"]), 
 
  255                                                                        nl2br($answers[$answer_id])
 
  262                                                        $chart->addData($chart_data);
 
  264                                                        $pie_legend_id = 
"poll_legend_".$this->getRefId();
 
  266                                                        $legend->setContainer($pie_legend_id);
 
  269                                                        $this->tpl->setVariable(
"PIE_LEGEND_ID", $pie_legend_id);
 
  270                                                        $this->tpl->setVariable(
"PIE_CHART", $chart->getHTML());
 
  275                                                        include_once 
"Services/UIComponent/ProgressBar/classes/class.ilProgressBar.php";
 
  277                                                        $this->tpl->setCurrentBlock(
"answer_result");
 
  278                                                        foreach ($order as $answer_id)
 
  281                                                                $pbar->setCurrent(round($perc[$answer_id][
"perc"]));
 
  282                                                                $this->tpl->setVariable(
"PERC_ANSWER_RESULT", $pbar->render());
 
  283                                                                $this->tpl->setVariable(
"TXT_ANSWER_RESULT", nl2br($answers[$answer_id]));                                                              
 
  284                                                                $this->tpl->parseCurrentBlock();
 
  293                                        $end = $this->poll_block->getPoll()->getVotingPeriodEnd();
 
  299                                        if($this->poll_block->getPoll()->hasUserVoted(
$ilUser->getId()))
 
  301                                                $info .= 
$lng->txt(
"poll_block_message_already_voted").
" ";
 
  304                                        $this->tpl->setVariable(
"TOTAL_ANSWERS", 
$info.                                         
 
  305                                                sprintf(
$lng->txt(
"poll_block_results_available_on"), $end));                                   
 
  308                        else if($this->poll_block->getPoll()->hasUserVoted(
$ilUser->getId()))
 
  310                                $this->tpl->setVariable(
"TOTAL_ANSWERS", 
$lng->txt(
"poll_block_message_already_voted"));
 
  315                $this->tpl->setVariable(
"ANCHOR_ID", $a_poll->getID());
 
  316                $this->tpl->setVariable(
"TXT_QUESTION", nl2br(trim($a_poll->getQuestion())));
 
  318                $desc = trim($a_poll->getDescription());
 
  321                        $this->tpl->setVariable(
"TXT_DESC", nl2br($desc));
 
  324                $img = $a_poll->getImageFullPath();
 
  327                        require_once(
'./Services/WebAccessChecker/classes/class.ilWACSignedPath.php');
 
  331                if ($this->poll_block->showComments()) {
 
  332                        $this->tpl->setCurrentBlock(
"comment_link");
 
  333                        $this->tpl->setVariable(
"LANG_COMMENTS", 
$lng->txt(
'poll_comments'));
 
  334                        $this->tpl->setVariable(
"COMMENT_JSCALL", $this->
commentJSCall());
 
  335                        $this->tpl->setVariable(
"COMMENTS_COUNT_ID", $this->
getRefId());
 
  339                        if($comments_count > 0)
 
  341                                $this->tpl->setVariable(
"COMMENTS_COUNT", 
"(".$comments_count.
")");
 
  346                                $redraw_url = 
$ilCtrl->getLinkTarget($this, 
"getNumberOfCommentsForRedraw",
 
  348                                $this->tpl->setVariable(
"COMMENTS_REDRAW_URL", $redraw_url);    
 
  350                                $tpl->addJavaScript(
"Modules/Poll/js/ilPoll.js");
 
  351                                self::$js_init = 
true;
 
  364                $this->poll_block->setRefId($this->
getRefId());         
 
  365                $this->may_write = $ilAccess->checkAccess(
"write", 
"", $this->
getRefId());
 
  366                $this->has_content = $this->poll_block->hasAnyContent(
$ilUser->getId(), $this->getRefId());
 
  368                if(!$this->may_write && !$this->has_content)
 
  373                $poll_obj = $this->poll_block->getPoll();
 
  374                $this->
setTitle($poll_obj->getTitle());
 
  375                $this->
setData(array($poll_obj));       
 
  380                if(!$this->poll_block->getMessage(
$ilUser->getId()))
 
  383                        include_once 
"./Services/Notification/classes/class.ilNotification.php";
 
  389                                        $lng->txt(
"poll_notification_unsubscribe"));
 
  396                                        $lng->txt(
"poll_notification_subscribe"));
 
  400                if ($this->may_write)
 
  406                                $lng->txt(
"edit_content"));
 
  410                                $lng->txt(
"settings"));
 
  430                return parent::getHTML();
 
  440                include_once(
"./Services/Notes/classes/class.ilNoteGUI.php");
 
  441                include_once(
"./Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
 
  451                $jsCall = 
$comment->getListCommentsJSCall($ajaxHash, 
"ilPoll.redrawComments(".$refId.
");");
 
  465                        echo 
"(".$number.
")";
 
  483                include_once(
"./Services/Notes/classes/class.ilNote.php");
 
  488                if(count($number) == 0)
 
This class represents a block method of a block.
setRowTemplate($a_rowtemplatename, $a_rowtemplatedir="")
Set Row Template Name.
setData($a_data)
Set Data.
addBlockCommand($a_href, $a_text, $a_target="", $a_img="", $a_right_aligned=false, $a_checked=false, $a_html="")
Add Block Command.
setTitle($a_title)
Set Title.
setBlockId($a_block_id=0)
Set Block Id.
getRefId()
Get Ref Id (only used if isRepositoryObject() is true).
static getInstanceByType($a_type, $a_id)
Get type instance.
static buildAjaxHash($a_node_type, $a_node_id, $a_obj_type, $a_obj_id, $a_sub_type=null, $a_sub_id=null)
Build ajax hash.
static setUseRelativeDates($a_status)
set use relative dates
static formatDate(ilDateTime $date)
Format a date @access public.
static useRelativeDates()
check if relative dates are used
@classDescription Date and time handling
static _countNotesAndComments($a_rep_obj_id, $a_sub_obj_id=null)
Get all notes related to a specific object.
static hasNotification($type, $user_id, $id)
Check notification status for object and user.
const SHOW_RESULTS_AS_PIECHART
static _lookupObjectId($a_ref_id)
lookup object id
BlockGUI class for polls.
__construct()
Constructor.
getNumberOfCommentsForRedraw()
Returns comment count for JS Redraw.
& executeCommand()
execute command
static getScreenMode()
Get Screen Mode for current command.
getRepositoryObjectGUIName()
Get repository object GUI name.
static getBlockType()
Get block type.
getNumberOfComments($ref_id)
Get comment count.
setBlock($a_block)
Do most of the initialisation.
getHTML()
Get block HTML code.
static isRepositoryObject()
Is block of repository object?
commentJSCall()
Builds JavaScript Call to open CommentLayer via html link.
static getInstance()
Factory.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static signFile($path_to_file)