Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

meta description на ру и на eng, тогда когда нужно

00 голосов
1
Всем привет! У меня есть проблема в том что когда я задал для элемента описание аноса на ру, а детальное на eng при изменение языка сайта с ру на англ, description в meta остаеться на ру. что делать?Зарание спасибо.
спросил 15 Окт, 15 от аноним

1 Ответ

00 голосов

Добрый день. А где вы это меняете?
По идее страницы для RU и для EN длжны быть разными, с разными title и description. 

>> при изменение языка сайта

ответил 16 Окт, 15 от root (25,590 баллов)
Менять я пробовал в инфоблоке, думал что если я на ru или на eng напишу булет меняться

При создании есть 2 сайта:  s1 и en вся основа на s1, но при переходе на en он должен отображать тотже s1 и менять title и desription на eng. Решение котороя я предпринял это:
1) Убрал из инфоблока "Шаблон META DESCRIPTION",  "Шаблон META TITLE" и создал 4 св-ва с названием "META DESCRIPTION RUS", "META DESCRIPTION ENG", "META TITLE RUS", "META TITLE RUS" для элементов. Также создал 4 Пользовательских поля UF_META_DESC_RUS, UF_META_DESC_ENG,  UF_META_TITLE_RUS,  UF_META_TITLE_ENG для раздела.
2) В созданном файле создаю component_epilog.php через условия есть у элемента описание или нет мы берем у раздела, также через функцию  SetPageProperty я передаю description, тот который мне нужно для рус или англ. тоже я проделываю и для title.
Но мне интересно, можно ли было сделать намного проше в моем варианте?
Разве что покопавшись в коде ядра можно было бы найти метод получения значения META_TITLE и META_DESCRIPTION из встроенных "шаблонов" - сэкономили бы на рутине со свойствами и пользовательскими полями. А избежать работы с component_epilog и задействовать компонентный кеш для 2х языков можно передав параметр языка сайта в один из параметров компонента -- по умолчанию ключ кеша содержит хеш от всех параметров компонента.
Здравствуйте и спасибо, что ответили, но мне нельзя лазить в ядро так как я могу нарушить целостность(так как я с битриксом дружу всего 1 месяц) и при обновлении все может исчезнуть. И звените, но я не много непонел про что вы имели ввиду когда говорили: " задействовать компонентный кеш для 2х языков можно передав параметр языка сайта в один из параметров компонента -- по умолчанию ключ кеша содержит хеш от всех параметров компонента. "
Под "лазить в ядро" я имел в виду читать, а не писать =) Изучение исходников ядра открывает возможности применения ещё не документированного (и ещё неизвестно когда оно будет) нового функционала.
Про кеширование - https://dev.1c-bitrix.ru/api_help/main/reference/cbitrixcomponent/startresultcache.php
"Кеш зависит от текущего сайта ( SITE_ID), имени компонента, имени шаблона, входных параметров $arParams. " То есть для одного и того же места добавив в параметры "CUR_LANG" => "RU" или "EN" вы получите 2 закешированных шаблона. И код из component_epilog можно было бы убрать в template.php

Похожие вопросы

0 голосов
4 ответов
спросил 12 Июнь, 13 от maytreya (280 баллов)
0 голосов
1 ответ
спросил 11 Апр, 13 от DemLyrg (140 баллов)
0 голосов
1 ответ
0 голосов
0 ответов