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

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    https://dev.1c-bitrix.ru/api_help/iblock/classes/c...
    $arFilter = array(
                "IBLOCK_ID" => "1",
                "UF_PROP" => "123" 
            );
    $res = CIBlockSection::GetList($arSort, $arFilter, false, $arSelect);


    Варианты фильтрации:
    Дата со временем:
    "UF_"код_поля => '08/08/2014 09:33:00' где "08/08/2014 09:33:00" в том формате, в котором хранится значение
    Дата
    "UF_"код_поля => '08/08/2014',
    Файл
    "UF_"код_поля =>6725, где 6725 - идентификатор файла
    Шаблон 
    "UF_"код_поля =>'61'
    Опрос
    "UF_"код_поля =>3, где 3 - идентификатор опроса.
    Текстовые, числовые поля
    "UF_"код_поля => значение
    Привязки
    "UF_"код_поля => ID элемента(раздела)
    Ответ написан
    Комментировать
  • Как сделать разную кнопку Купить для разделов Битрикс?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Как такое реализовать?
    Не совсем понятна проблематика.
    Добавьте условие: если раздел один тогда клик по кнопке вызывает редирект в детальную карточку товара, иначе добавление товара в корзину.
    Ответ написан
  • Как открыть сайт на битриксе?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Там русским по белому написано, что зациклились редиректы.

    1. удалите (переименуйте) .htaccess
    2. в админку тоже не пускает?
    Ответ написан
  • Как сделать кнопку "Показать еще"?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    1. создаёте пустой шаблон, который будет применяться к сайту если в параметрах есть ajax_call=Y
    2. Добавляете кнопку "подгрузить ещё" на клик по ней вешаете обработчик, который берёт из ссылок пагинации, следующую и берёт содержимое параметра href.
    3. к полученной ссылке добавляет &ajax_call=Y и по этому адресу делает аяксный запрос, результат добавляет в контейнер с товарами.
    Ответ написан
    4 комментария
  • Как сделать правильное отображение у товаров цен со скидками при включеном кэше?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Оо, дорогой друг, добро пожаловать в мир извращений и костылей.
    1. Заводим хайлоадблок в котором записываем id товара и его цену в момент работы компонента каталога, перед самым формированием кэша, обязательно тегируем кэш. И вешаем на крон обработчик который постоянно бегает по каталогу и проверяет цены (с учётом групп пользователей), если полученная цена не соответствует той что записана хайлоадблоке, тогда сбрасываем соответствующий кеш по тегу.

    2. в ключ кеширования товаров добавить дату изменения правила работы с корзиной. Дата изменилась => кеш устарел.

    3. все области с выводом цен в шаблонах подгружать аяксом (аналог композитного режима).
    Ответ написан
  • Как создать и перенести (клонировать) резервную копию системного накопителя linux с одного VDS на другой?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    https://toster.ru/answer?answer_id=426823
    Продублирую,
    Чтобы выбрать верную стратегию миграции сайта на другой сервер, прежде всего нужно определиться - допускается ли отлючение операций записи/обновления в БД на время переноса ресурса, т.е. фактический простой? Предположим что мы начали перенос нагруженного интернет-магазина, где каждые три минуты происходит заказ. Если тупо снять дамп БД, сделать архив файлов, перегнать на другой сервак, развернуть всё это дело, то лаг по времени будет минимум минут 30, даже при условии что новая железка будет находиться в той же стойке. Пока будет происходить перенос, в старую базу уже буду записаны новый заказы. Как вариант можно на время миграции запретить создание заказов и пользователей, но простой в 30 минут (а реально 2 часа) бизнес не устраивает, поэтому на крупных проектах практикуется бесшовный переезд - сначала устанавливается балансировщик, на него переписывается DNS, а он в свою очередь проксирует трафик на старый сервер, далее поднимается второй сервак, на нём разворачивается БД, которая подлючается к БД на старом сервере как slave, скрипты синхронизируются rsync/csync, файлы выносятся в облако. В итоге получаем классическую master-slave модель. В завершении меняем роли в БД, новую делаем мастером, а старую слейвом. Тушим старый сервер.
    Ответ написан
  • Как поменять request_uri в битриксе?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Как уже написал xzdshr так делать нельзя, но давайте разберёмся где в d7 это расположено.
    Для начала выясним как в d7 вообще можно получить URI:
    use Bitrix\Main\Application; 
    use Bitrix\Main\Web\Uri; 
    $request = Application::getInstance()->getContext()->getRequest(); 
    $requestUri= $request->getRequestUri();


    Загляним в реализацию этого метода, быть может там рядом есть setRequestUri ?

    //    HttpRequest::getRequestUri()
    //    /bitrix/modules/main/lib/httprequest.php:226
    
        public function getRequestUri()
        {
            return $this->server->getRequestUri();
        }


    Ага, HttpRequest отнаследован от Request'a
    class HttpRequest extends Request

    А тот, являясь абстрактным классом, в свою очередь расширяет ParameterDictionary
    abstract class Request extends Type\ParameterDictionary


    И далее спускаемся к реализации класса Dictionary, где нас будет интересовать метод offsetSet:
    /**
    	 * Offset to set
    	 */
    	public function offsetSet($offset, $value)
    	{
    		if($offset === null)
    		{
    			$this->values[] = $value;
    		}
    		else
    		{
    			$this->values[$offset] = $value;
    		}
    	}


    Коим мы и попытаемся воспользоваться:
    <?
    use Bitrix\Main\Application;
    use Bitrix\Main\Web\Uri;
    $request = Application::getInstance()->getContext()->getRequest();
    $request->offsetSet("REQUEST_URI", 'abrakadabra.php');

    И получим:
    [Bitrix\Main\NotSupportedException] 
    Can not set readonly value (150)
    /home/bitrix/www/bitrix/modules/main/lib/type/parameterdictionary.php:53
    #0: Bitrix\Main\Type\ParameterDictionary->offsetSet(string, string)


    Потому что в файле parameterdictionary.php в строке 51 есть замечательный метод:
    /**
    	 * Offset to set
    	 */
    	public function offsetSet($offset, $value)
    	{
    		throw new NotSupportedException("Can not set readonly value");
    	}


    Мораль, если захотите эту несправедливость исправить, то лезть придётся достаточно глубоко.
    Ответ написан
    Комментировать
  • Как сделать сохранить счет pdf формате?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    payment.php подключается после оформления заказа в момент перехода к оплате, обычно отображает либо квитанцию, либо форму для отправки данных в платёжный шлюз.

    Мне нужно сделать так чтобы в модулье sale.order.ajax где выводится счет, чтобы при ссылке формировался pdf счет этой квитанции.
    Теория: буферизируете html квитанции, полученный html передаёте любой библиотеке, которая может по html'ю сгенерировать pdf. Теперь про ваш код: смотрите где формируется $arPaySystem['IS_AFFORD_PDF'] и почему в нём false.
    Ответ написан
  • Как адаптировать сайт на 1с-bitrix под мобильные?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    сложно ли сделать адаптацию сайта на bitrix, не имея при этом опыта с данной cms

    Сложно

    Можно ли сделать с помощью медиазапросов.

    Можно

    На какие аспекты обращать внимание, какие подводные камни

    Всё что относится к трансформации интерфейса под мобильные устройства выносите в отдельный css, чтобы не испортить то что уже есть
    Ответ написан
    Комментировать
  • Как не выводить товары, размеры которых нет в наличии smart.filte?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Добавьте обработчик изменения товара, который будет суммировать все остатки на складах и записывать это число в остаток непосредственно товара (При условии что у вас не включен складской учёт, тогда точный остаток будет вычисляться на основе проводки документов).
    Ответ написан
    Комментировать
  • Как лучше сделать мобильное приложение при Битрикс?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Если на битриксе корпортал, тогда попробуйте взять их стандартное приложение и кастомизировать его серверную часть, т.к. оно 90% интерфейса тянет с сервера. Вы не сможете поменять страницу авторизации и нижнее меню, но зато сэкономите массу времени.
    Ответ написан
    Комментировать
  • Как правильно настроить кеширование в собственном компоненте?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Добавьте в кеш компонента тег инфоблока и дня.
    В обрабортчик добавления/удаления/изменения события в календаре сбрасывайте по тегу нужный вам кеш
    Ответ написан
    Комментировать
  • Во сколько обойдется интернет магазин на битриксе?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Малый бизнес 35 900 руб
    Готовое решение 24 900 руб
    Хостинг 1 600 руб * 12 месяцев
    SSL = 3 600 руб
    Работа = 16 ч/дн (ставка ~15 000 руб)
    Ответ написан
    Комментировать
  • Как в битрикс сделать параметры url в нижнем регистре?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Как это можно сделать?

    Залезть в компонент bitrix:catalog и переделать алгоритм работы умного фильтра.

    Или почему это не нужно делать?

    Вы не сделаете это аккуратно и правильно (потому что сам вендор делал это несколько лет). Вы потеряете возможность нормально обновляться. Если всё таки решитесь на это и предположим перегоните в нижний регистр, то в поисковый индекс попадут урлы которые вам придётся сохранять в таком виде вечно! И уже не о каком рефакторинге речи в будущем идти не будет. В 2012 году для одного магазина написал аналог смарт фильтра с ЧПУ, тогда его ещё не было в коробке. Так вот ребята, которые там остались, вынуждены до сих пор его поддерживать, потому что ссылки с фильтра обросли хорошим весом.

    Сеошники выдвигают в качестве требований такую дичь по одной причине, что бы потом оправдать свои плохие результаты. Они прекрасно знают что это повлияет на результат чуть больше чем на ноль процентов. Но когда придут подписывать акт о закрытии работ и на вопрос почему нет результата, первое что они скажут: "Ваши айтишники не выполнили наши требования".

    Сеошник, который собирается продвигать такие ссылки: site.ru/catalog/?arrFilter_P7_MAX=&arrFilter_P7_MI... должен с позором сдать партбилет.
    Ответ написан
    Комментировать
  • На чем писать банковский продукт? Битрикс или Laravel?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Краткое описание:
    - контентные страницы
    - ковости компании
    - личный кабинет с личными данными, файлами, возможность подписание договора внутри кабинета, внесение денег и интеграция с api банка, общение с поддержкой внтури ЛК

    Разносите на два ресурса:
    1. Это можете делать на чем угодно:
      • контентные страницы
      • новости компании
      Это не бизнес критикал, хоть на битриксе, хоть на drupal'e.

    2. А вот это "личный кабинет с личными данными" нужно делать на микросервисах + SSO. В этом случае стек технологий шире: Go, Nodejs, Java, PHP

    Ответ написан
    Комментировать
  • Какой компонент нужно использовать для аккордеона (faq) в битриксе?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
  • Как привязать в инфоблоке к полю типа справочник уже готовый highload блок?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Сформулируйте нормально вопрос, сейчас это набор не связанных предложений.
    Занесенные значения высвечиваются.
    где высвечиваются?
    Но при добавлении значения в инфоблок через админку.
    что при добавлении через админку?
    Ответ написан
    Комментировать
  • Как зная ID раздела потомка получить ID раздела родителя?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    Выбираете методом https://dev.1c-bitrix.ru/api_help/iblock/classes/c... нужный вам раздел.
    В массиве arSelect указываете переменную IBLOCK_SECTION_ID в ней будет содержаться ID группы родителя, если не задан то группа корневая.
    Ответ написан
    Комментировать
  • Возможно ли 2 битрикса разместить на 1 хостинге?

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    "Хостинг позволяет размещение 5 сайтов" - т.е. это просто shared хостинг, а не нормальная виртуалка?

    Тогда вопрос как у вас реализована многосайтовость. Если через вложенные директории, то проблем не будет, если через разные рабочие директории, то будут проблемы.

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

    babarun
    @babarun Куратор тега 1С-Битрикс
    Безумный план моих идей в руках больных людей
    1. для реализации выбираем Аспро.Оптимус
      - рекомендую, отличное решение
    2. первые 50% мы можем создать конкретными товарами
      Заводите обычными товарами

    3. Для второй половины по хорошему нужно писать калькуляторы. API битрикса позволяет добавлять в корзину и далее формировать заказ для произвольных товаров. Т.е. в заказе будет просчитанный вариант номенклатуры с заданными атрибутами и ценой


    Ответ написан