Поделюсь еще небольшим скрином из панели администрирования. На этот раз реализуется функционал прикрепления аксессуаров к товару. Не скрою - черпаю вдохновение в Magento. Еще не готово, но сейчас закладка выглядит примерно так (кликабельно): [spoiler]
Теперь небольшой рассказ, как это работает. На вкладке есть как минимум два основных раздела: текущие аксессуары и подбор аксессуаров. Текущие аксессуары - это уже выбранные товары, которые являются аксессуарами для данного товара. Отображаются в виде небольших блоков в 3 колонки. Представление аналогично представлению в публичной части сайта, только есть возможность удалить товар из аксессуаров (ставится галочка). Подбор товаров - это сложнее. Пользователь может выбрать категорию товара (раздел), поискать по названию или партномеру, сделать выборку по производителю и диапазону цен. Ему отображается список товаров, подходящих по критериям, он выбирает из этого списка товары, которые будут аксессуарами. Естественно эта фишка работает на AJAX, добавление товаров в аксессуары тоже на AJAX, и не надо нажимать "Применить" или "Сохранить" внизу формы. По сути это просто удобный поисковик, чтобы искать другие товары. Разумеется, товаров можно найти сколько угодно из разных разделов, с разными характеристиками, фильтр используется лишь для поиска.
По-моему, это удобней стандартного варианта поиска товаров в инфоблоках и представления связанных элементов инфоблоков.
Примерно также будет реализован механизм пакетных продаж. Подбирается товар и ставится цена на покупку его вместе с редактируемым товаром. В западных интернет-магазинах эта фишка называется bundle. Как по-русски - не знаю.
Виталий, ну вы прям не пожалели сил и времени Вопрос один - а не тормозит сие чудо все? И сколько там запросов? Много ли работает контентщиков и как часто с такой админкой (база то дергается не хило). Даже не один вопрос получился.
В свете этого давно уже предлагал Битриксу сделать AJAX-подгрузку содержимого вкладок. Послали нафик - мол сами сделаете коль надо. А вот для таких мультисвязок очень пригодилось бы...
Применение AJAX для вкладок - я не особо вижу в этом смысла. В стандартной форме все данные для вкладок берутся из одной записи инфоблока, по сути вызов GetIblockElement() и не более. Что тут на AJAX'e подгружать? В моей форме конечно данных больше, несколько связанных инфоблоков - время генерации страницы больше, чем стандартной формы редактирования элемента. Но даже тут я AJAX предпочту не использовать. Функционал производителей и характеристик реализован в собственном модуле, там возможно использование долговременного кэширования, так что время построения такой формы будет незначительно больше. На моем ноуте время построения стандартной формы - 0.37 с. Моей формы - 0.43. Я думаю, что на рабочем сервере разница будет еще менее существенна. А AJAX-запросы тут только добавят нагрузки на сервер, ведь каждый запрос требует подключения API битрикса, а он сам по себе уже несет несколько запросов.
На AJAX я пока реализую такие вещи, которые удобны для интерфейса, а не для производительности.
Сие чудо не тормозит, работает как обычный битрикс. По количеству запросов пока замеры не производил, часть функционала произведена в собственном модуле, где используется кэширование данных, допустим список брэндов, характеристики - как доделаю, смогу сказать. Контентщики пока с этим сайтом не работают, забивали пока тестовые товары. До конца праздников надеюсь доделать эту форму и смогу сделать полный обзор как по функционалу, так и по производительности.
Применение AJAX для вкладок - я не особо вижу в этом смысла. В стандартной форме все данные для вкладок берутся из одной записи инфоблока, по сути вызов GetIblockElement() и не более.
Да ну бросьте вы. А привязка к элементам? А к секциям? Теперь прикиньте. Большой интернет-магазин. Много позиций. В день вручную вносится 50-100 позиций, обновляются пара сотен других. Допустим 500 открытий форм редактирования. В каждой по 40-50 привязок (допустим авторы альбомов). Ну и на кой так загружать сервер лишними запросами? Это пример из реальной жизни, а не из головы. Я к чему AJAX то предлагал. Открыли форму, а связанные элементы (точнее их названия) не дергаем пока не зайдем на их вкладку. Логично же?
Просто редакторов сайта несколько человек. И они все почему-то работают в одно время. И в аккурат пиковых нагрузок на сервер. В итоге и публичка испытывает нагрузки, да еще и админка подливает масла в огонь. К тому же постоянно работа с заказами - оформление, смена статусов - база прилично напрягаеся. И эту нагрузку дает только админка. Мне обидно за труды как бы. Оптимизация конечно ведется, но почему бы не сделать часть стандартно в продукте, при чем часть вроде бы логически обоснованную.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».