• Как не выводить пустые значения в массиве (битрикс)?

    Нужно проверить на пустоту значение в $arFields['PROPERTY_TIME_VALUE']. Если пусто, то continue.

    Более удачный вариант - добавить проверку на непустое значение в $arFilter. Как вариант '!TIME' => false
    Ответ написан
    Комментировать
  • Как в 1С Битрикс в выгрузке каталога в яндекс.маркет выгружать заголовок элемента вместо названия?

    serjazz
    @serjazz
    developer and dancer
    Проще всего кастомизировать файл выгрузки, они расположены по пути /bitrix/php_interface/include/catalog_export/yandex_run.php|yandex_setup.php (если пользуетесь стандартной выгрузкой). Кастомизируете оба файла (называете иначе, но обязательно сохраните постфикс файлов: _run.php _setup.php).

    Код формирующий выгрузку содержится в yandex_run.php. (в файле будет содержаться подключаемый файл из ядра, найдите его, и полностью скопируйте код его содержимого себе в кастомизированный файл <вашеназвание>_run.php) . Сам код получения свойств конкретного товара такой
    $ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues(
                            $arCurElem["IBLOCK_ID"], // ID инфоблока
                            $arCurElem["ID"] // ID элемента
                        );
    $arElMetaProp = $ipropValues->getValues();


    Вставить его нужно внутри цикла проходящего по найденным товарам и передать требующиеся значения. (Обратите внимание, что в зависимости от того использует ли каталог торговые предложения или нет, определяется место вставки данного кода). Сам такое не делал, возможно есть более прямые пути, без подзапросов, но это первое что приходит в голову.
    Ответ написан
    Комментировать
  • Как привязать текст к правому краю блока?

    gibson_dev
    @gibson_dev
    Вообще если хоть кто нибудь читал доку к бутсрапу а не делал "как в видио на ютупе" то там есть хелперы для выравнивания блоков (pull-right), а также текста (text-right)
    Ответ написан
    1 комментарий
  • Ajax подгружает всю страницу, вместо конкретного элемента?

    А вы проверяете на стороне сервера тип запроса (ajax или обычный запрос)? Если приходит ajax запрос, то делаете сброс буфера перед выводом необходимого контента.
    Ответ написан
    3 комментария
  • Как получить список товаров из несохраненного заказа?

    Корзину заказа можно получить так:
    /** @var \Bitrix\Sale\BasketItem $basketItem */
    foreach ($order->getBasket() as $basketItem) {
        echo $basketItem->getField('NAME');
    }
    Ответ написан
    3 комментария
  • Какое key-value хранилище лучше?

    denver
    @denver
    Нет лучшего NoSQL хранилища вообще, есть под задачи, у каждого плюсы и ограничения. Redis супербыстр когда оперативки больше чем данных, иначе он часто подгружает с диска и сводит на нет скорость (если это еще не переделали), хорош для очередей сообщений, списков (встроены сортировки), всякой мелкой инфы. memcache (не memcached) самый быстрый но не флашит на диск ничего (собсвенно оттого и). memcached простейший key-value с флашем (хорош для очередей сообщений и всяких счетчиков). У последних двух особенность multiget — взять много ключей за раз работает столько же сколько и один, так что хорош для хранения «превьюшек» данных по их id, когда сортированные списки хранятся где-то еще (в редис). MongoDB не просто key-value, в ней можно хранить целые документы (пост со всеми комментариями), некий компромисс между nosql и RDBMS. Hbase уже совсем замена RDBMS, один из самых быстрых когда речь идет о IO диска, соответственно эта NoSQL для постоянного хранения стопитцот миллиардов данных. Cassandra похоже конкурент Hbase, но аутсайдер, т.к. фейсбук/твиттер от нее отказываются ;) Про CouchDB и Riak я ничего особенного не слышал (может кто дополнит — мне интересно)
    Ответ написан
    12 комментариев
  • MCN -> Asterisk 13 + FreePBX -> Bitrix24 как наладить подключение (нет звука)?

    samutin
    @samutin Автор вопроса
    Начинающий WEB-программист
    Решили проблему изменив Conectivity -> Inbound Routes -> Set Destination значение на Announcements с пустым звуковым файлом минимальной длины.
    Ответ написан
    Комментировать
  • Стоит ли изучать Битрикс?

    opium
    @opium
    Просто люблю качественно работать
    глупый вопрос , поработайте месяц не понравится уйдете
    Ответ написан
    4 комментария
  • Стоит ли изучать Битрикс?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    так говоришь, как будто всю жизнь решил этому посвятить и вариантов больше не будет изменить выбор.
    смотри на это как на очередной фреймворк, коих в твоей карьере разраба будет еще куча.
    и учитывая что ты новичок - это тебе все равно будет ценным опытом.
    Ответ написан
    3 комментария
  • Можно ли сортировать по цене в компоненте search.page?

    alexfilus
    @alexfilus
    Senior backend developer
    Если вы выводите товары, то разумнее использовать компонент catalog.search. А там можно сортировку использовать любую, какую поддерживает catalog.section. В том числе и по цене.
    Ответ написан
    Комментировать
  • Как программно уменьшить количество товара в корзине?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Алексей Емельянов:
    Скорее всего нужно сначала удалить документ отгрузки.

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

    Также нужно быть осторожным, поскольку «спрыгивают» применённые при создании подарки. Скидки не проверял.

    Используйте D7.

    Работающий код
    (внутри — PHPDocs, без которых IDE не может сориентироваться в подсказках):
    // Читаем заказ, читаем корзину
    $order= \Bitrix\Sale\Order::load( 6924 );
    $basket= $order->getBasket();
    $basket_items= $basket->getBasketItems();
    
    /**
     * @var $bi \Bitrix\Sale\BasketItem
     */
    foreach ( $basket_items as $bi ) {
    	$quantity_current= $bi->getField( 'QUANTITY' );
    	
    	//Приходит в формате "3.000"
    	$quantity_current++;
    	$quantity_current= $bi->setField( 'QUANTITY', $quantity_current );
    	
    	$save_result= $bi->save();
    	if ( !$save_result->isSuccess() ) {
    		ShowError( $save_result->getErrorMessages() );
    		exit;
    	}
    }

    (!) При изменении таким способом, накапливается и история изменений в сопроводительной информации к заказу.
    В частности: изменение количества заказа, стоимости заказа, изменений в подарках.
    Также в отгрузках корректно срабатывает счётчик требуемой до-отгрузки.
    Ответ написан
    Комментировать
  • Как безопасно сохранить данные с формы визуального редактора текста?

    @AndryG
    Не надо вырезать никакие теги!
    Безопасность, как и в сексе, определяется правильным применением контрацептивов :)
    При записи в БД ваши данные перед попаданием в текст запроса должны пройти через escape-обработку mysqli_real_escape_string() php.net/manual/ru/mysqli.real-escape-string.php
    При выводе в браузер ваш текст, независимо от того, ожидаете вы в нем теги или нет, должен пройти через htmlspecialchars() php.net/manual/ru/function.htmlspecialchars.php

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

    Маленькое дополнение. Если в редакторе используется bbCode, то подумайте над хранением обеих версий текста: оригинальный текст с редактора и скомпилированный html-код. Так вам придется выполнять дорогую операцию компиляции bbCode лишь при изменении оригинала.
    Ответ написан
    8 комментариев
  • Как редактировать less файлы через админку Bitrix?

    @my_username Автор вопроса
    Хочется без подключения сторонних модулей.

    upd.
    Обнаружил убогий хак для решения этой проблемы: открыл соседний css файл для редактирования, а потом в урле заменил его название на нужный less файл. Вуая! Он загрузился для редактирования.
    Ответ написан
    Комментировать
  • Почему могут не сохраняться настройки инфоблока?

    У меня была такае же проблема. Когда в инфоблоке много свойств (у меня более 1000), то возникает ошибка как ваша. Решается установкой max_input_vars = "100000" в php.ini
    Ответ написан
    Комментировать
  • Как сделать архитектуру инфоблоков?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Как-то все сложно у вас.... Должен быть инфоблок "измерение", в нем поля Т1, Т2, дата, ссылка на Объект, гигакалории.
    А вообще-то и этого не нужно! Просто привязываете с своему Объекту highload-блок с этими же полями! Вытягиваете объект, из него вытягиваете записи из хайлоад блока за нужный месяц. Будет работать очень шустро.
    Другими словами, у вас всего два инфоблока Подстанция и Объект, и один хайлоад блок, связанный с Объектом с результатами за нужную дату.
    А если еще немного подумать, то можно и Подстанцию перевести из инфоблока в в разделы инфоблока Объект. Тогда у вас останется всего один инфоблок Объект с разделами каталога в виде Подстанций (у раздела тоже могут быть свои свойства и не только!), и хайлоадблок!
    Если непонятно написал, спрашивайте.
    ЗЫ. Чем хорошо делать подстанции в виде разделов - вы их сможете организовать в древовидной структуре как угодно, например территориально, и поиск и результаты измерений - все будет логически связано, расширяемо и без лишних сущностей. Ну и например, можно задавать роли доступа пользователям на уровне разделов к Объектам.
    Ответ написан
    Комментировать
  • Переадресация bitrix, со старых ЧПУ на новые, как настроить?

    В urlewrite.php нужно добавить старый формат адреса и создать страницу, которая будет обрабатывать такие запросы. На этой странице при помощи CComponentEngine::ParseComponentPath() получайте элемент инфоблока по ID и отправляйте на правильный адрес.
    Вместо страницы можно сделать полноценный комплексный компонент, который после настройки через интерфейс сам пропишется в urlrewrite.php.
    Ответ написан
    Комментировать
  • Перетяжка шаблона стандартных компонентов битрикса?

    Logic87
    @Logic87
    Программист/администратор сайтов на 1С-Битрикс.
    Для успешного выполнения задания, вам нужны знания php, логика, ловкость, терпение.
    Изменяйте код, смотрите результат в браузере. Пару десятков раз натяните верстку на Битрикс и будете как рыба в воде.
    Ответ написан
    2 комментария
  • Как выполнять PHP код при отправеке форм на 1C-Bitrix?

    Всё зависит от того, как письма отправляются. Есть события веб-форм, есть событие перед отправкой непосредственно письма (но оно будет выполнено, разумеется, только есть письмо будут отправлять через этот метод). А если письма просто отправляются через mail() в самописных компонентах или используется ещё какой-нибудь извращенный способ отправки, то на них повеситься, конечно, не выйдет.
    Ответ написан