Version 2.3.6

This commit is contained in:
Neo committed 2025-12-19 00:26:08 -08:00
1 parent a3bb603c96
commit 19b38c7c74
764 files changed
+143731 -118164

No files matched your search

+121 -108
View File
@@ -2,27 +2,17 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board 2.2.2
| Invision Power Board
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:54 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE / OPEN SOURCE!
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2006-10-19 17:06:53 -0500 (Thu, 19 Oct 2006) $
| > $Revision: 661 $
| > $Date: 2007-12-17 18:07:20 -0500 (Mon, 17 Dec 2007) $
| > $Revision: 1149 $
| > $Author: bfarber $
+---------------------------------------------------------------------------
|
@@ -34,30 +24,26 @@
*/
/**
* API: Ñîçäàíèå ñîîáùåíèé è òåì
* API: Topics & Posts
*
* ÂÍÈÌÀÍÈÅ: Ìåòîäû äàííîãî API ÍÅ ÏÐÎÂÅÐßÞÒ ïðàâà ïîëüçîâàòåëåé
* Ïî ýòîìó ïðè íåïðàâèëüíîì èñïîëüçîâàíèè ìåòîäîâ âîçìîæíû îòâåòû
* ïîëüçîâàòåëÿ â çàêðûòûå òåìû, à òàê æå ñîçäàíèå íîâûõ òåì è
* ñîîáùåíèé â ôîðóìàõ, ê êîòîðûì ïîëüçîâàòåëü íåò èìååò äîñòóïà.
* Äëÿ èçáåæàíèÿ òàêèõ ýôôåêòîâ ÎÁßÇÀÒÅËÜÍÎ ïðîâåðÿéòå ïðàâà
* ïîëüçîâàòåëÿ ïðåæäå ÷åì âûçûâàòü ìåòîä.
*
* ÏÐÈÌÅÐ ÈÑÏÎËÜÇÎÂÀÍÈß
* IMPORTANT: This API DOESN'T check permissions, etc
* So, it's entirely possible to add replies to closed topics
* and to post new topics where the user doesn't normally have
* permission.
* EXAMPLE USAGE
* <code>
* $api = new api_topics_and_posts();
* $api->ipsclass =& $this->ipsclass;
* // ÄÎÁÀÂËÅÍÈÅ ÎÒÂÅÒÀ
* // ADD POST REPLY
* $api->set_author_by_name('matt');
* $api->set_post_content("<b>Hello World!</b> :D");
* $api->set_topic_id( 100 );
* # Ïî-óìîë÷àíèþ ôëàã show_signature âñåãäà 1, çäåñü äîáàâëåíî äëÿ ïîëíîòû ôîðìû
* # Default for show_signature is 1, added here for completeness
* $api->post_settings['show_signature'] = 1;
* # Îïöèîíàëüíî âû ìîæåòå îòêëþ÷èòü ïåðåñ÷åò òåì, ñîîáùåíèé è ñòàòèñòèêè
* # äîñòàòî÷íî ðàññêîìåíòèðîâàòü ñòðî÷êó íèæå
* # Optionally turn off rebuild to not rebuild topic, forum and stats
* # $api->delay_rebuild = 1;
* $api->create_new_reply();
* // ÑÎÇÄÀÍÈÅ ÍÎÂÎÉ ÒÅÌÛ
* // ADD NEW TOPIC
* $api->set_author_by_name('matt');
* $api->set_post_content("<b>Hello World!</b> :D");
* $api->set_forum_id( 10 );
@@ -88,9 +74,9 @@ if ( ! class_exists( 'api_core' ) )
}
/**
* API: Ñîçäàíèå ñîîáùåíèé è òåì
* API: Topics & Posts
*
* Êëàññ ïðåäîñòàâëÿåò âñå ìåòîäû API äëÿ ñîçäàíèÿ òåì è ñîîáùåíèé.
* This class deals with all showing, creating and editing topics and posts
*
* @package InvisionPowerBoard
* @subpackage APIs
@@ -101,101 +87,101 @@ if ( ! class_exists( 'api_core' ) )
class api_topics_and_posts extends api_core
{
/**
* Èíôîðìàöèÿ îá àâòîðå äëÿ ÁÄ
* Author DB row
*
* @var array
*/
var $author = array();
/**
* Ñîäåðæèìîå ñîîáùåíèÿ
* Post content
*
* @var string
*/
var $post_content = "";
/**
* ID òåìû
* Topic ID
*
* @var integer
*/
var $topic_id = "";
/**
* ID ôîðóìà
* Set forum ID
*
* @var integer
*/
var $forum_id = "";
/**
* Èíôîðìàöèÿ î òåìå äëÿ ÁÄ
* Topic DB row
*
* @var array
*/
var $topic = array();
/**
* Èíôîðìàöèÿ î ôîðóìå
* Forum DB row
*
* @var array
*/
var $forum = array();
/**
* Îáúåêò ðåäàêòîðà
* Editor class
*
* @var object
*/
var $editor;
/**
* Îáúåêò îáðàáîò÷èêà îòïðàâêè ñîîáùåíèé/òåì
* Post class
*
* @var object
*/
var $post;
/**
* Îáúåêò ìåéëåðà ñèñòåìû
* Email class
*
* @var object
*/
var $email;
/**
* Îáúåêò ïàðñåðà ñîîáùåíèé
* Parser class
*
* @var object
*/
var $parser;
/**
* Îáúåêò ìîäåðàòîðñêèõ ôóíêöèé
* Func Mod
*
* @var object
*/
var $func_mod;
/**
* Ôëàã çàãðóæåííîñòè êëàññîâ
* Flag classes loaded?
*
* @var integer boolean
*/
var $classes_loaded = 0;
/**
* Ôëàã îòëîæåííîãî îáíîâëåíèÿ êåøà
* Delay rebuild flag
*
* Åñëè ôëàã óñòàíîâëåí â 1, âàì áóäåò íåîáõîäèìî
* ñàìèì îáíîâèòü âñå ñ÷åò÷èêè òåì, ôîðóìîâ è ñòàòèñòèêè.
* If set to 1, you will need to manually
* rebuild topic info and forum info.
*
* @var integer boolean
*/
var $delay_rebuild = 0;
/**
* Íàñòðîéêè ñîîáùåíèÿ
* Post settings
*
* @var array show_signature, show_emoticons, post_icon_id, is_invisible, post_date, ip_address, parse_html
*/
@@ -209,7 +195,7 @@ class api_topics_and_posts extends api_core
'parse_html' => 0 );
/**
* Íàñòðîéêè òåìû
* Topic settings
*
* @var array topic_date, post_icon_id
*/
@@ -217,45 +203,45 @@ class api_topics_and_posts extends api_core
'post_icon_id' => 0 );
/**
* Íàçâàíèå òåìû
* Topic title
*
* @var string
*/
var $topic_title;
/**
* Îïèñàíèå òåìû
* Topic description
*
* @var string
*/
var $topic_desc;
/**
* Ñòàòóñ òåìû (îòêðûòà/çàêðûòà)
* Topic state
*
* @var string (open or closed)
*/
var $topic_state = 'open';
/**
* Âàæíîñòü òåìû (ïðèêðåïëåíà/íåò)
* Topic pinned
*
* @var integer
*/
var $topic_pinned = 0;
/**
* Ñêðûòîñòü òåìû (ñêðûòà/âèäèìà)
* Topic invisible
*
* @var integer
*/
var $topic_invisible = 0;
/*-------------------------------------------------------------------------*/
// Ñîçäàíèå íîâîé òåìû
// Create new topic
/*-------------------------------------------------------------------------*/
/**
* Ñîõðàíÿåò íîâóþ òåìó è ñîîáùåíèå
* Saves the post
*
* @return void
*/
@@ -335,10 +321,10 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Ñîçäàíèå íîâîãî îòâåòà â òåìó
// Create new topic
/*-------------------------------------------------------------------------*/
/**
* Ñîçäàåò íîâóþ òåìó
* Create new topic
*
* @return void
*/
@@ -431,12 +417,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà íàçâàíèÿ òåìû
// Set topic: title
/*-------------------------------------------------------------------------*/
/**
* Óñòàíàâëèâàåò íàçâàíèå äëÿ ñîçäàâàåìîé òåìû
* Set topic title
*
* @param string Íàçâàíèå òåìû
* @param string Incoming
* @return void
*/
function set_topic_title( $data )
@@ -445,12 +431,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà îïèñàíèÿ òåìû
// Set topic: desc
/*-------------------------------------------------------------------------*/
/**
* Óñòàíàâëèâàåò îïèñàíèå äëÿ ñîçäàâàåìîé òåìû
* Set topic description
*
* @param string Îïèñàíèå òåìû
* @param string Incoming
* @return void
*/
function set_topic_description( $data )
@@ -459,12 +445,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà ñòàòóñà òåìû
// Set topic: state
/*-------------------------------------------------------------------------*/
/**
* Óñòàíàâëèâàåò ñòàòóñà äëÿ ñîçäàâàåìîé òåìû
* Set topic state
*
* @param string Ñòàòóñ (open/closed)
* @param string Incoming
* @return void
*/
function set_topic_state( $data )
@@ -473,12 +459,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà âàæíîñòè òåìû
// Set topic: pinned
/*-------------------------------------------------------------------------*/
/**
* Óñòàíàâëèâàåò âàæíîñòü äëÿ ñîçäàâàåìîé òåìû
* Set topic pinned
*
* @param string Ïðèêðåïëåíà / íå ïðèêðåïëåíà (1 / 0)
* @param string Incoming
* @return void
*/
function set_topic_pinned( $data )
@@ -487,12 +473,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà âèäèìîñòè òåìû
// Set topic: invisible
/*-------------------------------------------------------------------------*/
/**
* Óñòàíàâëèâàåò âèäèìîñòü äëÿ ñîçäàâàåìîé òåìû
* Set topic pinned
*
* @param string Òåìà îïóáëèêîâàíà / íå îïóáëèêîâàíà (0 / 1)
* @param string Incoming
* @return void
*/
function set_topic_invisible( $data )
@@ -501,13 +487,13 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà ñîäåðæèìîãî ñîîáùåíèÿ
// Set post content
/*-------------------------------------------------------------------------*/
/**
* Óñòàíàâëèâàåò ñîäåðæèìîå ñîîáùåíèÿ äëÿ ñîçäàâàåìîé òåìû/ñîîáùåíèÿ
* Set the post content
*
* @param string ñîäåðæèìîå ñîîáùåíèÿ
* @return boolean èíèöèàëèçàöèÿ $this->post_content
* @param string post content
* @return boolean populates $this->post_content
*/
function set_post_content( $post )
{
@@ -532,20 +518,49 @@ class api_topics_and_posts extends api_core
$this->parser->parse_html = $this->post_settings['parse_html'];
$this->parser->parse_bbcode = 1;
$this->post_content = $this->parser->pre_db_parse( $this->editor->_rte_html_to_bbcode( $post ) );
$_POST['my_dummy_post'] =& $post;
$this->post_content = $this->parser->pre_display_parse( $this->parser->pre_db_parse( $this->editor->process_after_form( 'my_dummy_post' ) ) );
unset($_POST['my_dummy_post']);
return TRUE;
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà àâòîðà ïî èìåíè ïîëüçîâàòåëÿ
// Set author by email
/*-------------------------------------------------------------------------*/
/**
* Ïîëó÷àåò èíôîðìàöèþ î ïîëüçîâàòåëå è óñòàíàâëèâàåò àâòîðà
* òåìû/ñîîáùåíèÿ ïî èìåíè ïîëüçîâàòåëÿ
* Get a member from the DB by email address
*
* @param string èìÿ ïîëüçîâàòåëÿ
* @return boolean èíèöèàëèçàöèÿ $this->author
* @param string email address
* @return boolean populates $this->author
*/
function set_author_by_email( $email )
{
$this->author = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*',
'from' => 'members',
'where' => "email = '".$this->ipsclass->DB->add_slashes(strtolower($email))."'",
'limit' => array( 0, 1 ) ) );
if ( ! $this->author['id'] )
{
$this->api_error[] = 'no_user_found';
$this->author = array();
return FALSE;
}
return TRUE;
}
/*-------------------------------------------------------------------------*/
// Set author by user_name
/*-------------------------------------------------------------------------*/
/**
* Get a member from the DB by username
*
* @param string user name
* @return boolean populates $this->author
*/
function set_author_by_name( $user_name )
{
@@ -565,14 +580,13 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà àâòîðà ïî id ïîëüçîâàòåëÿ
// Set author by id
/*-------------------------------------------------------------------------*/
/**
* Ïîëó÷àåò èíôîðìàöèþ î ïîëüçîâàòåëå è óñòàíàâëèâàåò àâòîðà
* òåìû/ñîîáùåíèÿ ïî ID ïîëüçîâàòåëÿ
/**
* Get a member from the DB by ID
*
* @param integer ID ïîëüçîâàòåëÿ
* @return boolean èíèöèàëèçàöèÿ $this->author
* @param integer User ID
* @return boolean populates $this->author
*/
function set_author_by_id( $id )
{
@@ -592,14 +606,13 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà àâòîðà ïî îòîáðàæàåìîìó èìåíè ïîëüçîâàòåëÿ
// Set author by display_name
/*-------------------------------------------------------------------------*/
/**
* Ïîëó÷àåò èíôîðìàöèþ î ïîëüçîâàòåëå è óñòàíàâëèâàåò àâòîðà
* òåìû/ñîîáùåíèÿ ïî îòîáðàæàåìîìó èìåíè ïîëüçîâàòåëÿ
* Get a member from the DB by display name
*
* @param string îòîáðàæàåìîå èìÿ ïîëüçîâàòåëÿ
* @return boolean èíèöèàëèçàöèÿ $this->author
* @param string member display name
* @return boolean populates $this->author
*/
function set_author_by_display_name( $display_name )
{
@@ -618,14 +631,13 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà òåìû ïî id
// Set topic by id
/*-------------------------------------------------------------------------*/
/**
* Ïîëó÷àåò èíôîðìàöèþ î òåìå èç áàçû è óñòàíàâëèâàåò
* òåêóùóþ òåìó ïî ID òåìû
* Get a topic from the DB by ID and set the current topic id
*
* @param integer ID òåìû
* @return boolean èíèöèàëèçàöèÿ $this->author
* @param integer Topic
* @return boolean populates $this->author
*/
function set_topic_id( $id )
{
@@ -657,14 +669,13 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Óñòàíîâêà ôîðóìà ïî id
// Set author by id
/*-------------------------------------------------------------------------*/
/**
* Ïîëó÷àåò èíôîðìàöèþ î ôîðóìå è óñòàíàâëèâàåò
* òåêóùèé ôîðóì ïî ID ôîðóìà
* Get DB info and set forum ID
*
* @param integer ID ôîðóìà
* @return boolean èíèöèàëèçàöèÿ $this->author
* @param integer Topic
* @return boolean populates $this->author
*/
function set_forum_id( $id )
{
@@ -699,12 +710,11 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Îáíîâëåíèå ñ÷åò÷èêîâ ôîðóìà
// Rebuild forum stats
/*-------------------------------------------------------------------------*/
/**
* Îáíîâëÿåò êåøè ñ÷åò÷èêîâ òåì è ñîîáùåíèé ôîðóìà ñ óêàçàííûì ID
* Rebuilds the forum stats
*
* @param integer ID ôîðóìà
* @return void
*/
function tap_rebuild_forum( $forum_id )
@@ -723,10 +733,10 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Îáíîâëåíèå ñòàòèñòèêè ôîðóìà
// Rebuild stats
/*-------------------------------------------------------------------------*/
/**
* Îáíîâëÿåò êåø ãëîáàëüíîé ñòàòèñòèêè ôîðóìà
* Rebuilds the global stats
*
* @return void
*/
@@ -746,10 +756,10 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Ïîäêëþ÷åíèå êëàññîâ ñèñòåìû
// Add language strings to IPB language system
/*-------------------------------------------------------------------------*/
/**
* Ïîäêëþ÷àåò íåîáõîäèìûå êëàññû äëÿ ðàáîòû ñèñòåìû îòïðàâêè ñîîáùåíèé/òåì
* Loads required classes...
*
* @return void;
*/
@@ -792,6 +802,7 @@ class api_topics_and_posts extends api_core
$this->post = new class_post();
$this->post->ipsclass =& $this->ipsclass;
$this->post->email =& $this->email;
$this->post->forum =& $this->forum;
//^^ Required for forum tracker
}
@@ -801,6 +812,8 @@ class api_topics_and_posts extends api_core
if ( ! is_object( $this->parser ) )
{
$this->ipsclass->init_load_cache( array( 'emoticons', 'bbcode' ) );
require_once( ROOT_PATH."sources/handlers/han_parse_bbcode.php" );
$this->parser = new parse_bbcode();
$this->parser->ipsclass =& $this->ipsclass;