Почему отображается разный title при выводе новости в зависимости от того авторизирован пользователь на сайте или нет, Почему отображается разный title при выводе новости в зависимости от того авторизирован пользователь на сайте или нет
Решил вопрос через установку в $APPLICATION->IncludeComponent параметра "BROWSER_TITLE" => "NAME".
Тем не менее прошу пояснить если кто вкурсе, почему кеш компонента работает таким образом, что если установить title в файле на который приходит запрос(например /news/index.php) он устанавливается и далее всё работает, а если сделать это в файле шаблона вызываемого по $APPLICATION->IncludeComponent, то при первой загрузке страницы title отображается нормально, но в кеш попадает название инфоблока а не название страницы и при следующей загрузке страницы(особенно в не авторизированном режиме) в качестве title подгружается название инфоблока, поскольку это значение ранее попало в кеш.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Почему отображается разный title при выводе новости в зависимости от того авторизирован пользователь на сайте или нет, Почему отображается разный title при выводе новости в зависимости от того авторизирован пользователь на сайте или нет
Вот что обнаружил, после удаления файлов из /bitrix/cache/ в неавторизированном режиме первый раз title отображается как надо, то есть название новости из файла шаблона. Но если обновить страницу по F5, то опять подгружается "Новости и события" - название инфоблока. Если снова вычистить файлы из кеша то 1 раз опять отобразится правильный title.
Как решить ситуацию?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Почему отображается разный title при выводе новости в зависимости от того авторизирован пользователь на сайте или нет, Почему отображается разный title при выводе новости в зависимости от того авторизирован пользователь на сайте или нет
Задача: есть компонент новостей битрикс, сейчас в деталях нновости в качестве title выводится название инфоблока - "новости и события" а не название конкретной новости. необходимо установить в качестве title страницы название новости.
if (isset($arResult["NAME"]) and strlen($arResult["NAME"])) { $APPLICATION->SetPageProperty("title",str_replace("\"","",$arResult["NAME"])); } ?> <div class="container"> <section class="section-one wysiwyg"> <h1 class="section-header"> <?=$arResult["NAME"]?> </h1> <p class="section-subtitle" href=""> <?=$arResult["DATE_ACTIVE_FROM"]?> </p> </section> ... далее шаблон продолжается, здесь я его не привожу поскольку считаю, что дальнейший код не имеет значения для разрешения вопроса.
Суть проблемы: в авторизованном режиме title страницы выводится нормально - а именно из названия новости, за счёт размещённых в шаблоне строчек: if (isset($arResult["NAME"]) and strlen($arResult["NAME"])) { $APPLICATION->SetPageProperty("title",str_replace("\"","",$arResult["NAME"])); } Если выйти в админке то на этой странице в титле вместо названия новости выводится название инфоблока - "Новости и события", нужно чтобы выводилось название новости.
Сейчас удалось решить проблему строчкой перед вызовом компонента в файле /news/index.php, а именно: $APPLICATION->SetPageProperty("title",str_replace("\"","",NULL));
Подскажите пожалуйста в чём причина такого срабатывания. Как сделать правильно чтобы тайтл подставлялся из названия соответствующей новости.
Может ли быть проблема в кешировании(кеш страниц и компонента сбрасывался). Если да то где смотреть и что делать?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs, Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs
Метод addJs не умеет добавлять кодировку. Вы правильно сделали, что указали $APPLICATION->AddHeadString("<script async=\"\" src=\"//yastatic.net/share2/share.js\" charset=\"UTF8\"></script>",true); Это оптимальное решение.
С уважением, старший специалист техподдержки
Вопрос решён, топик закрыт.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs, Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs
Игорь Долгополов написал: Евгений Николаев , не совсем понял, то что вы используете - это просто обертка над тем, что я прислал. Т.е. этот один и тот же метод.
По ссылке что Вы прислали был фрагмент текста:
Нестатический метод добавляет строку в секцию <head>…</head> сайта.
Аналог метода CMain::HeadString в старом ядре.
CMain::HeadString был выделен ссылкой, я перешёл по ней и использовал инфу с неё.
Игорь Долгополов написал: то что вы используете - это просто обертка над тем, что я прислал. Т.е. этот один и тот же метод.
Павел написал: Стандартная страница корзины. В Internet Explorer если переходить на сайт через https, то не работает пересчет товаров при изменении количества и не применяется купон. Показывается анимация загрузки и как бы зависает. Если нажать F5, то все пересчитывается. Через http все нормально. Подскажите, как починить
В Internet Explorer могут не работать сертификаты Let's Encript, а в IE 6 например который идёт стандартным в Windows XP не работает global sn который ставится басплатно при покупке домена в reg ru. Возможно дело не в Bitrix а в Вашем сертификате SSL. Посмотрите информацию по Вашему сертификату и выясните должен ли он работать в Вашей версии браузера. Не утверждаю что Ваша проблема в этом, предлагаю лишь проверить.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs, Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs
Благодарю за ответ, разумеется плюс к репутации. Только вместо рекомендованного Вами метода addstring использую AddHeadScript А именно добавляю скрипт так: $APPLICATION->AddHeadString("<script async=\"\" src=\"//yastatic.net/share2/share.js\" charset=\"UTF8\"></script>",true);
Таким образом код добавления кнопок теперь выглядит так: <div> <h2> Поделиться новостью в соцсетях: </h2> <?php // Кнопки расшара в социальные сети. Для работы требуются JS скрипты, ниже реализуем их подгрузку use Bitrix\Main\Page\Asset; Asset::getInstance()->addJs("//yastatic.net/es5-shims/0.0.2/es5-shims.min.js"); $APPLICATION->AddHeadString("<script async=\"\" src=\"//yastatic.net/share2/share.js\" charset=\"UTF8\"></script>",true); ?> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki"></div> </div>
Как я понял методом addJs кодировку не указать. По данному поводу написал в тех поддержку, позже отпишусь о их ответе.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs, Указание кодировки при добавлении JavaScript файла в шапку сайта методом Asset::getInstance()->addJs
Сайт на битрикс работает в кодировке Windows-1251 Требуется разместить на странице новостей кнопки от яндекс для расшаривания контента в социальные сети, для чего требуется разместить div и подключить 2 JavaScript файла с //yastatic.net/. Информация в одном из подключаемых файлов содержит текст на русском языке, но файлы на //yastatic.net/ выложены в кодировке UTF-8, таким образом кнопки визуализируются в браузере с появлением "иероглифов" вместо слов "вконтакте" и "однокласники" в месте появления подсказок alt и title.
Для решения данной проблемы можно было бы указать браузеру, что файл //yastatic.net/share2/share.js" размещён в кодировке UTF8, в HTML это выглядело бы так:<script async="" src="//yastatic.net/share2/share.js" charset="UTF8"></script> Но для подгрузки JavaScript в битрикс имеется метод addJs, реализуемый например так: use Bitrix\Main\Page\Asset; Asset::getInstance()->addJs('//yastatic.net/es5-shims/0.0.2/es5-shims.min.js'); Asset::getInstance()->addJs('//yastatic.net/share2/share.js');
Вопрос топика: как в методе addJs сообщить фреймворку битрикса, чтобы HTML подгрузки JavaScript был сгенерирован таким образом чтобы в нём была указана кодировка, а именно charset="UTF8"?
Поискал и не нашёл такой возможности. Может я плохо искал? Отпишитесь если знаете как сделать?
Сейчас реализовал задачу вывода кнопок расшаривания в социальных сетях так:
<div> <h2> Поделиться новостью в соцсетях: </h2> <?php // Кнопки расшара в социальные сети. Для работы требуются JS скрипты, ниже реализуем их подгрузку use Bitrix\Main\Page\Asset; Asset::getInstance()->addJs('//yastatic.net/es5-shims/0.0.2/es5-shims.min.js'); // Asset::getInstance()->addJs('//yastatic.net/share2/share.js'); ?> <script async="" src="//yastatic.net/share2/share.js" charset="UTF8"></script> <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki"></div> </div>
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Для начала имеет смысл сопоставить время изменения файлов(содержащих вирус) с логами FTP и HTTP, скорее всего уже это натолкнёт на ответ. Так же можно поискать вирусы с помощью AI BOLIT. Если первый и второй вариант не помогли и сайт размещён на сервере к которому имеется root доступ имеет смысл установить снифер и сохранить все обращения. Просканировать трафик, посмотреть источники активности и методы реализации изменения файлов на хостинге.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Жаль минусатор репутации на форуме не предусмотрен. Могли бы постараться на seo в поисковой системе, для тех кто ищет решение проблемы в поисковике. Предполагаю возможный ответ: будет найдена другая страница а не данный топик на форуме, с ним заранее не согласен, поскольку информация по конкретному вопросу могла бы быть изложена здесь в более удобной последовательности для конечного пользователя.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
vitaly_keng написал: Редактировать ядро - всегда неправильно. Если у вас задача эта для админки, то у вас остаются какие-то непустые значения в списке и первое будет все равно выбрано по умолчанию. Не проще ли тогда его сразу и сделать по умолчанию? Если задача для паблика, то на уровне шаблона компонентов можно редактировать отображение selectbox
Чтобы в текущем топике появилась возможно кому то интересная информация, отпишитесь пожалуйста как именно редактируется отображение selectbox в случаи паблика.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
vitaly_keng, возможно не понял чего то из того что Вы написали. На прикреплённой картинке подробнее по задаче. Суть в том что не важно какое поле выбирается по умолчанию, у пользователя в админке всё равно остаётся возможность выбирать "(значение не задано)", даже если указано что поле является обязательным и казалось бы необходимости в значение не задано просто нет. Можно конечно оставить и с этим полем, но хотелось бы убрать бесполезную информацию из формы.
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить
Здравствуйте! Создал тип инфоблока в нём инфоблок, в инфоблоке добавлено свойство, одно из них типа список. У списка задал значения, верхним значением идёт стандартное значение по умолчанию. Кнопки чтобы убрать значение по умолчанию не нашёл. Таким образом при создании элемента инфоблока имеется возможность оставить значение по умолчанию, а мне нужно чтобы такой возможности не было. У меня в списке должно быть 2 - "Наши мероприятия" и "Внешние мероприятия". Должно быть что при создании нового элемента у этого свойства была возможность выбрать только из этих пунктов, то есть чтобы пользователь обязательно выбрал или одно или другое - нельзя давать пользователю возможность выбрать пустое значение для этого поля которое сейчас идёт по умолчанию. Как сделать?
Может быть в админовском шаблоне php кодом можно залочить, где такой шаблон искать? Код впишу сам, мне нужно просто понимать где находится этот шаблон.
Или подскажите как средствами битрикса сделать?
Моё резюме и мои контакты на SuperJob -> перейти Верефицированный WMID 274708912937 -> проверить