3namespace Bitrix\Landing\Hook\Page;
5use Bitrix\Landing\Assets;
6use Bitrix\Landing\Field;
7use Bitrix\Landing\Hook;
8use Bitrix\Landing\Internals\HookDataTable;
9use Bitrix\Landing\Landing;
10use Bitrix\Landing\Manager;
11use Bitrix\Main\Loader;
12use Bitrix\Main\Localization\Loc;
13use Bitrix\Main\Entity\Query;
14use Bitrix\Main\Page\Asset;
15use Bitrix\Main\Page\AssetLocation;
16use Bitrix\Main\Text\HtmlFilter;
34 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_USE_2'),
37 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_BASE_2'),
38 'default' =>
'Open Sans',
41 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_BASE_2'),
42 'default' =>
'Open Sans',
45 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_SIZE'),
48 '0.92857' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_12'),
49 '1' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_14'),
50 '1.14286' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_16'),
54 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_COLOR'),
55 'help' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_COLOR_HELP'),
58 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_COLOR_H'),
59 'help' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_COLOR_HELP_H'),
62 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_LINE_HEIGHT'),
64 'options' => self::getLineHeightOptions(),
67 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_WEIGHT_2'),
69 'options' => self::getFontWeightOptions(),
70 'help' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_WEIGHT_HELP_2'),
73 'title' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_WEIGHT_H_2'),
75 'options' => self::getFontWeightOptions(),
76 'help' => Loc::getMessage(
'LNDNGHOOK_THEMEFONTS_FONT_WEIGHT_HELP_H'),
128 return $this->fields[
'USE']->getValue() ===
'Y';
154 if ($field = $this->fields[
$name]->getValue())
156 return HtmlFilter::encode(trim($field));
165 'CODE' =>
'Open Sans',
166 'CODE_H' =>
'Open Sans',
168 'LINE_HEIGHT' =>
'1.6',
169 'FONT_WEIGHT' =>
'400',
170 'FONT_WEIGHT_H' =>
'400',
183 if ($this->fields[
'CODE']->getValue() !==
null)
188 --landing-font-family: {$font}
194 $assets->addString(self::getFontLink($font));
199 font-family: ' . $font .
';
200 -webkit-font-smoothing: antialiased;
201 -moz-osx-font-smoothing: grayscale;
202 -moz-font-feature-settings: "liga", "kern";
203 text-rendering: optimizelegibility;
218 $assets->addString(self::getFontLink($font));
221 h1, h2, h3, h4, h5, h6 {
222 font-family: ' . $font .
';
235 $fontName = str_replace([
'g-font-',
'-',
'ibm ',
'pt '], [
'',
' ',
'IBM ',
'PT '], $fontName);
238 '/sc(?:(?![a-z]))/i',
239 '/jp(?:(?![a-z]))/i',
240 '/kr(?:(?![a-z]))/i',
241 '/tc(?:(?![a-z]))/i',
243 $replace = [
'SC',
'JP',
'KR',
'TC'];
244 $fontNameNew = preg_filter(
$pattern, $replace, $fontName);
247 $fontName = $fontNameNew;
250 $fontName = ucwords($fontName);
257 $domain =
'fonts.googleapis.com';
258 if (Loader::includeModule(
'ui'))
263 $fontLink =
"<link rel=\"stylesheet\" href=\"https://{$domain}/css2?family=";
264 $fontLink .= str_replace(
" ",
"+", $font);
265 $fontLink .=
':wght@100;200;300;400;500;600;700;800;900">';
280 html {font-size: ' . self::BASE_HTML_SIZE .
';}
281 body {font-size: ' . $size .
'rem;}
282 .g-font-size-default {font-size: ' . $size .
'rem;}
293 $hColor = $this->
getField(
'COLOR_H');
298 $css .=
"--theme-color-main: {$color} !important;";
302 $css .=
"--theme-color-title: {$hColor} !important;";
307 Asset::getInstance()->addString(
308 "<style>:root {{$css}}</style>",
310 AssetLocation::BEFORE_CSS
322 $fontWeight = $this->
getField(
'FONT_WEIGHT');
323 $hFontWeight = $this->
getField(
'FONT_WEIGHT_H');
325 $mainClass = Landing::getEditMode() ?
'.landing-edit-mode' :
'.landing-public-mode';
330 line-height: {$lineHeight};
331 font-weight: {$fontWeight};
334 {$mainClass} .h1, {$mainClass} .h2, {$mainClass} .h3, {$mainClass} .h4,
335 {$mainClass} .h5, {$mainClass} .h6, {$mainClass} .h7,
336 {$mainClass} h1, {$mainClass} h2, {$mainClass} h3, {$mainClass} h4,
337 {$mainClass} h5, {$mainClass} h6 {
338 font-weight: {$hFontWeight};
357 'CODE' =>
'Alegreya Sans',
358 'CODE_H' =>
'Alegreya Sans',
363 'CODE_H' =>
'Roboto',
368 'CODE_H' =>
'Roboto',
372 'CODE' =>
'Open Sans',
373 'CODE_H' =>
'Open Sans',
378 'CODE_H' =>
'Roboto',
382 'CODE' =>
'Open Sans',
383 'CODE_H' =>
'Open Sans',
387 'CODE' =>
'Open Sans',
388 'CODE_H' =>
'Open Sans',
392 'CODE' =>
'Open Sans',
393 'CODE_H' =>
'Open Sans',
397 'CODE' =>
'Open Sans',
398 'CODE_H' =>
'Open Sans',
402 'CODE' =>
'Alegreya Sans',
403 'CODE_H' =>
'Alegreya Sans',
407 'CODE' =>
'Open Sans',
408 'CODE_H' =>
'Open Sans',
413 'CODE_H' =>
'Roboto',
418 'CODE_H' =>
'Open Sans',
422 'CODE' =>
'Open Sans',
423 'CODE_H' =>
'Open Sans',
428 'CODE_H' =>
'Roboto',
432 'CODE' =>
'Open Sans',
433 'CODE_H' =>
'Open Sans',
437 'CODE' =>
'Montserrat',
438 'CODE_H' =>
'Montserrat',
442 'CODE' =>
'Open Sans',
443 'CODE_H' =>
'Open Sans',
447 'CODE' =>
'Open Sans',
448 'CODE_H' =>
'Open Sans',
453 'CODE_H' =>
'Roboto',
457 'CODE' =>
'Montserrat',
458 'CODE_H' =>
'Montserrat',
463 $queryOld = HookDataTable::query()
466 ->addSelect(
'PUBLIC')
467 ->addSelect(
'ENTITY_ID')
468 ->addSelect(
'ENTITY_TYPE')
469 ->where(
'HOOK',
'THEME')
470 ->where(
'CODE',
'CODE_TYPO')
471 ->where(Query::filter()
473 ->where(Query::filter()
474 ->where(
'ENTITY_ID', $lid)
475 ->where(
'ENTITY_TYPE', Hook::ENTITY_TYPE_LANDING)
477 ->where(Query::filter()
479 ->where(
'ENTITY_TYPE', Hook::ENTITY_TYPE_SITE)
483 while ($old = $queryOld->fetch())
486 $existing = HookDataTable::query()
488 ->where(
'HOOK',
'THEMEFONTS')
489 ->where(
'ENTITY_ID', $old[
'ENTITY_ID'])
490 ->where(
'ENTITY_TYPE', $old[
'ENTITY_TYPE'])
491 ->where(
'PUBLIC', $old[
'PUBLIC'])
496 $migrations[$old[
'VALUE']][
'USE'] =
'Y';
497 foreach ($migrations[$old[
'VALUE']] as
$code => $value)
501 'ENTITY_ID' => $old[
'ENTITY_ID'],
502 'ENTITY_TYPE' => $old[
'ENTITY_TYPE'],
503 'PUBLIC' => $old[
'PUBLIC'],
504 'HOOK' =>
'THEMEFONTS',
512 HookDataTable::delete($old[
'ID']);
static getFontLink(string $font)
static getDefaultValues()
static getFontWeightOptions()
static migrateFromTypoThemes(int $lid, int $siteId)
static convertFontName(string $fontName)
static getLineHeightOptions()
static isHex(string $color)
static resolveDomain(?string $region=null)
</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(!Loader::includeModule('sale')) $pattern