PageBlocks / Другое / Дополнения MODX / modstore.pro
Внимание, этот компонент требует версию PHP 7.2 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Всем привет.
Версия 1.2.0 не совместима с предыдущими версиями. При обновлении все может поломаться.
PageBlocks позволяет легко и быстро интегрировать верстку. Больше никаких дополнительных полей(tv). Добавляйте, удаляйте и перемещайте блоки в интерфейсе ресурса.
Блоки контента
Разберем несколько блоков для примера:
1. Обычный блок
Блок имеет структуру: заголовок, описание, 2 кнопки и картинку.
Теперь давайте создадим такой блок в конструкторе блоков:
В чанке hero нам доступны след. переменные: title, desc, appstore, googleplay и img
2. Блок с повторяющими элементами.
Здесь мы будем использовать дополнительную таблицу внутри блока:
В чанке выводим таблицу через параметр
{foreach $blocks as $block} <div> <div> <div></div> <h3>{$block.title}</h3> </div> <div> {$block.desc} </div> </div> {/foreach}
3. Готовые блоки.
Есть блок FAQ, который нужно вывести и на других страницах. Но, заполнять такие блоки на каждой странице было бы тупо.
Поэтому мы заполним блок только в одном месте — в базе готовых блоков.
1. Создаем структуру блока
2. Заполняем блок
3. Добавляем на страницы
Но, можно еще вывести этот блок вручную через идентификатор блока.
{'!pdoResources' | snippet: [ 'frontend_css' => '', 'class' => 'pageBlock', 'loadModels' => 'pageBlocks', 'sortby' => 'rank', 'sortdir' => 'asc', 'limit' => 1, 'tpl' => 'tpl.PageBlocks', 'where' => [ 'id' => 4, // faq block id 'active' => 1 ], ]}
При обновлении базового блока, все соответствующие блоки будут обновлены автоматически, кроме тех блоков, у которых отмечена галочка «Уникальный блок».
Доступность
Каждый блок можно сделать доступным только для конкретной страницы или шаблона.
Вывод блоков на странице
{'!pdoResources' | snippet: [ 'frontend_css' => '', 'class' => 'pageBlock', 'loadModels' => 'pageBlocks', 'sortby' => 'rank', 'sortdir' => 'asc', 'limit' => 0, 'tpl' => 'tpl.PageBlocks', 'where' => [ 'resource' => $_modx->resource.id, 'active' => 1 ], ]}
Мультиязычность
1. Контексты. (например, Babel)
Используем тот же код, что и выше.
2. Без контекстов (например, localizator)
В системной настройке pageblocks_contexts добавляем необходимые языки, например English==web||Russian==ru. Где English — это название языка, web — имя контекста. В недалеком будущем будет автоматический перевод.
Выводим блоки:
{'!pdoResources' | snippet: [ 'frontend_css' => '', 'class' => 'pageBlock', 'loadModels' => 'pageBlocks', 'sortby' => 'rank', 'sortdir' => 'asc', 'limit' => 0, 'tpl' => 'tpl. PageBlocks', 'where' => [ 'resource' => $_modx->resource.id, 'context_key' => $_modx->config.localizator_key, 'active' => 1 ], ]}
Экспорт / Импорт
Есть возможность экспортировать/импортировать блоки в формат csv. Очень удобно для копирования блоков с одной страницы в другую, а также для импорта большого кол-во однотипных блоков, но об этом узнаете чуть позже))
Создание сайта на MODX Revolution
- Что такое getResources?
- Требования
- Установка
- Использование
-
- Доступные свойства
-
- Параметря шаблонизации
- Параметры выборки
- Имеющиеся плейсхолдеры
- Примеры
- Отображение TV параметров в getResources
- Использование getPage для номерации страниц
-
- Примеры
Что такое getResources?
getResources — это многоцелевой сниппет MODX Revolution, который может извлекать содержимое полей из других ресурсов и выводить его в любом удобном виде. Это не замена Ditto, а скорее альтернатива, сниппет, который может выполнять функции более специализированных компонент, таких как Ditto, Wayfinder, Breadcrumbs; фактически любых компонент, которые выполняют вывод данных из списка ресурсов.
Требования
- MODX Revolution 2.0.0 или выше
- PHP5 или выше
Установка getResources
Установка производится из панели управления MODX Revolution стандартным способом через Система->Управление пакетами->Загрузить дополнения.
Использование
Снипет getResourses может быть вызван с использованием тега:
[[!getResources]]
вызов без &tpl свойста выведет просто список всех ресурсов и их полей.
Доступные свойства:
Параметры шаблонизации
Название | Описание | Значение по умолчанию | Добавлено в версии |
---|---|---|---|
tpl | Название чанка, отвечающего за вывод ресурсов. Если не указано, выводятся список всех ресурсов текущего уровня. | ||
tplOdd | Название чанка выступающего в качестве шаблона с нечётным значением idx. (смотрите свойство idx). | ||
tplFirst | Назнание чанка, который будет шаблоном вывода первого ресурса | ||
tplLast | Назнание чанка, который будет шаблоном вывода последнего ресурса | ||
tpl_N | Назнание чанка, который будет шаблоном вывода n-ного ресурса, например, &tpl_4=`tpl4th` | ||
tpl_nN | Назнание чанка, который будет шаблоном вывода каждого n-ного ресурса, например, &tpl_n4=`tpl4th` будет применяться к любому элементу, у которого id делится на 4. | 1.4.1-pl | |
tplPath | Дополнительный каталог для поиска файлов на основе чанков при использовании @FILE | assets_path + «elements/chunks/» | |
tplWrapper | Название чанка, выступающего в виде обёртки шаблона для вывода [Примечание: не работает с toSeparatePlaceholders]. Плейсхолдер, где элементы вставлены — [[+output]]. | 1.6.0-pl | |
wrapIfEmpty | Если истина, выведёт обёртку, указанную в &tplWrapper даже если вывводимые данные отсутствуют. | false | 1.6.0-pl |
outputSeparator | Дополнительная строка для разделения каждого tpl . | «\n» | |
toPlaceholder | Если установлено, присвоит результат данному плейсхолдеру вместо его непосредственного вывода. | ||
toSeparatePlaceholders | Если установлено, будет назначать каждый результат отдельному плейсхолдеру, названному по имени этого параметра с суффиксом в виде последовательных чисел, начиная с 0. | 1.3.0 |
Префиксы шаблонов @FILE и @INLINE
@FILE — этот префикс позволяет вам указать файл вместо чанка в базе данных в качестве шаблона. Путь и имя файла, который вы указываете, будут заданы по умолчанию, если вы не задаете свойство tplPath, а поиск шаблона @FILE будет выполняться относительно вашей конфигурации assets_path + «elements/chunks/.
@INLINE — этот префикс позволяет вам указать разметку для использования с вашим шаблоном непосредственно в значении параметра. Рекомендуется использовать этот префикс шаблона только при указании свойств tpl* в наборе свойств [Property Set], в противном случае любые плейсхолдеры в строковой разметке могут быть вычислены перед передачей содержимого getResourses, поскольку кэшируемые вложенные теги в MODX Revolution вычисляются перед началом обработки содержащего их тега. @INLINE должен сопровождаться пробелом, например : «@INLINE <li>[[+pagetitle]]</li>».
Пример использования некэшируемой ссылки с префиксом шаблона @INLINE :
[[!getResources? &tpl=`@INLINE <a href="[[!~[[+id]]]]" title="[[+pagetitle]]">[[+pagetitle]] ([[+id]]) </a>`]]
Параметры выборки :
Название | Описание | Значение по умолчанию | Добавлено в версии |
---|---|---|---|
parents | Список ифентификаторов, разделённых запятыми, выступающих в качестве родителей. Используйте -1 для игнорирования родителей при указании ресурсов. Если этого параметра не указать, getResources принимает &parents как текущий ресурс и выбирает дочерние ресурсы от него (а также ресурсы, указанные в параметрах &resourses). | id текущего ресурса | |
resources | Разделённый запятыми список идентификаторов, включаемых в результат. Добавте перед идентификатором «- «, чтобы исключить его из результата. | ||
depth | Целочисленное значение, указывающее глубину поиска документов от каждого родителя. | 10 | |
tvFilters | Может быть использован для фильтрации ресурсов по определённым TV параметрам. Они вводятся как [(имя tv-параметра)(оператор)](значение). Вы можете использовать два разделителя для объединения условий фильтра. |
Вы можете использовать фильтры «ИЛИ» (OR), в виде двойной вертикальной черты ( ||). Фильтр «ИЛИ» (OR) извлекает ресурсы, которые имеют один из перечисленных tv-параметров.
mytv==одно значение||mytv==другое значениеe
Вы можете также использовать фильтр «И» (AND) указывая запятую (,). Этот фильтр проверяет соблюдение всех условий.
mytv==одно значение,othertv==другое значениеe
Для расширения возможностей фильтрации вы можете группировать эти значения. Важно знать, что вначале обрабатываются условия «ИЛИ» (||), а затем «И». Давайте рассмотрим это на примере:
mytv==foo||mytv==bar,bartv==3||bartv==1
Это будет фильтрация ресурсов, удовлетворяющим одному из следующих условий:
mytv равно foo, или:
mytv равно bar И bartv равно 3, или:
bartv равно 1
Выше приведены примеры поиска точных значений. Если хотите, вы так же можете использовать знак процента(%) в качестве маски. Например:
mytv==%a%
Соответствует любым ресурсам, имеющим «а» в значении mytv.
mytv==a%
Соответствует любым ресурсам, имеющим значение mytv, начинающееся с «а».
mytv==%a
Соответствует любым ресурсам, имеющим значение mytv, заканчивающееся на «а».
В этих случаях вы также можете использовать разделители «ИЛИ» ( ||) и «И» (,).
Важно знать, что эта функция ищет необработанное значение tv-параметра для определенного ресурса. Это означает, что данное значение точно установлено для ресурса и, что оно не будет обработано в соответствии с типом tv-параметра (или же является типом по умолчанию в релизах до 1.4.2-pl; в этом релизе добавляется поддержка фильтрации, включая значения по умолчанию). Поэтому, если у вас tv-параметр «авто-метка», это означает, что необработанное значение представляе собой список, ограниченный запятыми, и он не разделен на теги, как вы это видите в панели управления.
Начиная с версии 1.4.2-pl, возможно использование новых операторов фильтра. Имеется целый ряд новых операторов сравнения, которые можно использовать при создании условий фильтрования. Кроме того, при использовании многих из этих операторов перед сравнением tv-параметры приводятся к числовым величинам. Вот перечень допустимых операторов :
Оператор фильтра | SQL оператор | Числовое преобразование |
<=> (безопасное сравнение с NULL) | <=> | Да |
=== | = | Да |
!== | != | Да |
<> | <> | Да |
== | LIKE | Да |
!= | NOT LIKE | Да |
<< | < | Да |
<= | <= | Да |
=< | =< | Да |
>> | > | Да |
>= | >= | Да |
=> | => | Да |
sortby | Позволяет выполнять сортировку по любому полю ресурса (исключая tv-параметры). Некоторыми обычными полями, по которым возможна сортировка, являются : publishedon, munuindex, pagetitle и другие. Указывайте только имя поля, не используя синтаксис тега. Отметим, что при использовании для сортировки полей, подобных template, publishedby, они будут сортироваться по необработанным значениям, а не по их именам. |
Вы также можете использовать случайную сортировку, указав параметр RAND():
&sortby=`RAND()`
Начиная с версии 1.3.0 для сортировки по нескольким полям может использоваться массив JSON, например:
&sortby=`
{
"publishedon"
:
"ASC"
,
"createdon"
:
"DESC"
}
`
Если вы хотите выполнить сортировку в определенном особом порядке, вы можете сделать это, указав список идентификаторов (ID) ресурсов, подобно следующему :
&sortby=`
FIELD(modResource. id, 4,7,2,5,1 )
`
Это же возможно, если вы поместите идентификаторы в tv-параметр:
&sortby=`
FIELD(modResource.id,)
`
publishedon | Модифицировано в версии 1.3.0. |
sortbyAlias | Выстраивает псевдонимы для поля sortby. |
sortbyEscaped | Исключает имя поля, указанное в sortby. |
sortdir | Порядок, по которому производится сортировка. (По умолчанию: DESC) |
sortbyTV | tv-параметр, по которому производится сортировка. |
sortdirTV | Порядок, по которому производится сортировка при использовании sortbyTV. |
sortbyTVType | Указывает тип данных для sortbyTV. Возможными значениями являются : string, integer, decimal, datetime. (По умолчанию: string) |
limit | Ограничивает количество выдаваемых ресурсов. Используйте `0` для выдачи результатов без ограничений. (По умолчанию: 5) |
offset | Сдвиг выдаваемых по некоторому критерию ресурсов. (По умолчанию: 0) |
where | Выражение для критерия типа JSON для построения дополнительных условий. Смотрите примеры ниже, а также |
context | В каком контексте должен выполняться поиск. (По умолчанию в текущем) |
Прочие параметры:
Название | Описание | Значение по умолчанию | Добавлено в версии |
---|---|---|---|
showUnpublished | Если истина, будут отображаться ресурсы, снятые с публикации. | 0 | |
showDeleted | Если истина, будут отображаться ресурсы, помеченные для удаления. | 0 | |
showHidden | Если истина, будут отображаться ресурсы, независимо от того, отображаются ли они в меню. | 0 | |
hideContainers | Если установленно, не будут отображатся любые ресурсы, отмеченные как контейнер (is_folder). | 0 | |
includeContent | Указывает должно ли выдаваться в результатах содержимое каждого ресурса. | 0 | |
includeTVs | Указывает должны ли значения tv-параметров включаться в параметры, доступные каждому шаблону ресурса. | 0 | |
includeTVList | Дополнительный, разделяемый запятыми список имен tv-параметров для включения в явном виде, если includeTVs установлен в 1. | 1.4.0 | |
prepareTVs | Подготавливает значения tv-параметров, зависяшие от среды. | 1 | 1.5.0 |
prepareTVList | Органичивает tv-параметры теми, которые указаны по имени в разделенном запятыми списке. | 1.5.0 | |
processTVs | Указывает должны ли быть tv-параметры обработаны так, как они были бы представлены в ресурсе. tv-параметрыа должны быть включены для обработки (см. includeTVs/includeTVList). | 0 | |
processTVList | Дополнительный разделенный запятыми список имен tv- параметров, обрабатываемых явно. tv-параметры, указанные здесь, должны быть включены при помощи includeTVs/includeTVList | 1.4.0 | |
tvPrefix | Префикс для свойств tv-параметров. | tv. | |
idx | Вы можите определить начальный idx ресурсов, который представляет собой свойство, увеличивающееся при обработке каждого ресурса. | 1 | |
first | Определяет idx, представляющий собой первый ресурс. | 1 | |
last | Определяет idx, который представляет собой последний ресурс. По умолчанию это значение равноколичеству суммируемых ресурсов + first — 1 | ||
totalVar | Задает ключ плейсхолдера, устанавливаемого getResources для показа общего количества ресурсов, которые будут выбраны не учитывая значения limit. | total | |
debug | Если истина, отправит SQL запрос в лог-файл MODx | false |
Имеющиеся плейсхолдеры
Перечень плейсхолдеров, доступных для getResourses при форматировании чанков, зависит от ресурсов, с которыми вы работаете.
Смотрите раздел на странице «Обычно используемые теги шаблонов» («Commonly Used Template Tags») — здесь перечислены параметры, доступные для всех ресурсов.
Если ваш ресурс имеет tv-параметры, они будут иметь соответствующие плейсхолдеры (помните, что плейсхолдеры будут использовать префикс, задаваемый параметром &tvPrefix).
Кроме того имеется следующий плейсхолдер :
[[+idx]] | Увеличивается с каждой итерацией, начиная с 1 (или со значения, заданного параметром &tvPrefix) |
Примеры
За более детальными примерами обращайтесь к подразделу документации .
Пример вывода списка дочерних ресурсов текущего ресурса с использованием чанка ‘myRowTpl’ :
[[!getResources? &parents=`71` &tpl=`myRowTpl`]]
Вывод списка всех дочерних ресурсов, начиная с 5, за исключением 10, используя чанк ‘myRowTpl’:
[[!getResources? &parents=`5` &resources=`-10` &tpl=`myRowTpl`]]
Вывод указанных ресурсов с использованием чанка ‘myRowTpl’
[[!getResources? &parents=`-1` &resources=`10,11,12` &tpl=`myRowTpl`]]
Выводит 5 последних опубликованных ресурсов с помощью чанка ‘blogPost’
[[!getResources? &parents=`5` &limit=`5` &tpl=`blogPost` &includeContent=`1`]]
Выводит список дочерних ресурсов текущего ресурса, где id шаблона ресурсов 1 или 2
[[!getResources? &parents=`71` &where=`{
"template:="
:1,
"OR:template:="
:2}` &tpl=`myRowTpl`]]
Выводит список дочерних элементов текущего ресурса с id шаблонов 1, 2 или 3 (вы пожете использовать один ключ несколько раз)
[[!getResources? &parents=`71` &where=`{
"template:IN"
:[1,2,3]}` &tpl=`myRowTpl`]]
Сообщание, выдаваемое при отсутствии результата:
[[!getResources:default=`No results found`? &parents=`71` &tpl=`myRowTpl`]]
Отображение TV параметров в getResources
Чтобы уменьшить время поиска, getResources не получает TV параментр по умолчанию. Если вы хотите отобразить TV, вы должны включать в вызов следующие параметры:
&includeTVs=`1` &processTVs=`1`
Вам необходим префикс перед каждым TV параметром.
&tvPrefix=``
В Tpl чанке, который вы использовать для отображения getResources используйте placeholder в месте, где должен отображаться TV параметр:
[[+tv.my_tv]]
Использование getPage для нумерации страниц
В сочетании с GetPage, GetResources позволяет делать мощное и гибкое разбиение на страницы вашего сайта.
Пример:
[[!getPage?
&elementClass=`modSnippet`
&element=`getResources`
&parents=`17`
&depth=`2`
&limit=`10`
&pageVarKey=`page`
&includeTVs=`1`
&includeContent=`1`
&tpl=`blogListPost`
]]
<div>
<ul>
[[!+page. nav]]
</ul>
</div>
и чанк blogListPost:
<div
class
=
"blogPost"
>
<div
class
=
"date"
></div>
<h3><a href=
"[[~[[+id]]]]"
title=
""
>[[+pagetitle]]</a></h3>
<p
class
=
"author"
><strong>Author:</strong> <span
class
=
"author"
>
[[+createdby:userinfo=`username`]]</span></p>
<p
class
=
"summary"
>[[+introtext]]</p>
<p
class
=
"readmore"
><a href=
"[[~[[+id]]]]"
><span>Read more</span></a></p>
<div
class
=
"clear"
></div>
</div>
<hr/>
Назад | Вперёд |
Как сортировать Modx getResources в указанном порядке?
спросил
Изменено 7 лет, 11 месяцев назад
Просмотрено 2к раз
Как мы можем отсортировать вызов modx getResources в порядке, указанном в атрибуте ‘resources’?
У меня:
[[!getResources? &родители=`-1` &resources=`[[*HomePageUpcomingEvents]]` &tpl=`SecondaryUpdatesHomePageTpl` &limit=`3` &showHidden=`1` &includeContent=`1` &includeTVs=`1` &processTVs=`1` ]]
где: HomePageUpcomingEvents — список идентификаторов, разделенных запятыми, которые я хотел бы отобразить в определенном порядке: 6405, 6154, 6991
- modx
- modx-revolution
- modx-resources
- modx-getresources
https://rtfm. modx.com/extras/revo/getresources — прочтите документацию, прежде чем задавать вопросы.
&sortby=`ПОЛЕ(modResource.id, 4,7,2,5,1)`
В вашем случае это будет
&sortby=`FIELD(modResource.id, [[*HomePageUpcomingEvents]] )`
UPD
Три примера:
[[!getResources? &родители=`-1` &ресурсы=`1,2,3` &sortby=`ПОЛЕ(modResource.id, 3,2,1)` &tpl=`@INLINE [[+id]]` &showUnpublished=`1` &showHidden=`1` &showDeleted=`1` ]] <час> [[!получить ресурсы? &родители=`0` &ресурсы=`1,2,3` &sortby=`ПОЛЕ(modResource.id, 3,2,1)` &tpl=`@INLINE [[+id]]` &showUnpublished=`1` &showHidden=`1` &showDeleted=`1` &sortdir=`ASC` ]] <час> [[!получить ресурсы? &родители=`0` &ресурсы=`1,2,3` &sortby=`FIELD(`modResource`.`id`, 3,2,1 )` &tpl=`@INLINE [[+id]]` &showUnpublished=`1` &showHidden=`1` &showDeleted=`1` &sortdir=`DESC` ]]
Три выхода:
1 2 3 <час> 3 2 1 <час> 1 2 3
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
MODX / PLUS
Сортировать по
Дата создания -/+
Название продукта
Цена продукта
Фильтр по компании:
AllAbletonAccessAdamAIRAlesisApple — LogicArturiaASMAudio TechnicaAvidBehringerBehringerCasioDave Smith Instruments / SequentialElektronensoniqEnsoniqEvent ElectronicsFocusriteGatorHalionIk MultimediaKawaiKetronKönig & Mey erKorgKurzweilM-AudioModal ElectronicsMoogMuse ResearchNative InstrumentsNordNovationPresonusQuasimidiQuiklokRadikalRCFRolandSamples & LoopsSonicwareSpectrasonicsSteinbergStudio ElectronicsStudiologicTAL SoftwareTeenage EngineeringU-HEUltimate SupportWaldorfXfer RecordsYamaha
Результаты 91 — 105 из 128
510152050
Добавьте свой продукт! Зарегистрируйтесь бесплатно и начните продавать свои звуки. ..
Продавец: ВЫ
Наконец-то доступен отличный пакет для Yamaha MODX / MODX+: FULL MODX Vol.1 + FULL MODX Vol.2 = более 1 банка новых звуков !!!
Поставщик: мультивендор
339,00 €
219,00 €
С набором звуков FULL MODX Vol.1 вы сможете играть на Yamaha MODX/MODX+ различными тембрами: от винтажного органа A100 до электрического пианино MKII, от аналоговых звуков Prophet 5 до звуков D-50 80-х годов. Мы также добавили эмуляцию Korg M1, эмуляцию Triton и классические винтажные звуки E-mu… Более 1 банка новых звуков !!!
Поставщик: мультивендор
189,00 €
139,00 €
Эта новая библиотека включает 460 МБ новых семплов, взятых из легендарного Korg M1… 42 новых звука!
Поставщик: мультивендор
39,00 €
29,00 €
Библиотека электрических пианино MKII для Yamaha MODX / MODX+ — это новая библиотека с 58 Мб новых сэмплов, записанных в стерео/моно миксе с Fender Rhodes Mark II 19. 82, с 4 различными скоростями слоев… 11 новых звуков!
Поставщик: мультивендор
29,00 €
19,00 €
Огромная библиотека для Yamaha MODX / MODX+, вдохновленная легендарным StanWhy Z Upright. 19 новых звуков!
Поставщик: мультивендор
39,00 €
29,00 €
Light Piano для Yamaha MODX / MODX+ — это новая библиотека звуков фортепиано, полученных с помощью профессиональных приемов, которые подчеркивают естественность, динамику, типичную яркость, резонанс и затухание естественного звучания Steinway Piano… всего 25 Мб сэмплов
Поставщик: OLIV928
19,00 €
15,00 €
Новая библиотека для YAMAHA MODX / MODX+, предназначенная для всех музыкантов, которым нужны готовые к использованию звуки. 24 новых выступления, вдохновленных поп- и рок-музыкой всех времен!
Поставщик: мультивендор
39,00 €
29,00 €
Огромная библиотека для Yamaha MODX / MODX+, вдохновленная легендарной моделью Steinway Model D. .. 10 новых звуков!
Поставщик: мультивендор
39,00 €
29,00 €
Этот пакет предназначен для тех, кто любит музыку Pink Floyd. Он содержит несколько зацикленных сэмплов и сложных сплитов для Yamaha MODX/MODX+… 23 новых звука!
Поставщик: мультивендор
29,00 €
25,00 €
Эта новая библиотека для Yamaha MODX / MODX+ включает в себя патчи, сэмплированные легендарной рабочей станцией korg Triton… 16 новых звуков!
Поставщик: мультивендор
19,00 €
15,00 €
Эта новая библиотека для Yamaha MODX / MODX+ включает в себя патчи, семплированные легендарным D50 от Roland®… 12 новых звуков!
Поставщик: мультивендор
29,00 €
19,00 €
Эта новая библиотека для Yamaha MODX / MODX+ включает патчи, сэмплированные легендарным органом A100 Hammond.