Изменение логики с "ИЛИ" на "И" смартфильтра для множественного списочного свойства.
Код вставляется после смартфильтра, перед catalog.section
Если в bitrix:catalog.section не "FILTER_NAME" => $arParams["FILTER_NAME"], заменить в коде "$arParams["FILTER_NAME"]" на ваше значение. $arPropIds это ID свойств, у которых изменится логика на "И"
P/S 1. Данный подход для тех у кого catalog.section не вынесен в свое пространство. Если вынесен, логично доработки произвести внем. 2. Способ создает дополнительную выборку из БД, ввиду этого на огромных количествах товаров нагрузка увеличится.
Талызенков Сергей, когда делаем отбор в пределах одного свойства -- да
а когда надо сделать так, чтобы шла фильтрация по товарам у которых свойство_1 имеет значение_1 ИЛИ свойство_2имеет значение_2, то не получается. то есть -- случай, если мне надо чтобы в выборке отображались и те, и другие товары.
на практике фильтр при выборе значения_1 у свойства_1 попросту блокирует свойство_2
Мархакшинов Михаил, Вы разобрались как работает код на гитхабе? Он не меняет шаблон смартфильтра, его вам нужно менять самому. Этот код выбирает id товаров по своей логике, дальше эти id уйдут на компонент catalog.section. Разберитесь как работает код. Вам нужно поменять один общий запрос по всем свойствам на отдельный запрос каждого свойства, тогда подберутся товары которые вы хотите.
Сергей Талызенков, 1) monolog вообще к битриксу не относится, для него написали адаптер, и в нормальном мире разработчиков всё делается через не через GUI зачем мне куда то лезть если всё можно сделать из командной строки.
2) Маркетплейс для "обезьян", не для разработчиков, В маркетплейсе надо облизвать клиентов, давать им решения с которыми даже макака справится, маркетплейс не для разработчиков
3) Настоятельно рекомендую разобраться с композером - и командной строкой для него - это час вашего времени, и я уверяю вас жить станет намного легче
4) Использовать bitrix way для разработки, то есть копипастить, маркетплейс - это моветон, это вот вообще самонеуважение, уходите от этого, ест удобные инструменты - пользуйтесь
Ну и я думаю что у вас всё получится)
Кстати в композере есть разрешение зависимостей, а в маркетплейсе нет В композере я могу поставить любую версию библиотеки - а в маркетплейсе только последнюю В композере, он сам подтянет нужные зависимости и конфликтов имен не возникнет, в маркетплейсе - нет В композере люди пишут библиотеки, которых качество кода выше, потому что понимают - в маркетплейсе нет В композере уже придуман специальный пакет composer-installers - он необходим для того чтобы пакеты устанавливались как модули (предусмотрено это для разных CMS) В композере есть возможность автозагрузки классов, файлов, бибилотек, стандартов (psr-0 до psr-7) - в маркетплейсе нет)
Я вас уверяю знакомство с композером не оставит равнодушным никого
Посты с блога в документацию. В 2011 году была попытка создания удобной консолидации опыта разработчиков в виде группы "Академия 1С-Битрикс выпускников" http://dev.1c-bitrix.ru/community/web...107/forum/ Но формат все же оказался не удобным. Сейчас полезная информация разбросана по - документация - курсы - блоги - форум И чтобы найти информацию на необходимую тематику, приходится пользоваться поиском через гугл site:1c-bitrix.ru d7 query
В документации есть механизм комментирования но он не стимулирует пользователей размещать там информацию. Многие выбирают блоги. Предложение вариантов улучшения ситуации: 1. Разрешить пользователям добавлять документацию 2. При публикации поста привязывать его к разделу документации При этом модерация, стимулирование бонусами, правила размещения информации.
Фрилансеры оцените идею - http://idea.1c-bitrix.ru/to-create-th...r-automat/ Эта отчетность более ценна для почасовой оплаты. Поделитесь своим мнением о плюсах и минусах такой отчетности. Мое видение плюсов: - не нужно включать/выключать учет времени; - не нужно объяснять сколько времени ушло на ту или иную задачу(хотя многие привыкли отчитываться позадачно); - если клиент сомневается в правдивости информации у него есть возможность все проверить; - анализируя распределение времени между ide и skype клиент поймет на чем можно хорошо сэкономить;
Такой подход поможет и студиям, когда халатное отношение к формированию заданий затягивает сроки реализации проектов. Студия может смело отдавать контакт общения клиента и разработчиком, не боясь, что клиент будет платить напрямую разработчику, и не внося испорченный телефон в задания клиента.
Сергей, вопрос контроля работы фрилансера сводится к следующему"Если стоимость учета единицы стоит дороже, чем стоимость ее потери - это бред" Так мне в 2007 году сказал один из финансовых директоров крупного холдинга.И потом продолжил Поэтому мы канцтовары списываем сразу же по факту их раздачи , а то, что сотрудники часть по домам растаскают.... ну да. Но это же получится меньше, чем стоимость озраны карандашей?
Одному фрилансеру я задал вопрос в ответ на его строгое условие работать строго по факту:Вышлите примеры того, что уже вы сделали и скажите, сколько у вас ушло времени Мне было бы достаточно, для того, чтобы понять все. Но он .... не стал дальше разговаривать со мной после этой просьбы. А всего лишь по сути попросил портфолио, для оценки его мощности как специалиста.
И вот момент, который касается почасовки вообще
Как бывший учитель физики, я иногда клиентам рисую такую формулу
A = P * t
Вот исполнитель хочет, чтобы P = цена А заказчик, для которого важна работа, следует строго законам мироздания и считает, что P это мощность и считает честным, если будет платит за работу.
Кто прав? Можно до посинения разбираться, но мне кажется - что лучше добиться адекватного соотношения величин P(мощность) должно соответствовать P(стоимость) и тогда все встанет на свои места
А если следовать вашей идее, то всего то надо приказать своему мозгу рождать мысли строго с определенной мощностью, производить любой код со стабильностью конвеера, и останется только запустить таймер
Ясно, странный я человек, работаю в режиме скринов моего экрана и дискомфорта не чувствую. Видать болен - нужно лечиться Стать более скрытным. Но мне не стыдно просить 20$ в час за свою работу.
Фрилансер! Запомни !!! Никогда не работай на большое время с непроверенными людьми. Первые задания должны быть не более 5 часов, и продолжать дальше только после оплаты первых часов. Иначе у тебя будет возможность остаться без оплаты вовсе!!!
Самое смешное, что директор http://vsyaotdelka.ru даже не в курсе как работает магазин. Я когда узнал, был в шоке. Получается его держат только за то что он хорошо лижет. Это просто фантастика, как такие компании могут работать, ума не приложу.
Если они ищут разработчиков, может под другим именем как-нибудь попробовать сконтактировать, может клюнут, главное, получить доступы к сайту, а там все можно припомнить. У меня одни такие тоже были, ой как они были несчастливы, когда и магазин восстановить не смогли из резервной копии и меня на 15-ку кинули, что я там на почту только не получал, таких соплей я не видал))) После них я на каждом сайте заливал перед сдачей работ шелл + файл-менеджер, чтобы антивирус не определил, шеллы находят, а файл-менеджер нет)
Блокировка ключа основного сайта, нерешаемая решаемая проблема.
Периодически на разных сайтах выплывает проблема блокировки ключа. Печально, что блокируется основной домен, сайт на нем уже очень давно, но система похоже про это не знает. Детально в идее, прошу коллег прокомментировать, дополнить, голосовать за идею. http://idea.1c-bitrix.ru/11189/
Талызенков Сергей написал: while ($arBasket = $dbBasket->Fetch()) { /* Считаем товары в заказах, они пойдут в зарезервированные */ if(!$arItemsQ[$arBasket['PRODUCT_ID']]) $arItemsQ[$arBasket['PRODUCT_ID']] = round($arBasket['QUANTITY']); else $arItemsQ[$arBasket['PRODUCT_ID']] += $arBasket['QUANTITY']; }
вынесите после получения заказов...Ато циклами не айс
А теперь по пунктам 1) Расчет резервов ведется на +- т.е. Получаем на выходе такую картину как с скрина 1 хотя по факту в админке товара в наличии 0 а в резерве 1. т.е. Если я щас обновлю, у меня его станет -1 в наличии
Позволяем скачивание файла пользователям с определенной группы.
На файл price.csv убираем публичные права (чтение, запись, выполнение).
10 - номер группы которой нужно дать право на скачивание.
<?
if( in_array(10,CUser::GetUserGroup(CUser::GetID())) ){
file_force_download($_SERVER["DOCUMENT_ROOT"].'/price.csv');
}
function file_force_download($file) {
if (file_exists($file)) {
// сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт
// если этого не сделать файл будет читаться в память полностью!
if (ob_get_level()) {
ob_end_clean();
}
// заставляем браузер показать окно сохранения файла
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
// читаем файл и отправляем его пользователю
readfile($file);
exit;
}
}
?>
идея вам: показ картинок в зависимости от группы суть та же. только нужно редирект с дефолтной выдачи на нашу сделать это так, для извращенцев. Или можно сделать live watermark. Или защиту от кроспостинга
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».