Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/InlineMod/Post/Move.php
<?php

namespace XF\InlineMod\Post;

use
XF\Mvc\Entity\AbstractCollection;
use
XF\Mvc\Entity\Entity;

use function
count;

class
Move extends AbstractMoveCopy
{
    public function
getTitle()
    {
        return \
XF::phrase('move_posts...');
    }

    protected function
canApplyToEntity(Entity $entity, array $options, &$error = null)
    {
       
/** @var \XF\Entity\Post $entity */
       
return $entity->canMove($error);
    }

    public function
applyInternal(AbstractCollection $entities, array $options)
    {
       
$thread = $this->getTargetThreadFromOptions($options);

       
/** @var \XF\Service\Post\Mover $mover */
       
$mover = $this->app()->service('XF:Post\Mover', $thread);
       
$mover->setExistingTarget($options['thread_type'] == 'existing' ? true : false);

        if (
$options['alert'])
        {
           
$mover->setSendAlert(true, $options['alert_reason']);
        }

        if (
$options['prefix_id'] !== null && $options['thread_type'] !== 'existing')
        {
           
$mover->setPrefix($options['prefix_id']);
        }

        if (!
$mover->move($entities))
        {
            throw new \
XF\PrintableException(\XF::phrase('it_is_not_possible_to_move_any_of_selected_posts_to_specified_target'));
        }

       
$this->returnUrl = $this->app()->router('public')->buildLink('threads', $mover->getTarget());
    }

    public function
renderForm(AbstractCollection $entities, \XF\Mvc\Controller $controller)
    {
       
/** @var \XF\Repository\Node $nodeRepo */
       
$nodeRepo = $this->app()->repository('XF:Node');
       
$nodes = $nodeRepo->getFullNodeList()->filterViewable();

       
$viewParams = [
           
'posts' => $entities,
           
'total' => count($entities),
           
'nodeTree' => $nodeRepo->createNodeTree($nodes),
           
'first' => $entities->first(),
           
'prefixes' => $entities->first()->Thread->Forum->getUsablePrefixes()
        ];
        return
$controller->view('XF:Public:InlineMod\Post\Move', 'inline_mod_post_move', $viewParams);
    }
}