12 'PROPERTY_TYPE' =>
'S',
13 'USER_TYPE' =>
'TopicID',
14 'DESCRIPTION' =>
GetMessage(
'IBLOCK_PROP_TOPICID_DESC'),
15 'GetPropertyFieldHtml' => [__CLASS__,
'GetPropertyFieldHtml'],
16 'GetAdminListViewHTML' => [__CLASS__,
'GetAdminListViewHTML'],
18 'ConvertToDB' => [__CLASS__,
'ConvertToDB'],
19 'ConvertFromDB' => [__CLASS__,
'ConvertFromDB'],
20 'GetSettingsHTML' => [__CLASS__,
'GetSettingsHTML'],
24 public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
26 $arPropertyFields = [
'HIDE' => [
'SEARCHABLE',
'WITH_DESCRIPTION',
'ROW_COUNT',
'COL_COUNT']];
32 if (CModule::IncludeModule(
'forum'))
34 $topicId = intval($value[
'VALUE']);
38 $value[
'VALUE'] = $topicId;
40 if ($topic =
Forum\TopicTable::getById($topicId)->fetch())
42 $topicTitle = $topic[
'TITLE'];
45 return self::getHTMLToFindTopic(
46 $strHTMLControlName[
'VALUE'],
54 private static function getHTMLToFindTopic(
62 $topicId = intval($topicId);
65 $prefix =
"findForumTopic{$number}";
76<input type=
"text" name=
"{$inputName}" value=
"{$topicId}" size=
"3" id=
"{$prefix}Value">
77<iframe
style=
"width:0; height:0; border: 0" src=
"javascript:void(0)" name=
"{$prefix}Frame" id=
"{$prefix}Frame"></iframe>
78<input type=
"button" id=
"{$prefix}Button" value=
"...">
79<span
id=
"{$prefix}Title"></span>
82 BX.bind(BX(
"{$prefix}Button"),
'click',
function () {
84 '/bitrix/admin/forum_topics_search.php?' + BX.util.buildQueryString({
85 lang: BX.message(
'LANGUAGE_ID'),
86 nodeId:
"{$prefix}Value"
89 'scrollbars=yes,resizable=yes,width=760,height=500,top='+Math.floor((screen.height - 560)/2-14)+
',left='+Math.floor((screen.width - 760)/2-5)
93 var previousValue = 0;
94 var changeManualy =
function() {
95 var valueNode = BX(
"{$prefix}Value");
96 var value = parseInt(valueNode.value);
97 if (value !== previousValue)
101 previousValue = value;
102 changeTitle(
"<i>{$message['wait']}</i>");
103 BX.ajax.runAction(
'bitrix:forum.topic.head',
104 {data: {topicId: value}
105 }).then(
function(result) {
106 if (result.status ===
"success")
108 return changeTitle(result.data);
110 throw new Error(result.errors[0].message);
111 }).
catch(
function(error) {
112 changeTitle(
'<b>' + error.message +
'</b>');
121 BX.bind(BX(
"{$prefix}Value"),
"change", changeManualy);
122 function changeTitle(data) {
123 var titleNode = BX(
"{$prefix}Title");
124 if (data ===
null || ((data[
'ID'] > 0 && data[
'TITLE'].length <= 0)))
126 titleNode.innerHTML =
"{$message["notFound
"]}";
128 else if (BX.type.isString(data))
130 titleNode.innerHTML = data;
132 else if (data[
'ID'] > 0 && data[
'TITLE'].length > 0)
134 titleNode.innerHTML = [
135 '[<a class="tablebodylink" href="/bitrix/admin/forum_topics.php?lang=', BX.message(
'LANGUAGE_ID'),
'">',
136 BX.util.htmlspecialchars(data[
'ID']),
138 BX.util.htmlspecialchars(data[
'TITLE'])
143 titleNode.innerHTML =
'';
146 changeTitle({ID: {$topicId}, TITLE:
"{$topicTitle}"});
155<input type=
"text" value=
"{$topicId}" size=
"3">
163 static $cache =
array();
164 if (CModule::IncludeModule(
'forum'))
166 $value[
'VALUE'] = intval($value[
'VALUE']);
167 if ($value[
'VALUE'] <= 0) {
168 $value[
'VALUE'] =
'';
171 if (!array_key_exists($value[
'VALUE'], $cache))
173 $arTopic = $cache[$value[
'VALUE']];
174 $res = (!empty($arTopic) ?
'['.$value[
'VALUE'].
'] ('.
htmlspecialcharsbx($arTopic[
'TITLE']).
')' : $value[
'VALUE']);
183 if ($value[
'VALUE'] <>
'')
185 $value[
'VALUE'] = intval($value[
'VALUE']);
192 if ($value[
'VALUE'] <>
'')
194 $value[
'VALUE'] = intval($value[
'VALUE']);
static GetByID($ID, $arAddParams=array())
static GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
static GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
static GetUserTypeDescription()
static GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
static ConvertFromDB($arProperty, $value)
static ConvertToDB($arProperty, $value)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
GetMessageJS($name, $aReplace=false)