@bitrixfordevelopers

Страница 387 из 1492
Mike
06.01.2017
22:06:21
Добрый день, люди добрые подскажите, пожалуйста: Создал акцию (компонент bitrix.news) и добавил товары акционные 80+ штук, на странице детального просмотра акции, данные товары показываются в виде слайдера в котором стандартное ограничение на 20 позиций. Вопрос: 1) Можно ли увеличить количество отображаемых товаров в слайдере, например, как в tabs в настройках такая возможность есть. 2) Можно ли и как выводить товары не в слайдере, а сеткой стандартной или как-либо еще расрыто. Заранее спасибо, буду очень признателен за помощь.

Анатолий
06.01.2017
22:22:26
Добрый день, люди добрые подскажите, пожалуйста: Создал акцию (компонент bitrix.news) и добавил товары акционные 80+ штук, на странице детального просмотра акции, данные товары показываются в виде слайдера в котором стандартное ограничение на 20 позиций. Вопрос: 1) Можно ли увеличить количество отображаемых товаров в слайдере, например, как в tabs в настройках такая возможность есть. 2) Можно ли и как выводить товары не в слайдере, а сеткой стандартной или как-либо еще расрыто. Заранее спасибо, буду очень признателен за помощь.
вы разработчик?? просто это чат для разработчиков.. ваш вопрос какой-то с позиции пользователя что-ли.. 1. как увеличить количество отображаемых товаров? ответ - найти где лимитируется вывод и поменять это значение.. как минимум взглянуть в настройках компонента, который выводит слайдер... 2. можно ли выводить не в слайдере, а как-то ещё? ответ - можно.. если вы переделаете вывод из слайдера в что-то ещё.

Vite4eg
07.01.2017
10:21:49
@optim_ist а xdebug используется? У нас раньше тоже на другом серваке всё лежало, но когда например я запускал сессию в шторме, то блокировал соединения для других

Google
Бернгардт
07.01.2017
10:22:50
нет, не юзаем xdebug согласен - он всетаки для индивидуальных, вообщем как и работы по нагрузочному тестированию, оптмизация времени выполнения (снижения нагрузки)

Vite4eg
07.01.2017
10:45:50
А php как подключаете? Fpm? Или модуль апача?

Vlad
07.01.2017
10:52:26
Никто не сталкивался? catalog.viewed.products. Такое происходит, если расположить в карточке товара, если вывести просто на страницу, то все ок

Не могу понять для начало, проблема на странице с ответом, или js глюкнутый

Все решил проблему...интуитивно js одинаковый у каталог элемент и просмотреных BX.ajax.loadJSON( this.basketUrl, this.basketParams, BX.proxy(this.BasketResult, this) ); Повыводил все пременные, вроде все одинакого вот только в basketUrl /catalog/markerykraska/marker_dlja_prom.graf._edding_518mm_serebro/?show=12&action_cvp=ADD2BASKET&id=26318 Было action_cvp А в basketUrl карточки просто action Сменил "ACTION_VARIABLE" => "action_cvp" на action И все заработал Спрашиваеться каким ежиком это связано друг с дуругом и почему на остальных страницах отлично работает action_cvp

Бернгардт
07.01.2017
13:07:18
А php как подключаете? Fpm? Или модуль апача?
апач, mpm-itk - позволяет пустить mod-php от разных пользователей

fpm в планах, но все как то руки не доходят

Rustam
08.01.2017
09:17:47
Привет! Всех с прошедшими!!! Ребята, есть у кого статья по настройке сервака centos 7 LEMP под Битрикс. Сколько не находил, все как то не то. Может кто поделится

Юрий
08.01.2017
09:33:05
Юзай BitrixVM

Rustam
08.01.2017
09:34:03
Юзай BitrixVM
Да не, ручками интереснее

Анатолий
08.01.2017
10:47:16
Да не, ручками интереснее
открой bitrix_env.sh и посмотри там все команды...

если что-то не захочешь ставить - не ставь

Google
Alexandr
08.01.2017
13:02:55
Если на карточке товара куча компонентов catalog.section и думаю очень сильно тормозят загрузку, какой есть вариант уменьшении нагрузки, чтобы по шустрее работали или только переделать все, минуя компоненты штатные?

