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

namespace XF\ControllerPlugin;

use
XF\Mvc\Entity\Entity;

class
Undelete extends AbstractPlugin
{
    public function
actionUndelete(Entity $entity, $confirmUrl, $contentUrl, $contentTitle, $stateField, $visibleState = 'visible', $deletedState = 'deleted', $template = null, array $params = [])
    {
        if (!
method_exists($entity, 'canUndelete'))
        {
            throw
$this->exception(
               
$this->error('Cannot determine if content can be undeleted. Entity requires a canUndelete method.')
            );
        }

        if (!
$entity->canUndelete($error))
        {
            throw
$this->exception(
               
$this->noPermission($error)
            );
        }

        if (
$this->isPost())
        {
            if (
$entity->$stateField == $deletedState)
            {
               
$entity->$stateField = $visibleState;
               
$entity->save();
            }

            return
$this->redirect($contentUrl);
        }
        else
        {
           
$viewParams = [
               
'content' => $entity,
               
'confirmUrl' => $confirmUrl,
               
'contentUrl' => $contentUrl,
               
'contentTitle' => $contentTitle
           
] + $params;
            return
$this->view('XF:Undelete\Undelete', $template ?: 'public:undelete_confirm', $viewParams);
        }
    }
}