Version 3.3.4
This commit is contained in:
1 parent
78706903a2
commit
fb6b5baabc
2206 files changed
+409828
-382984
No files matched your search
@@ -1,10 +1,10 @@
|
||||
<html>
|
||||
<head><title>IP.Board - Bulletin Board System</title></head>
|
||||
<body>
|
||||
<h1>403: IP.Board -> Forbidden</h1>
|
||||
<hr>
|
||||
You have reached this page in error, please use your back button to return to the forum.
|
||||
<hr>
|
||||
<a href="http://www.invisionpower.com">IP.Board</a>
|
||||
</body>
|
||||
<html>
|
||||
<head><title>IP.Board - Bulletin Board System</title></head>
|
||||
<body>
|
||||
<h1>403: IP.Board -> Forbidden</h1>
|
||||
<hr>
|
||||
You have reached this page in error, please use your back button to return to the forum.
|
||||
<hr>
|
||||
<a href="http://www.invisionpower.com">IP.Board</a>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,167 +1,167 @@
|
||||
<?php
|
||||
/**
|
||||
* <pre>
|
||||
* Invision Power Services
|
||||
* IP.Board v3.2.3
|
||||
* Generates a search and returns the results [ MySQL ]
|
||||
* Last Updated: $Date: 2011-09-01 17:55:10 -0400 (Thu, 01 Sep 2011) $
|
||||
* </pre>
|
||||
*
|
||||
* @author $author$
|
||||
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
|
||||
* @license This is NULLED!
|
||||
* @package IP.Board
|
||||
* @subpackage Members
|
||||
* @link http://hatynka.in
|
||||
* @version $Rev: 9441 $
|
||||
*/
|
||||
|
||||
class messengerSearch
|
||||
{
|
||||
/**
|
||||
* Results
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_results = array();
|
||||
|
||||
/**
|
||||
* Total rows
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $_rows = 0;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param object $registry Registry object
|
||||
* @return @e void
|
||||
*/
|
||||
public function __construct( ipsRegistry $registry )
|
||||
{
|
||||
/* Make object */
|
||||
$this->registry = $registry;
|
||||
$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();
|
||||
}
|
||||
|
||||
/**
|
||||
* Search
|
||||
*
|
||||
* @param int Member ID who is searching
|
||||
* @param string Words to search (probably tainted at this point, so be careful!)
|
||||
* @param int Offset start
|
||||
* @param int Number of results to return
|
||||
* @param array Array of folders to search (send nothing to search all)
|
||||
* @return boolean
|
||||
*/
|
||||
public function execute( $memberID, $words, $start=0, $end=50, $folders=array() )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// INIT
|
||||
//-----------------------------------------
|
||||
|
||||
$ids = array();
|
||||
$words = addslashes( $words );
|
||||
$start = intval( $start );
|
||||
$end = intval( $end );
|
||||
$memberID = intval( $memberID );
|
||||
$results = array();
|
||||
$dbpre = ips_DBRegistry::getPrefix();
|
||||
|
||||
/* Do it... */
|
||||
if ( $words )
|
||||
{
|
||||
$this->DB->allow_sub_select = 1;
|
||||
|
||||
/* Type of search */
|
||||
if( $this->settings['use_fulltext'] AND strtolower($this->settings['mysql_tbl_type']) == 'myisam' )
|
||||
{
|
||||
$whereOne = "MATCH( t.mt_title ) AGAINST( '{$words}' IN BOOLEAN MODE )";
|
||||
$whereTwo = "MATCH( p.msg_post ) AGAINST( '{$words}' IN BOOLEAN MODE )";
|
||||
}
|
||||
else
|
||||
{
|
||||
$whereOne = "t.mt_title LIKE '%{$words}%'";
|
||||
$whereTwo = "p.msg_post LIKE '%{$words}%'";
|
||||
}
|
||||
|
||||
$this->DB->query( "SELECT SQL_CALC_FOUND_ROWS mt_id, mt_first_msg_id FROM ( ( SELECT t.mt_id, t.mt_first_msg_id
|
||||
FROM {$dbpre}message_topics t, {$dbpre}message_topic_user_map m
|
||||
WHERE (t.mt_id=m.map_topic_id AND m.map_user_id=" . $memberID . " AND m.map_user_banned=0 AND m.map_user_active=1 AND t.mt_is_deleted=0) AND {$whereOne}
|
||||
ORDER BY t.mt_last_post_time DESC )
|
||||
UNION
|
||||
( SELECT p.msg_topic_id, p.msg_id
|
||||
FROM {$dbpre}message_posts p, {$dbpre}message_topic_user_map m
|
||||
WHERE (p.msg_topic_id=m.map_topic_id AND m.map_user_id=" . $memberID . " AND m.map_user_banned=0 AND m.map_user_active=1) AND {$whereTwo}
|
||||
ORDER BY p.msg_date DESC ) ) as tbl
|
||||
GROUP BY mt_id
|
||||
LIMIT $start, $end" );
|
||||
|
||||
while( $row = $this->DB->fetch() )
|
||||
{
|
||||
$ids[] = $row['mt_id'];
|
||||
}
|
||||
|
||||
$this->DB->query( "SELECT FOUND_ROWS() as row_your_boat" );
|
||||
$row = $this->DB->fetch();
|
||||
|
||||
/* Set rows var */
|
||||
$this->_rows = intval( $row['row_your_boat'] ); // comic genius
|
||||
|
||||
$this->DB->allow_sub_select = 0;
|
||||
|
||||
/* Now fetch some actual data! */
|
||||
if ( count( $ids ) )
|
||||
{
|
||||
$this->DB->build( array( 'select' => 't.*',
|
||||
'from' => array( 'message_topics' => 't' ),
|
||||
'where' => 'mt_id IN (' . implode( ",", $ids ) . ') AND t.mt_is_deleted=0',
|
||||
'order' => 't.mt_last_post_time DESC',
|
||||
'add_join' => array( array( 'select' => 'map.*',
|
||||
'from' => array( 'message_topic_user_map' => 'map' ),
|
||||
'where' => 'map.map_topic_id=t.mt_id',
|
||||
'type' => 'left' ),
|
||||
array( 'select' => 'p.*',
|
||||
'from' => array( 'message_posts' => 'p' ),
|
||||
'where' => 'p.msg_id=t.mt_first_msg_id',
|
||||
'type' => 'left' ) ) ) );
|
||||
$this->DB->execute();
|
||||
|
||||
while ( $row = $this->DB->fetch() )
|
||||
{
|
||||
$results[ $row['mt_id'] ] = $row;
|
||||
}
|
||||
|
||||
$this->_results = $results;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch results
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function fetchResults()
|
||||
{
|
||||
return ( is_array( $this->_results ) ) ? $this->_results : array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch total result row count
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function fetchTotalRows()
|
||||
{
|
||||
return intval( $this->_rows );
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* <pre>
|
||||
* Invision Power Services
|
||||
* IP.Board v3.3.4
|
||||
* Generates a search and returns the results [ MySQL ]
|
||||
* Last Updated: $Date: 2012-06-12 10:14:49 -0400 (Tue, 12 Jun 2012) $
|
||||
* </pre>
|
||||
*
|
||||
* @author $author$
|
||||
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/company/standards.php#license
|
||||
* @package IP.Board
|
||||
* @subpackage Members
|
||||
* @link http://www.invisionpower.com
|
||||
* @version $Rev: 10914 $
|
||||
*/
|
||||
|
||||
class messengerSearch
|
||||
{
|
||||
/**
|
||||
* Results
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_results = array();
|
||||
|
||||
/**
|
||||
* Total rows
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $_rows = 0;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param object $registry Registry object
|
||||
* @return @e void
|
||||
*/
|
||||
public function __construct( ipsRegistry $registry )
|
||||
{
|
||||
/* Make object */
|
||||
$this->registry = $registry;
|
||||
$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();
|
||||
}
|
||||
|
||||
/**
|
||||
* Search
|
||||
*
|
||||
* @param int Member ID who is searching
|
||||
* @param string Words to search (probably tainted at this point, so be careful!)
|
||||
* @param int Offset start
|
||||
* @param int Number of results to return
|
||||
* @param array Array of folders to search (send nothing to search all)
|
||||
* @return boolean
|
||||
*/
|
||||
public function execute( $memberID, $words, $start=0, $end=50, $folders=array() )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// INIT
|
||||
//-----------------------------------------
|
||||
|
||||
$ids = array();
|
||||
$words = addslashes( $words );
|
||||
$start = intval( $start );
|
||||
$end = intval( $end );
|
||||
$memberID = intval( $memberID );
|
||||
$results = array();
|
||||
$dbpre = ips_DBRegistry::getPrefix();
|
||||
|
||||
/* Do it... */
|
||||
if ( $words )
|
||||
{
|
||||
$this->DB->allow_sub_select = 1;
|
||||
|
||||
/* Type of search */
|
||||
if( $this->settings['use_fulltext'] AND strtolower($this->settings['mysql_tbl_type']) == 'myisam' )
|
||||
{
|
||||
$whereOne = "MATCH( t.mt_title ) AGAINST( '{$words}' IN BOOLEAN MODE )";
|
||||
$whereTwo = "MATCH( p.msg_post ) AGAINST( '{$words}' IN BOOLEAN MODE )";
|
||||
}
|
||||
else
|
||||
{
|
||||
$whereOne = "t.mt_title LIKE '%{$words}%'";
|
||||
$whereTwo = "p.msg_post LIKE '%{$words}%'";
|
||||
}
|
||||
|
||||
$this->DB->query( "SELECT SQL_CALC_FOUND_ROWS mt_id, mt_first_msg_id FROM ( ( SELECT t.mt_id, t.mt_first_msg_id
|
||||
FROM {$dbpre}message_topics t, {$dbpre}message_topic_user_map m
|
||||
WHERE (t.mt_id=m.map_topic_id AND m.map_user_id=" . $memberID . " AND m.map_user_banned=0 AND m.map_user_active=1 AND t.mt_is_deleted=0) AND {$whereOne}
|
||||
ORDER BY t.mt_last_post_time DESC )
|
||||
UNION
|
||||
( SELECT p.msg_topic_id, p.msg_id
|
||||
FROM {$dbpre}message_posts p, {$dbpre}message_topic_user_map m
|
||||
WHERE (p.msg_topic_id=m.map_topic_id AND m.map_user_id=" . $memberID . " AND m.map_user_banned=0 AND m.map_user_active=1) AND {$whereTwo}
|
||||
ORDER BY p.msg_date DESC ) ) as tbl
|
||||
GROUP BY mt_id
|
||||
LIMIT $start, $end" );
|
||||
|
||||
while( $row = $this->DB->fetch() )
|
||||
{
|
||||
$ids[] = $row['mt_id'];
|
||||
}
|
||||
|
||||
$this->DB->query( "SELECT FOUND_ROWS() as row_your_boat" );
|
||||
$row = $this->DB->fetch();
|
||||
|
||||
/* Set rows var */
|
||||
$this->_rows = intval( $row['row_your_boat'] ); // comic genius
|
||||
|
||||
$this->DB->allow_sub_select = 0;
|
||||
|
||||
/* Now fetch some actual data! */
|
||||
if ( count( $ids ) )
|
||||
{
|
||||
$this->DB->build( array( 'select' => 't.*',
|
||||
'from' => array( 'message_topics' => 't' ),
|
||||
'where' => 'mt_id IN (' . implode( ",", $ids ) . ')',
|
||||
'order' => 't.mt_last_post_time DESC',
|
||||
'add_join' => array( array( 'select' => 'map.*',
|
||||
'from' => array( 'message_topic_user_map' => 'map' ),
|
||||
'where' => 'map.map_topic_id=t.mt_id',
|
||||
'type' => 'left' ),
|
||||
array( 'select' => 'p.*',
|
||||
'from' => array( 'message_posts' => 'p' ),
|
||||
'where' => 'p.msg_id=t.mt_first_msg_id',
|
||||
'type' => 'left' ) ) ) );
|
||||
$this->DB->execute();
|
||||
|
||||
while ( $row = $this->DB->fetch() )
|
||||
{
|
||||
$results[ $row['mt_id'] ] = $row;
|
||||
}
|
||||
|
||||
$this->_results = $results;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch results
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function fetchResults()
|
||||
{
|
||||
return ( is_array( $this->_results ) ) ? $this->_results : array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch total result row count
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function fetchTotalRows()
|
||||
{
|
||||
return intval( $this->_rows );
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user