Вход Регистрация
Файл: library/XenForo/DiscussionMessage/Definition/Abstract.php
Строк: 138
<?php

/**
 * Class that represents the definition of a discussion message. This will generally
 * be used to interact with data writers (both for messages and discussions). It serves
 * mostly to decouple data that will be useful to multiple data writers.
 *
 * @package XenForo_Discussion
 */
abstract class XenForo_DiscussionMessage_Definition_Abstract
{
    
/**
     * Contains the structure returned from {@link _getMessageStructure()}.
     *
     * @var array
     */
    
protected $_structure = array();

    
/**
     * Constructor.
     */
    
public function __construct()
    {
        
$this->_structure $this->_getMessageStructure();
    }

    
/**
     * Gets the structure of the message record. This only includes parts that are variable. Keys returned:
     *     * table - name of the table (eg, xf_post)
     *     * key - name of the message's key (eg, post_id)
     *     * container - name of the container/discussion's key (eg, thread_id, profile_user_id)
     *     * contentType - name of the content type the message uses (eg, post, profile_post)
     *
     * @return array
     */
    
abstract protected function _getMessageStructure();

    
/**
     * Gets the parts of the message configuration options that override the defaults. Options:
     *     * hasParentDiscussion (false)
     *     * changeUserMessageCount (true)
     *
     * @return array
     */
    
protected function _getMessageConfiguration()
    {
        return array();
    }

    
/**
     * Gets the discussion data writer for the given discussion ID. If no discussion is given,
     * should return false.
     *
     * @param integer $discussionId
     * @param constant $errorHandler DW error handler constant (usually parent DW's error handler)
     *
     * @return XenForo_DataWriter_Discussion|false
     */
    
public function getDiscussionDataWriter($discussionId$errorHandler)
    {
        return 
false;
    }

    
/**
     * Gets the search data handler for this type of message.
     *
     * @return XenForo_Search_DataHandler_Abstract|false
     */
    
public function getSearchDataHandler()
    {
        return 
false;
    }

    
/**
     * Gets the effective message configuration. This merges the defaults with
     * the specific class overrides. See {@link _getMessageConfiguration()} for options.
     *
     * @return array
     */
    
public function getMessageConfiguration()
    {
        
$configuration = array(
            
'hasParentDiscussion' => false,
            
'changeUserMessageCount' => true
        
);

        return 
array_merge($configuration$this->_getMessageConfiguration());
    }

    
/**
     * Gets the full message structure array. See {@link _getMessageStructure()} for
     * data returned.
     *
     * @return array
     */
    
public function getMessageStructure()
    {
        return 
$this->_structure;
    }

    public function 
getMessageTableName()
    {
        return 
$this->_structure['table'];
    }

    public function 
getMessageKeyName()
    {
        return 
$this->_structure['key'];
    }

    public function 
getContainerKeyName()
    {
        return 
$this->_structure['container'];
    }

    public function 
getContentType()
    {
        return 
$this->_structure['contentType'];
    }
}
Онлайн: 2
Реклама