Идеи пользователя Фролов Сергей

Рейтинг: 0.5763  
На голосовании
Предложил Фролов Сергей 15.10.2014 11:57:02

Новая концепция ajax

Постараюсь описать концепцию кратко, четко и по порядку.

1)Там где есть возможность ajax в файле с шаблоном должен лежать файл ajax.php в котором можно просто подключить компонент, первоначально хотя бы так и перед ним prolog_before естественно
2)Так же в шаблоне должен быть файл ajax.js - в котором будет указываться исполняемый код js при запросе - какие параметры передавать и так далее - параметры разные необходимо передавать в зависимости от компонента
3)Помимо стандартного параметра ajax который подвешивается в Битриксе еще необходимо будет передавать путь к файлу обработчику js(например параметр ajax_path_to_js).

Суть работы - когда осуществляем вызов ajax события, по параметру ajax_path_to_js проверяем что файл существует если нет возвращаем ошибку.
Если он существует запускаем этот файл на исполнение - далее уже выполняется сам ajax

Файлы для компонентов можно сформировать вручную либо автоматически.
Автоматически суть следующая - при включении в параметрах использования ajax вызывается обработчик который создается файл ajax.js если его не существует - стандартного наполнения в котором содержится только вызов через ajax файла и возврат результата в виде html который вставляется в область с id ajax_area_newslist_default - точки опускаем, формируем из название шаблона и компонента
далее можно так же автоматически в файл template.php оборачивать код в данный div(либо не в шаблоне а в верхнем уровне оборачивать компонент в div), если он не был найден, либо в настройках компонента(в параметрах) добавить параметр в которым указывать id области для использования ajax и автоматом подставлять первоначально данное значение.
Далее создаем файл ajax.php который изначально так же стандартного содержания включающий в себя - prolog_before и вызов самого компонента
Как получить вызов самого компонента - просканировать страницу на наличие названия компонента и его шаблона, а далее все по стандарту копируем - вставляем.

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

P.S. - из-за пояснений кратко не вышло
Рейтинг: 1.277  
На голосовании
Предложил Фролов Сергей 15.10.2014 11:15:39

Доработка резервного копирования

1)Я создал локально зашифрованную резервную копию, либо по какой-то причине она не была отправлена в облако и осталось локально - хотелось бы иметь возможность зашифрованные копии отправлять в облако в ручном режиме(добавить кнопку в выпадающем меню).
2)При регулярном резервном копировании нельзя задать длительность шага и интервал - тут все выполняется за 1шаг или какие-то дефолтные настройки стоят?
3)При заходе в список резервных копий, если была ошибка резервного копирования - выводить последнюю в самом верху, так же на странице ручного и регулярного резервного копирования. Можно просто писать ошибка и ссылка на журнал.
Рейтинг: 1.0105  
На голосовании
Предложил Фролов Сергей 15.10.2014 11:03:19

Новый механизм обновлений

Перед прочтением желательно ознакомиться с предыдущей идеей.

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

При такой структуре появится возможность сделать откат обновлений к предыдущему релизу или еще на 1 раньше - что даст возможность в случае замеченных багов отписаться в техподдержку и откатиться назад чтобы можно было дальше продолжать работать в стабильном на данный момент релизе.

Т.е. на странице с обновлениями добавить еще 1 кнопку - "откат к версии..." далее выпадающий список с выбором к какой версии откатиться из предложенных.
В случае стабильной версии - это 2 версии к которым можно откатиться.
В случае Бета - 4 версии(предыдущая бета и все стабильные -3 штуки).
В случае альфа 6 (1 предыдущая альфа, 2 беты и 3 стабильных).
Рейтинг: 1.2725  
На голосовании
Предложил Фролов Сергей 15.10.2014 10:47:37

Новый механизм установки/удаления модулей

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

А в папке с модулями на сайте когда модуль не установлен всего 1 файл(install.php) с немного измененным процессом установки учитывая закачку из репозитория
В установленном виде добавить файл uninstall.php либо так же делать все в 1-м файле

