Рейтинг: 66.8399  
В работе
Предложил Пользователь 25773 04.10.2013 13:09:59

Не использовать абсолютные пути в шаблонах компонентов. Использовать $this->GetFolder()

Иногда крутые компоненты в Битриксе пишут, как будто, стажеры.

Зачем разработчики пишут абсолютные пути в компонентах и шаблонах? Мне их приходится копировать и везде исправлять.

Например, bitrix:sale.order.ajax - новый шаблон visual.

Как его скопировать без геморроя и изменить, если везде:
<img src="/bitrix/components/bitrix/sale.order.ajax/templates/visual/images/logo-default-d.gif" alt="" />
Почему не используют $this->GetFolder() или $templateFolder  ?
<img src="<?=$this->GetFolder()?>/images/logo-default-d.gif" alt="" />
Рейтинг: 27.1368  
Внедрено
Предложил Пользователь 16182 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
Рейтинг: 38.425  
На голосовании
Предложил Пользователь 94272 06.09.2013 18:44:00

Валидность кода bitrix и spread.php

В файле "\bitrix\modules\main\classes\general\main.php" выводится картинка:
$res .= '<img src="'.htmlspecialchars($url).'" alt="" style="width:0px; height:0px; position:absolute; left:-1px; top:-1px;" />'."\n";
Проблема в участке "/>".
Для валидатора при HTML 4.01 Strict этот код считается невалидным - нужно убирать слеш.
А вот функция ShowHead() поддерживает параметр вывода этих слешей.

Так может их объединить? И сделать так, что бы при ShowHead(false) эта картинка выводилась без слеша?
Рейтинг: 41.5724  
На голосовании
Предложил Пользователь 25773 06.09.2013 14:52:32

В функции CFile::CheckFile в случае ошибки сообщать имя файла

CheckFile в случае ошибки возвращает текст "Неверный тип файла, либо превышен максимальный размер файла".

Прошу исправить "Неверный тип файла, либо превышен максимальный размер файла /upload/1.jpg".

У заказчика обмен с 1С завершился с ошибкой:

06.09.2013 11:44:28 Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера.
Ответ сервера:
failure
Неверный тип файла, либо превышен максимальный размер файла
06.09.2013 11:44:29 Завершена выгрузка товаров
Я что должен? Три часа искать эту дуратскую картинку, с которой что-то не так?
Рейтинг: 34.6729  
На голосовании
Предложил Пользователь 25773 15.06.2013 13:33:05

Разрабатывать Битрикс с учетом Ворнингов

В Битриксе ворнинги PHP по умолчанию выключены. Но они есть, если включить. Причем ворнинги делают не партнеры, а они в ядре.

----

Как потом можно требовать от партнеров в маркетплейсе, чтобы их модули работали без ворнингов, если ворнинги в ядре платформы?
Рейтинг: 30.5045  
На голосовании
Предложил Пользователь 25773 28.05.2013 10:59:50

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

Почему нельзя делать так?
$arPrices = array( "BASE" );

А в настройках компонента так?
"FILTER_PRICE_CODE" => $arPrices,

Потому что при сохранении настроек компонента станет "FILTER_PRICE_CODE" => ""

Форма редактирования настроек компонента не знает, что список можно передать через переменную. И затирает.

А я всего-лишь хочу передать в компонент "catalog" свой собственный список цен через переменную.
Рейтинг: -4.2311  
На голосовании
Предложил Пользователь 71426 24.04.2013 15:22:26

Шаблон дефолт для каждого сайта

Пример:
/bitrix/templates/.default.s1
/bitrix/templates/.default.s2
Рейтинг: 13.1395  
На голосовании
Предложил Пользователь 25773 16.02.2013 11:48:38

Универсальный импорт-экспорт XML в ORM

Рыжиков на конференции обещал, что вот-вот начнется обсуждение D7. Предлагайте свои идеи и. т. .п.

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

Разрабатывая сайт на локальной машине постоянно хочется какие-то данные из локальной базы данных перенести на боевой сервер.

Создал свойство инфоблока - выгрузил на боевой сайт. Изменил опцию - выгрузил на боевой сайт.

