2namespace Bitrix\Landing\Hook\Page;
4use Bitrix\Landing\Field;
5use Bitrix\Landing\Manager;
7use Bitrix\Main\Localization\Loc;
16 'g-font-open-sans' => [
17 'name' =>
'Open Sans',
18 'family' =>
'"Open Sans", Helvetica, Arial, sans-serif',
19 'url' =>
'https://fonts.googleapis.com/css2?family=Open+Sans:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic',
23 'family' =>
'"Roboto", Arial, sans-serif',
24 'url' =>
'https://fonts.googleapis.com/css2?family=Roboto:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic,cyrillic-ext,latin-ext',
26 'g-font-roboto-slab' => [
27 'name' =>
'Roboto Slab',
28 'family' =>
'"Roboto Slab", Helvetica, Arial, sans-serif',
29 'url' =>
'https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic,cyrillic-ext,latin-ext',
31 'g-font-montserrat' => [
32 'name' =>
'Montserrat',
33 'family' =>
'"Montserrat", Helvetica, Arial, sans-serif',
34 'url' =>
'https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic',
36 'g-font-alegreya-sans' => [
37 'name' =>
'Alegreya Sans',
38 'family' =>
'"Alegreya Sans", sans-serif',
39 'url' =>
'https://fonts.googleapis.com/css2?family=Alegreya+Sans:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic-ext,latin-ext',
41 'g-font-cormorant-infant' => [
42 'name' =>
'Cormorant Infant',
43 'family' =>
'"Cormorant Infant", serif',
44 'url' =>
'https://fonts.googleapis.com/css2?family=Cormorant+Infant:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic-ext,latin-ext',
46 'g-font-pt-sans-caption' => [
47 'name' =>
'PT Sans Caption',
48 'family' =>
'"PT Sans Caption", sans-serif',
49 'url' =>
'https://fonts.googleapis.com/css2?family=PT+Sans+Caption:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic-ext,latin-ext',
51 'g-font-pt-sans-narrow' => [
52 'name' =>
'PT Sans Narrow',
53 'family' =>
'"PT Sans Narrow", sans-serif',
54 'url' =>
'https://fonts.googleapis.com/css2?family=PT+Sans+Narrow:wght@100;200;300;400;500;600;700;800;900&PT+Sans:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic-ext,latin-ext',
58 'family' =>
'"PT Sans", sans-serif',
59 'url' =>
'https://fonts.googleapis.com/css2?family=PT+Sans:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic-ext,latin-ext',
63 'family' =>
'"Lobster", cursive',
64 'url' =>
'https://fonts.googleapis.com/css2?family=Lobster:wght@100;200;300;400;500;600;700;800;900&subset=cyrillic-ext,latin-ext',
83 'title' => Loc::getMessage(
'LNDNGHOOK_FONTS_FONT_BASE'),
104 if (!array_key_exists($fontCode, self::$setFonts))
106 self::$setFonts[$fontCode] = [];
116 if (!self::$setFonts)
122 $this->fields[
'CODE'] = str_replace(
123 [
'st yle',
'onl oad',
'li nk'],
124 [
'style',
'onload',
'link'],
125 $this->fields[
'CODE']
127 $styleFound = preg_match_all(
128 '#(<noscript>.*?<style.*?data-id="([^"]+)"[^>]*>[^<]+</style>)#is',
129 $this->fields[
'CODE'],
150 foreach (self::$setFonts as $fontCode => $foo)
152 if (isset($fonts[$fontCode]))
154 unset(self::$setFonts[$fontCode]);
155 $setFonts[] = self::proxyFontUrl($fonts[$fontCode]);
160 foreach (self::$setFonts as $fontCode => $foo)
162 $setFonts[] = self::outputDefaultFont($fontCode);
181 if (isset(self::DEFAULT_FONTS[
$code]))
183 $fontUrl = self::DEFAULT_FONTS[
$code][
'url'];
184 $fontUrl = self::proxyFontUrl($fontUrl);
189 onload="this.removeAttribute(\'onload\');this.rel=\'stylesheet\'"
190 data-font="' .
$code .
'"
191 data-protected="true"
192 href="' . $fontUrl .
'">
196 data-font="' .
$code .
'"
197 data-protected="true"
198 href="' . $fontUrl .
'">
214 $fontUrl =
"https://fonts.bitrix24.ru/css2?family="
215 . str_replace(
' ',
'+', $fontName)
216 .
":wght@100;200;300;400;500;600;700;800;900";
217 $fontClass = strtolower(str_replace(
' ',
'-', $fontName));
220 <noscript><link rel=
"stylesheet" href=
"$fontUrl" data-font=
"g-font-$fontClass"></noscript>
221 <link rel=
"preload" href=
"$fontUrl" data-font=
"g-font-$fontClass" onload=
"this.removeAttribute('onload');this.rel='stylesheet'" as=
"style">
222 <
style data-
id=
"g-font-$fontClass">.g-font-$fontClass { font-family:
"$fontName", sans-serif; }</
style>
231 protected static function proxyFontUrl(
string $fontString): string
233 $defaultDomain =
'fonts.googleapis.com';
234 $proxyDomain = $defaultDomain;
240 return ($defaultDomain !== $proxyDomain)
241 ? str_replace($defaultDomain, $proxyDomain, $fontString)
static outputDefaultFont(string $code)
static setFontCode(string $fontCode)
outputFonts(array $fonts)
static generateFontTags(string $fontName)
static setPageView(string $marker, string $content, bool $skipTrim=false)
static includeModule($moduleName)
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