1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
workflowtemplateloader.php
См. документацию.
1<?
2require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/classes/general/workflowtemplateloader.php");
3
4class CBPWorkflowTemplateLoader
5 extends CAllBPWorkflowTemplateLoader
6{
7 private static $instance;
8
9 private function __construct()
10 {
11 $useGZipCompressionOption = \Bitrix\Main\Config\Option::get("bizproc", "use_gzip_compression", "");
12 if ($useGZipCompressionOption === "Y")
13 $this->useGZipCompression = true;
14 elseif ($useGZipCompressionOption === "N")
15 $this->useGZipCompression = false;
16 else
17 $this->useGZipCompression = function_exists("gzcompress");
18 }
19
25 public static function GetLoader()
26 {
27 if (!isset(self::$instance))
28 {
29 $c = __CLASS__;
30 self::$instance = new $c;
31 }
32
33 return self::$instance;
34 }
35
36 public function GetTemplatesList($arOrder = array("ID" => "DESC"), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
37 {
38 global $DB;
39
40 if (count($arSelectFields) <= 0)
41 $arSelectFields = array("ID", "MODULE_ID", "ENTITY", "DOCUMENT_TYPE", "AUTO_EXECUTE", "NAME", "DESCRIPTION", "TEMPLATE", "PARAMETERS", "VARIABLES", "CONSTANTS", "MODIFIED", "USER_ID", "ACTIVE", "IS_MODIFIED");
42
43 if (count(array_intersect($arSelectFields, array("MODULE_ID", "ENTITY", "DOCUMENT_TYPE"))) > 0)
44 {
45 if (!in_array("MODULE_ID", $arSelectFields))
46 $arSelectFields[] = "MODULE_ID";
47 if (!in_array("ENTITY", $arSelectFields))
48 $arSelectFields[] = "ENTITY";
49 if (!in_array("DOCUMENT_TYPE", $arSelectFields))
50 $arSelectFields[] = "DOCUMENT_TYPE";
51 }
52
53 if (array_key_exists("DOCUMENT_TYPE", $arFilter))
54 {
55 $d = CBPHelper::ParseDocumentId($arFilter["DOCUMENT_TYPE"]);
56 $arFilter["MODULE_ID"] = $d[0];
57 $arFilter["ENTITY"] = $d[1];
58 $arFilter["DOCUMENT_TYPE"] = $d[2];
59 }
60
61 if (array_key_exists("AUTO_EXECUTE", $arFilter))
62 {
63 $arFilter["AUTO_EXECUTE"] = intval($arFilter["AUTO_EXECUTE"]);
64
65 if ($arFilter["AUTO_EXECUTE"] == CBPDocumentEventType::None)
66 $arFilter["AUTO_EXECUTE"] = 0;
68 $arFilter["AUTO_EXECUTE"] = array(1, 3, 5, 7);
70 $arFilter["AUTO_EXECUTE"] = array(2, 3, 6, 7);
72 $arFilter["AUTO_EXECUTE"] = array(4, 5, 6, 7);
74 $arFilter["AUTO_EXECUTE"] = 8;
75 else
76 $arFilter["AUTO_EXECUTE"] = array(-1);
77 }
78
79 static $arFields = array(
80 "ID" => Array("FIELD" => "T.ID", "TYPE" => "int"),
81 "MODULE_ID" => Array("FIELD" => "T.MODULE_ID", "TYPE" => "string"),
82 "ENTITY" => Array("FIELD" => "T.ENTITY", "TYPE" => "string"),
83 "DOCUMENT_TYPE" => Array("FIELD" => "T.DOCUMENT_TYPE", "TYPE" => "string"),
84 "AUTO_EXECUTE" => Array("FIELD" => "T.AUTO_EXECUTE", "TYPE" => "int"),
85 "NAME" => Array("FIELD" => "T.NAME", "TYPE" => "string"),
86 "DESCRIPTION" => Array("FIELD" => "T.DESCRIPTION", "TYPE" => "string"),
87 "TEMPLATE" => Array("FIELD" => "T.TEMPLATE", "TYPE" => "string"),
88 "PARAMETERS" => Array("FIELD" => "T.PARAMETERS", "TYPE" => "string"),
89 "VARIABLES" => Array("FIELD" => "T.VARIABLES", "TYPE" => "string"),
90 "CONSTANTS" => Array("FIELD" => "T.CONSTANTS", "TYPE" => "string"),
91 "MODIFIED" => Array("FIELD" => "T.MODIFIED", "TYPE" => "datetime"),
92 "USER_ID" => Array("FIELD" => "T.USER_ID", "TYPE" => "int"),
93 "SYSTEM_CODE" => Array("FIELD" => "T.SYSTEM_CODE", "TYPE" => "string"),
94 "ACTIVE" => Array("FIELD" => "T.ACTIVE", "TYPE" => "string"),
95 "IS_MODIFIED" => Array("FIELD" => "T.IS_MODIFIED", "TYPE" => "string"),
96
97 "USER_NAME" => Array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (T.USER_ID = U.ID)"),
98 "USER_LAST_NAME" => Array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (T.USER_ID = U.ID)"),
99 "USER_SECOND_NAME" => Array("FIELD" => "U.SECOND_NAME", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (T.USER_ID = U.ID)"),
100 "USER_LOGIN" => Array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "LEFT JOIN b_user U ON (T.USER_ID = U.ID)"),
101 );
102
103 $arSqls = CBPHelper::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
104
105 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
106
107 if (is_array($arGroupBy) && count($arGroupBy)==0)
108 {
109 $strSql =
110 "SELECT ".$arSqls["SELECT"]." ".
111 "FROM b_bp_workflow_template T ".
112 " ".$arSqls["FROM"]." ";
113 if (strlen($arSqls["WHERE"]) > 0)
114 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
115 if (strlen($arSqls["GROUPBY"]) > 0)
116 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
117
118 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
119
120 $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
121 if ($arRes = $dbRes->Fetch())
122 return $arRes["CNT"];
123 else
124 return False;
125 }
126
127 $strSql =
128 "SELECT ".$arSqls["SELECT"]." ".
129 "FROM b_bp_workflow_template T ".
130 " ".$arSqls["FROM"]." ";
131 if (strlen($arSqls["WHERE"]) > 0)
132 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
133 if (strlen($arSqls["GROUPBY"]) > 0)
134 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
135 if (strlen($arSqls["ORDERBY"]) > 0)
136 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
137
138 if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) <= 0)
139 {
140 $strSql_tmp =
141 "SELECT COUNT('x') as CNT ".
142 "FROM b_bp_workflow_template T ".
143 " ".$arSqls["FROM"]." ";
144 if (strlen($arSqls["WHERE"]) > 0)
145 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
146 if (strlen($arSqls["GROUPBY"]) > 0)
147 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
148
149 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
150
151 $dbRes = $DB->Query($strSql_tmp, false, "File: ".__FILE__."<br>Line: ".__LINE__);
152 $cnt = 0;
153 if (strlen($arSqls["GROUPBY"]) <= 0)
154 {
155 if ($arRes = $dbRes->Fetch())
156 $cnt = $arRes["CNT"];
157 }
158 else
159 {
160 $cnt = $dbRes->SelectedRowsCount();
161 }
162
163 $dbRes = new CDBResult();
164 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
165 }
166 else
167 {
168 if (is_array($arNavStartParams) && IntVal($arNavStartParams["nTopCount"]) > 0)
169 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
170
171 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
172
173 $dbRes = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
174 }
175
177 return $dbRes;
178 }
179
180 public function AddTemplate($arFields, $systemImport = false)
181 {
182 global $DB;
183
184 self::ParseFields($arFields, 0, $systemImport);
185
186 $arInsert = $DB->PrepareInsert("b_bp_workflow_template", $arFields);
187
188 $strSql =
189 "INSERT INTO b_bp_workflow_template (".$arInsert[0].", MODIFIED) ".
190 "VALUES(".$arInsert[1].", ".$DB->CurrentTimeFunction().")";
191 $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__);
192
193 return intval($DB->LastID());
194 }
195
196 public function UpdateTemplate($id, $arFields, $systemImport = false)
197 {
198 global $DB;
199
200 $id = intval($id);
201 if ($id <= 0)
202 throw new CBPArgumentNullException("id");
203
204 self::ParseFields($arFields, $id, $systemImport);
205
206 $strUpdate = $DB->PrepareUpdate("b_bp_workflow_template", $arFields);
207
208 $strSql =
209 "UPDATE b_bp_workflow_template SET ".
210 " ".$strUpdate.", ".
211 " MODIFIED = ".$DB->CurrentTimeFunction()." ".
212 "WHERE ID = ".intval($id)." ";
213 $DB->Query($strSql, False, "File: ".__FILE__."<br>Line: ".__LINE__);
214
215 return $id;
216 }
217}
const Edit
Определения constants.php:154
const Automation
Определения constants.php:156
const Create
Определения constants.php:153
const None
Определения constants.php:152
const Delete
Определения constants.php:155
AddTemplate($arFields, $systemImport=false)
Определения workflowtemplateloader.php:180
UpdateTemplate($id, $arFields, $systemImport=false)
Определения workflowtemplateloader.php:196
static useGZipCompression()
Определения workflowtemplateloader.php:1435
GetTemplatesList($arOrder=array("ID"=> "DESC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения workflowtemplateloader.php:36
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
if(preg_match('/^ else[a-z0-9_]{2}$/i', $siteID)===1)
Определения cron_frame.php:23
return false
Определения prolog_main_admin.php:185
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$instance
Определения ps_b24_final.php:14
</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."%"
Определения waybill.php:936
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168