
Бернгардт
15.08.2016
15:49:48
вопрос откуда начинать третью страницу - всегда будет стоять..

Dmitry
15.08.2016
15:49:53
Количество страниц вы так не покажете

svetlana
15.08.2016
15:50:09
но если у нас 10 товаров и мы знаем что мы показали 6, то на второй странице мы покажем 4 товара и стрелочки вправо не будет

Бернгардт
15.08.2016
15:50:36
не, кстати смех смехом, но если полный нестандарт - списочное свойство и сделать его похожим на обратную навигацию, чтобы не перерасчитывать старые

Google

Бернгардт
15.08.2016
15:50:43
с фильтрами это только никак работать не будет

Виталий
15.08.2016
15:51:02
задачка по правде говоря из 2014 года ...
тогда я на неё забил и просто сказал им делайте сортировку вручную
и баннеров там небыло
только типы товаров 2 квадратика или 1 квадратик
и условие по 4 квадратика в линии может быть
а в этом году меня снова эта задачка настигла только с другими условиями %)

Бернгардт
15.08.2016
15:51:11
всмысле списочное, в котором уже обсчитывать номер страницы на котором покажется товар

svetlana
15.08.2016
15:51:22
самое простое это количестов товаров всегда держать одинаковым а баннеры менять
но если дизайн позволяет

Бернгардт
15.08.2016
15:53:25
два квадратика и один квадратик - надо для начала граничные условия вычислить думаю, всетаки что будет если последним будет два квадратика, и вторая его часть не лезет от слова никак
красивого решения нет, иначе на фейсбуке, инстаграмме и подобных - оно бы применялось.. не знаю у кого, не пользовался - но я видел что картинки в три ряда - заполнялись уже на 5 странице весьма неравномерно

Виталий
15.08.2016
15:54:19
значит мне предстоит сделать невозможное ?
но тема прикольная кстати если замутить)

Бернгардт
15.08.2016
15:54:52
ответь сначала на граничный вопрос - если квадратик не лезет что делаем? )

svetlana
15.08.2016
15:55:03
округляем =)

Бернгардт
15.08.2016
15:55:16
это квадратик, потому оквадрачиваем

svetlana
15.08.2016
15:55:28
смотря про что мы щас )

Виталий
15.08.2016
15:55:36
вот у нас условие
9 товаров
значит поле 3х3
надо уместить все сущности так, чтобы они влезли
если квадратик не лезет - значит следующая страница

Google

Бернгардт
15.08.2016
15:56:21
Виталь, вопрос, так ответ то на вопрос какой?
сортировка же на баннеры есть жеж
наверняка
если по сортировке баннеры в конце, которые на два квадратика, то что?

Виталий
15.08.2016
15:57:29
в этом случае вычисляем место чтобы он влез
и перемещаем его на пару шагов вперед или назад

Бернгардт
15.08.2016
15:57:35
заполняем матрицу без последнего? смещаем товар на следующую (нарушая сортировку), кидаем исключение? гы

Виталий
15.08.2016
15:58:00
правильно понимаю что мы говорим про ситуацию:
1 квадрат 1 квадрат 2 квадрата - итого 4 квадрата
а в ряд у нас может быть только 3 квадрата?

Бернгардт
15.08.2016
15:58:07
да, верно

Виталий
15.08.2016
15:58:10
да

Бернгардт
15.08.2016
15:58:40
у товара сортировка тогда относительна.. а баннер как к товару привязан? или по общей сортировке?
сквозной, так точнее будет
таблицы - разные или общая?

Виталий
15.08.2016
15:59:59
у товаров сортировки нет выводятся и выводятся себе (в дальнейшем заказчик конечно наверное захочет себе и сортировку еще)
баннер указывается после какого элемента по счету выводить

Sergey
15.08.2016
16:00:01
сквозной ли баннер или к страничкам пагинации привязан?

Бернгардт
15.08.2016
16:00:40
таблицы разные? как баннеры будут ложиться если твары попали под фильтр? скажем по бренду или цене?

