Как добавить структуру и шаблон для новой статьи журнала из моего пользовательского портлета?

Когда новая журнальная статья помещается на страницу:

  • Я должен показать ссылку "выбрать дизайн" в журнальной статье.
  • Когда пользователь нажимает на ссылку, он должен открыть всплывающее окно.
  • В этом всплывающем окне я должен показать список всех шаблонов.
  • Когда выбран любой из шаблонов, то для статьи в журнале необходимо добавить идентификатор структуры и идентификатор шаблона (шаблон, который я выбрал).

Это мое требование (например, когда мы перетаскиваем портлет отображения веб-контента на страницу, при нажатии кнопки добавления он открывает страницу и показывает параметры выбора структуры, когда мы выбираем структуру выбора, он добавит идентификатор структуры и идентификатор шаблона, связанный с идентификатором структуры, к журнальной статье).

Как этого добиться?


person ASR    schedule 28.07.2015    source источник
comment
Не могли бы вы уточнить: хотите ли вы добавить новую структуру и шаблон на портал, хотите ли вы установить структуру и шаблон при создании новую статью или хотите открыть страницу, где можно выбрать структуру и шаблон для новой статьи?   -  person Tobias Liefke    schedule 28.07.2015
comment
Это поможет другим понять ваш вопрос, если вы отредактируете свой пост вместо добавления информации в комментарий. И я думаю, что это не вопрос, а рабочая задача. Не могли бы вы объяснить, что вы пробовали до сих пор? Кстати, добавить и установить — это две разные операции, вы не можете добавлять структуру или шаблон к существующей статье.   -  person Tobias Liefke    schedule 28.07.2015


Ответы (1)


Вы можете обратиться к следующему фрагменту кода, чтобы добавить структуру и шаблон к веб-содержимому в вашем пользовательском портлете.

ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
                Long parentFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;
                DDMStructure ddmStructure=DDMStructureLocalServiceUtil.getDDMStructure(11515);
                DDMTemplate ddmTemplate=DDMTemplateLocalServiceUtil.getDDMTemplate(11517);
                Map<Locale,String> titleMap=new HashMap<Locale,String>();
                titleMap.put(themeDisplay.getLocale(), "First Record");
                String content=
                        "<root available-locales='en_US' default-locale='en_US'>"
                                +"<dynamic-element dataType='string' indexType='keyword' name='Title' readOnly='false' repeatable='false' required='false' showLabel='true' type='text' width='small'>"
                                    +"<dynamic-content>FirstRecord</dynamic-content>"
                                +"</dynamic-element>"
                                +"<dynamic-element dataType='string' indexType='keyword' name='Description' readOnly='false' repeatable='false' required='false' showLabel='true' type='textarea' width='small'>"
                                +"  <dynamic-content>This the first one doing by programatically</dynamic-content>"
                                +"</dynamic-element>"
                                +"<dynamic-element dataType='image' fieldNamespace='wcm' indexType='keyword' name='DamImage' readOnly='false' repeatable='false' required='false' showLabel='true' type='wcm-image' width=''>"
                                +"  <dynamic-content>http://localhost:8080/documents/10184/0/welcome_community/0dc0adb1-b565-409a-b766-96d1e42b04fb?t=1459163274526</dynamic-content>"
                                +"</dynamic-element>"
                                +"<dynamic-element dataType='string' indexType='keyword' name='UserIdExcel' readOnly='false' repeatable='false' required='false' showLabel='true' type='text' width='small'>"
                                +"  <dynamic-content>458155</dynamic-content>"
                                +"</dynamic-element>"
                                +"<dynamic-element dataType='string' indexType='keyword' name='Username' readOnly='false' repeatable='false' required='false' showLabel='true' type='text' width='small'>"
                                +"  <dynamic-content>LaxmanDeepak</dynamic-content>"
                                +"</dynamic-element>"
                                +"<dynamic-element dataType='date' fieldNamespace='ddm' indexType='keyword' name='DateFromExcel' readOnly='false' repeatable='false' required='false' showLabel='true' type='ddm-date' width='small'>"
                                +"<dynamic-content>03/29/2016</dynamic-content>"
                                +"</dynamic-element>"
                            +"</root>";
                ServiceContext serviceContext = new ServiceContext();
                serviceContext.setScopeGroupId(themeDisplay.getScopeGroupId());
                serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);

                JournalArticleLocalServiceUtil.addArticle(themeDisplay.getUserId(), themeDisplay.getScopeGroupId(), parentFolderId, titleMap, null, content, ddmStructure.getStructureKey(), ddmTemplate.getTemplateKey(), serviceContext);
person Kona Laxman Deepak    schedule 30.03.2016