• Как в Битриксе задать свой класс для body определенного типа страниц?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Прочитайте про отложенные функции, они должны вам помочь.
    dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LES...
    CMain::SetPageProperty
    CMain::ShowProperty

    В файле component_epilog.php нужного шаблона для catalog.element задаете свойство, а в header.php шаблона добавляете вывод "отложенного" значения.
    Ответ написан
    Комментировать
  • Где найти вывод цены в шаблоне Битрикс?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    В админке:
    "Настройки" - "Валюты" - "Список валют"
    далее выбрать нужную и перейти к ее редактированию
    take.ms/26UMk
    Ответ написан
    Комментировать
  • Почему api битрикса удаляет информацию из заказов?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Есть свойства со своими ID, а есть значения свойств заказов, у которых тоже есть свои ID и своя таблица.
    CSaleOrderPropsValue::Update работает именно со значениями свойств. Поэтому получается, что вы значения свойств одного заказа перепривязываете к новому заказу.

    Вам надо использовать CSaleOrderPropsValue::Add, чтобы добавить новые параметры к новому заказу.
    https://dev.1c-bitrix.ru/api_help/sale/classes/csa...
    Ответ написан
    Комментировать
  • Импорт из 1С УТ в Битрикс как сделать оффлайн?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Стандартный импорт через XML не будет работать в данном случае.

    Информация по этой ссылке должна вам помочь
    https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Ответ написан
    Комментировать
  • Битрикс, компонент в элементе каталога?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Размещать компоненты в template.php нужно очень осторожно.

    Во-первых, этот вариант без дополнительных манипуляций будет работать только при отключенном кешировании сайта или, как вы и заметили, только при первой загрузке страницы после сброса кеша. Во-вторых, это может привести к некорректному кешированию компонентов и к росту файлов кеша.

    В случае такой вложенности стили и скрипты подключаются только для catalog.element, а для внутреннего catalog.section стили style.css и скрипты script.js подключатся только на первый раз, когда кеш для страницы еще не готов, но при повторном запросе страниц подгружаться уже не будут.

    Один из способов - это вынести содержимое файлов style.css, script.js из шаблона для catalog.section и разместить их в соответствующих файлах catalog.element, но этот способ не очень красивый и логичный.

    Правильнее сделать так:
    • подключите catalog.section либо в файле element.php, если используете комплексный компонент catalog
    • либо в файле component_epilog.php шаблона catalog.element.
    • либо в файле result_modifier.php шаблона catalog.element сделайте через API выборку новинок, а в template.php без использования дополнительных компонентов выведите эти данные
    Ответ написан
  • Какой из перечисленных ниже вариантов организации структуры каталога наиболее правильный с точки зрения SEO и автоматизации веб-аналитики?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Использовать ID в адресах точно не стоит, так как в процессе работы сайта ID разделов и товаров могут измениться, и у вас появится куча нерабочих страниц в поиске, и нужно будет настраивать 301 редиректы, чтобы направить на актуальные страницы.

    Я сам использую обычно такие адреса, поскольку мне они кажутся более логичными:
    /catalog/category/subcategory/
    /catalog/category/subcategory/item-code/

    Периодически встречаю такие правила формирования адресов:
    для разделов
    /catalog/category1/
    /catalog/category2/
    /catalog/subcategory1/
    /catalog/subcategory2/
    для элементов
    /catalog/goods/item-code/
    /catalog/item-code/
    /goods/item-code/

    Для элементов использовать
    /goods/item-code/
    может быть удобнее, если один товар может находится в разных разделах, и если символьные коды у них однозначно не будут дублироваться. У товара в этом случае есть один фактический адрес, чтобы не создавать дубликаты страниц и не указывать канонические ссылки.
    Но если даже один товар может находиться в разных разделах, то с точки зрения посетителя вроде как удобнее видеть, в каком сейчас разделе он просматривает товар, т.е. чтобы элемент был доступен по адресам:
    /catalog/category/subcategory1/item-code/
    /catalog/category/subcategory2/item-code/
    Для отсутствия дублей в поиске нужно прописывать канонические url.

    Итого, рекомендую такую структуру
    /catalog/category/subcategory/
    /catalog/category/subcategory/item-code/

    если товар может быть привязан к нескольким категориям, я использую
    /catalog/category/subcategory/
    /catalog/category/subcategory1/item-code/
    /catalog/category/subcategory2/item-code/
    и ссылку на товар subcategory1 использую в качестве канонической

    Этот вариант также допускает возможность иметь в разных разделах подразделы и товары с одинаковыми символьными кодами.

    P.S. Может, seo-специалисты считают иначе и выскажут свое мнение.
    Ответ написан
    Комментировать
  • Выборка товаров по свойству битрикс?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    А если так сделать?
    $arrFilternovelty = Array('!PROPERTY_NEWPRODUCT' => false);

    NEWPRODUCT имеет тип "Список"?
    Если в фильтре вы пишете PROPERTY_NEWPRODUCT_VALUE, тогда нужно сравнивать именно со значением списочного свойства, к примеру:
    $arrFilternovelty = Array('PROPERTY_NEWPRODUCT_VALUE' => 'Да');
    или так, если у значения свойства "Да" установлен XML_ID 'Y':
    $arrFilternovelty = Array('PROPERTY_NEWPRODUCT_VALUE_XML_ID' => 'Y');
    Ответ написан
  • Неконтролируемо растет занимаемый сайтом дискспейс, что делать?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Резервные копии сохраняются либо в облако, либо в папку /bitrix/backup/.
    Список резервных копий доступен из админки.

    Варианты, из-за чего растет объем занимаемого места:
    1) включено автоматическое резервное копирование, при этом устаревшие бекапы не удаляются
    2) неправильно спроектирован сайт, и растет объем закешированных данных.
    3) на сайте очень много картинок, и растет объем изображений, которые формируются при ресайзе исходных картинок
    4) ошибки в настройке прав доступа, и битриксу не хватает прав для автоматического удаления устаревшего кеша.

    Чтобы понять, какая именно папка занимает большой объем, подключитесь по ssh к серверу и воспользуйтесь утилитой du, которая покажет, что и сколько занимает. Я обычно смотрю объем занимаемого места командой
    du -h --max-depth=1
    Ответ написан
    1 комментарий
  • Как в Битриксе устанавливать количество товара автоматически при добавлении?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    CCatalogProduct::Update
    https://dev.1c-bitrix.ru/api_help/catalog/classes/...

    Только устанавливать количество нужно в обработчике события OnAfterIBlockElementAdd, т.е. после того, как сам элемент будет создан.
    Ответ написан
    Комментировать
  • Как отследить изменение select?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Если меняете через кнопки значения, нужно отдельно об этом сообщить через trigger('change'):

    select
    .children(`option[value='${value}']`)
    .prop('selected', true)
    .trigger('change');
    Ответ написан
    Комментировать
  • Как убрать конечный слеш в адресной строке?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Предположу, что добавление слешей у вас идет на уровне сервера, а не на уровне самого сайта. А изменения в urlrewrite не влияют на добавление слешей никак, поскольку этот файл предназначен для парсинга url и подключения необходимого файла для обработки. И вопрос на всякий случай: может, какой-то модуль для битрикса установлен, который добавляет слеши?

    В .htaccess где-то выше указанного блока точно не присутствуют правила редиректа страниц без слеша на страницы со слешем?

    Можно еще при помощи сервиса яндекса https://webmaster.yandex.ru/tools/server-response/ проверить, какой статус отдают страницы вида site.ru/poezda/poezd2

    UPD.

    Проверил на одном из своих сайтов, у меня заработало как надо с такими изменениями htaccess take.ms/N3WEE:

    1. В секцию mod_dir добавляем строку

    DirectorySlash Off

    2. В секцию mod_rewrite добавляем строки

    RewriteCond %{REQUEST_URI} ^.*[^/]$
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}/index.php -f
    RewriteRule ^(.*)$ /$1/index.php [L]

    Индексные страницы разделов стали открываться как со слешем, так и без слеша на конце.
    Ответ написан
    6 комментариев
  • Как запрограммировать слайдер на битрикс?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Вы используете catalog.section, у которого, во-первых, выборка элементов находится в $arResult["ITEMS"], а во-вторых, PROPERTY_IMAGES_VALUE используется, если вы через CIBlockElement::GetList сами будете делать выборку свойств (но поскольку изображения хранятся во множественном свойстве, то решается это обычно не через CIBlockElement::GetList, а через CIBlockProperty::GetList).

    Поскольку вы обрабатываете уже готовую выборку элементов в result_modifier.php, то доступ к значениям свойств элементов идет не через PROPERTY_IMAGES_VALUE, а так: ["PROPERTIES"]["IMAGES"]["VALUE"].

    Т.е. в общем случае для вашего варианта нужна такая конструкция:

    foreach ($arResult["ITEMS"] as &$arItem) 
    {
    	$arItem["IMAGES"] = array();
    	foreach ($arItem["PROPERTIES"]["IMAGES"]["VALUE"] as $imageId) 
    	{
    		$arItem["IMAGES"][] = CFile::GetFileArray($imageId);
    	}
    }
    unset($arItem);


    и в подобных ситуациях удобнее посмотреть весь результат, чтобы увидеть, какие данные где находятся:
    var_dump($arResult);
    или
    print_r($arResult);
    Ответ написан
    2 комментария
  • Как вывести все элементы раздела?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Проверьте, какое значение у параметра SECTION_CODE, оно должно быть пустым, как и у SECTION_ID. Второй вариант - если вдруг случайно в фильтре для элементов, задаваемом параметром FILTER_NAME, было добавлено ограничение по разделам.
    Ответ написан
    3 комментария
  • Как узнать какой компонент загружается?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Как разобраться с этим чертовым битриксом, где он это берет?

    Предположу, что причина не в битриксе, а в неправильно написанных разработчиками js-скриптах, которые должны были реализовать логику сортировки.

    Для начала выявите точно проблемное место - например, уберите временно блок с сортировкой, посмотрите, будет ли идти перезагрузка. Если она пропадет, ищите js-скрипты, которые связаны с функциональностью сортировки.
    Ответ написан
    Комментировать
  • Как настроить отправку smtp в битрикс?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    1. Если хостинг виртуальный, на нем может быть запрещена отправка по smtp
    2. Возможно, на стороне office365 нужно что-то включить (или отключить) в аккаунте администратора. Например, чтобы отправлять с сайта по smtp через Google-почту для доменов, в аккаунте администратора нужно отключить одну из галочек, связанных с безопасностью, которая по умолчанию не разрешает отправлять по smtp из внешних приложений (сайтов).
    3. Какие-то другие причины.

    Какой модуль? Если из маркетплейса, обратитесь к его разработчикам, вполне вероятно, что они сталкивались с такой проблемой.

    Попробуйте самостоятельно реализовать отправку писем при помощи PHPMailer и создание функции custom_mail, которую использует битрикс для отправки писем, если эту фунцию определить. По крайней мере с помощью PHPMailer можно будет увидеть, что отвечает почтовый сервер (ошибки или какую-то дополнительную информацию).
    Ответ написан
    Комментировать
  • Как найти причину дублирования почтовых сообщений в битриксе?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    В настройках главного модуля есть пункт
    "E-Mail (или список через запятую), на который будут дублироваться исходящие сообщения:"
    если там указана почта, то на нее дублируются все отправляемые через почтовый модуль сообщения
    Ответ написан
    1 комментарий
  • Как разделить компоненты в битрикс?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Насколько я понял из скриншотов, компонент для "Вас также может заинтересовать" вы добавили непосредственно в файл /news/index.php?

    Если вы используете комплексный компонент news, то компонент для "Вас также может заинтересовать" нужно располагать в файле element.php компонента news.
    Ответ написан
    Комментировать
  • Как у вас организован процесс разработки на Битрикс?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Расскажите, как упростить жизнь и не править всё через админскую часть?

    А зачем править через админскую часть, если есть ftp, sftp? Правки кода или стилей через админскую часть - странное решение, хоть битрикс, хоть не битрикс.

    Как верстать и натягивать шаблон на локальной версии и отправлять всё на основной сайт

    Настройте систему контроля версий, разверните копию сайта на поддомене или локально, делайте, что нужно, проверяйте, а потом отправляйте изменения на рабочий сайт. И это тоже не только к сайтам на битриксе относится.
    Ответ написан
    2 комментария
  • Перевести битрикс на https?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Перевести на https - это ведь не к битриксу вопрос, а именно к хостеру, у техподдержки которого и нужно узнавать, какие действия нужно предпринять, чтобы подключить SSL-сертификат. Некоторые хостеры сейчас предлагают ставить также бесплатные сертификаты LetsEncrypt, но что лучше - платный или бесплатный, лучше у хостера и проконсультироваться или почитать в интернетах.

    После подключения SSL-сертификата со стороны битрикс-сайта (или на любой другой CMS) нужно убедиться, что все внешние скрипты подключаются по протоколу https, т.е. чтобы не было предупреждений от браузера и показывалось, что все ок take.ms/Pf2RG

    Еще потребуется настроить в .htaccess или на стороне сервера принудительную переадресацию с http на https так, чтобы страницы не потерялись в поиске.
    Ответ написан
  • Как сделать одну страницу сайта битрикс на английском?

    workDNK
    @workDNK
    Разработчик сайтов на 1С-Битрикс
    Создаёте у новостей дополнительное свойство "Текст на английском", добавляете новый параметр, например, LANG к компоненту news.list (через файл .parameters.php для используемого шаблона), в который в зависимости от страницы передаете ru или en, а затем уже в самом шаблоне в зависимости от значения параметра LANG выводите либо текст на русском из одних полей (свойств), либо на английском из других полей (свойств).

    Но это частный случай. Если же задача на самом деле шире, т.е. у сайта должны быть две языковые версии с переводом всего содержимого, то вариантов реализации несколько, и выбор того или иного способа зависит от многих факторов.
    Ответ написан