Рейтинг: 13.1063  
На голосовании
Предложил Пользователь 16182 14.10.2013 13:43:39

Добавить параметр SECTION_CODE в Умный Фильтр

А то сейчас можно только SECTION_ID в него передать, приходится делать доп. запросы на определение ID по символьному коду прямо в section.php, что есть неудобно и некрасиво, и повышает вероятность ошибок.
Рейтинг: 15.2677  
На голосовании
Предложил Пользователь 16182 11.10.2013 12:01:41

Добавить больше проверок в стандартные компоненты

Например, возьмем банальный bitrix:catalog.section

в нем жестко прописано:
#/bitrix/components/bitrix/catalog.section/component.php:448  

$arFilter = array(
   "IBLOCK_ID" => $arParams["IBLOCK_ID"],
   "IBLOCK_LID" => SITE_ID,
   "IBLOCK_ACTIVE" => "Y",
   "ACTIVE_DATE" => "Y",
   "ACTIVE" => "Y",
   "CHECK_PERMISSIONS" => "Y",
   "MIN_PERMISSION" => "R",
   "INCLUDE_SUBSECTIONS" => ($arParams["INCLUDE_SUBSECTIONS"] == 'N' ? 'N' : 'Y'),
);

Читать подробнее...

Рейтинг: 11.0749  
На голосовании
Предложил Пользователь 16182 26.09.2013 23:10:19

Фильтрация в Умном фильтре по связанным элементам

Есть товар, у него свойство "Производитель" с типом "Привязка к элементам инфоблока",
а у производителя есть свойство "Страна".

Хочется иметь штатную возможность фильтровать товары по странам (то есть, по свойствам связанного элемента).

Пока что фильтрация по связанным свойствам поддерживается только для элементов СКУ, но она так же очень нужна и для обычных свойств.
Рейтинг: 0.5139  
На голосовании
Предложил Пользователь 16182 23.09.2013 10:11:41

Параметр "Не кешировать шаблон" в настройках компонента

Очень часто нужно подключить другой компонент в шаблоне одного компонента, и чтобы не городить костыли, удобно было бы иметь штатную возможность включать или выключать функционал кеширования шаблона.
Рейтинг: 29.4019  
Внедрено
Предложил Пользователь 16182 22.09.2013 23:34:58

Количество выбираемых элементов в Умном Фильтре

Очень популярная, и главное удобная фишка - вывбор количества элементов, которые будут выбраны при клике на соответствующий вариант значения фильтра:



Рабочий пример можно посмотреть, например, на этом сайте: http://rozetka.com.ua/notebooks/c80004/filter/price=8899-12633;producer=asus%2Clenovo;20861=6305/

что интересно в примере, количество возможных выбранных элементов меняется так же и в зависимости от выбранного диапазона цены (чего тоже нет в текущей версии Умного Фильтра, который подсвечивает галочки disabled только в зависимости от комбинации свойств, и игнорирует выбранный диапазон цен).
Рейтинг: 0  
Ответил 01.06.2015 11:20:59
Внедрено в 15.5 релизе. Спасибо всем за идею и комментарии!
Рейтинг: -0.5553  
Новая
Предложил Пользователь 16182 19.09.2013 23:37:14

При копировании шаблона компонента создавать заготовку .parameters.php

Тем, кто любит использовать штатные компоненты, приходится часто копировать их шаблон, и чтобы добавить какую-то свою логику - удобно создавать файлик .parameters.php, в котором при необходимости добавлять свои параметры.

Было бы классно, если бы при копировании шаблона автоматом создавался код с заготовкой .parameters.php который было бы достаточно раскомметнировать, и подстроить под себя в пару кликов, например, такой: https://docs.google.com/document/d/1Y0EqFDFxHgBSf0Zf4dAswS0jE9Gn1umLoj8wHRCJqpw/pub


Или добавить обработчики события при копировании компонента, как предлагал Антон Долганин в своей идее, тогда бы это можно было бы сделать автоматом своим обработчиком.
Рейтинг: 41.1003  
Новая
Предложил Пользователь 25773 18.09.2013 13:08:56

ADDITIONAL_VALUES=Y во всех компонентах по умолчанию. Цены в каталоге.

Я уже писал похожую идею. Но до сих пор мучаюсь.

В компонентах Битрикса можно легко стереть свои собственные настройки.

Я не могу в стандартный компонент передать параметр через переменную.





Если так написать, то при сохранении параметров компонента мои настройки пропадут:
"PRICE_CODE" => array(
   0 => $Price,
),
Что мешало разработчику сразу сделать в .parameters.php:



"PRICE_CODE" => array(
   "PARENT" => "PRICES",
   "NAME" => GetMessage("IBLOCK_PRICE_CODE" ) ,
   "TYPE" => "LIST",
   "MULTIPLE" => "Y",
   "VALUES" => $arPrice,
   "ADITIONAL_VALUES" => "Y"
) ,

