Version 3.3.4
This commit is contained in:
1 parent
78706903a2
commit
fb6b5baabc
2206 files changed
+409828
-382984
No files matched your search
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
/**
|
||||
* <pre>
|
||||
* Invision Power Services
|
||||
* IP.Board v3.3.4
|
||||
* 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::loadLibrary( IPSLib::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::loadLibrary( IPSLib::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::loadLibrary( IPS_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 );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user