В новой сборке ShopModxBox будет мультигалерея «из коробки». А пока придется самому докручивать, но это не особая проблема. 1. Качаем MIGX и создает для шаблонов товаров TV-поле gallery. В параметрах ввода указываем: Тип ввода: migx. Вкладки формы: [ {"caption":"Info", "fields": [ {"field":"title","caption":"Название"}, {"field":"image","caption":"Изображение","inputTVtype":"image"}, {"field":"description","caption":"Описание","inputTVtype":"richtext"} ]} ] Разметка колонок: [ {"header": "Название", "width": "160", "sortable": "true", "dataIndex": "title"}, {"header": "Изображение", "width": "50", "sortable": "false", "dataIndex": "image","renderer": "this.renderImage"} ] 2. Обновляем getdata-процессор, дописывая формирование данных галереи, вот ревизия. Все. В получаемых данных из процессора catalog/products/getdata у вас в каждом массиве данных товара будут сформированные данные галереи. Далее уже на свой вкус реализуете вывод в шаблоне.
Так часто длинные имена получаются, и как я и говорил, визуально не сразу выкупаешь. Но, это уже кому как больше нравится.
Спасибо, буду иметь ввиду. А то обычно называю имятаблицы_id.
PK надо создавать понятный, чтоб потом в тонне id не путаться Told you. Кстати про 4 согласные буквы — это корпоративные или общепринятые понятия? Не скажу за всю Одессу, но такое видел только в их продуктах, больше нигде (хотя не могу утверждать, что они это ни у кого не подсмотрели). Но их методика мне нравится, и как раз понятности очень способствует. И лично от меня на счет 4 букв: на мой взгляд это оптимально. В большинстве случаев четырех букв было достаточно, чтобы боле менее понимаемое название дать, и при этом оно часто уникальное получается (далее уже программными средствами следим), да еще и не раздувается в длине. Когда длина и форма ключа унифицированная, тогда сразу средь других колонок выкупаешь такие ключи. При работе с большим количеством колонок это очень помогает.
Спасибо, Николай прояснили. Меня это немного удивило, когда я Базы Данных проходил, то преподаватель говорила, что PK надо создавать понятный, чтоб потом в тонне id не путаться. Кстати про 4 согласные буквы — это корпоративные или общепринятые понятия?
Вообще по своему опыту давно уже уяснил себе, что в MODX (в частности в xPDO) у всех объектов (таблиц) ID — всегда должен быть id. Даже если у вас на самом деле первичный ключ — это две или более колонки, все равно Primary key создавайте ID, а на те колонки создавайте Unique key. Иначе куча багов, включая невозможность удалить или обновить объект. Это касается не только MIGxDB, в нем это идет от xPDO. К слову, мне по началу было сложно с этим свыкнуться. Еще в сотовой компании, обслуживая их биллинг на Оракле, я усвоил такую методику от Питер-Сервиса (да-да, это такие крутые ребята с доменом http://billing.ru): первичный ключ — это до 4-х согласных букв от понятного слова (если букв меньше, то и гласные годятся), например usr_id (на примере modx_users). А вторичный ключ — это дважды id, например usr_usr_id (который в таблице modx_user_attributes заменил бы колонку internalKey). Так, глядя на вторичный ключ сразу понимаешь что он именно вторичный ключ и по нему сразу понимаешь какой первичный ключ искать. Просто когда работаешь с тысячами таблиц, по-другому никак. Блин, пришлось мне как-то столкнуться с хэлп-деском HP написанном на MSSQL нифига не по такой методике, уверяю — там мозги можно было вывихнуть. Вот мне на MODX-е не удалось такую методику применить, пришлось отвыкать от нее.
и получаем Да, именно так. Но если хотите действительно освоить этот механизм, то читайте это, чтобы освоить, к примеру, вот такие фокусы.
ай красота… значит, в [class].map.inc.php добавляем, к примеру 'aggregates' => array( 'PrimaryGroup' => array ( 'class' => 'modUserGroup', 'local' => 'primary_group', 'foreign' => 'id', 'cardinality' => 'one', 'owner' => 'foreign', ) ) и получаем class->getOne('PrimaryGroup'); п.с. за статью спасибо читана, да и вообще за материалы