Ответы пользователя по тегу 1С-Битрикс
  • Присвоить div'у класс если открыта главная страница Bitrix?

    @ivashjke
    Vue JS, React, React Native
    $mainPageClass = "/" === $APPLICATION->GetCurPage(false) ? " red green " : ""
    echo '<div id="one" class="someClass' , $mainPageClass, '"></div>';
    Ответ написан
  • Как открыть предыдущую страницу браузера?

    @ivashjke
    Vue JS, React, React Native
    так у вас предыдущие страницы это таже самая страница
    60802bddb933f941095978.png
    Ответ написан
  • Как в инфоблоке выбрать 1 элемент по свойству элемента в bitrix?

    @ivashjke
    Vue JS, React, React Native
    у вас в инфоблоке только у одного элемента в свойстве стоит это значение или нет ? если нет то так и будет выводить все элементы
    $sort = ['ID' => 'ASC'];
    $filter = ['IBLOCK_ID' => 230, '=PROPERTY_BILL' => '5200014561']; //тут число еще а не строку попробуйте, хотя это не должно никак повлиять
    $select = ['ID', 'IBLOCK_ID', 'PROPERTY_BILL'];
    //если элементов несколько с таким значением - это выведет первый
    $nTopCount = false;
    //$nTopCount = ['nTopCount' => 1]; можно еще так ограничить
    $el = CIBlockElement::GetList($sort, $filter, false, $nTopCount, $select)->Fetch();
    var_dump($el);
    Ответ написан
    Комментировать
  • Как изменить итоговую сумму в корзине?

    @ivashjke
    Vue JS, React, React Native
    сделайте кастомный товар, всегда доступный - сделайте его цену 1руб например
    не выводите его в корзине визуально (в событии или result_modifier)
    при срабатывании формы - добавляете в корзину товара по количеству - ввели в форму 200 - добавляете 200 этого товара

    - либо менять цену одного из товаров установкой CUSTOM_PRICE
    - либо менять цену такого товара, чтобы не выставлять его количество
    Ответ написан
    9 комментариев
  • Как вывести пользовательское свойство "привязка к элементам"?

    @ivashjke
    Vue JS, React, React Native
    $db_list = CIBlockElement::GetList(Array(), $arFilter = Array("IBLOCK_ID"=>8, "ID"=>$arResult["ID"]), true, Array("UF_RECOMMEND"));

    в запросе true - это $arGroupBy - тут должен быть массив по каким свойствам группировать
    а Array("UF_RECOMMEND") - это arNavStartParams
    arSelect у вас вообще нет
    $props_array = $db_list->GetNext(); - тут props_array - это обьект поэтому if (!empty($props_array["UF_RECOMMEND"])) { тут фаталка будет

    для начала нужно сделать так
    $props_array = CIBlockElement::GetList(Array(), $arFilter = Array("IBLOCK_ID"=>8, "ID"=>$arResult["ID"]), false, false Array('ID', 'IBLOCK_ID',"UF_RECOMMEND"))->Fetch();


    и тут
    $rsSections = CIBlockElement::GetList(array("SORT" => "ASC"),
            array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "ID" => $props_array["UF_RECOMMEND"]),
            false,
            array("NAME", "DETAIL_PICTURE", "PICTURE", "SECTION_PAGE_URL"),
            false

    таже ошибка - array("NAME", "DETAIL_PICTURE", "PICTURE", "SECTION_PAGE_URL"), и последний false местами поменять
    и вот это while ($arSections = $rsSections->GetNext()) {
    заменить на $arSections = $rsSections->Fetch()
    тк при GetNext() в $arSections будет обьект и поля вам нужно будет выбрать через $fields = $arSections->GetFields()
    Ответ написан
  • Как сделать чтобы хлебные крошки битрикс не выводились в браузер а попадали в переменную?

    @ivashjke
    Vue JS, React, React Native
    ob_start();
    подключение компонента с хлебными крошками
    $APPLICATION->SetPageProperty("breadcrumbs", ob_get_clean());
    потом вывод где нужно $APPLICATION->ShowProperty('breadcrumbs');

    либо подключить их в header
    ob_start();
    подключение компонента с хлебными крошками
    $breadcrumbs = ob_get_clean();
    потом выводить, если так уж через переменную хочется
    Ответ написан
  • Почему не работает фильтр "PROPERTY_*"?

    @ivashjke
    Vue JS, React, React Native
    у вас PROPERTY_* не в фильтре а в селекте
    SORT => ASC вообще нет смысла в фильтр вставлять, потому что это сортировка
    и если хотите получить таким образом все свойства и если используете GetNext()
    то свойства можно будет получить только через ->GetProperties(); (а поля через GetFields())
    т.к. на выходе GetNext() или GetNextElement() - объект

    можно так написать
    $dbData = CIBlockElement::getList(
    ['SORT' => 'ASC'],
    [
    'IBLOCK_ID' => 48,
    {другое условие}
    ],
    false, false,
    ['ID', 'IBLOCK_ID', 'PROPERTY_*']
    );
    while ($res = $dbData->Fetch()) {
    var_dump($res) - тут будут все доступные свойства и поля элемента
    }
    если через GetNext
    while ($res = $dbData->GetNext()) {
    $props = $res->GetProperties() - тут будут все доступные свойства
    $fields = $res->GetFields() - тут поля
    только если вам не нужны всякие XML_ID то быстрее отработает вариант с Fetch()
    }
    Ответ написан
    1 комментарий
  • Как решить проблему с .htaccess?

    @ivashjke Автор вопроса
    Vue JS, React, React Native
    Редирект сработал, пробовал подобную запись, но редирект происходил многократно и в итоге браузер выдавал ошибку. А оставшееся в адресной строке %20/?utm_source=Viber&utm_medium=Chat&utm_campaign=Private можно каким-то образом убрать ?
    и директории с именем пробела нет ..
    Ответ написан
    Комментировать