Идеи пользователя 17890

Рейтинг: 0  
Новая
Предложил Пользователь 17890 12.09.2023 21:02:48

Добавить настройку "Базовая задача" и отображать в карточках просмотра задач

В виде задач "сроки" добавить отображение базовой задачи в карточках задач, как можно включить отображение проекта.
Рейтинг: 4.7804  
Новая
Предложил Пользователь 17890 04.06.2023 20:10:17

У архаичного метода CFile::ResizeImageGet() добавить возможность получать миниатюры в webp

Описание метода думаю всем знакомо:
https://dev.1c-bitrix.ru/api_help/main/reference/cfile/resizeimageget.php

Чтобы не городить обертки или события для этого метода, рекомендую добавить из коробки в заведенный для этого метода параметр array $arFilters = false еще один фильтр, например, назвать его 'convert_to_format', и получим нечто подобное:

$arFilters = [
      ["name" => "sharpen", "precision" => 15],
      ['name' => "watermark", /*  */]
      ["name" => "convert_to_format", "value" => 'webp'],
];


Может я упустил, и в новом ядре это есть?
Рейтинг: 5.8902  
Рейтинг: 4.8902  
Новая
Предложил Пользователь 17890 20.11.2022 05:37:44

API компонентов инфоблока: не выбирать сео-подстановки для элементов списка в catalog.section

Хотелось бы управлять в виде: выбрать или нет сео-данные в компонентах наследниках для работы с элементами инфоблока (catalog.section, и проч.)

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

use Iblock\InheritedProperty\ElementValues;

