• Почему не работает исключение в arrFilter?

    > На форуме битрикса нашел такой вариант:
    Может все же там предлагали что-то такое:
    if($_POST['SECTION_ID'] != 27){
    $arrFilter[0]["!SECTION_ID"] = 27;
    }
    if($_POST['SECTION_ID'] != 3){
    $arrFilter[1]["!SECTION_ID"] = 3;
    }
    ?

    Честно говоря не понятно чего вы этим кодом вообще пытаетесь добиться. Да и сам код страшен, уж извините...
    Если у вас есть такая конструкция в коде if(cond1){} if(cond2){} - вы уже делаете что-то не правильно вероятнее всего.
    Ответ написан
    Комментировать
  • Как вывести цены в битрикс одинаково?

    Исправить вывод цены в шаблонах компонентов.
    Ответ написан
    1 комментарий
  • Дубли элементов битрикс. Как исправить?

    Это проблема не настроек инфоблока или компонента. Проблема в архитектуре или настройке роутинга.
    Если у вас в принципе возможно ситуация когда некоторые товары лежат на первом уровне раздела, т.е. у вас есть товары у которых такой путь корень/раздел/подраздел/элемент не получается в принципе, потому что нет подраздела, то проблема в архитектуре и она не решаема, так как противоречит ей.
    Проще говоря - как система должна, не обращаясь к каталогу, отличить товар у которого есть подраздел от товара у которого подраздела нет? Это невозможно. Тут только один вариант - в скрипте детального показа выбрасывать 404 в случае если товар открыт не по каноническому адресу. Т.е. модифицировать компонента детального вида каталога.
    Если же для ЛЮБОГО товара может быть сформирован путь вида корень/раздел/подраздел/элемент, т.е. канонический путь любого товара ВСЕГДА включает раздел и один подраздел, то проблема легко решается ручной настройкой urlrewrite
    Ответ написан
    Комментировать
  • Как в одноклассниках подгрузить ссылку или картинку через консоль?

    <div>http://st.mycdn.me/res/i/ok_logo.png</div>;
    Вы пытаетесь вставить див с текстом - он и вставляется. В чем проблема-то?

    Картинка будет как-то так:
    <img src="http://st.mycdn.me/res/i/ok_logo.png">
    Ответ написан
  • Как включить поиск по артикулам, в которых имеются символы "/,. "?

    idruweb, я бы сделал две вещи:
    1 Попробовал экранировать символы и если экранирование помогает - добавить перед вызовом компонента скрипт который бы экранировал символы
    2 Написать в ТП
    Ответ написан
    Комментировать
  • Как вы ведете проекты с Git (Bitrix)?

    Не понимаю чем битрикс отличается от других.
    код фреймворка/картинки/кеш в gitignore, остальное пушим, мерджим.

    Какие именно религиозные соображения не позволяют так сделать в случае с битрикс?

    Собственно из опыта проблемы те же - как переносить изменения БД.
    Я использовал два варианта:
    1 Наивно-примитивный: просто дублируем руками все изменения БД, сделанные на тесте на боевом серваке и все. Добавили поле на тесте - добавляем сразу на боевом.
    2 Версионные скрипты модификации БД - все изменения в структуре БД делаются только через API, специальными скриптами, которые внося изменения изменяют и номер версии БД в настройках. Текущий требуемый номер хранится в скриптах. На каждом хите он сличается с тем что есть в БД и если они не совпадают, запускаются скрипты миграции для БД, которые вносят необходимые изменения. Немножко гемора при разработке, но зато потом можно накатывать на совершенно голую инсталяцию сайт.
    Ответ написан
    Комментировать
  • Сломался сайт на Битриксе, что с ним случилось?

    Как уже сказали - это 100% не лицензия.
    Первое что сделайте - посмотрите ошибки в коносоле.
    Сломаться так могло из-за недогрузки каких-то ресурсов. Тут тысячи варинтов.
    От CDN (которое надо выключить как уже сказали) до того, что у вас собирался css на стороне клиента какой-нибудь js библиотекой скажем из less файлов, а эта библиотека подгружалась со стороннего сайта, который теперь недоступен.
    Так просто не скажешь из-за чего такое произошло, но я ставлю на недоступность внешнего ресурса так как "На виртуалке сайт тоже сломался!".
    Изучайте ошибки в коносоле.
    Ответ написан
    1 комментарий
  • Правильное объявление функции в js?

    Я правильно понял что вы 5 раз в секундe обновляете css некоторых элементов в случае если ширина окна больше определенного значения?
    Мне кажется тут не идет уже речь о том правильно или неправильно вызывается эта функци. Вопрос стоит о том - а на кой хрен она зывается?

    В целом да - у вас есть апдейт на таймере и вы и его зачем-то перезапускаете и он будет перезапускаться, но если бы мне верстальщик дал такой код, я бы его выкинул даже не пытаясь разобраться что он делает.
    Ответ написан
  • Можно ли как-то исправить скорость рендеринга изображения?

    Произвольно помещать изображение в DOM заранее, а затем брать не произовольное изображение, а последнее помещенное в DOM.
    Ответ написан
  • Как пользоваться компонентами в Битрикс в ядре D7 и работать с ООП?

    И до D7 представление было отдельно, а логика отдельно. Ничего принципиально нового в этой части D7 не вносит.
    раньше в форич закатывалась верстка

    Не знаю чтобы это вообще могло обозначать.

    теперь верстка лежит в отдельном файле не тронутая - а логика пишется отдельно.

    Тоже самое было и до D7. Верстка "лежала в отдельно файле" template.php, а логика "писалась отдельно" в component.php
    То о чем вы пишите реализовано на базе идеи компонентов, которую никак не меняет выход D7. Обновляется API, используется поддержка ORM, добавляется автолоад и т.д. Т.е. все нововедения D7 под капотом и к верстке отношения прямого не имеют.
    Ответ написан
  • Как переопределить URL в template.php?

    А почему это должно работать?
    Ну вот есть компонент A который выводит URL в шаблоне которого написан этот код. Ок. Он выводит этот URL.
    А есть компонент B который выводит по URL товары. Вы этот URL открыли, но откуда компонент B вообще может узнать что в данном конкретном случае надо искть товар не с кодом foo150 а с названием foo и размером 150?
    Не никаких причин чтобы работала это реализация и никаких для вас способов заставить ее работать. Т.е. это в принципе можно сделать, но сложно (достаточно сказать, что вам надо будет свой компонент писать) и ненужно, потому что даже если вам нужна такая логика, то ее можно реализовать иначе.
    Сделайте преехватчик создание и изменения элемента и если у него не заполнен код, заполняйте код автоматически подставляя туда $arItem["NAME"].$arItem["DISPLAY_PROPERTIES"]["SIZE"]["~VALUE"]
    Ответ написан
  • Как сделать пункт меню активным в битриксе?

    Вообще это странно. Не клекабельным становится пункт меню который в массиве меню $arResult в шаблоне имеет ключ SELECTED установленный в Y.
    В самом просто случае в Y ключ устанавливается для пункта, когда URL текущей страницы совпадает с URL пункта меню.
    Если URL вашего каталога не совпадает "/" а для пункта Главная в файле меню (обычно это .top.menu.php в корне или что-то подобное - зависит от настроек) установлен адрес /. То пункт не должен становится активным.
    Проверьте эти моменты.

    Если нет - смотрите в шаблоне компонента меню как там что работает.

    Но перед всем этим сбросьте кэш меню в админке - Настройки -> Автокеширование. Возможно ваша проблема именно в кэше.
    Ответ написан
  • Можно ли чисто на PHP узнать включены ли Cookie без перезагрузки страницы?

    Можно попробовать не давать ему открыть страницу первый раз. Т.е. если куков нет вообще - выдавать пустую страницу устанавливающую куки с рефрешем.
    Но в этом случае человек с отключенными куками вообще не увидит ваш сайт, а получит вечный редирект.
    Ответ написан
    Комментировать
  • Как удалить одно фото из множественного свойства файл?

    Пересохранить массив с фото добавляя к тем которые нужно удалить DEL => Y.
    Т.е. идете по ссылочке из предущего ответа и ищете там как добавить файл во множественное свойство Файл. Там это есть.
    Вам добавлять разумеется не нужно - вы пересохраните тот же массив, но добавив ключ DEL со значением Y в те массивы которые содержат данные по тем изображениям которые вам надо удалить.
    Ответ написан
    Комментировать
  • Как расставить пары с условием за преемлемое время (380! комбинаций)?

    Или я не понял условие или...
    А что здесь какого-то сложного? Минимальное количество дней обеспечит максимальная загрузка слотов ежедневно.
    Если слотов четное количество (n). То на каждом шаге выбираем n/2 пар которые еще не играли и они отыгрывают обе свои игры.

    Если слотов нечетное количество то на нечетном шаге выбираем (n-1)/2 пар которые еще не играли и они отыгрывают обе свои игры + 1 пару которая еще не играла и она играет 1 игру.
    На четном шаге мы выбираем (n-1)/2 пар которые еще не играли и они отыгрывают обе свои игры и одну единственную пару которая сыграла свою одну игру на прошлом шаге - она отыгрывает вторую свою игру.

    Всё.
    Ответ написан
  • Почему не срабатывает событие одобавление товара?

    Эти события срабатывают именно на добавление ТОВАРА в каталог (т.е. на 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С и два сайта на Битрикс. Это можно и если да то как?

    Я бы отказался от этой идеи и сделал бы оба сайта на одном экземпляре Битрикс, с единым каталогом и по возможности без многосайтовости.
    Ответ написан
    Комментировать