Version 2.2.2
This commit is contained in:
1 parent
22f1b963ee
commit
a3bb603c96
858 files changed
+479463
-188140
No files matched your search
@@ -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;
|
||||
*/
|
||||
|
||||
Reference in new issue
Block a user