Идеи для: Информационные блоки

Рейтинг: 0.2623  
Новая
Предложил AndreyChursin 19.09.2017 13:15:12

bitrix:news.section.list

У комплексного компонента bitrix:news крайне не хватает функционала вывода разделов! ну почему в админке есть деление на разделы, а для вывода в публичной части нужно пользоваться костылями!??

Нужен функционал bitrix:catalog но без цен и прочих сложностей! ведь bitrix:news универсален для вывода любых данных, его используют всегда, все и почти везде!!

Прошу добавление такого простого компонента в состав комплексного и в роли самостоятельного элемента.
Комментируйте!
Рейтинг: 0  
Новая
Предложил Нуруллин Артур 11.09.2017 15:39:30

Справа бы не только значки контактов

Часто приходится переключаться с задачи на задачу, приходится сохранять и искать вновь другую, было бы хорошо чтоб справа были не только контакты а последние задачи или скрытые вкладки активных задач
Рейтинг: 0.7705  
Новая
Предложил Кротов Дмитрий 19.08.2017 12:41:32

iblock.element.add.form - добавить возможность загрузки файлов через main.file.input

Проблема следующая - в компоненте iblock.element.add.form файлы (для файловых свойств) обязательно должны загружаться в момент отправки формы (должен быть сформирован файловый массив), хотелось бы, чтобы можно было передавать только идентификатор файла, в этом случае можно было бы использовать удобную ajax-загрузку файлов и использовать компонент main.file.input.

Пример решения проблемы:
В файле \iblock.element.add.form\component.php заменить строки:
$arFile = $_FILES["PROPERTY_FILE_".$propertyID."_".$key];
$arFile["del"] = $_REQUEST["DELETE_FILE"][$propertyID][$key] == "Y" ? "Y" : "";
$arUpdatePropertyValues[$propertyID][$key] = $arFile;
на
if(!empty($value)){
   $arUpdatePropertyValues[$propertyID][$key] = $value;
} else {
   $arFile = $_FILES["PROPERTY_FILE_".$propertyID."_".$key];
   $arFile["del"] = $_REQUEST["DELETE_FILE"][$propertyID][$key] == "Y" ? "Y" : "";
   $arUpdatePropertyValues[$propertyID][$key] = $arFile;
}
Рейтинг: 0.5981  
Новая
Предложил AndreyChursin 17.08.2017 13:29:12

Импорт ИБ + ручное заполнение отсутствующих полей

Очень не хватает функционала для ручного заполнения полей(если в импортируемой базе их нет). Например у меня нет количества товара - а без него товары не отобразятся - лучше сразу при импорте подставить например 100, чем открывать файл, менять там ячейки, заливать заново и прочее... просто нужна обратная зависимость при установки соответствий: "поля ИБ" => "поля файла"
Рейтинг: 0.5302  
На голосовании
Предложил AndreyChursin 04.08.2017 13:02:52

Множественные файлы в разделах ИБ CMS

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



p.s. Возможно не нашёл такой идеи, либо поиск тут не работает...
p.p.s. С минусами прошу комментарии
Рейтинг: 0  
На голосовании
Предложил Borisenko Valentin 04.08.2017 09:38:53

Уровень доступа для визуальных настроек листинга и детальной страницы элемента ИБ

Здравствуйте,

было бы очень здорово, если бы при создании уровня доступа для ИБ была возможность ограничивать настройки визуального отображения свойств для листинга элементов и детальной страницы элемента. Понятное дело, что только админ может применить их для всех юзеров, но, бывают ситуации, когда нужно ограничить данную возможность в принципе - для любого юзера.

Спасибо за внимание.
Рейтинг: 0.5289  
Новая
Предложил Kirill 30.07.2017 19:37:27

Второй альтернативный внешний сервис для перевода символьного кода - вместо заблокированного Яндекса

В связи с блокировкой в Украине сервисов Яндекса, прошу рассмотреть возможность добавления второго альтернативного внешнего сервиса для перевода символьного кода заголовков элементов и разделов инфоблоков.
Или, как вариант, если возможно, сделать перевод на стороне сервера (чаще всего они заграницей и под блокировку не подпадают)

ps
У меня VPN-то включен и проблемы нет, а вот у клиентов есть проблема
Рейтинг: 1.7918  
Новая
Предложил Царук Антон 20.07.2017 16:59:56

Поменять очередность применения фильтра в компоненте catalog.section

Простейшая штука, а так была бы полезна.

В коде компонента вывода списка элементов (например, catalog.section), в месте, где происходит обращение к БД на выборку элементов, сливаются воедино два фильтра - тот, что задан в коде компонента, и внешний, который может быть задан разработчиком без влезания в код.

Сейчас это выглядит так:
array_merge($arrFilter, $arFilter)
$arrFilter - это преднастроенный в коде компонента фильтр.

