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

Рейтинг: 7.2869  
Новая
Предложил Пользователь 32566 07.06.2016 16:44:49

Вставка изображений из буфера обмена в комментариях

Добавить возможность вставлять в комментарии изображения прямо из буфера обмена.
Сейчас в комментарий при редактировании изображение добавляется., а после сохранения вот такая печаль.
Рейтинг: 1.7449  
Новая
Предложил Пользователь 32566 11.07.2015 23:39:51

Уведомление покупателей решения о критичных обновлениях

Нужна возможность сделать рассылку уведомления всем клиентам, что вышло обновление, исправляющее какой-то критичный баг в модуле.
Это либо простая форма с вводом текста сообщения и кнопкой "отправить".
Либо вот такую галку при загрузке нового решения добавить http://prntscr.com/7rk6z0
При установке этой галки отправляется емейл клиенту о критичном обновлении или в БУС высвечивается панель типа такой http://prntscr.com/7rk81a

А то вот после обновления Битрикса в моем модуле баг нарисовался https://idea.1c-bitrix.ru/custom-properties-of-type-file-in-infoblock/ и я запарился письма рассылать вручную :)
Рейтинг: 1.1751  
На голосовании
Предложил Пользователь 32566 11.07.2015 18:26:06

Кастомные свойства типа "Файл" в инфоблоках

При обновлении и добавлении элементов инфоблоков нужно убрать дополнительные обработки передаваемых значений свойств типа файл (PROPERTY_TYPE=F), если эти свойства являются кастомными (USER_TYPE != "" ).
Например, в файле /bitrix/modules/iblock/admin/iblock_element_edit.php (строка ~568 ) нужно убрать преобразование значения через функцию CIBlock::makeFilePropArray(...).
Это позволит создавать свои загрузчики файлов, которые будут иметь предсказуемую разработчиком логику. Сейчас же с выпуском обновления Битрикса мой модуль перестал работать из-за того, что передаваемый в значение ID файла:
array("VALUE"=>777); 
с какого-то фига вдруг превратился в:
[VALUE] => Array(
     [name] => 
     [type] => 
     [tmp_name] => 
     [error] => 4
     [size] => 0
)
Если свойство кастомное то на вход функции ConvertToDB должно поступать ровно то, что отправлено через форму редактирования или через какие-либо средства API.

P.S. В данный момент пришлось переключить свой модуль с использования типа "F" на "N", что накладывает ограничение на использование кастомного свойства в штатных шаблонах решений от Битрикса.
Рейтинг: 17.0224  
На голосовании
Предложил Пользователь 32566 06.02.2015 12:15:40

Фэншуй в SEO инструментах для инфоблоков

Чтобы наступил для разработчиков рай нужно:
  1. User-friendly.
    Дать возможность в методах
    CIBlockParameters::GetInheritedPropertyTemplateSectionMenuItems()
    CIBlockParameters::GetInheritedPropertyTemplateElementMenuItems()
    добавлять свои шаблоны подстановки через обработчики событий. Чтобы сеошникам было удобно подставлять шаблоны через вот это меню
  2. Developer-friendly.
    Добавить {=this.ID}, {=parent.ID}, {=iblock.ID} для использования в пользовательских функциях. Почему сразу это не было сделано - непонятно.
Рейтинг: 20.6709  
На голосовании
Предложил Пользователь 32566 26.07.2014 01:07:24

Довести до ума работу метода ConvertFromDB

При разработке собственных свойств инфоблока создается метод ConvertFromDB, назначение которого - преобразовывать значения свойства в требуемый разработчику вид.
Создавая сложные свойства разработчики иногда используют дополнительное поле описания значения свойства - "DESCRIPTION", куда сохраняют сопутствующие значению данные в сериализованном виде.
То есть фактически получается, что значение свойства состоит из кортежа {VALUE,DESCRIPTION}.
Проблема в том, что при выборках CIBlockElement::GetList в метод свойства ConvertFromDB не поступает значение поля "DESCRIPTION" (передается почему-то пустая строка). Что не позволяет правильно сформировать полноценное значение свойства.
Проблема находится в файле: /bitrix/modules/iblock/classes/general/iblockresult.php (строка 196).
Нужно заменить вот это:
if(is_array($this->arIBlockConvProps))
{
   foreach($this->arIBlockConvProps as $strFieldName=>$arCallback)
   {
      if(is_array($res[$strFieldName]))
      {

         foreach($res[$strFieldName] as $key=>$value)
         {
            $arValue = call_user_func_array($arCallback["ConvertFromDB"], array($arCallback["PROPERTY"], array("VALUE"=>$value,"DESCRIPTION"=>"")));
            $res[$strFieldName][$key] = $arValue["VALUE"];
         }
      }
      else
      {
         $arValue = call_user_func_array($arCallback["ConvertFromDB"], array($arCallback["PROPERTY"], array("VALUE"=>$res[$strFieldName],"DESCRIPTION"=>"")));
         $res[$strFieldName] = $arValue["VALUE"];
      }
   }
}
 
