2namespace Bitrix\Landing\PublicAction;
4use \Bitrix\Main\Localization\Loc;
5use \Bitrix\Landing\Demos as DemoCore;
6use \Bitrix\Landing\PublicActionResult;
8Loc::loadMessages(__FILE__);
22 foreach ($item as
$key => $value)
27 $value = (
array)$value;
51 if (!is_string(
$type))
57 $className = \CBitrixComponent::includeComponentClass(
$componentName);
58 $demoCmp =
new $className;
60 $demoCmp->arParams = [
61 'TYPE' => mb_strtoupper(
$type),
67 $data = $demoCmp->getDemoPage();
71 $data = $demoCmp->getDemoSite();
80 !self::isItemSuitable($item,
$filter)
86 if (isset($item[
'DATA'][
'items']))
89 $item[
'DATA'][
'encoded'] =
true;
90 $item[
'DATA'][
'charset'] =
'UTF-8';
141 $className = \CBitrixComponent::includeComponentClass(
$componentName);
142 $demoCmp =
new $className;
144 $demoCmp->arParams =
array(
145 'TYPE' => mb_strtoupper(
$type)
163 $error = new \Bitrix\Landing\Error;
165 $themeCodeTypo =
null;
169 isset(
$data[
'items'])
172 if (is_array(
$data[
'items']))
174 $dataPages =
$data[
'items'];
178 $dataPages =
array();
180 unset(
$data[
'items']);
182 if (isset(
$data[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE']))
184 $themeCode =
$data[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE'];
186 if (isset(
$data[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE_TYPO']))
188 $themeCodeTypo =
$data[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE_TYPO'];
190 foreach ($dataPages as &
$page)
193 !isset(
$page[
'fields']) ||
194 !is_array(
$page[
'fields'])
200 !isset(
$page[
'fields'][
'ADDITIONAL_FIELDS']) ||
201 !is_array(
$page[
'fields'][
'ADDITIONAL_FIELDS'])
204 $page[
'fields'][
'ADDITIONAL_FIELDS'] =
array();
206 if (!isset(
$page[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE']))
208 $page[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE'] = $themeCode;
210 if (!isset(
$page[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE_TYPO']))
212 $page[
'fields'][
'ADDITIONAL_FIELDS'][
'THEME_CODE_TYPO'] = $themeCodeTypo;
217 $data[
'items'] = array_keys($dataPages);
225 'REGISTER_ERROR_DATA',
226 Loc::getMessage(
'LANDING_DEMO_REGISTER_ERROR_DATA')
235 $appCode =
$app[
'CODE'];
242 $deleteAdded =
function(
array $added)
244 foreach ($added as $id)
246 DemoCore::delete($id);
253 'TYPE',
'TPL_TYPE',
'SHOW_IN_LIST',
'TITLE',
'DESCRIPTION',
254 'PREVIEW_URL',
'PREVIEW',
'PREVIEW2X',
'PREVIEW3X'
256 foreach (
$data as $item)
261 'APP_CODE' => $appCode,
265 if (isset(
$params[
'site_template_id']))
271 $fields[
'SITE_TEMPLATE_ID'] =
'';
273 if (isset($item[
'code']))
275 $fields[
'XML_ID'] = trim($item[
'code']);
277 if (isset($item[
'name']))
279 $fields[
'TITLE'] = $item[
'name'];
285 if (isset(
$params[
'lang_original']))
289 if (isset($item[
'items']) && !is_array($item[
'items']))
293 foreach ($fieldCode as
$code)
295 $codel = mb_strtolower(
$code);
296 if (isset($item[$codel]))
302 $item = (
array) $item;
304 $fields[
'MANIFEST'] = serialize($item);
313 if (isset($item[
'fields'][
'ADDITIONAL_FIELDS']))
315 unset($item[
'fields'][
'ADDITIONAL_FIELDS']);
325 Loc::getMessage(
'LANDING_DEMO_CONTENT_IS_BAD') .
326 ' [code: ' .
$fields[
'XML_ID'] .
']'
343 '=XML_ID' =>
$fields[
'XML_ID'],
344 '=APP_CODE' =>
$fields[
'APP_CODE'],
345 '=TPL_TYPE' =>
$fields[
'TPL_TYPE']
348 '=XML_ID' =>
$fields[
'XML_ID'],
349 '=TPL_TYPE' =>
$fields[
'TPL_TYPE']
362 if (
$res->isSuccess())
367 if (
$res->isSuccess())
369 $return[] = (int)
$res->getId();
393 $error = new \Bitrix\Landing\Error;
397 if (!is_string(
$code))
406 $app = \Bitrix\Landing\PublicAction::restApplication();
416 '=APP_CODE' =>
$app[
'CODE']
422 while ($row =
$res->fetch())
425 $resDel = DemoCore::delete($row[
'ID']);
426 if ($resDel->isSuccess())
432 $error->addFromResult($resDel);
472 while ($row =
$res->fetch())
474 if (isset($row[
'DATE_CREATE']))
476 $row[
'DATE_CREATE'] = (string) $row[
'DATE_CREATE'];
478 if (isset($row[
'DATE_MODIFY']))
480 $row[
'DATE_MODIFY'] = (string) $row[
'DATE_MODIFY'];
482 $row[
'MANIFEST'] = unserialize($row[
'MANIFEST'], [
'allowed_classes' =>
false]);
485 $row[
'LANG'] = unserialize($row[
'LANG'], [
'allowed_classes' =>
false]);
static sanitize($value, &$bad=false, $splitter=' ')
static getFilesList($type, $page=false, array $filter=[])
static getList(array $params=array())
static getUrlPreview($code, $type)
static isItemSuitable(array $item, array $filter=[])
static getSiteList($type, array $filter=[])
static getPageList($type, array $filter=[])
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
if(empty($signedUserToken)) $key
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']