Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/InlineMod/Conversation/Leave.php
<?php

namespace XF\InlineMod\Conversation;

use
XF\Http\Request;
use
XF\InlineMod\AbstractAction;
use
XF\Mvc\Entity\AbstractCollection;
use
XF\Mvc\Entity\Entity;

use function
count;

class
Leave extends AbstractAction
{
    public function
getTitle()
    {
        return \
XF::phrase('leave_conversations...');
    }

    protected function
canApplyToEntity(Entity $entity, array $options, &$error = null)
    {
        return
true;
    }

    protected function
applyToEntity(Entity $entity, array $options)
    {
       
/** @var \XF\Entity\ConversationMaster $entity */
       
$recipient = $entity->Recipients[\XF::visitor()->user_id];
        if (
$recipient)
        {
           
$recipient->recipient_state = $options['recipient_state'];
           
$recipient->save();
        }
    }

    public function
getBaseOptions()
    {
        return [
           
'recipient_state' => 'deleted'
       
];
    }

    public function
renderForm(AbstractCollection $entities, \XF\Mvc\Controller $controller)
    {
       
$viewParams = [
           
'conversations' => $entities,
           
'total' => count($entities),
        ];
        return
$controller->view('XF:Public:InlineMod\Conversation\Leave', 'inline_mod_conversation_leave', $viewParams);
    }

    public function
getFormOptions(AbstractCollection $entities, Request $request)
    {
        return [
           
'recipient_state' => $request->filter('recipient_state', 'str')
        ];
    }
}