Я работаю над проектом Magnolia CMS, который уже запущен. В самом начале я читал документацию и следил за классом академии, который у них есть в Интернете. После этого мне было поручено построить новый модуль. Самый простой способ - копирование существующего. Я сделал это, но это не сработало, как ожидалось. Я изменил путь, но все еще не работает должным образом. Поэтому я обнаружил, что мне нужно создать узел, который должен указать новый модуль. Я не знаю, как создать [mgnl:content]
. У кого-то есть опыт и может дать мне руку? Спасибо, заранее!Создание узла в Magnolia CMS
ответ
Чтобы создать узел, вы можете просто позвонить MgnlContext.getJCRSession("workspace name").getRootNode().addNode("path/to/my/node", "mgnl:content")
, но это NOT, что вы хотите сделать здесь.
Все, что вам нужно сделать, это написать дескриптор модуля справа и поместить его в правильное место в структуре вашего модуля. Узнайте больше об этом в documentation.
Другое заблуждение в вашем сообщении - думать, что копирующий модуль - самый простой способ его создать. Это совершенно неправильно. Лучший способ сделать модуль - использовать maven archetype mvn archetype:generate -DarchetypeCatalog=https://nexus.magnolia-cms.com/content/groups/public/
и снова есть больше объяснений об этом в documentation.
Вы можете создать новый тип узла, добавив следующий код:
<?xml version="1.0" encoding="UTF-8"?>
<nodeTypes xmlns:mgnl="http://www.magnolia.info/jcr/mgnl">
<nodeType name="mgnl:navitem" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
<supertypes>
<supertype>mgnl:content</supertype>
</supertypes>
</nodeType>
</nodeTypes>
Это должно идти под:
{mgnl-root}/{mgnl-module-name}/resources/mgnl-nodetypes/navitem.xml
That's мое определение NodeType:
<nodeTypes
xmlns:rep="internal"
xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
xmlns:mgnl="http://www.magnolia.info/jcr/mgnl"
xmlns:jcr="http://www.jcp.org/jcr/1.0">
<!-- custom node types -->
<nodeType name="mgnl:(YOUR NODETYPE´S NAME)" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
<supertypes>
<supertype>mgnl:content</supertype>
</supertypes>
</nodeType>
</nodeTypes>
Это определение в вашей папке: \ src \ main \ resources \ mgnl-nodetypes
- 1. Создание шаблона для Magnolia CMS 5.4.2
- 2. Magnolia CMS FilterDecorator
- 3. Magnolia CMS 5.4 (активация)
- 4. Импорт шаблона в Magnolia CMS
- 5. диалог Magnolia CMS- Начисление SelectFieldDefinition
- 6. Magnolia CMS и Spring MVC
- 7. Magnolia CMS: невозможно установить модуль
- 8. Создание пользовательских типов контента с помощью Magnolia CMS?
- 9. Magnolia CMS 5.4 (ошибка в конфигурации?)
- 10. добавление пользовательских значков в Magnolia CMS
- 11. Как настроить мой sql в CMS Magnolia?
- 12. Добавление Magnolia CMS в приложение OpenShift
- 13. Индивидуальная демонстрация не загружается в Magnolia CMS
- 14. RichText в Magnolia CMS меняет текст HTML
- 15. Программно отобразить область шаблона в Magnolia CMS
- 16. Programatically визуализации область шаблона в Magnolia CMS
- 17. Как получить размеры изображения в Magnolia CMS
- 18. Создание изображений, редактируемых в Magnolia
- 19. Magnolia CMS: Представляем учебник Magnolia, не работающий с Magnolia CE и EE
- 20. Разверните Magnolia CMS без его установки
- 21. Как сделать работу Magnolia CMS с Phonegap
- 22. Magnolia CMS создает шаблон страницы/компонента программно
- 23. Magnolia cms: использование соответствующего модуля ресурсов
- 24. Тайм-аут сеанса на Magnolia CMS
- 25. Как использовать AngularJS 2 с Magnolia CMS
- 26. Интеграция Magnolia CMS и Keycloak (SSO)
- 27. VirtualUriMapping функции- Magnolia это не распространяется CMS
- 28. Исключение модуля Magnolia CMS и Blossom
- 29. Magnolia CMS: Проблемы, вызывающие функцию 'cmsfn: linkForWorkspace'
- 30. CMS - Alfresco, Magnolia, Drupal и Joomla Сравнение
Ян, спасибо за ваш ответ, но из-за моего невежества я летел слепой. Я пытаюсь понять, что он сделал, и включить то, что мне нужно. Модуль выполнен. Он имеет субапп, и каждый имеет свой [mgnl: content], где указывает путь. Мне нужно сделать [mgnl: content] для нового субаппера. Я ценю любую помощь. Большое спасибо! – oneme
звучит больше похоже на то, что вы разрабатываете приложение, а не модуль (два не то же самое, один модуль может иметь несколько приложений). И даже не полное приложение, а только супаппинг в существующем приложении. Для этого должно быть достаточно просто создать узел через интерфейс пользователя Magnolia и настроить все необходимые свойства и подузлы. Возможно, вы хотите пройти учебное пособие по написанию полного приложения, чтобы ознакомиться с различными частями разработки приложений. Вы можете найти один такой учебник по адресу https://documentation.magnolia-cms.com/display/DOCS/My+first+content+app – Jan
Я следил за учебником, в части: Вот как создать собственное приложение для контента : Вариант 1: Скопируйте приложение Скопируйте узлы конфигурации существующего приложения контента в новое приложение. Вы можете скопировать один из родных приложений Magnolia, таких как Контакты. Экспортируйте скопированные узлы конфигурации в XML. Откройте XML в текстовом редакторе. Найдите и замените имена элементов. Например, если ваше приложение управляет яблоками вместо апельсинов, замените яблоко оранжевым. Импортируйте XML обратно в Magnolia. Зарегистрируйте новое рабочее пространство в дескрипторе модуля и создайте новый тип узла. Я не могу зарегистрировать приложение. – oneme