Бернгардт
08.01.2017
13:38:47
На неделе занимался сбиванием нагрузки на списке товаров со смартом, результатами поделиться?

Vite4eg
08.01.2017
13:53:58
+

Бернгардт
08.01.2017
13:54:20
исходные данные за 10 минут битрикс фиксирует 3-5тыс хитов, львинная доля уходит в список товаров (связка смарт.фильтра и catalog.section) каталог большой, долбят большей частью яндекс-гугло боты, наверняка готовы дать и больше кол-во хитов особенность - смарт.фильтр всегда включен, у товара есть мультисвойство регион активности, в смарте в шаблоне всегда выбрано одно из значений, просто не показано, этим каталог от демо-битриксового отличается, потому абсолютно всегда есть запросы со смарта LA на сервере держится в пределах 2,8-3,6, ниже 3,5 похоже даже не собирается опускаться top показывает что один из процессов mysql абсолютно всегда утилизирует одно из ядер на 80-85% кеширование конечно справляется, но полностью закрыть не сможет по умолчанию, т.к. 4 сортировки, две вьюхи (табличка и список), ну и фильтр, потому попадание в кеш есть, но мало. после оптимизации, пока тяжелые генераторы не запускаются la упало до 0,5-0,7, mysql больше 15% не забирает похоже впринципе, в топ процессов наконец вылез индеец, воркеров так 10 держится с нагрузкой 5-9% ядра вот собственно результаты которые получил только что Средняя производительность 7.96 (замер 600 секунд, 5546 хитов) 08.01.2017 17:02:40 на страницу каталога-списка самые тяжелые 0,35 получил только что. Неудачне ловил до 0,7 редко (ранее 1,2 путь и редко, но было)

smart.filter принес вообщем два сюрприза возможно повториться только у меня 2 запроса тяжелых были всегда, один из них при профилировании сказал что происходит file sort т.е. с индексом не угадали от слова совсем чуть позднее дополню индекс который пробросил вторая подножка оказалась в том, что smart.filter абсолютно всегда принудительно проверяет доступы к инфоблоку и активность товаров, в том числе по дате, запрос получается хоть и по индексам, но тяжелый. Решается выносом smart.filter в свой namespace и комментированием всех упоминаний "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "Y", конечно после этого проверка прав и даты-начала активности будет вести не корректно, в моем случае это допустимо но оказалась тут неявность в одно месте $arResult["FACET_FILTER"] = array( "ACTIVE" => "Y", // "ACTIVE_DATE" => "Y", // "CHECK_PERMISSIONS" => "Y", ); пришлось добавить active=>Y иначе ниже по коду изза логической ошибки facet_filter не дополняется, и смарт перестает работать

catalog.section тут сюрпризов как ни странно не оказалось были галками выключены проверка прав, проверка активности, включен кеш по фильтру по большому счету все, пока работа не очень устраивает, но уже вполне допустимая нагрузка

Alexandr
08.01.2017
14:25:10
Спасибо, весьма ценна информация

Бернгардт
08.01.2017
14:29:37
забыл, еще дополнительно вот на что стоит обратить внимание 1. smart.filter полностью не кешируется, он был самым тяжелым, после этих манипуляций вижу следующее - хоть и приходит 67 запросов - из топа нагрузки он ушел, сейчас на самой тяжелой странице - вместь 0,2-0,3 я вижу ан нем 0,0835, что более чем допустимо второе, на списке товаров два ведущих компонента catalog.section.list для показа списка разделов, а если списка разделов нет - он в component_epilog бросал переменную, и вывод включался catalog.section если у вас тоже выводится или одна, или другая - имеет смысл запилить отдельную компоненту которая просто бросит флаг - что именно вывводить

вроде как "семечки" в общем потоке, но на таком кол-ве хитов уже сказалось и принесло лишние 0,1с примерно