Намного лучше:




Я когда-то пол-года ждал от битрикса, когда направление индекса сортировки добавят ADDITIONAL_VALUES=Y, чтобы я мог через переменную работать и направление сортировки менять.

Пусть будет по умолчанию ADDITIONAL_VALUES=Y, если не задано, во все компонентах. Чтобы я больше не обращался в битрикс и не ждал, когда какую-нибудь мелочь где-нибудь добавят.

Если явно задано ADDITIONAL_VALUES=N - то не выводить.
Рейтинг: 45.008  
Новая
Предложил Пользователь 16182 18.09.2013 01:39:32

файл params_modifier.php в шаблоне компонента

Все знают, что есть прекрастный файл result_modifier.php, который можно разместить в папке шаблона и дополнить результат работы системного компонента, чтобы не модифицировать его.
Так же недавно ввели полезный файлик component_epilog.php чтобы изменять динамичекие свойства на странице без кеширования.

Для полной картины - нехватает одного завершающего штриха - файлика params_modifier.php :!:, который бы позволил програмно менять параметры компонента перед его запуском.

Типичный пример - используем компонент bitrix:catalog.top чтобы вывести несколько лучших товаров по определенному критерию. Было бы отилчно иметь возможность в файлике params_modifier.php произвести изменение входных параметров (например, заполнить переменную arrFilter), или определить раздел инфблока, из которого выводить элементы, на основе каких-то дополнительных критериев (например, текущей страницы), или проверить права доступа, и выбрать нужные свойства для того или иного пользователя. Сейчас для того, чтобы это проделать, нужно перед вызовом компонента размещать сторонний код, что разбивает компонент на части и повышает риск случайного изменения кода.

Было бы очень удобно иметь возможность определить или програмно изменить входные параметры компонента перед его запуском, чтобы сохранить системный компонент.

Хоть сам я и сторонник написать свой компонент, но это если делать для себя. Если же сайт потом будут редактировать другие люди, или если приходится доделывать после кого-то, согласитесь, очень приятно увидеть на сайте старые добрые bitrix:catalog или bitrix:catalog.section.list где ты легко можно найти что было изменено или добавлено, и быть более-менее уверенным что разработка велась правильно. Хоть и неоптимально, и медленно, и большой кеш, но зато оно работает, четко и правильно, кешируется, и всё такое.

Так вот, чтобы оттянуть по максимуму необходимость копировать штатный компонент в своё пространство имен - очень нужно добавить такую штучку как params_modifier.php (в шаблоне компонента), которая позволит динамически модифицировать входные параметры компонента и иметь тиражное решение для разработок из коробки. :idea:
Рейтинг: -2.867  
На голосовании
Предложил Пользователь 109495 16.09.2013 13:53:19

Сделать кнопку "Копировать компонент"

По аналогии с копированием шаблона предлагаю при визуальном редактировании сайта сделать кнопку "Копировать компонент" и "Редактировать компнент". По аналогии с шаблоном - редактировать можно только нестандартные компоненты, при копировании открывается аналогичное с шаблоном окошко, в котором указывается пространство имен, в которое копируется компонент.

Рейтинг: 12.4783  
На голосовании
Предложил Пользователь 109495 12.09.2013 08:55:46

Запросы в цикле в стандартных компонентах или хватит это терпеть

Идея

Модифицировать GetFileArray чтобы он мог получать массивы сразу для нескольких файлов и применить в компоненте news.list, чтобы он не порождал по 2 дополнительных запроса для каждого найденного элемента. Сервер скажет спасибо.

Кому и зачем нужно

В одном из самых популярных компонентов ever является news.list. С давних времен разработчики используют его для вывода всего чего угодно. И в этом важном компоненте нарушается одна из главных заповедей производительности веб-приложений - там запросы в цикле :evil:.

Приведу пример.
/bitrix/components/bitrix/news.list/component.php:240
if(array_key_exists("PREVIEW_PICTURE", $arItem))
                $arItem["PREVIEW_PICTURE"] = CFile::GetFileArray($arItem["PREVIEW_PICTURE"] ); 
Независимо от настроек всегда получается картинка. И это в цикле:o! Строчкой позже делается аналогичный запрос для детальной картинки. Если у вас в news.list 100 элементов, ждите примерно 100 дополнительных запросов (а то и все 200:!:, если у вас есть и детальная картинка и анонсная).

Кажется, что решение проблемы состоит из 1 действия - выполнить запрос всех картинок разом. Но не тут то было. Метод CFile::GetFileArray не принимает массивы ID, только 1 файл за раз. И это, кстати, большая проблема многих методов Битрикс.