Version 3.2.3

This commit is contained in:
Neo committed 2025-12-19 00:34:03 -08:00
1 parent ae5c01cc78
commit 78706903a2
2641 files changed
+228363 -201264

No files matched your search

@@ -0,0 +1,220 @@
<?php
/**
* @file group_form.php Core group editing form
*~TERABYTE_DOC_READY~
* $Copyright: (c) 2001 - 2011 Invision Power Services, Inc.$
* $License: This is NULLED!
* $Author: bfarber $
* @since -
* $LastChangedDate: 2011-07-20 20:19:22 -0400 (Wed, 20 Jul 2011) $
* @version v3.2.3
* $Revision: 9296 $
*/
if ( ! defined( 'IN_ACP' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
/**
*
* @interface admin_group_form__core
* @brief Core group editing form
*
*/
class admin_group_form__core implements admin_group_form
{
/**
* Registry Object Shortcuts
*
* @var $registry
* @var $DB
* @var $settings
* @var $request
* @var $lang
* @var $member
* @var $memberData
* @var $cache
* @var $caches
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**
* Tab name (leave it blank to use the default application title)
*
* @var $tab_name
*/
public $tab_name = "";
/**
* Constructor
*
* @return @e void
*/
public function __construct()
{
//-----------------------------------------
// Make shortcuts
//-----------------------------------------
$this->registry = ipsRegistry::instance();
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->lang = $this->registry->class_localization;
$this->tab_name = ipsRegistry::getClass('class_localization')->words['tab_groupform_rc'];
}
/**
* Returns HTML tabs content for the page
*
* @param array $group Group data
* @param integer $tabsUsed Number of tabs used so far (your ids should be this +1)
* @return @e array Array of 'tabs' (HTML for the tabs), 'content' (HTML for the content), 'tabsUsed' (number of tabs you have used)
*/
public function getDisplayContent( $group=array(), $tabsUsed = 2 )
{
//-----------------------------------------
// Load skin
//-----------------------------------------
$this->html = ipsRegistry::getClass('output')->loadTemplate( 'cp_skin_group_core', 'core' );
//-----------------------------------------
// Get report center plugins and sort perms
//-----------------------------------------
$_canView = array();
$_canSend = array();
$_plugins = array();
$this->DB->build( array( 'select' => '*', 'from' => 'rc_classes', 'order' => 'class_title' ) );
$this->DB->execute();
while( $r = $this->DB->fetch() )
{
$senders = explode( ',', IPSText::cleanPermString( $r['group_can_report'] ) );
$viewers = explode( ',', IPSText::cleanPermString( $r['mod_group_perm'] ) );
if( in_array( $group['g_id'], $senders ) )
{
$_canSend[] = $r['com_id'];
}
if( in_array( $group['g_id'], $viewers ) )
{
$_canView[] = $r['com_id'];
}
$_plugins[ $r['com_id'] ] = $r;
}
//-----------------------------------------
// Show...
//-----------------------------------------
return array( 'tabs' => $this->html->acp_group_form_tabs( $group, ( $tabsUsed + 1 ) ), 'content' => $this->html->acp_group_form_main( $group, ( $tabsUsed + 1 ), $_plugins, $_canView, $_canSend ), 'tabsUsed' => 1 );
}
/**
* Process the entries for saving and return
*
* @return @e array Array of keys => values for saving
*/
public function getForSave()
{
return array();
}
/**
* Post-process the entries for saving
*
* @author Brandon Farber
* @param int $groupId Group id
* @return @e void
*/
public function postSave( $groupId )
{
$this->DB->build( array( 'select' => 'com_id, group_can_report, mod_group_perm', 'from' => 'rc_classes' ) );
$outer = $this->DB->execute();
while( $r = $this->DB->fetch($outer) )
{
$senders = explode( ',', IPSText::cleanPermString( $r['group_can_report'] ) );
$viewers = explode( ',', IPSText::cleanPermString( $r['mod_group_perm'] ) );
$canView = 0;
$canSend = 0;
if( $this->request['rc_send_' . $r['com_id'] ] )
{
$canSend = 1;
}
if( $this->request['rc_view_' . $r['com_id'] ] )
{
$canView = 1;
}
$_newSenders = array();
$_newViewers = array();
foreach( $senders as $sender )
{
if( $sender == $groupId )
{
if( $canSend )
{
$_newSenders[ $sender ] = $sender;
}
}
else
{
$_newSenders[ $sender ] = $sender;
}
}
if( $canSend )
{
$_newSenders[ $groupId ] = $groupId;
}
foreach( $viewers as $viewer )
{
if( $viewer == $groupId )
{
if( $canView )
{
$_newViewers[ $viewer ] = $viewer;
}
}
else
{
$_newViewers[ $viewer ] = $viewer;
}
}
if( $canView )
{
$_newViewers[ $groupId ] = $groupId;
}
$this->DB->update( 'rc_classes', array( 'group_can_report' => ',' . implode( ',', $_newSenders ) . ',', 'mod_group_perm' => ',' . implode( ',', $_newViewers ) . ',' ), 'com_id=' . $r['com_id'] );
}
$this->cache->rebuildCache( 'report_plugins', 'global' );
}
}
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -3,19 +3,19 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Member property updater (AJAX)
* Last Updated: $Date: 2010-01-15 14:28:09 -0500 (Fri, 15 Jan 2010) $
* Last Updated: $Date: 2010-12-17 07:40:13 -0500 (Fri, 17 Dec 2010) $
* </pre>
*
* @author $Author: josh $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st march 2002
* @version $Revision: 5715 $
* @version $Revision: 7442 $
*
*/
@@ -32,7 +32,6 @@ class admin_member_form__core implements admin_member_form
* This can be left blank and the application title will
* be used
*
* @access public
* @var string
*/
public $tab_name = "";
@@ -51,7 +50,6 @@ class admin_member_form__core implements admin_member_form
* Use the format:
* $array[] = array( 'img' => '', 'url' => '', 'title' => '' );
*
* @access public
* @author Matt Mecham
* @param array Member data
* @return array Array of links
@@ -64,7 +62,7 @@ class admin_member_form__core implements admin_member_form
{
$array[] = array( 'img' => '',
'url' => "app=members&amp;module=members&amp;section=tools&amp;do=do_locked&amp;auth_key=".ipsRegistry::member()->form_hash."&amp;mid_{$member['member_id']}=1&amp;type=unlock",
'title' => $this->lang->words['reset_failed_logins'] );
'title' => ipsRegistry::getClass('class_localization')->words['reset_failed_logins'] );
}
return $array;
@@ -73,7 +71,6 @@ class admin_member_form__core implements admin_member_form
/**
* Returns content for the page.
*
* @access public
* @author Matt Mecham
* @param array Member data
* @return array Array of tabs, content
@@ -86,7 +83,6 @@ class admin_member_form__core implements admin_member_form
/**
* Process the entries for saving and return
*
* @access public
* @author Brandon Farber
* @return array Multi-dimensional array (core, extendedProfile) for saving
*/
@@ -0,0 +1,10 @@
<html>
<head><title>IP.Board - Bulletin Board System</title></head>
<body>
<h1>403: IP.Board -&gt; 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>
@@ -0,0 +1,340 @@
<?php
/**
* Report center comments class
*
* @author $author$
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license This is NULLED!
* @package IP.Downloads
* @link http://hatynka.in
* @version $Rev: 9229 $
*/
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
class comments_core_reports extends classes_comments_renderer
{
/**
* Internal remap array
*
* @param array
*/
protected $_remap = array( 'comment_id' => 'id',
'comment_author_id' => 'comment_by',
'comment_author_name' => 'author_name',
'comment_text' => 'comment',
'comment_ip_address' => 'ip_address',
'comment_edit_date' => 'edit_date',
'comment_date' => 'comment_date',
'comment_approved' => 'approved',
'comment_parent_id' => 'rid' );
/**
* Internal parent remap array
*
* @param array
*/
protected $_parentRemap = array( 'parent_id' => 'id',
'parent_owner_id' => 'updated_by',
'parent_parent_id' => 'uid',
'parent_title' => 'title',
'parent_seo_title' => 'seoname',
'parent_date' => 'date_created' );
/**
* Parent SEO template
*
* @return string
*/
public function seoTemplate()
{
return '';
}
/**
* Who am I?
*
* @return string
*/
public function whoAmI()
{
return 'core-reports';
}
/**
* Comment table
*
* @return string
*/
public function table()
{
return 'rc_comments';
}
/**
* Enable reputation?
*
* @return string
*/
public function reputationEnabled()
{
return false;
}
/**
* Fetch parent
*
* @return array
*/
public function fetchParent( $id )
{
static $cachedReports = array();
if( !isset($cachedReports[ $id ]) )
{
$cachedReports[ $id ] = $this->DB->buildAndFetch( array(
'select' => 'i.*',
'from' => array( 'rc_reports_index' => 'i' ),
'where' => "i.id=" . intval($id),
'add_join' => array(
array(
'select' => 'c.*',
'from' => array( 'rc_classes' => 'c' ),
'where' => 'c.com_id=i.rc_class',
'type' => 'left',
)
)
) );
}
return $cachedReports[ $id ];
}
/**
* Fetch settings
*
* @return array
*/
public function settings()
{
return array( 'urls-showParent' => "app=core&amp;module=reports&amp;do=show_report&amp;rid=%s",
'urls-report' => '' );
}
/**
* Number of items per page
*
* @return int
*/
public function perPage()
{
return 100;
}
/**
* Pre save
* Accepts an array of GENERIC data and allows manipulation before it's added to DB
*
* @param string Type of save (edit/add)
* @param array Array of GENERIC data (comment_xxxx)
* @param int Comment id (if available)
* @param int Parent id
* @return array Array of GENERIC data
*/
public function preSave( $type, array $array, $commentId=0, $parentId=0 )
{
return $array;
}
/**
* Post save
* Accepts an array of GENERIC data and allows manipulation after it's added to DB
*
* @param string Type of action (edit/add)
* @param array Array of GENERIC data (comment_xxxx)
* @param int Comment id (if available)
* @param int Parent id
* @return array Array of GENERIC data
*/
public function postSave( $type, array $array, $commentId=0, $parentId=0 )
{
$_cnt = $this->DB->buildAndFetch( array( 'select' => 'count(*) as total', 'from' => 'rc_comments', 'where' => 'rid=' . $parentId ) );
$this->DB->update( 'rc_reports_index', array( 'num_comments' => $_cnt['total'], 'date_updated' => time(), 'updated_by' => $array['comment_author_id'] ), "id=" . $parentId );
//$this->DB->setDataType( 'num_comments', 'int' );
//$this->DB->update( 'rc_reports_index', array( 'num_comments' => 'plus:1', 'date_updated' => time(), 'updated_by' => $array['comment_author_id'] ), "id=" . $parentId );
//-----------------------------------------
// Notify other moderators
//-----------------------------------------
$report = $this->fetchParent( $parentId );
$this->registry->class_localization->loadLanguageFile( array( 'public_reports' ) );
$this->DB->loadCacheFile( IPSLib::getAppDir('core') . '/sql/' . ips_DBRegistry::getDriverType() . '_report_queries.php', 'report_sql_queries' );
$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir('core') .'/sources/classes/reportLibrary.php', 'reportLibrary' );
$this->registry->setClass( 'reportLibrary', new $classToLoad( $this->registry ) );
$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir('core') . '/sources/classes/reportNotifications.php', 'reportNotifications' );
$notify = new $classToLoad( $this->registry );
$this->registry->getClass('reportLibrary')->loadPlugin( $report['my_class'], $report['app'] );
if( is_object($this->registry->getClass('reportLibrary')->plugins[ $report['my_class'] ]) )
{
if( $report['extra_data'] && $report['extra_data'] != 'N;' )
{
$this->registry->getClass('reportLibrary')->plugins[ $report['my_class'] ]->_extra = unserialize( $report['extra_data'] );
}
else
{
$this->registry->getClass('reportLibrary')->plugins[ $report['my_class'] ]->_extra = array();
}
$report_data = $this->registry->getClass('reportLibrary')->plugins[ $report['my_class'] ]->formatReportData( $report );
$notify->initNotify( $this->registry->getClass('reportLibrary')->plugins[ $report['my_class'] ]->getNotificationList( IPSText::cleanPermString( $report['mod_group_perm'] ), $report_data ), $report_data );
$notify->sendReplyNotifications( $array['comment_text'] );
}
return $array;
}
/**
* Post delete. Can do stuff and that
*
* @param array Array of comment IDs to be deleted
* @param int Parent ID
* @return void
*/
public function postDelete( $commentIds, $parentId )
{
/* Determine most recent comment or report... */
$_comment = $this->DB->buildAndFetch( array( 'select' => 'comment_by, comment_date', 'from' => 'rc_comments', 'where' => 'approved=1 AND rid=' . $parentId, 'order' => 'comment_date DESC', 'limit' => array( 1 ) ) );
$_report = $this->DB->buildAndFetch( array( 'select' => 'report_by, date_reported', 'from' => 'rc_reports', 'where' => 'rid=' . $parentId, 'order' => 'date_reported DESC', 'limit' => array( 1 ) ) );
$_date_updated = 0;
$_updated_by = 0;
if( $_comment['comment_date'] )
{
$_date_updated = $_comment['comment_date'];
$_updated_by = $_comment['comment_by'];
}
if( $_report['date_reported'] > $_date_updated )
{
$_date_updated = $_report['date_reported'];
$_updated_by = $_report['report_by'];
}
$_cnt = $this->DB->buildAndFetch( array( 'select' => 'count(*) as total', 'from' => 'rc_comments', 'where' => 'rid=' . $parentId ) );
$this->DB->update( 'rc_reports_index', array( 'num_comments' => $_cnt['total'], 'date_updated' => $_date_updated, 'updated_by' => $_updated_by ), "id=" . $parentId );
//$this->DB->setDataType( 'num_comments', 'int' );
//$this->DB->update( 'rc_reports_index', array( 'num_comments' => 'minus:' . count($commentIds) ), "id=" . $parentId );
}
/**
* Toggles visibility
*
* @param string on/off
* @param array Array of comment IDs to be deleted
* @param int Parent ID
* @return void
*/
public function postVisibility( $toggle, $commentIds, $parentId )
{
}
/**
* Fetch a total count of comments we can see
*
* @param mixed parent Id or parent array
* @return int
*/
public function count( $parent )
{
/* Get parent */
if ( is_numeric( $parent ) )
{
$parent = $this->fetchParent( $parent );
}
return intval($parent['num_comments']);
}
/**
* Perform a permission check
*
* @param string Type of check (add/edit/delete/editall/deleteall/approve all)
* @param array Array of GENERIC data
* @return true or string to be used in exception
*/
public function can( $type, array $array )
{
/* Init */
$comment = array();
/* Got data? */
if ( empty( $array['comment_parent_id'] ) )
{
trigger_error( "No parent ID passed to " . __FILE__, E_USER_WARNING );
}
/* Get the file */
$event = $this->fetchParent( $array['comment_parent_id'] );
/* Fetch comment */
if ( $array['comment_id'] )
{
$comment = $this->fetchById( $array['comment_id'] );
}
/* Check permissions */
switch( $type )
{
case 'view':
return true;
break;
case 'edit':
if( $this->memberData['g_is_supmod'] OR $this->memberData['member_id'] != $comment['comment_mid'] )
{
return true;
}
return 'NO_PERMISSION';
break;
case 'add':
return true;
break;
case 'delete':
return $this->memberData['g_is_supmod'] ? true : 'NO_PERMISSION';
break;
case 'visibility':
case 'moderate':
return 'NO_PERMISSION';
break;
}
}
/**
* Returns remap keys (generic => local)
*
* @return array
*/
public function remapKeys( $type='comment' )
{
return ( $type == 'comment' ) ? $this->_remap : $this->_parentRemap;
}
}
@@ -3,19 +3,19 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Core Sessions
* Last Updated: $Date: 2010-01-21 03:39:17 -0500 (Thu, 21 Jan 2010) $
* Last Updated: $Date: 2011-09-15 17:04:35 -0400 (Thu, 15 Sep 2011) $
* </pre>
*
* @author $Author: matt $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 20th February 2002
* @version $Rev: 5732 $
* @version $Rev: 9495 $
*
*/
@@ -25,6 +25,101 @@ if ( ! defined( 'IN_IPB' ) )
exit();
}
/**
* <pre>
* Invision Power Services
* IP.Board v3.2.3
* Item Marking
* Last Updated: $Date: 2011-09-15 17:04:35 -0400 (Thu, 15 Sep 2011) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license This is NULLED!
* @package IP.Downloads
* @link http://hatynka.in
* @version $Rev: 9495 $
*
*/
class itemMarking__core
{
/**#@+
* Registry Object Shortcuts
*
* @var object
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**#@-*/
/**
* I'm a constructor, twisted constructor
*
* @param object ipsRegistry reference
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
/* Make objects */
$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();
}
/**
* Convert Data
* Takes an array of app specific data and remaps it to the DB table fields
*
* @param array
* @return array
*/
public function convertData( $data )
{
return $data;
}
/**
* Fetch unread count
*
* Grab the number of items truly unread
* This is called upon by 'markRead' when the number of items
* left hits zero (or less).
*
*
* @param array Array of data
* @param array Array of read itemIDs
* @param int Last global reset
* @return integer Last unread count
*/
public function fetchUnreadCount( $data, $readItems, $lastReset )
{
$readItems = is_array( $readItems ) ? $readItems : array( 0 );
$_count = $this->DB->buildAndFetch( array(
'select' => 'COUNT(*) as cnt, MIN(date_updated) AS lastItem',
'from' => 'rc_reports_index',
'where' => "id NOT IN(" . implode( ",", array_keys( $readItems ) ) . ") AND date_updated > " . intval($lastReset)
) );
return array( 'count' => intval( $_count['cnt'] ),
'lastItem' => intval( $_count['lastItem'] ) );
}
}
/**
* Main loader class
*/
@@ -36,7 +131,6 @@ class publicSessions__core
* current_appcomponent, current_module and current_section are automatically
* stored. This function allows you to add specific variables in.
*
* @access public
* @author Matt Mecham
* @return array
*/
@@ -50,6 +144,12 @@ class publicSessions__core
'location_1_id' => 0,
'location_2_type' => '',
'location_2_id' => 0 );
/* @link http://community.invisionpower.com/tracker/issue-33345-start-new-topic-reply-to-this-topic-online-list-location */
if( ipsRegistry::$request['module'] == 'attach' )
{
define( 'NO_SESSION_UPDATE', true );
}
return $array;
}
@@ -57,7 +157,6 @@ class publicSessions__core
/**
* Parse/format the online list data for the records
*
* @access public
* @author Brandon Farber
* @param array Online list rows to check against
* @return array Online list rows parsed
@@ -2,19 +2,19 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Core registered caches, redirect resets and bitwise settings
* Last Updated: $Date: 2010-09-15 19:24:12 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $Date: 2011-03-15 18:03:09 -0400 (Tue, 15 Mar 2011) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 20th February 2002
* @version $Rev: 6882 $
* @version $Rev: 8085 $
*
*/
@@ -29,6 +29,11 @@ if ( ! defined( 'IN_IPB' ) )
*/
$_LOAD = array();
if( IN_ACP AND ( !isset($_GET['module']) OR $_GET['module'] == 'mycp' ) )
{
$_LOAD['stats'] = 1;
}
if( isset($_GET['module']) )
{
if ( $_GET['module'] == 'search' )
@@ -45,6 +50,8 @@ if( isset($_GET['module']) )
$_LOAD['ranks'] = 1;
$_LOAD['bbcode'] = 1;
$_LOAD['emoticons'] = 1;
$_LOAD['reputation_levels'] = 1;
$_LOAD['moderators'] = 1;
}
if( $_GET['module'] == 'usercp' )
@@ -53,6 +60,31 @@ if( isset($_GET['module']) )
$_LOAD['reputation_levels'] = 1;
$_LOAD['emoticons'] = 1;
}
if ( $_GET['module'] == 'modcp' )
{
$_LOAD['moderators'] = 1;
$_LOAD['ranks'] = 1;
$_LOAD['bbcode'] = 1;
$_LOAD['emoticons'] = 1;
$_LOAD['reputation_levels'] = 1;
$_LOAD['attachtypes'] = 1;
}
if( IN_ACP AND $_GET['module'] == 'applications' AND $_GET['section'] == 'hooks' )
{
$_LOAD['disabledHooksCache'] = 1;
}
}
else if( IN_ACP )
{
$_LOAD['ranks'] = 1;
$_LOAD['reputation_levels'] = 1;
$_LOAD['emoticons'] = 1;
$_LOAD['moderators'] = 1;
$_LOAD['adminnotes'] = 1;
$_LOAD['performanceCache'] = 1;
$_LOAD['sphinx_config'] = 1;
}
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Dashboard Notifications
* Last Updated: $Date
*
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @version $Rev: 6980 $
* @link http://hatynka.in
* @version $Rev: 9551 $
*/
if ( ! defined( 'IN_IPB' ) )
@@ -35,6 +35,7 @@ class dashboardNotifications__core
public $lang;
public $cache;
public $caches;
public $DB;
public function __construct()
{
@@ -42,6 +43,7 @@ class dashboardNotifications__core
$this->lang = ipsRegistry::getClass('class_localization');
$this->caches =& ipsRegistry::cache()->fetchCaches();
$this->cache = ipsRegistry::cache();
$this->DB = ipsRegistry::DB();
}
public function get()
@@ -49,15 +51,117 @@ class dashboardNotifications__core
/* INIT */
$entries = array();
if( ! $this->settings['ipb_reg_number'] )
{
$entries[] = array( $this->lang->words['lc_title_nokey'], sprintf( $this->lang->words['lc_msg_nokey'], "{$this->settings['base_url']}module=tools&amp;section=licensekey" ) );
}
else
{
/* We need a classFileManagement object */
$classToLoad = IPSLib::loadLibrary( IPS_KERNEL_PATH . 'classFileManagement.php', 'classFileManagement' );
$classFileManagement = new $classToLoad();
/* Try to automatically update if expired */
$licenseData = $this->cache->getCache( 'licenseData' );
if( ! $licenseData || ( $licenseData['key']['_expires'] != 9999999999 AND $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW ) )
{
/* Query the api */
$response = $classFileManagement->getFileContents( "http://myipb.in/license.php?lk={$this->settings['ipb_reg_number']}&url={$this->settings['board_url']}&flush=1" );
/* Get License Data */
$licenseData = json_decode( $response, true );
/* Copyright Removal? */
if ( $licenseData['cr'] )
{
IPSLib::updateSettings( array( 'ipb_copy_number' => $licenseData['cr'], 'ips_cp_purchase' => 1 ) );
}
elseif ( $this->settings['ips_cp_purchase'] )
{
IPSLib::updateSettings( array( 'ips_cp_purchase' => 0 ) );
}
/* Save to cache */
$licenseData['_cached_date'] = time();
$licenseData['key']['_expires'] = $licenseData['key']['_expires'] ? $licenseData['key']['_expires'] : 9999999999;
$licenseData['key']['expires'] = $licenseData['key']['expires'] ? $licenseData['key']['expires'] : 9999999999;
$this->cache->setCache( 'licenseData', $licenseData, array( 'array' => 1 ) );
}
/* Query the api */
$response = $classFileManagement->getFileContents("http://myipb.in/license.php?api=checkService&service=ipb&lk={$this->settings['ipb_reg_number']}&domain={$this->settings['board_url']}" );
/* Get License Data */
$response = json_decode( $response, true );
/* Is the Spam Service Working? */
if ( $this->settings['spam_service_enabled'] )
{
//$lastLog = $this->DB->buildAndFetch( array( 'select' => 'log_code', 'from' => 'spam_service_log', 'order' => 'id DESC', 'limit' => 1 ) ); // Order on ID since log_date has no index
//if ( $lastLog['log_code'] === '0' )
/* Get last 5 logs, and if all 5 are errors, show message */
$_errors = 0;
$_entries = 0;
$_lastError = '';
$this->DB->build( array( 'select' => 'log_code, log_msg', 'from' => 'spam_service_log', 'order' => 'id DESC', 'limit' => 5 ) );
$this->DB->execute();
while( $_r = $this->DB->fetch() )
{
$_entries++;
if( $_r['log_code'] === '0' )
{
$_errors++;
if( !$_lastError )
{
$_lastError = $_r['log_msg'];
}
}
}
if( $_entries > 0 && $_errors == $_entries )
{
$entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_error_msg'], $_lastError ) );
}
}
/* If it's disabled, are we entitiled to it? */
else
{
$licenseData = $this->cache->getCache( 'licenseData' );
if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
{
foreach ( $licenseData['ipbMain'] as $data )
{
if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] == 'Ok' )
{
$entries[] = array( $this->lang->words['spam_service_disabled'], $this->lang->words['spam_service_disabled_msg'] );
break;
}
}
}
}
}
/* FURL cache OOD? */
if ( file_exists( IPS_CACHE_PATH . 'cache/furlCache.php' ) )
if ( is_file( IPS_CACHE_PATH . 'cache/furlCache.php' ) )
{
$mtime = intval( @filemtime( IPS_CACHE_PATH . 'cache/furlCache.php' ) );
/* Check mtimes on extensions.. */
foreach( ipsRegistry::$applications as $app_dir => $application )
{
if ( file_exists( IPSLib::getAppDir( $app_dir ) . '/extensions/furlTemplates.php' ) )
if ( is_file( IPSLib::getAppDir( $app_dir ) . '/extensions/furlTemplates.php' ) )
{
$_mtime = intval( @filemtime( IPSLib::getAppDir( $app_dir ) . '/extensions/furlTemplates.php' ) );
@@ -69,30 +173,46 @@ class dashboardNotifications__core
}
}
}
/* Sphinx cache OOD? */
if ( $this->settings['search_method'] == 'sphinx' )
{
$mtime = intval( $this->cache->getCache('sphinx_config') );
/* Check mtimes on extensions.. */
foreach( ipsRegistry::$applications as $app_dir => $application )
{
if ( is_file( IPSLib::getAppDir( $app_dir ) . '/extensions/sphinxTemplate.php' ) )
{
$_mtime = intval( @filemtime( IPSLib::getAppDir( $app_dir ) . '/extensions/sphinxTemplate.php' ) );
if ( !$mtime OR $_mtime > $mtime )
{
$entries[] = array( $this->lang->words['sphinxconfig_outofdate'], $this->lang->words['sphinxconfig_outofdate_desc'] . ' ' . "<a href='" . $this->settings['base_url'] . "app=core&amp;module=applications&amp;section=applications&amp;do=applications_overview'>{$this->lang->words['rebuild_sphinx_config']}</a>" );
break;
}
}
}
}
/* Minify on but /cache/tmp not writeable? */
if ( isset( $this->settings['_use_minify'] ) AND $this->settings['_use_minify'] )
if ( !empty( $this->settings['_use_minify'] ) )
{
$entries[] = array( $this->lang->words['minifywrite_head'], $this->lang->words['minifynot_writeable'] );
}
/* Installer Check */
if( @file_exists( IPS_ROOT_PATH . 'install/index.php' ) )
if( @is_file( IPS_ROOT_PATH . 'install/index.php' ) )
{
if ( ! @file_exists( DOC_IPS_ROOT_PATH . 'cache/installer_lock.php' ) )
if ( ! @is_file( DOC_IPS_ROOT_PATH . 'cache/installer_lock.php' ) )
{
$this->lang->words['cp_unlocked_warning'] = sprintf( $this->lang->words['cp_unlocked_warning'], CP_DIRECTORY );
$entries[] = array( $this->lang->words['cp_unlockedinstaller'], $this->lang->words['cp_unlocked_warning'] );
}
}
else if( @is_dir( IPS_ROOT_PATH . 'applications_addon/ips/convert/' ) and !@file_exists( DOC_IPS_ROOT_PATH . 'cache/converter_lock.php' ) and $this->caches['app_cache']['convert'] )
{
$this->lang->words['cp_warning_converter'] = sprintf( $this->lang->words['cp_warning_converter'], $this->settings['_base_url'] );
$entries[] = array( $this->lang->words['cp_unlocked_converter'], $this->lang->words['cp_warning_converter'] );
}
/* Unfinished Upgrade */
require_once( IPS_ROOT_PATH . '/setup/sources/base/setup.php' );
require_once( IPS_ROOT_PATH . '/setup/sources/base/setup.php' );/*noLibHook*/
$versions = IPSSetUp::fetchAppVersionNumbers( 'core' );
if( $versions['current'][0] != $versions['latest'][0] )
@@ -108,16 +228,22 @@ class dashboardNotifications__core
$entries[] = array( sprintf( $this->lang->words['cp_yourphpversion'], PHP_VERSION ), $this->lang->words['cp_php_warning'] );
}
/* Outgoing email address specified */
if ( !$this->settings['email_out'] OR !$this->settings['email_in'] )
{
$entries[] = array( $this->lang->words['cp_missingemail'], "{$this->lang->words['cp_missingemail1']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=email'>{$this->lang->words['cp_missingemail2']}</a>" );
}
/* Board Offline Check */
if ( $this->settings['board_offline'] )
{
$entries[] = array( $this->lang->words['cp_boardoffline'], "{$this->lang->words['cp_boardoffline1']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=tools&amp;section=settings&amp;do=findsetting&amp;key=boardoffline'>{$this->lang->words['cp_boardoffline2']}</a>" );
$entries[] = array( $this->lang->words['cp_boardoffline'], "{$this->lang->words['cp_boardoffline1']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=boardoffline'>{$this->lang->words['cp_boardoffline2']}</a>" );
}
/* Fulltext Check */
if( $this->settings['search_method'] == 'traditional' AND !$this->settings['use_fulltext'] AND !$this->settings['hide_ftext_note'] )
{
$entries[] = array( $this->lang->words['fulltext_off'], "{$this->lang->words['fulltext_turnon']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=tools&amp;section=settings&amp;do=findsetting&amp;key=searchsetup'>{$this->lang->words['fulltext_find']}</a>" );
$entries[] = array( $this->lang->words['fulltext_off'], "{$this->lang->words['fulltext_turnon']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=searchsetup'>{$this->lang->words['fulltext_find']}</a>" );
}
/* Make sure the profile directory is writable */
@@ -176,7 +302,7 @@ class dashboardNotifications__core
}
/* SQL error check */
if ( file_exists( IPS_CACHE_PATH . 'cache/sql_error_latest.cgi' ) )
/*if ( is_file( IPS_CACHE_PATH . 'cache/sql_error_latest.cgi' ) )
{
$unix = @filemtime( IPS_CACHE_PATH . 'cache/sql_error_latest.cgi' );
@@ -187,10 +313,10 @@ class dashboardNotifications__core
if ( $mtime == $now )
{
/* Display a message */
// Display a message
}
}
}
}*/
return $entries;
}
@@ -0,0 +1,25 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.2.3
* Define data hook locations (core)
* Last Updated: $Date: 2011-05-18 04:49:10 -0400 (Wed, 18 May 2011) $
* </pre>
*
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://hatynka.in
* @version $Rev: 8812 $
*/
$dataHookLocations = array(
/* POSTING LIBRARY DATA LOCATIONS */
array( 'warnLogs', 'Insert Warn Log' ),
);
@@ -3,18 +3,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* BBCode Management : Determines if bbcode can be used in this section
* Last Updated: $LastChangedDate: 2010-01-21 03:39:17 -0500 (Thu, 21 Jan 2010) $
* Last Updated: $LastChangedDate: 2011-04-20 18:01:37 -0400 (Wed, 20 Apr 2011) $
* </pre>
*
* @author $Author: matt $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @version $Rev: 5732 $
* @link http://hatynka.in
* @version $Rev: 8419 $
*
*/
@@ -31,5 +31,6 @@ if ( ! defined( 'IN_IPB' ) )
*
*/
$BBCODE = array(
'reports' => ipsRegistry::getClass('class_localization')->words['ctype__reports'],
'reports' => ipsRegistry::getClass('class_localization')->words['ctype__reports'],
'global_comments' => ipsRegistry::getClass('class_localization')->words['ctype__comments'],
);
@@ -9,10 +9,10 @@
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 20th February 2002
* @version $Rev: 6596 $
*
@@ -2,19 +2,19 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Sets up SEO templates
* Last Updated: $Date: 2010-07-01 18:13:46 -0400 (Thu, 01 Jul 2010) $
* Last Updated: $Date: 2011-09-16 07:16:26 -0400 (Fri, 16 Sep 2011) $
* </pre>
*
* @author $Author: bfarber $
* @author $Author: mmecham $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 20th February 2002
* @version $Rev: 6596 $
* @version $Rev: 9496 $
*
*/
@@ -50,8 +50,12 @@ $_SEOTEMPLATES = array(
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=register(&amp;|&|$)#i', 'register/$3' ),
'in' => array( 'regex' => "#/register(/|$|\?)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'register' ) ) ) ),
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'register' ) ) ) ),
'likeunsubscribe' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=like(&amp;|&)do=unsubscribe(&amp;|&)key=(\S+?)(&amp;|&|$)#i', 'unsubscribe/$5/' ),
'in' => array( 'regex' => "#/unsubscribe/(\S+?)/$#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'like' ), array( 'do', 'unsubscribe' ), array( 'key', '$1' ) ) ) ),
'section=rss' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=rss(&amp;|&)type=(\w+?)$#i', 'rss/$4/' ),
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -0,0 +1,98 @@
<?php
/**
* @file generate.php Navigation plugin: attachments
*~TERABYTE_DOC_READY~
* $Copyright: (c) 2001 - 2011 Invision Power Services, Inc.$
* $License: This is NULLED!
* $Author: bfarber $
* @since 3/8/2011
* $LastChangedDate: 2011-05-12 22:28:10 -0400 (Thu, 12 May 2011) $
* @version v3.2.3
* $Revision: 8754 $
*/
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}
/**
*
* @class navigation_core
* @brief Provide ability to share attachments via editor
*/
class navigation_core
{
/**
* Registry Object Shortcuts
*
* @var $registry
* @var $DB
* @var $settings
* @var $request
* @var $lang
* @var $member
* @var $memberData
* @var $cache
* @var $caches
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**
* Constructor
*
* @return @e void
*/
public function __construct()
{
$this->registry = ipsRegistry::instance();
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->lang = $this->registry->class_localization;
}
/**
* Return the tab title
*
* @return @e string
*/
public function getTabName()
{
return $this->lang->words['quicknav_comm_link'];
}
/**
* Returns navigation data
*
* @return @e array array( array( 0 => array( 'title' => 'x', 'url' => 'x' ) ) );
*/
public function getNavigationData()
{
$blocks = array();
$links = array();
$links[] = array( 'title' => $this->lang->words['view_new_posts'] , 'url' => $this->registry->output->buildUrl( 'app=core&amp;module=search&amp;do=viewNewContent&amp;search_app=forums', 'public') );
$links[] = array( 'title' => $this->lang->words['online_user_link'] , 'url' => $this->registry->output->buildUrl( 'app=members&amp;module=online&amp;sort_order=desc', 'public') );
$links[] = array( 'title' => $this->lang->words['registered_users_link'], 'url' => $this->registry->output->buildSEOUrl( 'app=members&amp;module=list', 'public', 'false', 'members_list' ) );
$links[] = array( 'title' => $this->lang->words['status_updates_link'] , 'url' => $this->registry->output->buildSEOUrl( 'app=members&amp;module=profile&amp;section=status', 'public', 'false', 'members_status_all' ) );
/* Add to blocks */
$blocks[] = array( 'title' => '', 'links' => $links );
return $blocks;
}
}
@@ -0,0 +1,10 @@
<html>
<head><title>IP.Board - Bulletin Board System</title></head>
<body>
<h1>403: IP.Board -&gt; 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>
@@ -3,19 +3,19 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Define the core notification types
* Last Updated: $Date: 2010-10-25 10:10:56 -0400 (Mon, 25 Oct 2010) $
* Last Updated: $Date: 2011-03-11 06:59:39 -0500 (Fri, 11 Mar 2011) $
* </pre>
*
* @author $Author: mmecham $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 20th February 2002
* @version $Rev: 7030 $
* @version $Rev: 8031 $
*
*/
@@ -37,9 +37,9 @@ class core_notifications
$_NOTIFY = array(
// Future...
// array( 'key' => 'reputation_received', 'default' => array( 'inline' ), 'disabled' => array() ),
array( 'key' => 'report_center', 'default' => array( 'email' ), 'disabled' => array(), 'show_callback' => TRUE , 'icon' => 'notify_reportcenter' ),
array( 'key' => 'report_center', 'default' => array( 'email' ), 'disabled' => array(), 'show_callback' => TRUE, 'icon' => 'notify_reportcenter' ),
array( 'key' => 'new_comment' , 'default' => array( 'email' ), 'disabled' => array(), 'show_callback' => false, 'icon' => 'notify_profilecomment' ),
);
);/*noLibHook*/
return $_NOTIFY;
}
@@ -2,19 +2,19 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Report Center :: Default plugin
* Last Updated: $LastChangedDate: 2010-01-15 10:18:44 -0500 (Fri, 15 Jan 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: bfarber $
* @author $Author: ips_terabyte $
* @author Based on original "Report Center" by Luke Scott
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @version $Rev: 5713 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*/
if ( ! defined( 'IN_IPB' ) )
@@ -25,25 +25,32 @@ if ( ! defined( 'IN_IPB' ) )
class default_plugin
{
/**#@+
* Registry objects
/**
* Registry Object Shortcuts
*
* @access protected
* @var object
*/
* @var $registry
* @var $DB
* @var $settings
* @var $request
* @var $lang
* @var $member
* @var $memberData
* @var $cache
* @var $caches
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
/**#@-*/
protected $caches;
/**
* Holds extra data for the plugin
*
* @access private
* @var array Data specific to the plugin
*/
public $_extra;
@@ -51,9 +58,8 @@ class default_plugin
/**
* Constructor
*
* @access public
* @param object Registry object
* @return void
* @param object $registry Registry object
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
@@ -74,7 +80,6 @@ class default_plugin
/**
* Display the form for extra data in the ACP
*
* @access public
* @param array Plugin data
* @param object HTML object
* @return string HTML to add to the form
@@ -122,12 +127,12 @@ EOF;
$return .= $html->addRow( "URL String",
"The formatted URL that is used to point to the reported content. If the URL does not contain 'http://' the board's base url will be inserted. You may also include input data: {input_id}",
$this->registry->output->formInput('string_url', $plugin_data['string_url'])
);
);/*noLibHook*/
$return .= $html->addRow( "Title String",
"The formatted title that is shown on the reporting page and when reports are listed. You may include input data: {input_id}. If you would like the report center to pull the page title, use #PAGE_TITLE#",
$this->registry->output->formInput('string_title', $plugin_data['string_title'])
);
);/*noLibHook*/
return $return;
}
@@ -135,7 +140,6 @@ EOF;
/**
* Process the plugin's form fields for saving
*
* @access public
* @param array Plugin data for save
* @return string Error message
*/
@@ -176,7 +180,6 @@ EOF;
/**
* Update timestamp for report
*
* @access public
* @param array New reports
* @param array New members cache
* @return boolean
@@ -189,7 +192,6 @@ EOF;
/**
* Get report permissions
*
* @access public
* @param string Type of perms to check
* @param array Permissions data
* @param array group ids
@@ -211,7 +213,6 @@ EOF;
/**
* Show the report form for this module
*
* @access public
* @param array Application data
* @return string HTML form information
*/
@@ -236,7 +237,6 @@ EOF;
/**
* Process the basic forum data
*
* @access public
* @param array Application data
* @param string URL
* @param string Title
@@ -317,7 +317,6 @@ EOF;
/**
* Get section and link
*
* @access public
* @param array Report data
* @return array Section/link
*/
@@ -332,7 +331,6 @@ EOF;
/**
* Process a report and save the data appropriate
*
* @access public
* @param array Report data
* @return array Data from saving the report
*/
@@ -417,13 +415,28 @@ EOF;
return $return_data;
}
/**
* Accepts an array of data from rc_reports_index and returns an array formatted nearly identical to processReport()
*
* @param array Report data
* @return array Formatted report data
*/
public function formatReportData( $report_data )
{
return array(
'REDIRECT_URL' => $report_data['url'],
'REPORT_INDEX' => $report_data['id'],
'SAVED_URL' => $report_data['url'],
'REPORT' => '',
);
}
/**
* Where to send user after report is submitted
*
* @access public
* @param array Report data
* @return void
* @return @e void
*/
public function reportRedirect( $report_data )
{
@@ -433,11 +446,10 @@ EOF;
/**
* Loads an HTML page and grabs its title
*
* @access private
* @param string Web URL
* @return string
*/
private function _getPageTitle( $URL )
protected function _getPageTitle( $URL )
{
$html_code = file_get_contents( $URL );
@@ -455,7 +467,6 @@ EOF;
/**
* Retrieve list of users to send notifications to
*
* @access public
* @param string Group ids
* @param array Report data
* @return array Array of users to PM/Email
@@ -465,16 +476,16 @@ EOF;
$notify = array();
$this->DB->build( array(
'select' => 'noti.*',
'from' => array( 'rc_modpref' => 'noti' ),
'where' => 'mem.member_group_id IN(' . $group_ids . ')',
'add_join' => array(
array(
'select' => 'mem.member_id, mem.members_display_name as name, mem.language, mem.members_disable_pm, mem.email, mem.member_group_id',
'from' => array( 'members' => 'mem' ),
'where' => 'mem.member_id=noti.mem_id',
)
'select' => 'mem.member_id, mem.members_display_name as name, mem.language, mem.members_disable_pm, mem.email, mem.member_group_id',
'from' => array( 'members' => 'mem' ),
'where' => 'mem.member_group_id IN(' . $group_ids . ')',
'add_join' => array(
array(
'select' => 'noti.*',
'from' => array( 'rc_modpref' => 'noti' ),
'where' => 'mem.member_id=noti.mem_id',
)
)
) );
$this->DB->execute();
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,19 +2,19 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* RSS output plugin :: report center
* Last Updated: $Date: 2010-10-14 13:15:13 -0400 (Thu, 14 Oct 2010) $
* Last Updated: $Date: 2011-03-10 16:00:38 -0500 (Thu, 10 Mar 2011) $
* </pre>
*
* @author $Author: ips_terabyte $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 6/24/2008
* @version $Revision: 6980 $
* @version $Revision: 8021 $
*/
if ( ! defined( 'IN_IPB' ) )
@@ -30,7 +30,7 @@ class rss_output_core
*
* @var integer Expiration timestamp
*/
private $expires = 0;
protected $expires = 0;
/**
* Grab the RSS links
@@ -1,20 +1,21 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Config file
* Last Updated: $Date: 2010-02-19 01:29:54 +0000 (Fri, 19 Feb 2010) $
* Last Updated: $Date: 2011-04-13 23:15:13 -0400 (Wed, 13 Apr 2011) $
* </pre>
*
* @author $author$
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Forums
* @link http://www.invisionpower.com
* @version $Rev: 5855 $
**/
* @link http://hatynka.in
* @version $Rev: 8333 $
*/
if ( ! defined( 'IN_IPB' ) )
{
@@ -23,13 +24,10 @@ if ( ! defined( 'IN_IPB' ) )
}
/* Can search with this app */
$CONFIG['can_search'] = 1;
$CONFIG['can_search'] = 1;
/* Can view new content with this app */
$CONFIG['can_viewNewContent'] = 0;
/* Can fetch active content with this app */
$CONFIG['can_activeContent'] = 0;
$CONFIG['can_viewNewContent'] = 0;
/* Can fetch user generated content */
$CONFIG['can_userContent'] = 0;
$CONFIG['can_userContent'] = 0;
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Basic Forum Search
* Last Updated: $Date: 2010-02-23 12:38:11 +0000 (Tue, 23 Feb 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: matt $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Forums
* @link http://www.invisionpower.com
* @version $Rev: 5861 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*/
if ( ! defined( 'IN_IPB' ) )
@@ -26,6 +26,9 @@ class search_engine_core extends search_engine
{
/**
* Constructor
*
* @param object ipsRegistry reference
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
@@ -39,78 +42,50 @@ class search_engine_core extends search_engine
*
* So if we had 1000 replies, and we are on page 2 of 25 per page, we'd return 25 items offset by 25
*
* @access public
* @return array
*/
public function search()
{
/* INIT */
$count = 0;
$results = array();
$sort_by = IPSSearchRegistry::get('in.search_sort_by');
$sort_order = IPSSearchRegistry::get('in.search_sort_order');
$search_term = IPSSearchRegistry::get('in.clean_search_term');
$content_title_only = IPSSearchRegistry::get('opt.searchTitleOnly');
$post_search_only = IPSSearchRegistry::get('opt.onlySearchPosts');
$order_dir = ( $sort_order == 'asc' ) ? 'asc' : 'desc';
$sortKey = '';
$sortType = '';
$rows = array();
$got = 0;
if ( IPSSearchRegistry::get('opt.noPostPreview') OR IPSSearchRegistry::get('display.onlyTitles') )
{
$group_by = 'h.id';
}
/* INIT */
$sort_by = IPSSearchRegistry::get('in.search_sort_by');
$sort_order = IPSSearchRegistry::get('in.search_sort_order');
$search_term = IPSSearchRegistry::get('in.clean_search_term');
$sortKey = '';
$rows = array();
/* Sorting */
switch( $sort_by )
{
default:
case 'date':
$sortKey = ( $content_title_only ) ? 'id' : 'id';
$sortType = 'numerical';
$sortKey = 'id';
break;
case 'title':
$sortKey = 'title';
$sortType = 'string';
break;
}
/* Query the count */
$count = $this->DB->buildAndFetch( array('select' => 'COUNT(*) as total_results',
'from' => array( 'faq' => 'h' ),
'where' => $this->_buildWhereStatement( $search_term, $content_title_only ),
'group' => $group_by,
'add_join' => array( array( 'from' => array( 'permission_index' => 'i' ),
'where' => "i.perm_type='help' AND i.perm_type_id=1",
'type' => 'left' ) ) ) );
'from' => 'faq',
'where' => $this->_buildWhereStatement( $search_term ),
) );
/* Fetch data */
$this->DB->build( array( 'select' => 'h.*',
'from' => array( 'faq' => 'h' ),
'where' => $this->_buildWhereStatement( $search_term, $content_title_only ),
'group' => $group_by,
$this->DB->build( array( 'select' => '*',
'from' => 'faq',
'where' => $this->_buildWhereStatement( $search_term ),
'order' => $sortKey . ' ' . $sort_order,
'limit' => array( IPSSearchRegistry::get('in.start'), IPSSearchRegistry::get('opt.search_per_page') ),
'add_join' => array( array( 'from' => array( 'permission_index' => 'i' ),
'where' => "i.perm_type='help' AND i.perm_type_id=1",
'type' => 'left' ) ) ) );
) );
$this->DB->execute();
/* Sort */
/* Get results */
while ( $_row = $this->DB->fetch() )
{
$rows[ $got ] = $_row;
$got++;
$rows[] = $_row;
}
/* Return it */
@@ -120,25 +95,30 @@ class search_engine_core extends search_engine
/**
* Builds the where portion of a search string
*
* @access private
* @param string $search_term The string to use in the search
* @param bool $content_title_only Search only title records
* @return string
**/
private function _buildWhereStatement( $search_term, $content_title_only=false )
*/
protected function _buildWhereStatement( $search_term )
{
/* INI */
$where_clause = array();
if( $search_term )
{
if( $content_title_only )
switch( IPSSearchRegistry::get('opt.searchType') )
{
$where_clause[] = "h.title LIKE '%{$search_term}%'";
}
else
{
$where_clause[] = "(h.title LIKE '%{$search_term}%' OR h.text LIKE '%{$search_term}%' OR h.description LIKE '%{$search_term}%')";
case 'both':
default:
$where_clause[] = "(title LIKE '%{$search_term}%' OR text LIKE '%{$search_term}%' OR description LIKE '%{$search_term}%')";
break;
case 'titles':
$where_clause[] = "title LIKE '%{$search_term}%'";
break;
case 'content':
$where_clause[] = "(text LIKE '%{$search_term}%' OR description LIKE '%{$search_term}%')";
break;
}
}
@@ -154,9 +134,6 @@ class search_engine_core extends search_engine
$where_clause[] = '( ' . implode( ' OR ', $this->whereConditions['OR'] ) . ' )';
}
/* Permissions */
$where_clause[] = $this->DB->buildRegexp( "i.perm_view", $this->member->perm_id_array );
/* Build and return the string */
return implode( " AND ", $where_clause );
}
@@ -164,10 +141,9 @@ class search_engine_core extends search_engine
/**
* Remap standard columns (Apps can override )
*
* @access public
* @param string $column sql table column for this condition
* @return string column
* @return void
* @return @e void
*/
public function remapColumn( $column )
{
@@ -182,26 +158,17 @@ class search_engine_core extends search_engine
/**
* Returns an array used in the searchplugin's setCondition method
*
* @access public
* @param array $data Array of forums to view
* @return array Array with column, operator, and value keys, for use in the setCondition call
**/
*/
public function buildFilterSQL( $data )
{
/* INIT */
$return = array();
/* Set up some defaults */
IPSSearchRegistry::set( 'opt.noPostPreview' , false );
IPSSearchRegistry::set( 'opt.onlySearchPosts', false );
return array();
}
/**
* Can handle boolean searching
*
* @access public
* @return boolean
*/
public function isBoolean()
@@ -1,20 +1,21 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Returns HTML for the form (optional class, not required)
* Last Updated: $Date: 2010-02-19 01:29:54 +0000 (Fri, 19 Feb 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $author$
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Forums
* @link http://www.invisionpower.com
* @version $Rev: 5855 $
**/
* @link http://hatynka.in
* @version $Rev: 8644 $
*/
if ( ! defined( 'IN_IPB' ) )
{
@@ -27,6 +28,7 @@ class search_form_core
/**
* Construct
*
* @return @e void
*/
public function __construct()
{
@@ -45,8 +47,6 @@ class search_form_core
/**
* Return sort drop down
*
*
* @access public
* @return array
*/
public function fetchSortDropDown()
@@ -1,20 +1,21 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Formats forum search results
* Last Updated: $Date: 2010-02-19 01:29:54 +0000 (Fri, 19 Feb 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $author$
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Forums
* @link http://www.invisionpower.com
* @version $Rev: 5855 $
**/
* @link http://hatynka.in
* @version $Rev: 8644 $
*/
if ( ! defined( 'IN_IPB' ) )
{
@@ -26,6 +27,9 @@ class search_format_core extends search_format
{
/**
* Constructor
*
* @param object ipsRegistry
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
@@ -35,7 +39,6 @@ class search_format_core extends search_format
/**
* Parse search results
*
* @access private
* @param array $r Search result
* @return array $html Blocks of HTML
*/
@@ -47,20 +50,18 @@ class search_format_core extends search_format
/**
* Formats the forum search result for display
*
* @access public
* @param array $search_row Array of data
* @return mixed Formatted content, ready for display, or array containing a $sub section flag, and content
**/
*/
public function formatContent( $data )
{
return array( ipsRegistry::getClass( 'output' )->getTemplate( 'search' )->helpSearchResult( $data, IPSSearchRegistry::get('display.onlyTitles') ), 0 );
return array( ipsRegistry::getClass( 'output' )->getTemplate( 'search' )->helpSearchResult( $data, IPSSearchRegistry::get('opt.searchType') == 'titles' ? true : false ), 0 );
}
/**
* Formats / grabs extra data for results
* Takes an array of IDS (can be IDs from anything) and returns an array of expanded data.
*
* @access public
* @return array
*/
public function processResults( $ids )
@@ -80,7 +81,7 @@ class search_format_core extends search_format
*
* @param array $r
* @return array
**/
*/
public function genericizeResults( $r )
{
$r['app'] = 'core';
@@ -92,5 +93,4 @@ class search_format_core extends search_format
return $r;
}
}
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -0,0 +1,10 @@
<html>
<head><title>IP.Board - Bulletin Board System</title></head>
<body>
<h1>403: IP.Board -&gt; 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>
@@ -0,0 +1,232 @@
<?php
/**
* @file plugin_attachments.php Shared media plugin: attachments
* $Copyright: (c) 2001 - 2011 Invision Power Services, Inc.$
* $License: This is NULLED!
* $Author: rtissier $
* @since 3/8/2011
* $LastChangedDate: 2011-03-16 19:10:59 -0400 (Wed, 16 Mar 2011) $
* @version v3.2.3
* $Revision: 8108 $
*/
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}
/**
*
* @class plugin_core_attachments
* @brief Provide ability to share attachments via editor
*/
class plugin_core_attachments
{
/**
* Registry Object Shortcuts
*
* @var $registry
* @var $DB
* @var $settings
* @var $request
* @var $lang
* @var $member
* @var $memberData
* @var $cache
* @var $caches
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**
* Attachments class
*
* @var object
*/
protected $attach;
/**
* Constructor
*
* @param object $registry Registry object
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
//-----------------------------------------
// Make shortcuts
//-----------------------------------------
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->lang = $this->registry->class_localization;
}
/**
* Return the tab title
*
* @return @e string
*/
public function getTab()
{
if( $this->memberData['member_id'] )
{
return $this->lang->words['sharedmedia_attachments'];
}
}
/**
* Return the HTML to display the tab
*
* @return @e string
*/
public function showTab( $string )
{
//-----------------------------------------
// Are we a member?
//-----------------------------------------
if( !$this->memberData['member_id'] )
{
return '';
}
//-----------------------------------------
// How many attachments do we have?
//-----------------------------------------
$mimes = $this->cache->getCache('attachtypes');
$st = intval($this->request['st']);
$each = 30;
$where = '';
if( $string )
{
$where = " AND attach_file LIKE '%{$string}%'";
}
$count = $this->DB->buildAndFetch( array( 'select' => 'COUNT(*) as total', 'from' => 'attachments', 'where' => "attach_member_id={$this->memberData['member_id']}" . $where ) );
$rows = array();
$pages = $this->registry->output->generatePagination( array( 'totalItems' => $count['total'],
'itemsPerPage' => $each,
'currentStartValue' => $st,
'seoTitle' => '',
'method' => 'nextPrevious',
'noDropdown' => true,
'ajaxLoad' => 'mymedia_content',
'baseUrl' => "app=core&amp;module=ajax&amp;section=media&amp;do=loadtab&amp;tabapp=core&amp;tabplugin=attachments&amp;search=" . urlencode($string) ) );
$this->DB->build( array( 'select' => '*', 'from' => 'attachments', 'where' => "attach_member_id={$this->memberData['member_id']}" . $where, 'order' => 'attach_date DESC', 'limit' => array( $st, $each ) ) );
$outer = $this->DB->execute();
while( $r = $this->DB->fetch($outer) )
{
if( $r['attach_thumb_location'] )
{
$image = $this->settings['upload_url'] . '/' . $r['attach_thumb_location'];
$dims = IPSLib::scaleImage( array(
'cur_width' => $r['attach_thumb_width'],
'cur_height' => $r['attach_thumb_height'],
'max_width' => 80,
'max_height' => 80,
) );
$width = $dims['img_width'];
$height = $dims['img_height'];
}
else
{
$image = $this->settings['public_dir'] . $mimes[ $r['attach_ext'] ]['atype_img'];
$width = 0;
$height = 0;
}
$rows[] = array(
'image' => $image,
'width' => $width,
'height' => $height,
'title' => IPSText::truncate( $r['attach_file'], 25 ),
'desc' => '',
'insert' => "core:attachments:" . $r['attach_id'],
);
}
return $this->registry->output->getTemplate('editors')->mediaGenericWrapper( $rows, $pages, 'core', 'attachments' );
}
/**
* Return the HTML output to display
*
* @param int $attachId Attachment ID to show
* @return @e string
*/
public function getOutput( $attachId=0 )
{
$attachId = intval($attachId);
if( !$attachId )
{
return '';
}
if( !is_object($this->attach) )
{
$classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir( 'core' ) . '/sources/classes/attach/class_attach.php', 'class_attach' );
$this->attach = new $classToLoad( $this->registry );
}
$attachment = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'attachments', 'where' => 'attach_id=' . $attachId ) );
$this->attach->type = $attachment['attach_rel_module'];
$this->attach->init();
$output = $this->attach->renderSingleAttachment( $attachment );
return $output;
}
/**
* Verify current user has permission to post this
*
* @param int $attachId Attachment ID to show
* @return @e bool
*/
public function checkPostPermission( $attachId )
{
$attachId = intval($attachId);
if( !$attachId )
{
return '';
}
if( $this->memberData['g_is_supmod'] OR $this->memberData['is_mod'] )
{
return '';
}
$attachment = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'attachments', 'where' => 'attach_id=' . $attachId ) );
if( $this->memberData['member_id'] AND $attachment['attach_member_id'] == $this->memberData['member_id'] )
{
return '';
}
return 'no_permission_shared';
}
}
@@ -3,18 +3,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Sphinx template file
* Last Updated: $Date: 2010-01-15 10:18:44 -0500 (Fri, 15 Jan 2010) $
* Last Updated: $Date: 2011-08-31 20:57:38 -0400 (Wed, 31 Aug 2011) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @version $Rev: 5713 $
* @subpackage Forums
* @link http://hatynka.in
* @version $Rev: 9438 $
* @since 3.0.0
*
*/
@@ -27,62 +27,64 @@ if ( ! defined( 'IN_IPB' ) )
$appSphinxTemplate = <<<EOF
############################### --- CORE --- ################################
############################### --- TAGS --- ################################
source core_search_main : ipb_source_config
source <!--SPHINX_CONF_PREFIX-->core_tags_search_main : <!--SPHINX_CONF_PREFIX-->ipb_source_config
{
# Set our forum PID counter
sql_query_pre = REPLACE INTO <!--SPHINX_DB_PREFIX-->cache_store VALUES( 'sphinx_core_counter', (SELECT max(id) FROM <!--SPHINX_DB_PREFIX-->faq), '', 0, UNIX_TIMESTAMP() )
sql_query_pre = REPLACE INTO <!--SPHINX_DB_PREFIX-->cache_store VALUES( 'sphinx_core_tags_counter', (SELECT max(tag_id) FROM <!--SPHINX_DB_PREFIX-->core_tags), 0, UNIX_TIMESTAMP(), 0 )
# Query posts for the main source
sql_query = SELECT f.*, f.id as search_id, \
REPLACE( pi.perm_view, '*', 0 ) as perm_view \
FROM <!--SPHINX_DB_PREFIX-->faq f \
LEFT JOIN <!--SPHINX_DB_PREFIX-->permission_index pi ON ( pi.perm_type_id=1 AND pi.perm_type='help' ) \
WHERE f.id <= ( SELECT cs_value FROM <!--SPHINX_DB_PREFIX-->cache_store WHERE cs_key='sphinx_core_counter' )
sql_query = SELECT t.tag_id, t.tag_id as search_id, t.tag_added, t.tag_member_id, t.tag_meta_id, t.tag_meta_parent_id, t.tag_text, t.tag_meta_app, t.tag_meta_area, \
p.tag_perm_text, p.tag_perm_visible \
FROM <!--SPHINX_DB_PREFIX-->core_tags t \
LEFT JOIN <!--SPHINX_DB_PREFIX-->core_tags_perms p ON ( t.tag_aai_lookup=p.tag_perm_aai_lookup ) \
WHERE t.tag_id <= ( SELECT cs_value FROM <!--SPHINX_DB_PREFIX-->cache_store WHERE cs_key='sphinx_core_tags_counter' )
# Fields
sql_attr_uint = search_id
sql_attr_uint = search_id
sql_attr_timestamp = tag_added
sql_attr_uint = tag_member_id
sql_attr_uint = tag_meta_id
sql_attr_uint = tag_meta_parent_id
sql_attr_uint = tag_perm_visible
sql_ranged_throttle = 0
}
source core_search_delta : core_search_main
source <!--SPHINX_CONF_PREFIX-->core_tags_search_delta : <!--SPHINX_CONF_PREFIX-->core_tags_search_main
{
# Override the base sql_query_pre
sql_query_pre =
# Query posts for the main source
sql_query = SELECT f.*, f.id as search_id, \
REPLACE( pi.perm_view, '*', 0 ) as perm_view \
FROM <!--SPHINX_DB_PREFIX-->faq f \
LEFT JOIN <!--SPHINX_DB_PREFIX-->permission_index pi ON ( pi.perm_type_id=1 AND pi.perm_type='help' ) \
WHERE f.id > ( SELECT cs_value FROM <!--SPHINX_DB_PREFIX-->cache_store WHERE cs_key='sphinx_core_counter' )
# Fields
sql_attr_uint = search_id
sql_ranged_throttle = 0
sql_query = SELECT t.tag_id, t.tag_id as search_id, t.tag_added, t.tag_member_id, t.tag_meta_id, t.tag_meta_parent_id, t.tag_text, t.tag_meta_app, t.tag_meta_area, \
p.tag_perm_text, p.tag_perm_visible \
FROM <!--SPHINX_DB_PREFIX-->core_tags t \
LEFT JOIN <!--SPHINX_DB_PREFIX-->core_tags_perms p ON ( t.tag_aai_lookup=p.tag_perm_aai_lookup ) \
WHERE t.tag_id > ( SELECT cs_value FROM <!--SPHINX_DB_PREFIX-->cache_store WHERE cs_key='sphinx_core_tags_counter' )
}
index core_search_main
index <!--SPHINX_CONF_PREFIX-->core_tags_search_main
{
source = core_search_main
path = <!--SPHINX_BASE_PATH-->/core_search_main
source = <!--SPHINX_CONF_PREFIX-->core_tags_search_main
path = <!--SPHINX_BASE_PATH-->/<!--SPHINX_CONF_PREFIX-->core_tags_search_main
docinfo = extern
mlock = 0
morphology = none
min_word_len = 2
charset_type = sbcs
html_strip = 0
charset_type = utf-8
html_strip = 0
#infix_fields = tag_text
#min_infix_len = 3
#enable_star = 1
}
index core_search_delta : core_search_main
index <!--SPHINX_CONF_PREFIX-->core_tags_search_delta : <!--SPHINX_CONF_PREFIX-->core_tags_search_main
{
source = core_search_delta
path = <!--SPHINX_BASE_PATH-->/core_search_delta
source = <!--SPHINX_CONF_PREFIX-->core_tags_search_delta
path = <!--SPHINX_BASE_PATH-->/<!--SPHINX_CONF_PREFIX-->core_tags_search_delta
}
EOF;
File diff suppressed because it is too large. Load diff