ЗЫ2: почему это сработало - каталог был "плоский", без офферов с ними ситуация будет гораздо хуже, т.к. на каждый товар офферы будут подниматься "индивидуально" если бы был каталог с офферами - catalog.section был бы принудительно заменен news.list в обязательном порядке в result_modifier была бы следующая доделка - сбор всех id в один массив и уже проход одним гетлистом поднимались все оферы для всех товаров этого списка, и ручная уже раскладка с офферами надо очень осторожно второй момент: если скидки не используются - цены тоже лучше получить "вручную" аналогичным проходом, т.к. цены на товар с учетом скидок - поднимаются "индивидуально", это тоже следует учесть, достаточно тяжелая операция на списках

Alexandr
08.01.2017
15:17:46
я тут зашел на страницу к клиенту, в карточке товара, про которую выше писал и увидел "SQL запросов: 510 Время исполнения запросов: 6.2094 сек."

тормозно, в код посмотрел, там в цикле компонент catalog.section )

Бернгардт
08.01.2017
15:20:20
тут смотреть надо, какая то мелочь, на уровне глупости

а.. хм.. выносить из цикла )

таких историй вагон на поддержке :( либо в цикле компонента, либо запрос ну и да, если находится крайний - то невинные глазки )

бонусом)

Alexandr
08.01.2017
15:22:56
надо вообщем переделывать ))

Бернгардт
08.01.2017
15:26:29
а ты что тут делаешь? неужели уже пятница? )

Google
Maxim
08.01.2017
15:27:56
Завтра ж на работу!

Задолбался отдыхать и деградировать. Пора Битрикс пилить

Бернгардт
08.01.2017
15:30:22
а прикольно это, коробку пилить?

Vlad
08.01.2017
15:54:23
Если работаешь в PhpStorm с проектом по ftp, с 2 экранами, нет случайно плагина который бы релоадил вкладку хрома при сохранение?

При этом желательно после загрузки изменений на сервер.

Maxim
08.01.2017
16:06:30
а прикольно это, коробку пилить?
даа) не передаваемое чувство

как то себя ажным считаешь

Andrew
08.01.2017
16:07:57
Коллеги, а подскажите в Д7 рандомную выборку в 'order' => [ RAND => RAND ]

Как корректно указать?

Maxim
08.01.2017
16:13:57
Коллеги, а подскажите в Д7 рандомную выборку в 'order' => [ RAND => RAND ]
ты в крусе, что это плохая практика? медленно и без индексов рабботает?

Бернгардт
08.01.2017
16:14:36
а вот всегда было интересно - зачем настоящая рандомная выборка? хм

Andrew
08.01.2017
16:14:43
Показывать рандомно 16 похожих товаров :(

Andrew
08.01.2017
16:14:58
При обновлении страницы показываются другие 16 похожихт товаров

Или эти же, но в другом порядке

Бернгардт
08.01.2017
16:15:18
эмм.. и без кеша? это делается совершенно по другому :(

Andrew
08.01.2017
16:15:19
Из текущего раздела, в котором находится товар

Бернгардт
08.01.2017
16:16:45
берешь первые 40 к примеру кешируешь штатно далее вывод делаешь или в component_epilog, или делаешь show js-кой, на твой вкус в любом случае rand идет php по закешированным данным или js функция по данным на странице, мне импонирует первый вариант а вот бд рандомными выборками не надо дергать

Andrew
08.01.2017
16:18:33
Спасибо за подсказку, так и сделаю. У меня еще задача усложнена тем, что если менеджер установит вручную 1-5-10 похожих товаров, то этот товар обязательно должен быть в этих рандомах

Admin
ERROR: S client not available

Бернгардт
08.01.2017
16:18:53
ну а если хочешь совсем-совсем просто кеширование на 1-3 сек, выборка опять же 40 в result_modifier.php sort($arResult['ITEMS']

Google
Бернгардт
08.01.2017
16:19:18
это не усложняет ни разу )

Andrew
08.01.2017
16:19:25
о нет, кеширование на 1-3 сек точно не буду делать)

Бернгардт
08.01.2017
16:19:50
ну тогда на час, а вывод в component_epilog перенести

Andrew
08.01.2017
16:20:29
я в комплексном в element.php делаю, так комфортнее

Вот еще логический вопрос. Я всё же стараюсь максимум исопльзовать Д7. И в связи с этим вопрос: В ElementTable есть поле IBLOCK_SECTION_ID, но если товар привязан к нескольким категориям, то туда попадает только один раздел. Тогда целесообразно делать выборку (в моём случае) по таблице SectionElementTable?

Где лежат привязки элементов к разделам

Бернгардт
08.01.2017
16:23:04
отдельная таблица была связок

Andrew
08.01.2017
16:23:15
Похоже что это она

Бернгардт
08.01.2017
16:23:20
ответный вопрос - для чего использовать по максимуму д7?

в чем смысл?

Andrew
08.01.2017
16:24:04
Набивать руку как говорится, ибо рано или поздно от старого АПИ Битрикс откажется

Бернгардт
08.01.2017
16:24:12
не верно выразился - для чего использовать д7 в тех местах где старый код полностью проработан, а новый еще "чудит"?

откажется от старого апи? хм да ладно.. :)