class \Bitrix\Iblock\Component\Base
{
// ...
protected function modifyElementCommonData(array &$element)
{
   // ...

   // not select on lists
   if (! ($this instanceof \CatalogSectionComponent)) {
      $ipropValues = new ElementValues(
            $element['IBLOCK_ID'], 
            $element['ID']
      );
      $element['IPROPERTY_VALUES'] = $ipropValues->getValues();
   }
без этой строчки заметил, что число запросов в цикле увеличилось... (представьте страницу - показать все)
Рейтинг: 8.8902  
Новая
Предложил Пользователь 17890 10.03.2021 18:11:27

в проверке доступа к диску не проверять папку .git

Собственно, все в теме Не однократно сталкивался с проблемой, обычно папка с контролем версий имеет другие права доступа, думаю целесообразно при проверке доступа к диску не проверять данную папку, как минимум на запись.
Рейтинг: 8  
Новая
Предложил Пользователь 17890 15.10.2019 17:55:47

Уйти от использования serialized-строк в БД, использовать JSON

Часто сталкиваюсь с не-возможностью unserialize данных после смены кодировки в БД.
Чтобы хранение сделать более переносимым лучше использовать для хранения JSON вместо serialized-строк.

PS последняя проблема была в таблице b_seo_search_engine поле SETTINGS
Рейтинг: 2  
Новая
Предложил Пользователь 17890 13.10.2019 18:45:18

Добавить теги TAGS в секции инфоблока

Странно, но в секциях инфоблока нет системного поля "теги".
просьба добавить его.
Рейтинг: 2  
Новая
Предложил Пользователь 17890 04.10.2019 15:53:59

Сделать возможность кешировать данные в различных местах под одним ядром

Например, некоторые части приложения кешировать в APCu а остальные - в файлы.

use \Bitrix\Main\Data\Cache;
// получаем экземпляр класса c конфигурацией cache_config_name
$cache = Cache::createInstance('cache_config_name'); 


файл /bitrix/.settings.php по аналогии с несколькими connections для бд

'cache' => [
   'value' =>
      [
         'default' => [
            'type' => [
               'class_name' =>
                  '\\Bitrix\\Main\\Data\\CacheEngineFiles'
            ]
         ],
         'cache_config_name' => [
            'type' => [
               'class_name' =>
                  '\\Bitrix\\Main\\Data\\CacheEngineRedis',
               'extension' => 'redis'
            ],
            'redis' => [
               'host' => '127.0.0.1',
               'port' => '6379'
            ]
         ],
         'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
      ]   
Рейтинг: 3  
На голосовании
Предложил Пользователь 17890 14.01.2019 15:02:34

Просьба добавить сюда отсылку на глобальную переменную, так так не раз встречаем ошибку

ошибка:

Call to a member function IncludeComponent() on null (0)
/home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/eventmessagethemecompiler.php(387) : eval()'d code:5
#0: eval
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/eventmessagethemecompiler.php:387
#1: Bitrix\Main\Mail\EventMessageThemeCompiler->executePhp(string, integer)
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/eventmessagethemecompiler.php:369
#2: Bitrix\Main\Mail\EventMessageThemeCompiler->execute()
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/eventmessagecompiler.php:144
#3: Bitrix\Main\Mail\EventMessageCompiler->setMailBody()
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/eventmessagecompiler.php:99
#4: Bitrix\Main\Mail\EventMessageCompiler->compile()
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/event.php:224
#5: Bitrix\Main\Mail\Event::handleEvent(array)
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/eventmanager.php:171
#6: Bitrix\Main\Mail\EventManager::executeEvents()
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/lib/mail/eventmanager.php:39
#7: Bitrix\Main\Mail\EventManager::checkEvents()
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/classes/general/event.php:20
#8: CAllEvent::CheckEvents()
       /home/bitrix/ext_www/supersite.ru/bitrix/modules/main/tools/cron_events.php:16

фикс в методе Bitrix\Main\Mail\EventMessageThemeCompiler::executePhp()

Рейтинг: 4.8902  
Новая
Предложил Пользователь 17890 15.02.2018 01:18:54

При переиндексации поиском показывать сколько всего документов

Модуль поиска.
Совершенно не понятно, сколько еще ждать.
Кол-во элементов инфоблока уже перевалило, а сколько еще индексировать то будет?

Добавить бы для наглядности сколько всего документов под индексацию попало... (ну или примерную ориентировочную какую-то величину)

Рейтинг: 3.9726  
Внедрено
Предложил Пользователь 17890 06.10.2016 18:14:12

bitrix:catalog.element - убрать лишние данные из кеша

Кеш на компоненте занимает мегабайты, в случае если у секций есть длинные описания, либо много свойств.

Нужно это поправить.    

1/ Массив $arResult['SECTION']  и подмассив $arResult["SECTION"]["PATH"]:
зачем сохранять в кеше все поля секций, даже SEARCHABLE_CONTENT?
для сео они все не нужны.

2/ Зачем сохранять все свойства элемента в кеш и даже пустые?
Массив $arResult['PROPERTIES'] - зачем все сохраняются? для сео и прочего лишь некоторые ведь нужны...
Надо лишние убирать.

После удаления лишнего из кеша, объем этого самого кеша уменьшается с 3мб до 90кб.
Считаю, что нужно внедрить это в компонент bitrix:catalog.element.

Пример решения через result_modifier.php компонента bitrix:catalog.element:
// clear unused cache fields
foreach ($arResult['PROPERTIES'] as $k => $prop) {
   if (trim($prop['VALUE']) == '') {
      unset($arResult['PROPERTIES'][$k]);
   }
}

$arDeleteSectionKeys = array('SEARCHABLE_CONTENT', '~SEARCHABLE_CONTENT');
foreach ($arResult['SECTION'] as $k => $s) {
   if ($k == 'PATH') {
      foreach ($s as $ks => $ss) {
         foreach ($ss as $kss => $ss2) {
            if (in_array($kss, $arDeleteSectionKeys)) {
               unset($arResult['SECTION'][$k][$ks][$kss]);
            }
         }
      }
   } else if (in_array($k, $arDeleteSectionKeys)) {
      unset($arResult['SECTION'][$k]);
   }
} 
Рейтинг: 0.0185  
Ответил Жуков Евгений 25.10.2016 15:08:47
iblock 16.6.1. изменения затронут так же news.detail.
п.1 Оставили только часть полей
п.2. Ключ PROPERTIES больше не сохраняется вообще - в нем больше нет необходимости
Рейтинг: 0  
На голосовании
Предложил Пользователь 17890 23.03.2016 14:39:12

Импорт подписчиков - добавить сообщение, что скрипт видит емелы

Клиент повторно грузит базу подписчиков около 946, при этом скрипт показывает, что на обновление только 5 адресов, нужно добавить сообщение вот так:

Рейтинг: 14.4861  
Рейтинг: 0.7737  
На голосовании
Предложил Пользователь 17890 27.01.2016 15:18:32

Выводить также в панель меню из параметра CHILD_MENU_TYPE (bitrix:menu)

Верхнее многоуровневое меню (bitrix:menu) настроено так:
ROOT_MENU_TYPE => top
CHILD_MENU_TYPE => left
При этом на панели не отображаются действия над подменю left, а очень удобно было бы:

Рейтинг: 3.7503  
На голосовании
Предложил Пользователь 17890 27.11.2015 14:51:00

добавить возможность для отдельных пользователей b24 отключить летающих суперменов навсегда

см. тему
идею мы поняли, но не хочется больше их видеть, мы и так на рассылку подписаны.
Рейтинг: 34.1397  
В работе
Предложил Пользователь 17890 21.11.2015 03:07:03

Сделать продукт совместимым с php7

Свершился релиз php7 и очень бы хотелось посмотреть на скорость работы уже сейчас :|

Fatal error: Cannot use 'String' as class name as it is reserved in bitrix\modules\main\lib\text\string.php on line 4

Fatal error: Argument 1 passed to Bitrix\Main\Diag\ExceptionHandler::handleException() must be an instance of Exception, instance of EngineException given in bitrix\modules\main\lib\diag\exceptionhandler.php on line 167

Fatal error: Argument 1 passed to Bitrix\Main\Diag\HttpExceptionHandlerOutput::renderExceptionMessage() must be an instance of Exception, instance of EngineException given, called in bitrix\modules\main\lib\diag\exceptionhandler.php on line 171 and defined in bitrix\modules\main\lib\diag\httpexceptionhandleroutput.php on line 11

... 
Рейтинг: 3.6148  
На голосовании
Предложил Пользователь 17890 01.08.2015 02:29:03

добавить возможность перетаскивать вкладки фильтров в админке

Вкладок и настроенных фильтров много.



Хотелось бы вторую вкладку перетащить куда-то то в конец....
Рейтинг: 2.0129  
Новая
Предложил Пользователь 17890 03.07.2015 19:21:26

Кеш: добавить произвольную серриализацию

сделать возможным указывать свой режим сериализации, отличный от стандартного serialize() --> unserialize()


Еще по теме:

apc_store() - позволяет хранить переменную. Сама функция серриализует данные.
Можно подключить igbinary и указать apc.serializer=igbinary

при этом apc_store() будет использовать серриализатор igbinary (а не стандартный)

В коде главного модуля сейчас зашито:
$arAllVars = serialize($arAllVars);
apc_store($baseDirVersion."|".$initDirVersion."|".$filename, $arAllVars, intval($TTL));
Поэтому настройка apc.serializer=igbinary просто игнорируется.
Нужно это убрать.

К, примеру, memcached этого недостатка лишен, и можно указать memcached.serializer = igbinary, и в ядре не происходит предварительной серриализации массива стандартной функцией serialize()
Рейтинг: 9.4216  
На голосовании
Предложил Пользователь 17890 26.05.2015 17:50:31

Задачу с подзадачами преобразовать в группу с задачами



Кейс использования:

Минуя группу создана задача как корень проекта, в ней сотрудникам пошли подзадачи. Цикл жизни такой базовой задачи небольшой, некая такая условная группировка, поэтому группу создавать нецелесообразно.

Но:
Меняется цикл жизни, полное сотрудничество. Нужно делать проект, все задачи перекинуть в него. Удобно было бы кликнуть на панели действий у такой задачи с подзадачами - и одним кликом создать одноименную группу, при этом все подзадачи пошли как задачи в группе, а участниками стали все из поля "ответственные" и "наблюдатели" главной задачи