1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
csv_run.php
См. документацию.
1<?php
2//<title>CSV Export</title>
3IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/catalog/data_export.php');
4
5global $USER;
8{
9 $bTmpUserCreated = true;
10 if (isset($USER))
11 $USER_TMP = $USER;
12 $USER = new CUser();
13}
14
16
17if (!function_exists('__sortCSVOrder'))
18{
19 function __sortCSVOrder($a, $b): int
20 {
21 if ($a['SORT'] == $b['SORT'])
22 {
23 return ($a['ID'] < $b['ID'] ? -1 : 1);
24 }
25 else
26 {
27 return ($a['SORT'] < $b['SORT'] ? -1 : 1);
28 }
29 }
30}
31
32$strCatalogDefaultFolder = COption::GetOptionString("catalog", "export_default_path", CATALOG_DEFAULT_EXPORT_PATH);
33
34$NUM_CATALOG_LEVELS = intval(COption::GetOptionString("catalog", "num_catalog_levels", 3));
35if (0 >= $NUM_CATALOG_LEVELS)
37
40
41global
53
64
77
79if ($IBLOCK_ID<=0)
80{
81 $arRunErrors[] = GetMessage("CATI_NO_IBLOCK");
82}
83else
84if ($IBLOCK_ID<=0)
85{
86 $arRunErrors[] = GetMessage("CATI_NO_IBLOCK");
87}
88else
89{
90 $arIBlockres = CIBlock::GetList(Array("sort"=>"asc"), Array("ID"=>$IBLOCK_ID, 'CHECK_PERMISSIONS' => 'N'));
91 if (!($arIBlock = $arIBlockres->Fetch()))
92 {
93 $arRunErrors[] = GetMessage("CATI_NO_IBLOCK");
94 }
95}
96
98if (empty($arRunErrors))
99{
101 if (!empty($arCatalog))
102 $boolCatalog = true;
103}
104
105if (empty($arRunErrors))
106{
107 $csvFile = new CCSVData();
108
109 if (!isset($fields_type) || ($fields_type != "F" && $fields_type != "R"))
110 {
111 $arRunErrors[] = GetMessage("CATI_NO_FORMAT");
112 }
113
114 $csvFile->SetFieldsType($fields_type);
115
116 $first_names_r = (isset($first_names_r) && $first_names_r == 'Y' ? true : false);
117 $csvFile->SetFirstHeader($first_names_r);
118
119
120 $delimiter_r_char = "";
121 if (isset($delimiter_r))
122 {
123 switch ($delimiter_r)
124 {
125 case "TAB":
126 $delimiter_r_char = "\t";
127 break;
128 case "ZPT":
129 $delimiter_r_char = ",";
130 break;
131 case "SPS":
132 $delimiter_r_char = " ";
133 break;
134 case "OTR":
135 $delimiter_r_char = (isset($delimiter_other_r)? mb_substr($delimiter_other_r, 0, 1) : '');
136 break;
137 case "TZP":
138 $delimiter_r_char = ";";
139 break;
140 }
141 }
142
143 if (mb_strlen($delimiter_r_char) != 1)
144 {
145 $arRunErrors[] = GetMessage("CATI_NO_DELIMITER");
146 }
147
148 if (empty($arRunErrors))
149 {
150 $csvFile->SetDelimiter($delimiter_r_char);
151 }
152
153
154 if (!isset($SETUP_FILE_NAME) || $SETUP_FILE_NAME == '')
155 {
156 $arRunErrors[] = GetMessage("CATI_NO_SAVE_FILE");
157 }
159 {
160 $arRunErrors[] = GetMessage("CES_ERROR_BAD_EXPORT_FILENAME");
161 }
162 else
163 {
165 if (mb_strtolower(mb_substr($SETUP_FILE_NAME, mb_strlen($SETUP_FILE_NAME) - 4)) != ".csv")
166 $SETUP_FILE_NAME .= ".csv";
167 if (0 !== mb_strpos($SETUP_FILE_NAME, $strCatalogDefaultFolder))
168 {
169 $arRunErrors[] = GetMessage('CES_ERROR_PATH_WITHOUT_DEFAUT');
170 }
171 else
172 {
173 CheckDirPath($_SERVER["DOCUMENT_ROOT"].$SETUP_FILE_NAME);
174
175 if (!($fp = fopen($_SERVER["DOCUMENT_ROOT"].$SETUP_FILE_NAME, "wb")))
176 {
177 $arRunErrors[] = GetMessage("CATI_CANNOT_CREATE_FILE");
178 }
179 @fclose($fp);
180 }
181 }
182
183 $bFieldsPres = (!empty($field_needed) && is_array($field_needed) && in_array('Y', $field_needed));
184 if ($bFieldsPres && (empty($field_code) || !is_array($field_code)))
185 {
186 $bFieldsPres = false;
187 }
188 if (!$bFieldsPres)
189 {
190 $arRunErrors[] = GetMessage("CATI_NO_FIELDS");
191 }
192
193 // We can't link more than 30 tables.
194 $tableLinksCount = 10;
195 for ($i = 0, $intCount = count($field_code); $i < $intCount; $i++)
196 {
197 if (mb_substr($field_code[$i], 0, mb_strlen("CR_PRICE_")) == "CR_PRICE_" && isset($field_needed[$i]) && $field_needed[$i]=="Y")
198 {
199 $tableLinksCount++;
200 }
201 elseif (mb_substr($field_code[$i], 0, mb_strlen("IP_PROP")) == "IP_PROP" && isset($field_needed[$i]) && $field_needed[$i]=="Y")
202 {
203 $tableLinksCount+=2;
204 }
205 }
206 if ($tableLinksCount>30)
207 {
208 $arRunErrors[] = GetMessage("CATI_TOO_MANY_TABLES");
209 }
210
211 $num_rows_writed = 0;
212 if (empty($arRunErrors))
213 {
216
217 $intCount = 0; // count of all available fields, props, section fields, prices
218 $arSortFields = array(); // array for order
219 $selectArray = array("ID", "IBLOCK_ID", "IBLOCK_SECTION_ID"); // selected element fields
220 $bNeedGroups = false; // sections need?
221 $bNeedPrices = false; // prices need?
222 $bNeedProducts = false; // product properties need?
223 $bNeedProps = false; // element props need?
224 $arGroupProps = array(); // section fields array (no user props)
225 $arElementProps = array(); // element props
226 $arFileProps = array();
227 $arCatalogGroups = array(); // prices
228 $arProductFields = array(); // product properties
229 $bNeedCounts = false; // price ranges
230 $arCountFields = array(); // price ranges fields
231 $arValueCodes = array();
232 $arNeedFields = array(); // result order
233
234 // Prepare arrays for product loading
235 $strAvailProdFields = COption::GetOptionString("catalog", "allowed_product_fields", $defCatalogAvailProdFields);
236 $arAvailProdFields = explode(",", $strAvailProdFields);
237 $arAvailProdFields_names = array();
238 foreach ($arCatalogAvailProdFields as &$arOneCatalogAvailProdFields)
239 {
240 if (in_array($arOneCatalogAvailProdFields['value'],$arAvailProdFields))
241 {
242 $arAvailProdFields_names[$arOneCatalogAvailProdFields['value']] = array(
243 "field" => $arOneCatalogAvailProdFields["field"],
244 "important" => $arOneCatalogAvailProdFields["important"],
245 );
246 $mxSelKey = array_search($arOneCatalogAvailProdFields['value'], $field_code);
247 if (!(false === $mxSelKey || empty($field_needed[$mxSelKey]) || 'Y' != $field_needed[$mxSelKey]))
248 {
249 $arSortFields[$arOneCatalogAvailProdFields['value']] = array(
250 'CODE' => $arOneCatalogAvailProdFields['value'],
251 'ID' => $intCount,
252 'SORT' => (!empty($field_num[$mxSelKey]) && 0 < intval($field_num[$mxSelKey]) ? intval($field_num[$mxSelKey]) : ($intCount+1)*10),
253 );
254 $selectArray[] = $arOneCatalogAvailProdFields["field"];
255 }
256 $intCount++;
257 }
258 }
259 if (isset($arOneCatalogAvailProdFields))
260 unset($arOneCatalogAvailProdFields);
261
262 $rsProps = CIBlockProperty::GetList(array("SORT"=>"ASC", "ID"=>"ASC"), array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y", 'CHECK_PERMISSIONS' => 'N'));
263 while ($arProp = $rsProps->Fetch())
264 {
265 $mxSelKey = array_search('IP_PROP'.$arProp['ID'], $field_code);
266 if (!(false === $mxSelKey || empty($field_needed[$mxSelKey]) || 'Y' != $field_needed[$mxSelKey]))
267 {
268 $arSortFields['IP_PROP'.$arProp['ID']] = array(
269 'CODE' => 'IP_PROP'.$arProp['ID'],
270 'ID' => $intCount,
271 'SORT' => (!empty($field_num[$mxSelKey]) && 0 < intval($field_num[$mxSelKey]) ? intval($field_num[$mxSelKey]) : ($intCount+1)*10),
272 );
273 $bNeedProps = true;
274 $arElementProps[] = $arProp['ID'];
275 if ('F' == $arProp['PROPERTY_TYPE'])
276 {
277 $arFileProps[] = $arProp['ID'];
278 }
279 $selectArray[] = "PROPERTY_".$arProp['ID'];
280 }
281 $intCount++;
282 }
283 if ($bNeedProps)
284 {
285 $arElementProps = array_values(array_unique($arElementProps));
286 if (!empty($arFileProps))
287 $arFileProps = array_values(array_unique($arFileProps));
288 }
289
290 // Prepare arrays for groups loading
291 $strAvailGroupFields = COption::GetOptionString("catalog", "allowed_group_fields", $defCatalogAvailGroupFields);
292 $arAvailGroupFields = explode(",", $strAvailGroupFields);
293 $arAvailGroupFields_names = array();
294 foreach ($arCatalogAvailGroupFields as &$arOneCatalogAvailGroupFields)
295 {
296 if (in_array($arOneCatalogAvailGroupFields['value'],$arAvailGroupFields))
297 {
298 $arAvailGroupFields_names[$arOneCatalogAvailGroupFields['value']] = array(
299 "field" => $arOneCatalogAvailGroupFields["field"],
300 "important" => $arOneCatalogAvailGroupFields["important"],
301 );
302 }
303 }
304 if (isset($arOneCatalogAvailGroupFields))
305 unset($arOneCatalogAvailGroupFields);
306 if (!empty($arAvailGroupFields_names))
307 {
308 $arAvailGroupFieldsList = array_keys($arAvailGroupFields_names);
309 for ($i = 0; $i < $NUM_CATALOG_LEVELS; $i++)
310 {
311 foreach ($arAvailGroupFieldsList as &$strKey)
312 {
313 $mxSelKey = array_search($strKey.$i, $field_code);
314 if (!(false === $mxSelKey || empty($field_needed[$mxSelKey]) || 'Y' != $field_needed[$mxSelKey]))
315 {
316 $arSortFields[$strKey.$i] = array(
317 'CODE' => $strKey.$i,
318 'ID' => $intCount,
319 'SORT' => (!empty($field_num[$mxSelKey]) && 0 < intval($field_num[$mxSelKey]) ? intval($field_num[$mxSelKey]) : ($intCount+1)*10),
320 );
321 $bNeedGroups = true;
322 $arGroupProps[$i][] = $strKey;
323 }
324 $intCount++;
325 }
326 if (isset($strKey))
327 unset($strKey);
328 if (!empty($arGroupProps[$i]))
329 $arGroupProps[$i] = array_values(array_unique($arGroupProps[$i]));
330 }
331 unset($arAvailGroupFieldsList);
332 }
333
334 if ($boolCatalog)
335 {
336 // Prepare arrays for product loading (for catalog)
337 $strAvailPriceFields = COption::GetOptionString("catalog", "allowed_product_fields", $defCatalogAvailPriceFields);
338 $arAvailPriceFields = explode(",", $strAvailPriceFields);
339 $arAvailPriceFields_names = array();
340 foreach ($arCatalogAvailPriceFields as &$arOneCatalogAvailPriceFields)
341 {
342 if (in_array($arOneCatalogAvailPriceFields['value'],$arAvailPriceFields))
343 {
344 $arAvailPriceFields_names[$arOneCatalogAvailPriceFields['value']] = array(
345 "field" => $arOneCatalogAvailPriceFields["field"],
346 "important" => $arOneCatalogAvailPriceFields["important"]
347 );
348
349 $mxSelKey = array_search($arOneCatalogAvailPriceFields['value'], $field_code);
350 if (!(false === $mxSelKey || empty($field_needed[$mxSelKey]) || 'Y' != $field_needed[$mxSelKey]))
351 {
352 $arSortFields[$arOneCatalogAvailPriceFields['value']] = array(
353 'CODE' => $arOneCatalogAvailPriceFields['value'],
354 'ID' => $intCount,
355 'SORT' => (!empty($field_num[$mxSelKey]) && 0 < intval($field_num[$mxSelKey]) ? intval($field_num[$mxSelKey]) : ($intCount+1)*10),
356 );
357 $bNeedProducts = true;
358 $arProductFields[] = $arOneCatalogAvailPriceFields['value'];
359 $selectArray[] = "CATALOG_".$arOneCatalogAvailPriceFields['field'];
360 }
361 $intCount++;
362 }
363 }
364 if (isset($arOneCatalogAvailPriceFields))
365 unset($arOneCatalogAvailPriceFields);
366 if ($bNeedProducts)
367 $arProductFields = array_values(array_unique($arProductFields));
368
369 // Prepare arrays for price loading
370 $strAvailCountFields = $defCatalogAvailQuantityFields;
371 $arAvailCountFields = explode(",", $strAvailCountFields);
372 $arAvailCountFields_names = array();
373 foreach ($arCatalogAvailQuantityFields as &$arOneCatalogAvailQuantityFields)
374 {
375 if (in_array($arOneCatalogAvailQuantityFields['value'], $arAvailCountFields))
376 {
377 $arAvailCountFields_names[$arOneCatalogAvailQuantityFields['value']] = array(
378 "field" => $arOneCatalogAvailQuantityFields["field"],
379 "important" => $arOneCatalogAvailQuantityFields["important"]
380 );
381 $mxSelKey = array_search($arOneCatalogAvailQuantityFields['value'], $field_code);
382 if (!(false === $mxSelKey || empty($field_needed[$mxSelKey]) || 'Y' != $field_needed[$mxSelKey]))
383 {
384 $arSortFields[$arOneCatalogAvailQuantityFields['value']] = array(
385 'CODE' => $arOneCatalogAvailQuantityFields['value'],
386 'ID' => $intCount,
387 'SORT' => (!empty($field_num[$mxSelKey]) && 0 < intval($field_num[$mxSelKey]) ? intval($field_num[$mxSelKey]) : ($intCount+1)*10),
388 );
389 $bNeedCounts = true;
390 $arCountFields[] = $arOneCatalogAvailQuantityFields['value'];
391 }
392 $intCount++;
393 }
394 }
395 if (isset($arOneCatalogAvailQuantityFields))
396 unset($arOneCatalogAvailQuantityFields);
397
398 $strVal = COption::GetOptionString("catalog", "allowed_currencies", $defCatalogAvailCurrencies);
399 $arVal = explode(",", $strVal);
400 $lcur = CCurrency::GetList('sort', 'asc');
401 $arCurList = array();
402 while ($lcur_res = $lcur->Fetch())
403 {
404 if (in_array($lcur_res["CURRENCY"], $arVal))
405 {
406 $arCurList[] = $lcur_res["CURRENCY"];
407 }
408 }
409
410 $arPriceList = array();
411 if (!empty($arCurList))
412 {
413 foreach ($field_code as $mxSelKey => $strOneFieldsCode)
414 {
415 if (0 == strncmp($strOneFieldsCode, "CR_PRICE_", 9))
416 {
417 if (!(empty($field_needed[$mxSelKey]) || 'Y' != $field_needed[$mxSelKey]))
418 {
419 $arTempo = explode('_', mb_substr($strOneFieldsCode, 9));
420 $arTempo[0] = intval($arTempo[0]);
421 if (0 < $arTempo[0])
422 {
423 $bNeedPrices = true;
424 $arPriceList[$arTempo[0]] = $arTempo[1];
425 $arSortFields['CR_PRICE_'.$arTempo[0].'_'.$arTempo[1]] = array(
426 'CODE' => 'CR_PRICE_'.$arTempo[0].'_'.$arTempo[1],
427 'ID' => $intCount,
428 'SORT' => (!empty($field_num[$mxSelKey]) && 0 < intval($field_num[$mxSelKey]) ? intval($field_num[$mxSelKey]) : ($intCount+1)*10),
429 );
430 $selectArray[] = "CATALOG_GROUP_".$arTempo[0];
431 }
432 }
433 $intCount++;
434 }
435 }
436 }
437
438 if (!$bNeedPrices)
439 {
440 $bNeedCounts = false;
441 $arCountFields = array();
442 }
443 }
444 uasort($arSortFields, '__sortCSVOrder');
445
446 $arNeedFields = array_keys($arSortFields);
447
448 if ($first_line_names)
449 {
450 $csvFile->SaveFile($_SERVER["DOCUMENT_ROOT"].$SETUP_FILE_NAME, $arNeedFields);
451 }
452
453 $res = CIBlockElement::GetList(array('ID' => 'ASC'), array("IBLOCK_ID" => $IBLOCK_ID, 'CHECK_PERMISSIONS' => 'N'), false, false, $selectArray);
454 while ($res1 = $res->Fetch())
455 {
456 $arResSections = array();
457 if ($bNeedGroups)
458 {
459 $indreseg = 0;
460 $reseg = CIBlockElement::GetElementGroups($res1["ID"], false, array('ID', 'ADDITIONAL_PROPERTY_ID'));
461 while ($reseg1 = $reseg->Fetch())
462 {
463 if (0 < intval($reseg1['ADDITIONAL_PROPERTY_ID']))
464 continue;
465 $sections_path = GetIBlockSectionPath($IBLOCK_ID, $reseg1["ID"]);
466 while ($arSection = $sections_path->Fetch())
467 {
468 $arResSectionTmp = array();
469 foreach ($arAvailGroupFields_names as $key => $value)
470 {
471 $arResSectionTmp[$key] = $arSection[$value["field"]];
472 }
473 $arResSections[$indreseg][] = $arResSectionTmp;
474 }
475 $indreseg++;
476 }
477 if (empty($arResSections))
478 $arResSections[0] = array();
479 }
480 else
481 {
482 $arResSections[0] = array();
483 }
484
485 for ($inds = 0, $intSectCount = count($arResSections); $inds < $intSectCount; $inds++)
486 {
487 $arResFields = array();
488 for ($i = 0, $intNFCount = count($arNeedFields); $i < $intNFCount; $i++)
489 {
490 $bFieldOut = False;
491 if (is_set($arAvailProdFields_names, $arNeedFields[$i]))
492 {
493 $bFieldOut = True;
494 $arResFields[$i] = $res1[$arAvailProdFields_names[$arNeedFields[$i]]["field"]];
495 if ($arNeedFields[$i]=="IE_PREVIEW_PICTURE" || $arNeedFields[$i]=="IE_DETAIL_PICTURE")
496 {
497 if (intval($arResFields[$i])>0)
498 {
499 $db_z = CFile::GetByID(intval($arResFields[$i]));
500 if ($z = $db_z->Fetch())
501 {
502 $arResFields[$i] = $z["FILE_NAME"];
503 }
504 }
505 else
506 {
507 $arResFields[$i] = "";
508 }
509 }
510 }
511
512 if ($boolCatalog)
513 {
514 if (!$bFieldOut && is_set($arAvailPriceFields_names, $arNeedFields[$i]))
515 {
516 $bFieldOut = True;
517 $arResFields[$i] = $res1["CATALOG_".$arAvailPriceFields_names[$arNeedFields[$i]]["field"]];
518 }
519
520 if (!$bFieldOut && is_set($arAvailCountFields_names, $arNeedFields[$i]))
521 {
522 $bFieldOut = True;
523 $arResFields[$i] = $res1["CATALOG_".$arAvailCountFields_names[$arNeedFields[$i]]["field"]];
524 }
525 }
526
527 if (!$bFieldOut)
528 {
529 if (mb_substr($arNeedFields[$i], 0, mb_strlen("IP_PROP")) == "IP_PROP")
530 {
531 $strTempo = mb_substr($arNeedFields[$i], mb_strlen("IP_PROP"));
532 if (!empty($arFileProps) && in_array($strTempo,$arFileProps))
533 {
534 $valueTmp = '';
535 if (0 < intval($res1["PROPERTY_".$strTempo."_VALUE"]))
536 {
537 $arFile = CFile::GetFileArray($res1["PROPERTY_".$strTempo."_VALUE"]);
538 if (is_array($arFile))
539 $valueTmp = $arFile['SRC'];
540 }
541 $arResFields[$i] = $valueTmp;
542 }
543 else
544 {
545 $arResFields[$i] = $res1["PROPERTY_".$strTempo."_VALUE"];
546 }
547 $bFieldOut = True;
548 }
549 elseif ($boolCatalog && mb_substr($arNeedFields[$i], 0, mb_strlen("CR_PRICE_")) == "CR_PRICE_")
550 {
551 $sPriceTmp = mb_substr($arNeedFields[$i], mb_strlen("CR_PRICE_"));
552 $arPriceTmp = explode("_", $sPriceTmp);
553
554 if ($res1["CATALOG_CURRENCY_".intval($arPriceTmp[0])] <> ''
555 && $res1["CATALOG_CURRENCY_".intval($arPriceTmp[0])]!=$arPriceTmp[1])
556 {
557 $arResFields[$i] = Round(CCurrencyRates::ConvertCurrency($res1["CATALOG_PRICE_".intval($arPriceTmp[0])], $res1["CATALOG_CURRENCY_".intval($arPriceTmp[0])], $arPriceTmp[1]), 2);
558 }
559 else
560 {
561 $arResFields[$i] = $res1["CATALOG_PRICE_".intval($arPriceTmp[0])];
562 }
563 $bFieldOut = True;
564 }
565 }
566
567 if (!$bFieldOut)
568 {
569 foreach ($arAvailGroupFields_names as $key => $value)
570 {
571 if ($key == mb_substr($arNeedFields[$i], 0, mb_strlen($key))
572 && is_numeric(mb_substr($arNeedFields[$i], mb_strlen($key))))
573 {
574 $bFieldOut = True;
575 $arResFields[$i] = $arResSections[$inds][intval(mb_substr($arNeedFields[$i], mb_strlen($key)))][$key];
576 break;
577 }
578 }
579 }
580 }
581 $csvFile->SaveFile($_SERVER["DOCUMENT_ROOT"].$SETUP_FILE_NAME, $arResFields);
582 $num_rows_writed++;
583 }
584 }
585 }
586 //*****************************************************************//
587}
588
589if (!empty($arRunErrors))
590 $strExportErrorMessage = implode('<br />',$arRunErrors);
591
593
595{
596 if (isset($USER_TMP))
597 {
598 $USER = $USER_TMP;
599 unset($USER_TMP);
600 }
601}
const BX_CATALOG_FILENAME_REG
Определения include.php:51
const CATALOG_DEFAULT_EXPORT_PATH
Определения include.php:14
$strVal
Определения options.php:1786
$arVal
Определения options.php:1785
static Disable()
Определения discount_save.php:38
static Enable()
Определения discount_save.php:33
static GetByID($ID)
Определения catalog.php:281
static IsUserExists()
Определения catalog.php:1812
static GetList($by='sort', $order='asc', $lang=LANGUAGE_ID)
Определения currency.php:554
static ConvertCurrency($valSum, $curFrom, $curTo, $valDate="")
Определения currency_rate.php:393
static GetElementGroups($ID, $bElementOnly=false, $arSelect=array())
Определения iblockelement.php:5618
static GetList($arOrder=Array(), $arFilter=Array())
Определения iblockproperty.php:14
static GetOptionString($module_id, $name, $def="", $site=false, $bExactSite=false)
Определения option.php:8
Определения csv_data.php:10
const FIELDS_PRICE
Определения csv_settings.php:9
static getDefaultSettings($type, $extFormat=false)
Определения csv_settings.php:335
const FIELDS_CURRENCY
Определения csv_settings.php:12
static getSettingsFields($type, $extFormat=false)
Определения csv_settings.php:14
const FIELDS_PRICE_EXT
Определения csv_settings.php:10
const FIELDS_ELEMENT
Определения csv_settings.php:7
const FIELDS_CATALOG
Определения csv_settings.php:8
const FIELDS_SECTION
Определения csv_settings.php:11
static GetByID($fileId, $realId=false)
Определения file.php:1021
static GetList($arOrder=array("SORT"=>"ASC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения iblockelement.php:658
else $SETUP_FILE_NAME
Определения ebay_mip_run.php:56
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
GetIBlockSectionPath($IBLOCK_ID, $SECTION_ID)
Определения iblock.php:520
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $arCatalogAvailPriceFields
Определения cron_frame.php:84
global $defCatalogAvailValueFields
Определения cron_frame.php:97
global $arCatalogAvailQuantityFields
Определения cron_frame.php:88
global $defCatalogAvailProdFields
Определения cron_frame.php:93
global $defCatalogAvailQuantityFields
Определения cron_frame.php:99
global $arCatalogAvailProdFields
Определения cron_frame.php:82
global $defCatalogAvailCurrencies
Определения cron_frame.php:103
global $arCatalogAvailGroupFields
Определения cron_frame.php:90
global $arCatalogAvailValueFields
Определения cron_frame.php:86
global $defCatalogAvailPriceFields
Определения cron_frame.php:95
global $defCatalogAvailGroupFields
Определения cron_frame.php:101
$IBLOCK_ID
Определения csv_new_run.php:168
if(!($arIBlock=$arIBlockres->Fetch())) $boolCatalog
Определения csv_new_run.php:182
$arRunErrors
Определения csv_new_run.php:129
global $USER
Определения csv_new_run.php:40
$strExportErrorMessage
Определения csv_new_run.php:128
$NUM_CATALOG_LEVELS
Определения csv_new_run.php:124
$bTmpUserCreated
Определения csv_new_run.php:41
if(!CCatalog::IsUserExists()) if(!function_exists( '__CSVArrayMultiply')) if(!function_exists('__CSVExportFile')) $strCatalogDefaultFolder
Определения csv_new_run.php:122
$z
Определения options.php:31
CheckDirPath($path)
Определения tools.php:2707
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
Rel2Abs($curdir, $relpath)
Определения tools.php:3297
is_set($a, $k=false)
Определения tools.php:2133
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$value
Определения Param.php:39
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</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
else $a
Определения template.php:137
$arIBlock['PROPERTY']
Определения yandex_detail.php:172
$rsProps
Определения yandex_run.php:584
$arCatalog
Определения yandex_run.php:674