Спасибо. Не могли бы вы пояснить ваш пример? Ведь мой пример из документации API, он теперь нерабочий? Нужно использовать такие громоздкие конструкции как вы показали?
В примере что я написал используется D7 API, и оно не громоздкое, обычные ORM конструкции, а самописная функция filterArrayByKeys делает выборку ключей из массива, а также меняет ключ, если в есть пара ключ-значение
Вместо конструкции, которая запрашивает класс сущности ORM для конкретного инфоблока:
Редирект на категорию с несуществующих страниц пагинаций, Помогите найти решение.... Как сделать редирект с несуществующих страниц пагинаций? Допустим с https://dev.1c-bitrix.ru/docs/what-s-new.php?PAGEN_1=99999 на https://dev.1c-bitrix.ru/docs/what-s-new.php
Если Вам надо кастомизировать компонент (его логику в целом), то выносите в новый неймспейс этот компонент и редактируете под ваши нужды, если только момент с шаблоном или корректировка результатов - создаете новый шаблон к компоненту
написал: Если вам не важны старые адреса, можете просто сгенерировать новые коды в админке. Откройте список товаров, внизу отметьте "Для всех" и выберите действие "Создать символьный код".
В действиях нет пункта "Создать символьный код". Или можно как-то отредактировать список массовых действий?
Как по событию (AddEventHandler) вставить свое кастомное поле в фильтр админ-панели (например какого то конкретного инфоблока), с логикой, чтобы он мог обрабатывать это поле. Немного пояснение для чего это: есть своя таблица с некими данными (не инфоблок и не highload-блок), где есть привязка к элементам инфоблока. Он должен делать запрос в эту таблицу, смотреть какие данные подходит под условия и возвращать нужные элементы
На скриншоте ниже я вставил просто для примера что имеется ввиду, через редактирования файла /bitrix/modules/iblock/admin/iblock_element_admin.php, добавив в массив $filterFields пункт
Как получить в class.php и ajax.php компонента массив переменной $arParams? Версия Битрикса 18.1.7 и в нем нет метода getUnsignedParameters о котором везде говорится
template.php
Код
var params=<?=\Bitrix\Main\Web\Json::encode(['signedParameters'=>$this->getComponent()->getSignedParameters()])?>;
var query = {
c: 'component:order',
action: 'test',
mode: 'class',
signedParameters: params.signedParameters
};
$.ajax({
url: '/bitrix/services/main/ajax.php?' + $.param(query),
method: 'POST',
data: data
}, function(response){
console.log(response);
})
ajax.php
Код
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
use \Bitrix\Main\Loader,
\Bitrix\Main\Engine\Controller;
class AjaxController extends Controller {
protected function listKeysSignedParameters() {
return [
'IBLOCK_ID', 'CART_PROPS'
];
}
public function configureActions()
{
return [
'test' => [
'prefilters' => []
]
];
}
public function onPrepareComponentParams($arParams) {
return $arParams;
}
public function testAction() {
return [
'params' => $this->getUnsignedParameters();
];
}
}
?>
Имеется код, который собирает товары в конкретном инфоблоке (каталог товаров), у которого есть торговые предложения (другой инфоблок). Можно было добавить массив торговых предложений с помощью JOIN рантаймом, но не понимаю как обратиться к свойствам элемента, а именно к CML2_LINK
Здравствуйте, возникла ошибка после обновления Битрикс:
Код
[Bitrix\Main\DB\SqlQueryException]
Mysql query error: Unknown column 'socialservices_user.INITIALIZED' in 'field list' (400)
SEL ECT
`socialservices_user`.`ID` AS `ID`,
`socialservices_user`.`LOGIN` AS `LOGIN`,
`socialservices_user`.`NAME` AS `NAME`,
`socialservices_user`.`LAST_NAME` AS `LAST_NAME`,
`socialservices_user`.`EMAIL` AS `EMAIL`,
`socialservices_user`.`PERSONAL_PHOTO` AS `PERSONAL_PHOTO`,
`socialservices_user`.`EXTERNAL_AUTH_ID` AS `EXTERNAL_AUTH_ID`,
`socialservices_user`.`USER_ID` AS `USER_ID`,
`socialservices_user`.`XML_ID` AS `XML_ID`,
`socialservices_user`.`CAN_DELETE` AS `CAN_DELETE`,
`socialservices_user`.`PERSONAL_WWW` AS `PERSONAL_WWW`,
`socialservices_user`.`PERMISSIONS` AS `PERMISSIONS`,
`socialservices_user`.`OATOKEN` AS `OATOKEN`,
`socialservices_user`.`OATOKEN_EXPIRES` AS `OATOKEN_EXPIRES`,
`socialservices_user`.`OASECRET` AS `OASECRET`,
`socialservices_user`.`REFRESH_TOKEN` AS `REFRESH_TOKEN`,
`socialservices_user`.`SEND_ACTIVITY` AS `SEND_ACTIVITY`,
`socialservices_user`.`SITE_ID` AS `SITE_ID`,
`socialservices_user`.`INITIALIZED` AS `INITIALIZED`
FR OM `b_socialservices_user` `socialservices_user`
WHERE `socialservices_user`.`USER_ID` = 1
AND `socialservices_user`.`EXTERNAL_AUTH_ID` = 'Bitrix24Net'
/home/c/site/public_html/bitrix/modules/main/lib/db/mysqlconnection.php:116
#0: Bitrix\Main\DB\MysqlConnection->queryInternal(string, array, NULL)
/home/c/site/public_html/bitrix/modules/main/lib/db/connection.php:329
#1: Bitrix\Main\DB\Connection->query(string)
/home/c/site/public_html/bitrix/modules/main/lib/entity/query.php:1767
#2: Bitrix\Main\Entity\Query->query(string)
/home/c/site/public_html/bitrix/modules/main/lib/entity/query.php:454
#3: Bitrix\Main\Entity\Query->exec()
/home/c/site/public_html/bitrix/modules/main/lib/entity/datamanager.php:242
#4: Bitrix\Main\Entity\DataManager::getList(array)
/home/c/site/public_html/bitrix/modules/socialservices/lib/network.php:446
#5: Bitrix\Socialservices\Network::displayAdminPopup(array)
/home/c/site/public_html/bitrix/modules/main/include/epilog_admin_before.php:45
#6: require(string)
/home/c/site/public_html/bitrix/modules/main/include/epilog_admin.php:2
#7: require(string)
/home/c/site/public_html/bitrix/modules/sale/admin/location_migration.php:364
#8: require_once(string)
/home/c/site/public_html/bitrix/admin/sale_location_migration.php:2ss
Здравствуйте. Имеется каталог. В нем присутствуют категории и подкатегории, т.е. генерируются ссылки вида site.ru/catalog/category/subcategory/ Необходимо включить в URL фильтр по брендам: site.ru/catalog/category/subcategory/BRAND/NAME_BRAND/ или site.ru/catalog/category/BRAND/NAME_BRAND/ или site.ru/catalog/category/subcategory/subcategory2/BRAND/NAME_BRAND/
т.е вложенность каталога может быть любая, главное что если в URL имеется ограничитель BRAND, то срабатывал фильтр по нему (что то вроде site.ru/catalog/category/FILTER/параметры фильтра/APPLY/)
Здравствуйте. Создаю кастомно заказ, используя D7 API
Код
$order = Order::create(ORDER_ID, USER_ID);
....
echo 'Создание заказа';
$order->save();
echo 'Проверка статуса заказа';
//любой другой код
После строки с сохранением заказа - дальше код не работает (не выводится текст "Проверка статуса заказа" и вообще любой код который дальше встречается просто игнорируется, ошибок не отображается и прочего. При этом заказа создается. Дебаг режим с включением отображения всех ошибок выводит только предупреждения
Код
Deprecated: Non-static method CSaleTaxRate::GetList() should not be called statically, assuming $this from incompatible context in /public_html/bitrix/modules/sale/lib/tax.php on line 640
Собственно вопрос заключается в названии. Имеется каталог с определенными свойствами товара, допустим: ширина и высота. У некоторых товаров есть торговые предложения, где есть несколько вариаций этих свойств, т.е у конкретного товара могут быть разные размеры. При сохранении товара, в умном фильтре дублируются свойства: ширина/высота из свойств обычного каталога и ширина/высота из свойств торговых предложений. Как объединить их?