• Как удалить все атрибуты type='text/javascript' в bitrix?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Даже не знаю зачем Вам это нужно.
    Сделать можно на событии onEndBufferContent. В нем регуляркой удаляйте ненужные вам аттрибуты.
    Ответ написан
    2 комментария
  • Все статьи, и вся информация в bitrix организуются только через инфоблоки?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Есть. И страницы и разделы. Почитайте курс контент менеджера.
    Ответ написан
  • Как автоматизировать очистку кэша битрикс?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Чаще всего кеш разрастается до невероятных размеров из за неправильно настроенного кеша меню.
    Из документации:
    • MENU_CACHE_USE_GROUPS - При кешировании будут учитываться права доступа пользователя к тем или иным пунктам меню. Если меню построено без учета прав доступа, флажок лучше снять - размер кеша уменьшится.
    • MENU_CACHE_GET_VARS - Если отображение меню зависит от параметров страницы, то при использовании кеширования необходимо указать параметры в этом поле. Параметры вводятся через запятую.
    • CACHE_SELECTED_ITEMS - Y\N. Определяет подмешивать или нет URL в кеш. По умолчанию меню кешируется отдельно для каждого раздела. Если на сайте много разделов, то размер кеша меню может вызвать падение сайта из-за переполнения места на диске. Ограничение константы отключающей подмешивание URL в том, что во сложенном разделе может полностью быть переопределены пункты меню.
    • MENU_CACHE_USE_USERS - Y\N. Определяет подмешивать ли в кеш id пользователя.То есть делать ли его уникальным для каждого пользователя. Нужно когда оно отличается для каждого пользователя.


    Еще стоит обратить внимание на параметр CACHE_FILTER в компонентах catalog.section, news.list. Этот параметр отвечает за кеширование результатов работы этих компонентов, когда передан фильтр через FILTER_NAME. Где то стоит его включить, а где то нет.
    Ответ написан
    2 комментария
  • Как обновить детальную картинку в инфоблоке битрикс?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    CFile::MakeFileArray($pathToFile) принимает не число, а путь до файла. Например как то так:
    CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif");
    Ответ написан
    Комментировать
  • Почему не срабатывает 404-я ошибка 1С Битрикс?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    В настройках главного модуля можно настроить статус ответа 200 на 404ю страницу:
    6d73a37bdf914953b3f591c70b6ad283.png

    Так же в файле /404.php в начале должно быть так:

    <?
    include_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/urlrewrite.php');
    
    CHTTP::SetStatus("404 Not Found");
    @define("ERROR_404", "Y");
    Ответ написан
  • Как сортировать значения свойств для каждого раздела каталога?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Порядок значений свойств (сортировку) можно задавать у свойств типа:
    • Список
    • Привязка к справочнику ( он же HigloadBlock)
    • Привязка к элементам инфоблока.
    Ответ написан
    Комментировать
  • Urlrewrite битрикс. Как написать правило исключающее из url символьный код элемента?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    А не проще ли сделать вместо domain.ru/city_code/ так: city_code.domain.ru ?
    Ответ написан
    Комментировать
  • Почему не выходит добавить свойства в фильтр?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Зайдите в настройки инфоблока который выводите в каталоге. Перейдите на вкладку "Свойства".
    Для каждого свойства, которое планируется вывести в умный фильтр, надо задать соответствующую настройку в доп настройках https://yadi.sk/i/tTfpKlst3LDp6d . https://yadi.sk/i/-GZe06W-3LDpBo

    https://yadi.sk/i/-GZe06W-3LDpBo : Первая настройка отвечает за вывод свойства в умный фильтр, вторая за способ отображения, а третья за состояние свойства в умном фильтре (оно может быть свернуто или развернуто по умолчанию).

    После того как сохраните изменения, надо пересоздать фасетный индекс https://yadi.sk/i/9RN8IjGT3LDpTA
    Ответ написан
    Комментировать
  • Почему vagrant не запускает страницу в браузере?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    А как вы сеть настраиваете? Я правильно понимаю, что вы хотите поднять vagrant на одном устройстве а просматривать с другого ? Попробуйте использовать public_network.

    Для проверки на своем же пк сеть настраиваю обычно так:

    required_plugins = ["vagrant-hostmanager", "vagrant-vbguest", "vagrant-cachier"]
    required_plugins.each do |plugin|
        if !Vagrant.has_plugin?(plugin) then
            system "echo Not installed required plugin: #{plugin} ..."
                system "vagrant plugin install #{plugin}"
        end
    end
    
    Vagrant.configure("2") do |config|
      #-------------------------------------
      config.hostmanager.enabled = true
      config.hostmanager.manage_host = true
      config.hostmanager.manage_guest = false
      config.hostmanager.ignore_private_ip = false
      config.hostmanager.include_offline = true
      config.vm.hostname = 'test.me'
      config.vm.network :private_network, ip: '192.168.1.22'
      config.hostmanager.aliases = ['test.me', 'www.test.me']
      #-------------------------------------
    end
    Ответ написан
    7 комментариев
  • Как изменить иконку в родительском меню?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Вот так добавляется пункт меню. Один из параметров возвращаемого массива icon
    В логике административного меню в качестве параметра иконки для страницы и пункта меню передается не путь к иконке, а класс CSS.
    стили прописываются в файле
    /bitrix/modules/my_module/install/themes/my_module.css
    Пример файла:

    /*Menu icon*/
    #fcmch_menu_icon {background-image:url(icons/my_module/mnu_my_module.gif);}
    #fcmch_page_icon {background-image:url(icons/my_module/my_module.gif);}

    сами иконки необходимо загрузить в папку модуля

    /bitrix/modules/my_module/install/themes/.default/icons/my_module/

    При установке модуля содержимое папки themes модуля должно быть скопировано в папку /bitrix/themes/ и удалено оттуда при деинсталяции модуля.
    Ответ написан
  • Как вы организовали хранение данных к проектам?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Как уже написали стоит использовать системы контроля версий. Например Git. Если нужны бесплатные приватные репозитории, то можно пользоваться gitlab или bitbucket.

    Лично я дома использую следующую схему:
    На сервере гипервизор esxi. Одна из виртуалок gilab-ce. В другой виртуалке развернул jetbrains youtrack. В проектах youtrack настраиваю синхронизацию с репозиториями из gitlab.
    В качестве IDE использую phpStorm, в котором настроена синхронизация задач с youtrack.

    Когда проект приходит в работу:
    1) Создаю репозиторий в gitlab.
    2) Создаю проект в youtrack
    3) Настраиваю в youtrack синхронизацию с репозиторием
    4) В youtrack нарезаю проект на задачи
    5) На рабочей машине создаю проект в phpstorm и настраиваю в нем синхронизацию задач с youtrack.

    Дальше при работе над конкретными задачами в phpstorm ставлю выполнение тех или иных задач, через tools->Tasks&context

    А теперь для чего все это нужно:
    Иногда встречаются повторяющиеся задачи, но тяжело вспомнить в каком проекте они реализовывались. А так в результате всех этих манипуляций, я имею историю работы над всеми проектами в yotrack. Причем сразу видно описание задач, в которых можно отследить какие изменения в код вносились по той или иной задаче. Например вот так это может выглядеть https://yadi.sk/i/WER-B7yB3L5ybN . Теперь почитав описание задачи, можно открыть вкладку VCS и сразу перейти в коду.
    Ответ написан
    4 комментария
  • Bitrix:form событие успешной валидации?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Вот список событий модуля веб форм. В ней нет события успешной валидации. А как вы хотите использовать такое событие? Может есть возможность обойтись без него ?
    Ответ написан
    Комментировать
  • Как создать ORM-класс таблицы отнаследовавшись от \Bitrix\Main\Entity\DataManager?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Вот курс по работе с d7. В нем все расписано.
    Ответ написан
    Комментировать
  • Есть ли удобный инструмент для работы с инфоблоками Битрикс?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    модуль на marketplace asd.iblock. Он умеет копировать элементы и свойства инфоблока.
    Ответ написан
    Комментировать
  • Как настроить шаблон каталога, чтобы для страниц разделов заполнялись мета теги из полей вкладки SEO?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Так у Вас же в коде шаблона идет задание мета тегов -
    <?
    $APPLICATION->SetTitle($arResult["SECTION"]["SECTION_USER_FIELDS"]["UF_BROWSER_TITLE"]);
    else
    $APPLICATION->SetTitle($arResult["SECTION"]["NAME"]);
    
    if (!empty($arResult["SECTION_USER_FIELDS"]["UF_TITLE_H1"]))
    $APPLICATION->SetPageProperty("ADDITIONAL_TITLE", $arResult["SECTION"]["SECTION_USER_FIELDS"]["UF_TITLE_H1"]);
    else
    $APPLICATION->SetPageProperty("ADDITIONAL_TITLE", $arResult["SECTION"]["NAME"]);?>
    <?
    
    $APPLICATION->SetPageProperty("title", $arResult["SECTION"]["NAME"]);
    $APPLICATION->SetPageProperty("description", $arResult["SECTION"]["NAME"]);
    $APPLICATION->SetPageProperty("keywords", $arResult["SECTION"]["NAME"]);


    Удалите или закомментируйте эти строки. Возможно еще придется поменять несколько настроек в компоненте.
    Даже если Вы все таки хотите оставить их для каких либо целей, то данный код не будет работать при включенном кешировании. Всё это отложенные функции и их надо перенести в component_epilog.php
    Ответ написан
  • Как вывести компонент веб-формы в цикле news.list?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Вы пытаетесь вывести внутри news.list комплексный компонент bitrix:form. Не стоит так делать. Я так понимаю, что Вам надо вывести в одном из полей формы какой то текст, зависящий от элемента $arItem в news.list. Например название товара.

    Я бы эту задачу решил так:
    1) создаем файл /ajax/form.php - в нём размещаем компонент bitrix:form.new ( в его параметрах настраиваем режим ajax - AJAX_MODE => Y и т.д.)
    2) Пишем js скрипт который будет выводить эту форму в модалку. Можно использовать fancybox или стандартную bx библиотеку . (BX.PopupWindowManager). После вывода модалки подставляем в форму нужное нам название товара.
    3) В шаблоне news.list создаем кнопку, на которую навешиваем наш js скрипт.
    Ответ написан
    Комментировать
  • Как решить проблему с сортировкой товара при включенном кешировании?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    А как реализована сортировка? Если через параметры сортировки компонента catalog.section в шаблоне комплексного компонента catalog (файлы section.php и sections.php), то такой проблемы быть не должно. Если же Вы делаете сортировку средствами php в шаблоне catalog.section (файлы result_modifier.php или template.php) то это не верное решение, т.к. данные там кешируются.
    Ответ написан
    1 комментарий
  • Что не так с этим условием?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
  • Как дать права админа Vagrant?

    winer
    @winer Автор вопроса
    занимаюсь разработкой сайтов на 1c-bitrix
    В итоге покопался в потрохах Vagrant и нашел там функцию с помощью которой определяется работает он под админом или нет.
    У меня этот файл находится тут
    C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.9.4\lib\vagrant\util\platform.rb

    в нем нашел метод window_admin:
    def windows_admin?
              return @_windows_admin if defined?(@_windows_admin)
    
              @_windows_admin = -> {
                ps_cmd = "[System.Security.Principal.WindowsIdentity]::GetCurrent().Groups | ForEach-Object { if ($_.Value -eq 'S-1-5-19'){ Write-Host 'true'; break }}"
                output = Vagrant::Util::PowerShell.execute_cmd(ps_cmd)
                return output == 'true'
              }.call
    
              return @_windows_admin
            end

    Выше метода есть ссылка на все доступные id групп пользователей. Там нашел группу S-1-5-32-544, которая, судя по описанию, подходит под роль админа (а так же мой админ на компе состоит в этой группе https://yadi.sk/i/WeY-z68C3J7nhC)
    В итоге поменял S-1-5-19 на S-1-5-32-544. Теперь при vagrant up дело идет дальше. По крайней мере запрашиваются логин и пароль и что то происходит))
    Ответ написан
    2 комментария
  • Как добавить содержимое включаемой области в подразделы?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    У компонента есть параметр "AREA_FILE_RECURSIVE". Установите его в "Y". При этом "AREA_FILE_SHOW" => "sect"
    Ответ написан
    1 комментарий