Дорогие юные друзья, в Маркетплейсе отсутствует контроль за качеством решений. Это приводит огромным проблемам, когда даже стандартный функционал Битрикса, который должен работать, не работает.
Мелкий бесплатный модуль в итоге приводит к безумным ошибкам и реальным убыткам. Безысходность!?
Но лучше обходиться без jQuery. Встроенная BX отлично справляется с маленькими задачами.
6. Константы ADMIN_SECTION и BX_UTF
Учитывайте, где вы работаете (в админке или публичке). Не выводите в админке то, что только для публички. Люди целый год ждали, когда Живосайт обновит свой модуль и добавит проверку ADMIN_SECTION.
Учитывайте кодировку проекта.
7. Не подключайте свой скирипт везде
Если ваш javascript-файл нужен только на одной странице, не подключайте его везде.
8. Не добавляйте функций к встроенным глобальным объектам Array и Object
В интернете много примеров, как расширять функционал встроенных объектов в Javascript. Так делать не надо. Из-за невнимательности других разработчиков возможны неприятности.
Лучше написать отдельную функцию и передать массив, как параметр. А не писать метод к массиву.
Пример, как поломать Битрикс, копируя примеры из интернета.
Первый модуль определяет глобальную функцию для массива: Array.prototype.KZN_in_array = function() {}
Array.prototype.KZN_in_array = function(p_val, returnIndex) {
for(var i = 0, l = this.length; i < l; i++) {
if(this[i] == p_val) {
if (returnIndex)
return i;
else
return true;
}
}
return false;
}
Плохо, что теперь во всех массивах есть элементы и функция (на один объект больше).
Другой разработчик пишет цикл for без проверки hasOwnProperty.
for (var i in IPOLapiship_Sender.deliveryData)
{
$("#IPOLapiship_" + i).val(IPOLapiship_Sender.deliveryData[i]);
}
И, конечно, ничего не работает.
В javascript надо быть аккуратным: проверяйте, что элемент является элементом, а не функцией.
for (var i in IPOLapiship_Sender.deliveryData)
{
if (IPOLapiship_Sender.deliveryData.hasOwnProperty(i))
{
$("#IPOLapiship_" + i).val(IPOLapiship_Sender.deliveryData[i]);
}
}
Уверен, что вы сами можете привести много примеров говнокода странного кода.
Зайцев Артемий написал: 1. Warning`и Это кстати модератор не пропустит. Мне один раз вернули. Что самое обидное - вызов такой давало само ядро.
Антон Долганин, тебе повезло, что модератор увидел. Но часто ворнинг бывает только при каких-то определенных обстоятельствах. Например, если переменная пустая или отсутствует, а ты не проверил.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».