Расширение Orchard CMS: упаковка и публикация модулей

Это продолжение цикла статей на тему разработки собственных сайтов на базе системы управления контентом Orchard CMS. Первые статьи данного цикла вы можете найти по следующим ссылкам:

В предыдущих частях мы познакомились с возможностями по расширению Orchard CMS через создание виджетов и отдельных модулей. В этой статье речь пойдет о работе с готовыми модулями, их упаковке в пакеты и распространению. Это статья основана на оригинальной статье Packaging and Sharing a Module.

Упаковка и распространение модуля

После разработки модуля расширения для Orchard, вы вероятно, можете захотеть распространить его среди других разработчиков. Orchard предлагает функцию создания пакетов содержащих модули для их распространения. Для того, чтобы включить эту функцию на своем сайте, вам нужно в административной панели в разделе Modules активировать функцию Packaging:

image

Другим способом активации данной функции является управление через командную строку. Для использования командной строки запустить bin\orchard.exe из корневой папки, в которой установлен проект Orchard. Далее, выполните следующую команду:

orchard> feature enable Orchard.Packaging

После активации функции packaging утилита командной строки сможет поддерживать некоторые дополнительные функции, которые могут быт использованы для создания пакета (в формате NuGet) из любого модуля в вашей установке Orchard. Кроме того, с помощью утилиты можно будет установить в систему сайта сторонние пакеты .nupkg. Информация по этим новым функциям командной строки приведена ниже:

 package create <extensionName> <path>
    Create a package for the extension <extensionName>
    (an extension being a module or a theme).
    The package will be output at the <path> specified.
    The default filename is Orchard.[Module|Theme].<extensionName>.<extensionVersion>.nupkg.
    For example, "package create SampleModule c:\temp" will create the package
    "c:\temp\Orchard.Module.SampleModule.1.0.0.nupkg".

package install <packageId> <location> /Version:<version>
        Install a module or a theme from a package file.

package uninstall <packageId>
    Uninstall a module or a theme.
    The <packageId> should take the format Orchard.[Module|Theme].<extensionName>.
    For example, "package uninstall Orchard.Module.SampleModule" will uninstall the Module under the "~/Modules/SampleModule" directory and
    "package uninstall Orchard.Theme.SampleTheme" will uninstall the Theme under the "~/Themes/SampleTheme" directory.

user create /UserName:<username> /Password:<password> /Email:<email>
        Creates a new User

Запустив команду “package create” вы можете создать готовый пакет.

 orchard> package create Lucene C:\Temp
Package "C:\Temp\Orchard.Module.Lucene.1.0.0.nupkg" successfully created

Пи создании пакетов Orchard использует формат пакетов пакетного менеджера NuGet (по сути – это обычный zip-архив с некоторыми файлами метаданных внутри). NuGet основан на формате пакетов OPC, про который вы можете узнать по следующей ссылке Open_Packaging_Conventions.

Теперь, когда вы создали пакет вы можете распространять его для других разработчиков сайтов на базе Orchard. В Orchard CMS есть возможность выбора и установки пакетов в разделе Modules панели администрирования. Про установку и обновление модулей вы можете узнать из этой статьи.

Дополнительно Orchard CMS предлагает функцию галереи пакетов, с помощью которой можно зарегистрировать один или более список сторонних пакетов с готовыми к установке модулями. Пользователи CMS в дальнейшем могут легко добавлять из этих списков необходимые модули для своего сайта. При установке Orchard CMS в галерею добавляется один список пакетов по умолчанию, который представляет собой официальный список расширений с сайта проекта Orchard CMS. Узнать о том, как добавить дополнительные списки пакетов в галерею сайта можно по этой ссылке.

Вы можете воспользоваться панелью администрирования или онлайн-галереей по адресу https://orchardproject.net/gallery для того, чтобы загрузить и установить необходимые вам пакеты или темы оформления для вашего сайта.

Вы можете легко распространить свой пакет для других разработчиков загрузив его на официальный сайт с галерей пакетов. Зарегистрируйтесь и добавьте свой пакет на странице по этой ссылке.