На примерно вот это:
if(is_array($this->arIBlockConvProps))
{
   foreach($this->arIBlockConvProps as $strFieldName=>$arCallback)
   {
      $propID = $arCallback["PROPERTY"]["ID"];
      $propCode = $arCallback["PROPERTY"]["CODE"];
      $desc = $res["DESCRIPTION_".$propID];
      if(empty($desc)) $desc = $res["PROPERTY_".$propID."_DESCRIPTION"];
      if(empty($desc)) $desc = $res["PROPERTY_".$propCode."_DESCRIPTION"];
      
      if(is_array($res[$strFieldName]))
      {

         foreach($res[$strFieldName] as $key=>$value)
         {
            $arValue = call_user_func_array($arCallback["ConvertFromDB"], array($arCallback["PROPERTY"], array("VALUE"=>$value,"DESCRIPTION"=>$desc[$key])));
            $res[$strFieldName][$key] = $arValue["VALUE"];
         }
      }
      else
      {
         $arValue = call_user_func_array($arCallback["ConvertFromDB"], array($arCallback["PROPERTY"], array("VALUE"=>$res[$strFieldName],"DESCRIPTION"=>$desc)));
         $res[$strFieldName] = $arValue["VALUE"];
      }
   }
}
То есть передаем в метод ConvertFromDB сопутствующее значению описание DESCRIPTION.

Для чего это всё.

Пример сложного свойства: вставки в ювелирные украшения. Значение представляет собой кортеж {типКамня,каратность,количество}. Тип камня (ID) хранится в поле VALUE, каратность и количество - в DESCRIPTION в сериализованном виде. Данная структура позволяет делать выборки элементов инфоблока по типу камня.
При текущем положении вещей постоянно приходится преобразовывать значения в нужный вид в result_modifier.php.
А если свойство входит в состав какого-то решения из маркетплейса, то разработчик, который использует это решение может только догадываться как преобразовать значения свойства в нормальный вид.

Создан тикет в техподдержку: 512438
Рейтинг: 6.5168  
Новая
Предложил Пользователь 32566 26.02.2014 07:05:54

Бейджи для всех сертификатов от Битрикс

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


Ну и единообразие в дизайне нужно



Бейджи - дополнительный стимул прохождения курса. Геймификация и все такое... :)
Рейтинг: 24.4754  
Новая
Предложил Пользователь 32566 19.04.2013 11:26:01

Сделать нормальный заголовок <title> для задач



Нужно подставить название задачи в заголовок браузера, чтобы при добавлении задачи в закладки было понятно что это за задача и о чем.
Или я один такой кто хранит список своих задач в закладках для быстрого доступа?  :)
Рейтинг: 9.4245  
Новая
Предложил Пользователь 32566 03.03.2013 13:58:47

Добавить возможность запрета отправки письма по OnBeforeEventSend

В файле /bitrix/modules/main/classes/general/event.php:227 заменить это
$events = GetModuleEvents("main", "OnBeforeEventSend");
while ($event = $events->Fetch())
   ExecuteModuleEventEx($event, array(&$arFields, &$db_mail_result_array)); 
вот на это
$events = GetModuleEvents("main", "OnBeforeEventSend");
while ($event = $events->Fetch())
   if(ExecuteModuleEventEx($event, array(&$arFields, &$db_mail_result_array)) === false)
      return "F"; // Fail 
Такое решение даст возможность через обработчик OnBeforeEventSend запрещать отправку  писем определенных почтовых событий при определенных условиях, заданных разработчиком.
Рейтинг: 32.653  
На голосовании
Предложил Пользователь 32566 15.01.2013 22:19:36

Создание шаблона при редактировании типа почтового события

При создании нового типа почтового события почему бы не сделать кнопку добавления шаблона для этого события во вкладке "Шаблоны"?


Даже простая ссылка на страницу создания шаблона ускорит работу.
Рейтинг: 48.2847  
Внедрено
Предложил Пользователь 32566 19.11.2012 10:25:19

При отладке дать возможность заглянуть в сохраненный кэш

Вот, к примеру, пустой news.list, но занимает почему-то 93Кб. Из $arResult все вырезано по максимуму.



Бывают и гораздо худшие случаи, когда кэш может занимать несколько мегабайт Стандартный forum.topic.last так когда-то чудил.
При большом кэше соответственно увеличивается время работы компонента.
Вот и хотелось бы как-то заглянуть в файлы кэша в сыром виде, чтобы понять куда копать и что еще можно урезать.
Рейтинг: 0.1763  
Ответил Шеленков Евгений 15.10.2013 13:46:30
Ваша идея реализована в главном модуле версии 14.0.0