Пользовательский ресурс не отображается в портлете издателя ресурсов

#liferay #liferay-6

#liferay #liferay-6

Вопрос:

Мой пользовательский ресурс не отображается в Asset Publisher . Я создал портлеты и уровень обслуживания в соответствии с этим руководством. итак, у меня есть Location модель. После создания или обновления location я обновляю запись:

 public void addLocation(ActionRequest request, ActionResponse response)
            throws Exception {

        Location location = _updateLocation(request);
        User user = PortalUtil.getUser(request);
            AssetEntryLocalServiceUtil.updateEntry(user.getUserId(),
                PortalUtil.getScopeGroupId(request), Location.class.getName(),
                location.getLocationId(), new long[0], new String[] { "mycat1",
                        "mucat2" });
        sendRedirect(request, response);
    }
 

Данные об активах хранятся в базе данных:

 SELECT entryid, groupid, companyid, userid, username, createdate, modifieddate, 
       classnameid, classpk, classuuid, classtypeid, visible, startdate, 
       enddate, publishdate, expirationdate, mimetype, title, description, 
       summary, url, layoutuuid, height, width, priority, viewcount
  FROM assetentry order by createdate desc limit 1;
 

Результат:

левая часть результата левая часть результатаправая часть результата правая часть результата

Почему издатель ресурсов не показывает мой ресурс, если ресурс существует в базе данных? Возможно, мне следует указать некоторый макет, потому что издатель ресурсов не знает, как отобразить мой ресурс.

Ответ №1:

Чтобы правильно использовать Asset Framework, вам нужно сделать еще несколько вещей. Прежде всего издателю ресурсов необходимо знать, как получить доступ к метаданным ваших объектов — вы должны предоставить пользовательские AssetRendererFactory / AssetRenderer классы и файл JSP, который будет отображать вашу сущность.

Подробнее в https://www.liferay.com/documentation/liferay-portal/6.2/development/-/ai/asset-framework-liferay-portal-6-2-dev-guide-06-en в разделе Публикация ресурсов с помощью Asset Publisher.

Комментарии:

1. Я думал, что publishing asset это означает добавление нового ресурса на портал (я делаю это в своем коде). Я допустил ошибку в переводе. Спасибо.

2. Добро пожаловать 🙂 Еще одна вещь, не забудьте поместить всю бизнес-логику, связанную с данными (например, добавление ресурсов), в реализации сервисов, а не в действия вашего портлета (как сейчас в вашем запросе). Проверьте, как это делается, в базе знаний Liferay — github.com/liferay/liferay-plugins/blob/master/portlets /.