Version 2.2.2

This commit is contained in:
Neo committed 2025-12-19 00:24:35 -08:00
1 parent 22f1b963ee
commit a3bb603c96
858 files changed
+479463 -188140

No files matched your search

+115 -94
View File
@@ -2,18 +2,28 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| 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
+---------------------------------------------------------------------------
| > $Date: 2006-09-22 11:28:54 +0100 (Fri, 22 Sep 2006) $
| > $Revision: 567 $
| > $Author: matt $
| 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 $
| > $Author: bfarber $
+---------------------------------------------------------------------------
|
| > API: Topics and Posts
@@ -24,26 +34,30 @@
*/
/**
* 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
* ÂÍÈÌÀÍÈÅ: Ìåòîäû äàííîãî API ÍÅ ÏÐÎÂÅÐßÞÒ ïðàâà ïîëüçîâàòåëåé
* Ïî ýòîìó ïðè íåïðàâèëüíîì èñïîëüçîâàíèè ìåòîäîâ âîçìîæíû îòâåòû
* ïîëüçîâàòåëÿ â çàêðûòûå òåìû, à òàê æå ñîçäàíèå íîâûõ òåì è
* ñîîáùåíèé â ôîðóìàõ, ê êîòîðûì ïîëüçîâàòåëü íåò èìååò äîñòóïà.
* Äëÿ èçáåæàíèÿ òàêèõ ýôôåêòîâ ÎÁßÇÀÒÅËÜÍÎ ïðîâåðÿéòå ïðàâà
* ïîëüçîâàòåëÿ ïðåæäå ÷åì âûçûâàòü ìåòîä.
*
* ÏÐÈÌÅÐ ÈÑÏÎËÜÇÎÂÀÍÈß
* <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 );
* # Default for show_signature is 1, added here for completeness
* # Ïî-óìîë÷àíèþ ôëàã show_signature âñåãäà 1, çäåñü äîáàâëåíî äëÿ ïîëíîòû ôîðìû
* $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 );
@@ -74,9 +88,9 @@ if ( ! class_exists( 'api_core' ) )
}
/**
* API: Topics & Posts
* API: Ñîçäàíèå ñîîáùåíèé è òåì
*
* This class deals with all showing, creating and editing topics and posts
* Êëàññ ïðåäîñòàâëÿåò âñå ìåòîäû API äëÿ ñîçäàíèÿ òåì è ñîîáùåíèé.
*
* @package InvisionPowerBoard
* @subpackage APIs
@@ -87,101 +101,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 = "";
/**
* Topic ID
* ID òåìû
*
* @var integer
*/
var $topic_id = "";
/**
* Set forum ID
* 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
* Ôëàã îòëîæåííîãî îáíîâëåíèÿ êåøà
*
* If set to 1, you will need to manually
* rebuild topic info and forum info.
* Åñëè ôëàã óñòàíîâëåí â 1, âàì áóäåò íåîáõîäèìî
* ñàìèì îáíîâèòü âñå ñ÷åò÷èêè òåì, ôîðóìîâ è ñòàòèñòèêè.
*
* @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
*/
@@ -195,7 +209,7 @@ class api_topics_and_posts extends api_core
'parse_html' => 0 );
/**
* Topic settings
* Íàñòðîéêè òåìû
*
* @var array topic_date, post_icon_id
*/
@@ -203,45 +217,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
*/
@@ -321,10 +335,10 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Create new topic
// Ñîçäàíèå íîâîãî îòâåòà â òåìó
/*-------------------------------------------------------------------------*/
/**
* Create new topic
* Ñîçäàåò íîâóþ òåìó
*
* @return void
*/
@@ -417,12 +431,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set topic: title
// Óñòàíîâêà íàçâàíèÿ òåìû
/*-------------------------------------------------------------------------*/
/**
* Set topic title
* Óñòàíàâëèâàåò íàçâàíèå äëÿ ñîçäàâàåìîé òåìû
*
* @param string Incoming
* @param string Íàçâàíèå òåìû
* @return void
*/
function set_topic_title( $data )
@@ -431,12 +445,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set topic: desc
// Óñòàíîâêà îïèñàíèÿ òåìû
/*-------------------------------------------------------------------------*/
/**
* Set topic description
* Óñòàíàâëèâàåò îïèñàíèå äëÿ ñîçäàâàåìîé òåìû
*
* @param string Incoming
* @param string Îïèñàíèå òåìû
* @return void
*/
function set_topic_description( $data )
@@ -445,12 +459,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set topic: state
// Óñòàíîâêà ñòàòóñà òåìû
/*-------------------------------------------------------------------------*/
/**
* Set topic state
* Óñòàíàâëèâàåò ñòàòóñà äëÿ ñîçäàâàåìîé òåìû
*
* @param string Incoming
* @param string Ñòàòóñ (open/closed)
* @return void
*/
function set_topic_state( $data )
@@ -459,12 +473,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set topic: pinned
// Óñòàíîâêà âàæíîñòè òåìû
/*-------------------------------------------------------------------------*/
/**
* Set topic pinned
* Óñòàíàâëèâàåò âàæíîñòü äëÿ ñîçäàâàåìîé òåìû
*
* @param string Incoming
* @param string Ïðèêðåïëåíà / íå ïðèêðåïëåíà (1 / 0)
* @return void
*/
function set_topic_pinned( $data )
@@ -473,12 +487,12 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set topic: invisible
// Óñòàíîâêà âèäèìîñòè òåìû
/*-------------------------------------------------------------------------*/
/**
* Set topic pinned
* Óñòàíàâëèâàåò âèäèìîñòü äëÿ ñîçäàâàåìîé òåìû
*
* @param string Incoming
* @param string Òåìà îïóáëèêîâàíà / íå îïóáëèêîâàíà (0 / 1)
* @return void
*/
function set_topic_invisible( $data )
@@ -487,13 +501,13 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set post content
// Óñòàíîâêà ñîäåðæèìîãî ñîîáùåíèÿ
/*-------------------------------------------------------------------------*/
/**
* Set the post content
* Óñòàíàâëèâàåò ñîäåðæèìîå ñîîáùåíèÿ äëÿ ñîçäàâàåìîé òåìû/ñîîáùåíèÿ
*
* @param string post content
* @return boolean populates $this->post_content
* @param string ñîäåðæèìîå ñîîáùåíèÿ
* @return boolean èíèöèàëèçàöèÿ $this->post_content
*/
function set_post_content( $post )
{
@@ -524,13 +538,14 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set author by user_name
// Óñòàíîâêà àâòîðà ïî èìåíè ïîëüçîâàòåëÿ
/*-------------------------------------------------------------------------*/
/**
* Get a member from the DB by username
* Ïîëó÷àåò èíôîðìàöèþ î ïîëüçîâàòåëå è óñòàíàâëèâàåò àâòîðà
* òåìû/ñîîáùåíèÿ ïî èìåíè ïîëüçîâàòåëÿ
*
* @param string user name
* @return boolean populates $this->author
* @param string èìÿ ïîëüçîâàòåëÿ
* @return boolean èíèöèàëèçàöèÿ $this->author
*/
function set_author_by_name( $user_name )
{
@@ -550,13 +565,14 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set author by id
// Óñòàíîâêà àâòîðà ïî id ïîëüçîâàòåëÿ
/*-------------------------------------------------------------------------*/
/**
* Get a member from the DB by ID
/**
* Ïîëó÷àåò èíôîðìàöèþ î ïîëüçîâàòåëå è óñòàíàâëèâàåò àâòîðà
* òåìû/ñîîáùåíèÿ ïî ID ïîëüçîâàòåëÿ
*
* @param integer User ID
* @return boolean populates $this->author
* @param integer ID ïîëüçîâàòåëÿ
* @return boolean èíèöèàëèçàöèÿ $this->author
*/
function set_author_by_id( $id )
{
@@ -576,13 +592,14 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set author by display_name
// Óñòàíîâêà àâòîðà ïî îòîáðàæàåìîìó èìåíè ïîëüçîâàòåëÿ
/*-------------------------------------------------------------------------*/
/**
* Get a member from the DB by display name
* Ïîëó÷àåò èíôîðìàöèþ î ïîëüçîâàòåëå è óñòàíàâëèâàåò àâòîðà
* òåìû/ñîîáùåíèÿ ïî îòîáðàæàåìîìó èìåíè ïîëüçîâàòåëÿ
*
* @param string member display name
* @return boolean populates $this->author
* @param string îòîáðàæàåìîå èìÿ ïîëüçîâàòåëÿ
* @return boolean èíèöèàëèçàöèÿ $this->author
*/
function set_author_by_display_name( $display_name )
{
@@ -601,13 +618,14 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set topic by id
// Óñòàíîâêà òåìû ïî id
/*-------------------------------------------------------------------------*/
/**
* Get a topic from the DB by ID and set the current topic id
* Ïîëó÷àåò èíôîðìàöèþ î òåìå èç áàçû è óñòàíàâëèâàåò
* òåêóùóþ òåìó ïî ID òåìû
*
* @param integer Topic
* @return boolean populates $this->author
* @param integer ID òåìû
* @return boolean èíèöèàëèçàöèÿ $this->author
*/
function set_topic_id( $id )
{
@@ -639,13 +657,14 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Set author by id
// Óñòàíîâêà ôîðóìà ïî id
/*-------------------------------------------------------------------------*/
/**
* Get DB info and set forum ID
* Ïîëó÷àåò èíôîðìàöèþ î ôîðóìå è óñòàíàâëèâàåò
* òåêóùèé ôîðóì ïî ID ôîðóìà
*
* @param integer Topic
* @return boolean populates $this->author
* @param integer ID ôîðóìà
* @return boolean èíèöèàëèçàöèÿ $this->author
*/
function set_forum_id( $id )
{
@@ -667,23 +686,25 @@ class api_topics_and_posts extends api_core
return FALSE;
}
$perms = unserialize( $this->forum['permission_array'] );
$perms = unserialize( stripslashes( $this->forum['permission_array'] ) );
$this->forum['read_perms'] = $perms['read_perms'];
$this->forum['reply_perms'] = $perms['reply_perms'];
$this->forum['start_perms'] = $perms['start_perms'];
$this->forum['upload_perms'] = $perms['upload_perms'];
$this->forum['show_perms'] = $perms['show_perms'];
$this->forum['read_perms'] = $perms['read_perms'];
$this->forum['reply_perms'] = $perms['reply_perms'];
$this->forum['start_perms'] = $perms['start_perms'];
$this->forum['upload_perms'] = $perms['upload_perms'];
$this->forum['download_perms'] = $perms['download_perms'];
$this->forum['show_perms'] = $perms['show_perms'];
return TRUE;
}
/*-------------------------------------------------------------------------*/
// Rebuild forum stats
// Îáíîâëåíèå ñ÷åò÷èêîâ ôîðóìà
/*-------------------------------------------------------------------------*/
/**
* Rebuilds the forum stats
* Îáíîâëÿåò êåøè ñ÷åò÷èêîâ òåì è ñîîáùåíèé ôîðóìà ñ óêàçàííûì ID
*
* @param integer ID ôîðóìà
* @return void
*/
function tap_rebuild_forum( $forum_id )
@@ -702,10 +723,10 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Rebuild stats
// Îáíîâëåíèå ñòàòèñòèêè ôîðóìà
/*-------------------------------------------------------------------------*/
/**
* Rebuilds the global stats
* Îáíîâëÿåò êåø ãëîáàëüíîé ñòàòèñòèêè ôîðóìà
*
* @return void
*/
@@ -725,10 +746,10 @@ class api_topics_and_posts extends api_core
}
/*-------------------------------------------------------------------------*/
// Add language strings to IPB language system
// Ïîäêëþ÷åíèå êëàññîâ ñèñòåìû
/*-------------------------------------------------------------------------*/
/**
* Loads required classes...
* Ïîäêëþ÷àåò íåîáõîäèìûå êëàññû äëÿ ðàáîòû ñèñòåìû îòïðàâêè ñîîáùåíèé/òåì
*
* @return void;
*/