Вы ребята только и выезжаете за счет маркетинга. Уровень разработки очень низкий для современных реалией. Кейсы не лечатся годами (за 10 лет работы замечено много). Надеюсь вас когда нибудь сожрут конкуренты или вы станете нормальной IT компанией. Второй вариант для меня больше бы подошел. Видимо пока у руля такие Евгении Жуковы - без вариантов.
OnStoreProductUpdate - событие, вызываемое в случае успешного изменения записи в таблице остатков товара с кодом ID в методе CCatalogStoreProductAll::Update.
Ищу программистов 1С Битрикс с опытом работы, достаточным для ведения квалифицированной работы по проектам разной сложности., Проекты разные от визиток до коробки b24. Удаленная работа.
В связи с ростом объема задач, требуется еще программист. Если есть свободное время минимум 3 часа в день и желание поработать, пишите skype : parnikov88
Ищу программистов 1С Битрикс с опытом работы, достаточным для ведения квалифицированной работы по проектам разной сложности., Проекты разные от визиток до коробки b24. Удаленная работа.
Есть сайт, в котором 1200 свойств ( так исторически сложилось ). Использую комплексный компонент bitrix.catalog, который в свою очередь подключает bitrix:catalog.section.
Вот вывод параметров компонента bitrix:catalog.section
Вопросы. Как избавиться от такого и где настроить?
Нашел кусок кода в ядре от куда этот бред формируется.
Есть такой "замечательный" метод modifyDisplayProperties абстрактного класса ElementList( наследник Base). Он вызывается от класса компонента /bitrix/components/bitrix/catalog.section/class.php и далее по цепочке наследования.
Код
protected function processResultData()
{
if ($this->initSectionResult())
{
$this->initSectionProperties();
parent::processResultData(); // переходим по цепочке >>
}
}
#####################################
// >> Оказываемся в Bitrix\Iblock\Component в классе Base
protected function processResultData()
{
$this->iblockProducts = $this->getProductsSeparatedByIblock();
$this->checkIblock();
if ($this->hasErrors())
return;
$this->initCurrencyConvert();
$this->initCatalogInfo();
$this->initPrices();
$this->initUrlTemplates();
$this->initElementList(); // переходим сюда >>>
if (!$this->hasErrors())
{
$this->sortElementList();
$this->makeElementLinks();
$this->prepareData();
$this->filterPureOffers();
$this->makeOutputResult();
}
}
#########################
// >>> Оказываемся в в этом же классе
protected function initElementList()
{
$this->storage['CURRENCY_LIST'] = array();
$this->storage['DEFAULT_MEASURE'] = $this->getDefaultMeasure();
$this->initQueryFields();
foreach ($this->iblockProducts as $iblock => $products)
{
$elementIterator = $this->getElementList($iblock, $products);
$iblockElements = $this->getIblockElements($elementIterator);
if (!empty($iblockElements) && !$this->hasErrors())
{
$this->modifyDisplayProperties($iblock, $iblockElements); // переходим сюда >>>
$this->elements = array_merge($this->elements, array_values($iblockElements));
$this->iblockProducts[$iblock] = array_keys($iblockElements);
}
unset($elementIterator, $iblockElements, $element);
}
}
################################
// >>> Оказываемся в Bitrix\Iblock\Component в классе ElementList modifyDisplayProperties
и видим, что от параметров компонента ничего не зависит
protected function modifyDisplayProperties($iblock, &$iblockElements){
if (!empty($iblockElements))
{
$iblockParams = $this->storage['IBLOCK_PARAMS'][$iblock];
$propertyCodes = $iblockParams['PROPERTY_CODE'];
$productProperties = $iblockParams['CART_PROPERTIES'];
$getPropertyCodes = !empty($propertyCodes);
$getProductProperties = $this->arParams['ADD_PROPERTIES_TO_BASKET'] === 'Y' && !empty($productProperties);
$getIblockProperties = $getPropertyCodes || $getProductProperties;
// вот здесь в любом варианте мы попадаем на выборку
// то есть я не смог с помощью параметров, сделать так, чтобы не попасть на выборку \CIBlockElement::GetPropertyValuesArray
if ($getIblockProperties || ($this->useCatalog && $this->useDiscountCache))
{
$propFilter = array(
'ID' => array_keys($iblockElements),
'IBLOCK_ID' => $iblock
);
// сюда передаются iblockElements - все элементы выборки покой-то фиг и загружаются все свойства.
\CIBlockElement::GetPropertyValuesArray($iblockElements, $iblock, $propFilter);
if ($getPropertyCodes)
Кто-нибудь знает решение? Не очень хочется CatalogSectionComponent выносить в свой неймспейс, там не только его придется править, а это гемор.
Иван Иванов написал: делаем вывод, что загрузка реквизитов типа "файл" в hl блок тупо не сделана, а ввод руками сделан. Я понимаю, что никто никому ничего не должен, жуем, что есть и не мычать. Но все же... кто сможет сказать, когда можно надеяться?
Насколько мне известно - уже сейчас делают этот функционал.
До сих пор делают ))).
Ни документации толковой (взять к примеру модуль crm ,вообще ничего нет), и элементарные вещи реализовывают годами. Люди за пользование фреймворком денег не берут, и пишут шикарную доку http://www.yiiframework.com/doc-2.0/guide-index.html. Сижу на битриксе, так как денег больше платят, а так бы давно бы расстался.
можно попробовать через АПИ удалить модуль, используя сам модуль его деинсталляцию см строка 220 метод DoUninstall() ваш_сервак/bitrix/modules/rest/install/index.php
Itachi261092 написал: Нужно использовать одно из имеющихся событий При копировании элемента идёт обычное создание нового элемента. плюс копируются поля выбранного элемента. событие позволит обнулить необходимые поля
Нет, не идет копирование элемента при нажатии кнопки копирвать, а лишь заполнение формы данными. которые бы хотелось модифицировать до вставки в
Собственно задача такая. Обнулять некоторые поля при копировании элемента через административную часть в списке элементов инфоблока. Нужно именно после нажатия кнопки копировать вносились измененные данные в нужные поля. Порывшись в api не нашел такой возможности. На форуме тоже нет. А ведь задача по моему часто встречается. Идеально конечно через обработчик события, но как?
Столкнулся с необходимостью фильтрации тем форумов. Поиск (bitrix:forum.search) не подходит, нужно, к примеру, фильтровать по дате || интервалам публикации темы. Было бы идеально если бы была возможность фильтрации как в компоненте news, просто определяешь массив с параметрами для getlist и все, а тут что то не найду решения. Как вариант, можно копировать в свой неймспейс компонент и уже ковырять component.php. Может есть решение получше? Гугл не помог.
Цель: создать рекламное место для баннеров с одинаковой частотой показов, чтобы один шел за другим, при перезагрузке/обновлении страницы.
Суть проблемы: есть контракт, у контракта есть баннер, баннер отнесен к типу RIGHT1, также у этого баннера ведется статистика количество показов и кликов. Добавляю новый баннер к контракту и отношу его к типу RIGHT1.
В шаблоне вывожу <? if(CModule::IncludeModule("advertising" echo CAdvBanner::Show("RIGHT1"; ?>
Наблюдаю случайный показ баннера.
Пытаюсь настроить через Равномерность ротации показывается опять же случайным образом, в списке баннеров вижу
Редакция управление сайтом эксперт Выставляю настройки Рабочий стол-> Настройки ->Настройки продукта ->Настройки модулей->форум->Доступ Ставлю для "Все пользователи (в том числе неавторизованные) [2]:" права "[R] просмотр всех данных модуля" И гость не видит содержимого форума вот,если я гость:
вот, если я админ(это понятно), что все права максимальные и все показываться.
Если выставить права для гостей(не авторизованных пользователей) как запись работает как для админа. но мне не нужно, чтобы они имели право создавать новые темы без привязки к существующему, валидному(проверенному) пользователю. Пробовал настраивать Рабочий стол->Сервисы->Форумы->Список форумов->Доступ Выставлял Все пользователи (в том числе неавторизованные) [2]: чтение Все ровно
Нашел вариант решения, но может люди лучше подскажут. Ресурсозатратная вещь получилась Короче вот: Создаем, а после обновляем с добавлением дополнительных прикреплений Знаю, плохо, но ничего не могу найти полдня сижу уже. Прямые запросы только на уме, к таблице b_forum_file остались