Sergey
15.08.2016
16:00:58
то есть 2 баннера, 1 идет поле 50 товара и занимает 3 квадрата, 2 идет после 145 товара и занимает 2 квадрата. верно?

Виталий
15.08.2016
16:01:02
фильтра пока что на сайте нет

Sergey
15.08.2016
16:01:36
мне кажется, что надо оставить дырку внизу и париться
попасть в сетку – интересная задачка, конечно, но слишком много подводных камней

Бернгардт
15.08.2016
16:02:08
не, при таком подходе решение есть..

Sergey
15.08.2016
16:02:12
ну а дизайнеру слегка руки сломать

Google

Виталий
15.08.2016
16:02:34
да дизайнер то чего ... заказчики же тоже руку прикладывают)))

Sergey
15.08.2016
16:02:46
ну и заказчику тоже
а то чо он

Бернгардт
15.08.2016
16:03:03
нюхом чую что надо тогда банеры в отдельную таблицу и дополнительно вычислять смещение, отностиельно него уже и ориентироваться надо
математически как тут подложить сейчас сходу не скажу

Виталий
15.08.2016
16:03:04
первый раз такое встретил на этом сайте http://www.deluxinterior.ru/shop/mebel/divany/

Бернгардт
15.08.2016
16:03:12
и да, знаю что это дорого получится )

Sergey
15.08.2016
16:03:43
внизу дырка есть

Виталий
15.08.2016
16:03:47
ага

Sergey
15.08.2016
16:03:47
и никто не парится

Бернгардт
15.08.2016
16:04:01

Sergey
15.08.2016
16:04:21
прикольная ситуация будет, если пойдут 2-1-2 куба

Виталий
15.08.2016
16:04:38
но тогда был 2013-2014 год на дворе и я со слезами на глазах им говорил что это очень сложно ребят сделать давайте вы просто вручную сортируйте их и всё будет норм и вроде они успокоились
вот, там еще и товаров чуток
а на том сайте, по 500 в разделе

Бернгардт
15.08.2016
16:05:25
всмысле честной пагинации
математически должна задача решаться
а принцип - хуяк-хуяк и в продакшн, ибо никто не оценит других подходов - подсказываем мне что надо тупо агента запилить, который будет вычислять где страница начинается и не париться
ну появится дырка или грыжа на пять минут, ну и хрен с ней

Виталий
15.08.2016
16:08:21
вот оно кстати, а то мы тут все без визуала

Бернгардт
15.08.2016
16:08:55
это дизайнер в тетрис поди играл?

Виталий
15.08.2016
16:09:36
может быть , может заказчик

Google

Виталий
15.08.2016
16:11:12
самое что мне всегда нравилось
дизайнер продаёт такую вещь заказчику как мега крутую фичу
заказчик от радости что он такой крутой будет рад естественно
потом доходит до реализации - куча подводных камней, стоимость (о которой заказчика никто не предупредил) в итоге ничего нового
пока что это естественно выводится без постранички

Бернгардт
15.08.2016
16:12:09
а это все путин виноват..
ой.. точнее рыжиков..
а дизайнер молодец, да
еще и шрифты поди тоже очень нестандартные )

svetlana
15.08.2016
16:12:24
комик санс!

Sergey
15.08.2016
16:12:34
и шрифты нестандартные, и хинтинг в фотошопе стоит другой, и ссылок никаких нет

Бернгардт
15.08.2016
16:12:40
не, он штатно есть, комик не интересен..
может дизайнеру в менеджеры податься? отличный бы получился..

Sergey
15.08.2016
16:13:08
«а что, за шрифт еще и платить надо? О_О»

Бернгардт
15.08.2016
16:13:28
основ не знает, зато впыжить умеет хехе

svetlana
15.08.2016
16:13:41
кажется вы отошли от темы )

