Модули Веб-формы и Опросы очень похожи друг на друга, но модуль Опросы, как более специализированный, имеет ряд преимуществ - позволяет делить опросы на группы, умеет подводить итоги по каждому вопросу и экспортировать эти итоги в Excel. Единственный недостаток - результаты он экспортирует в достаточно странном виде и теряет идентификационную информацию по респондентам: Почему-то выгружает только имя и фамилию. На странице редактирования опроса есть кнопка "Список голосов", ведущая на /bitrix/admin/vote_user_votes_table.php На этой странице есть нужная информация по каждому проголосовавшему: ID, IP, ответы. Однако кнопки экспорта в Эксель, которая есть у аналогичной страницы в "Веб-формах" почему-то нет. Вместо неё кнопка Результаты, ведущая на красивые графики. Однако, на этой странице есть "секретная" выгрузка в Excel. Достаточно добавить параметр "mode=excel" и страница выдаст все результаты в виде таблицы для Excel: /bitrix/admin/vote_user_votes_table.php?lang=ru&VOTE_ID=1&mode=excel
Здесь уже есть полная информация о проголосовавших пользователях - и ID и IP и ФИО полностью печатается. Останется только статистику посчитать, например функцией Excel СЧЁТЕСЛИ или использовать имеющийся экспорт результатов опросов
В бурной жизнидеятельности не успевается следовать всем трендам, которые задают вендоры. Но это ничего не значит, ты просто расставляешь приоритеты и делаешь выбор. Как говорят рыба ищет - где глубже, а человек - где лучше.
Как раз выпал шанс поучаствовать в этой программе от Битрикс. Создал я типовой сайт, запаковал его в мастер и ломлюсь в маркетплейс.
И что я вижу - скурпулёзнейшую модерацию. Там реально микроскоп. Ребята и колеги, кто проходит маркетплейс-модерацию - большой вам риспект и уважение. Очень хороший звоночек, так как это показывает что порог входа есть и пройти не так уж и просто.
Первое решение уже я думаю не за горами и что важно - возникла новая идея - как сделать с помощью маркетплейс Битрикс лучше. Так что как только - так сразу же сожусь писать решение в помощь.
Удивительно, что ранее я был огромный скептик и противник Маркетплес-решений. Но как известно стакан бывает как наполовину полным так и наполовину порожним. Надеюсь что всё выйдет. Пока стоит модерационная стена между потребителем и производителем.
Добрый день, набираем на постоянную работу PHP full stack программистов с опытом в Битрикс24. Есть две позиции. Английский хотя бы на среднем уровне обязателен.
To begin with I would like to tell you that during Bitrix24 development many developers use Bitrix ORM implementation out fr om the box. It is a quite convenient, fast and useful instrument.
However, there is a thing which you should always do if you want to use the ORM DataManager class. Describing table fields and relations are so typical, annoying especially if you have lots of different tables.
From my own perspective, I prefer to simplify that regular work. For these needs, I created the simple composer package wh ere implemented an extension of native Bitrix ORM DataManager.
Therefore, developers can spend more time for implementing business logic in the system. The main idea is to simplify the realization of the method — getMap() in the DataManager class. For installation, you can use the composer and include dependencies in init.php file.
Данный компонент наследует все возможности стандартного компонента news.list и превносит в него следующие улучшения:
Теперь в шаблон компонента можно добавить файл component_prolog.php. Данный файл будет автоматически подключен для данного шаблона перед выполнением основного тела компонента (component.php) и как следует до начала кеширования компонента. В файле будет доступна ссылка на экземпляр класса компонента ($this) и ссылка на свойство $this->arParams ($arParams). В шаблон .default папки компонента я этот файл уже добавил для примера. Также в этом файле будет доступен сформированный фильтр, если он был сформирован компонентом фильтра или собран из указанных параметров компонента (см. пункт 2).
Теперь появилась возможность задать фильтр для выборки по свойствам инфоблока прямо из формы редактирования компонента!!! (подобно тому, как программисты это делают, определяя ключ в массиве $GLOBALS перед подключением компонента). Для этого служит секция "Дополнительные параметры фильтрации для вывода элементов"
Архив с компонентом прилагаю. Пользуйтесь!
P.S. Данные возможности можно расширить например на компонент catalog.section. Если будет интересно - могу выложить.
Приветствую, коллеги! Пришла вот мне намедни запись конференции Битрикс24 Бостон, одним словом можно сказать - впечатляюще. Как всегда, вы меня покорили этими технологиями, роботы, социальные сценарии и тд и тп. Очень круто. Как разработчик, специализирующийся на Битрикс-фреймворк, решил вот открыть коробку и пощупать. Тешит то что это всё то же из чего состоит и мой любимый БУС.
# Grate. Now lets play VMBitix 7.0.0 x86-64 a version with i had now. # The VMBitrix say hello to me # Lets create a Bitrix24 release # Далее такой же мастер, ну всё тоже самое - это вселяет в меня всё больше и больше уверенности, чувствую как моя компетенция Б24 становится крепче и крепче. Единственное что я заметил, кодировка тут сразу как-то UTF-8, а так отличий ни каких не вижу пока, с точки зрения программиста. Ну точнее я вижу как тут всё устроено и это прекрасно и чудесно.
# Lets create a project this. Clone git repository and create a phpStrom-project on it
# Test connection. I wood like login by bitrix for a correct custom.
# Here is wat i see on a remote host In bitrix folder i see components,modules, templates, wizards i see /bitrix/admin folder - Success
# И так не вдаваясь в тонкости сценариев я хочу что-то тут создать. Я думаю, а что иначе как не кастомный компонет для моей коробки. Например страничку о личности, ну а что ж ещё, раз социальная тематика, то встроим в матрицу социологии очередную личность. Пошерстил я тут по разделам и нашёл раздел company наша личность, я её так и назвал persona сразу начнёт с социальной роли - company/personal - как бы персональность в микрогрупе, отличный старт для роста и развития Итак, тут я вижу leaders.php - будем вот равняться на лидеров. Создадим аналог страницы leaders.php, подключим там наш компонент и запушим это в гит
<? /** * Powered by Artem Koorochka * @var global $APPLICATION */ require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/intranet/public/company/leaders.php"); $APPLICATION->SetTitle(GetMessage("COMPANY_TITLE")); $APPLICATION->IncludeComponent("koorochka:persona", ".default", Array(
И так, как всегда у меня успех с Битрикс. После этой короткой лабораторной работы в первую очередь хочу поблагодарить Битрикс. Я это всегда делаю эмоционально - вы Битрикс вы няшеньки вы пусички, пупсики Спасибо вам за прекрасный продакшэн.
Поблагодарить партнёров и сообщество. С большим уважением, все кому интересно сотрудничество, пишите, звоните я вам буду рад. Мне очень интересна эта тематика стала.
Моя мотивация для написания этого поста
Единственное что, я не досмотрел. Сегодня вечером буду досматривать.
Если вы программируете на python и интересуетесь Data Science, возможно вам будет интересна моя библиотека для работы с Битрикс24 через Webhook.
В отличие от других решений, она не требует oAuth, настраивается одной строчкой и отлично работает в jupyter notebook'ах. Решение подойдет как для облака, так и для коробки. По умолчанию собирает все данные, так что не надо заботиться о постраничной навигации или целостности данных.
С мая 2018 года действуют общие правила по защите персональных данных The EU General Data Protection Regulation (GDPR). Цель GDPR — обеспечить безопасность персональных данных граждан ЕС, вне зависимости от их физического месторасположения.
С введением GDPR ужесточается ответственность за нарушение правил обработки персональных данных: штрафы достигают 20 миллионов евро или 4% годового глобального дохода компании.
Согласно закону сайт должен уведомить пользователя об использовании куки. Это можно сделать с помощью сервисов: Популярные:
Для себя написал компонент, который выводит баннер, возможно кому-то пригодится.
Подключить компонент лучше в подвале вашего шаблона. Код подключения:
$APPLICATION->IncludeComponent( "cookie.notification", ".default", array( "COOKIE_NAME" => "COOKIE_ARGEE", "COMPONENT_TEMPLATE" => ".default", "COOKIE_TEXT" => "Продолжая работу с site.ru, вы подтверждаете использование сайтом cookies вашего браузера с целью улучшить предложения и сервис на основе ваших предпочтений и интересов.", "COOKIE_AGREE_LINK" => "/company/cookie_notification/" ), false );
COOKIE_NAME - Имя переменной в которой хранится флаг согласия. COOKIE_TEXT - Текст баннера COOKIE_AGREE_LINK - Ссылка на соглашение, если оставить пустым, на баннере не будет выводиться кнопка "Узнать больше".
Как подключить? 1. Распаковать архив. 2. Расположить папку cookie.notification в разделе local/components/ (Почему Local?) 3. Подключить компонент в шаблоне сайта, предварительно изменив текст. 4. Поставить лайк автору статьи
Решение В файле /bitrix/modules/main/include.php, выполнить установку языка в контекст раньше чем будут получены параметры локализации: Должно получиться так:
Причина Дело в том, что Битрикс пытается подключить файл подмены фраз один раз, при первом вызове Bitrix\Main\Localization\Loc::getMessage()
Однако этот вызов происходит до установки в контексте идентификатора языка, а конкретно при запросе настроек локализации через \Bitrix\Main\Localization\CultureTable, где при инициализации сущности запрашивается карта полей CultureTable::getMap(), содержащая вызов Loc::getMessage()
Поэтому Битрикс подключает файл подмены фраз для языка с идентификатором NULL Стек вызова:
Задача, сделать поиск по артикулу, для компонента поиска по заголовкам bitrix:search.title" но не по полному совпадению а по подстроке. Например артикул H370899 и нужно что бы искал по запросу 370 или 089 или 899 ...
Стандартный поиск по заголовкам с добавлением обработчика который добавляет полный текст артикула в название элемента поискового индекса, не дает такой возможности (потому что поиск идет с начала подстроки, т.е так найдет "H370", а так "370" уже нет)
Добавляем в init.php обработчик
//Search buy ARTICLE AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler"); function BeforeIndexHandler($arFields) { if(!CModule::IncludeModule("iblock")) return $arFields; if($arFields["MODULE_ID"] == "iblock") { $db_props = CIBlockElement::GetProperty( $arFields["PARAM2"], //BLOCK_ID индексируемого свойства $arFields["ITEM_ID"], //ID индексируемого свойства array("sort" => "asc"), // Сортировка (можно пропустить) Array("CODE"=>"CML2_ARTICLE") //CODE свойства (в данном случае артикул) );
if($ar_props = $db_props->Fetch()) { //Добавим все части артикула начиная с первого символа и заказнчивая длиной не менее 3 символов $sku = $ar_props["VALUE"]; $arr_sku = array(); for($i=0;$i<strlen($sku);$i++){ $new_str = substr($sku, $i); if(strlen($new_str)>2) { $arr_sku[] = substr($sku, $i); } }
Для того что бы остальные компоненты поиска также искали по артикулу, следует отключить полнотекстовый поиск и выбрать "Bitrix" (настройки модуля поиск, вкладка "Морфология")
Выполняем переиндексацию инфоблоков каталога (со снятой галочкой "Переиндексировать только измененные").
Оказывается есть публичная страница со сданными экзаменами и сертификатами, которыми можно поделиться, я был уверен, что их просто добавят в публичный профиль, но нет надо видимо вставлять ссылку самому. В любом случае, я ее нашел в закромах каких то профильных настроек, и пусть лежит тогда тут открыто.
Свойство элементов инфоблока "Продвинутый справочник" для 1C-Битрикс: Управление сайтом.
Всем привет ! Хочу поделиться совершенно бесплатным модулем "Продвинутый справочник" для 1C-Битрикс: Управление сайтом. Данный модуль размещен в репозитории на gitlab https://gitlab.com/dimabresky/bx.moderndirectoryДанный модуль является альтернативой стандартному свойству "Справочник". Свойство удобно в использовании. Оно позволяет производить добавление/редактирование/привязку элементов справочника прямо в форме редактирования элемента инфоблока. При этом возможность редактирования в списке/фильтрации/отображения свойства в публичном разделе сайта и смарт фильтре сохранены. Модуль подходит для любой редакции 1С-Битрикс: Управление сайтом !!! Прилагаю архив модуля. Пользуйтесь.! Требования: 1С-Битрикс: Управление сайтом >=18.5.180, php >= 7.0.0
Перезалил свежую версию. Были внесены исправления (Если кому надо)
День добрый. Мы осуществляем перенос с 1С товаров на сайт. Цены и остатки товаров на складах упрямо не хотят переноситься на сайт. Хотя в файлах prices и rests все данные отображаются. Пожалуйста подскажите в каком направление копать?
Хочу поделиться способом как вывести информацию по доставке в карточке товара на основе служб доставки. Имеем несколько Служб доставки по группам местоположений: по Москве, по Санкт-Петербургу, и некоторых других регионов.
Настройки у всех похожи: Ограничения по конкретным местоположениям и ограничения по стоимости. Пример показан на рисунке:
Нам нужно в Карточке Товара вывести информацию по стоимости доставки в регион и описание из службы доставки. Основная трудность заключается в том, чтобы отфильтровать Службы доставки по регионам. Ограничения по регионам хранятся в таблице b_sale_delivery2location. Нам нужны входящие местоположения, т.е. с LOCATION_TYPE = "L". Был написан следующий метод, решающий нашу задачу:
На вход подаем $sLocationCode - Код местоположения из наших местоположений 2.0; $fPrice - стоимость товара; $obEntityLocation2Delivery - объект, с описанием таблицы b_sale_delivery2location Объект $obEntityLocation2Delivery мы описываем в методе getLocationToDeliveryEntity():
Таким образом в карточке товара выводится стоимость доставки в регионе с учетом самой стоимости товара:
Срок доставки рассчитывается отдельно в зависимости от наличия и сроков производства. Если товар есть в наличии на складе, обслуживающим данный регион, то срок доставки в течении 5 дней, если нет - то берется срок производства + 5 дней на доставку. Города, которые обслуживает склад хранятся в пользовательском свойстве у склада UF_SERVICE_LOCATION (хранит код местоположения), срок производства зависит от типа товара и рассчитывается отдельно. Основная "фишка" метода: дополнительное ограничение выборки по конкретному товару из Таблицы наличия \Bitrix\Catalog\StoreProductTable. Получился такой метод:
**
* Получаем срок доставки товара в днях. Срок зависит от наличия: если на складе, обслуживающим этот город, нет в
* наличии, то рассчитывается исходя из сроков производства + сроков поставки
*
* @param string $sLocationCode - код местоположения 2.0
* @param int $iSkuId - ID Торгового предложения (товара)
* @param array $arHomeDelivery - Массив с информацией по доставке, который нужно дополнить сроками
* @return array
*/
private function getHomeDeliveryPeriod(string $sLocationCode, int $iSkuId, array $arHomeDelivery): array
{
try {
$obStore = \Bitrix\Catalog\StoreTable::getList(array(
"filter" => array(
"=UF_SERVICE_LOCATION" => $sLocationCode,
),
"select" => array(
"PRODUCT_STORE.AMOUNT",
"ID",
),
"limit" => 1,
"runtime" => array(
new ReferenceField(
"PRODUCT_STORE",
"\Bitrix\Catalog\StoreProductTable",
array(
"=this.ID" => "ref.STORE_ID",
"ref.PRODUCT_ID" => new \Bitrix\Main\DB\SqlEx * pression("?i", $iSkuId)
),
array(
"join_type" => "LEFT"
)
),
),
"cache" => array(
"ttl" => self::CACHE_TIME,
)
));
if ($arStore = $obStore->fetch()) {
if (intval($arStore["CATALOG_STORE_PRODUCT_STORE_AMOUNT"]) <= 0) {
if (intval($arStorePeriodByStore[$arProductType["UF_XML_ID"]]) > 0) {
$arHomeDelivery["DELIVERY_DAYS"] = $this->iManufacturePeriod +
self::HOME_DELIVERY_PERIOD;
}
} else {
$arHomeDelivery["DELIVERY_DAYS"] = self::HOME_DELIVERY_PERIOD;
}
}
} catch (\Bitrix\Main\ObjectPropertyException | \Bitrix\Main\ArgumentException | \Bitrix\Main\SystemException $obException) {
AddMessage2Log($obException->getMessage(),"main");
}
return $arHomeDelivery;
}
Как видно из кода, фильтрация по товару и складу происходит за счет условий:
"=this.ID" => "ref.STORE_ID",
ref.PRODUCT_ID" => new \Bitrix\Main\DB\SqlEx * pression("?i", $iSkuId)
В спортивную школу на постоянную работу, на полную занятость (хотя бы 3 дня в неделю), на полный день требуется разработчик 1С Битрикс. От вас требуется: знание архитектуры 1с Битрикс, PHP, Bitrix, 1c. Своё резюме и вопросы можно прислать на почту 9641399@gmail.com
Закидываем одну из двух версий в init.php и проверяем
Версия на d7:
if (\Bitrix\Main\Loader::includeModule('iblock')) {
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
"iblock",
"OnTemplateGetFunctionClass",
["FunctionMinPriceSection", "eventHandler"]
);
//подключаем файл с определением класса FunctionBase
include_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/lib/template/functions/fabric.php");
class FunctionMinPriceSection extends \Bitrix\Iblock\Template\Functions\FunctionBase
{
//Обработчик события на вход получает имя требуемой функции
public static function eventHandler($event)
{
$parameters = $event->getParameters();
$functionName = $parameters[0];
if ($functionName === "minpricesection") {
//обработчик должен вернуть SUCCESS и имя класса
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
"\\FunctionMinPriceSection"
);
}
}
public function onPrepareParameters(\Bitrix\Iblock\Template\Entity\Base $entity, array $parameters)
{
$arguments = [];
// Перехватываем id элемента/раздела, чтобы можно было обращаться к его свойствам
$this->data['id'] = $entity->getId();
foreach ($parameters as $parameter) {
$arguments[] = $parameter->process($entity);
}
return $arguments;
}
//собственно функция выполняющая "магию"
public function calculate($parameters)
{
$priceGroup = '1'; // base or number
\Bitrix\Main\Loader::includeModule("catalog");
\Bitrix\Main\Loader::includeModule('currency');
$sectionID = (!empty(reset($parameters)) ? reset($parameters) : $this->data['id']);
// Получаем основной раздел
$section = \Bitrix\Iblock\SectionTable::getList([
'filter' => ['ID' => $sectionID],
'select' => ['LEFT_MARGIN', 'RIGHT_MARGIN', 'IBLOCK_ID', 'ID']
])->fetchRaw();
// Собираем все подразделы
$subSections = \Bitrix\Iblock\SectionTable::getList([
'filter' => [
'>=LEFT_MARGIN' => $section['LEFT_MARGIN'],
'<=RIGHT_MARGIN' => $section['RIGHT_MARGIN'],
'=IBLOCK_ID' => $section['IBLOCK_ID'],
],
'select' => ['ID']
]);
while ($section = $subSections->fetch()) {
$arSectionsID[] = $section['ID'];
}
// Составляем запрос для получения элементво привязанных к секциям
$elementSection = new Bitrix\Main\Entity\Query('\Bitrix\Iblock\SectionElementTable');
$elementSection->addSelect('IBLOCK_ELEMENT_ID')->setFilter(['=IBLOCK_SECTION_ID' => $arSectionsID])->registerRuntimeField(
'SECTION',
[
'data_type' => '\Bitrix\Iblock\SectionTable',
'reference' => [
'=this.IBLOCK_SECTION_ID' => 'ref.ID',
],
'join_type' => 'inner'
]
);
// Выполняем запрос
$resElementsID = \Bitrix\Main\Application::getConnection()->query($elementSection->getQuery());
while ($elementsID = $resElementsID->fetch()) {
$arElementsID[] = $elementsID['IBLOCK_ELEMENT_ID'];
}
$arItem = \Bitrix\Iblock\ElementTable::getList(
[
'filter' => ['=ID' => $arElementsID],
'order' => ['PriceTable.PRICE_SCALE' => 'asc'],
'select' => [
'PriceTable.PRICE_SCALE', // Сумма конвертируется в базовую валюту
],
'limit' => 1,
'runtime' => [
new \Bitrix\Main\Entity\ReferenceField(
'PriceTable',
\Bitrix\Catalog\PriceTable::class,
['=this.ID' => 'ref.PRODUCT_ID', $priceGroup => 'ref.CATALOG_GROUP_ID'],
['join_type' => 'RIGHT']
)
]
]
)->fetchRaw();
if (!empty($arItem)) {
// Получаем форматированную цену в базовой валюте
$minPriceSection = \CCurrencyLang::CurrencyFormat(reset($arItem), \Bitrix\Currency\CurrencyManager::getBaseCurrency());
}
return $minPriceSection;
}
}
}
Версия на старом ядре:
<?
/**
* Парсер "{=minpricesection $id|null} минимальной цены товаров раздела"
* @param id - или указываем id раздеа или функция сама получает через \Bitrix\Iblock\Template\Entity\Base
* @param priceGroup - нужно указать какую цену запрашиваем. По дефолту базовая (1)
* @return string
*/
if (\Bitrix\Main\Loader::includeModule('iblock')) {
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
"iblock",
"OnTemplateGetFunctionClass",
["FunctionMinPriceSection", "eventHandler"]
);
//подключаем файл с определением класса FunctionBase
include_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/lib/template/functions/fabric.php");
class FunctionMinPriceSection extends \Bitrix\Iblock\Template\Functions\FunctionBase
{
//Обработчик события на вход получает имя требуемой функции
public static function eventHandler($event)
{
$parameters = $event->getParameters();
$functionName = $parameters[0];
if ($functionName === "minpricesection") {
//обработчик должен вернуть SUCCESS и имя класса
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
"\\FunctionMinPriceSection"
);
}
}
public function onPrepareParameters(\Bitrix\Iblock\Template\Entity\Base $entity, array $parameters)
{
$arguments = [];
// Перехватываем id элемента/раздела, чтобы можно было обращаться к его свойствам
$this->data['id'] = $entity->getId();
foreach ($parameters as $parameter) {
$arguments[] = $parameter->process($entity);
}
return $arguments;
}
//собственно функция выполняющая "магию"
public function calculate($parameters)
{
$priceGroup = '1';// base or number
$sectionID = (!empty(reset($parameters)) ? reset($parameters) : $this->data['id']);
$arItems = \CIBlockElement::GetList(["CATALOG_PRICE_{$priceGroup}" => "ASC"], ["SECTION_ID" => $sectionID, "ACTIVE" => "Y", 'INCLUDE_SUBSECTIONS' => 'Y']);
$item = $arItems->Fetch();
if (!empty($item)) {
$minPriceSection = \CCurrencyLang::CurrencyFormat((int) $item["CATALOG_PRICE_{$priceGroup}"], $item["CATALOG_CURRENCY_{$priceGroup}"], true);
}
return $minPriceSection;
}
}
}
GitHub - gist UPD. Для версии D7 добавил товары которые привязаны к разделам. Ранее товары участвовали, только если у них IBLOCK_SECTION_ID стоял указанного раздела или его подразделов.
Необходимо было сделать настройку работы на кроне агентов стандартным образом, через запуск системного скрипта /bitrix/modules/main/tools/cron_events.php. Агенты не работали, проверка выводила "Ошибка! Не настроен запуск cron_events.php на cron, последний агент отработал больше суток назад."
Больше всего продвинул в сторону решения материал Артемия Зайцева
https://dev.1c-bitrix.ru/community/webdev/user/25773/blog/10059/ Насколько могу судить, предыдущие разработчики начали делать первод всех агентов на cron, но по каким-то причинам его не доделали. Соответственно, при запуске /bitrix/modules/main/tools/cron_events.php вызов CheckAgents() не происходил вообще ни при каких комбинациях констант в /bitrix/php_interface/dbconn.php. После установки параметра check_agents модуля main, периодические агенты (у которых указано "через заданный интервал") начали выполняться по cron'у,
Как быстро удалить 1000 из 1020 свойств инфоблока?
Можно запросом через апи, но придется в фильтре перечислить все свойства, которые не нужно удалять
Быстрее всего было бы нажать чекбокс "Выделить все", а потом "чекаутнуть" ненужные, но такой чекбокс, это роскошь для разработчиков, поэтому используем консоль браузера и следующий код
(function () { var nodes = document.querySelectorAll("#ib_prop_list > tbody > tr"); for (var i = 0; i < nodes.length; i++) { var checkbox = nodes[i].querySelectorAll('td:last-child > input'); for (var j = 0; j < checkbox.length; j++) { if (checkbox[j].type === "checkbox") { checkbox[j].checked = true; } } } })();
Как обновить мини-корзину в шапке интернет магазина Битрикс после авторизации
1. В шаблоне sale.basket.basket.line оборачиваем все в контейнер <div id="bid"> ... </div>
2. После авторизации или любом событии, получаем весь HTML страницы и парсим из него содержимое контейнера миникорзины <div id="bid"> и вставляем в текущий DOM узел <div id="bid">
//update sale.basket.basket.line if($("#bid").length>0) { $.ajax({ type: "post", url: '/', data: 'AJAX_CALL=N', dataType: "html", success: function (html) { html = $.parseHTML( html ); html = $(html).find('#bid').html(); $("#bid").html(html); } }); }
Тема старая, информации по ней много, как в официальной документации, так и на форумах. Однако, на мой взгляд, некоторые нюансы по прежнему плохо освещены. Поэтому я решил собрать все воедино.