Потребовалось получить значение единиц измерения товара в каталоге, поскольку у разных товаров разные единицы измерения. В компонентах выводится, как правило, только числовое значение в поле "CATALOG_MEASURE".
Гладышев Сергей написал: $CACHE_MANAGER->RegisterTag("MeasureName_" . $measure['MEASURE_TITLE'] . "_" . $measure['SYMBOL_RUS'];
Спасибо за функцию, но закройте скобочку плз, а то люди пользуются, вносят в init.php а потом сайт с админкой лежат (если такие ленивые как я вносят код напрямую через битриксовский IDE)
Александр Водолазский, контроль целостности попробуйте использовать. А так же проверять монитором качества внедрения целостность ядра. Или поставить систему контроля версий.
Раньше исходники были закодированны Zend-ом сейчас они НЕ закодированы в этом и вся открытость... и 4 обфусцированые файла ядра этому не противоречят... (как по другому проверять не истекла ли демка? )
Если при использовании транслитерации УРЛов на сайте с ней возникает проблема и сайт в UTF-8 должен помочь данный "рецепт". Чтобы исправить нужно подправить метод Cutil::translit
Находится он в /bitrix/modules/main/tools.php; в нём в строке (примерно, 3894) заменить
$chr = substr($str, $i, 1);
на
$chr = mb_substr($str, $i, 1, 'UTF-8');
Также проверить кодировку файла /bitrix/modules/main/lang/ru/js_core_translit.php , чтоб она была UTF-8. После этог транслитерация должна пойти нормально. И плохая новость напоследок - не забывайте, что при обновлении ядра битрикса, скорее всего эти изменения "слетят".
Предмет обсуждения http://dev.1c-bitrix.ru/api_help/subs...update.php В доке написано, что можно обновить список рассылок на которых подписан пользователь, используя параметр "RUB_ID". Однако при его использовании есть один нюанс: нужно обязательно указывать параметр SITE_ID в данном случае или вместо него "ALL_SITES" => "Y" иначе список рассылок не будет обновляться, хотя другие параметры "с радостью".
Возникла следующая проблема с визуальным редактором: после восстановления из бэкапа (он содержал только файлы публичной части) перестал работать визуальный редактор: не отображается страница и компоненты на ней, выдаётся только пустой белый экран с кнопками Сохранить и Отменить. Все права выставлены на восстановленные и файлы ядра - 775. Проверка доступа проходит успешно, тестирование конфигурации выдаёт только ошибки кодировки в БД типа "Сравнение (Collation) для таблицы "b_rating_component" (utf8_general_ci) отличается от значения для базы (utf8_unicode_ci)". При этом ИНОГДА при вызове визуального редактора появлялась ошибка JS("arToolbars is not defined"). При этом визуальный редактор работал в административной части ! Версия БУС была 8.5, обновил до 10.0, результат тот же. В других топиках по данной проблеме посмотрел тема 1,тема 2 , тема 3, тоже не помогло хотя и init.php был и комплексный компонент catalog, но сделано всё было как надо и до бэкапа всё работало. Советовали в одно из топиков переустанавливать модуль компрессии, тоже мимо. Я уж начал теряться в догадках и обратился в службу тех.поддержки. Пока ждал их ответа проблема решилась () после выполнения ещё одного бэкапа публичной и административной части После этого у меня возник вопрос, а как связан визуальный редактор и бэкап сайта ?! Вопрос задал тех.поддержке, как ответят, выложу ответ сюда.
А, мораль сей истории получается такова - "Клин клином вышибают!" - работает ещё.
Если очень не хочется грузить какой-нибудь JQuery из-за всякой анимационной ерунды, которой на сайте немного, то можно воспользоваться возможностями BX-фреймворка от Битрикса.
допустим есть ссылка при нажатии на которой должен появляться какой-то блок с элементами:
Данная функция меняет прозрачность блока и изменяет его свойство display (none<->block) за 800 милисекунд
Чтобы теперь данная анимация использовалась при возникновении события (в нашем случае клике) у элемента (в нашем случае ссылки) добавляем для неё обработчик:
Данным способом можно использовать данную анимацию для разных блоков при наступлении различных событий у разных элементов на странице. P.S. Не забываем подключить на всякий случай BX: <?CJSCore::Init(array('window'));?>
ну тут как бы, Орестов Олег, тоже прав. потому что jQuery используется практически на всех проектах. изначально же работу начинает верстальщик, у которого нет JS библиотеки битрикса. потом только передается программисту, который интегрирует шаблон, и вот тут уже можно использовать ваш вариант, но jQuery то все равно подключена
Водолазский Александр, да, писать быдлокод гораздо более оправданное решение, чем подключить jQuery из какого-нибудь CDN, которая будет моментально грузиться и которую сейчас знает любой программист. Если бы я правил чужой сайт и увидел там такое, то я бы просто выделил этот мусор весь и удалил, переписав его парой лаконичных строк. А программисту, который это написал, отправил бы щедрую порцию лучей расстройства желудка.
То, о чем повествует эта запись это самые базовые знания в JS. Если вы только вчера познакомились со всеми чудесами javascript и вам сейчас кажется это чем-то выдающимся, то не стоит это постить в блоги и пытаться учить других делать плохо.
Орестов Олег, если Вы будете писать "быдлокод", то разницы на чём его писать и с использованием каких библиотек нет никакой. Если Вам не нравиться что люди пишут с использованием других библиотек, которые не входят в число ваших любимых, то нужно деликатно промолчать, как воспитанному человеку, а не писать что-то типа: "какой ад ! я вот могу это написать на том-то и том-то по-другому". Не понимаете смысла чего-то и не хотите понять, не лезьте и не флудите.
На странице раздела в публичной части (catalog/special/index.php) находились 2 компонента: bitrix:catalog.section.list и bitrix:catalog.section Клиент при заполнении каталога из публичной части при наведении добавлял Элементы, используя bitrix:catalog.section.list При нажатии кнопки Сохранить у него появлялась надпись "Элемент не найден" и "Раздел не найден" , что страшно его пугало (да и сейчас испугает если увидит). Проблема возникала из-за того, что после добавления его перебрасывало на страницу /catalog/special/razdel-#ID#/ , где в качестве значения ID ставилось ID вновь добавленного элемента, т.о. он попадал в "раздел" которого не существует (отсюда "Раздел не найден", когда в настройках стоит выдавать 404 если раздел не найден), а поскольку в этом "разделе" не было элементов, то появлялась и вторая надпись (если опять же стоит настройка компонента выдавать 404 ошибку при отсутствии элемента). Побеждается данная проблема в выставлении настроек ИБ в поле "URL страницы раздела" вместо ID - SECTION_ID, т.е.:
#SITE_DIR#/catalog/special/razdel-#SECTION_ID#/
Тогда компонент отрабатывает как надо.
Т.о., в настройках ИБ лучше не полениться и выставить полное название переменной.
В документации (API) Битрикса допущена ошибка в описании метода Add класса CIBlockSection. Вот тут. Поле PICTURE не может быть числом типа Int. Метод требует чтобы в данном свойстве на вход передавалась информация об изображении по структуре и содержанию аналогичная массиву $_FILES. Из-за этого возникают неудобства, связанные с назначением разделу изображения, которое уже добавлен в битрикс (т.е. вам известен числовой код картинки) - нельзя сразу передать номер файла. В данном случае может помочь CFile::MakeFileArray(). Вот пример, того как можно обработать поле с изображением раздела перед его(раздела) добавлением:
$bs = new CIBlockSection;
$arFields = Array(
"ACTIVE" => $ar_fields['ACTIVE'],
"IBLOCK_SECTION_ID" => $ar_fields['IBLOCK_SECTION_ID'],
"IBLOCK_ID" => $to,
"NAME" => $ar_fields['NAME'],
"SORT" => $ar_fields['SORT'],
"DESCRIPTION" => $ar_fields['DESCRIPTION'],
"DESCRIPTION_TYPE" => $ar_fields['DESCRIPTION_TYPE'],
"DATE_CREATE" => $ar_fields['DATE_CREATE'],
"TIMESTAMP_X" => $ar_fields['TIMESTAMP_X'],
"PICTURE" => CFile::MakeFileArray($ar_fields['PICTURE']), // приходится преобразовывать код картинки в массив информации о ней
"CODE" => $ar_fields['CODE'],
"XML_ID" => $ar_fields['XML_ID']
);
$ID_sec = $bs->Add($arFields);
В данном случае, конечно, приходится дублировать изображение, но зато это и спасает от его утери в случае, если элемент/раздел с которым оно связано тоже будет удалено.
Так в чем ошибка? По приведенной Вам ссылке нигде ни сказано, что ключ PICTURE массива входных параметров может содержать ID файла. В примере передается массив из $_FILES. Если же речь о таблице полей раздела - там все верно. Тип поля PICTURE - int.
В данном случае пример помог разобраться, что на самом деле должен передаваться массив, а в описании написано, что это должен быть "Код картинки в таблице файлов." с типом "Int."
Ошибка в том, что поле раздела "PICTURE" должен иметь тип array. Причём массив этот должен иметь вполне определённую структуру. А в документации, в частности в той ссылки, которую Вы указали, сказано: "Код картинки в таблице файлов." типа Int (третья колонка слева). Номер картинки из таблицы файлов и массив, по-моему, вещи разные.
обновляли версию Битрикс его штатными средствами с версии 6.0 до 9.0. Отказалось работать ЧПУ из-за того что .htaccess не обновляется. Требуется дописать , а лучше переписать полностью:
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».