Виталий
15.08.2016
16:14:36
шрифты это вообще отдельная тема ...
меня очень нравятся макеты где по 3 шрифта и часть из них браузер рендерит по разному
а верстальщик потом сиди объясняй что шрифт вообще не для веба ))

Алексей
15.08.2016
16:16:03
Обозначим QuantityBlocksPage количество блоков на странице
- высчитываем массив всех элементов вида:
[0 => ['ID'=>...,
'QUANTITY_BLOCK'=>...],
1 => ['ID'=>...,
'QUANTITY_BLOCK' => ...],
...
n=>['ID'=>...,
'QUANTITY_BLOCK'=>...],
]
- получаем номер страницы
- проходим по массиву, пока не минем QuantityBlocksPage*pageNumber
(так как , они уже показаны на прошлых страницах)
- набираем нужное количество элементов ( согласно занимаемому количество блоков каждым из элементов) для одной страницы в отдельный массив, да хоть сразу, в arFilter
- getlist по arFilter - получили нужную инфу о товарах на заданной странице


Бернгардт
15.08.2016
16:16:12
ну чистый вес тут не помощник.. смещения всеравно вычислять придется так или иначе.. может я узколоб
но я вижу два выхода - либо на баннер в 2 квадрата заводить две записил, чтобы банальный LIMIT в mysql сработал
либо вычислять позицию откуда строить страницу
либо вычислять номер страницу и принадлежащие к ней сущности (баннеры и товары)
пожалуй больше идей нет, отдавать математику mysql и потом мучать ее подзапросами - это ложить под себя свинью большую
ну или да, по примеру выше, и на приведенном сайте - выбрать все элементы, вычилсить страницы и закешировать, вместо записи этих же данных в базу, вариация получается на тему..
я бы вычисления в фон пустил и писал в базу

Виталий
15.08.2016
16:18:17
может быть я даже не парился и выводил всё без постранички
но чет посмотрел
при включенном кеше на странице раздела 35 запросов постоянно
и это как то смутило

Бернгардт
15.08.2016
16:19:26
а вывод баннеров компонентой показа баннера чтоли?
если да, баннер никогда не кешируется...

Виталий
15.08.2016
16:19:59
нет, рresult_modifier в catalog section

Google

Бернгардт
15.08.2016
16:20:24
эм.. result_modifier по идее при включенном кеше не выполняется
потому юзают component_epilog к примеру для установки тайтлов или еще какой ... странности
а без кеша - сразу как будет несколько типов цен или офферы появятся - запросов станет значительно больше.. в разы
но это опять мимо темы .. вычисляй в фоне страницы
и переключение фильтром дополнительным по этим свойствам.. и будет щщастье, сомнительное, недолгое
а как сдашь - поменяй номер телефона, чтобы заказчик никогда тебя не нашел )

Виталий
15.08.2016
16:24:16
?
40 запросов это вообще норм?

svetlana
15.08.2016
16:24:57
для битрикса? =)))
или вообще?

Виталий
15.08.2016
16:25:15
для битрикс и вообще
75 товаров на странице

Бернгардт
15.08.2016
16:25:24
вообще зависит от запроса

Виталий
15.08.2016
16:25:24
+ баннеры 3 шт.
стандартные компоненты

Бернгардт
15.08.2016
16:25:42
может быть тысяча но вообще ничего значить не будет
а могу одним положить сервант
баннеры не кешируются.. ну или кешируются, но тогда по ним статистика не работает
75 товаров на странице - это уже вообще не норм.. впринципе
по крайней мере при подходе битрикса..

Виталий
15.08.2016
16:26:33
у меня баннеры это обычне элементы в инфоблоке))

Бернгардт
15.08.2016
16:26:53
особенно если там есть офферы - это попадалово полное..

Виталий
15.08.2016
16:27:20
ну на сайте вообще есть раздел Показать все товары, в котором показываются все товары из раздела ..
но он кэшируется

Бернгардт
15.08.2016
16:27:31
а так, при сработке кеша - такое кол-во запросов не нормально, большое однако
при первом проходе - скорее малое