R
ragtek
Guest
I'M using the XenForo_DataWriter_DiscussionMessage for my comment features in the article system, gallery and for pages.
But it's IMHO too much.
Wouldn't it be better to seperate this into 2 abstract classes?
This is a nice way to do this, but IMHO in most cases, i will only have a basic message without likes, attachments,etc...
What about=>
1. abstract class Basis:userid, message, post_date
2. abstract class Basis2 exteds Basis: parent::fields + ip_id, message_state, attach_count, likes, like_users
So the basis2 would be what you have NOW but you and the add-on coders would be able to use basis 1 for the "lite comments" like profile comment where you don't have attachments,likes,etc....
(Hope you know what i mean, i can't express myself today )
But it's IMHO too much.
PHP:
protected function _getCommonFields()
{
$structure = $this->_messageDefinition->getMessageStructure();
$fields = array(
$structure['table'] => array(
$structure['key'] => array('type' => self::TYPE_UINT, 'autoIncrement' => true),
$structure['container'] => array('type' => self::TYPE_UINT, 'required' => true),
'user_id' => array('type' => self::TYPE_UINT, 'required' => true),
'username' => array('type' => self::TYPE_STRING, 'required' => true, 'maxLength' => 50,
'requiredError' => 'please_enter_valid_name'
),
'post_date' => array('type' => self::TYPE_UINT, 'required' => true, 'default' => XenForo_Application::$time),
'message' => array('type' => self::TYPE_STRING, 'required' => true,
'requiredError' => 'please_enter_valid_message'
),
'ip_id' => array('type' => self::TYPE_UINT, 'default' => 0),
'message_state' => array('type' => self::TYPE_STRING, 'default' => 'visible',
'allowedValues' => array('visible', 'moderated', 'deleted')
),
'attach_count' => array('type' => self::TYPE_UINT_FORCED, 'default' => 0, 'max' => 65535),
'likes' => array('type' => self::TYPE_UINT_FORCED, 'default' => 0),
'like_users' => array('type' => self::TYPE_SERIALIZED, 'default' => 'a:0:{}')
)
);
if ($this->_hasParentDiscussion)
{
$fields[$structure['table']]['position'] = array('type' => self::TYPE_UINT_FORCED);
}
return $fields;
}
Wouldn't it be better to seperate this into 2 abstract classes?
This is a nice way to do this, but IMHO in most cases, i will only have a basic message without likes, attachments,etc...
What about=>
1. abstract class Basis:userid, message, post_date
2. abstract class Basis2 exteds Basis: parent::fields + ip_id, message_state, attach_count, likes, like_users
So the basis2 would be what you have NOW but you and the add-on coders would be able to use basis 1 for the "lite comments" like profile comment where you don't have attachments,likes,etc....
(Hope you know what i mean, i can't express myself today )
Upvote
0