Lack of interest XenForo_EditHistoryHandler_Post

This suggestion has been closed automatically because it did not receive enough votes over an extended period of time. If you wish to see this, please search for an open suggestion and, if you don't find any, post a new one.

xf_phantom

Well-known member
Wouldn't it make sense to move the content of XenForo_EditHistoryHandler_Post::revertToVersion to a new abstract method in the XenForo_EditHistoryHandler_Abstract and have only the the datawriter as variable?

I'm asking because this method can be used for ALL content types which are using the XenForo_DataWriter_DiscussionMessage_Abstract class.
The only difference is the message datawriter name.


Just to be sure you know what i mean:
PHP:
public function revertToVersion(array $content, $revertCount, array $history, array $previous = null)
   {
     $dw = XenForo_DataWriter::create('XenForo_DataWriter_DiscussionMessage_Post', XenForo_DataWriter::ERROR_SILENT);
     $dw->setExistingData($content);
     $dw->setOption(XenForo_DataWriter_DiscussionMessage::OPTION_EDIT_DATE_DELAY, -1);
     $dw->setOption(XenForo_DataWriter_DiscussionMessage::OPTION_IS_AUTOMATED, true);
     $dw->set('message', $history['old_text']);
     $dw->set('edit_count', $dw->get('edit_count') + 1);
     if ($dw->get('edit_count'))
     {
       if (!$previous || $previous['edit_user_id'] != $content['user_id'])
       {
         // if previous is a mod edit, don't show as it may have been hidden
         $dw->set('last_edit_date', 0);
       }
       else if ($previous && $previous['edit_user_id'] == $content['user_id'])
       {
         $dw->set('last_edit_date', $previous['edit_date']);
         $dw->set('last_edit_user_id', $previous['edit_user_id']);
       }
     }

     return $dw->save();
   }

or another (probably better solution) =>

A new abstract XenForo_EditHistoryHandler_Message class (like the DiscussionMessage Datawriter) which
includes a new abstract method getMessageDataWriter and which also implements already
  • revertToVersion (as i said, only the dw is dynamic)
  • getText (it's "always" the message key if XenForo_DataWriter_DiscussionMessage is being used
  • formatHistory

This would reduce the necessary code:)
 
Upvote 0
Top