Как использовать шаблон FreeMarker в приложении Magnolia? - PullRequest
0 голосов
/ 06 июня 2019

Я использую Magnolia 5.4 и разработал приложение, следуя документации: https://documentation.magnolia -cms.com / display / DOCS54 / Apps

Приложение корректно отображается воболочка магнолии.При открытии приложения отображается сообщение «Hello World», как описано в документации: https://documentation.magnolia -cms.com / display / DOCS54 / Программирование + приложение + Programminganapp-MainSubApp

IЯ удалил ненужный код и получил следующее:

public class HelloWorldMainSubAppViewImpl implements HelloWorldMainSubAppView {

    private VerticalLayout layout = new VerticalLayout();
    private Listener listener;

    public HelloWorldMainSubAppViewImpl() {
        layout.setMargin(true);
        layout.setSpacing(true);
        layout.addComponent(new Label("Hello World!"));
    }

    @Override
    public Component asVaadinComponent() {
        return layout;
    }
}

Вместо использования компонента Label я хотел бы использовать шаблон FreeMarker, где я определяю пользовательское представление.

Прочитавиз документации я пока не разобрался, как это сделать.

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Вот решение моей проблемы, основанное на предыдущей работе.

Это подход «EmbeddedPageSubApp», описанный в разделе « Пользовательское приложение »

  1. Создайте обычную страницу где-нибудь в своей навигации.

  2. Откройте приложение Конфигурация, перейдите на /modules/<APP_NAME>/apps/<APP_NAME>/subApps/main и добавьте свойство url в mainSubApp с абсолютным путем кранее созданная страница.

  3. Изменить значение свойства класса /modules/<APP_NAME>/apps/<APP_NAME>/subApps/main на info.magnolia.ui.framework.app.embedded.EmbeddedPageSubAppDescriptor

  4. Изменить значение свойства subAppClassinfo.magnolia.ui.framework.app.embedded.EmbeddedPageSubApp

  5. Если вы не хотите, чтобы эта страница была видимой ограничьте ее доступ в группе / роли «суперпользователь», чтобы ее могли использовать только администраторы,

Это связывает это с помощью iframe.Вам следует выбрать пустой шаблон, так как элементы навигации встроенной страницы видны внутри приложения.

0 голосов
/ 06 июня 2019

Я могу ошибаться, но, насколько мне известно, Freemarker используется только для создания шаблонов и, к сожалению, ограничен этим. https://documentation.magnolia -cms.com / дисплей / DOCS60 / Template + скрипты

С другой стороны, вы хотите разработать собственное приложение, и вот пример того, как это сделать. https://documentation.magnolia -cms.com / дисплей / DOCS54 / My + первое содержание + + приложение

Кроме того, если у вас есть мотивация перейти на последнюю версию Magnolia, вы можете довольно легко определить свое собственное приложение, используя Типы содержимого .

Надеюсь, это поможет,

Приветствия

...