Местоположение
Россия

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (29)

Лучшие ответы пользователя

Все ответы (121)
  • Как вы организовали хранение данных к проектам?

    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 и сразу перейти в коду.
    Ответ написан
  • Как вывести умный фильтр в двух местах интернет-страницы?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Как вариант использовать отложенные функции.
    Например в шаблоне компонента умного фильтра делаешь вывод обоих блоков, только обернув их в

    <? $this->SetViewTarget("filter1");?>
               //Код блока 1
    <? $this->EndViewTarget();?> 
    <? $this->SetViewTarget("filter2");?>
               //Код блока 2
    <? $this->EndViewTarget();?>


    А там где нужно, например в section.php комплексного компонента каталога, вывести эти блоки так:

    <? $APPLICATION->ShowViewContent('filter1');?>
    <!--какой то код и вертска-->
    <? $APPLICATION->ShowViewContent('filter2');?>
    Ответ написан
  • Как в битриксе используя ORM получить значение из нескольких сущностей?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Тут можно почитать про связи между ORM сущностями.

    Если сущности, о которых вы спрашиваете, связаны, то делается это довольно просто.

    Допустим вот так описано поле по которому идет связь между сущностью Book и Author внутри класса BookTable:
    new Entity\ReferenceField(
        'AUTHOR',
        'SomePartner\MyBooksCatalog\Author',
        array('=this.AUTHOR_ID' => 'ref.ID'),
        array('join_type' => 'LEFT')
    )

    тогда чтобы выбрать какое либо поле из сущности author надо в getList добавить Author.<Код поля>. например так:
    BookTable::getList(array(
        'select' => array(
            'TITLE',
            'AUTHOR_NAME' => 'AUTHOR.NAME',
            'AUTHOR_LAST_NAME' => 'AUTHOR.LAST_NAME'
        )
    ));

    Пример взят из статьи по ссылке приведенной выше.
    Ответ написан
  • Как сделать нормальное отображение товаров в 1с битрикс?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    Скорее всего не настроен ЧПУ в инфоблоке. В настройках инфоблока надо задать
    • URL страницы информационного блока: #SITE_DIR#/catalog/
    • URL страницы раздела: #SITE_DIR#/catalog/#SECTION_CODE_PATH#/
    • URL страницы детального просмотра: #SITE_DIR#/catalog/#SECTION_CODE_PATH#/#ELEMENT_CODE#/

    Возможно еще надо будет настроить ЧПУ в настройках комплексного компонента каталога. Например так:
    5bddab175e315324160443.png
    Ответ написан
  • Как автоматизировать очистку кэша битрикс?

    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. Где то стоит его включить, а где то нет.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (5)