В 1С есть интересный механизм:
там каждый объект (справочник, свойство, значение свойства)  имеет уникальный не повторяющийся GUID:  cbcf498f-55bc-11d9-848a-00112f43529a

Мы их видим, когда выгружается справочник товаров в инфоблок.

GUID представляет собой уникальную ссылку на объект.

GUID'ы в разных базах уникальные. Маловероятно, что где-то создаются одинаковые. Это их главное отличие от ID


Каждый объект умеет записываться в XML, каждый объект может быть записан и прочитан в любой 1С.

В 1С реализовано надежное взаимодействие разных информационных баз друг с другом: Бухгалтерии и Управлении торговлей.

Что надо сделать:
- таблица уникальных гуидов. Таблица заполняется автоматически, когда создается новый элемент или новая таблица
IDTABLE_NAMEELEMENT_IDGUIDID_FROM_ANOTHER_DATABASE
1b_option
1
cbcf498f-55bc-11d9-
848a-00112f43529a
2b_hiload_products
1
aabb4983-55bc-11d9-
848a-00112f43529a
0000123
- для каждого объекта базы данных возможность выгрузить в XML
Элемент = Сущность::GetByID();
$str = Элемент->ВыгрузитьВXML(  );


Или короче:

$str = GetXML(  $GUID );


- для каждого объекта базы данных возможность создать или изменить из XML.
Элемент = new КлассСущности;
Элемент->ЗаписатьИзXML( $str );


Или короче

$GUID = WriteXML( $str );

- маленькую форму "выгрузить объект по ссылке" :
в форме ввести cbcf498f-55bc-11d9-848a-00112f43529a и получить обект в XML. А еще лучше срaзу отправить на боевой сервер и там записать.

объект может быть простым (цена товара или опция)
или составным (товар с ценами или таблица опций)

Также можно будет выгружать и загружать товар, списки товаров, списки заказов, списки опций. Вcе у чего есть GUID.
Рейтинг: 3.8297  
Отложено
Предложил Пользователь 63180 21.12.2012 13:06:20

возможнсть переопределять системные методы

а если бы во всех штатных компонентах, да и в ядре не использовались бы стaтические методы - это жалкое подобие ооп,
а везде вначале создавался объект, тот же СiblockElement   например и с ним шла работа

И

лежал бы гденить каталог, в котором КАЖДЫЙ класс типа

class СiblockElement extends system_CIblockElement { // пустышка}
т.е. все классы наследовались бы  от системных классов(которые менять нельзя - часть ядра),
а сам этот каталог чтобы НЕ ЯВЛЯЛСЯ ЧАСТЬЮ ЯДРА,   (ну или не каталог, а 1  файл со списком всех классов -пустышек - не суть как организовать )
т.е. если мне нужно переопределить какие методы в СiblockElement  то я в нём бы переопределил, или добавил свои методы, и во всём ядре, во всех компонентах это бы работало

тут конечно нужно потходить с умом, чтобы при обновлении допустим структура бд может поменять или ещё  что ... но в целом, была бы сама ВОЗМОЖНОСТЬ  это делать...
очень часто помогла бы я думаю

как думаете?
Рейтинг: 53.2617  
На голосовании
Предложил Пользователь 25773 25.07.2012 18:24:18

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

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

Может получиться весьма удобная конструкция:
  • базовый шаблон сайта, который содержит стили, скрипты, шаблоны компонентов, включаемые файлы и прочее,
  • дополнительные шаблоны, которые содержат отличия от базового.
Суть: в настройках шаблона сайта добавляем поле шаблон-родитель. В шаблонах-детях указываем шаблон-родитель, либо в настройках, либо, как часть имени папки шаблона:

parent
parent_child1
parent_child2
parent_child3

parent_child1 parent_child2 parent_child3 - дети parent

В шаблон parent будем складывать общие шаблоны компонентов, скрипты, css.

Следует изменить порядок подключения шаблонов компонентов:

Сейчас
текуший шаблон сайта
шаблон .default
папка компонента

Сделать
текуший шаблон сайта
родительский шаблон сайта
шаблон .default
папка компонента

Сделать подключение style.css, template_style.css и script.js не только из текущего шаблона сайта, но и из шаблона родителя.