Сейчас функция генерирует: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> и это жестко зашито в коде, хотя правильный html5 тег: <meta charset="UTF-8">
Добрый вечер! При установке bitrix версии standart выскакивает ошибка (версия php 7.1)
А все из-за того, что переменная (1) $arSqlWhere определен как строка, а далее код работает с ней как с массивом (2). Лечится заменой на $arSqlWhere = []; // на что как бы намекает название переменной
В главном модуле есть класс SystemException, файл /bitrix/modules/main/lib/systemexception.php, и его дубль в файле /bitrix/modules/main/lib/exception.php
На сайте следующая проблема. В качестве свойств торгового предложения можно выбрать только тип свойства "Список". Подразумевается завести свойство "Размер" в котором будут перечисляться значения вида "10х20х30" и таких значений очень много. Можно ли каким то образом при добавлении нового значения в список иметь возможность сортировать по значению названию значения (не используя при этом поле "Сортировка"
Минимизировать файлы *.js *.css ядра. При проверке https://developers.google.com/speed/pagespeed/insights/ Как не оптимизировать страничку, больше 90 баллов набрать очень сложно из-за подключения файлов ядра в хедере для всех пользователей и их большого размера. Они не минимизируются, не подключаются асинхронно и не ужимаются, это такие файлы, как : /bitrix/js/main/session.js /bitrix/js/main/core/core_window.js /bitrix/js/main/utils.js /bitrix/js/main/core/core.js /bitrix/js/main/core/core_ajax.js /bitrix/js/main/json/json2.min.js /bitrix/js/main/core/core_ls.js /bitrix/js/main/core/core_fx.js /bitrix/js/main/core/core_popup.js и других. Система их клеит в 1 большой файл kernel_main.js и он таким образом набирает ужасные 300+ кБ. Хвалёная функция в настройках главного модуля - Создавать сжатую копию объединенных CSS и JS файлов не помогает. Идея. Выбор по параметру, какие версии файлов ядра подключать: в 1 строку(сжатые) или полные.
/*
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);
}
*/
Уважаемый Вадим!! К сожалению, это не используется только потому это не сделано. У нас большой проект на орме уже работает, вышло пару десятков обновлений, но до сих пор вы почему то считаете, что это ни кому ни нужно. Подпираем костылями как можем, но очень вас просим включить функционал подсчета строк как можно быстрее. Или укажите когда примерно стоит ожидать.
на одном из хостингов где расположен сайт на Битрикс выявил ошибку: в файле: bitrix/components/bitrix/catalog.section/component.php:817 не отрабатывается метод method_exists
в этой строке в редакции старт обращается к не существующему классу и на конкретном хостинге происходит падение php и браузеру возвращается ответ нулевой длины.
фрагмент отработаной с ошибкой: if (!empty($arResult["ELEMENTS"])) { if (method_exists('CCatalogDiscount', 'SetProductSectionsCache')) CCatalogDiscount::SetProductSectionsCache($arResult["ELEMENTS"]);
} Решение ошибки: предварительно проверить существование класса: if (!empty($arResult["ELEMENTS"])) { if (class_exists('CCatalogDiscount')){ if (method_exists('CCatalogDiscount', 'SetProductSectionsCache')) CCatalogDiscount::SetProductSectionsCache($arResult["ELEMENTS"]); } }
Почему бы не делать компоненты на d7 без component.php? Причем логику компонента разбивать на методы. Например вместо проверки $USER->IsAdmin() (или любой другой) реализовать метод public function hasPermission() в таком случае если клиент захочет расширить число групп которым, доступен функционал компонента (видимо это какая-то модерация), достаточно будет отнаследоваться от компонента и переопределить 1 метод
Возможно пример не очень яркий, но вся прелесть наследования пропадает, когда приходится не только наследоваться но и component.php править и вмешиваться в его логику.
Если в функции getLocalPath() (в файле /bitrix/modules/main/tools.php) добавить статическую переменную, содержащую наличие каталога local, то общее количество вызовов file_exists() можно уменьшить примерно на 25% (что соответствует примерно 2% общей нагрузки сервера).
Не всегда требуется вводить время, но при этом очень полезен компонент "календарик". В нынешнем варианте время всё равно проставится, так что приходится его удалять.
Если на странице есть два компонента, которые выводят одни и те же элементы, то в обоих шаблонах для id="<?=$this->GetEditAreaId ( $arItem['ID'] ) ;?>" мы получим одинаковые значения. Но в HTML-коде не может быть двух элементов с одинаковым названием идентификатора. Это недопустимо по спецификации. Нужно что бы каждый компонент выдавал уникальный идентификатор.
А то после скачивания пятка бекапов с разных сайтов никак не понять, какой бекап с какого сайта. А если бы в начале названия бекапа значился домен, было бы намного удобнее.