Andrew
08.01.2017
16:26:06
Я не утверждаю что так будет, но это рано или поздно может случиться.

И экзамен надо сдавать по Д7 скоро :)

Бернгардт
08.01.2017
16:27:32
ну, меня еще "сырость" д7 в инфоблоках дико напрягает пока вот как раз такие странные вопросы, которых быть не должно по идее

ну ладно, это уже мои бзыки, не более)

а еще я наивно полагал что апи должно скрывать внутреннюю структуру таблиц знание схемы таблиц нужно лишь когда наступают "узкие" вопросы если же приходится расковыривать схему бд, чтобы использовать апи - то это неправильное апи все-таки

Maxim
08.01.2017
16:36:45
тыц тыц тыц

Roman
08.01.2017
19:32:01
Ребят , а если меню в главном шаблоне строиться, ему как то можно данные из компонентов шаблона передавать. Например я хочу полностью его перестраивать из разных компонентов.

Google
Бернгардт
08.01.2017
19:32:55
перестраивать меню из компонент? а как исходная бизнес-задача звучит?

Roman
08.01.2017
19:54:50
да нет, это я так предложение построил

Бернгардт
08.01.2017
19:59:52
так какая бизнес задача то?

я видимо не совсем понял условия задачи практический пример бы

Roman
08.01.2017
20:06:34
в главном шаблоне есть вызов компонента.

<?$APPLICATION->IncludeComponent( "bitrix:menu", "leftcar", array( "ROOT_MENU_TYPE" => "left", "MENU_CACHE_TYPE" => "N", "MENU_CACHE_TIME" => "3600000", "MENU_CACHE_USE_GROUPS" => "N", "MENU_CACHE_GET_VARS" => array( ), "MAX_LEVEL" => "1", "CHILD_MENU_TYPE" => "left", "USE_EXT" => "Y", "DELAY" => "N", "ALLOW_MULTI_SELECT" => "N", "COMPONENT_TEMPLATE" => "leftcar" ), false ); ?>

компонент выводит статичное меню на основании инфоблока., я хотел бы сделать его динамическим и изменять на основани данных , например в news.detail я сгенерировал ссылки с именами и хочу чтобы при использовании этого компонента меню строилось на основании данных полученных от него.. а не получается (

Бернгардт
08.01.2017
20:29:01
Хм, вообще эта логика должна быть в самом меню, но допустим

компонент выводит статичное меню на основании инфоблока., я хотел бы сделать его динамическим и изменять на основани данных , например в news.detail я сгенерировал ссылки с именами и хочу чтобы при использовании этого компонента меню строилось на основании данных полученных от него.. а не получается (
вообщем это делается так в news.detail выносим ссылки в component_epilog в глобальную переменную меню - в месте где оно было - ставим вывод отложенной переменной саму компоненту меню уносим в самый низ, чтобы гарантированно вызов был после вызова деталки в menu_ext пишем логику подхвата глобальной переменной которую заполнили (если она заполнена) и достраиваем меню само меню обрамляем ob_start, ob_get_clean и кидаем результаты как раз в отложенную переменную вообщем профит

Страница 387 из 1492