Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Widget/ThreadPoll.php
<?php

namespace XF\Widget;

class
ThreadPoll extends AbstractPollWidget
{
    public function
getPollFromRoutePath($routePath, &$error = null)
    {
       
$thread = $this->repository('XF:Thread')->getThreadFromUrl($routePath, 'public', $error);
        if (!
$thread)
        {
            return
false;
        }

        if (!
$thread->Poll)
        {
           
$error = \XF::phrase('specified_thread_does_not_have_poll_attached_to_it');
            return
false;
        }

        return
$thread->Poll;
    }

    public function
getDefaultTitle()
    {
       
/** @var \XF\Entity\Thread $content */
       
$content = $this->getContent();
        if (
$content && $content->canView() && $content->Poll)
        {
            return
$content->Poll->question;
        }
        else
        {
            return
parent::getDefaultTitle();
        }
    }

    public function
render()
    {
       
/** @var \XF\Entity\Thread $content */
       
$content = $this->getContent();
        if (
$content && $content->canView() && $content->Poll)
        {
           
$viewParams = [
               
'content' => $content,
               
'poll' => $content->Poll
           
];
            return
$this->renderer('widget_thread_poll', $viewParams);
        }

        return
'';
    }

    public function
getEntityWith()
    {
        return [
           
'Poll',
           
'Forum',
           
'Forum.Node',
           
'Forum.Node.Permissions|' . \XF::visitor()->permission_combination_id
       
];
    }
}