Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Job/ConversationEmbedMetadata.php
<?php

namespace XF\Job;

use
XF\Mvc\Entity\Entity;

class
ConversationEmbedMetadata extends AbstractEmbedMetadataJob
{
    protected function
getIdsToRebuild(array $types)
    {
       
// See XF Bug #153298 as to why we are not using the xf_conversation_message table right now
       
return $this->getIdsBug153298Workaround('conversation_message');

       
$db = $this->app->db();

       
// Note: only attachments are supported currently, so we filter based on attach count for efficiency.
        // If other types become available, this condition will need to change.
//        return $db->fetchAllColumn($db->limit(
//            "
//                SELECT message_id
//                FROM xf_conversation_message
//                WHERE message_id > ?
//                    AND attach_count > 0
//                ORDER BY message_id
//            ", $this->data['batch']
//        ), $this->data['start']);
   
}

    protected function
getRecordToRebuild($id)
    {
        return
$this->app->em()->find('XF:ConversationMessage', $id);
    }

    protected function
getPreparerContext()
    {
        return
'conversation';
    }

    protected function
getMessageContent(Entity $record)
    {
        return
$record->message;
    }

    protected function
rebuildAttachments(Entity $record, \XF\Service\Message\Preparer $preparer, array &$embedMetadata)
    {
       
$embedMetadata['attachments'] = $preparer->getEmbeddedAttachments();
    }

    protected function
getActionDescription()
    {
       
$rebuildPhrase = \XF::phrase('rebuilding');
       
$type = \XF::phrase('conversations');
        return
sprintf('%s... %s', $rebuildPhrase, $type);
    }
}