• Можно ли как-то исправить скорость рендеринга изображения?

    Произвольно помещать изображение в 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С и два сайта на Битрикс. Это можно и если да то как?

    Я бы отказался от этой идеи и сделал бы оба сайта на одном экземпляре Битрикс, с единым каталогом и по возможности без многосайтовости.
    Ответ написан
    Комментировать
  • 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 комментарий
  • Верстка под CMS или CMS под верстку?

    Меня всегда ставят в тупик вопросы вроде "как верстать под такую-то CMS" или требование "верстать под CMS".
    Ребята, если верстка нормальная она натягиватся на любую CMS. Если это не так, то дело не в том что она под CMS, а в том, что верстка кривая.
    Если нормальная верстка не натягивается на CMS, то выкиньте эту CMS.

    Вот часто говорят - "вы верстаете Битрикс"?
    Я десять лет работаю с Битрикс и интегрирую разную верстку - для меня загадка до сих пор, что значит "верстать под Битрикс".
    Нормальная семантичная верстка натягивается на него под любым углом. Да, иногда может быть так что сверстано каким-то таким образом, что нужно как-то разбивать стандартный компонент, так как шаблон "рвет теги", но во-первых это решаемо, а во вторых это верстка ВСЕГДА с нарушенной семантикой вложенности.

    Вот ради интереса, можете приветси пример того в каком месте верстка не натягивается на какую-то CMS и почему?
    Ответ написан
  • Bitrix новинки товары, как снять автоматически галочку через 2 недели?

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

    Так и оставить старые страницы на старом двжике и их пока и отдавать. В чем проблема-то?
    Поисоковики "не знают" ничего про движок. Им контент важен.
    Ответ написан
  • Как выполнить получение this по индексу через цикл?

    Ну так вы и выполняете действие над всеми элементами. Вы перебираете все элементы и что-то делаете с ними и это с ними происходит.
    Вам надо разбираться не с механизмом действия над объектами, а с механизмом определения того, над каким элементом надо выполнить действие.
    Вот вы определили какой блок вне зоны видимости - ну и выполняйте действие именно над ним.
    Где собственно код который это делает?
    Ответ написан
  • Как взять id будущей записи?

    Хотя идея бредовая сама по себе, но я бы решал так - сделал бы в базу запись где все поля пусты, взял бы ее id и исползовал, а когда в будущем бы потребовалось добавить товар с этим его будущем id проапдейтил бы эту запись.
    Ответ написан
    3 комментария
  • Sftp права доступа?

    С одной стороны все правильно. С другой стороны странно что у вас вообще работает ssh, в условиях когда домашняя директория не принадлежит пользователю. Как вы вообще до этого додумались?
    Смотрите какая штука - если домашняя директория не принадлежит пользователю и если директория ~/.ssh не принадлежит пользователю и (это важно) имеет права отличные от drwx------ не чего надеяться что ssh и все что в него завернуто (тонели, sftp и т.п.) будет работать правильно.

    В чем цель такой нарезки прав?
    Ответ написан