14 $userGroups =
$USER->GetUserGroupArray();
15 $key = implode(
'-', $userGroups);
20 if (!is_array($arOp[
$key] ??
null))
24 $bDefaultTask =
false;
27 foreach (
$res as $group_id => $task_id)
28 if (in_array($group_id, $userGroups))
36 $defaultAccess = COption::GetOptionString(
'fileman',
'stickers_default_access',
false);
37 if ($defaultAccess !==
false)
50 return in_array($operation, $arOp);
58 $strSql =
'SELECT * FROM b_sticker_group_task SGT';
71 $DB->Query(
"DELETE FROM b_sticker_group_task WHERE 1=1");
73 foreach($arTaskPerm as $group_id => $task_id)
75 $arInsert =
$DB->PrepareInsert(
"b_sticker_group_task",
array(
"GROUP_ID" => $group_id,
"TASK_ID" => $task_id));
76 $strSql =
"INSERT INTO b_sticker_group_task(".$arInsert[0].
") VALUES(".$arInsert[1].
")";
84 $res =
CTask::GetList(Array(
'LETTER' =>
'asc'), Array(
'MODULE_ID' =>
'fileman',
'BINDING' =>
'stickers'));
103 $bDBResult = isset(
$Params[
'bDBResult'])?
$Params[
'bDBResult']:
false;
104 $Params[
'arFilter'][
'PAGE_URL'] = str_replace(
' ',
'%20',
$Params[
'arFilter'][
'PAGE_URL'] ??
'');
106 $arOrder = isset(
$Params[
'arOrder']) ?
$Params[
'arOrder'] : Array(
'ID' =>
'asc');
109 $cachePath =
"stickers/";
110 $cacheTime = 36000000;
114 "ID" => Array(
"FIELD_NAME" =>
"ST.ID",
"FIELD_TYPE" =>
"int"),
115 "SITE_ID" => Array(
"FIELD_NAME" =>
"ST.SITE_ID",
"FIELD_TYPE" =>
"string"),
116 "PAGE_URL" => Array(
"FIELD_NAME" =>
"ST.PAGE_URL",
"FIELD_TYPE" =>
"string"),
117 "PAGE_TITLE" => Array(
"FIELD_NAME" =>
"ST.PAGE_TITLE",
"FIELD_TYPE" =>
"string"),
118 "DATE_CREATE" => Array(
"FIELD_NAME" =>
"ST.DATE_CREATE",
"FIELD_TYPE" =>
"date"),
119 "DATE_UPDATE" => Array(
"FIELD_NAME" =>
"ST.DATE_UPDATE",
"FIELD_TYPE" =>
"date"),
120 "MODIFIED_BY" => Array(
"FIELD_NAME" =>
"ST.MODIFIED_BY",
"FIELD_TYPE" =>
"int"),
121 "CREATED_BY" => Array(
"FIELD_NAME" =>
"ST.CREATED_BY",
"FIELD_TYPE" =>
"int"),
122 "PERSONAL" => Array(
"FIELD_NAME" =>
"ST.PERSONAL",
"FIELD_TYPE" =>
"string"),
123 "CONTENT" => Array(
"FIELD_NAME" =>
"ST.CONTENT ",
"FIELD_TYPE" =>
"string"),
124 "POS_TOP" => Array(
"FIELD_NAME" =>
"ST.POS_TOP",
"FIELD_TYPE" =>
"int"),
125 "POS_LEFT" => Array(
"FIELD_NAME" =>
"ST.POS_LEFT",
"FIELD_TYPE" =>
"int"),
126 "WIDTH" => Array(
"FIELD_NAME" =>
"ST.WIDTH",
"FIELD_TYPE" =>
"int"),
127 "HEIGHT" => Array(
"FIELD_NAME" =>
"ST.HEIGHT",
"FIELD_TYPE" =>
"int"),
128 "COLOR" => Array(
"FIELD_NAME" =>
"ST.COLOR",
"FIELD_TYPE" =>
"int"),
130 "COLLAPSED" => Array(
"FIELD_NAME" =>
"ST.COLLAPSED ",
"FIELD_TYPE" =>
"string"),
131 "CLOSED" => Array(
"FIELD_NAME" =>
"ST.CLOSED ",
"FIELD_TYPE" =>
"string"),
132 "DELETED" => Array(
"FIELD_NAME" =>
"ST.DELETED ",
"FIELD_TYPE" =>
"string"),
134 "MARKER_TOP" => Array(
"FIELD_NAME" =>
"ST.MARKER_TOP",
"FIELD_TYPE" =>
"int"),
135 "MARKER_LEFT" => Array(
"FIELD_NAME" =>
"ST.MARKER_LEFT",
"FIELD_TYPE" =>
"int"),
136 "MARKER_WIDTH" => Array(
"FIELD_NAME" =>
"ST.MARKER_WIDTH",
"FIELD_TYPE" =>
"int"),
137 "MARKER_HEIGHT" => Array(
"FIELD_NAME" =>
"ST.MARKER_HEIGHT",
"FIELD_TYPE" =>
"int"),
138 "MARKER_ADJUST" => Array(
"FIELD_NAME" =>
"ST.MARKER_ADJUST",
"FIELD_TYPE" =>
"string")
141 $arSqlSearch =
array();
146 $cache =
new CPHPCache;
148 if(($tzOffset = CTimeZone::GetOffset()) <> 0)
149 $cacheId .=
"_".$tzOffset;
151 if ($cache->InitCache($cacheTime, $cacheId, $cachePath))
153 $cachedRes = $cache->GetVars();
154 if (!empty($cachedRes[
'stickers']))
155 return $cachedRes[
'stickers'];
164 $n = mb_strtoupper($filter_keys[
$i]);
171 if (
$n ==
'PAGE_URL')
181 foreach($arOrder as $by=>
$order)
183 $strOrderBy .=
$arFields[mb_strtoupper($by)][
"FIELD_NAME"].
' '.(mb_strtolower(
$order) ==
'desc'?
'desc'.($DB->type ==
"ORACLE"?
" NULLS LAST":
""):
'asc'.($DB->type ==
"ORACLE"?
" NULLS FIRST":
"")).
',';
185 if($strOrderBy <>
'')
186 $strOrderBy =
"ORDER BY ".rtrim($strOrderBy,
",");
189 if (is_array(
$arFilter[
'COLORS'] ??
null))
194 $strSqlSearch .=
"\n AND COLOR in (".trim($strColors,
", ").
")";
199 ST.*, ".$DB->DateToCharFunction(
"ST.DATE_UPDATE").
" as DATE_UPDATE2,
200 ".
$DB->DateToCharFunction(
"ST.DATE_CREATE").
" as DATE_CREATE2
209 if (
$arFilter[
'USER_ID'] > 0 || !$bDBResult)
215 (
$arRes[
'PERSONAL'] ==
'Y'
216 || (
$arFilter[
'ONLY_OWNER'] ??
null) ==
'Y'))
224 $arRes[
'MARKER_ADJUST'] = unserialize(
$arRes[
'MARKER_ADJUST'], [
'allowed_classes' =>
false]);
239 $cache->StartDataCache($cacheTime, $cacheId, $cachePath);
249 $cache =
new CPHPCache;
250 $cache->CleanDir(
"stickers/");
260 'USER_ID' =>
$USER->GetId(),
277 $cachePath =
"stickers/";
278 $cacheTime = 36000000;
283 $cache =
new CPHPCache;
284 $cacheId =
'page_list_'.$userId;
286 if ($cache->InitCache($cacheTime, $cacheId, $cachePath))
288 $cachedRes = $cache->GetVars();
289 if (!empty($cachedRes[
'page_list']))
290 return $cachedRes[
'page_list'];
294 select PAGE_URL, PAGE_TITLE, max(DATE_UPDATE) as MAX_DATE_UPDATE
298 AND SITE_ID='".$DB->ForSql(
$site).
"'
299 AND ((PERSONAL='Y' AND CREATED_BY=".intval(
$userId).
") OR PERSONAL='N')
300 group by PAGE_URL, PAGE_TITLE
301 order by MAX_DATE_UPDATE desc";
303 $strSql =
$DB->TopSQL($strSql, 10);
313 $cache->StartDataCache($cacheTime, $cacheId, $cachePath);
324 "PAGE_URL" => str_replace(
' ',
'%20',
$APPLICATION->GetCurPage()),
334 $cacheId =
'stickers_count_'.$userId.
"_".
$Params[
"PAGE_URL"];
335 $bCache = CACHED_stickers_count !==
false;
337 if($bCache &&
$CACHE_MANAGER->Read(CACHED_stickers_count, $cacheId,
"fileman_stickers_count"))
340 $strSqlSearch =
"((ST.PERSONAL='Y' AND ST.CREATED_BY=".intval(
$userId).
") OR ST.PERSONAL='N')";
341 $strSqlSearch .=
"\n AND ST.CLOSED='N' AND ST.DELETED='N' AND ST.SITE_ID='".$DB->ForSql(
$Params[
'SITE_ID']).
"'";
344 $strSqlSearch .=
"\n AND ST.PAGE_URL='".$DB->ForSql(
$Params[
"PAGE_URL"]).
"'";
400 $ID =
$DB->Add(
"b_sticker",
$arFields, Array(
"CONTENT",
"MARKER_ADJUST"));
407 $strUpdate =
$DB->PrepareUpdate(
"b_sticker",
$arFields);
409 "UPDATE b_sticker SET ".
411 " WHERE ID=".intval(
$ID);
413 $DB->QueryBind($strSql, Array(
"CONTENT" =>
$arFields[
"CONTENT"],
"MARKER_ADJUST" =>
$arFields[
"MARKER_ADJUST"]));
426 if (!
$DB->Query(
"DELETE FROM b_sticker WHERE 1=1"))
441 if (
count($ids) == 0)
447 $strIds .=
",".intval($ids[
$i]);
448 $strSql =
"DELETE FROM b_sticker WHERE ID in (".trim($strIds,
", ").
")";
450 if (!
$DB->Query($strSql))
470 if (
count($ids) == 0)
476 $strIds .=
",".intval($ids[
$i]);
479 $strUpdate =
$DB->PrepareUpdate(
"b_sticker",
$arFields);
481 "UPDATE b_sticker SET ".
483 " WHERE ID in (".trim($strIds,
", ").
")";
485 if (!
$DB->Query($strSql))
495 CUtil::InitJSCore(
array(
'window',
'ajax',
'date'));
496 $APPLICATION->AddHeadScript(
'/bitrix/js/fileman/sticker.js',
true);
497 $APPLICATION->SetAdditionalCSS(
'/bitrix/js/fileman/sticker.css',
true);
504 $listSize = CUtil::GetPopupSize(
"bx_sticker_list_resize_id",
array(
"width" => 800,
"height" => 450));
505 $size = explode(
"_", COption::GetOptionString(
"fileman",
"stickers_start_sizes",
"350_200"));
511 "start_width" => $size[0] > $min_width ? $size[0] : $min_width,
512 "start_height" => $size[1] > $min_height ? $size[1] : $min_height,
513 "min_width" => $min_width,
514 "min_height" => $min_height,
515 "start_color" => CUserOptions::GetOption(
'fileman',
"stickers_last_color", 0),
518 "curUserId" =>
$USER->GetId(),
519 "pageUrl" => $pageUrl,
521 "bShowStickers" =>
$Params[
'bInit'],
522 "listWidth" => $listSize[
'width'],
523 "listHeight" => $listSize[
'height'],
524 "listNaviSize" => CUserOptions::GetOption(
'fileman',
"stickers_navi_size", 5),
525 "useHotkeys" => COption::GetOptionString(
'fileman',
"stickers_use_hotkeys",
"Y") ==
"Y",
527 "bHideBottom" => COption::GetOptionString(
"fileman",
"stickers_hide_bottom",
"Y") ==
"Y",
528 "focusOnSticker" => isset($_GET[
'show_sticker'])? intval($_GET[
'show_sticker']): 0,
529 "strDate" =>
FormatDate(
"j F", time()+CTimeZone::GetOffset()),
530 "curPageCount" =>
$Params[
'curPageCount'],
534 if (!is_array(
$Params[
'stickers']))
537 self::$Params =
array(
"JSCONFIG" => $JSConfig,
"STICKERS" =>
$Params[
'stickers']);
542 if(is_array(self::$Params))
544 return '<script>BX.ready(function(){'.CSticker::AppendLangMessages().
" window.oBXSticker = new BXSticker(".CUtil::PhpToJSObject(self::$Params[
'JSCONFIG']).
", ".CUtil::PhpToJSObject(self::$Params[
'STICKERS']).
", BXST_MESS);});</script>";
551 static $arUsersCache =
array();
555 if (isset($arUsersCache[$id]))
556 return $arUsersCache[$id];
558 $rsu = CUser::GetByID($id);
559 if($arUser = $rsu->Fetch())
562 $arUsersCache[$id] =
'- Unknown -';
566 $id =
$USER->GetId();
567 if (isset($arUsersCache[$id]))
568 return $arUsersCache[$id];
573 return $arUsersCache[$id];
578 return 'var BXST_MESS =
580 Public : "'.GetMessage(
'FMST_TYPE_PUBLIC').
'",
581 Personal : "'.
GetMessage(
'FMST_TYPE_PERSONAL').
'",
584 UnCollapse : "'.
GetMessage(
'FMST_UNCOLLAPSE').
'",
585 UnCollapseTitle : "'.
GetMessage(
'FMST_UNCOLLAPSE_TITLE').
'",
586 SetMarkerArea : "'.
GetMessage(
'FMST_SET_MARKER_AREA').
'",
587 SetMarkerEl : "'.
GetMessage(
'FMST_SET_MARKER_ELEMENT').
'",
590 PersonalTitle : "'.
GetMessage(
'FMST_TYPE_PERSONAL_TITLE').
'",
591 PublicTitle : "'.
GetMessage(
'FMST_TYPE_PUBLIC_TITLE').
'",
592 CursorHint : "'.
GetMessage(
'FMST_CURSOR_HINT').
'",
599 StickerListTitle : "'.
GetMessage(
'FMST_PANEL_STICKER_LIST').
'",
600 CompleteLabel : "'.
GetMessage(
'FMST_COMPLETE_LABEL').
'",
601 DelConfirm : "'.
GetMessage(
'FMST_LIST_DEL_CONFIRM').
'",
602 CloseConfirm : "'.
GetMessage(
'FMST_CLOSE_CONFIRM').
'",
604 CloseNotify : "'.
GetMessage(
'FMST_CLOSE_MESSAGE').
'"
622 'USER_ID' =>
$USER->GetId(),
638 'bInit' => $bGetStickers,
639 'stickers' => $Stickers,
640 'curPageCount' => $curPageCount
647 return "if (window.oBXSticker){window.oBXSticker.AddSticker();}";
648 elseif($mode ==
'list_cur')
649 return "if (window.oBXSticker){window.oBXSticker.ShowList('current');}";
650 elseif($mode ==
'list_all')
651 return "if (window.oBXSticker){window.oBXSticker.ShowList('all');}";
653 return "if (window.oBXSticker){window.oBXSticker.ShowAll();}";
659 if (isset($_SESSION[
"SESS_SHOW_STICKERS"]) && $_SESSION[
"SESS_SHOW_STICKERS"] ==
"Y")
661 if (isset($_GET[
'show_sticker']) && intval($_GET[
'show_sticker']) > 0)
668 $_SESSION[
"SESS_SHOW_STICKERS"] = $bShow ?
"Y" :
"N";
676 if (!is_object(self::$TextParser))
679 self::$TextParser->allow =
array(
"HTML" =>
"N",
"ANCHOR" =>
"Y",
"BIU" =>
"Y",
"IMG" =>
"N",
"QUOTE" =>
"N",
"CODE" =>
"N",
"FONT" =>
"Y",
"LIST" =>
"Y",
"SMILES" =>
"N",
"NL2BR" =>
"N",
"VIDEO" =>
"N",
"TABLE" =>
"N",
"CUT_ANCHOR" =>
"N",
"ALIGN" =>
"N");
682 $html = self::$TextParser->convertText(
$text);
686 $html = preg_replace(
array(
687 "/\[st_title\](.+?)\[\/st_title\]/isu",
689 "/<\/??ol(.+?)>/isu",
690 "/<\/??ul(.+?)>/isu",
691 "/<\/??li(.+?)>/isu",
695 $html = preg_replace(
698 "/\[\/st_title\]/isu",
704 if (mb_strlen($html) > 40)
705 $html = mb_substr($html, 0, 40).
"...";
709 $html = preg_replace(
710 "/\[st_title\](.*?)\[\/st_title\]/isu",
711 "<span class=\"bxst-title\">\\1</span> ",
716 $html = preg_replace(
719 "/\[\/st_title\]/isu",
746 CUserOptions::SetOption(
'fileman',
"stickers_list_filter", serialize($Filter));
754 'status' =>
'opened',
758 $res = CUserOptions::GetOption(
'fileman',
"stickers_list_filter",
false);
761 $Filter = unserialize(
$res, [
'allowed_classes' =>
false]);
762 if (is_array($Filter))
765 $result[
'type'] = $Filter[
'type'] ==
'my' ?
'my' :
'all';
766 if (($Filter[
'status'] ??
null) && in_array($Filter[
'status'],
array(
'all',
'opened',
'closed')))
767 $result[
'status'] = $Filter[
'status'];
769 $result[
'page'] = $Filter[
'page'];
770 if ($Filter[
'colors'])
771 $result[
'colors'] = $Filter[
'colors'];
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static GetOperations($ID, $return_names=false)
static GetList($arOrder=['MODULE_ID'=> 'asc', 'LETTER'=> 'asc'], $arFilter=[])
static GetUserName($id=false)
static GetAccessPermissions()
static GetStickerInfo($createdBy, $dateCreate, $modBy, $dateMod)
static GetScriptStr($mode)
static Init($Params=array())
static SetBShowStickers($bShow=false)
static GetList($Params=array())
static GetPagesList($site)
static BBParseToHTML($text, $bForList=false)
static SetFilterParams($Filter)
static SetHiden($ids=array(), $bHide=false)
static AppendLangMessages()
static SaveAccessPermissions($arTaskPerm)
static CanDoOperation($operation)
static GetBShowStickers()
static Delete($ids=array())
for($fileNumber="";; $fileNumber++) $pageTitle
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
CheckSerializedData($str, $max_depth=200)
ConvertDateTime($datetime, $to_format=false, $from_site=false, $bSearchInSitesOnly=false)
FormatDate($format="", $timestamp=false, $now=false, ?string $languageId=null)
htmlspecialcharsback($str)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
MakeTimeStamp($datetime, $format=false)
bitrix_sessid_get($varname='sessid')
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
$GLOBALS['_____370096793']