Такая последовательность (ввиду логики работы array_merge) не позволяет переопределять параметры фильтрации, заложенные в коде компонента. Они всегда будут перезаписывать то, что пришло извне!

Особенно это обидно, когда нужно вывести стандартным компонентом неактивные элементы. Фактически - это сейчас сделать невозможно, надо копировать компонент, делать его кастомным, лишаться  обновлений и т.д. И все ради простейшей задачи.

А дело-то всего лишь в последовательности переменных...
Рейтинг: 0.4624  
Внедрено
Предложил AndreyChursin 07.07.2017 23:37:50

Редактор фото для одиночного свойства типа "Файл"

Необходимо добавить редактор фотографий для одиночных файлов!
Для множественного свойства "файл" редактор изображений доступен, но для одиночных - нет!
Рейтинг: 0  
Ответил Жуков Евгений 27.07.2017 14:49:46
Выйдет в iblock 17.0.11. Возможен сдвиг обновления.
Рейтинг: 1.6691  
Новая
Предложил Рыбка Дмитрий 21.06.2017 00:04:35

Чистить папку upload/iblock

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

Эта папка иногда является просто кладбищем для лишних файлов. Тоже касается и других подобных папок (ресайз кэш, например)
Рейтинг: 0.534  
На голосовании
Предложил Рамиль Юналиев 15.06.2017 14:04:51

Хватит подключать CModule::IncludeModule("iblock")

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

Подключать на уровне ядра сразу как main
Рейтинг: 0.6651  
На голосовании
Предложил Diz 02.06.2017 11:08:37

SEO в инфоблоках добавить, META KEYWORDS = тэги в элементе

