Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/ControllerPlugin/Attachment.php
<?php

namespace XF\ControllerPlugin;

class
Attachment extends AbstractPlugin
{
    public function
displayAttachment(\XF\Entity\Attachment $attachment, $allowViewLog = true)
    {
        if (!
$attachment->Data || !$attachment->Data->isDataAvailable())
        {
            return
$this->error(\XF::phrase('attachment_cannot_be_shown_at_this_time'));
        }

       
$this->setResponseType('raw');

       
$eTag = $this->request->getServer('HTTP_IF_NONE_MATCH');
        if (
$eTag && $eTag == '"' . $attachment['attach_date'] . '"')
        {
           
$return304 = true;
        }
        else
        {
            if (!
$attachment->temp_hash && $allowViewLog)
            {
               
// if not associated, don't log it
               
$this->getAttachmentRepo()->logAttachmentView($attachment);
            }

           
$return304 = false;
        }

       
$viewParams = [
           
'attachment' => $attachment,
           
'return304' => $return304
       
];
        return
$this->view('XF:Attachment\View', '', $viewParams);
    }

   
/**
     * @return \XF\Repository\Attachment
     */
   
protected function getAttachmentRepo()
    {
        return
$this->repository('XF:Attachment');
    }
}