Когда модуль не установлен конкретно сократим количество ненужных файлов в системе.

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

На обновление поддерживать 3 версии в репозитории допустим 14.5.1, 14.5.2, 14.5.3 - только для стабильных версий, 2 для Бета - текущая и предыдущая и 2 для альфа точно так же.

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

Так же добавить кнопку синхронизировать репозитории - которая перекачает текущие на данный момент данные из репозитория Битрикс в собственный.

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

Об изменениях обязательно добавить информацию на сайт, в лицензионное соглашение, на странице обновлений и на странице установки/удаления модулей.
Рейтинг: 1.2301  
На голосовании
Предложил Фролов Сергей 12.05.2014 17:25:36

Добавить в пользовательские поля типы пользовательских свойств как у обычных свойств(понятнее далее)

Добавить в пользовательские поля типы пользовательских свойств как у обычных свойств

Приложил 2 скриншота-
1-ый это добавление обычного свойства
2-е это добавление свойства через пользовательские поля

И там и там должен быть одинаковый набор доступных типов свойств

Рейтинг: 1.2597  
Внедрено
Предложил Фролов Сергей 18.12.2013 10:36:41

Необходимо грамотно реализовать события выгрузки(похожие задачи были, но не реализованы)

Необходимо грамотно реализовать события выгрузки:
1 событие на начало выгрузки(общее)
2 событие на окончание выгрузки(общее)
3 событие на начало выгрузки заказов
4 событие на окончание выгрузки заказов
5 событие на начало выгрузки import.xml
6 событие на окончание выгрузки import.xml(передавать распарсенный файл)
7 событие на начало выгрузки offers.xml
8 событие на окончание выгрузки offers.xml(передавать распарсенный файл)

Такая гибкая настройка нужна:
1) чтобы использовать стандартные компоненты и не отказываться от автоматического обновления
2)Для модификации файлов выгрузки которые идут в 1С (например файл заказов дополнить своими полями)
3)Для считывание нестандартных файлов выгрузки(добавили например какое-то поле в 1С)
4)Для предварительных работ перед выгрузкой(например пересчетов данных, отправки уведомлений, собственном логировании, вывод предупреждений пользователям, ограничения активности пользователей во время выгрузки, временной увеличение ресурсов на выгрузку)
5)Для работ после выгрузки(удалять файлы выгрузки, очищать папки с пришедшими файлами, сбрасывать кеш компонентов принудительно, опять же возможно выполнять пересчеты)
Рейтинг: 0.8464  
Ответил 21.10.2014 15:35:07
событие на начало выгрузки(общее)
2 событие на окончание выгрузки(общее)
string OnBeforeCatalogImport1C($arParams, $ABS_FILE_NAME);
void OnSuccessCatalogImport1C($arParams, $ABS_FILE_NAME);

для остальных события сделать пока не возможно, из-за специфики передачи данных из 1С.

Выходит в 15 версии продукта
Рейтинг: 28.5658  
На голосовании
Предложил Фролов Сергей 16.12.2013 14:23:17

Для управления SEO тегами в инфоблоке сделать дополнительную настройку "Использовать только для этого раздела"

Для управления SEO тегами в инфоблоке сделать дополнительную настройку "Использовать только для этого раздела" - если с элементами все нормально, то для разделов, иногда требуется поставить только для верхнего уровня значения, а если у текущего раздела подразделов больше 100, то переопределять для всех остальных подразделов значения не представляется возможным.
Рейтинг: 12.0141  
Новая
Предложил Фролов Сергей 02.12.2013 09:14:39

В документации использовать 2 параллельные ветки api

В документации использовать 2 паралельные ветки api:
-Старое ядро(до версии 14.0)
-Новое ядро(с версии 14.0)
Новое ядро работает по другому принципу, поэтому лучше было бы сделать 2 ветки.
Рейтинг: 1.4502  
На голосовании
Предложил Фролов Сергей 27.11.2013 09:06:57

Сделать возможность перекодировки сайта из utf8 в win1251 и назад

