- Как сравнить товары?
- Где может быть ошибка при переходе на страницу сравнения товара?
- Добавление и удаление из сравнения на AJAX: Битрикс
- Не большое видео, что должно получиться
- Делаем AJAX добавление в сравнение
- Устранение ошибок CMS Битрикс
- Отправка почты
- Режим работы MySQL
- Размер стека и pcre.recursion_limit
- Выполнение агентов на cron
- Обязательные параметры PHP
Как сравнить товары?
Как сравнить товары? Знаю, что вопрос простой, но на форуме ответа я не нашел.
Использую комплексный компонент «Каталог». В настройках указал что нужно использовать сравнение.
Но на сайте ничего не появилось (ни кнопки, ни чего).
Возникают вопросы:
1. Как добавить товар к сравнению?
Вот этот код в шаблоне ничего не добавляет у меня
2. На какой странице в комплексном компоненте выводится таблица сравнения?
Указал в параметрах компонента /catalog/compare/, но при заходе на эту страницу там нет никакой таблицы.
3. Что значит уникальное имя для списка сравнения CATALOG_COMPARE_LIST? Где оно используется?
Буду признателен, если разъясните мне эти вопросы.
Спасибо.
Вообще о добавление можете почитать к примеру тут Сравнение ajax
При условии что стоит глобальная компонента каталога в директории /catalog/ ссылка на сравнить
| Цитата |
|---|
| Юрий Шубин пишет: Как сравнить товары? Знаю, что вопрос простой, но на форуме ответа я не нашел. |
Использую комплексный компонент «Каталог». В настройках указал что нужно использовать сравнение.
Но на сайте ничего не появилось (ни кнопки, ни чего).
Возникают вопросы:
1. Как добавить товар к сравнению?
Вот этот код в шаблоне ничего не добавляет у меня
2. На какой странице в комплексном компоненте выводится таблица сравнения?
Указал в параметрах компонента /catalog/compare/, но при заходе на эту страницу там нет никакой таблицы.
3. Что значит уникальное имя для списка сравнения CATALOG_COMPARE_LIST? Где оно используется?
Источник
Где может быть ошибка при переходе на страницу сравнения товара?
Добавляю товар для сравнения, товар добавляется. После жму на ссылку перейти на страницу сравнения и вместо ожидаемого запроса вида
catalog/compare.php?action=COMPARE
получаю такой ответ с сервера
catalog/compare.php/?action=COMPARE
не знаете откуда берется / перед знаком ? — са
Даже если сделать прямой переход на
catalog/compare.php
то все равно появляется / и 404 ошибка
если в запросе стереть / и перейти
catalog/compare.php/?action=COMPARE стираю
catalog/compare.php?action=COMPARE то все равно попадаю на страниц 404 и в запросе опять появляется /
- Вопрос задан более трёх лет назад
- 476 просмотров
$APPLICATION->IncludeComponent(
«bitrix:catalog»,
«main»,
«DETAIL_SET_CANONICAL_URL» => «N»,
«DETAIL_SET_VIEWED_IN_COMPONENT» => «N»,
«DETAIL_SHOW_BASIS_PRICE» => «Y»,
«DETAIL_SHOW_MAX_QUANTITY» => «N»,
«DETAIL_USE_COMMENTS» => «N»,
«DETAIL_USE_VOTE_RATING» => «N»,
«DISABLE_INIT_JS_IN_COMPONENT» => «N»,
«DISPLAY_BOTTOM_PAGER» => «N»,
«DISPLAY_ELEMENT_SELECT_BOX» => «Y»,
«DISPLAY_TOP_PAGER» => «Y»,
«ELEMENT_SORT_FIELD» => «((isset(\$filter[\»SEP\»][\»SORT\»])&&!empty(\$filter[\»SEP\»][\»SORT\»]))?\$filter[\»SEP\»][\»SORT\»]:\»catalog_PRICE_4\»)»,
«ELEMENT_SORT_FIELD2» => «shows»,
«ELEMENT_SORT_FIELD_BOX» => «name»,
«ELEMENT_SORT_FIELD_BOX2» => «id»,
«ELEMENT_SORT_ORDER» => «((isset(\$filter[\»SEP\»][\»ORDER\»])&&!empty(\$filter[\»SEP\»][\»ORDER\»]))?\$filter[\»SEP\»][\»ORDER\»]:\»asc\»)»,
«ELEMENT_SORT_ORDER2» => «asc»,
«ELEMENT_SORT_ORDER_BOX» => «asc»,
«ELEMENT_SORT_ORDER_BOX2» => «desc»,
«FILE_404» => «/404.php»,
«FILTER_VIEW_MODE» => «VERTICAL»,
«HIDE_NOT_AVAILABLE» => «N»,
«IBLOCK_ID» => «22»,
«IBLOCK_TYPE» => «catalog»,
«INCLUDE_SUBSECTIONS» => «N»,
«LABEL_PROP» => «UF_TYPE_ITEM»,
«LINE_ELEMENT_COUNT» => «3»,
«LINK_ELEMENTS_URL» => «link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#»,
«LINK_IBLOCK_ID» => «22»,
«LINK_IBLOCK_TYPE» => «catalog»,
«LINK_PROPERTY_SID» => «LINK_ELEM»,
«LIST_BROWSER_TITLE» => «-«,
«LIST_META_DESCRIPTION» => «-«,
«LIST_META_KEYWORDS» => «-«,
«LIST_OFFERS_FIELD_CODE» => array(
0 => «ID»,
1 => «NAME»,
2 => «»,
),
«LIST_OFFERS_LIMIT» => «0»,
«LIST_OFFERS_PROPERTY_CODE» => array(
0 => «MORE_PHOTO»,
1 => «CML2_MANUFACTURER»,
2 => «STATUS»,
3 => «»,
),
«LIST_PROPERTY_CODE» => array(
0 => «»,
1 => «PROFIL_KLIENTA»,
2 => «»,
),
«MESSAGE_404» => «»,
«MESS_BTN_ADD_TO_BASKET» => «В корзину»,
«MESS_BTN_BUY» => «Купить»,
«MESS_BTN_COMPARE» => «Сравнение»,
«MESS_BTN_DETAIL» => «Подробнее»,
«MESS_NOT_AVAILABLE» => «Нет в наличии»,
«OFFERS_CART_PROPERTIES» => array(
0 => «CML2_ARTICLE»,
),
«PAGER_BASE_LINK_ENABLE» => «N»,
«PAGER_DESC_NUMBERING» => «N»,
«PAGER_DESC_NUMBERING_CACHE_TIME» => «36000»,
«PAGER_SHOW_ALL» => «N»,
«PAGER_SHOW_ALWAYS» => «N»,
«PAGER_TEMPLATE» => «catalog»,
«PAGER_TITLE» => «Товары»,
«PAGE_ELEMENT_COUNT» => ((isset($filter[«PAGE_COUNT»])&&!empty($filter[«PAGE_COUNT»]))?$filter[«PAGE_COUNT»]:50),
«PARTIAL_PRODUCT_PROPERTIES» => «N»,
«PRICE_CODE» => array(
0 => «23.01.2017 valuta»,
),
«PRICE_VAT_INCLUDE» => «Y»,
«PRICE_VAT_SHOW_VALUE» => «N»,
«PRODUCT_DISPLAY_MODE» => «Y»,
«PRODUCT_ID_VARIABLE» => «id»,
«PRODUCT_PROPERTIES» => array(
0 => «CML2_ATTRIBUTES»,
),
«PRODUCT_PROPS_VARIABLE» => «prop»,
«PRODUCT_QUANTITY_VARIABLE» => «quantity»,
«SECTIONS_SHOW_PARENT_NAME» => «Y»,
«SECTIONS_VIEW_MODE» => «LIST»,
«SECTION_ADD_TO_BASKET_ACTION» => «ADD»,
«SECTION_BACKGROUND_IMAGE» => «-«,
«SECTION_COUNT_ELEMENTS» => «N»,
«SECTION_ID_VARIABLE» => «SECTION_ID»,
«SECTION_TOP_DEPTH» => «3»,
«SEF_FOLDER» => «/catalog/»,
«SEF_MODE» => «Y»,
«SEPARATE_SECT_ID» => «953»,
«SET_LAST_MODIFIED» => «N»,
«SET_STATUS_404» => «Y»,
«SET_TITLE» => «N»,
«SHOW_404» => «N»,
«SHOW_DEACTIVATED» => «N»,
«SHOW_DISCOUNT_PERCENT» => «N»,
«SHOW_OLD_PRICE» => «Y»,
«SHOW_PRICE_COUNT» => «1»,
«SHOW_TOP_ELEMENTS» => «N»,
«TEMPLATE_THEME» => «site»,
«TOP_ADD_TO_BASKET_ACTION» => «ADD»,
«TOP_ELEMENT_COUNT» => «9»,
«TOP_ELEMENT_SORT_FIELD» => «sort»,
«TOP_ELEMENT_SORT_FIELD2» => «id»,
«TOP_ELEMENT_SORT_ORDER» => «asc»,
«TOP_ELEMENT_SORT_ORDER2» => «desc»,
«TOP_LINE_ELEMENT_COUNT» => «3»,
«TOP_OFFERS_FIELD_CODE» => array(
0 => «»,
1 => «»,
),
«TOP_OFFERS_LIMIT» => «5»,
«TOP_OFFERS_PROfPERTY_CODE» => array(
0 => «»,
1 => «»,
),
«TOP_PROPERTY_CODE» => array(
0 => «»,
1 => «»,
),
«TOP_VIEW_MODE» => «SECTION»,
«USE_ALSO_BUY» => «N»,
«USE_BIG_DATA» => «N»,
«USE_COMMON_SETTINGS_BASKET_POPUP» => «N»,
«USE_COMPARE» => «Y»,
«USE_ELEMENT_COUNTER» => «Y»,
«USE_STORE» => «N»,
«ALSO_BUY_ELEMENT_COUNT» => «5»,
«ALSO_BUY_MIN_BUYES» => «1»,
«SIDEBAR_SECTION_SHOW» => «Y»,
«SIDEBAR_DETAIL_SHOW» => «Y»,
«SIDEBAR_PATH» => «»,
«COMPOSITE_FRAME_MODE» => «A»,
«COMPOSITE_FRAME_TYPE» => «AUTO»,
«USE_GIFTS_DETAIL» => «Y»,
«USE_GIFTS_SECTION» => «Y»,
«USE_GIFTS_MAIN_PR_SECTION_LIST» => «Y»,
«GIFTS_DETAIL_PAGE_ELEMENT_COUNT» => «3»,
«GIFTS_DETAIL_HIDE_BLOCK_TITLE» => «N»,
«GIFTS_SHOW_NAME» => «Y»,
«GIFTS_SHOW_IMAGE» => «Y»,
«GIFTS_MESS_BTN_BUY» => «Выбрать»,
«GIFTS_MAIN_PRODUCT_DETAIL_PAGE_ELEMENT_COUNT» => «3»,
«GIFTS_MAIN_PRODUCT_DETAIL_HIDE_BLOCK_TITLE» => «N»,
«GIFTS_MAIN_PRODUCT_DETAIL_BLOCK_TITLE» => «Выберите один из товаров, чтобы получить подарок»,
«SHOW_VIEWED» => «Y»,
«HIDE_NOT_AVAILABLE_OFFERS» => «N»,
«DETAIL_STRICT_SECTION_CHECK» => «N»,
«COMPATIBLE_MODE» => «Y»,
«SEF_URL_TEMPLATES» => array(
«sections» => «»,
«section» => «#SECTION_CODE#/»,
«element» => «#SECTION_CODE#/#ELEMENT_CODE#/»,
«compare» => «compare.php?action=#ACTION_CODE#»,
«smart_filter» => «#SECTION_CODE#/filter/#SMART_FILTER_PATH#/apply/»,
),
«VARIABLE_ALIASES» => array(
«compare» => array(
«ACTION_CODE» => «action»,
),
)
),
false
);?>
.htaccess
Options -Indexes
ErrorDocument 404 /404.php
php_flag allow_call_time_pass_reference 1
php_flag session.use_trans_sid off
#php_value display_errors 1
#php_value mbstring.internal_encoding UTF-8
Options +FollowSymLinks
RewriteEngine On
RewriteCond %
RewriteCond %
RewriteCond %
RewriteCond %
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* — [E=REMOTE_USER:%
DirectoryIndex index.php index.html
ExpiresActive on
ExpiresByType image/jpeg «access plus 3 day»
ExpiresByType image/gif «access plus 3 day»
Источник
Добавление и удаление из сравнения на AJAX: Битрикс
Рецепт лежал у меня в закромах, почти о нем и забыл, но тут подвернулся под руку- решил опубликовать. Скажу сразу, данное решение найдено то ли на просторах интернета, то ли в официальных блогах на официальном сайте Битрикс. Но в оригинале допущен ряд критических ошибок и упущений.
Видимо автор рецепта спешил, или опустил очевидные для него моменты. Публикую метод с необходимыми исправлениями.
Не большое видео, что должно получиться
На оформление сильно не смотрим, стилизация в процессе. Главное функционал
Делаем AJAX добавление в сравнение
Идем в папку /local/ (если нет, создаем ее) в ней создаем папку ajax в которой создаем файл list_compare.php внутри которого размещаем код:
Это вызов стандартного компонента «Список сравниваемых элементов каталога». К этому файлу мы будем обращаться для AJAX запроса.
Далее, в нужном месте шаблона сайта выводим его еще раз. Например, в моем видео примере он размещен в footer.php хотя это не принципиально, просто в том месте, где список сравнения обозначен дизайном вашего сайта. Самое главное, вызываем тот же самый компонент, с тем же самым шаблоном что и в list_compare.php- лучше если они быть идентичными, хотя это на ваш вкус
И обворачиваем вызов компонента в div
В шаблоне списка элементов catalog.section вашего каталога, в самом верху! размещаем скрипт, который будет отслеживать нажатия на input, отправляющий товар в сравнение и отправлять AJAX запрос к компоненту
И в том месте, где планируете вывести input для добавления/удаления в сравнение размещаем вот такой код
На этом в общем-то и все. Все должно работать- проверено.
Источник
Устранение ошибок CMS Битрикс
Опция «Проверка системы» в CMS Битрикс позволяет проверить соответствие настроек хостинга требованиям CMS и вашего сайта. При запуске этой опции на хостинге Timeweb, Битрикс, как правило, приводит несколько ошибок и замечаний. В этой статье мы рассмотрим, как их исправить.
Отправка почты
Речь идет о двух параметрах: «Отправка почты» и «Отправка почтового сообщения больше 64Кб».
Уведомление: Ошибка! Не работает
Эта ошибка возникает, если вы используете хостинг на тестовом периоде — до оплаты услуги почта недоступна. Как только хостинг будет оплачен, почта заработает.
Режим работы MySQL
Уведомление: Ошибка! innodb_strict_mode=ON, требуется OFF. Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION
Эта ошибка критична. Она может привести к блокировке запросов к базе данных, что практически означает остановку работы сайта.
Решение:
Необходимо внести изменения в файлы конфигурации Bitrix, в которых задаются параметры базы данных, и указать в них нужные значения. Отредактировать файлы можно, например, с помощью Файлового менеджера.
В файл /public_html/bitrix/php_interface/after_connect.php под уже имеющимися строками и до символов ?> добавьте:
В файл /public_html/bitrix/php_interface/after_connect_d7.php под уже имеющимися строками и до символов ?> добавьте:
После этого проверка Bitrix пройдет успешно.
Размер стека и pcre.recursion_limit
Уведомление: Замечание: Возможны проблемы в работе с длинными строками из за системных ограничений
Это замечание некритично и, как правило, на работе сайтов не сказывается, однако оно может влиять на обработку очень длинного текста, например, если в нем сотни тысяч символов.
Этот параметр влияет на возможность обработки строк регулярными выражениями. Лимит по умолчанию установлен достаточно большой, чтобы можно было обработать практически любой контент на сайте, но для устранения замечания можно дополнительно внести изменения.
Решение:
- Если у вас тариф мощного хостинга, решением будет переключение сайта на PHP 7.4. Это можно сделать в разделе «Сайты» по нашей инструкции.
- Если у вас тариф обычного хостинга или если смена версии PHP не помогла, исправить ошибку, добавьте в файл /public_html/.htaccess строки:
Выполнение агентов на cron
Уведомление: Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron
Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.
Решение:
Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT .
Для этого добавьте в файл /public_html/bitrix/php_interface/dbconn.php строку:
1. В разделе Crontab нажмите «Добавить новую задачу» и задайте удобное имя для задачи.
2. В пункте «Исполнитель» выберите «Исполняемый бинарный файл».
3. В пункте «Путь до файла» укажите команду следующего вида:
- В /opt/php72/bin/php укажите ту версию php, которую использует сайт. Например, /opt/php74/bin/php ( или /opt/php7.4/bin/php ).
- Вместо /home/u/user/site.ru/public_html укажите корректный путь до папки сайта и замените u и user на первую букву вашего логина и сам логин.
4. В пункте «Периодичность» выберите «Каждую минуту».
Уведомление: Ошибка! Не настроен запуск cron_events.php на cron
Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.
Решение:
Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.
Обязательные параметры PHP
Уведомление: Ошибка! Значение max_input_vars должно быть не ниже 10000
Эта ошибка не влияет на работоспособность сайта напрямую, но может отразиться на работе с большими формами в административной панели. При работе с инфоблоками низкое значение параметра max_input_vars может вызвать проблемы с сохранением настроек, поэтому система выделяет эту ошибку как критическую.
Решение:
Необходимо добавить следующую строку в файл /public_html/.htaccess :
Источник