Рейтинг: 1.0978  
Внедрено
Предложил James Gerat 16.09.2014 19:15:21

Подсчет строк в D7

/bitrix\modules\main\lib\entity\query.php:1342

/*
Vadim: this is for paging but currently is not used
      if ($this->count_total || !is_null($this->offset))
      {
         $cnt_body_elements = $build_parts;

         // remove order
         unset($cnt_body_elements['ORDER BY']);

         $cnt_query = join("\n", $cnt_body_elements);

         // remove long aliases
         list($cnt_query, ) = $this->replaceSelectAliases($cnt_query);

         // sel ect count
         $cnt_query = 'SELECT COUNT(1) AS TMP_ROWS_CNT FR OM ('.$cnt_query.') xxx';
         $cnt = $connection->queryScalar($cnt_query);
      }
*/ 
Уважаемый Вадим!!
К сожалению, это не используется только потому это не сделано. У нас большой проект на орме уже работает, вышло пару десятков обновлений, но до сих пор вы почему то считаете, что это ни кому ни нужно.
Подпираем костылями как можем, но очень вас просим включить функционал подсчета строк как можно быстрее. Или укажите когда примерно стоит ожидать.
Рейтинг: 0.219  
Ответил 19.09.2014 15:33:53
Спасибо вам за идею. Мы берем ее в работу.

Будем рады за любые идеи по развитию нового ядра.
Рейтинг: 10.1607  
На голосовании
Предложил Сальников Дмитрий 12.08.2014 12:41:59

Полное наследование компонентов

Сейчас реализована возможность наследоваться от других компонентов следующим образом:
CBitrixComponent::includeComponentClass("bitrix:catalog.viewed.products");
class CSaleBestsellersComponent extends CCatalogViewedProductsComponent{ 
... 
}
Но так происходит наследование только class.php. т.е. если я хочу только чуть-чуть изменить логику обхода элементов полученных в getlist, я все равно должен скопировать и шаблон, и описание, и параметры, и языковые файлы.

Как не странно, но указание напрямую адреса наследуемого файла параметров приводит к ошибке в публичке (повторные ajax запросы и зависание в визуальном редакторе при попытке отредактировать параметры компонента).

include($_SERVER['DOCUMENT_ROOT'].'/bitrix/components..../.parameters.php') ;
Хотелось бы увидеть что-то вроде:
CBitrixComponen::includeParametrsByParentName("bitrix:catalog.viewed.products");  
CBitrixComponen::includeTenplateByParentName("bitrix:catalog.viewed.products",'.default');

поскольку файл параметров да и шаблон, могут быть переопределены в шаблонах сайта, то стоит в таких функциях добавить второй параметр шаблон сайта.
Рейтинг: 2.4162  
Новая
Предложил James Gerat 18.06.2014 15:39:03

некорректный DateTime при 0000-00-00 00:00:00

Имеем:
поле в базе типа TIMESTAMP
мапинг этого поля с типом datetime

Если поле имеет значение NULL, то всё ок.
НО если поле имеет значение 0000-00-00 00:00:00, \Bitrix\Main\DB\Result::fetch() проводит пост обработку методом \Bitrix\Main\DB\MysqliResult::convertDataFromDb()

protected function convertDataFromDb($value, $fieldType)
    {
        switch ($fieldType)
        {
            case 'timestamp':
            case 'datetime':
                return $value === null ? null : new \Bitrix\Main\Type\DateTime($value, "Y-m-d H:i:s");
                break;
            case 'date':
                return $value === null ? null : new \Bitrix\Main\Type\DateTime($value, "Y-m-d");
                break;
            default:
                break;
        }

        return $value;
    } 


и врезультате \Bitrix\Main\Type\DateTime::getValue()->toString() возращает
-0001-11-30 00:00:00
Что является некорректным.
Предлагаю внести дополнительную проверку на основе \Bitrix\Main\Type\DateTime::getTimestamp()
при таком значении вернёт false
Рейтинг: 0  
Внедрено
Предложил Сальников Дмитрий 20.05.2014 14:47:06

Компоненты на d7

Почему бы не делать компоненты на d7 без component.php? Причем логику компонента разбивать на методы.
Например вместо проверки $USER->IsAdmin() (или любой другой) реализовать метод public function hasPermission()
в таком случае если клиент захочет расширить число групп которым, доступен функционал компонента (видимо это какая-то модерация),  достаточно будет отнаследоваться от компонента и переопределить 1 метод

