Ответы пользователя по тегу 1С-Битрикс
  • Почему не срабатывает событие одобавление товара?

    Эти события срабатывают именно на добавление ТОВАРА в каталог (т.е. на CCatalogProduct::Add ), а вы видимо ожидаете сработку на добавление элемента - так это не работает. Элемент ИБ это не товар каталога. Товар каталога это упрощенно говоря данные о цене элемента ИБ (там на самом деле еще налоги, единцы измерения и т.п.) и событие сработают когда вы установите на элемент цену, потому что именно в этот момент создается товар каталога.
    А вы цену по все видимости не добавляете, так как хотите создать ТП.

    Но это и хорошо - представьте что бы было если бы срабатывало? Вы на каждое добавление товара хотите генерировать к ниму ТП, т.е.... ДОБАВЛЯТЬ ТОВАР.
    Вы понимаете что произойдет?
    Ответ написан
  • Как сделать вывод названия коллекции в карточке товара в Битрикс?

    1 Вы зря начали изобретать велосипед для вывод крошек - есть же встроенный компонент.
    2 Естественно не работает - код раздела, это код раздела, а id это id. У вас новигация по коду, вы пытаетесь использовать id на странице товара. Простое добавление кода обязательно пооможет если он у вас есть в $secion.
    Но видимо его нет. А откуда вы на странице товара берете $secion никто кроме вас не знает.
    В крайнем случае, раз у вас есть id раздела в $arResult['IBLOCK_SECTION_ID'] можно в лоб получить этот раздел с помощью CIBlockSection::GetList по id и из этих данных взять CODE.

    Что-то такое примерно:
    $arSelect = Array(
    			'ID',
    			'CODE'
    		);
    	$arFilter = Array(
    			'IBLOCK_ID'=> $arResult['IBLOCK_ID'],
    			'ID' => $arResult['IBLOCK_SECTION_ID']
    		);
    	$db_res = CIBlockSection::GetList(
    			Array(),
    			$arFilter,
    			true,
    			$arSelect
    		);
    	if ($ar_result = $db_res->GetNext()) {
    		$CODE = $ar_result['CODE'];
    	}

    В $CODE будет ваш код раздела.
    Ответ написан
  • Как найти необходимый текст в Битрикс?

    Никто вам не ответит точно - черт его знает как у вас там реализовано.
    Есть два пути это сделать - прогнать грепом все файлы сайта, но лучше искать не сам русский текст, а какой-то элемент рядом с ним - например класс контейнера. Как-то так:
    find . -name "*.php" | xargs grep "brand_row_item" 2>/dev/null

    Другой способ - смотреть как это выводится. Т.е. открывать главную страницу сайта и смотреть - в ней ле этот текст, если нет - внутри чего он. Спускаться по инклюдам вглубь вложенности.
    Это вообще.

    В вашем конкретном случае этот текст выводит какой-то компонент на главной, для которого включен ajax режим по видимому.
    Класс обертки brand_row_item и text_item как бы намекает что это вывод каких-то элементов в цикле и по всей видиомсти элементов ИБ. А пути к картинкам окончательно это подтверждают.
    Подозреваю вы зря ищете текст в коде Битрикс - он в базе. В элементе ИБ с названием вроде Банеры или что-то такое.
    Ответ написан
  • Как я могу отловить событие в поиске, когда для одного элемента несколько разделов?

    Нет. Не можете. И не найдете. Потому что это, черт возьми, не событие.
    Как вы себе представляете это событием-то?
    Соотвествие нескольких разделов элементу это свойство. Ну как цвет автомобиля. Вот если он синий, это нифига не проишествие. Даже если он попал в ДТП и синий - цвет все равно не проишествие. А вот если он попал в ДТП с красковозом который вез синию краску и стал синим - то это проишествие.

    Т.е. событие назначнеия элементу нескольких разделов вы можете поймать - для этого надо перехватывать событие BeforeElementUpdate, и если раздел только один или 0 запоминать этот факт, дальше ловить событие AfterElementUpdate и если там больше одного раздела - вот вы его поймали.
    Но очевидно что назначения разделов элементам не происходит во время поиска.

    В связи с вышеизложенным ваш вопрос лишен какого-либо смысла.
    По видимому вы хотели спросить что-то вроде "Понять что для элемента в списке найденных задано больше одного раздела?" - это можно сделать в шаблоне или компоненте вывода найденных элементов. Смотря для чего вам это необходимо.
    Просто перебирайте элементы списка и смотрите сколько у них разделов.
    Ответ написан
    Комментировать
  • Одна база 1С и два сайта на Битрикс. Это можно и если да то как?

    Я бы отказался от этой идеи и сделал бы оба сайта на одном экземпляре Битрикс, с единым каталогом и по возможности без многосайтовости.
    Ответ написан
    Комментировать
  • Bitrix Error adding subscription: Согласитесь с условиями?

    Вообще это должна быть галка в форме что пользователь согласен с условиями обработки персональных данных:
    <label><input type="checkbox" name="licenses_subscribe" value="Y"> Я согласен с тем, что мои данные будут переданы во все силовые структуры по требованию и без, проданы в дарквебе для рассылки спама, слиты агрегаторам для таргетирования рекламы, могут и будут использованы против меня в суде. Я согласен вообще на все, ради подписки на эту бесполезную рассылку.
    Ответ написан
    1 комментарий
  • Как сделать правильно редирект с .php на страницу без .php?

    У вас все правильно - так как вам нужно - переадресация на страницу /catalog/interior-doors/avangard/.
    Но я так понимаю открывается /catalog/interior-doors/avangard.php ?
    Ну так это не от того что у вас переадресация не правильная, а от того, что где-то еще есть переадресация на /catalog/interior-doors/avangard.php
    Ищите внимательно.
    Для проверке не в самом ли она битрикс, можете временно в файле
    /catalog/interior-doors/avangard/index.php все удалить. Если перекидывать на /catalog/interior-doors/avangard.php перестанет, то редирект где-то в PHP. Если продолжит - редирект где-то в настройках сервера.
    Ответ написан
    1 комментарий
  • Bitrix новинки товары, как снять автоматически галочку через 2 недели?

    Если логика новинок такая - то на кой хрен вообще галочка, ее установка и снятие? Какой-то дечайший оверхед.
    Ну помечайте новинками товары для которых две недели еще не прошло с даты записанной куда-то в поле датывремя или если это дата добавления на сайте (или начала активности), то с нее.
    А придумывать при такой логике галку, а потом еще морочаться с ее снятием...
    Ответ написан
  • Почему отображение каталога на другом сайте в 1c.Битрикс пустое?

    В настройках инфоблока который является каталогом оба сайта отмечено? Это самая очевидная причина, но при этом и фильтр не должен бы работать.

    Вообще информации не очень в вопросе:
    > Во вкладке "Администрирование" я вижу свои два сайта.
    Это хорошо, но где и какое это имеет отношение к вопросу? Почему вы решили добавить эту информацию?

    > Я перенес шаблоны каталога.
    Куда и для чего? Как реализована многосайтовость?

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

    Это расширения-блокировщики и браузеры типа Opera где они уже нативно встроены.
    Люди их ставят из-за того что вебмастерам мало встроенной аналитики битрикс и они навешивают на сайт еще GA, метрику и piwik.
    Бороться с этим можно только одним способом - прикрутить свою аналитику и лучше всего на стороне сервера, а все остальное выпилить.
    Ответ написан
    Комментировать
  • Как отслеживать комбинации фильтров на странице категории товаров, для получения статистики?

    Каждое изменение это запрос к сайту - так?
    Ну вот и складывайте эти запросы в бд (да хоть в hl блок).
    Идентификатором запроса сделайте хэш от него.
    Но перед этим упорядочите данные в запросе, чтобы color=red&size=10 и size=10&color=red не считались разными.
    Ответ написан
    Комментировать
  • Как добавить цель яндекс метрики и гугл аналитикс в форму обратной связи?

    На что поставить цель? На факт успешного получения данных?
    Просто на факт отправки?

    По всей видимости результат отправки выводится у вас тут:
    <?if ($arResult["isFormNote"] == "Y"):?>
            <div class="popup__title">
              <?=$arResult["FORM_NOTE"]?>
            </div>
            <script type="text/javascript">initPopups();</script> 
          <?else:?>

    Значит куда-то под это условие и надо. На автор компонента сделал одну классную вещь судя по всему - вывод ошибок и вывод сообщения об успешной отправки никак не разделяется. Так что вам еще надо будет туда добавить условие на проверку успешности.

    Ну а если вам не важно получение данных из формы, а только трекать ее отправку, то на onsubmit.
    Ответ написан
  • Как изменить кодировку сайта?

    Смотрите состояние default_charset в phpinfo http://вашсайт/bitrix/admin/phpinfo.php?test_var1=...
    Там же и список файлов устанавливающих настройки в секции Additional .ini files parsed
    Наверняка там есть какой-нибудь /etc/php.d/20-mbstring.ini
    Ответ написан
  • Как в Битрикс запретить вывод элемента на определенных страницах?

    Дайте я попробую переформулировать ваш вопрос:
    У вас есть меню и в этом меню есть пункт который не должен отображаться на некоторых страницах (или наоборот - должен отображаться на некоторых - вот тут я не очень понял).
    Вообще говоря обычно это означает что у вас меню выполняет не свойственную ему роль. Т.е. если сложилась такая необходимость то скорее всего у вас уже что-то пошло не так. Но бывает конечно по разному...
    1 Не трогайте шаблон (файл bitrix/templates/.default/components/bitrix/menu/left/template.php)
    2 Обратитетсь непосредственно к файлу меню - последней элемент массива пункта - это метод который регулирует отображением пункта - https://dev.1c-bitrix.ru/learning/course/index.php...

    Есть еще вариант - вы говорите не о пункте меню, а о компоненте. Тут совсем просто - разместите его только на тех страницах где он должен выводиться.
    Ответ написан
  • Как выполнить фильтрацию CUser::GetList сразу по нескольким индексам?

    $filter = Array (
    "LOGIC"=>"OR",
       array( "LOGIN" => 'ключевые | слова'),
       array( "NAME" => 'ключевые | слова'),
       array( "EMAIL" => 'ключевые | слова')
    );

    Так не работает?
    Ответ написан
  • Добавить пользовательское поле со ссылкой на элемент HighLight блока?

    А что толку что вы напишите свою привязку? Пользователь должен выбирать не из 18000, а из 4 (к примеру)?
    Ну тогда просто удалите 17996 и оставьте 4 нужных. А если ему выбирать из 18000, то ему придется выбирать из 18000.
    И кстати, почему флажки? Если у вас свойство не множественное - должен быть выпадающий список.

    Ну а если вам нужен удобный интерфейс, типа как для свойств-привязок к элементу - придется заморочаться своей реализацией.

    Но есть еще один нюанс - если у вас данные прилетают из 1с - зачем их вообще редактировать на стороне сайта? Какой-то не правильный подоход. Либо меняйте на стороне сайта и плюньте на импорт из 1с (трансформируйте элементы hl в элементы обычного IB), либо продолжайте управлять из 1с и в этом случае вам всеравно, сколько там тысяч флажков.
    Ответ написан
  • Bitrix API. Как вывести один элемент инфоблока?

    На самом деле не понятно что вы спрашиваете.
    Если вам надо вывести один, первый элемент выборки, то тогда прислушайтесь к совету serginhold - установите лимит в 1 элемент.
    А на худой конец вы ведь всегда можете в своем коде, который привели, заменить
    while($ar_fields = $test_elements->GetNext())
    на
    if($ar_fields = $test_elements->GetNext())
    И получить тот же самый эффект - отображение первого элемента выборки.

    НО!
    Вы пишите что-то про url и вряд ли вам нужно выводить один и тот же элемент (первый попавшийся) на многих разных страницах.
    Следовательно у вас проблема вовсе не с тем что нужно показать один элемент вместо нескольких, как вы думаете и спрашиваете, а в том, как выбрать НУЖНЫ для этой странице элемент.
    Если у вас страница однозначно ассоциирована с элементом не важно каким способом, то ваш фильтр должен выбрать один элемент и даже с while вы должны получить нужный вам результат.
    Отсюда вопрос - в какой переменной запроса и какой идентификатор элемента вы передаете на странице?
    Ответ написан
    2 комментария
  • Как вывести разделы с элементами инфоблока в разных местах на одной странице Bitrix?

    <?
    $arFilter = Array("SECTION_ID"=>130);
    ?>
    <?
    // компонент 1
    ?>
    Какой-то текст
    <?
    $arFilter = Array("SECTION_ID"=>131);
    ?>
    <?
    // компонент 2
    ?>
    Какой-то текст

    и так далее.
    Ответ написан
    3 комментария
  • Битрикс отключил кеш компонента. Пропалa половина сайта?

    У вас ошибка в коде вызова комопнента или шаблоне. Скорее всего в шаблоне. Ошибку добавили пока компонент был закэширован. Когда отключили кэш, потребовалось его обновить, а это невозможно потому что ошибка в шаблоне. Вот и все дела.
    Ответ написан
    Комментировать