Прошу добавить в штатные заготовки для инфоблоков на вкладки SEO
Возможность подставлять по  META KEYWORDS, тэги из собственно элементов вкладки SEO
Это же очевидно! =) но этого нет =(

Рейтинг: 0.909  
На голосовании
Предложил Дмитрий 25.05.2017 11:07:40

Выбор resizeType в настройках инфоблока

При загрузке PREVIEW_PICTURE  и DETAIL_PICTURE нельзя указать тип масштабирования:
  • BX_RESIZE_IMAGE_EXACT
  • BX_RESIZE_IMAGE_PROPORTIONAL
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT
Было бы очень удобно, если бы эти функции появились в новых обновлениях. Сейчас приходится использовать события.
Рейтинг: 1.0454  
На голосовании
Предложил Ирбис Александр 13.05.2017 13:57:58

При создании иб проставлять привязку к сайту автоматически

если сайт один,
чтобы не было ошибки "Не введена привязка к сайту"


в интерфейсе админа
постоянно с первого раза не могу сохранить иб
Рейтинг: 29.5867  
На голосовании
Предложил Клочков Илья 10.05.2017 03:07:14

Поддержка загрузки svg

Сейчас Bitrix не поддерживает загрузку файлов в svg формате для детальных картинок разделов, просьба внедрить , создавал обращение (прошло пол года - действий 0)



Номер обращения в разработку: 44135
Рейтинг: 0.5818  
На голосовании
Предложил Masiutin Maxim 05.05.2017 16:15:21

Warning! Cloaking! Не возвращается rss-лента форума поисковикам - важно возвращать

Исохдя из того, что RSS лента может быть довольно объемной, а хиты поисковиков - очень частыми, разработчики системы "Битрикс Управление Сайтом" намеренно сделали такое ограничение, что поисковикам не возвращается RSS.

Нет никакой опции изменить это поведение.

Проблема усугубляется тем, то вместо XML-содержимого RSS (хотя бы пустой XML-заглушки), поисковик получит пустую страницу, содержащую лишь site header & footer в формате html.

Это крайне вредная практика, т.к. поисковики не приветствуют, когда им возвращают одну информацию, а обычным пользвателям - другую. Это может быть расценено поисковиком как cloaking ( https://en.wikipedia.org/wiki/Cloaking ) и сайт может получить вечный бан.

Обращения поисковиков к RSS можно запретить через /robots.txt - указать там URLы или маски, и тогда поисковики не будут обращаться к RSS вообще.


В файле /bitrix/components/bitrix/forum.rss/component.php есть такой код

if (empty($arResult["FORUMS"]) || ($_SESSION["SESS_SEARCHER_ID"] > 0 && CModule::IncludeModule("statistic";))):
return false;

Таким образом, обычные пользователи могут подписываться на обновления RSS на форумах, например на https://www.ritlabs.com/en/forums/rss/rss2/forum/0/

Но если к этому URL обратится поисковик, который зарегистрирован у нас в списке поисковиков (Рабочий стол - Аналитика - Поисковики - Индексация - Список)

то вместо XML-содержимого RSS, поисковик получит пустую страницу, содержащую лишь site header & footer в формате html.


Я решил эту проблему для себя так: закоментировал сравнение на предмет поисковика. Стало так:

в файле /bitrix/components/bitrix/forum.rss/component.php есть такой код

if (empty($arResult["FORUMS"]) /*|| ($_SESSION["SESS_SEARCHER_ID"] > 0 && CModule::IncludeModule("statistic";))*/):
return false;

... но при обновлении Битрикс это может создать проблемы.

Необходимо внести это изменение в стандартный код Битрикс Управление Сайтом.

Аналогичный код есть и в /bitrix/modules/forum/include.php, там тоже идёт сравнение на поисковик перед авторизацией.

Также есть сравнение на поисковики при показе баннеров - там тоже безусловно вырезаются баннеры поисковикам - это граничит с cloaking.

Можно добавить параметр вызова $APPLICATION->IncludeComponent("bitrix:forum", который бы указывал отдавать rss поисковикам, или нет, например:

<?$APPLICATION->IncludeComponent("bitrix:forum","",Array(
      "DISABLE_RSS_FOR_SEARCH_ENGINES" => "N",

(по умолчанию этот параметр можно сделать"Y", чтобы сохранить существующую функциональность) , а кому НУЖНо отдавать RSS поисковикам, передаст "N".
Рейтинг: 0.9536  
На голосовании
Предложил Masiutin Maxim 05.05.2017 16:09:10

Поддержка параметра SET_LAST_MODIFIED во всех типах информационных блоков и в форумах

У комплексного компонента Новости "bitrix:news" есть очень полезный параметр SET_LAST_MODIFIED, который возвращает страницу с уже установленным заголовком Last-Modified. В этот заголовок он записывает самое последнее время и дату самого свежего элемента, отображенного на странице, будть то список элементов или один элемент. Заголовок Last-Modified позволяет разгрузить сайт следующим образом: если страница не изменилась, можно возвращать не всю страницу целиком, а лишь ответ not-modified, если клиент прислал If-Modified-Since, а также можно использовать reverse-proxy на сайте для кеширования динамических страниц публичного резела, чтобы не формировать их повторно системой Битрикс, а быстро отдавать из прокси.

К сожалению, для других типов информационных блоков (FAQ, и т.п.) не реализован параметр SET_LAST_MODIFIED и не устанавливается Last-Modified. Через шаблоны просто так Last-Modified не установишь, поскольку если шаблон сформировал странцу, которая попала в управляемый кеш, то эти данные не выполнятся, не установится Last-Modified. Поэтому надо устанавливать Last-Modified не из шаблона, а из компонента. Копироавть компонент в пространство имён не хочется, т.к. при обновлении продукта Битркс Управление сайтов возникнут вопросы по обновлению скопированного компонтента - он останется старым.

Будет замечатьельно для всех типов информационных блоков (FAQ, и т.п.) иметь поддержку параметра SET_LAST_MODIFIED, а также имть её поддержку для форумов.
Рейтинг: 1.4768  
На голосовании
Предложил Masiutin Maxim 04.05.2017 19:29:52

Ускорить отображение списка элементов информационного блока за счет устранения запроса текста детального просмотра

Предлагаю ускорить отображение списка элементов информационного блока за счет устранения ненужного запроса из базы текста детального просмотра. Этот текст для каждой новости может достигать громадных размеров, а для всего списка он суммируется, что приводит также к большому потреблению оперативной памяти.

 

Текст детального просмотра целиком нужен лишь при детальном отображении лишь одного элемента новости. Когда мы выводим спискок элементов, например список новостей, то весь текст детального просмотра не нужен, а нужен лишь признак его наличия, чтобы принять решение, отобразить ли URL на детальный просмотр.
Однако, при формировании списка, из базы одним запросом извлекаются все тексты детального просмотра всех элементов, отображаемых на экране. Это приводит не только к излишней перекачке данных, но и забивает большими размерами кеш SQL-запросов MySQL.
Проблема усугубляется тем обстоятельством, что нет никакого параметра, который бы позволял избежать загрузки текста детального просмотра при формировании списка.

Предлагаю ввести параметр, используемый при вызове компонента информационного блока, который бы указывал, что вместо текста детального просмотра нам нужен лишь признак его наличия или отсутствия:  LIST_CHECK_DETAIL_TEXT_PRESENCE_ONLY



Изменяем /bitrix/components/bitrix/news.list/component.php

Там есть список принудительно добавляемых параметров. Ищем такую строку
$arSelect = array_merge($arParams["FIELD_CODE"], array(
из этого списка убираем  "DETAIL_TEXT" и "DETAIL_TEXT_TYPE"

после этого списка добавляем такой код:

   if ($arParams["LIST_CHECK_DETAIL_TEXT_PRESENCE_ONLY"]=="Y";)
   {
$arSelect[]="HAS_DETAIL_TEXT";
   } else
   {
$arSelect[]="DETAIL_TEXT";
    $arSelect[]="DETAIL_TEXT_TYPE";
   }

То есть при наличии LIST_CHECK_DETAIL_TEXT_PRESENCE_ONLY == Y, будем запрашивать только признак, иначе – как раньше, по старой схеме, целиком текст.

Мы добавили запрос нового вычисляемого поля HAS_DETAIL_TEXT – осталось ввести его поддержку.

В /bitrix/modules/iblock/classes/mysql/iblockelement.php, там где идёт перевод названий параметров в названия колонок базы данных, добавляем такую строчку после «"DETAIL_TEXT_TYPE"=>"BE.DETAIL_TEXT_TYPE",»:

"HAS_DETAIL_TEXT"=>"((BE.DETAIL_TEXT IS NOT NULL) AND (BE.DETAIL_TEXT<>''))",

Во всех наших шаблонах, где есть примерно такой код:
   <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
 <h3>"><?echo $arItem["NAME"]?></h3>
  <?else:?>
просто заменяем "DETAIL_TEXT" на "HAS_DETAIL_TEXT"

также в файлах, которые передают параметры шаблонам (news.php), добавляем передачу нашего параметра:
   "LIST_CHECK_DETAIL_TEXT_PRESENCE_ONLY" => $arParams["LIST_CHECK_DETAIL_TEXT_PRESENCE_ONLY"],

И при вызове комплексного компонента новостей, также указываем наш параметр:

   "LIST_CHECK_DETAIL_TEXT_PRESENCE_ONLY" => "Y",

простое и надёжное изменение привело к существенному повышению производительности, уменьшило скорость формирования списка новостей, и самое главное, разгрузило кеш базы
Рейтинг: 0.2464  
Новая
Предложил Masiutin Maxim 04.05.2017 18:22:26

Ускорить отображение элементов информационных блоков за счет опционального отключения ненужных счетчиков просмотра и ликвидации операции записи в базу

В /bitrix/components/bitrix/news.detail/component.php есть безусловный вызов CIBlockElement::CounterInc($arResult["ID"]);, который, в свою очередь, формирует и посылает в базу данных запрос примерно такого содержания:
UPD ATE b_iblock_element
SE T
  TIMESTAMP_X = TIMESTAMP_X,
  SHOW_COUNTER_START = ifnull(
SHOW_COUNTER_START,
now()
  ),
  SHOW_COUNTER = ifnull(SHOW_COUNTER, 0) + 1
WHERE
  ID = 6515


Таким образом, в таблице b_iblock_element увеличивается переменная SHOW_COUNTER.

Эта переменная далеко не всем нужна.

Не все её используют для изучаения числа просмотров, не всегда она выводится или используется. При использовании nginx с керированием, когда nginx кеширует не только статические файлы, но и динамичекские страницы, счетчик будет отображать неверные данные, и лучше считать обращения, используя анализатор логов nginx.

Я предлагаю опцию отключения модификации счетчика. Это избавит от лишних дорогих операций записи в базу и ускорит отображение элементов информационных блоков для тех, кому счетчики не нужны.

Предлагаю в параметры компонентов информационных блоков добавить еще один - "DISABLE_SHOW_COUNTERS". Если его значение равно „Y” – то счетчики не увеличиваются.

В /bitrix/components/bitrix/news.detail/component.php оборачиваем в условие вызов метода увеличения счетчкика. Код получится следующий:

if (!(array_key_exists("DISABLE_SHOW_COUNTERS", $arParams) && ($arParams["DISABLE_SHOW_COUNTERS"]=="Y";)))
{
          CIBlockElement::CounterInc($arResult["ID"]);
}

В шаблонах, там, где идёт наследование параметров, добавляем и этот параметр. Например, в detail.php, там, где идёт следующий код
<?$ElementID = $APPLICATION->IncludeComponent(
   "bitrix:news.detail",
   "",
   Array(
"DISPLAY_DATE" => $arParams["DISPLAY_DATE"],


добавляем наш новый параметр:

"DISABLE_SHOW_COUNTERS" => $arParams["DISABLE_SHOW_COUNTERS"],


а также добавляем его в те места нашего кода, где мы вызываем компонент информационных блоков, например в

   <?$APPLICATION->IncludeComponent(
   "bitrix:news",

добавляем

"DISABLE_SHOW_COUNTERS" => "Y",




Поддержка нового параметра проблем совместимости со старым кодом не вызвала, доработка кода – минимальная, а выигрыш – существенный: избавились от ненужного обращения к базе, тем более не просто обращения, а операции записи. Это, помимо прочего, удлинит жизнь SSD-дисков