Вход Регистрация
Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/sources/classes/archive/reader.php
Строк: 137
<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.4.6
 * Archive: Reader
 * By Matt Mecham
 * </pre>
 *
 * @author         $Author: ips_terabyte $
 * @copyright    (c) 2010 Invision Power Services, Inc.
 * @license        http://www.invisionpower.com/company/standards.php#license
 * @package        IP.Board
 * @link        http://www.invisionpower.com
 * @since        18th November 2011
 * @version        $Revision: 8644 $
 */

class classes_archive_reader
{
    
/**#@+
     * Registry objects
     *
     * @access    protected
     * @var        object
     */
    
protected $registry;
    protected 
$DB;
    protected 
$settings;
    protected 
$request;
    protected 
$lang;
    protected 
$member;
    protected 
$memberData;
    protected 
$cache;
    protected 
$caches;
    
/**#@-*/
    
    /* Switch fields */
    
protected $fields = array();
    
/**
     * Set current app
     */
    
private $_app '';
    
    
/**
     * Constructor
     *
     */
    
public function __construct()
    {
        
/* Make registry objects */
        
$this->registry        =  ipsRegistry::instance();
        
$this->DB            =  $this->registry->DB();
        
$this->settings        =& $this->registry->fetchSettings();
        
$this->request        =& $this->registry->fetchRequest();
        
$this->lang            =  $this->registry->getClass('class_localization');
        
$this->member        =  $this->registry->member();
        
$this->memberData    =& $this->registry->member()->fetchMemberData();
        
$this->cache        =  $this->registry->cache();
        
$this->caches        =& $this->registry->cache()->fetchCaches();
        
        
/* Check for class_forums */
        
if ( ipsRegistry::isClassLoaded('class_forums') !== TRUE )
        {
            
$classToLoad IPSLib::loadLibraryIPSLib::getAppDir'forums' ) . "/sources/classes/forums/class_forums.php"'class_forums''forums' );
            
$this->registry->setClass'class_forums', new $classToLoad$this->registry ) );
            
$this->registry->class_forums->forumsInit();
        }
        
        
/* Load topic class */
        
if ( ! $this->registry->isClassLoaded('topics') )
        {
            
$classToLoad IPSLib::loadLibraryIPSLib::getAppDir'forums' ) . "/sources/classes/topics.php"'app_forums_classes_topics''forums' );
            
$this->registry->setClass'topics', new $classToLoad$this->registry ) );
        }
        
        
/* Language class */
        
$this->registry->getClass('class_localization')->loadLanguageFile( array( 'public_global' ), 'core' );
        
        
/* Fetch engine class */
        
$this->settings['archive_engine'] = ( $this->settings['archive_engine'] ) ? $this->settings['archive_engine'] : 'sql';
        
        
/* Load up archive class */
        
$classToLoad IPSLib::loadLibraryIPS_ROOT_PATH 'sources/classes/archive/reader/' $this->settings['archive_engine'] . '.php''classes_archive_reader_' $this->settings['archive_engine'] );
        
$this->engine = new $classToLoad();
        
        
$this->fields $this->registry->topics->getPostTableFields();
    }

    
/**
     * Set the current application
     * @param string $app
     */
    
public function setApp$app )
    {
        
$this->_app $app;
    }
    
    
/**
     * Get the application
     * @return string
     */
    
public function getApp()
    {
        return 
$this->_app;
    }
    
    
/**
     * Fetch a topic's post count
     * @param    int        Topic ID
     * @param    array    Masks [visible, hidden, sdelete]
     * @return  int
     */
    
public function getPostCount$tid$masks )
    {
        
$masks = ( is_array$masks ) ) ? $masks : array( $masks );
    
        return 
$this->engine->getPostCount$tid$masks );
    }
    
    
/**
     * getPosts
     * Fetches posts based on different critera
     * @param    array    Filters (see below for specifics)
     * @return    array
     *
     * FILTERS:
     * topicId            Get posts matching the (array) topic ids, (int) topic ID
     * forumId            Get posts matching the (array) topic ids, (int) forum ID
     * postId            Get posts matching the (array) post ids, (int) post id
     * memberData        Set memberData (this->memberData is used otherwise)
     * onlyViewable        Set whether this member can view them or not. (default is true ) NOTE: Will not check to see if parent topic is viewable!
     * onlyVisible         Set whether to skip unapproved posts where permission allows (default is true)
     * postType            array of 'sdelete', 'visible', 'hidden', 'pdeleted' (if you specify these, permission checks are NOT performed)
     * sortField        Sort key (date, pid, etc)
     * sortOrder        asc/desc
     * pidIsGreater        Where PID is greater than x
     * dateIsGreater    Where DATE is greater than UNIX
     * skipForumCheck    Skips the forum ID IN list check to ensure you have access to view (good for when using perms elsewhere)
     * parse            Parses post content
     * limit, offset    Limit the amount of results in the returned query
     * getCount            fetch count without limit
     *
     */
    
public function getPosts$filters )
    {
        return 
$this->engine->getPosts$filters );
    }
    
    
/**
     * Get fields
     * @return array
     */
    
public function getFields()
    {
        return 
$this->registry->topics->getPostTableFields();
    }
    
    
/**
     * Fetches topic data
     * @param array $data
     */
    
public function get$data )
    {
        
/* Clean up a bit */
        
$data['offset'] = intval$data['offset'] );
        
$data['limit']  = intval$data['limit'] );
        
        return 
$this->engine->getData$data );
    }
    
    
/**
     * Take an archive row and returned native friendly array
     * @param array $post
     * @return array
     */
    
public function archiveToNativeFields$post )
    {
        return 
$this->registry->topics->archivePostToNativeFields$post );
    }
    
    
}
Онлайн: 2
Реклама