Возможно пример не очень яркий, но вся прелесть наследования пропадает, когда приходится не только наследоваться но и component.php править и вмешиваться в его логику.
Рейтинг: 0.1291  
Ответил Жуков Евгений 20.05.2014 17:35:44
Это возможно начиная с main 12.0.7 Новые компоненты пишутся с использованием ООП и могут использовать как классы D7, так и старые классы.
Рейтинг: 10.8059  
Новая
Предложил Валерий Чебан 19.05.2014 12:58:53

Обернуть генератор ORM в один метод (функцию), чтобы его можно было использовать

Сейчас это сплошной код на странице админки /bitrix/admin/perfmon_tables.php?lang=ru&orm=y :



А должен быть удобный для использования метод вида:
string function getOrmClassFromTable(string $tableName);
Рейтинг: 17.3032  
Внедрено
Предложил Валерий Чебан 18.04.2014 14:30:38

Права доступа для Highload инфоблоков

Сделать права доступа к HL-инфоблокам, хотя бы на уровне групп пользователей.
В виде доступов HL-инфоблок тире группа пользователей.

На сколько я понял, сейчас этот функционал только для админа.
Рейтинг: 5.1127  
На голосовании
Предложил Колесников Николай 14.02.2014 15:12:41

Добавить генератор админ.страниц для сущностей d7

На недавней презентации демонстрировался функционал генерации кода d7-класса сущности на основе таблицы из БД. Попробовал и мне очень понравилось данное решение. Думаю, следующим логичным шагом было бы сделать подобной функционал для автоматической создания кода страниц админки под эти сущности (список с фильтром и детальная страница). Очень бы поспособствовало экономии времени и стандартизации кода модулей.
Рейтинг: 3.9352  
На голосовании
Предложил Морковкин Никита 12.12.2013 13:55:10

Реализовать выбор DbConnection для {Model}Table

Кратко:
Сейчас ORM можно использовать только для соединения default

Полно:
Если заглянуть в Bitrix\Main\Entity\DataManager,
можно найти функцию getConnectionName

Переопределение в дочернем классе этой функции не дает желаемого результата!
Все равно используется соединение default

В коде Bitrix\Main\Entity\Query (возможно ещё где-то) можно встретить такую конструкцию:
\Bitrix\Main\Application::getConnection()
Явно видно что не используется название соединения из класса {Model}Table а хотелось бы
Рейтинг: 52.5453  
В работе
Предложил Валерий Чебан 28.11.2013 21:29:00

Сборная солянка "хотелок" по highloadblock, первая пачка

Частично уже были в некоторых идеях. Но тут о highloadblock в общем, это все нужно в реальных проектах уже сегодня:

1/ Пользовательское свойство "Html/text" с визуальным редактором.
Нужно для полей в highloadblock

уже есть идея:
http://idea.1c-bitrix.ru/add-custom-field-htmltext/

2/ Пользовательское свойство "привязка к highloadblock".
Нужно для организации связей highloadblock между собой.

3/ свойство в обычных инфоблоках "привязка к highloadblock".
Чтобы справочники для товаров на инфоблоках хранить на highloadblock
(зачем справочникам быть тоже на инфоблоках?)

4/ фильтр в списке элементов highloadblock
если там будет статистика какая-нибудь, то как без фильтра?

5/ настраиваемый список элементов в highloadblock,
чтобы убирать ненужные в лентах колонки

6/ множественные свойства в highloadblock
этот вот пункт мне совершенно не критичен. Если будет привязка highloadblock друг к другу, то можно запросто организовать хранение множественных значений как отдельной сущности.
Рейтинг: 0.5065  
Ответил Жуков Евгений 29.11.2013 13:11:09
Свойство Справочник выпущено. Это п.3
Рейтинг: 0.3402  
Ответил Жуков Евгений 25.08.2014 18:50:12
2/ Пользовательское свойство "привязка к highloadblock".
Вышло в обновлении highloadblock 14.5.1
Рейтинг: 27.1368  
Внедрено
Предложил Шерлок Холмс 30.09.2013 00:02:44

Сообщить дату выхода нового ядра Bitrix D7

Действительно, когда уже, ждем с осени прошлого года
http://dev.1c-bitrix.ru/community/forums/forum6/topic49626/
Рейтинг: 4.4266  
Ответил Жуков Евгений 30.01.2014 10:37:00
d7 выпущено в релизе 14.0