Сделать возможность перекодировки сайта из utf8 в win1251 и назад, если это было бы по кнопке, то при переходе с одного сервера на другой не было бы большой проблемы из-за кодировки, или написать инструкцию как это делать, где нибудь на видном месте, например в верхнем уровне api или faq

Здесь расписан переход с win1251 на utf8
http://dev.1c-bitrix.ru/api_help/main/functions/string/utf8win1251.php

Обратная инструкция похожа, за исключением .htacces и dbconn


Ошибся с категорией, можно ее перенести в API или типовые решения битрикс?
Рейтинг: 17.5032  
Новая
Предложил Фролов Сергей 01.11.2013 12:20:28

Немного доделать идеи

1)с автоматическим сроком даты окончания задачи например через месяц(максимум 2 месяца)
2)После того как идея просрочено уходило бы письмо и создателю и в битрикс о просроченной идее и установить статус "Просроченные", с появлением ссылки на жалобу или телефона, либо все вместе
3)Просроченные задачи должны стоять в приоритете
4)Задачи которые создаются с уже готовым функционалом - перемещать в статус "Уже есть готовый функционал", либо удалять с оповещением пользователя что такой функционал уже имеется
5)Статус рассмотрено бесполезен - ответ должен даваться по существу
6)Поставить новый визуальный редактор, а не этот размытый
7)В списке при нажатии на комментарии они должны выплывать в снизу - например 5 последних, если больше то ссылка показать все комментарии и переход в задачу
8)При добавлении идеи по заголовку проверять похожие задачи и выдавать список для просмотра, чтобы избежать дублирования
9) Возможность создателю удалять свои идеи, если статус новая или на голосовании и если не было ответа сотрудников Битрикс
10) При добавлении комментария дата изменения идеи должна меняться и соответственно если стоит фильтр по новизне подыматься вверх(она же все таки обновленная), либо добавить еще 1 поле сортировки - по дате последнего обновления
11) Запоминать установленную пользователем сортировку в параметрах пользователя(или хотя бы в сессии)
Рейтинг: 40.8078  
Новая
Предложил Фролов Сергей 01.03.2012 16:52:50

Добавить событие на выгрузку из 1с

Иногда требуется чтобы после выгрузки каталога были произведены какие-либо действия.
Сейчас это возможно кастомизацией компонента bitrix:catalog.import.1c, но при этом будет потеряна возможность обновления данного компонента, что не прибавляет рейтинга битриксу.

Если бы было событие на завершение выгрузки то можно было бы использовать его и не потерялась бы способность к обновлению.
Рейтинг: -3.2167  
Новая
Предложил Фролов Сергей 29.02.2012 16:55:03

Нумерация строк в файлах

Когда редактируешь файл (в частности php) и ошибаешься в синтаксисе к примеру тебе пишет строчку с ошибкой, но чтобы ее найти придется потратить время
В коде из 1000 строк если ошибка на какой нибудь 389 это займет минуты 3
соответственно чем больше код тем больше времени будет поиск.
Поэтому сделайте нумерацию строк файле.
Рейтинг: -0.2702  
Новая
Предложил Фролов Сергей 12.12.2011 14:59:52

Несколько разных меню на одной странице(идея старая, хотелось бы удалить)

Если на странице стоит 2 меню  с разными шаблонами то они перекрываются из-за одинакового id элемента у них и это не есть хорошо.

1)Нужно сделать так чтобы  В шаблоне меню и в css файле название этих id было разным т.е. добавить например название шаблона в конец.

ID будет иметь примерно следующий вид тогда =>#horizontal-multilevel-menu_template1

2)либо сделать так чтобы id было такое же как название шаблона а на шаблон наложить ограничения чтобы нельзя его было создавать цифровым

ID будет иметь примерно следующий вид тогда =>#template1

3)Либо добавить параметр в компонент привязанный к шаблону с названием "Название ID(стиля)" и сделать значение по умолчанию а в справке написать что если стоит 2 меню то значение менять в противном случае не трогать.

Хотелось бы удалить свою старую глупую идею, да вот возможности нет)